CharacterEncoder.st
author Claus Gittinger <cg@exept.de>
Fri, 20 Feb 2004 13:44:24 +0100
changeset 7974 9905043988ee
parent 7973 6dea491d56f7
child 7975 07ffaa06cf80
permissions -rw-r--r--
*** empty log message ***

"
 COPYRIGHT (c) 2004 by eXept Software AG
	      All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"

"{ Package: 'stx:libbasic' }"

Object subclass:#CharacterEncoder
	instanceVariableNames:''
	classVariableNames:'EncoderClassesByName EncodersByName LastEncoder AccessLock'
	poolDictionaries:''
	category:'Collections-Text-Encodings'
!

CharacterEncoder subclass:#SingleByteEncoder
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder class instanceVariableNames:'mySingleInstance'

"
 No other class instance variables are inherited by this class.
"
!

CharacterEncoder subclass:#TwoByteEncoder
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::TwoByteEncoder class instanceVariableNames:'mySingleInstance'

"
 No other class instance variables are inherited by this class.
"
!

CharacterEncoder::TwoByteEncoder subclass:#CNS11643
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#CP437
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder subclass:#CompoundEncoder
	instanceVariableNames:'decoder encoder'
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder subclass:#DefaultEncoder
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::TwoByteEncoder subclass:#GB2313_1980
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#GSM0338
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::TwoByteEncoder subclass:#HANGUL
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder subclass:#ISO10646_1
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::TwoByteEncoder subclass:#ISO10646_to_UTF8
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ISO8859_1
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ISO8859_10
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ISO8859_11
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ISO8859_13
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ISO8859_14
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ISO8859_15
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ISO8859_16
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ISO8859_2
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ISO8859_3
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ISO8859_4
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ISO8859_5
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ISO8859_6
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ISO8859_7
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ISO8859_8
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::ISO8859_1 subclass:#ISO8859_9
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder subclass:#InverseEncoder
	instanceVariableNames:'decoder'
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#JIS0201
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::TwoByteEncoder subclass:#JIS0208
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::TwoByteEncoder subclass:#JIS0208_to_JIS7
	instanceVariableNames:''
	classVariableNames:'Jis7KanjiEscapeSequence Jis7RomanEscapeSequence
		JisISO2022EscapeSequence Jis7KanjiOldEscapeSequence'
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::TwoByteEncoder subclass:#JIS0212
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::TwoByteEncoder subclass:#JOHAB
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#KOI8_R
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::KOI8_R subclass:#KOI8_U
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::TwoByteEncoder subclass:#KSC5601
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MAC_Arabic
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MAC_CentralEuropean
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MAC_Croatian
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MAC_Cyrillic
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MAC_Dingbats
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MAC_Farsi
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MAC_Greek
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MAC_Hebrew
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MAC_Iceland
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::TwoByteEncoder subclass:#MAC_Japanese
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::TwoByteEncoder subclass:#MAC_Korean
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MAC_Roman
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MAC_Romanian
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MAC_Symbol
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::TwoByteEncoder subclass:#MAC_Thai
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MAC_Turkish
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MS_Ansi
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MS_Arabic
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MS_Baltic
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MS_Cyrillic
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MS_EastEuropean
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MS_Greek
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MS_Hebrew
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MS_Symbol
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#MS_Turkish
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#NEXT
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder subclass:#NullEncoder
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::NullEncoder class instanceVariableNames:'mySingleInstance'

"
 No other class instance variables are inherited by this class.
"
!

CharacterEncoder subclass:#OtherEncoding
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::TwoByteEncoder subclass:#SJIS
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::SingleByteEncoder subclass:#ASCII
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder::TwoByteEncoder subclass:#BIG5
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

CharacterEncoder subclass:#TwoStepEncoder
	instanceVariableNames:'encoder1 encoder2'
	classVariableNames:''
	poolDictionaries:''
	privateIn:CharacterEncoder
!

!CharacterEncoder class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 2004 by eXept Software AG
	      All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
!

documentation
"
    unfinished code - please read howToAddMoreCoders.

    Character mappings are based on information in character maps found at either:
	http://std.dkuug.dk/i18n/charmaps
    or:
	http://www.unicode.org/Public/MAPPINGS

    No Warranty.
"
!

examples
"
    |s1 s2|

    s1 := 'hello'.
    s2 := CharacterEncoder encode:s1 from:#'iso8859-1' into:#'unicode'.
    s2


    |s1 s2|

    s1 := 'hello'.
    s2 := CharacterEncoder encode:s1 from:#'iso8859-1' into:#'iso8859-7'.
    s2
"
!

howToAddMoreCoders
"
    Coders can be hand-written or automagically generated via  a mapping table.
    Examples for hand-written coders are UTF8_to_ISO10464 or JIS0208_to_JIS7.

    The table driven encode/decode methods can be generated from a character mapping document
    as found on the unicode consortium host
        (for example: 'http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT')

    or from the i18n character maps:
        (for example: 'http://std.dkuug.dk/i18n/charmaps/ISO-8859-1

    In order to add another coder (for example: for finish EBCDIC or ms-codePage 278),
    perform the following steps:
        - create a private subclass of SingleByteEncoder named (for example) CP267.

        - define the mappingURL1_relativeName (if the table is found on 'www.unicode.org')
          or the mappingURL2_relativeName (if it is found on 'std.dkuug.dk') method, which
          should return the name of the tables file, relative to the top directory there
          (which is '.../Public/MAPPINGS' on www.unicode.org and '.../i18n/charmaops' on 'std.dkuug.dk'.

          In this example, the table from 'std.dkuug.dk' is used, and named 'EBCDIC-CP-FI' there.

        - generate code by evaluating:
            CharacterEncoder::CP267 generateCode

    Thats all !!


    The existing code was generated by:

        CharacterEncoder::SingleByteEncoder subclassesDo:[:cls | Transcript showCR:cls name. cls flushCode; generateCode ]
        CharacterEncoder::SingleByteEncoder subclassesDo:[:cls | cls allSubclassesDo:[:sub | Transcript showCR:sub name. sub flushCode; generateSubclassCode]]

    or individually:
        CharacterEncoder::ASCII flushCode; generateCode.
        CharacterEncoder::ISO8859_1 flushCode; generateCode.
        CharacterEncoder::ISO8859_2 flushCode; generateCode.
        CharacterEncoder::ISO8859_3 flushCode; generateCode.
        CharacterEncoder::ISO8859_4 flushCode; generateCode.
        CharacterEncoder::ISO8859_5 flushCode; generateCode.
        CharacterEncoder::ISO8859_6 flushCode; generateCode.
        CharacterEncoder::ISO8859_7 flushCode; generateCode.
        CharacterEncoder::ISO8859_8 flushCode; generateCode.
        CharacterEncoder::ISO8859_9 flushCode; generateCode.
        CharacterEncoder::ISO8859_10 flushCode; generateCode.
        CharacterEncoder::ISO8859_11 flushCode; generateCode.
        CharacterEncoder::ISO8859_13 flushCode; generateCode.
        CharacterEncoder::ISO8859_14 flushCode; generateCode.
        CharacterEncoder::ISO8859_15 flushCode; generateCode.
        CharacterEncoder::ISO8859_16 flushCode; generateCode.
        CharacterEncoder::KOI8_R flushCode; generateCode.
        CharacterEncoder::GSM0338 flushCode; generateCode.

        CharacterEncoder::KOI8_U flushCode; generateSubclassCode.

        CharacterEncoder::JIS0208 flushCode; generateCode.
"
! !

!CharacterEncoder class methodsFor:'instance creation'!

encoderFor:encodingNameSymbol
    "given the name of an encoding, return an encoder-instance which can map these from/into unicode."

    ^ self
        encoderFor:encodingNameSymbol 
        ifAbsent:[
            self error:'no encoder for ' , encodingNameSymbol mayProceed:true.
            NullEncoder new
        ]

    "
     CharacterEncoder encoderFor:#'latin1'       
     self encoderFor:#'arabic'       
     self encoderFor:#'ms-arabic'       
     self encoderFor:#'iso8859-5'    
     self encoderFor:#'koi8-r'      
     self encoderFor:#'koi8-u'      
     self encoderFor:#'jis0208'      
     self encoderFor:#'jis7'      
    "
!

encoderFor:encodingNameSymbol ifAbsent:exceptionValue
    "given the name of an encoding, return an encoder-instance which can map these from/into unicode."

    |enc cls lcName name|

    encodingNameSymbol includesMatchCharacters ifTrue:[
        self allSubclassesDo:[:cls |
            cls nameOfDecodedCode == #'unicode' ifTrue:[
                (cls namesOfEncoding contains:[:any | encodingNameSymbol matches:any]) ifTrue:[
                    ^ cls new.
                ]
            ].
        ].
        ^ exceptionValue value
    ].

    lcName := encodingNameSymbol asLowercase asSymbolIfInterned.
    name := lcName ? encodingNameSymbol.

    AccessLock critical:[
        enc := EncodersByName at:name ifAbsent:nil.
    ].
    enc notNil ifTrue:[^ enc ].

    cls := EncoderClassesByName at:name ifAbsent:nil.
    cls notNil ifTrue:[
        enc := cls new.
        AccessLock critical:[
            EncodersByName at:name put:enc.
        ].
        ^ enc 
    ].

    self allSubclassesDo:[:cls |
        cls nameOfDecodedCode == #'unicode' ifTrue:[
            (cls namesOfEncoding includes:name) ifTrue:[
                enc := cls new.
                AccessLock critical:[
                    EncodersByName at:name put:enc.    
                ].
                ^ enc.
            ]
        ].
    ].

    self allSubclassesDo:[:cls |
        (cls namesOfEncoding includes:name) ifTrue:[
            "/ ok, found some other encoder - need a compound encoder then.
            "/ the one found encodes into what we need, but needs something else as input.
            
            enc := TwoStepEncoder new
                encoder1:(self encoderFor:(cls nameOfDecodedCode))
                encoder2:(cls new).
            AccessLock critical:[
                EncodersByName at:name put:enc.    
            ].
            ^ enc.
        ].
    ].
    ^ exceptionValue value

    "
     CharacterEncoder encoderFor:#'latin1'       
     self encoderFor:#'arabic'              
     self encoderFor:#'ms-arabic'           
     self encoderFor:#'iso8859-5'           
     self encoderFor:#'koi8-r'      
     self encoderFor:#'koi8-u'      
     self encoderFor:#'jis0208'      
     self encoderFor:#'jis7'      
     self encoderFor:#'unicode'      
    "
!

encoderToEncodeFrom:oldEncodingArg into:newEncodingArg
    |oldEncoding newEncoding encoder decoder|

    oldEncoding := oldEncodingArg ? #'unicode'.
    oldEncoding == #'iso10646-1' ifTrue:[ oldEncoding :=  #'unicode'].
    newEncoding := newEncodingArg ? #'unicode'.
    newEncoding == #'iso10646-1' ifTrue:[ newEncoding :=  #'unicode'].

    oldEncoding == newEncoding ifTrue:[^ NullEncoder new].
    (oldEncoding match:newEncoding) ifTrue:[^ NullEncoder new].
    "/ (newEncoding match:oldEncoding) ifTrue:[^ NullEncoder new].

    (oldEncoding == #unicode) ifTrue:[
        (newEncoding == #unicode) ifTrue:[^ NullEncoder new].

        "/ unicode -> something
        ^ self encoderFor:newEncoding.
    ].
    (newEncoding == #unicode) ifTrue:[
        "/ something -> unicode 
        decoder := self encoderFor:oldEncoding.
        ^ InverseEncoder new decoder:decoder.
    ].

    "/ look for a specialized encoder...
    self allSubclassesDo:[:cls |
        (cls namesOfEncoding includes:oldEncoding) ifTrue:[
            |encoderForDecodedCode|

            encoderForDecodedCode := self encoderFor:(cls nameOfDecodedCode).
            (encoderForDecodedCode namesOfEncoding includes:newEncoding) ifTrue:[
                ^ InverseEncoder new decoder:cls new. 
            ]
        ].
        (cls namesOfEncoding includes:newEncoding) ifTrue:[
            |encoderForDecodedCode|

            encoderForDecodedCode := self encoderFor:(cls nameOfDecodedCode).
            (encoderForDecodedCode namesOfEncoding includes:oldEncoding) ifTrue:[
                ^ cls new. 
            ]
        ].
    ].
    
    "/ do it as: oldEncoding -> unicode -> newEncoding

    "/ something -> unicode 
    decoder := self encoderFor:oldEncoding.

    "/ unicode -> something
    encoder := self encoderFor:newEncoding.
    ^ CompoundEncoder new encoder:encoder decoder:decoder.

    "
     CharacterEncoder encoderToEncodeFrom:#'latin1' into:#'jis7'      
     self encoderFor:#'arabic'              
     self encoderFor:#'ms-arabic'           
     self encoderFor:#'iso8859-5'           
     self encoderFor:#'koi8-r'      
     self encoderFor:#'koi8-u'      
     self encoderFor:#'jis0208'      
     self encoderFor:#'jis7'      
     self encoderFor:#'unicode'      
    "
! !

!CharacterEncoder class methodsFor:'Compatibility-ST80'!

encoderNamed: encoderName
    "/ q & d hack

    encoderName == #default ifTrue:[
        ^ DefaultEncoder new
    ].
self halt.
    ^ self new
!

platformName
    ^ OperatingSystem platformName

    "Created: 20.6.1997 / 17:34:03 / cg"
    "Modified: 20.6.1997 / 17:38:40 / cg"
! !

!CharacterEncoder class methodsFor:'class initialization'!

initialize
    AccessLock := Semaphore forMutualExclusion.

    EncodersByName := IdentityDictionary new.
    EncoderClassesByName := IdentityDictionary new.

    EncoderClassesByName at:#'iso8859-1' put:ISO8859_1.    
    EncoderClassesByName at:#'iso8859-2' put:ISO8859_2.    
    EncoderClassesByName at:#'iso8859-3' put:ISO8859_3.    
    EncoderClassesByName at:#'iso8859-4' put:ISO8859_4.    
    EncoderClassesByName at:#'iso8859-5' put:ISO8859_5.    
    EncoderClassesByName at:#'iso8859-6' put:ISO8859_6.    
    EncoderClassesByName at:#'iso8859-7' put:ISO8859_7.    
    EncoderClassesByName at:#'iso8859-8' put:ISO8859_8.    
    EncoderClassesByName at:#'iso8859-9' put:ISO8859_9.    
    EncoderClassesByName at:#'iso8859-10' put:ISO8859_10.    
    EncoderClassesByName at:#'iso8859-11' put:ISO8859_11.    
    EncoderClassesByName at:#'iso8859-13' put:ISO8859_13.    
    EncoderClassesByName at:#'iso8859-14' put:ISO8859_14.    
    EncoderClassesByName at:#'iso8859-15' put:ISO8859_15.    
    EncoderClassesByName at:#'iso8859-16' put:ISO8859_16.    

    EncoderClassesByName at:#'big5' put:BIG5.    
    EncoderClassesByName at:#'cns11643' put:CNS11643.    
    EncoderClassesByName at:#'gb2313-1980' put:GB2313_1980.    
    EncoderClassesByName at:#'jis0201' put:JIS0201.    
    EncoderClassesByName at:#'jis0208' put:JIS0208.    
    EncoderClassesByName at:#'jis0212' put:JIS0212.    
    EncoderClassesByName at:#'sjis' put:SJIS.    
    EncoderClassesByName at:#'ksc5601' put:KSC5601.    
    EncoderClassesByName at:#'koi8-r' put:KOI8_R.    
    EncoderClassesByName at:#'koi8-u' put:KOI8_U.    

    EncoderClassesByName at:#'next' put:NEXT.    

    "
     self initialize
    "
! !

!CharacterEncoder class methodsFor:'encoding & decoding'!

decode:aCodePoint
    ^ self new decode:aCodePoint
!

decodeString:aString
    ^ self new decodeString:aString
!

decodeString:aString from:oldEncoding
    ^ self encodeString:aString from:oldEncoding into:'unicode'
!

encode:aCodePoint
    ^ self new encode:aCodePoint

    "
     ISO8859_1 encode:16r00FF   
     ISO8859_1 decodeString:'hello'
     ISO8859_1 encodeString:(ISO8859_1 decodeString:'hello') 

     ISO8859_5 decodeString:(String 
				with:(Character value:16rE4)
				with:(Character value:16rE0)) 
    "
!

encodeString:aUnicodeString
    "given a string in unicode, return a string in my encoding for it"

    ^ self new encodeString:aUnicodeString

    "
     ISO8859_1 decodeString:'hello'
    "
!

encodeString:aString from:oldEncodingArg into:newEncodingArg
    |oldEncoding newEncoding|

    oldEncoding := oldEncodingArg ? #'unicode'.
    oldEncoding == #'iso10646-1' ifTrue:[ oldEncoding :=  #'unicode'].
    newEncoding := newEncodingArg ? #'unicode'.
    newEncoding == #'iso10646-1' ifTrue:[ newEncoding :=  #'unicode'].

    oldEncoding == newEncoding ifTrue:[^ aString].

    ^ (self encoderToEncodeFrom:oldEncoding into:newEncoding) encodeString:aString.


"/        s := CharacterEncoder encodeString:s from:characterEncoding into:fontsEncoding.
!

encodeString:aString into:newEncoding
    ^ self encodeString:aString from:'unicode' into:newEncoding
! !

!CharacterEncoder class methodsFor:'private'!

flushCode
    self flushSingletons.

    self isAbstract ifFalse:[
	self class removeSelector:#mapping.
    ].
    self allSubclassesDo:[:cls | 
	cls isAbstract ifFalse:[
	    cls flushCode 
	]
    ].
    self allSubclassesDo:[:cls | 
	cls isAbstract ifFalse:[
	    cls generateCode.
	]
    ].

    "
     self flushCode
    "
!

flushSingletons
    EncoderClassesByName := IdentityDictionary new.
    EncodersByName := IdentityDictionary new.

    self allSubclassesDo:[:cls | cls flushSingletons].

    "
     self flushSingletons
    "
! !

!CharacterEncoder class methodsFor:'private-mapping setup'!

generateCode
    (CharacterEncoderCodeGenerator new targetClass:self) generateCode.
!

generateSubclassCode
    (CharacterEncoderCodeGenerator new targetClass:self) generateSubclassCode.
!

mapFileURL1_codeColumn
    ^ 1
!

mapFileURL1_relativePathName
    "raise an error: must be redefined in concrete subclass(es)"
    
    ^ nil
!

mapFileURL2_relativePathName
    "raise an error: must be redefined in concrete subclass(es)"
    
    ^ nil
!

mappingURL1
    "raise an error: must be redefined in concrete subclass(es)"
    
    |rel|

    rel := self mapFileURL1_relativePathName.
    rel isNil ifTrue:[
	^ nil
    ].
    ^ 'http://www.unicode.org/Public/MAPPINGS/' , rel
!

mappingURL2
    "raise an error: must be redefined in concrete subclass(es)"
    
    |rel|

    rel := self mapFileURL2_relativePathName.
    rel isNil ifTrue:[
	^ nil
    ].
    ^ 'http://std.dkuug.dk/i18n/charmaps/' , rel
! !

!CharacterEncoder class methodsFor:'queries'!

isEncoding:subSetEncodingArg subSetOf:superSetEncodingArg
    "return true, if superSetEncoding encoding includes all characters of subSetEncoding"

    |subSetEncoding superSetEncoding|

    subSetEncodingArg = superSetEncodingArg ifTrue:[^ true].
    subSetEncoding := subSetEncodingArg asLowercase.
    superSetEncoding := superSetEncodingArg asLowercase.

    (subSetEncoding match:superSetEncoding) ifTrue:[^ true].

    (('iso10646*' match:superSetEncoding) or:[superSetEncoding = 'unicode']) ifTrue:[
        ('ascii*' match:subSetEncoding) ifTrue:[^ true].
        ('iso8859*' match:subSetEncoding) ifTrue:[^ true].
        ('jis*' match:subSetEncoding) ifTrue:[^ true].
        ('koi8*' match:subSetEncoding) ifTrue:[^ true].
        ('ksc*' match:subSetEncoding) ifTrue:[^ true].
        ('big*' match:subSetEncoding) ifTrue:[^ true].
        ('cns*' match:subSetEncoding) ifTrue:[^ true].
        ('gb2312*' match:subSetEncoding) ifTrue:[^ true].
    ].

    "/ if the subSet is iso8859-*, that means ascii (i.e. the lower 7 bits of iso8859 only).
    ((subSetEncoding = 'iso8859*') or:[subSetEncoding = 'iso8859-*']) ifTrue:[
        ('ascii*' match:superSetEncoding) ifTrue:[^ true].
    ].
    (subSetEncoding = 'ascii') ifTrue:[
        ('iso8859*' match:superSetEncoding) ifTrue:[^ true].
    ].

    "/ TODO: check the charSets mappingTables...
    "/ self halt.
    ^ false.
!

nameOfDecodedCode
    "Most coders decode from their code into unicode / encode from unicode into their code.
     There are a few exceptions to this, though - these must redefine this."
    
    ^ #'unicode'
!

nameOfEncoding
    ^ (self nameWithoutPrefix asLowercase copyReplaceAll:$_ with:$-) asSymbol
!

namesOfEncoding
    ^ Array with:(self nameWithoutPrefix asLowercase asSymbol)
!

supportedExternalEncodings
    "return an array of arrays containing the names of supported
     encodings which are supported for external resources (i.e. files).
     The first element contains the internally used symbolic name,
     the second contains a user-readable string (description).
     More than one external name may be mapped onto the same symbolic."

    ^ #( 
         ('utf8'        'unicode as 8Bit characters'    )  
         ('utf7'        'unicode as 7Bit characters'    ) 
         nil
         ('ascii'       'common 7bit subset of iso8859' )
         ('iso8859-1'   'latin1'                        )
         ('iso8859-2'   'latin2'                        )
         ('iso8859-3'   'latin3'                        )
         ('iso8859-4'   'latin4'                        )
         ('iso8859-5'   'cyrillic'                      )
         ('iso8859-6'   'arabic'                        )
         ('iso8859-7'   'greek'                         )
         ('iso8859-8'   'hebrew'                        )
         nil
         ('koi8-r'      'cyrillic'                      )
         nil
         ('cp437'       'msdos US / codepage 437'       )
         ('cp850'       'msdos Latin1 codepage 850'     )
         ('mac'         'macintosh 8 bit'               )
         ('next'        'NeXT 8 bit'                    )
         ('hp'          'hpux 8 bit'                    )
         nil
         ('euc'         'EUC - extended unix code japanese'     )
         ('jis7'        'JIS7 - jis 7bit escape codes japanese' )
         ('iso-2022-jp' 'same as jis 7bit'                      )
         ('sjis'        'SJIS - shift jis 8bit codes japanese'  )
         nil
         ('gb'          'GB - mainland chin'                    )
         ('big5'        'BIG5 - taiwan'                         )
"/         ('ksc'         'korean'                        )
       )
!

userFriendlyNameOfEncoding
    ^ self nameOfEncoding asUppercaseFirst
! !

!CharacterEncoder class methodsFor:'testing'!

isAbstract
    ^ self == CharacterEncoder
!

isSingleByteCode
    self subclassResponsibility
! !

!CharacterEncoder methodsFor:'encoding & decoding'!

decode:anEncoding
    "given an integer in my encoding, return a unicode codePoint for it"

    self subclassResponsibility
!

decodeString:anEncodedString
    "given a string in my encoding, return a unicode-string for it"

    |newString|

    newString := String new:(anEncodedString size).
    1 to:anEncodedString size do:[:idx |
        |myCode uniCodePoint|

        myCode := (anEncodedString at:idx) asciiValue.
        uniCodePoint := self decode:myCode.
        uniCodePoint > 16rFF ifTrue:[
            uniCodePoint > 16rFFFF ifTrue:[
                newString bitsPerCharacter < 32 ifTrue:[
                    newString := Unicode32String fromString:newString.
                ]
            ] ifFalse:[
                newString bitsPerCharacter < 16 ifTrue:[
                    newString := Unicode16String fromString:newString.
                ]
            ].
        ].
        newString at:idx put:(Character value:uniCodePoint).
    ].
    ^ newString

    "
     ISO8859_1 decodeString:'hello'
    "
!

encode:aCodePoint
    "given a codePoint in unicode, return a byte in my encoding for it"

    self subclassResponsibility
!

encodeString:aUnicodeString
    "given a string in unicode, return a string in my encoding for it"

    |newString myCode uniCodePoint|

    newString := self newString:(aUnicodeString size).
    1 to:aUnicodeString size do:[:idx |
        uniCodePoint := (aUnicodeString at:idx) asciiValue.
        myCode := self encode:uniCodePoint.
        newString at:idx put:(Character value:myCode).
    ].
    ^ newString
! !

!CharacterEncoder methodsFor:'error handling'!

decodingError 
    "report an error that there is no unicode-codePoint for a given codePoint in this encoding.
     (which is unlikely) or that the encoding is undefined for that value
     (for example, holes in the ISO8859-3 encoding)"

    |badCodePoint sender|

    sender := thisContext sender.
    ((sender selector == #encode:) or:[sender selector == #decode:]) ifFalse:[
        badCodePoint := sender methodHome argAt:1
    ].
    ^ (EncodingFailedError new)
        defaultValue:(self defaultDecoderValue);
        parameter:badCodePoint;
        errorString:'invalid code'; 
        suspendedContext:sender;
        raiseRequest
!

defaultDecoderValue
    "placed into a decoded string, in case there is no unicode codePoint
     for a given encoded codePoint.
     (typically 16rFFFF)."
    
    ^ 16rFFFF
!

defaultEncoderValue
    "placed into an encoded string, in case there is no codePoint
     for a given unicode codePoint.
     (typically $?)."

    ^ $? asciiValue
!

encodingError
    "report an error that some unicode-codePoint cannot be represented by this encoder"

    |badCodePoint sender|

    sender := thisContext sender.
    ((sender selector == #encode:) or:[sender selector == #decode:]) ifFalse:[
        badCodePoint := sender methodHome argAt:1
    ].
    ^ (EncodingFailedError new)
        defaultValue:(self defaultEncoderValue);
        parameter:badCodePoint;
        errorString:'unrepresentable unicode'; 
        suspendedContext:sender;
        raiseRequest
! !

!CharacterEncoder methodsFor:'printing'!

printOn:aStream
    aStream 
        nextPutAll:(self nameOfDecodedCode);
        nextPutAll:'->';
        nextPutAll:(self nameOfEncoding)
! !

!CharacterEncoder methodsFor:'private'!

initialize

    "
     ISO8859_1 new initialize
    "
!

newString:size
    self subclassResponsibility
! !

!CharacterEncoder methodsFor:'queries'!

isNullEncoder
    ^ false
!

nameOfDecodedCode
    "Most coders decode from their code into unicode / encode from unicode into their code.
     There are a few exceptions to this, though - these must redefine this."
    
    ^ self class nameOfDecodedCode
!

nameOfEncoding
    ^ self class nameOfEncoding
!

namesOfEncoding
    ^ self class namesOfEncoding
!

userFriendlyNameOfEncoding
    ^ self class userFriendlyNameOfEncoding
! !

!CharacterEncoder::SingleByteEncoder class methodsFor:'instance creation'!

new
    "singleton - there is only one"

    mySingleInstance isNil ifTrue:[
	mySingleInstance := self basicNew initialize.
    ].
    ^ mySingleInstance
! !

!CharacterEncoder::SingleByteEncoder class methodsFor:'private'!

flushSingletons
    mySingleInstance := nil.
    super flushSingletons

    "
     self flushSingletons
    "
! !

!CharacterEncoder::SingleByteEncoder class methodsFor:'queries'!

maxCode
    ^ 255 
!

minCode
    ^ 0 
! !

!CharacterEncoder::SingleByteEncoder class methodsFor:'testing'!

isAbstract
    self == CharacterEncoder::SingleByteEncoder ifTrue:[^ true].
    ^ super isAbstract
!

isSingleByteCode
    ^ true
! !

!CharacterEncoder::SingleByteEncoder methodsFor:'private'!

newString:size
    ^ String uninitializedNew:size
! !

!CharacterEncoder::TwoByteEncoder class methodsFor:'instance creation'!

new
    "singleton - there is only one"

    mySingleInstance isNil ifTrue:[
	mySingleInstance := self basicNew initialize.
    ].
    ^ mySingleInstance
! !

!CharacterEncoder::TwoByteEncoder class methodsFor:'private'!

flushSingletons
    mySingleInstance := nil.
    super flushSingletons

    "
     self flushSingletons
    "
! !

!CharacterEncoder::TwoByteEncoder class methodsFor:'queries'!

maxCode
    ^ 16rFFFF 
!

minCode
    ^ 0 
! !

!CharacterEncoder::TwoByteEncoder class methodsFor:'testing'!

isAbstract
    self == CharacterEncoder::TwoByteEncoder ifTrue:[^ true].
    ^ super isAbstract
!

isSingleByteCode
    ^ false
! !

!CharacterEncoder::TwoByteEncoder methodsFor:'private'!

newString:size
    ^ TwoByteString uninitializedNew:size
! !

!CharacterEncoder::CNS11643 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'OBSOLETE/EASTASIA/OTHER/CNS11643.TXT'
! !

!CharacterEncoder::CP437 class methodsFor:'encoding & decoding'!

mapFileURL2_relativePathName
    ^ 'CP437'

    "
     self generateCode
    "
! !

!CharacterEncoder::CP437 class methodsFor:'mapping'!

mapping
"
# From: http://std.dkuug.dk/i18n/charmaps/CP437

<code_set_name> IBM437
<comment_char> %
<escape_char> /
% version: 1.0
% repertoiremap: mnemonic,ds
%  source: IBM NLS RM Vol2 SE09-8002-01, March 1990

% alias CP437
% alias 437
CHARMAP
<NU>                   /x00   <U0000> NULL (NUL)
<SH>                   /x01   <U0001> START OF HEADING (SOH)
<SX>                   /x02   <U0002> START OF TEXT (STX)
<EX>                   /x03   <U0003> END OF TEXT (ETX)
<ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
<EQ>                   /x05   <U0005> ENQUIRY (ENQ)
<AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
<BL>                   /x07   <U0007> BELL (BEL)
<BS>                   /x08   <U0008> BACKSPACE (BS)
<HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
<LF>                   /x0A   <U000A> LINE FEED (LF)
<VT>                   /x0B   <U000B> LINE TABULATION (VT)
<FF>                   /x0C   <U000C> FORM FEED (FF)
<CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
<SO>                   /x0E   <U000E> SHIFT OUT (SO)
<SI>                   /x0F   <U000F> SHIFT IN (SI)
<DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
<D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
<D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
<D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
<D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CN>                   /x18   <U0018> CANCEL (CAN)
<EM>                   /x19   <U0019> END OF MEDIUM (EM)
<SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
<EC>                   /x1B   <U001B> ESCAPE (ESC)
<FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
<GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
<RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
<US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
<SP>                   /x20   <U0020> SPACE
<!!>                    /x21   <U0021> EXCLAMATION MARK
<'>                    /x22   <U0022> QUOTATION MARK
<Nb>                   /x23   <U0023> NUMBER SIGN
<DO>                   /x24   <U0024> DOLLAR SIGN
<%>                    /x25   <U0025> PERCENT SIGN
<&>                    /x26   <U0026> AMPERSAND
<'>                    /x27   <U0027> APOSTROPHE
<(>                    /x28   <U0028> LEFT PARENTHESIS
<)>                    /x29   <U0029> RIGHT PARENTHESIS
<*>                    /x2A   <U002A> ASTERISK
<+>                    /x2B   <U002B> PLUS SIGN
<,>                    /x2C   <U002C> COMMA
<->                    /x2D   <U002D> HYPHEN-MINUS
<.>                    /x2E   <U002E> FULL STOP
<//>                   /x2F   <U002F> SOLIDUS
<0>                    /x30   <U0030> DIGIT ZERO
<1>                    /x31   <U0031> DIGIT ONE
<2>                    /x32   <U0032> DIGIT TWO
<3>                    /x33   <U0033> DIGIT THREE
<4>                    /x34   <U0034> DIGIT FOUR
<5>                    /x35   <U0035> DIGIT FIVE
<6>                    /x36   <U0036> DIGIT SIX
<7>                    /x37   <U0037> DIGIT SEVEN
<8>                    /x38   <U0038> DIGIT EIGHT
<9>                    /x39   <U0039> DIGIT NINE
<:>                    /x3A   <U003A> COLON
<;>                    /x3B   <U003B> SEMICOLON
<<>                    /x3C   <U003C> LESS-THAN SIGN
<=>                    /x3D   <U003D> EQUALS SIGN
</>>                   /x3E   <U003E> GREATER-THAN SIGN
<?>                    /x3F   <U003F> QUESTION MARK
<At>                   /x40   <U0040> COMMERCIAL AT
<A>                    /x41   <U0041> LATIN CAPITAL LETTER A
<B>                    /x42   <U0042> LATIN CAPITAL LETTER B
<C>                    /x43   <U0043> LATIN CAPITAL LETTER C
<D>                    /x44   <U0044> LATIN CAPITAL LETTER D
<E>                    /x45   <U0045> LATIN CAPITAL LETTER E
<F>                    /x46   <U0046> LATIN CAPITAL LETTER F
<G>                    /x47   <U0047> LATIN CAPITAL LETTER G
<H>                    /x48   <U0048> LATIN CAPITAL LETTER H
<I>                    /x49   <U0049> LATIN CAPITAL LETTER I
<J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
<K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
<L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
<M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
<N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
<O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
<P>                    /x50   <U0050> LATIN CAPITAL LETTER P
<Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
<R>                    /x52   <U0052> LATIN CAPITAL LETTER R
<S>                    /x53   <U0053> LATIN CAPITAL LETTER S
<T>                    /x54   <U0054> LATIN CAPITAL LETTER T
<U>                    /x55   <U0055> LATIN CAPITAL LETTER U
<V>                    /x56   <U0056> LATIN CAPITAL LETTER V
<W>                    /x57   <U0057> LATIN CAPITAL LETTER W
<X>                    /x58   <U0058> LATIN CAPITAL LETTER X
<Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
<Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
<<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
<////>                 /x5C   <U005C> REVERSE SOLIDUS
<)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
<'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
<_>                    /x5F   <U005F> LOW LINE
<'!!>                   /x60   <U0060> GRAVE ACCENT
<a>                    /x61   <U0061> LATIN SMALL LETTER A
<b>                    /x62   <U0062> LATIN SMALL LETTER B
<c>                    /x63   <U0063> LATIN SMALL LETTER C
<d>                    /x64   <U0064> LATIN SMALL LETTER D
<e>                    /x65   <U0065> LATIN SMALL LETTER E
<f>                    /x66   <U0066> LATIN SMALL LETTER F
<g>                    /x67   <U0067> LATIN SMALL LETTER G
<h>                    /x68   <U0068> LATIN SMALL LETTER H
<i>                    /x69   <U0069> LATIN SMALL LETTER I
<j>                    /x6A   <U006A> LATIN SMALL LETTER J
<k>                    /x6B   <U006B> LATIN SMALL LETTER K
<l>                    /x6C   <U006C> LATIN SMALL LETTER L
<m>                    /x6D   <U006D> LATIN SMALL LETTER M
<n>                    /x6E   <U006E> LATIN SMALL LETTER N
<o>                    /x6F   <U006F> LATIN SMALL LETTER O
<p>                    /x70   <U0070> LATIN SMALL LETTER P
<q>                    /x71   <U0071> LATIN SMALL LETTER Q
<r>                    /x72   <U0072> LATIN SMALL LETTER R
<s>                    /x73   <U0073> LATIN SMALL LETTER S
<t>                    /x74   <U0074> LATIN SMALL LETTER T
<u>                    /x75   <U0075> LATIN SMALL LETTER U
<v>                    /x76   <U0076> LATIN SMALL LETTER V
<w>                    /x77   <U0077> LATIN SMALL LETTER W
<x>                    /x78   <U0078> LATIN SMALL LETTER X
<y>                    /x79   <U0079> LATIN SMALL LETTER Y
<z>                    /x7A   <U007A> LATIN SMALL LETTER Z
<(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
<!!!!>                   /x7C   <U007C> VERTICAL LINE
<!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
<'?>                   /x7E   <U007E> TILDE
<DT>                   /x7F   <U007F> DELETE (DEL)
<C,>                   /x80   <U00C7> LATIN CAPITAL LETTER C WITH CEDILLA
<u:>                   /x81   <U00FC> LATIN SMALL LETTER U WITH DIAERESIS
<e'>                   /x82   <U00E9> LATIN SMALL LETTER E WITH ACUTE
<a/>>                  /x83   <U00E2> LATIN SMALL LETTER A WITH CIRCUMFLEX
<a:>                   /x84   <U00E4> LATIN SMALL LETTER A WITH DIAERESIS
<a!!>                   /x85   <U00E0> LATIN SMALL LETTER A WITH GRAVE
<aa>                   /x86   <U00E5> LATIN SMALL LETTER A WITH RING ABOVE
<c,>                   /x87   <U00E7> LATIN SMALL LETTER C WITH CEDILLA
<e/>>                  /x88   <U00EA> LATIN SMALL LETTER E WITH CIRCUMFLEX
<e:>                   /x89   <U00EB> LATIN SMALL LETTER E WITH DIAERESIS
<e!!>                   /x8A   <U00E8> LATIN SMALL LETTER E WITH GRAVE
<i:>                   /x8B   <U00EF> LATIN SMALL LETTER I WITH DIAERESIS
<i/>>                  /x8C   <U00EE> LATIN SMALL LETTER I WITH CIRCUMFLEX
<i!!>                   /x8D   <U00EC> LATIN SMALL LETTER I WITH GRAVE
<A:>                   /x8E   <U00C4> LATIN CAPITAL LETTER A WITH DIAERESIS
<AA>                   /x8F   <U00C5> LATIN CAPITAL LETTER A WITH RING ABOVE
<E'>                   /x90   <U00C9> LATIN CAPITAL LETTER E WITH ACUTE
<ae>                   /x91   <U00E6> LATIN SMALL LETTER AE
<AE>                   /x92   <U00C6> LATIN CAPITAL LETTER AE
<o/>>                  /x93   <U00F4> LATIN SMALL LETTER O WITH CIRCUMFLEX
<o:>                   /x94   <U00F6> LATIN SMALL LETTER O WITH DIAERESIS
<o!!>                   /x95   <U00F2> LATIN SMALL LETTER O WITH GRAVE
<u/>>                  /x96   <U00FB> LATIN SMALL LETTER U WITH CIRCUMFLEX
<u!!>                   /x97   <U00F9> LATIN SMALL LETTER U WITH GRAVE
<y:>                   /x98   <U00FF> LATIN SMALL LETTER Y WITH DIAERESIS
<O:>                   /x99   <U00D6> LATIN CAPITAL LETTER O WITH DIAERESIS
<U:>                   /x9A   <U00DC> LATIN CAPITAL LETTER U WITH DIAERESIS
<Ct>                   /x9B   <U00A2> CENT SIGN
<Pd>                   /x9C   <U00A3> POUND SIGN
<Ye>                   /x9D   <U00A5> YEN SIGN
<Pt>                   /x9E   <U20A7> PESETA SIGN
<f2>                   /x9F   <U0192> LATIN SMALL LETTER F WITH HOOK
<a'>                   /xA0   <U00E1> LATIN SMALL LETTER A WITH ACUTE
<i'>                   /xA1   <U00ED> LATIN SMALL LETTER I WITH ACUTE
<o'>                   /xA2   <U00F3> LATIN SMALL LETTER O WITH ACUTE
<u'>                   /xA3   <U00FA> LATIN SMALL LETTER U WITH ACUTE
<n?>                   /xA4   <U00F1> LATIN SMALL LETTER N WITH TILDE
<N?>                   /xA5   <U00D1> LATIN CAPITAL LETTER N WITH TILDE
<-a>                   /xA6   <U00AA> FEMININE ORDINAL INDICATOR
<-o>                   /xA7   <U00BA> MASCULINE ORDINAL INDICATOR
<?I>                   /xA8   <U00BF> INVERTED QUESTION MARK
<NI>                   /xA9   <U2310> REVERSED NOT SIGN
<NO>                   /xAA   <U00AC> NOT SIGN
<12>                   /xAB   <U00BD> VULGAR FRACTION ONE HALF
<14>                   /xAC   <U00BC> VULGAR FRACTION ONE QUARTER
<!!I>                   /xAD   <U00A1> INVERTED EXCLAMATION MARK
<<<>                   /xAE   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
</>/>>                 /xAF   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
<.S>                   /xB0   <U2591> LIGHT SHADE
<:S>                   /xB1   <U2592> MEDIUM SHADE
<?S>                   /xB2   <U2593> DARK SHADE
<vv>                   /xB3   <U2502> BOX DRAWINGS LIGHT VERTICAL
<vl>                   /xB4   <U2524> BOX DRAWINGS LIGHT VERTICAL AND LEFT
<vL>                   /xB5   <U2561> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
<Vl>                   /xB6   <U2562> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
<Dl>                   /xB7   <U2556> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
<dL>                   /xB8   <U2555> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
<VL>                   /xB9   <U2563> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
<VV>                   /xBA   <U2551> BOX DRAWINGS DOUBLE VERTICAL
<LD>                   /xBB   <U2557> BOX DRAWINGS DOUBLE DOWN AND LEFT
<UL>                   /xBC   <U255D> BOX DRAWINGS DOUBLE UP AND LEFT
<Ul>                   /xBD   <U255C> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
<uL>                   /xBE   <U255B> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
<dl>                   /xBF   <U2510> BOX DRAWINGS LIGHT DOWN AND LEFT
<ur>                   /xC0   <U2514> BOX DRAWINGS LIGHT UP AND RIGHT
<uh>                   /xC1   <U2534> BOX DRAWINGS LIGHT UP AND HORIZONTAL
<dh>                   /xC2   <U252C> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
<vr>                   /xC3   <U251C> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
<hh>                   /xC4   <U2500> BOX DRAWINGS LIGHT HORIZONTAL
<vh>                   /xC5   <U253C> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
<vR>                   /xC6   <U255E> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
<Vr>                   /xC7   <U255F> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
<UR>                   /xC8   <U255A> BOX DRAWINGS DOUBLE UP AND RIGHT
<DR>                   /xC9   <U2554> BOX DRAWINGS DOUBLE DOWN AND RIGHT
<UH>                   /xCA   <U2569> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
<DH>                   /xCB   <U2566> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
<VR>                   /xCC   <U2560> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
<HH>                   /xCD   <U2550> BOX DRAWINGS DOUBLE HORIZONTAL
<VH>                   /xCE   <U256C> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
<uH>                   /xCF   <U2567> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
<Uh>                   /xD0   <U2568> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
<dH>                   /xD1   <U2564> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
<Dh>                   /xD2   <U2565> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
<Ur>                   /xD3   <U2559> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
<uR>                   /xD4   <U2558> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
<dR>                   /xD5   <U2552> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
<Dr>                   /xD6   <U2553> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
<Vh>                   /xD7   <U256B> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
<vH>                   /xD8   <U256A> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
<ul>                   /xD9   <U2518> BOX DRAWINGS LIGHT UP AND LEFT
<dr>                   /xDA   <U250C> BOX DRAWINGS LIGHT DOWN AND RIGHT
<FB>                   /xDB   <U2588> FULL BLOCK
<LB>                   /xDC   <U2584> LOWER HALF BLOCK
<lB>                   /xDD   <U258C> LEFT HALF BLOCK
<RB>                   /xDE   <U2590> RIGHT HALF BLOCK
<TB>                   /xDF   <U2580> UPPER HALF BLOCK
<a*>                   /xE0   <U03B1> GREEK SMALL LETTER ALPHA
<ss>                   /xE1   <U00DF> LATIN SMALL LETTER SHARP S (German)
<G*>                   /xE2   <U0393> GREEK CAPITAL LETTER GAMMA
<p*>                   /xE3   <U03C0> GREEK SMALL LETTER PI
<S*>                   /xE4   <U03A3> GREEK CAPITAL LETTER SIGMA
<s*>                   /xE5   <U03C3> GREEK SMALL LETTER SIGMA
<My>                   /xE6   <U00B5> MICRO SIGN
<t*>                   /xE7   <U03C4> GREEK SMALL LETTER TAU
<F*>                   /xE8   <U03A6> GREEK CAPITAL LETTER PHI
<H*>                   /xE9   <U0398> GREEK CAPITAL LETTER THETA
<W*>                   /xEA   <U03A9> GREEK CAPITAL LETTER OMEGA
<d*>                   /xEB   <U03B4> GREEK SMALL LETTER DELTA
<00>                   /xEC   <U221E> INFINITY
<f*>                   /xED   <U03C6> GREEK SMALL LETTER PHI
<e*>                   /xEE   <U03B5> GREEK SMALL LETTER EPSILON
<(U>                   /xEF   <U2229> INTERSECTION
<=3>                   /xF0   <U2261> IDENTICAL TO
<+->                   /xF1   <U00B1> PLUS-MINUS SIGN
</>=>                  /xF2   <U2265> GREATER-THAN OR EQUAL TO
<=<>                   /xF3   <U2264> LESS-THAN OR EQUAL TO
<Iu>                   /xF4   <U2320> TOP HALF INTEGRAL
<Il>                   /xF5   <U2321> BOTTOM HALF INTEGRAL
<-:>                   /xF6   <U00F7> DIVISION SIGN
<?2>                   /xF7   <U2248> ALMOST EQUAL TO
<DG>                   /xF8   <U00B0> DEGREE SIGN
<.M>                   /xF9   <U00B7> MIDDLE DOT
<sb>                   /xFA   <U2022> BULLET
<RT>                   /xFB   <U221A> SQUARE ROOT
<nS>                   /xFC   <U207F> SUPERSCRIPT LATIN SMALL LETTER N
<2S>                   /xFD   <U00B2> SUPERSCRIPT TWO
<fS>                   /xFE   <U25A0> BLACK SQUARE
<NS>                   /xFF   <U00A0> NO-BREAK SPACE
<NUL>                  /x00   <U0000> NUL
<SOH>                  /x01   <U0001> START OF HEADING (SOH)
<STX>                  /x02   <U0002> START OF TEXT (STX)
<ETX>                  /x03   <U0003> END OF TEXT (ETX)
<EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
<ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
<ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
<alert>                /x07   <U0007> BELL (BEL)
<BEL>                  /x07   <U0007> BELL (BEL)
<backspace>            /x08   <U0008> BACKSPACE (BS)
<tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
<newline>              /x0A   <U000A> LINE FEED (LF)
<vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
<form-feed>            /x0C   <U000C> FORM FEED (FF)
<carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
<DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
<DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
<DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
<DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
<DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CAN>                  /x18   <U0018> CANCEL (CAN)
<SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
<ESC>                  /x1B   <U001B> ESCAPE (ESC)
<IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
<IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
<intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
<IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
<IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
<DEL>                  /x7F   <U007F> DELETE (DEL)
<space>                /x20   <U0020> SPACE
<exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
<quotation-mark>       /x22   <U0022> QUOTATION MARK
<number-sign>          /x23   <U0023> NUMBER SIGN
<dollar-sign>          /x24   <U0024> DOLLAR SIGN
<percent-sign>         /x25   <U0025> PERCENT SIGN
<ampersand>            /x26   <U0026> AMPERSAND
<apostrophe>           /x27   <U0027> APOSTROPHE
<left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
<right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
<asterisk>             /x2A   <U002A> ASTERISK
<plus-sign>            /x2B   <U002B> PLUS SIGN
<comma>                /x2C   <U002C> COMMA
<hyphen>               /x2D   <U002D> HYPHEN-MINUS
<hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
<period>               /x2E   <U002E> FULL STOP
<full-stop>            /x2E   <U002E> FULL STOP
<slash>                /x2F   <U002F> SOLIDUS
<solidus>              /x2F   <U002F> SOLIDUS
<zero>                 /x30   <U0030> DIGIT ZERO
<one>                  /x31   <U0031> DIGIT ONE
<two>                  /x32   <U0032> DIGIT TWO
<three>                /x33   <U0033> DIGIT THREE
<four>                 /x34   <U0034> DIGIT FOUR
<five>                 /x35   <U0035> DIGIT FIVE
<six>                  /x36   <U0036> DIGIT SIX
<seven>                /x37   <U0037> DIGIT SEVEN
<eight>                /x38   <U0038> DIGIT EIGHT
<nine>                 /x39   <U0039> DIGIT NINE
<colon>                /x3A   <U003A> COLON
<semicolon>            /x3B   <U003B> SEMICOLON
<less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
<equals-sign>          /x3D   <U003D> EQUALS SIGN
<greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
<question-mark>        /x3F   <U003F> QUESTION MARK
<commercial-at>        /x40   <U0040> COMMERCIAL AT
<left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
<backslash>            /x5C   <U005C> REVERSE SOLIDUS
<reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
<right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
<circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
<circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
<underscore>           /x5F   <U005F> LOW LINE
<low-line>             /x5F   <U005F> LOW LINE
<grave-accent>         /x60   <U0060> GRAVE ACCENT
<left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
<left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
<vertical-line>        /x7C   <U007C> VERTICAL LINE
<right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
<right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
<tilde>                /x7E   <U007E> TILDE
END CHARMAP

"
! !

!CharacterEncoder::CP437 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'cp437'  'cp-437' 'ibm-437' 'ms-cp437' 'ibm-cp437' )
! !

!CharacterEncoder::CompoundEncoder class methodsFor:'documentation'!

documentation
"
    A compoundEncoder uses two real encoders;
    to encode:
        string -> decoder(encode) -> encoder -> result
    to decode:
        string -> encoder -> decoder -> result

    |e|

    e := CompoundEncoder new.
    e encoder:ISO8859_5 decoder:KOI8_R.
    e decode:16rB0.  'CYRILLIC CAPITAL LETTER A; 16rB0 in 8859-5; 16rE1 in KOI8-R'.
    e encode:16rE1.  
"
! !

!CharacterEncoder::CompoundEncoder methodsFor:'accessing'!

encoder:encoderArg decoder:decoderArg  
    "set instance variables (automatically generated)"

    decoder := decoderArg.
    encoder := encoderArg.
! !

!CharacterEncoder::CompoundEncoder methodsFor:'encoding & decoding'!

decode:aCode
    ^ decoder encode:(encoder decode:aCode)
!

decodeString:aString
    ^ decoder encodeString:(encoder decodeString:aString)
!

encode:aCode
    ^ encoder encode:(decoder decode:aCode)
!

encodeString:aString
    ^ encoder encodeString:(decoder decodeString:aString)
! !

!CharacterEncoder::CompoundEncoder methodsFor:'printing'!

printOn:aStream
    aStream 
        nextPutAll:(decoder nameOfEncoding);
        nextPutAll:'->'.
"/        nextPutAll:(decoder nameOfDecodedCode);
"/        nextPutAll:'->';
"/        nextPutAll:(encoder nameOfEncoding)
    encoder printOn:aStream
! !

!CharacterEncoder::DefaultEncoder class methodsFor:'documentation'!

documentation
"
    That is only a dummy for ST80 compatibility
"
! !

!CharacterEncoder::GB2313_1980 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'OBSOLETE/EASTASIA/GB/GB2312.TXT'
! !

!CharacterEncoder::GB2313_1980 methodsFor:'private'!

newString:size
    ^ GBEncodedString new:size
! !

!CharacterEncoder::GSM0338 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'ETSI/GSM0338.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ETSI/GSM0338.TXT

#
#       Name:             GSM 03.38 to Unicode
#       Unicode version:  3.0
#       Table version:    1.1
#       Table format:     Format A
#       Date:             2000 May 30
#       Authors:          Ken Whistler <kenw@sybase.com>,
#                         Kent Karlsson <keka@im.se>,
#                         Markus Kuhn <mkuhn@acm.org>
#
#       Copyright (c) 2000 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ETSI GSM 03.38 7-bit default alphabet characters map into Unicode.
#       This mapping is based on ETSI TS 100 900 V7.2.0 (1999-07), with
#       a correction of 0x09 to *small* c-cedilla, instead of *capital*
#       C-cedilla.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ETSI GSM 03.38 7-bit default alphabet 
#                             code (in hex as 0xXX, or 0xXXXX for double-byte
#                             sequences)
#                Column #2 is the Unicode scalar value (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ETSI GSM 03.38 7-bit default alphabet code order.
#
#       Note that ETSI GSM 03.38 also allows for the use of UCS-2 (UTF-16
#       restricted to the BMP) in GSM/SMS messages.
#
#       Note also that there are commented Greek mappings for some 
#       capital Latin characters. This follows from the clear intent
#       of the ETSI GSM 03.38 to have glyph coverage for the uppercase
#       Greek alphabet by reusing Latin letters that have the same 
#       form as an uppercase Greek letter. Conversion implementations 
#       should be aware of this fact.
#
#       The ETSI GSM 03.38 specification shows an uppercase C-cedilla
#       glyph at 0x09. This may be the result of limited display
#       capabilities for handling characters with descenders. However, the
#       language coverage intent is clearly for the lowercase c-cedilla, as shown
#       in the mapping below. The mapping for uppercase C-cedilla is shown
#       in a commented line in the mapping table.
#
#       The ESC character 0x1B is
#       mapped to the no-break space character, unless it is part of a
#       valid ESC sequence, to facilitate round-trip compatibility in
#       the presence of unknown ESC sequences.
#
#       0x00 is NULL (when followed only by 0x00 up to the
#       end of (fixed byte length) message, possibly also up to
#       FORM FEED.  But 0x00 is also the code for COMMERCIAL AT
#       when some other character (CARRIAGE RETURN if nothing else)
#       comes after the 0x00.
#
#       Version history
#       1.0 version: first creation
#       1.1 version: fixed problem with the wrong line being a comment,
#                       added text regarding 0x00's interpretation,
#                       added second mapping for C-cedilla,
#                       added mapping of 0x1B escape to NBSP for display.
#
#       Updated versions of this file may be found in:
#               <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
#       Any comments or problems, contact <errata@unicode.org>
#       Please note that <errata@unicode.org> is an archival address;
#       notices will be checked, but do not expect an immediate response.
#
0x00    0x0040  #       COMMERCIAL AT
#0x00   0x0000  #       NULL (see note above)
0x01    0x00A3  #       POUND SIGN
0x02    0x0024  #       DOLLAR SIGN
0x03    0x00A5  #       YEN SIGN
0x04    0x00E8  #       LATIN SMALL LETTER E WITH GRAVE
0x05    0x00E9  #       LATIN SMALL LETTER E WITH ACUTE
0x06    0x00F9  #       LATIN SMALL LETTER U WITH GRAVE
0x07    0x00EC  #       LATIN SMALL LETTER I WITH GRAVE
0x08    0x00F2  #       LATIN SMALL LETTER O WITH GRAVE
0x09    0x00E7  #       LATIN SMALL LETTER C WITH CEDILLA
#0x09   0x00C7  #       LATIN CAPITAL LETTER C WITH CEDILLA (see note above)
0x0A    0x000A  #       LINE FEED
0x0B    0x00D8  #       LATIN CAPITAL LETTER O WITH STROKE
0x0C    0x00F8  #       LATIN SMALL LETTER O WITH STROKE
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x00C5  #       LATIN CAPITAL LETTER A WITH RING ABOVE
0x0F    0x00E5  #       LATIN SMALL LETTER A WITH RING ABOVE
0x10    0x0394  #       GREEK CAPITAL LETTER DELTA
0x11    0x005F  #       LOW LINE
0x12    0x03A6  #       GREEK CAPITAL LETTER PHI
0x13    0x0393  #       GREEK CAPITAL LETTER GAMMA
0x14    0x039B  #       GREEK CAPITAL LETTER LAMDA
0x15    0x03A9  #       GREEK CAPITAL LETTER OMEGA
0x16    0x03A0  #       GREEK CAPITAL LETTER PI
0x17    0x03A8  #       GREEK CAPITAL LETTER PSI
0x18    0x03A3  #       GREEK CAPITAL LETTER SIGMA
0x19    0x0398  #       GREEK CAPITAL LETTER THETA
0x1A    0x039E  #       GREEK CAPITAL LETTER XI
0x1B    0x00A0  #       ESCAPE TO EXTENSION TABLE (or displayed as NBSP, see note above)
0x1B0A  0x000C  #       FORM FEED
0x1B14  0x005E  #       CIRCUMFLEX ACCENT
0x1B28  0x007B  #       LEFT CURLY BRACKET
0x1B29  0x007D  #       RIGHT CURLY BRACKET
0x1B2F  0x005C  #       REVERSE SOLIDUS
0x1B3C  0x005B  #       LEFT SQUARE BRACKET
0x1B3D  0x007E  #       TILDE
0x1B3E  0x005D  #       RIGHT SQUARE BRACKET
0x1B40  0x007C  #       VERTICAL LINE
0x1B65  0x20AC  #       EURO SIGN
0x1C    0x00C6  #       LATIN CAPITAL LETTER AE
0x1D    0x00E6  #       LATIN SMALL LETTER AE
0x1E    0x00DF  #       LATIN SMALL LETTER SHARP S (German)
0x1F    0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x00A4  #       CURRENCY SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x00A1  #       INVERTED EXCLAMATION MARK
0x41    0x0041  #       LATIN CAPITAL LETTER A
#0x41   0x0391  #       GREEK CAPITAL LETTER ALPHA
0x42    0x0042  #       LATIN CAPITAL LETTER B
#0x42   0x0392  #       GREEK CAPITAL LETTER BETA
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
#0x45   0x0395  #       GREEK CAPITAL LETTER EPSILON
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
#0x48   0x0397  #       GREEK CAPITAL LETTER ETA
0x49    0x0049  #       LATIN CAPITAL LETTER I
#0x49   0x0399  #       GREEK CAPITAL LETTER IOTA
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
#0x4B   0x039A  #       GREEK CAPITAL LETTER KAPPA
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
#0x4D   0x039C  #       GREEK CAPITAL LETTER MU
0x4E    0x004E  #       LATIN CAPITAL LETTER N
#0x4E   0x039D  #       GREEK CAPITAL LETTER NU
0x4F    0x004F  #       LATIN CAPITAL LETTER O
#0x4F   0x039F  #       GREEK CAPITAL LETTER OMICRON
0x50    0x0050  #       LATIN CAPITAL LETTER P
#0x50   0x03A1  #       GREEK CAPITAL LETTER RHO
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
#0x54   0x03A4  #       GREEK CAPITAL LETTER TAU
0x55    0x0055  #       LATIN CAPITAL LETTER U
#0x55   0x03A5  #       GREEK CAPITAL LETTER UPSILON
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
#0x58   0x03A7  #       GREEK CAPITAL LETTER CHI
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
#0x5A   0x0396  #       GREEK CAPITAL LETTER ZETA
0x5B    0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS
0x5C    0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS
0x5D    0x00D1  #       LATIN CAPITAL LETTER N WITH TILDE
0x5E    0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS
0x5F    0x00A7  #       SECTION SIGN
0x60    0x00BF  #       INVERTED QUESTION MARK
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS
0x7C    0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS
0x7D    0x00F1  #       LATIN SMALL LETTER N WITH TILDE
0x7E    0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS
0x7F    0x00E0  #       LATIN SMALL LETTER A WITH GRAVE

"
! !

!CharacterEncoder::GSM0338 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16r-1 ifTrue:[ ^ code ].
    code > 16r1B65 ifTrue:[
	^ self decodingError.
    ].
    code <= 16r7F ifTrue:[
	^ #(
	   "16r0000"    16r0040 " COMMERCIAL AT " 
	   "16r0001"    16r00A3 " POUND SIGN " 
	   "16r0002"    16r0024 " DOLLAR SIGN " 
	   "16r0003"    16r00A5 " YEN SIGN " 
	   "16r0004"    16r00E8 " LATIN SMALL LETTER E WITH GRAVE " 
	   "16r0005"    16r00E9 " LATIN SMALL LETTER E WITH ACUTE " 
	   "16r0006"    16r00F9 " LATIN SMALL LETTER U WITH GRAVE " 
	   "16r0007"    16r00EC " LATIN SMALL LETTER I WITH GRAVE " 
	   "16r0008"    16r00F2 " LATIN SMALL LETTER O WITH GRAVE " 
	   "16r0009"    16r00E7 " LATIN SMALL LETTER C WITH CEDILLA " 
	   "16r000A"    16r000A " LINE FEED " 
	   "16r000B"    16r00D8 " LATIN CAPITAL LETTER O WITH STROKE " 
	   "16r000C"    16r00F8 " LATIN SMALL LETTER O WITH STROKE " 
	   "16r000D"    16r000D " CARRIAGE RETURN " 
	   "16r000E"    16r00C5 " LATIN CAPITAL LETTER A WITH RING ABOVE " 
	   "16r000F"    16r00E5 " LATIN SMALL LETTER A WITH RING ABOVE " 
	   "16r0010"    16r0394 " GREEK CAPITAL LETTER DELTA " 
	   "16r0011"    16r005F " LOW LINE " 
	   "16r0012"    16r03A6 " GREEK CAPITAL LETTER PHI " 
	   "16r0013"    16r0393 " GREEK CAPITAL LETTER GAMMA " 
	   "16r0014"    16r039B " GREEK CAPITAL LETTER LAMDA " 
	   "16r0015"    16r03A9 " GREEK CAPITAL LETTER OMEGA " 
	   "16r0016"    16r03A0 " GREEK CAPITAL LETTER PI " 
	   "16r0017"    16r03A8 " GREEK CAPITAL LETTER PSI " 
	   "16r0018"    16r03A3 " GREEK CAPITAL LETTER SIGMA " 
	   "16r0019"    16r0398 " GREEK CAPITAL LETTER THETA " 
	   "16r001A"    16r039E " GREEK CAPITAL LETTER XI " 
	   "16r001B"    16r00A0 " ESCAPE TO EXTENSION TABLE (or displayed as NBSP, see note above) " 
	   "16r001C"    16r00C6 " LATIN CAPITAL LETTER AE " 
	   "16r001D"    16r00E6 " LATIN SMALL LETTER AE " 
	   "16r001E"    16r00DF " LATIN SMALL LETTER SHARP S (German) " 
	   "16r001F"    16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE " 
	   "16r0020"    16r0020 " SPACE " 
	   "16r0021"    16r0021 " EXCLAMATION MARK " 
	   "16r0022"    16r0022 " QUOTATION MARK " 
	   "16r0023"    16r0023 " NUMBER SIGN " 
	   "16r0024"    16r00A4 " CURRENCY SIGN " 
	   "16r0025"    16r0025 " PERCENT SIGN " 
	   "16r0026"    16r0026 " AMPERSAND " 
	   "16r0027"    16r0027 " APOSTROPHE " 
	   "16r0028"    16r0028 " LEFT PARENTHESIS " 
	   "16r0029"    16r0029 " RIGHT PARENTHESIS " 
	   "16r002A"    16r002A " ASTERISK " 
	   "16r002B"    16r002B " PLUS SIGN " 
	   "16r002C"    16r002C " COMMA " 
	   "16r002D"    16r002D " HYPHEN-MINUS " 
	   "16r002E"    16r002E " FULL STOP " 
	   "16r002F"    16r002F " SOLIDUS " 
	   "16r0030"    16r0030 " DIGIT ZERO " 
	   "16r0031"    16r0031 " DIGIT ONE " 
	   "16r0032"    16r0032 " DIGIT TWO " 
	   "16r0033"    16r0033 " DIGIT THREE " 
	   "16r0034"    16r0034 " DIGIT FOUR " 
	   "16r0035"    16r0035 " DIGIT FIVE " 
	   "16r0036"    16r0036 " DIGIT SIX " 
	   "16r0037"    16r0037 " DIGIT SEVEN " 
	   "16r0038"    16r0038 " DIGIT EIGHT " 
	   "16r0039"    16r0039 " DIGIT NINE " 
	   "16r003A"    16r003A " COLON " 
	   "16r003B"    16r003B " SEMICOLON " 
	   "16r003C"    16r003C " LESS-THAN SIGN " 
	   "16r003D"    16r003D " EQUALS SIGN " 
	   "16r003E"    16r003E " GREATER-THAN SIGN " 
	   "16r003F"    16r003F " QUESTION MARK " 
	   "16r0040"    16r00A1 " INVERTED EXCLAMATION MARK " 
	   "16r0041"    16r0041 " LATIN CAPITAL LETTER A " 
	   "16r0042"    16r0042 " LATIN CAPITAL LETTER B " 
	   "16r0043"    16r0043 " LATIN CAPITAL LETTER C " 
	   "16r0044"    16r0044 " LATIN CAPITAL LETTER D " 
	   "16r0045"    16r0045 " LATIN CAPITAL LETTER E " 
	   "16r0046"    16r0046 " LATIN CAPITAL LETTER F " 
	   "16r0047"    16r0047 " LATIN CAPITAL LETTER G " 
	   "16r0048"    16r0048 " LATIN CAPITAL LETTER H " 
	   "16r0049"    16r0049 " LATIN CAPITAL LETTER I " 
	   "16r004A"    16r004A " LATIN CAPITAL LETTER J " 
	   "16r004B"    16r004B " LATIN CAPITAL LETTER K " 
	   "16r004C"    16r004C " LATIN CAPITAL LETTER L " 
	   "16r004D"    16r004D " LATIN CAPITAL LETTER M " 
	   "16r004E"    16r004E " LATIN CAPITAL LETTER N " 
	   "16r004F"    16r004F " LATIN CAPITAL LETTER O " 
	   "16r0050"    16r0050 " LATIN CAPITAL LETTER P " 
	   "16r0051"    16r0051 " LATIN CAPITAL LETTER Q " 
	   "16r0052"    16r0052 " LATIN CAPITAL LETTER R " 
	   "16r0053"    16r0053 " LATIN CAPITAL LETTER S " 
	   "16r0054"    16r0054 " LATIN CAPITAL LETTER T " 
	   "16r0055"    16r0055 " LATIN CAPITAL LETTER U " 
	   "16r0056"    16r0056 " LATIN CAPITAL LETTER V " 
	   "16r0057"    16r0057 " LATIN CAPITAL LETTER W " 
	   "16r0058"    16r0058 " LATIN CAPITAL LETTER X " 
	   "16r0059"    16r0059 " LATIN CAPITAL LETTER Y " 
	   "16r005A"    16r005A " LATIN CAPITAL LETTER Z " 
	   "16r005B"    16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
	   "16r005C"    16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
	   "16r005D"    16r00D1 " LATIN CAPITAL LETTER N WITH TILDE " 
	   "16r005E"    16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS " 
	   "16r005F"    16r00A7 " SECTION SIGN " 
	   "16r0060"    16r00BF " INVERTED QUESTION MARK " 
	   "16r0061"    16r0061 " LATIN SMALL LETTER A " 
	   "16r0062"    16r0062 " LATIN SMALL LETTER B " 
	   "16r0063"    16r0063 " LATIN SMALL LETTER C " 
	   "16r0064"    16r0064 " LATIN SMALL LETTER D " 
	   "16r0065"    16r0065 " LATIN SMALL LETTER E " 
	   "16r0066"    16r0066 " LATIN SMALL LETTER F " 
	   "16r0067"    16r0067 " LATIN SMALL LETTER G " 
	   "16r0068"    16r0068 " LATIN SMALL LETTER H " 
	   "16r0069"    16r0069 " LATIN SMALL LETTER I " 
	   "16r006A"    16r006A " LATIN SMALL LETTER J " 
	   "16r006B"    16r006B " LATIN SMALL LETTER K " 
	   "16r006C"    16r006C " LATIN SMALL LETTER L " 
	   "16r006D"    16r006D " LATIN SMALL LETTER M " 
	   "16r006E"    16r006E " LATIN SMALL LETTER N " 
	   "16r006F"    16r006F " LATIN SMALL LETTER O " 
	   "16r0070"    16r0070 " LATIN SMALL LETTER P " 
	   "16r0071"    16r0071 " LATIN SMALL LETTER Q " 
	   "16r0072"    16r0072 " LATIN SMALL LETTER R " 
	   "16r0073"    16r0073 " LATIN SMALL LETTER S " 
	   "16r0074"    16r0074 " LATIN SMALL LETTER T " 
	   "16r0075"    16r0075 " LATIN SMALL LETTER U " 
	   "16r0076"    16r0076 " LATIN SMALL LETTER V " 
	   "16r0077"    16r0077 " LATIN SMALL LETTER W " 
	   "16r0078"    16r0078 " LATIN SMALL LETTER X " 
	   "16r0079"    16r0079 " LATIN SMALL LETTER Y " 
	   "16r007A"    16r007A " LATIN SMALL LETTER Z " 
	   "16r007B"    16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS " 
	   "16r007C"    16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS " 
	   "16r007D"    16r00F1 " LATIN SMALL LETTER N WITH TILDE " 
	   "16r007E"    16r00FC " LATIN SMALL LETTER U WITH DIAERESIS " 
	   "16r007F"    16r00E0 " LATIN SMALL LETTER A WITH GRAVE " 
	   ) at:(code - 16r-1).
    ].
    code <= 16r1B09 ifTrue:[
	^ self decodingError.
    ].
    code <= 16r1B40 ifTrue:[
	code <= 16r1B14 ifTrue:[
	    [
		|t|
		t := #[
		   "16r1B0A"    16r0C " FORM FEED " 
		   "16r1B0B"    16r00 " invalid " 
		   "16r1B0C"    16r00 " invalid " 
		   "16r1B0D"    16r00 " invalid " 
		   "16r1B0E"    16r00 " invalid " 
		   "16r1B0F"    16r00 " invalid " 
		   "16r1B10"    16r00 " invalid " 
		   "16r1B11"    16r00 " invalid " 
		   "16r1B12"    16r00 " invalid " 
		   "16r1B13"    16r00 " invalid " 
		   "16r1B14"    16r5E " CIRCUMFLEX ACCENT " 
		   ] at:(code - 16r1B09).
		t == 0 ifFalse:[^ t].
		^ self decodingError.
	    ] value.
	].
	code <= 16r1B27 ifTrue:[
	    ^ self decodingError.
	].
	[
	    |t|
	    t := #[
	       "16r1B28"    16r7B " LEFT CURLY BRACKET " 
	       "16r1B29"    16r7D " RIGHT CURLY BRACKET " 
	       "16r1B2A"    16r00 " invalid " 
	       "16r1B2B"    16r00 " invalid " 
	       "16r1B2C"    16r00 " invalid " 
	       "16r1B2D"    16r00 " invalid " 
	       "16r1B2E"    16r00 " invalid " 
	       "16r1B2F"    16r5C " REVERSE SOLIDUS " 
	       "16r1B30"    16r00 " invalid " 
	       "16r1B31"    16r00 " invalid " 
	       "16r1B32"    16r00 " invalid " 
	       "16r1B33"    16r00 " invalid " 
	       "16r1B34"    16r00 " invalid " 
	       "16r1B35"    16r00 " invalid " 
	       "16r1B36"    16r00 " invalid " 
	       "16r1B37"    16r00 " invalid " 
	       "16r1B38"    16r00 " invalid " 
	       "16r1B39"    16r00 " invalid " 
	       "16r1B3A"    16r00 " invalid " 
	       "16r1B3B"    16r00 " invalid " 
	       "16r1B3C"    16r5B " LEFT SQUARE BRACKET " 
	       "16r1B3D"    16r7E " TILDE " 
	       "16r1B3E"    16r5D " RIGHT SQUARE BRACKET " 
	       "16r1B3F"    16r00 " invalid " 
	       "16r1B40"    16r7C " VERTICAL LINE " 
	       ] at:(code - 16r1B27).
	    t == 0 ifFalse:[^ t].
	    ^ self decodingError.
	] value.
    ].
    code <= 16r1B64 ifTrue:[
	^ self decodingError.
    ].
    ^  "16r1B65" 16r20AC " EURO SIGN " 
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16rA ifTrue:[ ^ unicode ].
    unicode > 16r20AC ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r3A9 ifTrue:[
	unicode <= 16rFC ifTrue:[
	    [
		|t|
		t := #(
		   "16r000B"    16rFFFF " invalid " 
		   "16r000C"    16r1B0A " FORM FEED " 
		   "16r000D"    16r000D " CARRIAGE RETURN " 
		   "16r000E"    16rFFFF " invalid " 
		   "16r000F"    16rFFFF " invalid " 
		   "16r0010"    16rFFFF " invalid " 
		   "16r0011"    16rFFFF " invalid " 
		   "16r0012"    16rFFFF " invalid " 
		   "16r0013"    16rFFFF " invalid " 
		   "16r0014"    16rFFFF " invalid " 
		   "16r0015"    16rFFFF " invalid " 
		   "16r0016"    16rFFFF " invalid " 
		   "16r0017"    16rFFFF " invalid " 
		   "16r0018"    16rFFFF " invalid " 
		   "16r0019"    16rFFFF " invalid " 
		   "16r001A"    16rFFFF " invalid " 
		   "16r001B"    16rFFFF " invalid " 
		   "16r001C"    16rFFFF " invalid " 
		   "16r001D"    16rFFFF " invalid " 
		   "16r001E"    16rFFFF " invalid " 
		   "16r001F"    16rFFFF " invalid " 
		   "16r0020"    16r0020 " SPACE " 
		   "16r0021"    16r0021 " EXCLAMATION MARK " 
		   "16r0022"    16r0022 " QUOTATION MARK " 
		   "16r0023"    16r0023 " NUMBER SIGN " 
		   "16r0024"    16r0002 " DOLLAR SIGN " 
		   "16r0025"    16r0025 " PERCENT SIGN " 
		   "16r0026"    16r0026 " AMPERSAND " 
		   "16r0027"    16r0027 " APOSTROPHE " 
		   "16r0028"    16r0028 " LEFT PARENTHESIS " 
		   "16r0029"    16r0029 " RIGHT PARENTHESIS " 
		   "16r002A"    16r002A " ASTERISK " 
		   "16r002B"    16r002B " PLUS SIGN " 
		   "16r002C"    16r002C " COMMA " 
		   "16r002D"    16r002D " HYPHEN-MINUS " 
		   "16r002E"    16r002E " FULL STOP " 
		   "16r002F"    16r002F " SOLIDUS " 
		   "16r0030"    16r0030 " DIGIT ZERO " 
		   "16r0031"    16r0031 " DIGIT ONE " 
		   "16r0032"    16r0032 " DIGIT TWO " 
		   "16r0033"    16r0033 " DIGIT THREE " 
		   "16r0034"    16r0034 " DIGIT FOUR " 
		   "16r0035"    16r0035 " DIGIT FIVE " 
		   "16r0036"    16r0036 " DIGIT SIX " 
		   "16r0037"    16r0037 " DIGIT SEVEN " 
		   "16r0038"    16r0038 " DIGIT EIGHT " 
		   "16r0039"    16r0039 " DIGIT NINE " 
		   "16r003A"    16r003A " COLON " 
		   "16r003B"    16r003B " SEMICOLON " 
		   "16r003C"    16r003C " LESS-THAN SIGN " 
		   "16r003D"    16r003D " EQUALS SIGN " 
		   "16r003E"    16r003E " GREATER-THAN SIGN " 
		   "16r003F"    16r003F " QUESTION MARK " 
		   "16r0040"    16r0000 " COMMERCIAL AT " 
		   "16r0041"    16r0041 " LATIN CAPITAL LETTER A " 
		   "16r0042"    16r0042 " LATIN CAPITAL LETTER B " 
		   "16r0043"    16r0043 " LATIN CAPITAL LETTER C " 
		   "16r0044"    16r0044 " LATIN CAPITAL LETTER D " 
		   "16r0045"    16r0045 " LATIN CAPITAL LETTER E " 
		   "16r0046"    16r0046 " LATIN CAPITAL LETTER F " 
		   "16r0047"    16r0047 " LATIN CAPITAL LETTER G " 
		   "16r0048"    16r0048 " LATIN CAPITAL LETTER H " 
		   "16r0049"    16r0049 " LATIN CAPITAL LETTER I " 
		   "16r004A"    16r004A " LATIN CAPITAL LETTER J " 
		   "16r004B"    16r004B " LATIN CAPITAL LETTER K " 
		   "16r004C"    16r004C " LATIN CAPITAL LETTER L " 
		   "16r004D"    16r004D " LATIN CAPITAL LETTER M " 
		   "16r004E"    16r004E " LATIN CAPITAL LETTER N " 
		   "16r004F"    16r004F " LATIN CAPITAL LETTER O " 
		   "16r0050"    16r0050 " LATIN CAPITAL LETTER P " 
		   "16r0051"    16r0051 " LATIN CAPITAL LETTER Q " 
		   "16r0052"    16r0052 " LATIN CAPITAL LETTER R " 
		   "16r0053"    16r0053 " LATIN CAPITAL LETTER S " 
		   "16r0054"    16r0054 " LATIN CAPITAL LETTER T " 
		   "16r0055"    16r0055 " LATIN CAPITAL LETTER U " 
		   "16r0056"    16r0056 " LATIN CAPITAL LETTER V " 
		   "16r0057"    16r0057 " LATIN CAPITAL LETTER W " 
		   "16r0058"    16r0058 " LATIN CAPITAL LETTER X " 
		   "16r0059"    16r0059 " LATIN CAPITAL LETTER Y " 
		   "16r005A"    16r005A " LATIN CAPITAL LETTER Z " 
		   "16r005B"    16r1B3C " LEFT SQUARE BRACKET " 
		   "16r005C"    16r1B2F " REVERSE SOLIDUS " 
		   "16r005D"    16r1B3E " RIGHT SQUARE BRACKET " 
		   "16r005E"    16r1B14 " CIRCUMFLEX ACCENT " 
		   "16r005F"    16r0011 " LOW LINE " 
		   "16r0060"    16rFFFF " invalid " 
		   "16r0061"    16r0061 " LATIN SMALL LETTER A " 
		   "16r0062"    16r0062 " LATIN SMALL LETTER B " 
		   "16r0063"    16r0063 " LATIN SMALL LETTER C " 
		   "16r0064"    16r0064 " LATIN SMALL LETTER D " 
		   "16r0065"    16r0065 " LATIN SMALL LETTER E " 
		   "16r0066"    16r0066 " LATIN SMALL LETTER F " 
		   "16r0067"    16r0067 " LATIN SMALL LETTER G " 
		   "16r0068"    16r0068 " LATIN SMALL LETTER H " 
		   "16r0069"    16r0069 " LATIN SMALL LETTER I " 
		   "16r006A"    16r006A " LATIN SMALL LETTER J " 
		   "16r006B"    16r006B " LATIN SMALL LETTER K " 
		   "16r006C"    16r006C " LATIN SMALL LETTER L " 
		   "16r006D"    16r006D " LATIN SMALL LETTER M " 
		   "16r006E"    16r006E " LATIN SMALL LETTER N " 
		   "16r006F"    16r006F " LATIN SMALL LETTER O " 
		   "16r0070"    16r0070 " LATIN SMALL LETTER P " 
		   "16r0071"    16r0071 " LATIN SMALL LETTER Q " 
		   "16r0072"    16r0072 " LATIN SMALL LETTER R " 
		   "16r0073"    16r0073 " LATIN SMALL LETTER S " 
		   "16r0074"    16r0074 " LATIN SMALL LETTER T " 
		   "16r0075"    16r0075 " LATIN SMALL LETTER U " 
		   "16r0076"    16r0076 " LATIN SMALL LETTER V " 
		   "16r0077"    16r0077 " LATIN SMALL LETTER W " 
		   "16r0078"    16r0078 " LATIN SMALL LETTER X " 
		   "16r0079"    16r0079 " LATIN SMALL LETTER Y " 
		   "16r007A"    16r007A " LATIN SMALL LETTER Z " 
		   "16r007B"    16r1B28 " LEFT CURLY BRACKET " 
		   "16r007C"    16r1B40 " VERTICAL LINE " 
		   "16r007D"    16r1B29 " RIGHT CURLY BRACKET " 
		   "16r007E"    16r1B3D " TILDE " 
		   "16r007F"    16rFFFF " invalid " 
		   "16r0080"    16rFFFF " invalid " 
		   "16r0081"    16rFFFF " invalid " 
		   "16r0082"    16rFFFF " invalid " 
		   "16r0083"    16rFFFF " invalid " 
		   "16r0084"    16rFFFF " invalid " 
		   "16r0085"    16rFFFF " invalid " 
		   "16r0086"    16rFFFF " invalid " 
		   "16r0087"    16rFFFF " invalid " 
		   "16r0088"    16rFFFF " invalid " 
		   "16r0089"    16rFFFF " invalid " 
		   "16r008A"    16rFFFF " invalid " 
		   "16r008B"    16rFFFF " invalid " 
		   "16r008C"    16rFFFF " invalid " 
		   "16r008D"    16rFFFF " invalid " 
		   "16r008E"    16rFFFF " invalid " 
		   "16r008F"    16rFFFF " invalid " 
		   "16r0090"    16rFFFF " invalid " 
		   "16r0091"    16rFFFF " invalid " 
		   "16r0092"    16rFFFF " invalid " 
		   "16r0093"    16rFFFF " invalid " 
		   "16r0094"    16rFFFF " invalid " 
		   "16r0095"    16rFFFF " invalid " 
		   "16r0096"    16rFFFF " invalid " 
		   "16r0097"    16rFFFF " invalid " 
		   "16r0098"    16rFFFF " invalid " 
		   "16r0099"    16rFFFF " invalid " 
		   "16r009A"    16rFFFF " invalid " 
		   "16r009B"    16rFFFF " invalid " 
		   "16r009C"    16rFFFF " invalid " 
		   "16r009D"    16rFFFF " invalid " 
		   "16r009E"    16rFFFF " invalid " 
		   "16r009F"    16rFFFF " invalid " 
		   "16r00A0"    16r001B " ESCAPE TO EXTENSION TABLE (or displayed as NBSP, see note above) " 
		   "16r00A1"    16r0040 " INVERTED EXCLAMATION MARK " 
		   "16r00A2"    16rFFFF " invalid " 
		   "16r00A3"    16r0001 " POUND SIGN " 
		   "16r00A4"    16r0024 " CURRENCY SIGN " 
		   "16r00A5"    16r0003 " YEN SIGN " 
		   "16r00A6"    16rFFFF " invalid " 
		   "16r00A7"    16r005F " SECTION SIGN " 
		   "16r00A8"    16rFFFF " invalid " 
		   "16r00A9"    16rFFFF " invalid " 
		   "16r00AA"    16rFFFF " invalid " 
		   "16r00AB"    16rFFFF " invalid " 
		   "16r00AC"    16rFFFF " invalid " 
		   "16r00AD"    16rFFFF " invalid " 
		   "16r00AE"    16rFFFF " invalid " 
		   "16r00AF"    16rFFFF " invalid " 
		   "16r00B0"    16rFFFF " invalid " 
		   "16r00B1"    16rFFFF " invalid " 
		   "16r00B2"    16rFFFF " invalid " 
		   "16r00B3"    16rFFFF " invalid " 
		   "16r00B4"    16rFFFF " invalid " 
		   "16r00B5"    16rFFFF " invalid " 
		   "16r00B6"    16rFFFF " invalid " 
		   "16r00B7"    16rFFFF " invalid " 
		   "16r00B8"    16rFFFF " invalid " 
		   "16r00B9"    16rFFFF " invalid " 
		   "16r00BA"    16rFFFF " invalid " 
		   "16r00BB"    16rFFFF " invalid " 
		   "16r00BC"    16rFFFF " invalid " 
		   "16r00BD"    16rFFFF " invalid " 
		   "16r00BE"    16rFFFF " invalid " 
		   "16r00BF"    16r0060 " INVERTED QUESTION MARK " 
		   "16r00C0"    16rFFFF " invalid " 
		   "16r00C1"    16rFFFF " invalid " 
		   "16r00C2"    16rFFFF " invalid " 
		   "16r00C3"    16rFFFF " invalid " 
		   "16r00C4"    16r005B " LATIN CAPITAL LETTER A WITH DIAERESIS " 
		   "16r00C5"    16r000E " LATIN CAPITAL LETTER A WITH RING ABOVE " 
		   "16r00C6"    16r001C " LATIN CAPITAL LETTER AE " 
		   "16r00C7"    16rFFFF " invalid " 
		   "16r00C8"    16rFFFF " invalid " 
		   "16r00C9"    16r001F " LATIN CAPITAL LETTER E WITH ACUTE " 
		   "16r00CA"    16rFFFF " invalid " 
		   "16r00CB"    16rFFFF " invalid " 
		   "16r00CC"    16rFFFF " invalid " 
		   "16r00CD"    16rFFFF " invalid " 
		   "16r00CE"    16rFFFF " invalid " 
		   "16r00CF"    16rFFFF " invalid " 
		   "16r00D0"    16rFFFF " invalid " 
		   "16r00D1"    16r005D " LATIN CAPITAL LETTER N WITH TILDE " 
		   "16r00D2"    16rFFFF " invalid " 
		   "16r00D3"    16rFFFF " invalid " 
		   "16r00D4"    16rFFFF " invalid " 
		   "16r00D5"    16rFFFF " invalid " 
		   "16r00D6"    16r005C " LATIN CAPITAL LETTER O WITH DIAERESIS " 
		   "16r00D7"    16rFFFF " invalid " 
		   "16r00D8"    16r000B " LATIN CAPITAL LETTER O WITH STROKE " 
		   "16r00D9"    16rFFFF " invalid " 
		   "16r00DA"    16rFFFF " invalid " 
		   "16r00DB"    16rFFFF " invalid " 
		   "16r00DC"    16r005E " LATIN CAPITAL LETTER U WITH DIAERESIS " 
		   "16r00DD"    16rFFFF " invalid " 
		   "16r00DE"    16rFFFF " invalid " 
		   "16r00DF"    16r001E " LATIN SMALL LETTER SHARP S (German) " 
		   "16r00E0"    16r007F " LATIN SMALL LETTER A WITH GRAVE " 
		   "16r00E1"    16rFFFF " invalid " 
		   "16r00E2"    16rFFFF " invalid " 
		   "16r00E3"    16rFFFF " invalid " 
		   "16r00E4"    16r007B " LATIN SMALL LETTER A WITH DIAERESIS " 
		   "16r00E5"    16r000F " LATIN SMALL LETTER A WITH RING ABOVE " 
		   "16r00E6"    16r001D " LATIN SMALL LETTER AE " 
		   "16r00E7"    16r0009 " LATIN SMALL LETTER C WITH CEDILLA " 
		   "16r00E8"    16r0004 " LATIN SMALL LETTER E WITH GRAVE " 
		   "16r00E9"    16r0005 " LATIN SMALL LETTER E WITH ACUTE " 
		   "16r00EA"    16rFFFF " invalid " 
		   "16r00EB"    16rFFFF " invalid " 
		   "16r00EC"    16r0007 " LATIN SMALL LETTER I WITH GRAVE " 
		   "16r00ED"    16rFFFF " invalid " 
		   "16r00EE"    16rFFFF " invalid " 
		   "16r00EF"    16rFFFF " invalid " 
		   "16r00F0"    16rFFFF " invalid " 
		   "16r00F1"    16r007D " LATIN SMALL LETTER N WITH TILDE " 
		   "16r00F2"    16r0008 " LATIN SMALL LETTER O WITH GRAVE " 
		   "16r00F3"    16rFFFF " invalid " 
		   "16r00F4"    16rFFFF " invalid " 
		   "16r00F5"    16rFFFF " invalid " 
		   "16r00F6"    16r007C " LATIN SMALL LETTER O WITH DIAERESIS " 
		   "16r00F7"    16rFFFF " invalid " 
		   "16r00F8"    16r000C " LATIN SMALL LETTER O WITH STROKE " 
		   "16r00F9"    16r0006 " LATIN SMALL LETTER U WITH GRAVE " 
		   "16r00FA"    16rFFFF " invalid " 
		   "16r00FB"    16rFFFF " invalid " 
		   "16r00FC"    16r007E " LATIN SMALL LETTER U WITH DIAERESIS " 
		   ) at:(unicode - 16rA).
		t == 65535 ifFalse:[^ t].
		^ self encodingError
	    ] value.
	].
	unicode <= 16r392 ifTrue:[
	    ^ self encodingError.
	].
	[
	    |t|
	    t := #[
	       "16r0393"    16r13 " GREEK CAPITAL LETTER GAMMA " 
	       "16r0394"    16r10 " GREEK CAPITAL LETTER DELTA " 
	       "16r0395"    16r00 " invalid " 
	       "16r0396"    16r00 " invalid " 
	       "16r0397"    16r00 " invalid " 
	       "16r0398"    16r19 " GREEK CAPITAL LETTER THETA " 
	       "16r0399"    16r00 " invalid " 
	       "16r039A"    16r00 " invalid " 
	       "16r039B"    16r14 " GREEK CAPITAL LETTER LAMDA " 
	       "16r039C"    16r00 " invalid " 
	       "16r039D"    16r00 " invalid " 
	       "16r039E"    16r1A " GREEK CAPITAL LETTER XI " 
	       "16r039F"    16r00 " invalid " 
	       "16r03A0"    16r16 " GREEK CAPITAL LETTER PI " 
	       "16r03A1"    16r00 " invalid " 
	       "16r03A2"    16r00 " invalid " 
	       "16r03A3"    16r18 " GREEK CAPITAL LETTER SIGMA " 
	       "16r03A4"    16r00 " invalid " 
	       "16r03A5"    16r00 " invalid " 
	       "16r03A6"    16r12 " GREEK CAPITAL LETTER PHI " 
	       "16r03A7"    16r00 " invalid " 
	       "16r03A8"    16r17 " GREEK CAPITAL LETTER PSI " 
	       "16r03A9"    16r15 " GREEK CAPITAL LETTER OMEGA " 
	       ] at:(unicode - 16r392).
	    t == 0 ifFalse:[^ t].
	    ^ self encodingError
	] value.
    ].
    unicode <= 16r20AB ifTrue:[
	^ self encodingError.
    ].
    ^  "16r20AC" 16r1B65 " EURO SIGN " 
! !

!CharacterEncoder::HANGUL class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'OBSOLETE/EASTASIA/KSC/HANGUL.TXT'
! !

!CharacterEncoder::ISO10646_1 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'unicode' 'iso10646-1' 'iso-10646-1' )
!

userFriendlyNameOfEncoding
    ^ 'Unicode'
! !

!CharacterEncoder::ISO10646_1 methodsFor:'encoding & decoding'!

decode:aCode
    ^ aCode
!

decodeString:aString
    ^ aString
!

encode:aCode
    ^ aCode
!

encodeString:aString
    ^ aString
! !

!CharacterEncoder::ISO10646_to_UTF8 class methodsFor:'documentation'!

examples
"
  Encoding (unicode to utf8)
     ISO10646_to_UTF8 encodeString:'hello'. 
     ISO10646_to_UTF8 encodeString:'ÄÖÜ'. 

 Decoding (utf8 to unicode):

     |t|

     t := ISO10646_to_UTF8 encodeString:'ÄÖÜ'.
     ISO10646_to_UTF8 decodeString:t.    

"
! !

!CharacterEncoder::ISO10646_to_UTF8 class methodsFor:'queries'!

nameOfEncoding
    "I encode utf8 into unicode and vice versa"

    ^ #'utf8'
!

namesOfEncoding
    "I encode utf8 into unicode and vice versa"

    ^ #( 'utf8' 'utf-8' )
! !

!CharacterEncoder::ISO10646_to_UTF8 methodsFor:'encoding & decoding'!

decode:aCode
    self shouldNotImplement "/ no single byte conversion possible
!

decodeString:aStringOrByteCollection
    "given a string in UTF8 encoding,
     return a new string containing the same characters, in 16bit (or more) encoding.
     Returns either a normal String, or a TwoByteString instance.
     Only useful, when reading twoByteStrings from external sources.
     This only handles up-to 16bit characters.

     If you work a lot with utf8 encoded textFiles, 
     this is a first-class candidate for a primitive."

    |sz anyAbove7BitAscii nBitsRequired 
     ascii "{ Class: SmallInteger }"
     byte  "{ Class: SmallInteger }"
     s newString idx next6Bits|

    next6Bits := [
		    |byte|

                    byte := s nextByte.
                    byte isNil ifTrue:[^ DecodingFailedError raiseWith:aStringOrByteCollection errorString:'short utf8 string'].
                    ascii := (ascii bitShift:6) bitOr:(byte bitAnd:2r00111111).
                 ].

    nBitsRequired := 8.
    anyAbove7BitAscii := false.    
    sz := 0.
    s := aStringOrByteCollection readStream.
    [s atEnd] whileFalse:[
        byte := ascii := s nextByte.
        (byte bitAnd:16r80) ~~ 0 ifTrue:[
            anyAbove7BitAscii := true.    
            (byte bitAnd:2r11100000) == 2r11000000 ifTrue:[
                "/ 80 .. 7FF
                ascii := (byte bitAnd:2r00011111).
                next6Bits value.
                ascii > 16rFF ifTrue:[
                    nBitsRequired := nBitsRequired max:16
                ].
"/                "/ Q: is it allowed to store small characters this way ?
"/                ascii < 16r80 ifTrue:[
"/                      self error:'invalid utf8 encoding' mayProceed:true.
"/                ].
            ] ifFalse:[
                (byte bitAnd:2r11110000) == 2r11100000 ifTrue:[
                    "/ 800 .. FFFF
                    ascii := (byte bitAnd:2r00001111).
                    next6Bits value.
                    next6Bits value.
                    ascii > 16rFF ifTrue:[
                        nBitsRequired := nBitsRequired max:16
                    ].
"/                    "/ Q: is it allowed to store small characters this way ?
"/                    ascii < 16r800 ifTrue:[
"/                        self error:'invalid utf8 encoding'.
"/                    ].
                ] ifFalse:[
                    (byte bitAnd:2r11111000) == 2r11110000 ifTrue:[
                        "/ 10000 .. 1FFFFF
                        ascii := (byte bitAnd:2r00000111).
                        next6Bits value.
                        next6Bits value.
                        next6Bits value.
                        ascii > 16rFF ifTrue:[
                            ascii > 16rFFFF ifTrue:[
                                nBitsRequired := nBitsRequired max:32
                            ] ifFalse:[
                                nBitsRequired := nBitsRequired max:16
                            ]
                        ].
"/                        "/ Q: is it allowed to store small characters this way ?
"/                        ascii < 16r10000 ifTrue:[
"/                            self error:'invalid utf8 encoding'.
"/                        ].
                    ] ifFalse:[
                        (byte bitAnd:2r11111100) == 2r11111000 ifTrue:[
                            "/ 200000 .. 3FFFFFF
                            ascii := (byte bitAnd:2r00000011).
                            next6Bits value.
                            next6Bits value.
                            next6Bits value.
                            next6Bits value.
                            ascii > 16rFF ifTrue:[
                                ascii > 16rFFFF ifTrue:[
                                    nBitsRequired := nBitsRequired max:32
                                ] ifFalse:[
                                    nBitsRequired := nBitsRequired max:16
                                ]
                            ].
"/                            "/ Q: is it allowed to store small characters this way ?
"/                            ascii < 200000 ifTrue:[
"/                                self error:'invalid utf8 encoding'.
"/                            ].
                        ] ifFalse:[
                            (byte bitAnd:2r11111110) == 2r11111100 ifTrue:[
                                "/ 4000000 .. 7FFFFFFF
                                ascii := (byte bitAnd:2r00000001).
                                next6Bits value.
                                next6Bits value.
                                next6Bits value.
                                next6Bits value.
                                next6Bits value.
                                ascii > 16rFF ifTrue:[
                                    ascii > 16rFFFF ifTrue:[
                                        nBitsRequired := nBitsRequired max:32
                                    ] ifFalse:[
                                        nBitsRequired := nBitsRequired max:16
                                    ]
                                ].
"/                                "/ Q: is it allowed to store small characters this way ?
"/                                ascii < 16r4000000 ifTrue:[
"/                                    self error:'invalid utf8 encoding'.
"/                                ].
                            ] ifFalse:[
                                self error:'invalid utf8 encoding' mayProceed:true.
                            ]
                        ]
                    ]
                ]
            ].
        ].
        sz := sz + 1.
    ].
    nBitsRequired == 8 ifTrue:[
        anyAbove7BitAscii ifFalse:[
            "/ can return the original string
            aStringOrByteCollection isString ifTrue:[^ aStringOrByteCollection].
        ].
        newString := String uninitializedNew:sz
    ] ifFalse:[
        nBitsRequired <= 16 ifTrue:[
            newString := Unicode16String new:sz
        ] ifFalse:[
            newString := Unicode32String new:sz
        ]
    ].

    next6Bits := [
		    |byte|

                    byte := s nextByte.
                    ascii := (ascii bitShift:6) bitOr:(byte bitAnd:2r00111111).
                 ].

    s := aStringOrByteCollection readStream.
    idx := 1.
    [s atEnd] whileFalse:[
        byte := ascii := s nextByte.
        (byte bitAnd:2r10000000) ~~ 0 ifTrue:[
            (byte bitAnd:2r11100000) == 2r11000000 ifTrue:[
                ascii := (byte bitAnd:2r00011111).
                next6Bits value.
            ] ifFalse:[
                (byte bitAnd:2r11110000) == 2r11100000 ifTrue:[
                    ascii := (byte bitAnd:2r00001111).
                    next6Bits value.
                    next6Bits value.
                ] ifFalse:[
                    (byte bitAnd:2r11111000) == 2r11110000 ifTrue:[
                        ascii := (byte bitAnd:2r00000111).
                        next6Bits value.
                        next6Bits value.
                        next6Bits value.
                    ] ifFalse:[
                        (byte bitAnd:2r11111100) == 2r11111000 ifTrue:[
                            ascii := (byte bitAnd:2r00000011).
                            next6Bits value.
                            next6Bits value.
                            next6Bits value.
                            next6Bits value.
                        ] ifFalse:[
                            (byte bitAnd:2r11111110) == 2r11111100 ifTrue:[
                                ascii := (byte bitAnd:2r00000001).
                                next6Bits value.
                                next6Bits value.
                                next6Bits value.
                                next6Bits value.
                                next6Bits value.
                            ]
                        ]
                    ]
                ]
            ].
        ].
        newString at:idx put:(Character value:ascii).
        idx := idx + 1.
    ].
    ^ newString

    "
     CharacterArray fromUTF8Bytes:#[ 16r41 16r42 ]      
     CharacterArray fromUTF8Bytes:#[ 16rC1 16r02 ]       
     CharacterArray fromUTF8Bytes:#[ 16rE0 16r81 16r02 ]      
     CharacterArray fromUTF8Bytes:#[ 16rEF 16rBF 16rBF ]  

   rfc2279 examples:
     CharacterArray fromUTF8Bytes:#[ 16r41 16rE2 16r89 16rA2 16rCE 16r91 16r2E ]           
     CharacterArray fromUTF8Bytes:#[ 16rED 16r95 16r9C 16rEA 16rB5 16rAD 16rEC 16r96 16rB4 ]      
     CharacterArray fromUTF8Bytes:#[ 16rE6 16r97 16rA5 16rE6 16r9C 16rAC 16rE8 16rAA 16r9E ]      

   invalid:
     CharacterArray fromUTF8Bytes:#[ 16rC0 16r80 ]      
     CharacterArray fromUTF8Bytes:#[ 16rE0 16r80 16r80 ]      
    "
!

encode:aCode
    self shouldNotImplement "/ no single byte conversion possible
!

encodeString:aUnicodeString
    "return the UTF-8 representation of a aUnicodeString.
     The resulting string is only useful to be stored on some external file,
     not for being used inside ST/X.

     If you work a lot with utf8 encoded textFiles, 
     this is a first-class candidate for a primitive."

    |s anyAbove7BitAscii|

    anyAbove7BitAscii := false.
    s := (String uninitializedNew:aUnicodeString size) writeStream.
    aUnicodeString do:[:eachCharacter |
        |codePoint b1 b2 b3 b4 b5 v "{Class: SmallInteger }"|

        codePoint := eachCharacter asciiValue.
        codePoint <= 16r7F ifTrue:[
            s nextPut:eachCharacter.
        ] ifFalse:[
            anyAbove7BitAscii := true.
            b1 := Character value:((codePoint bitAnd:16r3F) bitOr:2r10000000).
            v := codePoint bitShift:-6.
            v <= 16r1F ifTrue:[
                s nextPut:(Character value:(v bitOr:2r11000000)).
                s nextPut:b1.
            ] ifFalse:[
                b2 := Character value:((v bitAnd:16r3F) bitOr:2r10000000).
                v := v bitShift:-6.
                v <= 16r0F ifTrue:[
                    s nextPut:(Character value:(v bitOr:2r11100000)).
                    s nextPut:b2; nextPut:b1.
                ] ifFalse:[
                    b3 := Character value:((v bitAnd:16r3F) bitOr:2r10000000).
                    v := v bitShift:-6.
                    v <= 16r07 ifTrue:[
                        s nextPut:(Character value:(v bitOr:2r11110000)).
                        s nextPut:b3; nextPut:b2; nextPut:b1.
                    ] ifFalse:[
                        b4 := Character value:((v bitAnd:16r3F) bitOr:2r10000000).
                        v := v bitShift:-6.
                        v <= 16r03 ifTrue:[
                            s nextPut:(Character value:(v bitOr:2r11111000)).
                            s nextPut:b4; nextPut:b3; nextPut:b2; nextPut:b1.
                        ] ifFalse:[
                            b5 := Character value:((v bitAnd:16r3F) bitOr:2r10000000).
                            v := v bitShift:-6.
                            v <= 16r01 ifTrue:[
                                s nextPut:(Character value:(v bitOr:2r11111100)).
                                s nextPut:b5; nextPut:b4; nextPut:b3; nextPut:b2; nextPut:b1.
                            ] ifFalse:[
                                "/ cannot happen - we only support up to 30 bit characters
                                self error:'ascii value > 31bit in utf8Encode'.
                            ]
                        ].
                    ].
                ].
            ].
        ].
    ].

    anyAbove7BitAscii ifFalse:[^ aUnicodeString].   "/ avoid creation of new strings
    ^ s contents

    "
     (self encodeString:'hello') asByteArray                             #[104 101 108 108 111]
     (self encodeString:(Character value:16r40) asString) asByteArray    #[64]
     (self encodeString:(Character value:16r7F) asString) asByteArray    #[127]
     (self encodeString:(Character value:16r80) asString) asByteArray    #[194 128]
     (self encodeString:(Character value:16rFF) asString) asByteArray    #[195 191] 
     (self encodeString:(Character value:16r100) asString) asByteArray   #[196 128]  
     (self encodeString:(Character value:16r200) asString) asByteArray   #[200 128]  
     (self encodeString:(Character value:16r400) asString) asByteArray   #[208 128]  
     (self encodeString:(Character value:16r800) asString) asByteArray   #[224 160 128]  
     (self encodeString:(Character value:16r1000) asString) asByteArray  #[225 128 128]   
     (self encodeString:(Character value:16r2000) asString) asByteArray  #[226 128 128]   
     (self encodeString:(Character value:16r4000) asString) asByteArray  #[228 128 128]   
     (self encodeString:(Character value:16r8000) asString) asByteArray  #[232 128 128]   
     (self encodeString:(Character value:16rFFFF) asString) asByteArray  #[239 191 191]   
    "
! !

!CharacterEncoder::ISO8859_1 class methodsFor:'mapping'!

mapFileURL2_relativePathName
    ^ 'LATIN1'

    "
     self generateCode
    "
!

mapping
"
# From: http://std.dkuug.dk/i18n/charmaps/LATIN1

<code_set_name> ISO-8859-1
<comment_char> %
<escape_char> /
% version: 1.0
% repertoiremap: mnemonic,ds
%  source: ECMA registry

% alias ISO-IR-100
% alias ISO_8859-1:1987
% alias ISO_8859-1
% alias LATIN1
% alias L1
% alias IBM819
% alias CP819
CHARMAP
<NU>                   /x00   <U0000> NULL (NUL)
<SH>                   /x01   <U0001> START OF HEADING (SOH)
<SX>                   /x02   <U0002> START OF TEXT (STX)
<EX>                   /x03   <U0003> END OF TEXT (ETX)
<ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
<EQ>                   /x05   <U0005> ENQUIRY (ENQ)
<AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
<BL>                   /x07   <U0007> BELL (BEL)
<BS>                   /x08   <U0008> BACKSPACE (BS)
<HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
<LF>                   /x0A   <U000A> LINE FEED (LF)
<VT>                   /x0B   <U000B> LINE TABULATION (VT)
<FF>                   /x0C   <U000C> FORM FEED (FF)
<CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
<SO>                   /x0E   <U000E> SHIFT OUT (SO)
<SI>                   /x0F   <U000F> SHIFT IN (SI)
<DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
<D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
<D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
<D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
<D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CN>                   /x18   <U0018> CANCEL (CAN)
<EM>                   /x19   <U0019> END OF MEDIUM (EM)
<SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
<EC>                   /x1B   <U001B> ESCAPE (ESC)
<FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
<GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
<RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
<US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
<SP>                   /x20   <U0020> SPACE
<!!>                    /x21   <U0021> EXCLAMATION MARK
<'>                    /x22   <U0022> QUOTATION MARK
<Nb>                   /x23   <U0023> NUMBER SIGN
<DO>                   /x24   <U0024> DOLLAR SIGN
<%>                    /x25   <U0025> PERCENT SIGN
<&>                    /x26   <U0026> AMPERSAND
<'>                    /x27   <U0027> APOSTROPHE
<(>                    /x28   <U0028> LEFT PARENTHESIS
<)>                    /x29   <U0029> RIGHT PARENTHESIS
<*>                    /x2A   <U002A> ASTERISK
<+>                    /x2B   <U002B> PLUS SIGN
<,>                    /x2C   <U002C> COMMA
<->                    /x2D   <U002D> HYPHEN-MINUS
<.>                    /x2E   <U002E> FULL STOP
<//>                   /x2F   <U002F> SOLIDUS
<0>                    /x30   <U0030> DIGIT ZERO
<1>                    /x31   <U0031> DIGIT ONE
<2>                    /x32   <U0032> DIGIT TWO
<3>                    /x33   <U0033> DIGIT THREE
<4>                    /x34   <U0034> DIGIT FOUR
<5>                    /x35   <U0035> DIGIT FIVE
<6>                    /x36   <U0036> DIGIT SIX
<7>                    /x37   <U0037> DIGIT SEVEN
<8>                    /x38   <U0038> DIGIT EIGHT
<9>                    /x39   <U0039> DIGIT NINE
<:>                    /x3A   <U003A> COLON
<;>                    /x3B   <U003B> SEMICOLON
<<>                    /x3C   <U003C> LESS-THAN SIGN
<=>                    /x3D   <U003D> EQUALS SIGN
</>>                   /x3E   <U003E> GREATER-THAN SIGN
<?>                    /x3F   <U003F> QUESTION MARK
<At>                   /x40   <U0040> COMMERCIAL AT
<A>                    /x41   <U0041> LATIN CAPITAL LETTER A
<B>                    /x42   <U0042> LATIN CAPITAL LETTER B
<C>                    /x43   <U0043> LATIN CAPITAL LETTER C
<D>                    /x44   <U0044> LATIN CAPITAL LETTER D
<E>                    /x45   <U0045> LATIN CAPITAL LETTER E
<F>                    /x46   <U0046> LATIN CAPITAL LETTER F
<G>                    /x47   <U0047> LATIN CAPITAL LETTER G
<H>                    /x48   <U0048> LATIN CAPITAL LETTER H
<I>                    /x49   <U0049> LATIN CAPITAL LETTER I
<J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
<K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
<L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
<M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
<N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
<O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
<P>                    /x50   <U0050> LATIN CAPITAL LETTER P
<Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
<R>                    /x52   <U0052> LATIN CAPITAL LETTER R
<S>                    /x53   <U0053> LATIN CAPITAL LETTER S
<T>                    /x54   <U0054> LATIN CAPITAL LETTER T
<U>                    /x55   <U0055> LATIN CAPITAL LETTER U
<V>                    /x56   <U0056> LATIN CAPITAL LETTER V
<W>                    /x57   <U0057> LATIN CAPITAL LETTER W
<X>                    /x58   <U0058> LATIN CAPITAL LETTER X
<Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
<Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
<<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
<////>                 /x5C   <U005C> REVERSE SOLIDUS
<)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
<'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
<_>                    /x5F   <U005F> LOW LINE
<'!!>                   /x60   <U0060> GRAVE ACCENT
<a>                    /x61   <U0061> LATIN SMALL LETTER A
<b>                    /x62   <U0062> LATIN SMALL LETTER B
<c>                    /x63   <U0063> LATIN SMALL LETTER C
<d>                    /x64   <U0064> LATIN SMALL LETTER D
<e>                    /x65   <U0065> LATIN SMALL LETTER E
<f>                    /x66   <U0066> LATIN SMALL LETTER F
<g>                    /x67   <U0067> LATIN SMALL LETTER G
<h>                    /x68   <U0068> LATIN SMALL LETTER H
<i>                    /x69   <U0069> LATIN SMALL LETTER I
<j>                    /x6A   <U006A> LATIN SMALL LETTER J
<k>                    /x6B   <U006B> LATIN SMALL LETTER K
<l>                    /x6C   <U006C> LATIN SMALL LETTER L
<m>                    /x6D   <U006D> LATIN SMALL LETTER M
<n>                    /x6E   <U006E> LATIN SMALL LETTER N
<o>                    /x6F   <U006F> LATIN SMALL LETTER O
<p>                    /x70   <U0070> LATIN SMALL LETTER P
<q>                    /x71   <U0071> LATIN SMALL LETTER Q
<r>                    /x72   <U0072> LATIN SMALL LETTER R
<s>                    /x73   <U0073> LATIN SMALL LETTER S
<t>                    /x74   <U0074> LATIN SMALL LETTER T
<u>                    /x75   <U0075> LATIN SMALL LETTER U
<v>                    /x76   <U0076> LATIN SMALL LETTER V
<w>                    /x77   <U0077> LATIN SMALL LETTER W
<x>                    /x78   <U0078> LATIN SMALL LETTER X
<y>                    /x79   <U0079> LATIN SMALL LETTER Y
<z>                    /x7A   <U007A> LATIN SMALL LETTER Z
<(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
<!!!!>                   /x7C   <U007C> VERTICAL LINE
<!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
<'?>                   /x7E   <U007E> TILDE
<DT>                   /x7F   <U007F> DELETE (DEL)
<PA>                   /x80   <U0080> PADDING CHARACTER (PAD)
<HO>                   /x81   <U0081> HIGH OCTET PRESET (HOP)
<BH>                   /x82   <U0082> BREAK PERMITTED HERE (BPH)
<NH>                   /x83   <U0083> NO BREAK HERE (NBH)
<IN>                   /x84   <U0084> INDEX (IND)
<NL>                   /x85   <U0085> NEXT LINE (NEL)
<SA>                   /x86   <U0086> START OF SELECTED AREA (SSA)
<ES>                   /x87   <U0087> END OF SELECTED AREA (ESA)
<HS>                   /x88   <U0088> CHARACTER TABULATION SET (HTS)
<HJ>                   /x89   <U0089> CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
<VS>                   /x8A   <U008A> LINE TABULATION SET (VTS)
<PD>                   /x8B   <U008B> PARTIAL LINE FORWARD (PLD)
<PU>                   /x8C   <U008C> PARTIAL LINE BACKWARD (PLU)
<RI>                   /x8D   <U008D> REVERSE LINE FEED (RI)
<S2>                   /x8E   <U008E> SINGLE-SHIFT TWO (SS2)
<S3>                   /x8F   <U008F> SINGLE-SHIFT THREE (SS3)
<DC>                   /x90   <U0090> DEVICE CONTROL STRING (DCS)
<P1>                   /x91   <U0091> PRIVATE USE ONE (PU1)
<P2>                   /x92   <U0092> PRIVATE USE TWO (PU2)
<TS>                   /x93   <U0093> SET TRANSMIT STATE (STS)
<CC>                   /x94   <U0094> CANCEL CHARACTER (CCH)
<MW>                   /x95   <U0095> MESSAGE WAITING (MW)
<SG>                   /x96   <U0096> START OF GUARDED AREA (SPA)
<EG>                   /x97   <U0097> END OF GUARDED AREA (EPA)
<SS>                   /x98   <U0098> START OF STRING (SOS)
<GC>                   /x99   <U0099> SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
<SC>                   /x9A   <U009A> SINGLE CHARACTER INTRODUCER (SCI)
<CI>                   /x9B   <U009B> CONTROL SEQUENCE INTRODUCER (CSI)
<ST>                   /x9C   <U009C> STRING TERMINATOR (ST)
<OC>                   /x9D   <U009D> OPERATING SYSTEM COMMAND (OSC)
<PM>                   /x9E   <U009E> PRIVACY MESSAGE (PM)
<AC>                   /x9F   <U009F> APPLICATION PROGRAM COMMAND (APC)
<NS>                   /xA0   <U00A0> NO-BREAK SPACE
<!!I>                   /xA1   <U00A1> INVERTED EXCLAMATION MARK
<Ct>                   /xA2   <U00A2> CENT SIGN
<Pd>                   /xA3   <U00A3> POUND SIGN
<Cu>                   /xA4   <U00A4> CURRENCY SIGN
<Ye>                   /xA5   <U00A5> YEN SIGN
<BB>                   /xA6   <U00A6> BROKEN BAR
<SE>                   /xA7   <U00A7> SECTION SIGN
<':>                   /xA8   <U00A8> DIAERESIS
<Co>                   /xA9   <U00A9> COPYRIGHT SIGN
<-a>                   /xAA   <U00AA> FEMININE ORDINAL INDICATOR
<<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
<NO>                   /xAC   <U00AC> NOT SIGN
<-->                   /xAD   <U00AD> SOFT HYPHEN
<Rg>                   /xAE   <U00AE> REGISTERED SIGN
<'m>                   /xAF   <U00AF> MACRON
<DG>                   /xB0   <U00B0> DEGREE SIGN
<+->                   /xB1   <U00B1> PLUS-MINUS SIGN
<2S>                   /xB2   <U00B2> SUPERSCRIPT TWO
<3S>                   /xB3   <U00B3> SUPERSCRIPT THREE
<''>                   /xB4   <U00B4> ACUTE ACCENT
<My>                   /xB5   <U00B5> MICRO SIGN
<PI>                   /xB6   <U00B6> PILCROW SIGN
<.M>                   /xB7   <U00B7> MIDDLE DOT
<',>                   /xB8   <U00B8> CEDILLA
<1S>                   /xB9   <U00B9> SUPERSCRIPT ONE
<-o>                   /xBA   <U00BA> MASCULINE ORDINAL INDICATOR
</>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
<14>                   /xBC   <U00BC> VULGAR FRACTION ONE QUARTER
<12>                   /xBD   <U00BD> VULGAR FRACTION ONE HALF
<34>                   /xBE   <U00BE> VULGAR FRACTION THREE QUARTERS
<?I>                   /xBF   <U00BF> INVERTED QUESTION MARK
<A!!>                   /xC0   <U00C0> LATIN CAPITAL LETTER A WITH GRAVE
<A'>                   /xC1   <U00C1> LATIN CAPITAL LETTER A WITH ACUTE
<A/>>                  /xC2   <U00C2> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
<A?>                   /xC3   <U00C3> LATIN CAPITAL LETTER A WITH TILDE
<A:>                   /xC4   <U00C4> LATIN CAPITAL LETTER A WITH DIAERESIS
<AA>                   /xC5   <U00C5> LATIN CAPITAL LETTER A WITH RING ABOVE
<AE>                   /xC6   <U00C6> LATIN CAPITAL LETTER AE
<C,>                   /xC7   <U00C7> LATIN CAPITAL LETTER C WITH CEDILLA
<E!!>                   /xC8   <U00C8> LATIN CAPITAL LETTER E WITH GRAVE
<E'>                   /xC9   <U00C9> LATIN CAPITAL LETTER E WITH ACUTE
<E/>>                  /xCA   <U00CA> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
<E:>                   /xCB   <U00CB> LATIN CAPITAL LETTER E WITH DIAERESIS
<I!!>                   /xCC   <U00CC> LATIN CAPITAL LETTER I WITH GRAVE
<I'>                   /xCD   <U00CD> LATIN CAPITAL LETTER I WITH ACUTE
<I/>>                  /xCE   <U00CE> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
<I:>                   /xCF   <U00CF> LATIN CAPITAL LETTER I WITH DIAERESIS
<D->                   /xD0   <U00D0> LATIN CAPITAL LETTER ETH (Icelandic)
<N?>                   /xD1   <U00D1> LATIN CAPITAL LETTER N WITH TILDE
<O!!>                   /xD2   <U00D2> LATIN CAPITAL LETTER O WITH GRAVE
<O'>                   /xD3   <U00D3> LATIN CAPITAL LETTER O WITH ACUTE
<O/>>                  /xD4   <U00D4> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
<O?>                   /xD5   <U00D5> LATIN CAPITAL LETTER O WITH TILDE
<O:>                   /xD6   <U00D6> LATIN CAPITAL LETTER O WITH DIAERESIS
<*X>                   /xD7   <U00D7> MULTIPLICATION SIGN
<O//>                  /xD8   <U00D8> LATIN CAPITAL LETTER O WITH STROKE
<U!!>                   /xD9   <U00D9> LATIN CAPITAL LETTER U WITH GRAVE
<U'>                   /xDA   <U00DA> LATIN CAPITAL LETTER U WITH ACUTE
<U/>>                  /xDB   <U00DB> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
<U:>                   /xDC   <U00DC> LATIN CAPITAL LETTER U WITH DIAERESIS
<Y'>                   /xDD   <U00DD> LATIN CAPITAL LETTER Y WITH ACUTE
<TH>                   /xDE   <U00DE> LATIN CAPITAL LETTER THORN (Icelandic)
<ss>                   /xDF   <U00DF> LATIN SMALL LETTER SHARP S (German)
<a!!>                   /xE0   <U00E0> LATIN SMALL LETTER A WITH GRAVE
<a'>                   /xE1   <U00E1> LATIN SMALL LETTER A WITH ACUTE
<a/>>                  /xE2   <U00E2> LATIN SMALL LETTER A WITH CIRCUMFLEX
<a?>                   /xE3   <U00E3> LATIN SMALL LETTER A WITH TILDE
<a:>                   /xE4   <U00E4> LATIN SMALL LETTER A WITH DIAERESIS
<aa>                   /xE5   <U00E5> LATIN SMALL LETTER A WITH RING ABOVE
<ae>                   /xE6   <U00E6> LATIN SMALL LETTER AE
<c,>                   /xE7   <U00E7> LATIN SMALL LETTER C WITH CEDILLA
<e!!>                   /xE8   <U00E8> LATIN SMALL LETTER E WITH GRAVE
<e'>                   /xE9   <U00E9> LATIN SMALL LETTER E WITH ACUTE
<e/>>                  /xEA   <U00EA> LATIN SMALL LETTER E WITH CIRCUMFLEX
<e:>                   /xEB   <U00EB> LATIN SMALL LETTER E WITH DIAERESIS
<i!!>                   /xEC   <U00EC> LATIN SMALL LETTER I WITH GRAVE
<i'>                   /xED   <U00ED> LATIN SMALL LETTER I WITH ACUTE
<i/>>                  /xEE   <U00EE> LATIN SMALL LETTER I WITH CIRCUMFLEX
<i:>                   /xEF   <U00EF> LATIN SMALL LETTER I WITH DIAERESIS
<d->                   /xF0   <U00F0> LATIN SMALL LETTER ETH (Icelandic)
<n?>                   /xF1   <U00F1> LATIN SMALL LETTER N WITH TILDE
<o!!>                   /xF2   <U00F2> LATIN SMALL LETTER O WITH GRAVE
<o'>                   /xF3   <U00F3> LATIN SMALL LETTER O WITH ACUTE
<o/>>                  /xF4   <U00F4> LATIN SMALL LETTER O WITH CIRCUMFLEX
<o?>                   /xF5   <U00F5> LATIN SMALL LETTER O WITH TILDE
<o:>                   /xF6   <U00F6> LATIN SMALL LETTER O WITH DIAERESIS
<-:>                   /xF7   <U00F7> DIVISION SIGN
<o//>                  /xF8   <U00F8> LATIN SMALL LETTER O WITH STROKE
<u!!>                   /xF9   <U00F9> LATIN SMALL LETTER U WITH GRAVE
<u'>                   /xFA   <U00FA> LATIN SMALL LETTER U WITH ACUTE
<u/>>                  /xFB   <U00FB> LATIN SMALL LETTER U WITH CIRCUMFLEX
<u:>                   /xFC   <U00FC> LATIN SMALL LETTER U WITH DIAERESIS
<y'>                   /xFD   <U00FD> LATIN SMALL LETTER Y WITH ACUTE
<th>                   /xFE   <U00FE> LATIN SMALL LETTER THORN (Icelandic)
<y:>                   /xFF   <U00FF> LATIN SMALL LETTER Y WITH DIAERESIS
<NUL>                  /x00   <U0000> NUL
<SOH>                  /x01   <U0001> START OF HEADING (SOH)
<STX>                  /x02   <U0002> START OF TEXT (STX)
<ETX>                  /x03   <U0003> END OF TEXT (ETX)
<EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
<ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
<ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
<alert>                /x07   <U0007> BELL (BEL)
<BEL>                  /x07   <U0007> BELL (BEL)
<backspace>            /x08   <U0008> BACKSPACE (BS)
<tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
<newline>              /x0A   <U000A> LINE FEED (LF)
<vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
<form-feed>            /x0C   <U000C> FORM FEED (FF)
<carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
<DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
<DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
<DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
<DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
<DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CAN>                  /x18   <U0018> CANCEL (CAN)
<SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
<ESC>                  /x1B   <U001B> ESCAPE (ESC)
<IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
<IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
<intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
<IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
<IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
<DEL>                  /x7F   <U007F> DELETE (DEL)
<space>                /x20   <U0020> SPACE
<exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
<quotation-mark>       /x22   <U0022> QUOTATION MARK
<number-sign>          /x23   <U0023> NUMBER SIGN
<dollar-sign>          /x24   <U0024> DOLLAR SIGN
<percent-sign>         /x25   <U0025> PERCENT SIGN
<ampersand>            /x26   <U0026> AMPERSAND
<apostrophe>           /x27   <U0027> APOSTROPHE
<left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
<right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
<asterisk>             /x2A   <U002A> ASTERISK
<plus-sign>            /x2B   <U002B> PLUS SIGN
<comma>                /x2C   <U002C> COMMA
<hyphen>               /x2D   <U002D> HYPHEN-MINUS
<hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
<period>               /x2E   <U002E> FULL STOP
<full-stop>            /x2E   <U002E> FULL STOP
<slash>                /x2F   <U002F> SOLIDUS
<solidus>              /x2F   <U002F> SOLIDUS
<zero>                 /x30   <U0030> DIGIT ZERO
<one>                  /x31   <U0031> DIGIT ONE
<two>                  /x32   <U0032> DIGIT TWO
<three>                /x33   <U0033> DIGIT THREE
<four>                 /x34   <U0034> DIGIT FOUR
<five>                 /x35   <U0035> DIGIT FIVE
<six>                  /x36   <U0036> DIGIT SIX
<seven>                /x37   <U0037> DIGIT SEVEN
<eight>                /x38   <U0038> DIGIT EIGHT
<nine>                 /x39   <U0039> DIGIT NINE
<colon>                /x3A   <U003A> COLON
<semicolon>            /x3B   <U003B> SEMICOLON
<less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
<equals-sign>          /x3D   <U003D> EQUALS SIGN
<greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
<question-mark>        /x3F   <U003F> QUESTION MARK
<commercial-at>        /x40   <U0040> COMMERCIAL AT
<left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
<backslash>            /x5C   <U005C> REVERSE SOLIDUS
<reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
<right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
<circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
<circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
<underscore>           /x5F   <U005F> LOW LINE
<low-line>             /x5F   <U005F> LOW LINE
<grave-accent>         /x60   <U0060> GRAVE ACCENT
<left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
<left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
<vertical-line>        /x7C   <U007C> VERTICAL LINE
<right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
<right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
<tilde>                /x7E   <U007E> TILDE
END CHARMAP

"
! !

!CharacterEncoder::ISO8859_1 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-1' 'iso-8859-1' 'latin-1' 'latin1' 'iso-ir-100' 'ibm-819' 'ms-cp819' 'ibm-cp819' )
! !

!CharacterEncoder::ISO8859_1 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code > 16rFF ifTrue:[
	^ self decodingError.
    ].
    ^ code.
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode > 16rFF ifTrue:[
	^ self encodingError.
    ].
    ^ unicode.
! !

!CharacterEncoder::ISO8859_1 methodsFor:'private'!

newString:size
    ^ String new:size
! !

!CharacterEncoder::ISO8859_10 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'ISO8859/8859-10.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-10.TXT

#
#       Name:             ISO/IEC 8859-10:1998 to Unicode
#       Unicode version:  3.0
#       Table version:    1.1
#       Table format:     Format A
#       Date:             1999 October 11
#       Authors:          Ken Whistler <kenw@sybase.com>
#
#       Copyright (c) 1999 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ISO/IEC 8859-10:1998 characters map into Unicode.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ISO/IEC 8859-10 code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ISO/IEC 8859-10 order.
#
#       Version history
#       1.0 version new.
#       1.1 corrected mistake in mapping of 0xA4
#
#       Updated versions of this file may be found in:
#               <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
#       Any comments or problems, contact <errata@unicode.org>
#       Please note that <errata@unicode.org> is an archival address;
#       notices will be checked, but do not expect an immediate response.
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x0080  #       <control>
0x81    0x0081  #       <control>
0x82    0x0082  #       <control>
0x83    0x0083  #       <control>
0x84    0x0084  #       <control>
0x85    0x0085  #       <control>
0x86    0x0086  #       <control>
0x87    0x0087  #       <control>
0x88    0x0088  #       <control>
0x89    0x0089  #       <control>
0x8A    0x008A  #       <control>
0x8B    0x008B  #       <control>
0x8C    0x008C  #       <control>
0x8D    0x008D  #       <control>
0x8E    0x008E  #       <control>
0x8F    0x008F  #       <control>
0x90    0x0090  #       <control>
0x91    0x0091  #       <control>
0x92    0x0092  #       <control>
0x93    0x0093  #       <control>
0x94    0x0094  #       <control>
0x95    0x0095  #       <control>
0x96    0x0096  #       <control>
0x97    0x0097  #       <control>
0x98    0x0098  #       <control>
0x99    0x0099  #       <control>
0x9A    0x009A  #       <control>
0x9B    0x009B  #       <control>
0x9C    0x009C  #       <control>
0x9D    0x009D  #       <control>
0x9E    0x009E  #       <control>
0x9F    0x009F  #       <control>
0xA0    0x00A0  #       NO-BREAK SPACE
0xA1    0x0104  #       LATIN CAPITAL LETTER A WITH OGONEK
0xA2    0x0112  #       LATIN CAPITAL LETTER E WITH MACRON
0xA3    0x0122  #       LATIN CAPITAL LETTER G WITH CEDILLA
0xA4    0x012A  #       LATIN CAPITAL LETTER I WITH MACRON
0xA5    0x0128  #       LATIN CAPITAL LETTER I WITH TILDE
0xA6    0x0136  #       LATIN CAPITAL LETTER K WITH CEDILLA
0xA7    0x00A7  #       SECTION SIGN
0xA8    0x013B  #       LATIN CAPITAL LETTER L WITH CEDILLA
0xA9    0x0110  #       LATIN CAPITAL LETTER D WITH STROKE
0xAA    0x0160  #       LATIN CAPITAL LETTER S WITH CARON
0xAB    0x0166  #       LATIN CAPITAL LETTER T WITH STROKE
0xAC    0x017D  #       LATIN CAPITAL LETTER Z WITH CARON
0xAD    0x00AD  #       SOFT HYPHEN
0xAE    0x016A  #       LATIN CAPITAL LETTER U WITH MACRON
0xAF    0x014A  #       LATIN CAPITAL LETTER ENG
0xB0    0x00B0  #       DEGREE SIGN
0xB1    0x0105  #       LATIN SMALL LETTER A WITH OGONEK
0xB2    0x0113  #       LATIN SMALL LETTER E WITH MACRON
0xB3    0x0123  #       LATIN SMALL LETTER G WITH CEDILLA
0xB4    0x012B  #       LATIN SMALL LETTER I WITH MACRON
0xB5    0x0129  #       LATIN SMALL LETTER I WITH TILDE
0xB6    0x0137  #       LATIN SMALL LETTER K WITH CEDILLA
0xB7    0x00B7  #       MIDDLE DOT
0xB8    0x013C  #       LATIN SMALL LETTER L WITH CEDILLA
0xB9    0x0111  #       LATIN SMALL LETTER D WITH STROKE
0xBA    0x0161  #       LATIN SMALL LETTER S WITH CARON
0xBB    0x0167  #       LATIN SMALL LETTER T WITH STROKE
0xBC    0x017E  #       LATIN SMALL LETTER Z WITH CARON
0xBD    0x2015  #       HORIZONTAL BAR
0xBE    0x016B  #       LATIN SMALL LETTER U WITH MACRON
0xBF    0x014B  #       LATIN SMALL LETTER ENG
0xC0    0x0100  #       LATIN CAPITAL LETTER A WITH MACRON
0xC1    0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE
0xC2    0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xC3    0x00C3  #       LATIN CAPITAL LETTER A WITH TILDE
0xC4    0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS
0xC5    0x00C5  #       LATIN CAPITAL LETTER A WITH RING ABOVE
0xC6    0x00C6  #       LATIN CAPITAL LETTER AE
0xC7    0x012E  #       LATIN CAPITAL LETTER I WITH OGONEK
0xC8    0x010C  #       LATIN CAPITAL LETTER C WITH CARON
0xC9    0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE
0xCA    0x0118  #       LATIN CAPITAL LETTER E WITH OGONEK
0xCB    0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS
0xCC    0x0116  #       LATIN CAPITAL LETTER E WITH DOT ABOVE
0xCD    0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE
0xCE    0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xCF    0x00CF  #       LATIN CAPITAL LETTER I WITH DIAERESIS
0xD0    0x00D0  #       LATIN CAPITAL LETTER ETH (Icelandic)
0xD1    0x0145  #       LATIN CAPITAL LETTER N WITH CEDILLA
0xD2    0x014C  #       LATIN CAPITAL LETTER O WITH MACRON
0xD3    0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE
0xD4    0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xD5    0x00D5  #       LATIN CAPITAL LETTER O WITH TILDE
0xD6    0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS
0xD7    0x0168  #       LATIN CAPITAL LETTER U WITH TILDE
0xD8    0x00D8  #       LATIN CAPITAL LETTER O WITH STROKE
0xD9    0x0172  #       LATIN CAPITAL LETTER U WITH OGONEK
0xDA    0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE
0xDB    0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xDC    0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS
0xDD    0x00DD  #       LATIN CAPITAL LETTER Y WITH ACUTE
0xDE    0x00DE  #       LATIN CAPITAL LETTER THORN (Icelandic)
0xDF    0x00DF  #       LATIN SMALL LETTER SHARP S (German)
0xE0    0x0101  #       LATIN SMALL LETTER A WITH MACRON
0xE1    0x00E1  #       LATIN SMALL LETTER A WITH ACUTE
0xE2    0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX
0xE3    0x00E3  #       LATIN SMALL LETTER A WITH TILDE
0xE4    0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS
0xE5    0x00E5  #       LATIN SMALL LETTER A WITH RING ABOVE
0xE6    0x00E6  #       LATIN SMALL LETTER AE
0xE7    0x012F  #       LATIN SMALL LETTER I WITH OGONEK
0xE8    0x010D  #       LATIN SMALL LETTER C WITH CARON
0xE9    0x00E9  #       LATIN SMALL LETTER E WITH ACUTE
0xEA    0x0119  #       LATIN SMALL LETTER E WITH OGONEK
0xEB    0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS
0xEC    0x0117  #       LATIN SMALL LETTER E WITH DOT ABOVE
0xED    0x00ED  #       LATIN SMALL LETTER I WITH ACUTE
0xEE    0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX
0xEF    0x00EF  #       LATIN SMALL LETTER I WITH DIAERESIS
0xF0    0x00F0  #       LATIN SMALL LETTER ETH (Icelandic)
0xF1    0x0146  #       LATIN SMALL LETTER N WITH CEDILLA
0xF2    0x014D  #       LATIN SMALL LETTER O WITH MACRON
0xF3    0x00F3  #       LATIN SMALL LETTER O WITH ACUTE
0xF4    0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX
0xF5    0x00F5  #       LATIN SMALL LETTER O WITH TILDE
0xF6    0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS
0xF7    0x0169  #       LATIN SMALL LETTER U WITH TILDE
0xF8    0x00F8  #       LATIN SMALL LETTER O WITH STROKE
0xF9    0x0173  #       LATIN SMALL LETTER U WITH OGONEK
0xFA    0x00FA  #       LATIN SMALL LETTER U WITH ACUTE
0xFB    0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX
0xFC    0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS
0xFD    0x00FD  #       LATIN SMALL LETTER Y WITH ACUTE
0xFE    0x00FE  #       LATIN SMALL LETTER THORN (Icelandic)
0xFF    0x0138  #       LATIN SMALL LETTER KRA

"
! !

!CharacterEncoder::ISO8859_10 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-10' 'iso-8859-10' 'latin6' 'latin-6' 'iso-ir-157')
! !

!CharacterEncoder::ISO8859_10 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16rA0 ifTrue:[ ^ code ].
    code > 16rFF ifTrue:[
	^ self decodingError.
    ].
    ^ #(
       "16r00A1"    16r0104 " LATIN CAPITAL LETTER A WITH OGONEK " 
       "16r00A2"    16r0112 " LATIN CAPITAL LETTER E WITH MACRON " 
       "16r00A3"    16r0122 " LATIN CAPITAL LETTER G WITH CEDILLA " 
       "16r00A4"    16r012A " LATIN CAPITAL LETTER I WITH MACRON " 
       "16r00A5"    16r0128 " LATIN CAPITAL LETTER I WITH TILDE " 
       "16r00A6"    16r0136 " LATIN CAPITAL LETTER K WITH CEDILLA " 
       "16r00A7"    16r00A7 " SECTION SIGN " 
       "16r00A8"    16r013B " LATIN CAPITAL LETTER L WITH CEDILLA " 
       "16r00A9"    16r0110 " LATIN CAPITAL LETTER D WITH STROKE " 
       "16r00AA"    16r0160 " LATIN CAPITAL LETTER S WITH CARON " 
       "16r00AB"    16r0166 " LATIN CAPITAL LETTER T WITH STROKE " 
       "16r00AC"    16r017D " LATIN CAPITAL LETTER Z WITH CARON " 
       "16r00AD"    16r00AD " SOFT HYPHEN " 
       "16r00AE"    16r016A " LATIN CAPITAL LETTER U WITH MACRON " 
       "16r00AF"    16r014A " LATIN CAPITAL LETTER ENG " 
       "16r00B0"    16r00B0 " DEGREE SIGN " 
       "16r00B1"    16r0105 " LATIN SMALL LETTER A WITH OGONEK " 
       "16r00B2"    16r0113 " LATIN SMALL LETTER E WITH MACRON " 
       "16r00B3"    16r0123 " LATIN SMALL LETTER G WITH CEDILLA " 
       "16r00B4"    16r012B " LATIN SMALL LETTER I WITH MACRON " 
       "16r00B5"    16r0129 " LATIN SMALL LETTER I WITH TILDE " 
       "16r00B6"    16r0137 " LATIN SMALL LETTER K WITH CEDILLA " 
       "16r00B7"    16r00B7 " MIDDLE DOT " 
       "16r00B8"    16r013C " LATIN SMALL LETTER L WITH CEDILLA " 
       "16r00B9"    16r0111 " LATIN SMALL LETTER D WITH STROKE " 
       "16r00BA"    16r0161 " LATIN SMALL LETTER S WITH CARON " 
       "16r00BB"    16r0167 " LATIN SMALL LETTER T WITH STROKE " 
       "16r00BC"    16r017E " LATIN SMALL LETTER Z WITH CARON " 
       "16r00BD"    16r2015 " HORIZONTAL BAR " 
       "16r00BE"    16r016B " LATIN SMALL LETTER U WITH MACRON " 
       "16r00BF"    16r014B " LATIN SMALL LETTER ENG " 
       "16r00C0"    16r0100 " LATIN CAPITAL LETTER A WITH MACRON " 
       "16r00C1"    16r00C1 " LATIN CAPITAL LETTER A WITH ACUTE " 
       "16r00C2"    16r00C2 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
       "16r00C3"    16r00C3 " LATIN CAPITAL LETTER A WITH TILDE " 
       "16r00C4"    16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
       "16r00C5"    16r00C5 " LATIN CAPITAL LETTER A WITH RING ABOVE " 
       "16r00C6"    16r00C6 " LATIN CAPITAL LETTER AE " 
       "16r00C7"    16r012E " LATIN CAPITAL LETTER I WITH OGONEK " 
       "16r00C8"    16r010C " LATIN CAPITAL LETTER C WITH CARON " 
       "16r00C9"    16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE " 
       "16r00CA"    16r0118 " LATIN CAPITAL LETTER E WITH OGONEK " 
       "16r00CB"    16r00CB " LATIN CAPITAL LETTER E WITH DIAERESIS " 
       "16r00CC"    16r0116 " LATIN CAPITAL LETTER E WITH DOT ABOVE " 
       "16r00CD"    16r00CD " LATIN CAPITAL LETTER I WITH ACUTE " 
       "16r00CE"    16r00CE " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
       "16r00CF"    16r00CF " LATIN CAPITAL LETTER I WITH DIAERESIS " 
       "16r00D0"    16r00D0 " LATIN CAPITAL LETTER ETH (Icelandic) " 
       "16r00D1"    16r0145 " LATIN CAPITAL LETTER N WITH CEDILLA " 
       "16r00D2"    16r014C " LATIN CAPITAL LETTER O WITH MACRON " 
       "16r00D3"    16r00D3 " LATIN CAPITAL LETTER O WITH ACUTE " 
       "16r00D4"    16r00D4 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
       "16r00D5"    16r00D5 " LATIN CAPITAL LETTER O WITH TILDE " 
       "16r00D6"    16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
       "16r00D7"    16r0168 " LATIN CAPITAL LETTER U WITH TILDE " 
       "16r00D8"    16r00D8 " LATIN CAPITAL LETTER O WITH STROKE " 
       "16r00D9"    16r0172 " LATIN CAPITAL LETTER U WITH OGONEK " 
       "16r00DA"    16r00DA " LATIN CAPITAL LETTER U WITH ACUTE " 
       "16r00DB"    16r00DB " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " 
       "16r00DC"    16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS " 
       "16r00DD"    16r00DD " LATIN CAPITAL LETTER Y WITH ACUTE " 
       "16r00DE"    16r00DE " LATIN CAPITAL LETTER THORN (Icelandic) " 
       "16r00DF"    16r00DF " LATIN SMALL LETTER SHARP S (German) " 
       "16r00E0"    16r0101 " LATIN SMALL LETTER A WITH MACRON " 
       "16r00E1"    16r00E1 " LATIN SMALL LETTER A WITH ACUTE " 
       "16r00E2"    16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
       "16r00E3"    16r00E3 " LATIN SMALL LETTER A WITH TILDE " 
       "16r00E4"    16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS " 
       "16r00E5"    16r00E5 " LATIN SMALL LETTER A WITH RING ABOVE " 
       "16r00E6"    16r00E6 " LATIN SMALL LETTER AE " 
       "16r00E7"    16r012F " LATIN SMALL LETTER I WITH OGONEK " 
       "16r00E8"    16r010D " LATIN SMALL LETTER C WITH CARON " 
       "16r00E9"    16r00E9 " LATIN SMALL LETTER E WITH ACUTE " 
       "16r00EA"    16r0119 " LATIN SMALL LETTER E WITH OGONEK " 
       "16r00EB"    16r00EB " LATIN SMALL LETTER E WITH DIAERESIS " 
       "16r00EC"    16r0117 " LATIN SMALL LETTER E WITH DOT ABOVE " 
       "16r00ED"    16r00ED " LATIN SMALL LETTER I WITH ACUTE " 
       "16r00EE"    16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
       "16r00EF"    16r00EF " LATIN SMALL LETTER I WITH DIAERESIS " 
       "16r00F0"    16r00F0 " LATIN SMALL LETTER ETH (Icelandic) " 
       "16r00F1"    16r0146 " LATIN SMALL LETTER N WITH CEDILLA " 
       "16r00F2"    16r014D " LATIN SMALL LETTER O WITH MACRON " 
       "16r00F3"    16r00F3 " LATIN SMALL LETTER O WITH ACUTE " 
       "16r00F4"    16r00F4 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
       "16r00F5"    16r00F5 " LATIN SMALL LETTER O WITH TILDE " 
       "16r00F6"    16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS " 
       "16r00F7"    16r0169 " LATIN SMALL LETTER U WITH TILDE " 
       "16r00F8"    16r00F8 " LATIN SMALL LETTER O WITH STROKE " 
       "16r00F9"    16r0173 " LATIN SMALL LETTER U WITH OGONEK " 
       "16r00FA"    16r00FA " LATIN SMALL LETTER U WITH ACUTE " 
       "16r00FB"    16r00FB " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
       "16r00FC"    16r00FC " LATIN SMALL LETTER U WITH DIAERESIS " 
       "16r00FD"    16r00FD " LATIN SMALL LETTER Y WITH ACUTE " 
       "16r00FE"    16r00FE " LATIN SMALL LETTER THORN (Icelandic) " 
       "16r00FF"    16r0138 " LATIN SMALL LETTER KRA " 
       ) at:(code - 16rA0).
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16rA0 ifTrue:[ ^ unicode ].
    unicode > 16r2015 ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r17E ifTrue:[
	unicode <= 16rFF ifTrue:[
	    (#[
	       "16r00A1"    0 " invalid " 
	       "16r00A2"    0 " invalid " 
	       "16r00A3"    0 " invalid " 
	       "16r00A4"    0 " invalid " 
	       "16r00A5"    0 " invalid " 
	       "16r00A6"    0 " invalid " 
	       "16r00A7"    1 " SECTION SIGN " 
	       "16r00A8"    0 " invalid " 
	       "16r00A9"    0 " invalid " 
	       "16r00AA"    0 " invalid " 
	       "16r00AB"    0 " invalid " 
	       "16r00AC"    0 " invalid " 
	       "16r00AD"    1 " SOFT HYPHEN " 
	       "16r00AE"    0 " invalid " 
	       "16r00AF"    0 " invalid " 
	       "16r00B0"    1 " DEGREE SIGN " 
	       "16r00B1"    0 " invalid " 
	       "16r00B2"    0 " invalid " 
	       "16r00B3"    0 " invalid " 
	       "16r00B4"    0 " invalid " 
	       "16r00B5"    0 " invalid " 
	       "16r00B6"    0 " invalid " 
	       "16r00B7"    1 " MIDDLE DOT " 
	       "16r00B8"    0 " invalid " 
	       "16r00B9"    0 " invalid " 
	       "16r00BA"    0 " invalid " 
	       "16r00BB"    0 " invalid " 
	       "16r00BC"    0 " invalid " 
	       "16r00BD"    0 " invalid " 
	       "16r00BE"    0 " invalid " 
	       "16r00BF"    0 " invalid " 
	       "16r00C0"    0 " invalid " 
	       "16r00C1"    1 " LATIN CAPITAL LETTER A WITH ACUTE " 
	       "16r00C2"    1 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
	       "16r00C3"    1 " LATIN CAPITAL LETTER A WITH TILDE " 
	       "16r00C4"    1 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
	       "16r00C5"    1 " LATIN CAPITAL LETTER A WITH RING ABOVE " 
	       "16r00C6"    1 " LATIN CAPITAL LETTER AE " 
	       "16r00C7"    0 " invalid " 
	       "16r00C8"    0 " invalid " 
	       "16r00C9"    1 " LATIN CAPITAL LETTER E WITH ACUTE " 
	       "16r00CA"    0 " invalid " 
	       "16r00CB"    1 " LATIN CAPITAL LETTER E WITH DIAERESIS " 
	       "16r00CC"    0 " invalid " 
	       "16r00CD"    1 " LATIN CAPITAL LETTER I WITH ACUTE " 
	       "16r00CE"    1 " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
	       "16r00CF"    1 " LATIN CAPITAL LETTER I WITH DIAERESIS " 
	       "16r00D0"    1 " LATIN CAPITAL LETTER ETH (Icelandic) " 
	       "16r00D1"    0 " invalid " 
	       "16r00D2"    0 " invalid " 
	       "16r00D3"    1 " LATIN CAPITAL LETTER O WITH ACUTE " 
	       "16r00D4"    1 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
	       "16r00D5"    1 " LATIN CAPITAL LETTER O WITH TILDE " 
	       "16r00D6"    1 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
	       "16r00D7"    0 " invalid " 
	       "16r00D8"    1 " LATIN CAPITAL LETTER O WITH STROKE " 
	       "16r00D9"    0 " invalid " 
	       "16r00DA"    1 " LATIN CAPITAL LETTER U WITH ACUTE " 
	       "16r00DB"    1 " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " 
	       "16r00DC"    1 " LATIN CAPITAL LETTER U WITH DIAERESIS " 
	       "16r00DD"    1 " LATIN CAPITAL LETTER Y WITH ACUTE " 
	       "16r00DE"    1 " LATIN CAPITAL LETTER THORN (Icelandic) " 
	       "16r00DF"    1 " LATIN SMALL LETTER SHARP S (German) " 
	       "16r00E0"    0 " invalid " 
	       "16r00E1"    1 " LATIN SMALL LETTER A WITH ACUTE " 
	       "16r00E2"    1 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
	       "16r00E3"    1 " LATIN SMALL LETTER A WITH TILDE " 
	       "16r00E4"    1 " LATIN SMALL LETTER A WITH DIAERESIS " 
	       "16r00E5"    1 " LATIN SMALL LETTER A WITH RING ABOVE " 
	       "16r00E6"    1 " LATIN SMALL LETTER AE " 
	       "16r00E7"    0 " invalid " 
	       "16r00E8"    0 " invalid " 
	       "16r00E9"    1 " LATIN SMALL LETTER E WITH ACUTE " 
	       "16r00EA"    0 " invalid " 
	       "16r00EB"    1 " LATIN SMALL LETTER E WITH DIAERESIS " 
	       "16r00EC"    0 " invalid " 
	       "16r00ED"    1 " LATIN SMALL LETTER I WITH ACUTE " 
	       "16r00EE"    1 " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
	       "16r00EF"    1 " LATIN SMALL LETTER I WITH DIAERESIS " 
	       "16r00F0"    1 " LATIN SMALL LETTER ETH (Icelandic) " 
	       "16r00F1"    0 " invalid " 
	       "16r00F2"    0 " invalid " 
	       "16r00F3"    1 " LATIN SMALL LETTER O WITH ACUTE " 
	       "16r00F4"    1 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
	       "16r00F5"    1 " LATIN SMALL LETTER O WITH TILDE " 
	       "16r00F6"    1 " LATIN SMALL LETTER O WITH DIAERESIS " 
	       "16r00F7"    0 " invalid " 
	       "16r00F8"    1 " LATIN SMALL LETTER O WITH STROKE " 
	       "16r00F9"    0 " invalid " 
	       "16r00FA"    1 " LATIN SMALL LETTER U WITH ACUTE " 
	       "16r00FB"    1 " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
	       "16r00FC"    1 " LATIN SMALL LETTER U WITH DIAERESIS " 
	       "16r00FD"    1 " LATIN SMALL LETTER Y WITH ACUTE " 
	       "16r00FE"    1 " LATIN SMALL LETTER THORN (Icelandic) " 
	       "16r00FF"    0 " invalid " 
	    ] at:(unicode - 160)) ~~ 0 ifTrue:[^ unicode].
	    ^ self encodingError.
	].
	[
	    |t|
	    t := #[
	       "16r0100"    16rC0 " LATIN CAPITAL LETTER A WITH MACRON " 
	       "16r0101"    16rE0 " LATIN SMALL LETTER A WITH MACRON " 
	       "16r0102"    16r00 " invalid " 
	       "16r0103"    16r00 " invalid " 
	       "16r0104"    16rA1 " LATIN CAPITAL LETTER A WITH OGONEK " 
	       "16r0105"    16rB1 " LATIN SMALL LETTER A WITH OGONEK " 
	       "16r0106"    16r00 " invalid " 
	       "16r0107"    16r00 " invalid " 
	       "16r0108"    16r00 " invalid " 
	       "16r0109"    16r00 " invalid " 
	       "16r010A"    16r00 " invalid " 
	       "16r010B"    16r00 " invalid " 
	       "16r010C"    16rC8 " LATIN CAPITAL LETTER C WITH CARON " 
	       "16r010D"    16rE8 " LATIN SMALL LETTER C WITH CARON " 
	       "16r010E"    16r00 " invalid " 
	       "16r010F"    16r00 " invalid " 
	       "16r0110"    16rA9 " LATIN CAPITAL LETTER D WITH STROKE " 
	       "16r0111"    16rB9 " LATIN SMALL LETTER D WITH STROKE " 
	       "16r0112"    16rA2 " LATIN CAPITAL LETTER E WITH MACRON " 
	       "16r0113"    16rB2 " LATIN SMALL LETTER E WITH MACRON " 
	       "16r0114"    16r00 " invalid " 
	       "16r0115"    16r00 " invalid " 
	       "16r0116"    16rCC " LATIN CAPITAL LETTER E WITH DOT ABOVE " 
	       "16r0117"    16rEC " LATIN SMALL LETTER E WITH DOT ABOVE " 
	       "16r0118"    16rCA " LATIN CAPITAL LETTER E WITH OGONEK " 
	       "16r0119"    16rEA " LATIN SMALL LETTER E WITH OGONEK " 
	       "16r011A"    16r00 " invalid " 
	       "16r011B"    16r00 " invalid " 
	       "16r011C"    16r00 " invalid " 
	       "16r011D"    16r00 " invalid " 
	       "16r011E"    16r00 " invalid " 
	       "16r011F"    16r00 " invalid " 
	       "16r0120"    16r00 " invalid " 
	       "16r0121"    16r00 " invalid " 
	       "16r0122"    16rA3 " LATIN CAPITAL LETTER G WITH CEDILLA " 
	       "16r0123"    16rB3 " LATIN SMALL LETTER G WITH CEDILLA " 
	       "16r0124"    16r00 " invalid " 
	       "16r0125"    16r00 " invalid " 
	       "16r0126"    16r00 " invalid " 
	       "16r0127"    16r00 " invalid " 
	       "16r0128"    16rA5 " LATIN CAPITAL LETTER I WITH TILDE " 
	       "16r0129"    16rB5 " LATIN SMALL LETTER I WITH TILDE " 
	       "16r012A"    16rA4 " LATIN CAPITAL LETTER I WITH MACRON " 
	       "16r012B"    16rB4 " LATIN SMALL LETTER I WITH MACRON " 
	       "16r012C"    16r00 " invalid " 
	       "16r012D"    16r00 " invalid " 
	       "16r012E"    16rC7 " LATIN CAPITAL LETTER I WITH OGONEK " 
	       "16r012F"    16rE7 " LATIN SMALL LETTER I WITH OGONEK " 
	       "16r0130"    16r00 " invalid " 
	       "16r0131"    16r00 " invalid " 
	       "16r0132"    16r00 " invalid " 
	       "16r0133"    16r00 " invalid " 
	       "16r0134"    16r00 " invalid " 
	       "16r0135"    16r00 " invalid " 
	       "16r0136"    16rA6 " LATIN CAPITAL LETTER K WITH CEDILLA " 
	       "16r0137"    16rB6 " LATIN SMALL LETTER K WITH CEDILLA " 
	       "16r0138"    16rFF " LATIN SMALL LETTER KRA " 
	       "16r0139"    16r00 " invalid " 
	       "16r013A"    16r00 " invalid " 
	       "16r013B"    16rA8 " LATIN CAPITAL LETTER L WITH CEDILLA " 
	       "16r013C"    16rB8 " LATIN SMALL LETTER L WITH CEDILLA " 
	       "16r013D"    16r00 " invalid " 
	       "16r013E"    16r00 " invalid " 
	       "16r013F"    16r00 " invalid " 
	       "16r0140"    16r00 " invalid " 
	       "16r0141"    16r00 " invalid " 
	       "16r0142"    16r00 " invalid " 
	       "16r0143"    16r00 " invalid " 
	       "16r0144"    16r00 " invalid " 
	       "16r0145"    16rD1 " LATIN CAPITAL LETTER N WITH CEDILLA " 
	       "16r0146"    16rF1 " LATIN SMALL LETTER N WITH CEDILLA " 
	       "16r0147"    16r00 " invalid " 
	       "16r0148"    16r00 " invalid " 
	       "16r0149"    16r00 " invalid " 
	       "16r014A"    16rAF " LATIN CAPITAL LETTER ENG " 
	       "16r014B"    16rBF " LATIN SMALL LETTER ENG " 
	       "16r014C"    16rD2 " LATIN CAPITAL LETTER O WITH MACRON " 
	       "16r014D"    16rF2 " LATIN SMALL LETTER O WITH MACRON " 
	       "16r014E"    16r00 " invalid " 
	       "16r014F"    16r00 " invalid " 
	       "16r0150"    16r00 " invalid " 
	       "16r0151"    16r00 " invalid " 
	       "16r0152"    16r00 " invalid " 
	       "16r0153"    16r00 " invalid " 
	       "16r0154"    16r00 " invalid " 
	       "16r0155"    16r00 " invalid " 
	       "16r0156"    16r00 " invalid " 
	       "16r0157"    16r00 " invalid " 
	       "16r0158"    16r00 " invalid " 
	       "16r0159"    16r00 " invalid " 
	       "16r015A"    16r00 " invalid " 
	       "16r015B"    16r00 " invalid " 
	       "16r015C"    16r00 " invalid " 
	       "16r015D"    16r00 " invalid " 
	       "16r015E"    16r00 " invalid " 
	       "16r015F"    16r00 " invalid " 
	       "16r0160"    16rAA " LATIN CAPITAL LETTER S WITH CARON " 
	       "16r0161"    16rBA " LATIN SMALL LETTER S WITH CARON " 
	       "16r0162"    16r00 " invalid " 
	       "16r0163"    16r00 " invalid " 
	       "16r0164"    16r00 " invalid " 
	       "16r0165"    16r00 " invalid " 
	       "16r0166"    16rAB " LATIN CAPITAL LETTER T WITH STROKE " 
	       "16r0167"    16rBB " LATIN SMALL LETTER T WITH STROKE " 
	       "16r0168"    16rD7 " LATIN CAPITAL LETTER U WITH TILDE " 
	       "16r0169"    16rF7 " LATIN SMALL LETTER U WITH TILDE " 
	       "16r016A"    16rAE " LATIN CAPITAL LETTER U WITH MACRON " 
	       "16r016B"    16rBE " LATIN SMALL LETTER U WITH MACRON " 
	       "16r016C"    16r00 " invalid " 
	       "16r016D"    16r00 " invalid " 
	       "16r016E"    16r00 " invalid " 
	       "16r016F"    16r00 " invalid " 
	       "16r0170"    16r00 " invalid " 
	       "16r0171"    16r00 " invalid " 
	       "16r0172"    16rD9 " LATIN CAPITAL LETTER U WITH OGONEK " 
	       "16r0173"    16rF9 " LATIN SMALL LETTER U WITH OGONEK " 
	       "16r0174"    16r00 " invalid " 
	       "16r0175"    16r00 " invalid " 
	       "16r0176"    16r00 " invalid " 
	       "16r0177"    16r00 " invalid " 
	       "16r0178"    16r00 " invalid " 
	       "16r0179"    16r00 " invalid " 
	       "16r017A"    16r00 " invalid " 
	       "16r017B"    16r00 " invalid " 
	       "16r017C"    16r00 " invalid " 
	       "16r017D"    16rAC " LATIN CAPITAL LETTER Z WITH CARON " 
	       "16r017E"    16rBC " LATIN SMALL LETTER Z WITH CARON " 
	       ] at:(unicode - 16rFF).
	    t == 0 ifFalse:[^ t].
	    ^ self encodingError
	] value.
    ].
    unicode <= 16r2014 ifTrue:[
	^ self encodingError.
    ].
    ^  "16r2015" 16r00BD " HORIZONTAL BAR " 
! !

!CharacterEncoder::ISO8859_11 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'ISO8859/8859-11.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-11.TXT

#
#       Name:             ISO/IEC 8859-11:2001 to Unicode
#       Unicode version:  3.2
#       Table version:    1.0
#       Table format:     Format A
#       Date:             2002 October 7
#       Authors:          Ken Whistler <kenw@sybase.com>
#
#       Copyright (c) 2002 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ISO/IEC 8859-11:2001 characters map into Unicode.
#
#       ISO/IEC 8859-11:2001 is equivalent to TIS 620-2533 (1990) with
#       the addition of 0xA0 NO-BREAK SPACE.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ISO/IEC 8859-11 code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ISO/IEC 8859-11 order.
#
#       Version history:
#               2002 October 7  Created
#
#       Updated versions of this file may be found in:
#               <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
#       For any comments or problems, please use the Unicode
#       web contact form at:
#               http://www.unicode.org/unicode/reporting.html
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x0080  #       <control>
0x81    0x0081  #       <control>
0x82    0x0082  #       <control>
0x83    0x0083  #       <control>
0x84    0x0084  #       <control>
0x85    0x0085  #       <control>
0x86    0x0086  #       <control>
0x87    0x0087  #       <control>
0x88    0x0088  #       <control>
0x89    0x0089  #       <control>
0x8A    0x008A  #       <control>
0x8B    0x008B  #       <control>
0x8C    0x008C  #       <control>
0x8D    0x008D  #       <control>
0x8E    0x008E  #       <control>
0x8F    0x008F  #       <control>
0x90    0x0090  #       <control>
0x91    0x0091  #       <control>
0x92    0x0092  #       <control>
0x93    0x0093  #       <control>
0x94    0x0094  #       <control>
0x95    0x0095  #       <control>
0x96    0x0096  #       <control>
0x97    0x0097  #       <control>
0x98    0x0098  #       <control>
0x99    0x0099  #       <control>
0x9A    0x009A  #       <control>
0x9B    0x009B  #       <control>
0x9C    0x009C  #       <control>
0x9D    0x009D  #       <control>
0x9E    0x009E  #       <control>
0x9F    0x009F  #       <control>
0xA0    0x00A0  #       NO-BREAK SPACE
0xA1    0x0E01  #       THAI CHARACTER KO KAI
0xA2    0x0E02  #       THAI CHARACTER KHO KHAI
0xA3    0x0E03  #       THAI CHARACTER KHO KHUAT
0xA4    0x0E04  #       THAI CHARACTER KHO KHWAI
0xA5    0x0E05  #       THAI CHARACTER KHO KHON
0xA6    0x0E06  #       THAI CHARACTER KHO RAKHANG
0xA7    0x0E07  #       THAI CHARACTER NGO NGU
0xA8    0x0E08  #       THAI CHARACTER CHO CHAN
0xA9    0x0E09  #       THAI CHARACTER CHO CHING
0xAA    0x0E0A  #       THAI CHARACTER CHO CHANG
0xAB    0x0E0B  #       THAI CHARACTER SO SO
0xAC    0x0E0C  #       THAI CHARACTER CHO CHOE
0xAD    0x0E0D  #       THAI CHARACTER YO YING
0xAE    0x0E0E  #       THAI CHARACTER DO CHADA
0xAF    0x0E0F  #       THAI CHARACTER TO PATAK
0xB0    0x0E10  #       THAI CHARACTER THO THAN
0xB1    0x0E11  #       THAI CHARACTER THO NANGMONTHO
0xB2    0x0E12  #       THAI CHARACTER THO PHUTHAO
0xB3    0x0E13  #       THAI CHARACTER NO NEN
0xB4    0x0E14  #       THAI CHARACTER DO DEK
0xB5    0x0E15  #       THAI CHARACTER TO TAO
0xB6    0x0E16  #       THAI CHARACTER THO THUNG
0xB7    0x0E17  #       THAI CHARACTER THO THAHAN
0xB8    0x0E18  #       THAI CHARACTER THO THONG
0xB9    0x0E19  #       THAI CHARACTER NO NU
0xBA    0x0E1A  #       THAI CHARACTER BO BAIMAI
0xBB    0x0E1B  #       THAI CHARACTER PO PLA
0xBC    0x0E1C  #       THAI CHARACTER PHO PHUNG
0xBD    0x0E1D  #       THAI CHARACTER FO FA
0xBE    0x0E1E  #       THAI CHARACTER PHO PHAN
0xBF    0x0E1F  #       THAI CHARACTER FO FAN
0xC0    0x0E20  #       THAI CHARACTER PHO SAMPHAO
0xC1    0x0E21  #       THAI CHARACTER MO MA
0xC2    0x0E22  #       THAI CHARACTER YO YAK
0xC3    0x0E23  #       THAI CHARACTER RO RUA
0xC4    0x0E24  #       THAI CHARACTER RU
0xC5    0x0E25  #       THAI CHARACTER LO LING
0xC6    0x0E26  #       THAI CHARACTER LU
0xC7    0x0E27  #       THAI CHARACTER WO WAEN
0xC8    0x0E28  #       THAI CHARACTER SO SALA
0xC9    0x0E29  #       THAI CHARACTER SO RUSI
0xCA    0x0E2A  #       THAI CHARACTER SO SUA
0xCB    0x0E2B  #       THAI CHARACTER HO HIP
0xCC    0x0E2C  #       THAI CHARACTER LO CHULA
0xCD    0x0E2D  #       THAI CHARACTER O ANG
0xCE    0x0E2E  #       THAI CHARACTER HO NOKHUK
0xCF    0x0E2F  #       THAI CHARACTER PAIYANNOI
0xD0    0x0E30  #       THAI CHARACTER SARA A
0xD1    0x0E31  #       THAI CHARACTER MAI HAN-AKAT
0xD2    0x0E32  #       THAI CHARACTER SARA AA
0xD3    0x0E33  #       THAI CHARACTER SARA AM
0xD4    0x0E34  #       THAI CHARACTER SARA I
0xD5    0x0E35  #       THAI CHARACTER SARA II
0xD6    0x0E36  #       THAI CHARACTER SARA UE
0xD7    0x0E37  #       THAI CHARACTER SARA UEE
0xD8    0x0E38  #       THAI CHARACTER SARA U
0xD9    0x0E39  #       THAI CHARACTER SARA UU
0xDA    0x0E3A  #       THAI CHARACTER PHINTHU
0xDF    0x0E3F  #       THAI CURRENCY SYMBOL BAHT
0xE0    0x0E40  #       THAI CHARACTER SARA E
0xE1    0x0E41  #       THAI CHARACTER SARA AE
0xE2    0x0E42  #       THAI CHARACTER SARA O
0xE3    0x0E43  #       THAI CHARACTER SARA AI MAIMUAN
0xE4    0x0E44  #       THAI CHARACTER SARA AI MAIMALAI
0xE5    0x0E45  #       THAI CHARACTER LAKKHANGYAO
0xE6    0x0E46  #       THAI CHARACTER MAIYAMOK
0xE7    0x0E47  #       THAI CHARACTER MAITAIKHU
0xE8    0x0E48  #       THAI CHARACTER MAI EK
0xE9    0x0E49  #       THAI CHARACTER MAI THO
0xEA    0x0E4A  #       THAI CHARACTER MAI TRI
0xEB    0x0E4B  #       THAI CHARACTER MAI CHATTAWA
0xEC    0x0E4C  #       THAI CHARACTER THANTHAKHAT
0xED    0x0E4D  #       THAI CHARACTER NIKHAHIT
0xEE    0x0E4E  #       THAI CHARACTER YAMAKKAN
0xEF    0x0E4F  #       THAI CHARACTER FONGMAN
0xF0    0x0E50  #       THAI DIGIT ZERO
0xF1    0x0E51  #       THAI DIGIT ONE
0xF2    0x0E52  #       THAI DIGIT TWO
0xF3    0x0E53  #       THAI DIGIT THREE
0xF4    0x0E54  #       THAI DIGIT FOUR
0xF5    0x0E55  #       THAI DIGIT FIVE
0xF6    0x0E56  #       THAI DIGIT SIX
0xF7    0x0E57  #       THAI DIGIT SEVEN
0xF8    0x0E58  #       THAI DIGIT EIGHT
0xF9    0x0E59  #       THAI DIGIT NINE
0xFA    0x0E5A  #       THAI CHARACTER ANGKHANKHU
0xFB    0x0E5B  #       THAI CHARACTER KHOMUT

"
! !

!CharacterEncoder::ISO8859_11 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-11' 'iso-8859-11' 'thai' )
!

userFriendlyNameOfEncoding
    ^ 'Thai'
! !

!CharacterEncoder::ISO8859_11 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16rA0 ifTrue:[ ^ code ].
    code > 16rFB ifTrue:[
	^ self decodingError.
    ].
    [
	|t|
	t := #(
	   "16r00A1"    16r0E01 " THAI CHARACTER KO KAI " 
	   "16r00A2"    16r0E02 " THAI CHARACTER KHO KHAI " 
	   "16r00A3"    16r0E03 " THAI CHARACTER KHO KHUAT " 
	   "16r00A4"    16r0E04 " THAI CHARACTER KHO KHWAI " 
	   "16r00A5"    16r0E05 " THAI CHARACTER KHO KHON " 
	   "16r00A6"    16r0E06 " THAI CHARACTER KHO RAKHANG " 
	   "16r00A7"    16r0E07 " THAI CHARACTER NGO NGU " 
	   "16r00A8"    16r0E08 " THAI CHARACTER CHO CHAN " 
	   "16r00A9"    16r0E09 " THAI CHARACTER CHO CHING " 
	   "16r00AA"    16r0E0A " THAI CHARACTER CHO CHANG " 
	   "16r00AB"    16r0E0B " THAI CHARACTER SO SO " 
	   "16r00AC"    16r0E0C " THAI CHARACTER CHO CHOE " 
	   "16r00AD"    16r0E0D " THAI CHARACTER YO YING " 
	   "16r00AE"    16r0E0E " THAI CHARACTER DO CHADA " 
	   "16r00AF"    16r0E0F " THAI CHARACTER TO PATAK " 
	   "16r00B0"    16r0E10 " THAI CHARACTER THO THAN " 
	   "16r00B1"    16r0E11 " THAI CHARACTER THO NANGMONTHO " 
	   "16r00B2"    16r0E12 " THAI CHARACTER THO PHUTHAO " 
	   "16r00B3"    16r0E13 " THAI CHARACTER NO NEN " 
	   "16r00B4"    16r0E14 " THAI CHARACTER DO DEK " 
	   "16r00B5"    16r0E15 " THAI CHARACTER TO TAO " 
	   "16r00B6"    16r0E16 " THAI CHARACTER THO THUNG " 
	   "16r00B7"    16r0E17 " THAI CHARACTER THO THAHAN " 
	   "16r00B8"    16r0E18 " THAI CHARACTER THO THONG " 
	   "16r00B9"    16r0E19 " THAI CHARACTER NO NU " 
	   "16r00BA"    16r0E1A " THAI CHARACTER BO BAIMAI " 
	   "16r00BB"    16r0E1B " THAI CHARACTER PO PLA " 
	   "16r00BC"    16r0E1C " THAI CHARACTER PHO PHUNG " 
	   "16r00BD"    16r0E1D " THAI CHARACTER FO FA " 
	   "16r00BE"    16r0E1E " THAI CHARACTER PHO PHAN " 
	   "16r00BF"    16r0E1F " THAI CHARACTER FO FAN " 
	   "16r00C0"    16r0E20 " THAI CHARACTER PHO SAMPHAO " 
	   "16r00C1"    16r0E21 " THAI CHARACTER MO MA " 
	   "16r00C2"    16r0E22 " THAI CHARACTER YO YAK " 
	   "16r00C3"    16r0E23 " THAI CHARACTER RO RUA " 
	   "16r00C4"    16r0E24 " THAI CHARACTER RU " 
	   "16r00C5"    16r0E25 " THAI CHARACTER LO LING " 
	   "16r00C6"    16r0E26 " THAI CHARACTER LU " 
	   "16r00C7"    16r0E27 " THAI CHARACTER WO WAEN " 
	   "16r00C8"    16r0E28 " THAI CHARACTER SO SALA " 
	   "16r00C9"    16r0E29 " THAI CHARACTER SO RUSI " 
	   "16r00CA"    16r0E2A " THAI CHARACTER SO SUA " 
	   "16r00CB"    16r0E2B " THAI CHARACTER HO HIP " 
	   "16r00CC"    16r0E2C " THAI CHARACTER LO CHULA " 
	   "16r00CD"    16r0E2D " THAI CHARACTER O ANG " 
	   "16r00CE"    16r0E2E " THAI CHARACTER HO NOKHUK " 
	   "16r00CF"    16r0E2F " THAI CHARACTER PAIYANNOI " 
	   "16r00D0"    16r0E30 " THAI CHARACTER SARA A " 
	   "16r00D1"    16r0E31 " THAI CHARACTER MAI HAN-AKAT " 
	   "16r00D2"    16r0E32 " THAI CHARACTER SARA AA " 
	   "16r00D3"    16r0E33 " THAI CHARACTER SARA AM " 
	   "16r00D4"    16r0E34 " THAI CHARACTER SARA I " 
	   "16r00D5"    16r0E35 " THAI CHARACTER SARA II " 
	   "16r00D6"    16r0E36 " THAI CHARACTER SARA UE " 
	   "16r00D7"    16r0E37 " THAI CHARACTER SARA UEE " 
	   "16r00D8"    16r0E38 " THAI CHARACTER SARA U " 
	   "16r00D9"    16r0E39 " THAI CHARACTER SARA UU " 
	   "16r00DA"    16r0E3A " THAI CHARACTER PHINTHU " 
	   "16r00DB"    16r0000 " invalid " 
	   "16r00DC"    16r0000 " invalid " 
	   "16r00DD"    16r0000 " invalid " 
	   "16r00DE"    16r0000 " invalid " 
	   "16r00DF"    16r0E3F " THAI CURRENCY SYMBOL BAHT " 
	   "16r00E0"    16r0E40 " THAI CHARACTER SARA E " 
	   "16r00E1"    16r0E41 " THAI CHARACTER SARA AE " 
	   "16r00E2"    16r0E42 " THAI CHARACTER SARA O " 
	   "16r00E3"    16r0E43 " THAI CHARACTER SARA AI MAIMUAN " 
	   "16r00E4"    16r0E44 " THAI CHARACTER SARA AI MAIMALAI " 
	   "16r00E5"    16r0E45 " THAI CHARACTER LAKKHANGYAO " 
	   "16r00E6"    16r0E46 " THAI CHARACTER MAIYAMOK " 
	   "16r00E7"    16r0E47 " THAI CHARACTER MAITAIKHU " 
	   "16r00E8"    16r0E48 " THAI CHARACTER MAI EK " 
	   "16r00E9"    16r0E49 " THAI CHARACTER MAI THO " 
	   "16r00EA"    16r0E4A " THAI CHARACTER MAI TRI " 
	   "16r00EB"    16r0E4B " THAI CHARACTER MAI CHATTAWA " 
	   "16r00EC"    16r0E4C " THAI CHARACTER THANTHAKHAT " 
	   "16r00ED"    16r0E4D " THAI CHARACTER NIKHAHIT " 
	   "16r00EE"    16r0E4E " THAI CHARACTER YAMAKKAN " 
	   "16r00EF"    16r0E4F " THAI CHARACTER FONGMAN " 
	   "16r00F0"    16r0E50 " THAI DIGIT ZERO " 
	   "16r00F1"    16r0E51 " THAI DIGIT ONE " 
	   "16r00F2"    16r0E52 " THAI DIGIT TWO " 
	   "16r00F3"    16r0E53 " THAI DIGIT THREE " 
	   "16r00F4"    16r0E54 " THAI DIGIT FOUR " 
	   "16r00F5"    16r0E55 " THAI DIGIT FIVE " 
	   "16r00F6"    16r0E56 " THAI DIGIT SIX " 
	   "16r00F7"    16r0E57 " THAI DIGIT SEVEN " 
	   "16r00F8"    16r0E58 " THAI DIGIT EIGHT " 
	   "16r00F9"    16r0E59 " THAI DIGIT NINE " 
	   "16r00FA"    16r0E5A " THAI CHARACTER ANGKHANKHU " 
	   "16r00FB"    16r0E5B " THAI CHARACTER KHOMUT " 
	   ) at:(code - 16rA0).
	t == 0 ifFalse:[^ t].
	^ self decodingError.
    ] value.
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16rA0 ifTrue:[ ^ unicode ].
    unicode > 16rE5B ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16rE00 ifTrue:[
	^ self encodingError.
    ].
    [
	|t|
	t := #[
	   "16r0E01"    16rA1 " THAI CHARACTER KO KAI " 
	   "16r0E02"    16rA2 " THAI CHARACTER KHO KHAI " 
	   "16r0E03"    16rA3 " THAI CHARACTER KHO KHUAT " 
	   "16r0E04"    16rA4 " THAI CHARACTER KHO KHWAI " 
	   "16r0E05"    16rA5 " THAI CHARACTER KHO KHON " 
	   "16r0E06"    16rA6 " THAI CHARACTER KHO RAKHANG " 
	   "16r0E07"    16rA7 " THAI CHARACTER NGO NGU " 
	   "16r0E08"    16rA8 " THAI CHARACTER CHO CHAN " 
	   "16r0E09"    16rA9 " THAI CHARACTER CHO CHING " 
	   "16r0E0A"    16rAA " THAI CHARACTER CHO CHANG " 
	   "16r0E0B"    16rAB " THAI CHARACTER SO SO " 
	   "16r0E0C"    16rAC " THAI CHARACTER CHO CHOE " 
	   "16r0E0D"    16rAD " THAI CHARACTER YO YING " 
	   "16r0E0E"    16rAE " THAI CHARACTER DO CHADA " 
	   "16r0E0F"    16rAF " THAI CHARACTER TO PATAK " 
	   "16r0E10"    16rB0 " THAI CHARACTER THO THAN " 
	   "16r0E11"    16rB1 " THAI CHARACTER THO NANGMONTHO " 
	   "16r0E12"    16rB2 " THAI CHARACTER THO PHUTHAO " 
	   "16r0E13"    16rB3 " THAI CHARACTER NO NEN " 
	   "16r0E14"    16rB4 " THAI CHARACTER DO DEK " 
	   "16r0E15"    16rB5 " THAI CHARACTER TO TAO " 
	   "16r0E16"    16rB6 " THAI CHARACTER THO THUNG " 
	   "16r0E17"    16rB7 " THAI CHARACTER THO THAHAN " 
	   "16r0E18"    16rB8 " THAI CHARACTER THO THONG " 
	   "16r0E19"    16rB9 " THAI CHARACTER NO NU " 
	   "16r0E1A"    16rBA " THAI CHARACTER BO BAIMAI " 
	   "16r0E1B"    16rBB " THAI CHARACTER PO PLA " 
	   "16r0E1C"    16rBC " THAI CHARACTER PHO PHUNG " 
	   "16r0E1D"    16rBD " THAI CHARACTER FO FA " 
	   "16r0E1E"    16rBE " THAI CHARACTER PHO PHAN " 
	   "16r0E1F"    16rBF " THAI CHARACTER FO FAN " 
	   "16r0E20"    16rC0 " THAI CHARACTER PHO SAMPHAO " 
	   "16r0E21"    16rC1 " THAI CHARACTER MO MA " 
	   "16r0E22"    16rC2 " THAI CHARACTER YO YAK " 
	   "16r0E23"    16rC3 " THAI CHARACTER RO RUA " 
	   "16r0E24"    16rC4 " THAI CHARACTER RU " 
	   "16r0E25"    16rC5 " THAI CHARACTER LO LING " 
	   "16r0E26"    16rC6 " THAI CHARACTER LU " 
	   "16r0E27"    16rC7 " THAI CHARACTER WO WAEN " 
	   "16r0E28"    16rC8 " THAI CHARACTER SO SALA " 
	   "16r0E29"    16rC9 " THAI CHARACTER SO RUSI " 
	   "16r0E2A"    16rCA " THAI CHARACTER SO SUA " 
	   "16r0E2B"    16rCB " THAI CHARACTER HO HIP " 
	   "16r0E2C"    16rCC " THAI CHARACTER LO CHULA " 
	   "16r0E2D"    16rCD " THAI CHARACTER O ANG " 
	   "16r0E2E"    16rCE " THAI CHARACTER HO NOKHUK " 
	   "16r0E2F"    16rCF " THAI CHARACTER PAIYANNOI " 
	   "16r0E30"    16rD0 " THAI CHARACTER SARA A " 
	   "16r0E31"    16rD1 " THAI CHARACTER MAI HAN-AKAT " 
	   "16r0E32"    16rD2 " THAI CHARACTER SARA AA " 
	   "16r0E33"    16rD3 " THAI CHARACTER SARA AM " 
	   "16r0E34"    16rD4 " THAI CHARACTER SARA I " 
	   "16r0E35"    16rD5 " THAI CHARACTER SARA II " 
	   "16r0E36"    16rD6 " THAI CHARACTER SARA UE " 
	   "16r0E37"    16rD7 " THAI CHARACTER SARA UEE " 
	   "16r0E38"    16rD8 " THAI CHARACTER SARA U " 
	   "16r0E39"    16rD9 " THAI CHARACTER SARA UU " 
	   "16r0E3A"    16rDA " THAI CHARACTER PHINTHU " 
	   "16r0E3B"    16r00 " invalid " 
	   "16r0E3C"    16r00 " invalid " 
	   "16r0E3D"    16r00 " invalid " 
	   "16r0E3E"    16r00 " invalid " 
	   "16r0E3F"    16rDF " THAI CURRENCY SYMBOL BAHT " 
	   "16r0E40"    16rE0 " THAI CHARACTER SARA E " 
	   "16r0E41"    16rE1 " THAI CHARACTER SARA AE " 
	   "16r0E42"    16rE2 " THAI CHARACTER SARA O " 
	   "16r0E43"    16rE3 " THAI CHARACTER SARA AI MAIMUAN " 
	   "16r0E44"    16rE4 " THAI CHARACTER SARA AI MAIMALAI " 
	   "16r0E45"    16rE5 " THAI CHARACTER LAKKHANGYAO " 
	   "16r0E46"    16rE6 " THAI CHARACTER MAIYAMOK " 
	   "16r0E47"    16rE7 " THAI CHARACTER MAITAIKHU " 
	   "16r0E48"    16rE8 " THAI CHARACTER MAI EK " 
	   "16r0E49"    16rE9 " THAI CHARACTER MAI THO " 
	   "16r0E4A"    16rEA " THAI CHARACTER MAI TRI " 
	   "16r0E4B"    16rEB " THAI CHARACTER MAI CHATTAWA " 
	   "16r0E4C"    16rEC " THAI CHARACTER THANTHAKHAT " 
	   "16r0E4D"    16rED " THAI CHARACTER NIKHAHIT " 
	   "16r0E4E"    16rEE " THAI CHARACTER YAMAKKAN " 
	   "16r0E4F"    16rEF " THAI CHARACTER FONGMAN " 
	   "16r0E50"    16rF0 " THAI DIGIT ZERO " 
	   "16r0E51"    16rF1 " THAI DIGIT ONE " 
	   "16r0E52"    16rF2 " THAI DIGIT TWO " 
	   "16r0E53"    16rF3 " THAI DIGIT THREE " 
	   "16r0E54"    16rF4 " THAI DIGIT FOUR " 
	   "16r0E55"    16rF5 " THAI DIGIT FIVE " 
	   "16r0E56"    16rF6 " THAI DIGIT SIX " 
	   "16r0E57"    16rF7 " THAI DIGIT SEVEN " 
	   "16r0E58"    16rF8 " THAI DIGIT EIGHT " 
	   "16r0E59"    16rF9 " THAI DIGIT NINE " 
	   "16r0E5A"    16rFA " THAI CHARACTER ANGKHANKHU " 
	   "16r0E5B"    16rFB " THAI CHARACTER KHOMUT " 
	   ] at:(unicode - 16rE00).
	t == 0 ifFalse:[^ t].
	^ self encodingError
    ] value.
! !

!CharacterEncoder::ISO8859_13 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'ISO8859/8859-13.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-13.TXT

#
#       Name:             ISO/IEC 8859-13:1998  to Unicode
#       Unicode version:  3.0
#       Table version:    1.0
#       Table format:     Format A
#       Date:             1999 July 27
#       Authors:          Ken Whistler <kenw@sybase.com>
#
#       Copyright (c) 1998 - 1999 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ISO/IEC 8859-13:1998 characters map into Unicode.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ISO/IEC 8859-13 code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ISO/IEC 8859-13 order.
#
#       Updated versions of this file may be found in:
#               <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
#       Any comments or problems, contact <errata@unicode.org>
#       Please note that <errata@unicode.org> is an archival address;
#       notices will be checked, but do not expect an immediate response.
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x0080  #       <control>
0x81    0x0081  #       <control>
0x82    0x0082  #       <control>
0x83    0x0083  #       <control>
0x84    0x0084  #       <control>
0x85    0x0085  #       <control>
0x86    0x0086  #       <control>
0x87    0x0087  #       <control>
0x88    0x0088  #       <control>
0x89    0x0089  #       <control>
0x8A    0x008A  #       <control>
0x8B    0x008B  #       <control>
0x8C    0x008C  #       <control>
0x8D    0x008D  #       <control>
0x8E    0x008E  #       <control>
0x8F    0x008F  #       <control>
0x90    0x0090  #       <control>
0x91    0x0091  #       <control>
0x92    0x0092  #       <control>
0x93    0x0093  #       <control>
0x94    0x0094  #       <control>
0x95    0x0095  #       <control>
0x96    0x0096  #       <control>
0x97    0x0097  #       <control>
0x98    0x0098  #       <control>
0x99    0x0099  #       <control>
0x9A    0x009A  #       <control>
0x9B    0x009B  #       <control>
0x9C    0x009C  #       <control>
0x9D    0x009D  #       <control>
0x9E    0x009E  #       <control>
0x9F    0x009F  #       <control>
0xA0    0x00A0  #       NO-BREAK SPACE
0xA1    0x201D  #       RIGHT DOUBLE QUOTATION MARK
0xA2    0x00A2  #       CENT SIGN
0xA3    0x00A3  #       POUND SIGN
0xA4    0x00A4  #       CURRENCY SIGN
0xA5    0x201E  #       DOUBLE LOW-9 QUOTATION MARK
0xA6    0x00A6  #       BROKEN BAR
0xA7    0x00A7  #       SECTION SIGN
0xA8    0x00D8  #       LATIN CAPITAL LETTER O WITH STROKE
0xA9    0x00A9  #       COPYRIGHT SIGN
0xAA    0x0156  #       LATIN CAPITAL LETTER R WITH CEDILLA
0xAB    0x00AB  #       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xAC    0x00AC  #       NOT SIGN
0xAD    0x00AD  #       SOFT HYPHEN
0xAE    0x00AE  #       REGISTERED SIGN
0xAF    0x00C6  #       LATIN CAPITAL LETTER AE
0xB0    0x00B0  #       DEGREE SIGN
0xB1    0x00B1  #       PLUS-MINUS SIGN
0xB2    0x00B2  #       SUPERSCRIPT TWO
0xB3    0x00B3  #       SUPERSCRIPT THREE
0xB4    0x201C  #       LEFT DOUBLE QUOTATION MARK
0xB5    0x00B5  #       MICRO SIGN
0xB6    0x00B6  #       PILCROW SIGN
0xB7    0x00B7  #       MIDDLE DOT
0xB8    0x00F8  #       LATIN SMALL LETTER O WITH STROKE
0xB9    0x00B9  #       SUPERSCRIPT ONE
0xBA    0x0157  #       LATIN SMALL LETTER R WITH CEDILLA
0xBB    0x00BB  #       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xBC    0x00BC  #       VULGAR FRACTION ONE QUARTER
0xBD    0x00BD  #       VULGAR FRACTION ONE HALF
0xBE    0x00BE  #       VULGAR FRACTION THREE QUARTERS
0xBF    0x00E6  #       LATIN SMALL LETTER AE
0xC0    0x0104  #       LATIN CAPITAL LETTER A WITH OGONEK
0xC1    0x012E  #       LATIN CAPITAL LETTER I WITH OGONEK
0xC2    0x0100  #       LATIN CAPITAL LETTER A WITH MACRON
0xC3    0x0106  #       LATIN CAPITAL LETTER C WITH ACUTE
0xC4    0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS
0xC5    0x00C5  #       LATIN CAPITAL LETTER A WITH RING ABOVE
0xC6    0x0118  #       LATIN CAPITAL LETTER E WITH OGONEK
0xC7    0x0112  #       LATIN CAPITAL LETTER E WITH MACRON
0xC8    0x010C  #       LATIN CAPITAL LETTER C WITH CARON
0xC9    0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE
0xCA    0x0179  #       LATIN CAPITAL LETTER Z WITH ACUTE
0xCB    0x0116  #       LATIN CAPITAL LETTER E WITH DOT ABOVE
0xCC    0x0122  #       LATIN CAPITAL LETTER G WITH CEDILLA
0xCD    0x0136  #       LATIN CAPITAL LETTER K WITH CEDILLA
0xCE    0x012A  #       LATIN CAPITAL LETTER I WITH MACRON
0xCF    0x013B  #       LATIN CAPITAL LETTER L WITH CEDILLA
0xD0    0x0160  #       LATIN CAPITAL LETTER S WITH CARON
0xD1    0x0143  #       LATIN CAPITAL LETTER N WITH ACUTE
0xD2    0x0145  #       LATIN CAPITAL LETTER N WITH CEDILLA
0xD3    0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE
0xD4    0x014C  #       LATIN CAPITAL LETTER O WITH MACRON
0xD5    0x00D5  #       LATIN CAPITAL LETTER O WITH TILDE
0xD6    0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS
0xD7    0x00D7  #       MULTIPLICATION SIGN
0xD8    0x0172  #       LATIN CAPITAL LETTER U WITH OGONEK
0xD9    0x0141  #       LATIN CAPITAL LETTER L WITH STROKE
0xDA    0x015A  #       LATIN CAPITAL LETTER S WITH ACUTE
0xDB    0x016A  #       LATIN CAPITAL LETTER U WITH MACRON
0xDC    0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS
0xDD    0x017B  #       LATIN CAPITAL LETTER Z WITH DOT ABOVE
0xDE    0x017D  #       LATIN CAPITAL LETTER Z WITH CARON
0xDF    0x00DF  #       LATIN SMALL LETTER SHARP S (German)
0xE0    0x0105  #       LATIN SMALL LETTER A WITH OGONEK
0xE1    0x012F  #       LATIN SMALL LETTER I WITH OGONEK
0xE2    0x0101  #       LATIN SMALL LETTER A WITH MACRON
0xE3    0x0107  #       LATIN SMALL LETTER C WITH ACUTE
0xE4    0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS
0xE5    0x00E5  #       LATIN SMALL LETTER A WITH RING ABOVE
0xE6    0x0119  #       LATIN SMALL LETTER E WITH OGONEK
0xE7    0x0113  #       LATIN SMALL LETTER E WITH MACRON
0xE8    0x010D  #       LATIN SMALL LETTER C WITH CARON
0xE9    0x00E9  #       LATIN SMALL LETTER E WITH ACUTE
0xEA    0x017A  #       LATIN SMALL LETTER Z WITH ACUTE
0xEB    0x0117  #       LATIN SMALL LETTER E WITH DOT ABOVE
0xEC    0x0123  #       LATIN SMALL LETTER G WITH CEDILLA
0xED    0x0137  #       LATIN SMALL LETTER K WITH CEDILLA
0xEE    0x012B  #       LATIN SMALL LETTER I WITH MACRON
0xEF    0x013C  #       LATIN SMALL LETTER L WITH CEDILLA
0xF0    0x0161  #       LATIN SMALL LETTER S WITH CARON
0xF1    0x0144  #       LATIN SMALL LETTER N WITH ACUTE
0xF2    0x0146  #       LATIN SMALL LETTER N WITH CEDILLA
0xF3    0x00F3  #       LATIN SMALL LETTER O WITH ACUTE
0xF4    0x014D  #       LATIN SMALL LETTER O WITH MACRON
0xF5    0x00F5  #       LATIN SMALL LETTER O WITH TILDE
0xF6    0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS
0xF7    0x00F7  #       DIVISION SIGN
0xF8    0x0173  #       LATIN SMALL LETTER U WITH OGONEK
0xF9    0x0142  #       LATIN SMALL LETTER L WITH STROKE
0xFA    0x015B  #       LATIN SMALL LETTER S WITH ACUTE
0xFB    0x016B  #       LATIN SMALL LETTER U WITH MACRON
0xFC    0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS
0xFD    0x017C  #       LATIN SMALL LETTER Z WITH DOT ABOVE
0xFE    0x017E  #       LATIN SMALL LETTER Z WITH CARON
0xFF    0x2019  #       RIGHT SINGLE QUOTATION MARK

"
! !

!CharacterEncoder::ISO8859_13 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-13' 'iso-8859-13' 'latin7' 'latin-7' )
! !

!CharacterEncoder::ISO8859_13 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16rA0 ifTrue:[ ^ code ].
    code > 16rFF ifTrue:[
	^ self decodingError.
    ].
    ^ #(
       "16r00A1"    16r201D " RIGHT DOUBLE QUOTATION MARK " 
       "16r00A2"    16r00A2 " CENT SIGN " 
       "16r00A3"    16r00A3 " POUND SIGN " 
       "16r00A4"    16r00A4 " CURRENCY SIGN " 
       "16r00A5"    16r201E " DOUBLE LOW-9 QUOTATION MARK " 
       "16r00A6"    16r00A6 " BROKEN BAR " 
       "16r00A7"    16r00A7 " SECTION SIGN " 
       "16r00A8"    16r00D8 " LATIN CAPITAL LETTER O WITH STROKE " 
       "16r00A9"    16r00A9 " COPYRIGHT SIGN " 
       "16r00AA"    16r0156 " LATIN CAPITAL LETTER R WITH CEDILLA " 
       "16r00AB"    16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
       "16r00AC"    16r00AC " NOT SIGN " 
       "16r00AD"    16r00AD " SOFT HYPHEN " 
       "16r00AE"    16r00AE " REGISTERED SIGN " 
       "16r00AF"    16r00C6 " LATIN CAPITAL LETTER AE " 
       "16r00B0"    16r00B0 " DEGREE SIGN " 
       "16r00B1"    16r00B1 " PLUS-MINUS SIGN " 
       "16r00B2"    16r00B2 " SUPERSCRIPT TWO " 
       "16r00B3"    16r00B3 " SUPERSCRIPT THREE " 
       "16r00B4"    16r201C " LEFT DOUBLE QUOTATION MARK " 
       "16r00B5"    16r00B5 " MICRO SIGN " 
       "16r00B6"    16r00B6 " PILCROW SIGN " 
       "16r00B7"    16r00B7 " MIDDLE DOT " 
       "16r00B8"    16r00F8 " LATIN SMALL LETTER O WITH STROKE " 
       "16r00B9"    16r00B9 " SUPERSCRIPT ONE " 
       "16r00BA"    16r0157 " LATIN SMALL LETTER R WITH CEDILLA " 
       "16r00BB"    16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
       "16r00BC"    16r00BC " VULGAR FRACTION ONE QUARTER " 
       "16r00BD"    16r00BD " VULGAR FRACTION ONE HALF " 
       "16r00BE"    16r00BE " VULGAR FRACTION THREE QUARTERS " 
       "16r00BF"    16r00E6 " LATIN SMALL LETTER AE " 
       "16r00C0"    16r0104 " LATIN CAPITAL LETTER A WITH OGONEK " 
       "16r00C1"    16r012E " LATIN CAPITAL LETTER I WITH OGONEK " 
       "16r00C2"    16r0100 " LATIN CAPITAL LETTER A WITH MACRON " 
       "16r00C3"    16r0106 " LATIN CAPITAL LETTER C WITH ACUTE " 
       "16r00C4"    16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
       "16r00C5"    16r00C5 " LATIN CAPITAL LETTER A WITH RING ABOVE " 
       "16r00C6"    16r0118 " LATIN CAPITAL LETTER E WITH OGONEK " 
       "16r00C7"    16r0112 " LATIN CAPITAL LETTER E WITH MACRON " 
       "16r00C8"    16r010C " LATIN CAPITAL LETTER C WITH CARON " 
       "16r00C9"    16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE " 
       "16r00CA"    16r0179 " LATIN CAPITAL LETTER Z WITH ACUTE " 
       "16r00CB"    16r0116 " LATIN CAPITAL LETTER E WITH DOT ABOVE " 
       "16r00CC"    16r0122 " LATIN CAPITAL LETTER G WITH CEDILLA " 
       "16r00CD"    16r0136 " LATIN CAPITAL LETTER K WITH CEDILLA " 
       "16r00CE"    16r012A " LATIN CAPITAL LETTER I WITH MACRON " 
       "16r00CF"    16r013B " LATIN CAPITAL LETTER L WITH CEDILLA " 
       "16r00D0"    16r0160 " LATIN CAPITAL LETTER S WITH CARON " 
       "16r00D1"    16r0143 " LATIN CAPITAL LETTER N WITH ACUTE " 
       "16r00D2"    16r0145 " LATIN CAPITAL LETTER N WITH CEDILLA " 
       "16r00D3"    16r00D3 " LATIN CAPITAL LETTER O WITH ACUTE " 
       "16r00D4"    16r014C " LATIN CAPITAL LETTER O WITH MACRON " 
       "16r00D5"    16r00D5 " LATIN CAPITAL LETTER O WITH TILDE " 
       "16r00D6"    16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
       "16r00D7"    16r00D7 " MULTIPLICATION SIGN " 
       "16r00D8"    16r0172 " LATIN CAPITAL LETTER U WITH OGONEK " 
       "16r00D9"    16r0141 " LATIN CAPITAL LETTER L WITH STROKE " 
       "16r00DA"    16r015A " LATIN CAPITAL LETTER S WITH ACUTE " 
       "16r00DB"    16r016A " LATIN CAPITAL LETTER U WITH MACRON " 
       "16r00DC"    16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS " 
       "16r00DD"    16r017B " LATIN CAPITAL LETTER Z WITH DOT ABOVE " 
       "16r00DE"    16r017D " LATIN CAPITAL LETTER Z WITH CARON " 
       "16r00DF"    16r00DF " LATIN SMALL LETTER SHARP S (German) " 
       "16r00E0"    16r0105 " LATIN SMALL LETTER A WITH OGONEK " 
       "16r00E1"    16r012F " LATIN SMALL LETTER I WITH OGONEK " 
       "16r00E2"    16r0101 " LATIN SMALL LETTER A WITH MACRON " 
       "16r00E3"    16r0107 " LATIN SMALL LETTER C WITH ACUTE " 
       "16r00E4"    16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS " 
       "16r00E5"    16r00E5 " LATIN SMALL LETTER A WITH RING ABOVE " 
       "16r00E6"    16r0119 " LATIN SMALL LETTER E WITH OGONEK " 
       "16r00E7"    16r0113 " LATIN SMALL LETTER E WITH MACRON " 
       "16r00E8"    16r010D " LATIN SMALL LETTER C WITH CARON " 
       "16r00E9"    16r00E9 " LATIN SMALL LETTER E WITH ACUTE " 
       "16r00EA"    16r017A " LATIN SMALL LETTER Z WITH ACUTE " 
       "16r00EB"    16r0117 " LATIN SMALL LETTER E WITH DOT ABOVE " 
       "16r00EC"    16r0123 " LATIN SMALL LETTER G WITH CEDILLA " 
       "16r00ED"    16r0137 " LATIN SMALL LETTER K WITH CEDILLA " 
       "16r00EE"    16r012B " LATIN SMALL LETTER I WITH MACRON " 
       "16r00EF"    16r013C " LATIN SMALL LETTER L WITH CEDILLA " 
       "16r00F0"    16r0161 " LATIN SMALL LETTER S WITH CARON " 
       "16r00F1"    16r0144 " LATIN SMALL LETTER N WITH ACUTE " 
       "16r00F2"    16r0146 " LATIN SMALL LETTER N WITH CEDILLA " 
       "16r00F3"    16r00F3 " LATIN SMALL LETTER O WITH ACUTE " 
       "16r00F4"    16r014D " LATIN SMALL LETTER O WITH MACRON " 
       "16r00F5"    16r00F5 " LATIN SMALL LETTER O WITH TILDE " 
       "16r00F6"    16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS " 
       "16r00F7"    16r00F7 " DIVISION SIGN " 
       "16r00F8"    16r0173 " LATIN SMALL LETTER U WITH OGONEK " 
       "16r00F9"    16r0142 " LATIN SMALL LETTER L WITH STROKE " 
       "16r00FA"    16r015B " LATIN SMALL LETTER S WITH ACUTE " 
       "16r00FB"    16r016B " LATIN SMALL LETTER U WITH MACRON " 
       "16r00FC"    16r00FC " LATIN SMALL LETTER U WITH DIAERESIS " 
       "16r00FD"    16r017C " LATIN SMALL LETTER Z WITH DOT ABOVE " 
       "16r00FE"    16r017E " LATIN SMALL LETTER Z WITH CARON " 
       "16r00FF"    16r2019 " RIGHT SINGLE QUOTATION MARK " 
       ) at:(code - 16rA0).
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16rA0 ifTrue:[ ^ unicode ].
    unicode > 16r201E ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r17E ifTrue:[
	[
	    |t|
	    t := #[
	       "16r00A1"    16r00 " invalid " 
	       "16r00A2"    16rA2 " CENT SIGN " 
	       "16r00A3"    16rA3 " POUND SIGN " 
	       "16r00A4"    16rA4 " CURRENCY SIGN " 
	       "16r00A5"    16r00 " invalid " 
	       "16r00A6"    16rA6 " BROKEN BAR " 
	       "16r00A7"    16rA7 " SECTION SIGN " 
	       "16r00A8"    16r00 " invalid " 
	       "16r00A9"    16rA9 " COPYRIGHT SIGN " 
	       "16r00AA"    16r00 " invalid " 
	       "16r00AB"    16rAB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
	       "16r00AC"    16rAC " NOT SIGN " 
	       "16r00AD"    16rAD " SOFT HYPHEN " 
	       "16r00AE"    16rAE " REGISTERED SIGN " 
	       "16r00AF"    16r00 " invalid " 
	       "16r00B0"    16rB0 " DEGREE SIGN " 
	       "16r00B1"    16rB1 " PLUS-MINUS SIGN " 
	       "16r00B2"    16rB2 " SUPERSCRIPT TWO " 
	       "16r00B3"    16rB3 " SUPERSCRIPT THREE " 
	       "16r00B4"    16r00 " invalid " 
	       "16r00B5"    16rB5 " MICRO SIGN " 
	       "16r00B6"    16rB6 " PILCROW SIGN " 
	       "16r00B7"    16rB7 " MIDDLE DOT " 
	       "16r00B8"    16r00 " invalid " 
	       "16r00B9"    16rB9 " SUPERSCRIPT ONE " 
	       "16r00BA"    16r00 " invalid " 
	       "16r00BB"    16rBB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
	       "16r00BC"    16rBC " VULGAR FRACTION ONE QUARTER " 
	       "16r00BD"    16rBD " VULGAR FRACTION ONE HALF " 
	       "16r00BE"    16rBE " VULGAR FRACTION THREE QUARTERS " 
	       "16r00BF"    16r00 " invalid " 
	       "16r00C0"    16r00 " invalid " 
	       "16r00C1"    16r00 " invalid " 
	       "16r00C2"    16r00 " invalid " 
	       "16r00C3"    16r00 " invalid " 
	       "16r00C4"    16rC4 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
	       "16r00C5"    16rC5 " LATIN CAPITAL LETTER A WITH RING ABOVE " 
	       "16r00C6"    16rAF " LATIN CAPITAL LETTER AE " 
	       "16r00C7"    16r00 " invalid " 
	       "16r00C8"    16r00 " invalid " 
	       "16r00C9"    16rC9 " LATIN CAPITAL LETTER E WITH ACUTE " 
	       "16r00CA"    16r00 " invalid " 
	       "16r00CB"    16r00 " invalid " 
	       "16r00CC"    16r00 " invalid " 
	       "16r00CD"    16r00 " invalid " 
	       "16r00CE"    16r00 " invalid " 
	       "16r00CF"    16r00 " invalid " 
	       "16r00D0"    16r00 " invalid " 
	       "16r00D1"    16r00 " invalid " 
	       "16r00D2"    16r00 " invalid " 
	       "16r00D3"    16rD3 " LATIN CAPITAL LETTER O WITH ACUTE " 
	       "16r00D4"    16r00 " invalid " 
	       "16r00D5"    16rD5 " LATIN CAPITAL LETTER O WITH TILDE " 
	       "16r00D6"    16rD6 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
	       "16r00D7"    16rD7 " MULTIPLICATION SIGN " 
	       "16r00D8"    16rA8 " LATIN CAPITAL LETTER O WITH STROKE " 
	       "16r00D9"    16r00 " invalid " 
	       "16r00DA"    16r00 " invalid " 
	       "16r00DB"    16r00 " invalid " 
	       "16r00DC"    16rDC " LATIN CAPITAL LETTER U WITH DIAERESIS " 
	       "16r00DD"    16r00 " invalid " 
	       "16r00DE"    16r00 " invalid " 
	       "16r00DF"    16rDF " LATIN SMALL LETTER SHARP S (German) " 
	       "16r00E0"    16r00 " invalid " 
	       "16r00E1"    16r00 " invalid " 
	       "16r00E2"    16r00 " invalid " 
	       "16r00E3"    16r00 " invalid " 
	       "16r00E4"    16rE4 " LATIN SMALL LETTER A WITH DIAERESIS " 
	       "16r00E5"    16rE5 " LATIN SMALL LETTER A WITH RING ABOVE " 
	       "16r00E6"    16rBF " LATIN SMALL LETTER AE " 
	       "16r00E7"    16r00 " invalid " 
	       "16r00E8"    16r00 " invalid " 
	       "16r00E9"    16rE9 " LATIN SMALL LETTER E WITH ACUTE " 
	       "16r00EA"    16r00 " invalid " 
	       "16r00EB"    16r00 " invalid " 
	       "16r00EC"    16r00 " invalid " 
	       "16r00ED"    16r00 " invalid " 
	       "16r00EE"    16r00 " invalid " 
	       "16r00EF"    16r00 " invalid " 
	       "16r00F0"    16r00 " invalid " 
	       "16r00F1"    16r00 " invalid " 
	       "16r00F2"    16r00 " invalid " 
	       "16r00F3"    16rF3 " LATIN SMALL LETTER O WITH ACUTE " 
	       "16r00F4"    16r00 " invalid " 
	       "16r00F5"    16rF5 " LATIN SMALL LETTER O WITH TILDE " 
	       "16r00F6"    16rF6 " LATIN SMALL LETTER O WITH DIAERESIS " 
	       "16r00F7"    16rF7 " DIVISION SIGN " 
	       "16r00F8"    16rB8 " LATIN SMALL LETTER O WITH STROKE " 
	       "16r00F9"    16r00 " invalid " 
	       "16r00FA"    16r00 " invalid " 
	       "16r00FB"    16r00 " invalid " 
	       "16r00FC"    16rFC " LATIN SMALL LETTER U WITH DIAERESIS " 
	       "16r00FD"    16r00 " invalid " 
	       "16r00FE"    16r00 " invalid " 
	       "16r00FF"    16r00 " invalid " 
	       "16r0100"    16rC2 " LATIN CAPITAL LETTER A WITH MACRON " 
	       "16r0101"    16rE2 " LATIN SMALL LETTER A WITH MACRON " 
	       "16r0102"    16r00 " invalid " 
	       "16r0103"    16r00 " invalid " 
	       "16r0104"    16rC0 " LATIN CAPITAL LETTER A WITH OGONEK " 
	       "16r0105"    16rE0 " LATIN SMALL LETTER A WITH OGONEK " 
	       "16r0106"    16rC3 " LATIN CAPITAL LETTER C WITH ACUTE " 
	       "16r0107"    16rE3 " LATIN SMALL LETTER C WITH ACUTE " 
	       "16r0108"    16r00 " invalid " 
	       "16r0109"    16r00 " invalid " 
	       "16r010A"    16r00 " invalid " 
	       "16r010B"    16r00 " invalid " 
	       "16r010C"    16rC8 " LATIN CAPITAL LETTER C WITH CARON " 
	       "16r010D"    16rE8 " LATIN SMALL LETTER C WITH CARON " 
	       "16r010E"    16r00 " invalid " 
	       "16r010F"    16r00 " invalid " 
	       "16r0110"    16r00 " invalid " 
	       "16r0111"    16r00 " invalid " 
	       "16r0112"    16rC7 " LATIN CAPITAL LETTER E WITH MACRON " 
	       "16r0113"    16rE7 " LATIN SMALL LETTER E WITH MACRON " 
	       "16r0114"    16r00 " invalid " 
	       "16r0115"    16r00 " invalid " 
	       "16r0116"    16rCB " LATIN CAPITAL LETTER E WITH DOT ABOVE " 
	       "16r0117"    16rEB " LATIN SMALL LETTER E WITH DOT ABOVE " 
	       "16r0118"    16rC6 " LATIN CAPITAL LETTER E WITH OGONEK " 
	       "16r0119"    16rE6 " LATIN SMALL LETTER E WITH OGONEK " 
	       "16r011A"    16r00 " invalid " 
	       "16r011B"    16r00 " invalid " 
	       "16r011C"    16r00 " invalid " 
	       "16r011D"    16r00 " invalid " 
	       "16r011E"    16r00 " invalid " 
	       "16r011F"    16r00 " invalid " 
	       "16r0120"    16r00 " invalid " 
	       "16r0121"    16r00 " invalid " 
	       "16r0122"    16rCC " LATIN CAPITAL LETTER G WITH CEDILLA " 
	       "16r0123"    16rEC " LATIN SMALL LETTER G WITH CEDILLA " 
	       "16r0124"    16r00 " invalid " 
	       "16r0125"    16r00 " invalid " 
	       "16r0126"    16r00 " invalid " 
	       "16r0127"    16r00 " invalid " 
	       "16r0128"    16r00 " invalid " 
	       "16r0129"    16r00 " invalid " 
	       "16r012A"    16rCE " LATIN CAPITAL LETTER I WITH MACRON " 
	       "16r012B"    16rEE " LATIN SMALL LETTER I WITH MACRON " 
	       "16r012C"    16r00 " invalid " 
	       "16r012D"    16r00 " invalid " 
	       "16r012E"    16rC1 " LATIN CAPITAL LETTER I WITH OGONEK " 
	       "16r012F"    16rE1 " LATIN SMALL LETTER I WITH OGONEK " 
	       "16r0130"    16r00 " invalid " 
	       "16r0131"    16r00 " invalid " 
	       "16r0132"    16r00 " invalid " 
	       "16r0133"    16r00 " invalid " 
	       "16r0134"    16r00 " invalid " 
	       "16r0135"    16r00 " invalid " 
	       "16r0136"    16rCD " LATIN CAPITAL LETTER K WITH CEDILLA " 
	       "16r0137"    16rED " LATIN SMALL LETTER K WITH CEDILLA " 
	       "16r0138"    16r00 " invalid " 
	       "16r0139"    16r00 " invalid " 
	       "16r013A"    16r00 " invalid " 
	       "16r013B"    16rCF " LATIN CAPITAL LETTER L WITH CEDILLA " 
	       "16r013C"    16rEF " LATIN SMALL LETTER L WITH CEDILLA " 
	       "16r013D"    16r00 " invalid " 
	       "16r013E"    16r00 " invalid " 
	       "16r013F"    16r00 " invalid " 
	       "16r0140"    16r00 " invalid " 
	       "16r0141"    16rD9 " LATIN CAPITAL LETTER L WITH STROKE " 
	       "16r0142"    16rF9 " LATIN SMALL LETTER L WITH STROKE " 
	       "16r0143"    16rD1 " LATIN CAPITAL LETTER N WITH ACUTE " 
	       "16r0144"    16rF1 " LATIN SMALL LETTER N WITH ACUTE " 
	       "16r0145"    16rD2 " LATIN CAPITAL LETTER N WITH CEDILLA " 
	       "16r0146"    16rF2 " LATIN SMALL LETTER N WITH CEDILLA " 
	       "16r0147"    16r00 " invalid " 
	       "16r0148"    16r00 " invalid " 
	       "16r0149"    16r00 " invalid " 
	       "16r014A"    16r00 " invalid " 
	       "16r014B"    16r00 " invalid " 
	       "16r014C"    16rD4 " LATIN CAPITAL LETTER O WITH MACRON " 
	       "16r014D"    16rF4 " LATIN SMALL LETTER O WITH MACRON " 
	       "16r014E"    16r00 " invalid " 
	       "16r014F"    16r00 " invalid " 
	       "16r0150"    16r00 " invalid " 
	       "16r0151"    16r00 " invalid " 
	       "16r0152"    16r00 " invalid " 
	       "16r0153"    16r00 " invalid " 
	       "16r0154"    16r00 " invalid " 
	       "16r0155"    16r00 " invalid " 
	       "16r0156"    16rAA " LATIN CAPITAL LETTER R WITH CEDILLA " 
	       "16r0157"    16rBA " LATIN SMALL LETTER R WITH CEDILLA " 
	       "16r0158"    16r00 " invalid " 
	       "16r0159"    16r00 " invalid " 
	       "16r015A"    16rDA " LATIN CAPITAL LETTER S WITH ACUTE " 
	       "16r015B"    16rFA " LATIN SMALL LETTER S WITH ACUTE " 
	       "16r015C"    16r00 " invalid " 
	       "16r015D"    16r00 " invalid " 
	       "16r015E"    16r00 " invalid " 
	       "16r015F"    16r00 " invalid " 
	       "16r0160"    16rD0 " LATIN CAPITAL LETTER S WITH CARON " 
	       "16r0161"    16rF0 " LATIN SMALL LETTER S WITH CARON " 
	       "16r0162"    16r00 " invalid " 
	       "16r0163"    16r00 " invalid " 
	       "16r0164"    16r00 " invalid " 
	       "16r0165"    16r00 " invalid " 
	       "16r0166"    16r00 " invalid " 
	       "16r0167"    16r00 " invalid " 
	       "16r0168"    16r00 " invalid " 
	       "16r0169"    16r00 " invalid " 
	       "16r016A"    16rDB " LATIN CAPITAL LETTER U WITH MACRON " 
	       "16r016B"    16rFB " LATIN SMALL LETTER U WITH MACRON " 
	       "16r016C"    16r00 " invalid " 
	       "16r016D"    16r00 " invalid " 
	       "16r016E"    16r00 " invalid " 
	       "16r016F"    16r00 " invalid " 
	       "16r0170"    16r00 " invalid " 
	       "16r0171"    16r00 " invalid " 
	       "16r0172"    16rD8 " LATIN CAPITAL LETTER U WITH OGONEK " 
	       "16r0173"    16rF8 " LATIN SMALL LETTER U WITH OGONEK " 
	       "16r0174"    16r00 " invalid " 
	       "16r0175"    16r00 " invalid " 
	       "16r0176"    16r00 " invalid " 
	       "16r0177"    16r00 " invalid " 
	       "16r0178"    16r00 " invalid " 
	       "16r0179"    16rCA " LATIN CAPITAL LETTER Z WITH ACUTE " 
	       "16r017A"    16rEA " LATIN SMALL LETTER Z WITH ACUTE " 
	       "16r017B"    16rDD " LATIN CAPITAL LETTER Z WITH DOT ABOVE " 
	       "16r017C"    16rFD " LATIN SMALL LETTER Z WITH DOT ABOVE " 
	       "16r017D"    16rDE " LATIN CAPITAL LETTER Z WITH CARON " 
	       "16r017E"    16rFE " LATIN SMALL LETTER Z WITH CARON " 
	       ] at:(unicode - 16rA0).
	    t == 0 ifFalse:[^ t].
	    ^ self encodingError
	] value.
    ].
    unicode <= 16r2018 ifTrue:[
	^ self encodingError.
    ].
    [
	|t|
	t := #[
	   "16r2019"    16rFF " RIGHT SINGLE QUOTATION MARK " 
	   "16r201A"    16r00 " invalid " 
	   "16r201B"    16r00 " invalid " 
	   "16r201C"    16rB4 " LEFT DOUBLE QUOTATION MARK " 
	   "16r201D"    16rA1 " RIGHT DOUBLE QUOTATION MARK " 
	   "16r201E"    16rA5 " DOUBLE LOW-9 QUOTATION MARK " 
	   ] at:(unicode - 16r2018).
	t == 0 ifFalse:[^ t].
	^ self encodingError
    ] value.
! !

!CharacterEncoder::ISO8859_14 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'ISO8859/8859-14.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-14.TXT

#
#       Name:             ISO/IEC 8859-14:1998 to Unicode
#       Unicode version:  3.0
#       Table version:    1.0
#       Table format:     Format A
#       Date:             1999 July 27
#       Authors:          Markus Kuhn <mkuhn@acm.org>
#                         Ken Whistler <kenw@sybase.com>
#
#       Copyright (c) 1998 - 1999 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ISO/IEC 8859-14:1998 characters map into Unicode.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ISO/IEC 8859-14 code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ISO/IEC 8859-14 order.
#
#       Updated versions of this file may be found in:
#               <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
#       Any comments or problems, contact <errata@unicode.org>
#       Please note that <errata@unicode.org> is an archival address;
#       notices will be checked, but do not expect an immediate response.
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x0080  #       <control>
0x81    0x0081  #       <control>
0x82    0x0082  #       <control>
0x83    0x0083  #       <control>
0x84    0x0084  #       <control>
0x85    0x0085  #       <control>
0x86    0x0086  #       <control>
0x87    0x0087  #       <control>
0x88    0x0088  #       <control>
0x89    0x0089  #       <control>
0x8A    0x008A  #       <control>
0x8B    0x008B  #       <control>
0x8C    0x008C  #       <control>
0x8D    0x008D  #       <control>
0x8E    0x008E  #       <control>
0x8F    0x008F  #       <control>
0x90    0x0090  #       <control>
0x91    0x0091  #       <control>
0x92    0x0092  #       <control>
0x93    0x0093  #       <control>
0x94    0x0094  #       <control>
0x95    0x0095  #       <control>
0x96    0x0096  #       <control>
0x97    0x0097  #       <control>
0x98    0x0098  #       <control>
0x99    0x0099  #       <control>
0x9A    0x009A  #       <control>
0x9B    0x009B  #       <control>
0x9C    0x009C  #       <control>
0x9D    0x009D  #       <control>
0x9E    0x009E  #       <control>
0x9F    0x009F  #       <control>
0xA0    0x00A0  #       NO-BREAK SPACE
0xA1    0x1E02  #       LATIN CAPITAL LETTER B WITH DOT ABOVE
0xA2    0x1E03  #       LATIN SMALL LETTER B WITH DOT ABOVE
0xA3    0x00A3  #       POUND SIGN
0xA4    0x010A  #       LATIN CAPITAL LETTER C WITH DOT ABOVE
0xA5    0x010B  #       LATIN SMALL LETTER C WITH DOT ABOVE
0xA6    0x1E0A  #       LATIN CAPITAL LETTER D WITH DOT ABOVE
0xA7    0x00A7  #       SECTION SIGN
0xA8    0x1E80  #       LATIN CAPITAL LETTER W WITH GRAVE
0xA9    0x00A9  #       COPYRIGHT SIGN
0xAA    0x1E82  #       LATIN CAPITAL LETTER W WITH ACUTE
0xAB    0x1E0B  #       LATIN SMALL LETTER D WITH DOT ABOVE
0xAC    0x1EF2  #       LATIN CAPITAL LETTER Y WITH GRAVE
0xAD    0x00AD  #       SOFT HYPHEN
0xAE    0x00AE  #       REGISTERED SIGN
0xAF    0x0178  #       LATIN CAPITAL LETTER Y WITH DIAERESIS
0xB0    0x1E1E  #       LATIN CAPITAL LETTER F WITH DOT ABOVE
0xB1    0x1E1F  #       LATIN SMALL LETTER F WITH DOT ABOVE
0xB2    0x0120  #       LATIN CAPITAL LETTER G WITH DOT ABOVE
0xB3    0x0121  #       LATIN SMALL LETTER G WITH DOT ABOVE
0xB4    0x1E40  #       LATIN CAPITAL LETTER M WITH DOT ABOVE
0xB5    0x1E41  #       LATIN SMALL LETTER M WITH DOT ABOVE
0xB6    0x00B6  #       PILCROW SIGN
0xB7    0x1E56  #       LATIN CAPITAL LETTER P WITH DOT ABOVE
0xB8    0x1E81  #       LATIN SMALL LETTER W WITH GRAVE
0xB9    0x1E57  #       LATIN SMALL LETTER P WITH DOT ABOVE
0xBA    0x1E83  #       LATIN SMALL LETTER W WITH ACUTE
0xBB    0x1E60  #       LATIN CAPITAL LETTER S WITH DOT ABOVE
0xBC    0x1EF3  #       LATIN SMALL LETTER Y WITH GRAVE
0xBD    0x1E84  #       LATIN CAPITAL LETTER W WITH DIAERESIS
0xBE    0x1E85  #       LATIN SMALL LETTER W WITH DIAERESIS
0xBF    0x1E61  #       LATIN SMALL LETTER S WITH DOT ABOVE
0xC0    0x00C0  #       LATIN CAPITAL LETTER A WITH GRAVE
0xC1    0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE
0xC2    0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xC3    0x00C3  #       LATIN CAPITAL LETTER A WITH TILDE
0xC4    0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS
0xC5    0x00C5  #       LATIN CAPITAL LETTER A WITH RING ABOVE
0xC6    0x00C6  #       LATIN CAPITAL LETTER AE
0xC7    0x00C7  #       LATIN CAPITAL LETTER C WITH CEDILLA
0xC8    0x00C8  #       LATIN CAPITAL LETTER E WITH GRAVE
0xC9    0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE
0xCA    0x00CA  #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xCB    0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS
0xCC    0x00CC  #       LATIN CAPITAL LETTER I WITH GRAVE
0xCD    0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE
0xCE    0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xCF    0x00CF  #       LATIN CAPITAL LETTER I WITH DIAERESIS
0xD0    0x0174  #       LATIN CAPITAL LETTER W WITH CIRCUMFLEX
0xD1    0x00D1  #       LATIN CAPITAL LETTER N WITH TILDE
0xD2    0x00D2  #       LATIN CAPITAL LETTER O WITH GRAVE
0xD3    0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE
0xD4    0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xD5    0x00D5  #       LATIN CAPITAL LETTER O WITH TILDE
0xD6    0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS
0xD7    0x1E6A  #       LATIN CAPITAL LETTER T WITH DOT ABOVE
0xD8    0x00D8  #       LATIN CAPITAL LETTER O WITH STROKE
0xD9    0x00D9  #       LATIN CAPITAL LETTER U WITH GRAVE
0xDA    0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE
0xDB    0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xDC    0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS
0xDD    0x00DD  #       LATIN CAPITAL LETTER Y WITH ACUTE
0xDE    0x0176  #       LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
0xDF    0x00DF  #       LATIN SMALL LETTER SHARP S
0xE0    0x00E0  #       LATIN SMALL LETTER A WITH GRAVE
0xE1    0x00E1  #       LATIN SMALL LETTER A WITH ACUTE
0xE2    0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX
0xE3    0x00E3  #       LATIN SMALL LETTER A WITH TILDE
0xE4    0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS
0xE5    0x00E5  #       LATIN SMALL LETTER A WITH RING ABOVE
0xE6    0x00E6  #       LATIN SMALL LETTER AE
0xE7    0x00E7  #       LATIN SMALL LETTER C WITH CEDILLA
0xE8    0x00E8  #       LATIN SMALL LETTER E WITH GRAVE
0xE9    0x00E9  #       LATIN SMALL LETTER E WITH ACUTE
0xEA    0x00EA  #       LATIN SMALL LETTER E WITH CIRCUMFLEX
0xEB    0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS
0xEC    0x00EC  #       LATIN SMALL LETTER I WITH GRAVE
0xED    0x00ED  #       LATIN SMALL LETTER I WITH ACUTE
0xEE    0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX
0xEF    0x00EF  #       LATIN SMALL LETTER I WITH DIAERESIS
0xF0    0x0175  #       LATIN SMALL LETTER W WITH CIRCUMFLEX
0xF1    0x00F1  #       LATIN SMALL LETTER N WITH TILDE
0xF2    0x00F2  #       LATIN SMALL LETTER O WITH GRAVE
0xF3    0x00F3  #       LATIN SMALL LETTER O WITH ACUTE
0xF4    0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX
0xF5    0x00F5  #       LATIN SMALL LETTER O WITH TILDE
0xF6    0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS
0xF7    0x1E6B  #       LATIN SMALL LETTER T WITH DOT ABOVE
0xF8    0x00F8  #       LATIN SMALL LETTER O WITH STROKE
0xF9    0x00F9  #       LATIN SMALL LETTER U WITH GRAVE
0xFA    0x00FA  #       LATIN SMALL LETTER U WITH ACUTE
0xFB    0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX
0xFC    0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS
0xFD    0x00FD  #       LATIN SMALL LETTER Y WITH ACUTE
0xFE    0x0177  #       LATIN SMALL LETTER Y WITH CIRCUMFLEX
0xFF    0x00FF  #       LATIN SMALL LETTER Y WITH DIAERESIS


"
! !

!CharacterEncoder::ISO8859_14 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-14' 'iso-8859-14' 'latin8' 'latin-8' 'latin-celtic' )
! !

!CharacterEncoder::ISO8859_14 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16rA0 ifTrue:[ ^ code ].
    code > 16rFF ifTrue:[
	^ self decodingError.
    ].
    ^ #(
       "16r00A1"    16r1E02 " LATIN CAPITAL LETTER B WITH DOT ABOVE " 
       "16r00A2"    16r1E03 " LATIN SMALL LETTER B WITH DOT ABOVE " 
       "16r00A3"    16r00A3 " POUND SIGN " 
       "16r00A4"    16r010A " LATIN CAPITAL LETTER C WITH DOT ABOVE " 
       "16r00A5"    16r010B " LATIN SMALL LETTER C WITH DOT ABOVE " 
       "16r00A6"    16r1E0A " LATIN CAPITAL LETTER D WITH DOT ABOVE " 
       "16r00A7"    16r00A7 " SECTION SIGN " 
       "16r00A8"    16r1E80 " LATIN CAPITAL LETTER W WITH GRAVE " 
       "16r00A9"    16r00A9 " COPYRIGHT SIGN " 
       "16r00AA"    16r1E82 " LATIN CAPITAL LETTER W WITH ACUTE " 
       "16r00AB"    16r1E0B " LATIN SMALL LETTER D WITH DOT ABOVE " 
       "16r00AC"    16r1EF2 " LATIN CAPITAL LETTER Y WITH GRAVE " 
       "16r00AD"    16r00AD " SOFT HYPHEN " 
       "16r00AE"    16r00AE " REGISTERED SIGN " 
       "16r00AF"    16r0178 " LATIN CAPITAL LETTER Y WITH DIAERESIS " 
       "16r00B0"    16r1E1E " LATIN CAPITAL LETTER F WITH DOT ABOVE " 
       "16r00B1"    16r1E1F " LATIN SMALL LETTER F WITH DOT ABOVE " 
       "16r00B2"    16r0120 " LATIN CAPITAL LETTER G WITH DOT ABOVE " 
       "16r00B3"    16r0121 " LATIN SMALL LETTER G WITH DOT ABOVE " 
       "16r00B4"    16r1E40 " LATIN CAPITAL LETTER M WITH DOT ABOVE " 
       "16r00B5"    16r1E41 " LATIN SMALL LETTER M WITH DOT ABOVE " 
       "16r00B6"    16r00B6 " PILCROW SIGN " 
       "16r00B7"    16r1E56 " LATIN CAPITAL LETTER P WITH DOT ABOVE " 
       "16r00B8"    16r1E81 " LATIN SMALL LETTER W WITH GRAVE " 
       "16r00B9"    16r1E57 " LATIN SMALL LETTER P WITH DOT ABOVE " 
       "16r00BA"    16r1E83 " LATIN SMALL LETTER W WITH ACUTE " 
       "16r00BB"    16r1E60 " LATIN CAPITAL LETTER S WITH DOT ABOVE " 
       "16r00BC"    16r1EF3 " LATIN SMALL LETTER Y WITH GRAVE " 
       "16r00BD"    16r1E84 " LATIN CAPITAL LETTER W WITH DIAERESIS " 
       "16r00BE"    16r1E85 " LATIN SMALL LETTER W WITH DIAERESIS " 
       "16r00BF"    16r1E61 " LATIN SMALL LETTER S WITH DOT ABOVE " 
       "16r00C0"    16r00C0 " LATIN CAPITAL LETTER A WITH GRAVE " 
       "16r00C1"    16r00C1 " LATIN CAPITAL LETTER A WITH ACUTE " 
       "16r00C2"    16r00C2 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
       "16r00C3"    16r00C3 " LATIN CAPITAL LETTER A WITH TILDE " 
       "16r00C4"    16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
       "16r00C5"    16r00C5 " LATIN CAPITAL LETTER A WITH RING ABOVE " 
       "16r00C6"    16r00C6 " LATIN CAPITAL LETTER AE " 
       "16r00C7"    16r00C7 " LATIN CAPITAL LETTER C WITH CEDILLA " 
       "16r00C8"    16r00C8 " LATIN CAPITAL LETTER E WITH GRAVE " 
       "16r00C9"    16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE " 
       "16r00CA"    16r00CA " LATIN CAPITAL LETTER E WITH CIRCUMFLEX " 
       "16r00CB"    16r00CB " LATIN CAPITAL LETTER E WITH DIAERESIS " 
       "16r00CC"    16r00CC " LATIN CAPITAL LETTER I WITH GRAVE " 
       "16r00CD"    16r00CD " LATIN CAPITAL LETTER I WITH ACUTE " 
       "16r00CE"    16r00CE " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
       "16r00CF"    16r00CF " LATIN CAPITAL LETTER I WITH DIAERESIS " 
       "16r00D0"    16r0174 " LATIN CAPITAL LETTER W WITH CIRCUMFLEX " 
       "16r00D1"    16r00D1 " LATIN CAPITAL LETTER N WITH TILDE " 
       "16r00D2"    16r00D2 " LATIN CAPITAL LETTER O WITH GRAVE " 
       "16r00D3"    16r00D3 " LATIN CAPITAL LETTER O WITH ACUTE " 
       "16r00D4"    16r00D4 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
       "16r00D5"    16r00D5 " LATIN CAPITAL LETTER O WITH TILDE " 
       "16r00D6"    16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
       "16r00D7"    16r1E6A " LATIN CAPITAL LETTER T WITH DOT ABOVE " 
       "16r00D8"    16r00D8 " LATIN CAPITAL LETTER O WITH STROKE " 
       "16r00D9"    16r00D9 " LATIN CAPITAL LETTER U WITH GRAVE " 
       "16r00DA"    16r00DA " LATIN CAPITAL LETTER U WITH ACUTE " 
       "16r00DB"    16r00DB " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " 
       "16r00DC"    16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS " 
       "16r00DD"    16r00DD " LATIN CAPITAL LETTER Y WITH ACUTE " 
       "16r00DE"    16r0176 " LATIN CAPITAL LETTER Y WITH CIRCUMFLEX " 
       "16r00DF"    16r00DF " LATIN SMALL LETTER SHARP S " 
       "16r00E0"    16r00E0 " LATIN SMALL LETTER A WITH GRAVE " 
       "16r00E1"    16r00E1 " LATIN SMALL LETTER A WITH ACUTE " 
       "16r00E2"    16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
       "16r00E3"    16r00E3 " LATIN SMALL LETTER A WITH TILDE " 
       "16r00E4"    16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS " 
       "16r00E5"    16r00E5 " LATIN SMALL LETTER A WITH RING ABOVE " 
       "16r00E6"    16r00E6 " LATIN SMALL LETTER AE " 
       "16r00E7"    16r00E7 " LATIN SMALL LETTER C WITH CEDILLA " 
       "16r00E8"    16r00E8 " LATIN SMALL LETTER E WITH GRAVE " 
       "16r00E9"    16r00E9 " LATIN SMALL LETTER E WITH ACUTE " 
       "16r00EA"    16r00EA " LATIN SMALL LETTER E WITH CIRCUMFLEX " 
       "16r00EB"    16r00EB " LATIN SMALL LETTER E WITH DIAERESIS " 
       "16r00EC"    16r00EC " LATIN SMALL LETTER I WITH GRAVE " 
       "16r00ED"    16r00ED " LATIN SMALL LETTER I WITH ACUTE " 
       "16r00EE"    16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
       "16r00EF"    16r00EF " LATIN SMALL LETTER I WITH DIAERESIS " 
       "16r00F0"    16r0175 " LATIN SMALL LETTER W WITH CIRCUMFLEX " 
       "16r00F1"    16r00F1 " LATIN SMALL LETTER N WITH TILDE " 
       "16r00F2"    16r00F2 " LATIN SMALL LETTER O WITH GRAVE " 
       "16r00F3"    16r00F3 " LATIN SMALL LETTER O WITH ACUTE " 
       "16r00F4"    16r00F4 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
       "16r00F5"    16r00F5 " LATIN SMALL LETTER O WITH TILDE " 
       "16r00F6"    16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS " 
       "16r00F7"    16r1E6B " LATIN SMALL LETTER T WITH DOT ABOVE " 
       "16r00F8"    16r00F8 " LATIN SMALL LETTER O WITH STROKE " 
       "16r00F9"    16r00F9 " LATIN SMALL LETTER U WITH GRAVE " 
       "16r00FA"    16r00FA " LATIN SMALL LETTER U WITH ACUTE " 
       "16r00FB"    16r00FB " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
       "16r00FC"    16r00FC " LATIN SMALL LETTER U WITH DIAERESIS " 
       "16r00FD"    16r00FD " LATIN SMALL LETTER Y WITH ACUTE " 
       "16r00FE"    16r0177 " LATIN SMALL LETTER Y WITH CIRCUMFLEX " 
       "16r00FF"    16r00FF " LATIN SMALL LETTER Y WITH DIAERESIS " 
       ) at:(code - 16rA0).
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16rA0 ifTrue:[ ^ unicode ].
    unicode > 16r1EF3 ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r178 ifTrue:[
	unicode <= 16r121 ifTrue:[
	    unicode <= 16r109 ifTrue:[
		(#[
		   "16r00A1"    0 " invalid " 
		   "16r00A2"    0 " invalid " 
		   "16r00A3"    1 " POUND SIGN " 
		   "16r00A4"    0 " invalid " 
		   "16r00A5"    0 " invalid " 
		   "16r00A6"    0 " invalid " 
		   "16r00A7"    1 " SECTION SIGN " 
		   "16r00A8"    0 " invalid " 
		   "16r00A9"    1 " COPYRIGHT SIGN " 
		   "16r00AA"    0 " invalid " 
		   "16r00AB"    0 " invalid " 
		   "16r00AC"    0 " invalid " 
		   "16r00AD"    1 " SOFT HYPHEN " 
		   "16r00AE"    1 " REGISTERED SIGN " 
		   "16r00AF"    0 " invalid " 
		   "16r00B0"    0 " invalid " 
		   "16r00B1"    0 " invalid " 
		   "16r00B2"    0 " invalid " 
		   "16r00B3"    0 " invalid " 
		   "16r00B4"    0 " invalid " 
		   "16r00B5"    0 " invalid " 
		   "16r00B6"    1 " PILCROW SIGN " 
		   "16r00B7"    0 " invalid " 
		   "16r00B8"    0 " invalid " 
		   "16r00B9"    0 " invalid " 
		   "16r00BA"    0 " invalid " 
		   "16r00BB"    0 " invalid " 
		   "16r00BC"    0 " invalid " 
		   "16r00BD"    0 " invalid " 
		   "16r00BE"    0 " invalid " 
		   "16r00BF"    0 " invalid " 
		   "16r00C0"    1 " LATIN CAPITAL LETTER A WITH GRAVE " 
		   "16r00C1"    1 " LATIN CAPITAL LETTER A WITH ACUTE " 
		   "16r00C2"    1 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
		   "16r00C3"    1 " LATIN CAPITAL LETTER A WITH TILDE " 
		   "16r00C4"    1 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
		   "16r00C5"    1 " LATIN CAPITAL LETTER A WITH RING ABOVE " 
		   "16r00C6"    1 " LATIN CAPITAL LETTER AE " 
		   "16r00C7"    1 " LATIN CAPITAL LETTER C WITH CEDILLA " 
		   "16r00C8"    1 " LATIN CAPITAL LETTER E WITH GRAVE " 
		   "16r00C9"    1 " LATIN CAPITAL LETTER E WITH ACUTE " 
		   "16r00CA"    1 " LATIN CAPITAL LETTER E WITH CIRCUMFLEX " 
		   "16r00CB"    1 " LATIN CAPITAL LETTER E WITH DIAERESIS " 
		   "16r00CC"    1 " LATIN CAPITAL LETTER I WITH GRAVE " 
		   "16r00CD"    1 " LATIN CAPITAL LETTER I WITH ACUTE " 
		   "16r00CE"    1 " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
		   "16r00CF"    1 " LATIN CAPITAL LETTER I WITH DIAERESIS " 
		   "16r00D0"    0 " invalid " 
		   "16r00D1"    1 " LATIN CAPITAL LETTER N WITH TILDE " 
		   "16r00D2"    1 " LATIN CAPITAL LETTER O WITH GRAVE " 
		   "16r00D3"    1 " LATIN CAPITAL LETTER O WITH ACUTE " 
		   "16r00D4"    1 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
		   "16r00D5"    1 " LATIN CAPITAL LETTER O WITH TILDE " 
		   "16r00D6"    1 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
		   "16r00D7"    0 " invalid " 
		   "16r00D8"    1 " LATIN CAPITAL LETTER O WITH STROKE " 
		   "16r00D9"    1 " LATIN CAPITAL LETTER U WITH GRAVE " 
		   "16r00DA"    1 " LATIN CAPITAL LETTER U WITH ACUTE " 
		   "16r00DB"    1 " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " 
		   "16r00DC"    1 " LATIN CAPITAL LETTER U WITH DIAERESIS " 
		   "16r00DD"    1 " LATIN CAPITAL LETTER Y WITH ACUTE " 
		   "16r00DE"    0 " invalid " 
		   "16r00DF"    1 " LATIN SMALL LETTER SHARP S " 
		   "16r00E0"    1 " LATIN SMALL LETTER A WITH GRAVE " 
		   "16r00E1"    1 " LATIN SMALL LETTER A WITH ACUTE " 
		   "16r00E2"    1 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
		   "16r00E3"    1 " LATIN SMALL LETTER A WITH TILDE " 
		   "16r00E4"    1 " LATIN SMALL LETTER A WITH DIAERESIS " 
		   "16r00E5"    1 " LATIN SMALL LETTER A WITH RING ABOVE " 
		   "16r00E6"    1 " LATIN SMALL LETTER AE " 
		   "16r00E7"    1 " LATIN SMALL LETTER C WITH CEDILLA " 
		   "16r00E8"    1 " LATIN SMALL LETTER E WITH GRAVE " 
		   "16r00E9"    1 " LATIN SMALL LETTER E WITH ACUTE " 
		   "16r00EA"    1 " LATIN SMALL LETTER E WITH CIRCUMFLEX " 
		   "16r00EB"    1 " LATIN SMALL LETTER E WITH DIAERESIS " 
		   "16r00EC"    1 " LATIN SMALL LETTER I WITH GRAVE " 
		   "16r00ED"    1 " LATIN SMALL LETTER I WITH ACUTE " 
		   "16r00EE"    1 " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
		   "16r00EF"    1 " LATIN SMALL LETTER I WITH DIAERESIS " 
		   "16r00F0"    0 " invalid " 
		   "16r00F1"    1 " LATIN SMALL LETTER N WITH TILDE " 
		   "16r00F2"    1 " LATIN SMALL LETTER O WITH GRAVE " 
		   "16r00F3"    1 " LATIN SMALL LETTER O WITH ACUTE " 
		   "16r00F4"    1 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
		   "16r00F5"    1 " LATIN SMALL LETTER O WITH TILDE " 
		   "16r00F6"    1 " LATIN SMALL LETTER O WITH DIAERESIS " 
		   "16r00F7"    0 " invalid " 
		   "16r00F8"    1 " LATIN SMALL LETTER O WITH STROKE " 
		   "16r00F9"    1 " LATIN SMALL LETTER U WITH GRAVE " 
		   "16r00FA"    1 " LATIN SMALL LETTER U WITH ACUTE " 
		   "16r00FB"    1 " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
		   "16r00FC"    1 " LATIN SMALL LETTER U WITH DIAERESIS " 
		   "16r00FD"    1 " LATIN SMALL LETTER Y WITH ACUTE " 
		   "16r00FE"    0 " invalid " 
		   "16r00FF"    1 " LATIN SMALL LETTER Y WITH DIAERESIS " 
		   "16r0100"    0 " invalid " 
		   "16r0101"    0 " invalid " 
		   "16r0102"    0 " invalid " 
		   "16r0103"    0 " invalid " 
		   "16r0104"    0 " invalid " 
		   "16r0105"    0 " invalid " 
		   "16r0106"    0 " invalid " 
		   "16r0107"    0 " invalid " 
		   "16r0108"    0 " invalid " 
		   "16r0109"    0 " invalid " 
		] at:(unicode - 160)) ~~ 0 ifTrue:[^ unicode].
		^ self encodingError.
	    ].
	    unicode <= 16r10B ifTrue:[
		^ #[
		   "16r010A"    16rA4 " LATIN CAPITAL LETTER C WITH DOT ABOVE " 
		   "16r010B"    16rA5 " LATIN SMALL LETTER C WITH DOT ABOVE " 
		   ] at:(unicode - 16r109).
	    ].
	    unicode <= 16r11F ifTrue:[
		^ self encodingError.
	    ].
	    ^ #[
	       "16r0120"    16rB2 " LATIN CAPITAL LETTER G WITH DOT ABOVE " 
	       "16r0121"    16rB3 " LATIN SMALL LETTER G WITH DOT ABOVE " 
	       ] at:(unicode - 16r11F).
	].
	unicode <= 16r173 ifTrue:[
	    ^ self encodingError.
	].
	^ #[
	   "16r0174"    16rD0 " LATIN CAPITAL LETTER W WITH CIRCUMFLEX " 
	   "16r0175"    16rF0 " LATIN SMALL LETTER W WITH CIRCUMFLEX " 
	   "16r0176"    16rDE " LATIN CAPITAL LETTER Y WITH CIRCUMFLEX " 
	   "16r0177"    16rFE " LATIN SMALL LETTER Y WITH CIRCUMFLEX " 
	   "16r0178"    16rAF " LATIN CAPITAL LETTER Y WITH DIAERESIS " 
	   ] at:(unicode - 16r173).
    ].
    unicode <= 16r1E01 ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r1E85 ifTrue:[
	[
	    |t|
	    t := #[
	       "16r1E02"    16rA1 " LATIN CAPITAL LETTER B WITH DOT ABOVE " 
	       "16r1E03"    16rA2 " LATIN SMALL LETTER B WITH DOT ABOVE " 
	       "16r1E04"    16r00 " invalid " 
	       "16r1E05"    16r00 " invalid " 
	       "16r1E06"    16r00 " invalid " 
	       "16r1E07"    16r00 " invalid " 
	       "16r1E08"    16r00 " invalid " 
	       "16r1E09"    16r00 " invalid " 
	       "16r1E0A"    16rA6 " LATIN CAPITAL LETTER D WITH DOT ABOVE " 
	       "16r1E0B"    16rAB " LATIN SMALL LETTER D WITH DOT ABOVE " 
	       "16r1E0C"    16r00 " invalid " 
	       "16r1E0D"    16r00 " invalid " 
	       "16r1E0E"    16r00 " invalid " 
	       "16r1E0F"    16r00 " invalid " 
	       "16r1E10"    16r00 " invalid " 
	       "16r1E11"    16r00 " invalid " 
	       "16r1E12"    16r00 " invalid " 
	       "16r1E13"    16r00 " invalid " 
	       "16r1E14"    16r00 " invalid " 
	       "16r1E15"    16r00 " invalid " 
	       "16r1E16"    16r00 " invalid " 
	       "16r1E17"    16r00 " invalid " 
	       "16r1E18"    16r00 " invalid " 
	       "16r1E19"    16r00 " invalid " 
	       "16r1E1A"    16r00 " invalid " 
	       "16r1E1B"    16r00 " invalid " 
	       "16r1E1C"    16r00 " invalid " 
	       "16r1E1D"    16r00 " invalid " 
	       "16r1E1E"    16rB0 " LATIN CAPITAL LETTER F WITH DOT ABOVE " 
	       "16r1E1F"    16rB1 " LATIN SMALL LETTER F WITH DOT ABOVE " 
	       "16r1E20"    16r00 " invalid " 
	       "16r1E21"    16r00 " invalid " 
	       "16r1E22"    16r00 " invalid " 
	       "16r1E23"    16r00 " invalid " 
	       "16r1E24"    16r00 " invalid " 
	       "16r1E25"    16r00 " invalid " 
	       "16r1E26"    16r00 " invalid " 
	       "16r1E27"    16r00 " invalid " 
	       "16r1E28"    16r00 " invalid " 
	       "16r1E29"    16r00 " invalid " 
	       "16r1E2A"    16r00 " invalid " 
	       "16r1E2B"    16r00 " invalid " 
	       "16r1E2C"    16r00 " invalid " 
	       "16r1E2D"    16r00 " invalid " 
	       "16r1E2E"    16r00 " invalid " 
	       "16r1E2F"    16r00 " invalid " 
	       "16r1E30"    16r00 " invalid " 
	       "16r1E31"    16r00 " invalid " 
	       "16r1E32"    16r00 " invalid " 
	       "16r1E33"    16r00 " invalid " 
	       "16r1E34"    16r00 " invalid " 
	       "16r1E35"    16r00 " invalid " 
	       "16r1E36"    16r00 " invalid " 
	       "16r1E37"    16r00 " invalid " 
	       "16r1E38"    16r00 " invalid " 
	       "16r1E39"    16r00 " invalid " 
	       "16r1E3A"    16r00 " invalid " 
	       "16r1E3B"    16r00 " invalid " 
	       "16r1E3C"    16r00 " invalid " 
	       "16r1E3D"    16r00 " invalid " 
	       "16r1E3E"    16r00 " invalid " 
	       "16r1E3F"    16r00 " invalid " 
	       "16r1E40"    16rB4 " LATIN CAPITAL LETTER M WITH DOT ABOVE " 
	       "16r1E41"    16rB5 " LATIN SMALL LETTER M WITH DOT ABOVE " 
	       "16r1E42"    16r00 " invalid " 
	       "16r1E43"    16r00 " invalid " 
	       "16r1E44"    16r00 " invalid " 
	       "16r1E45"    16r00 " invalid " 
	       "16r1E46"    16r00 " invalid " 
	       "16r1E47"    16r00 " invalid " 
	       "16r1E48"    16r00 " invalid " 
	       "16r1E49"    16r00 " invalid " 
	       "16r1E4A"    16r00 " invalid " 
	       "16r1E4B"    16r00 " invalid " 
	       "16r1E4C"    16r00 " invalid " 
	       "16r1E4D"    16r00 " invalid " 
	       "16r1E4E"    16r00 " invalid " 
	       "16r1E4F"    16r00 " invalid " 
	       "16r1E50"    16r00 " invalid " 
	       "16r1E51"    16r00 " invalid " 
	       "16r1E52"    16r00 " invalid " 
	       "16r1E53"    16r00 " invalid " 
	       "16r1E54"    16r00 " invalid " 
	       "16r1E55"    16r00 " invalid " 
	       "16r1E56"    16rB7 " LATIN CAPITAL LETTER P WITH DOT ABOVE " 
	       "16r1E57"    16rB9 " LATIN SMALL LETTER P WITH DOT ABOVE " 
	       "16r1E58"    16r00 " invalid " 
	       "16r1E59"    16r00 " invalid " 
	       "16r1E5A"    16r00 " invalid " 
	       "16r1E5B"    16r00 " invalid " 
	       "16r1E5C"    16r00 " invalid " 
	       "16r1E5D"    16r00 " invalid " 
	       "16r1E5E"    16r00 " invalid " 
	       "16r1E5F"    16r00 " invalid " 
	       "16r1E60"    16rBB " LATIN CAPITAL LETTER S WITH DOT ABOVE " 
	       "16r1E61"    16rBF " LATIN SMALL LETTER S WITH DOT ABOVE " 
	       "16r1E62"    16r00 " invalid " 
	       "16r1E63"    16r00 " invalid " 
	       "16r1E64"    16r00 " invalid " 
	       "16r1E65"    16r00 " invalid " 
	       "16r1E66"    16r00 " invalid " 
	       "16r1E67"    16r00 " invalid " 
	       "16r1E68"    16r00 " invalid " 
	       "16r1E69"    16r00 " invalid " 
	       "16r1E6A"    16rD7 " LATIN CAPITAL LETTER T WITH DOT ABOVE " 
	       "16r1E6B"    16rF7 " LATIN SMALL LETTER T WITH DOT ABOVE " 
	       "16r1E6C"    16r00 " invalid " 
	       "16r1E6D"    16r00 " invalid " 
	       "16r1E6E"    16r00 " invalid " 
	       "16r1E6F"    16r00 " invalid " 
	       "16r1E70"    16r00 " invalid " 
	       "16r1E71"    16r00 " invalid " 
	       "16r1E72"    16r00 " invalid " 
	       "16r1E73"    16r00 " invalid " 
	       "16r1E74"    16r00 " invalid " 
	       "16r1E75"    16r00 " invalid " 
	       "16r1E76"    16r00 " invalid " 
	       "16r1E77"    16r00 " invalid " 
	       "16r1E78"    16r00 " invalid " 
	       "16r1E79"    16r00 " invalid " 
	       "16r1E7A"    16r00 " invalid " 
	       "16r1E7B"    16r00 " invalid " 
	       "16r1E7C"    16r00 " invalid " 
	       "16r1E7D"    16r00 " invalid " 
	       "16r1E7E"    16r00 " invalid " 
	       "16r1E7F"    16r00 " invalid " 
	       "16r1E80"    16rA8 " LATIN CAPITAL LETTER W WITH GRAVE " 
	       "16r1E81"    16rB8 " LATIN SMALL LETTER W WITH GRAVE " 
	       "16r1E82"    16rAA " LATIN CAPITAL LETTER W WITH ACUTE " 
	       "16r1E83"    16rBA " LATIN SMALL LETTER W WITH ACUTE " 
	       "16r1E84"    16rBD " LATIN CAPITAL LETTER W WITH DIAERESIS " 
	       "16r1E85"    16rBE " LATIN SMALL LETTER W WITH DIAERESIS " 
	       ] at:(unicode - 16r1E01).
	    t == 0 ifFalse:[^ t].
	    ^ self encodingError
	] value.
    ].
    unicode <= 16r1EF1 ifTrue:[
	^ self encodingError.
    ].
    ^ #[
       "16r1EF2"    16rAC " LATIN CAPITAL LETTER Y WITH GRAVE " 
       "16r1EF3"    16rBC " LATIN SMALL LETTER Y WITH GRAVE " 
       ] at:(unicode - 16r1EF1).
! !

!CharacterEncoder::ISO8859_15 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'ISO8859/8859-15.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-15.TXT

#
#       Name:             ISO/IEC 8859-15:1999 to Unicode
#       Unicode version:  3.0
#       Table version:    1.0
#       Table format:     Format A
#       Date:             1999 July 27
#       Authors:          Markus Kuhn <mkuhn@acm.org>
#                         Ken Whistler <kenw@sybase.com>
#
#       Copyright (c) 1998 - 1999 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ISO/IEC 8859-15:1999 characters map into Unicode.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ISO/IEC 8859-15 code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ISO/IEC 8859-15 order.
#
#       Version history
#
#       Updated versions of this file may be found in:
#               <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
#       Any comments or problems, contact <errata@unicode.org>
#       Please note that <errata@unicode.org> is an archival address;
#       notices will be checked, but do not expect an immediate response.
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x0080  #       <control>
0x81    0x0081  #       <control>
0x82    0x0082  #       <control>
0x83    0x0083  #       <control>
0x84    0x0084  #       <control>
0x85    0x0085  #       <control>
0x86    0x0086  #       <control>
0x87    0x0087  #       <control>
0x88    0x0088  #       <control>
0x89    0x0089  #       <control>
0x8A    0x008A  #       <control>
0x8B    0x008B  #       <control>
0x8C    0x008C  #       <control>
0x8D    0x008D  #       <control>
0x8E    0x008E  #       <control>
0x8F    0x008F  #       <control>
0x90    0x0090  #       <control>
0x91    0x0091  #       <control>
0x92    0x0092  #       <control>
0x93    0x0093  #       <control>
0x94    0x0094  #       <control>
0x95    0x0095  #       <control>
0x96    0x0096  #       <control>
0x97    0x0097  #       <control>
0x98    0x0098  #       <control>
0x99    0x0099  #       <control>
0x9A    0x009A  #       <control>
0x9B    0x009B  #       <control>
0x9C    0x009C  #       <control>
0x9D    0x009D  #       <control>
0x9E    0x009E  #       <control>
0x9F    0x009F  #       <control>
0xA0    0x00A0  #       NO-BREAK SPACE
0xA1    0x00A1  #       INVERTED EXCLAMATION MARK
0xA2    0x00A2  #       CENT SIGN
0xA3    0x00A3  #       POUND SIGN
0xA4    0x20AC  #       EURO SIGN
0xA5    0x00A5  #       YEN SIGN
0xA6    0x0160  #       LATIN CAPITAL LETTER S WITH CARON
0xA7    0x00A7  #       SECTION SIGN
0xA8    0x0161  #       LATIN SMALL LETTER S WITH CARON
0xA9    0x00A9  #       COPYRIGHT SIGN
0xAA    0x00AA  #       FEMININE ORDINAL INDICATOR
0xAB    0x00AB  #       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xAC    0x00AC  #       NOT SIGN
0xAD    0x00AD  #       SOFT HYPHEN
0xAE    0x00AE  #       REGISTERED SIGN
0xAF    0x00AF  #       MACRON
0xB0    0x00B0  #       DEGREE SIGN
0xB1    0x00B1  #       PLUS-MINUS SIGN
0xB2    0x00B2  #       SUPERSCRIPT TWO
0xB3    0x00B3  #       SUPERSCRIPT THREE
0xB4    0x017D  #       LATIN CAPITAL LETTER Z WITH CARON
0xB5    0x00B5  #       MICRO SIGN
0xB6    0x00B6  #       PILCROW SIGN
0xB7    0x00B7  #       MIDDLE DOT
0xB8    0x017E  #       LATIN SMALL LETTER Z WITH CARON
0xB9    0x00B9  #       SUPERSCRIPT ONE
0xBA    0x00BA  #       MASCULINE ORDINAL INDICATOR
0xBB    0x00BB  #       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xBC    0x0152  #       LATIN CAPITAL LIGATURE OE
0xBD    0x0153  #       LATIN SMALL LIGATURE OE
0xBE    0x0178  #       LATIN CAPITAL LETTER Y WITH DIAERESIS
0xBF    0x00BF  #       INVERTED QUESTION MARK
0xC0    0x00C0  #       LATIN CAPITAL LETTER A WITH GRAVE
0xC1    0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE
0xC2    0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xC3    0x00C3  #       LATIN CAPITAL LETTER A WITH TILDE
0xC4    0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS
0xC5    0x00C5  #       LATIN CAPITAL LETTER A WITH RING ABOVE
0xC6    0x00C6  #       LATIN CAPITAL LETTER AE
0xC7    0x00C7  #       LATIN CAPITAL LETTER C WITH CEDILLA
0xC8    0x00C8  #       LATIN CAPITAL LETTER E WITH GRAVE
0xC9    0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE
0xCA    0x00CA  #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xCB    0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS
0xCC    0x00CC  #       LATIN CAPITAL LETTER I WITH GRAVE
0xCD    0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE
0xCE    0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xCF    0x00CF  #       LATIN CAPITAL LETTER I WITH DIAERESIS
0xD0    0x00D0  #       LATIN CAPITAL LETTER ETH
0xD1    0x00D1  #       LATIN CAPITAL LETTER N WITH TILDE
0xD2    0x00D2  #       LATIN CAPITAL LETTER O WITH GRAVE
0xD3    0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE
0xD4    0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xD5    0x00D5  #       LATIN CAPITAL LETTER O WITH TILDE
0xD6    0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS
0xD7    0x00D7  #       MULTIPLICATION SIGN
0xD8    0x00D8  #       LATIN CAPITAL LETTER O WITH STROKE
0xD9    0x00D9  #       LATIN CAPITAL LETTER U WITH GRAVE
0xDA    0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE
0xDB    0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xDC    0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS
0xDD    0x00DD  #       LATIN CAPITAL LETTER Y WITH ACUTE
0xDE    0x00DE  #       LATIN CAPITAL LETTER THORN
0xDF    0x00DF  #       LATIN SMALL LETTER SHARP S
0xE0    0x00E0  #       LATIN SMALL LETTER A WITH GRAVE
0xE1    0x00E1  #       LATIN SMALL LETTER A WITH ACUTE
0xE2    0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX
0xE3    0x00E3  #       LATIN SMALL LETTER A WITH TILDE
0xE4    0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS
0xE5    0x00E5  #       LATIN SMALL LETTER A WITH RING ABOVE
0xE6    0x00E6  #       LATIN SMALL LETTER AE
0xE7    0x00E7  #       LATIN SMALL LETTER C WITH CEDILLA
0xE8    0x00E8  #       LATIN SMALL LETTER E WITH GRAVE
0xE9    0x00E9  #       LATIN SMALL LETTER E WITH ACUTE
0xEA    0x00EA  #       LATIN SMALL LETTER E WITH CIRCUMFLEX
0xEB    0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS
0xEC    0x00EC  #       LATIN SMALL LETTER I WITH GRAVE
0xED    0x00ED  #       LATIN SMALL LETTER I WITH ACUTE
0xEE    0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX
0xEF    0x00EF  #       LATIN SMALL LETTER I WITH DIAERESIS
0xF0    0x00F0  #       LATIN SMALL LETTER ETH
0xF1    0x00F1  #       LATIN SMALL LETTER N WITH TILDE
0xF2    0x00F2  #       LATIN SMALL LETTER O WITH GRAVE
0xF3    0x00F3  #       LATIN SMALL LETTER O WITH ACUTE
0xF4    0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX
0xF5    0x00F5  #       LATIN SMALL LETTER O WITH TILDE
0xF6    0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS
0xF7    0x00F7  #       DIVISION SIGN
0xF8    0x00F8  #       LATIN SMALL LETTER O WITH STROKE
0xF9    0x00F9  #       LATIN SMALL LETTER U WITH GRAVE
0xFA    0x00FA  #       LATIN SMALL LETTER U WITH ACUTE
0xFB    0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX
0xFC    0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS
0xFD    0x00FD  #       LATIN SMALL LETTER Y WITH ACUTE
0xFE    0x00FE  #       LATIN SMALL LETTER THORN
0xFF    0x00FF  #       LATIN SMALL LETTER Y WITH DIAERESIS


"
! !

!CharacterEncoder::ISO8859_15 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-15' 'iso-8859-15' 'latin9' 'latin-9' 'iso-ir-203')
! !

!CharacterEncoder::ISO8859_15 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16rA3 ifTrue:[ ^ code ].
    code > 16rFF ifTrue:[
	^ self decodingError.
    ].
    ^ #(
       "16r00A4"    16r20AC " EURO SIGN " 
       "16r00A5"    16r00A5 " YEN SIGN " 
       "16r00A6"    16r0160 " LATIN CAPITAL LETTER S WITH CARON " 
       "16r00A7"    16r00A7 " SECTION SIGN " 
       "16r00A8"    16r0161 " LATIN SMALL LETTER S WITH CARON " 
       "16r00A9"    16r00A9 " COPYRIGHT SIGN " 
       "16r00AA"    16r00AA " FEMININE ORDINAL INDICATOR " 
       "16r00AB"    16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
       "16r00AC"    16r00AC " NOT SIGN " 
       "16r00AD"    16r00AD " SOFT HYPHEN " 
       "16r00AE"    16r00AE " REGISTERED SIGN " 
       "16r00AF"    16r00AF " MACRON " 
       "16r00B0"    16r00B0 " DEGREE SIGN " 
       "16r00B1"    16r00B1 " PLUS-MINUS SIGN " 
       "16r00B2"    16r00B2 " SUPERSCRIPT TWO " 
       "16r00B3"    16r00B3 " SUPERSCRIPT THREE " 
       "16r00B4"    16r017D " LATIN CAPITAL LETTER Z WITH CARON " 
       "16r00B5"    16r00B5 " MICRO SIGN " 
       "16r00B6"    16r00B6 " PILCROW SIGN " 
       "16r00B7"    16r00B7 " MIDDLE DOT " 
       "16r00B8"    16r017E " LATIN SMALL LETTER Z WITH CARON " 
       "16r00B9"    16r00B9 " SUPERSCRIPT ONE " 
       "16r00BA"    16r00BA " MASCULINE ORDINAL INDICATOR " 
       "16r00BB"    16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
       "16r00BC"    16r0152 " LATIN CAPITAL LIGATURE OE " 
       "16r00BD"    16r0153 " LATIN SMALL LIGATURE OE " 
       "16r00BE"    16r0178 " LATIN CAPITAL LETTER Y WITH DIAERESIS " 
       "16r00BF"    16r00BF " INVERTED QUESTION MARK " 
       "16r00C0"    16r00C0 " LATIN CAPITAL LETTER A WITH GRAVE " 
       "16r00C1"    16r00C1 " LATIN CAPITAL LETTER A WITH ACUTE " 
       "16r00C2"    16r00C2 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
       "16r00C3"    16r00C3 " LATIN CAPITAL LETTER A WITH TILDE " 
       "16r00C4"    16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
       "16r00C5"    16r00C5 " LATIN CAPITAL LETTER A WITH RING ABOVE " 
       "16r00C6"    16r00C6 " LATIN CAPITAL LETTER AE " 
       "16r00C7"    16r00C7 " LATIN CAPITAL LETTER C WITH CEDILLA " 
       "16r00C8"    16r00C8 " LATIN CAPITAL LETTER E WITH GRAVE " 
       "16r00C9"    16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE " 
       "16r00CA"    16r00CA " LATIN CAPITAL LETTER E WITH CIRCUMFLEX " 
       "16r00CB"    16r00CB " LATIN CAPITAL LETTER E WITH DIAERESIS " 
       "16r00CC"    16r00CC " LATIN CAPITAL LETTER I WITH GRAVE " 
       "16r00CD"    16r00CD " LATIN CAPITAL LETTER I WITH ACUTE " 
       "16r00CE"    16r00CE " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
       "16r00CF"    16r00CF " LATIN CAPITAL LETTER I WITH DIAERESIS " 
       "16r00D0"    16r00D0 " LATIN CAPITAL LETTER ETH " 
       "16r00D1"    16r00D1 " LATIN CAPITAL LETTER N WITH TILDE " 
       "16r00D2"    16r00D2 " LATIN CAPITAL LETTER O WITH GRAVE " 
       "16r00D3"    16r00D3 " LATIN CAPITAL LETTER O WITH ACUTE " 
       "16r00D4"    16r00D4 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
       "16r00D5"    16r00D5 " LATIN CAPITAL LETTER O WITH TILDE " 
       "16r00D6"    16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
       "16r00D7"    16r00D7 " MULTIPLICATION SIGN " 
       "16r00D8"    16r00D8 " LATIN CAPITAL LETTER O WITH STROKE " 
       "16r00D9"    16r00D9 " LATIN CAPITAL LETTER U WITH GRAVE " 
       "16r00DA"    16r00DA " LATIN CAPITAL LETTER U WITH ACUTE " 
       "16r00DB"    16r00DB " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " 
       "16r00DC"    16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS " 
       "16r00DD"    16r00DD " LATIN CAPITAL LETTER Y WITH ACUTE " 
       "16r00DE"    16r00DE " LATIN CAPITAL LETTER THORN " 
       "16r00DF"    16r00DF " LATIN SMALL LETTER SHARP S " 
       "16r00E0"    16r00E0 " LATIN SMALL LETTER A WITH GRAVE " 
       "16r00E1"    16r00E1 " LATIN SMALL LETTER A WITH ACUTE " 
       "16r00E2"    16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
       "16r00E3"    16r00E3 " LATIN SMALL LETTER A WITH TILDE " 
       "16r00E4"    16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS " 
       "16r00E5"    16r00E5 " LATIN SMALL LETTER A WITH RING ABOVE " 
       "16r00E6"    16r00E6 " LATIN SMALL LETTER AE " 
       "16r00E7"    16r00E7 " LATIN SMALL LETTER C WITH CEDILLA " 
       "16r00E8"    16r00E8 " LATIN SMALL LETTER E WITH GRAVE " 
       "16r00E9"    16r00E9 " LATIN SMALL LETTER E WITH ACUTE " 
       "16r00EA"    16r00EA " LATIN SMALL LETTER E WITH CIRCUMFLEX " 
       "16r00EB"    16r00EB " LATIN SMALL LETTER E WITH DIAERESIS " 
       "16r00EC"    16r00EC " LATIN SMALL LETTER I WITH GRAVE " 
       "16r00ED"    16r00ED " LATIN SMALL LETTER I WITH ACUTE " 
       "16r00EE"    16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
       "16r00EF"    16r00EF " LATIN SMALL LETTER I WITH DIAERESIS " 
       "16r00F0"    16r00F0 " LATIN SMALL LETTER ETH " 
       "16r00F1"    16r00F1 " LATIN SMALL LETTER N WITH TILDE " 
       "16r00F2"    16r00F2 " LATIN SMALL LETTER O WITH GRAVE " 
       "16r00F3"    16r00F3 " LATIN SMALL LETTER O WITH ACUTE " 
       "16r00F4"    16r00F4 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
       "16r00F5"    16r00F5 " LATIN SMALL LETTER O WITH TILDE " 
       "16r00F6"    16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS " 
       "16r00F7"    16r00F7 " DIVISION SIGN " 
       "16r00F8"    16r00F8 " LATIN SMALL LETTER O WITH STROKE " 
       "16r00F9"    16r00F9 " LATIN SMALL LETTER U WITH GRAVE " 
       "16r00FA"    16r00FA " LATIN SMALL LETTER U WITH ACUTE " 
       "16r00FB"    16r00FB " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
       "16r00FC"    16r00FC " LATIN SMALL LETTER U WITH DIAERESIS " 
       "16r00FD"    16r00FD " LATIN SMALL LETTER Y WITH ACUTE " 
       "16r00FE"    16r00FE " LATIN SMALL LETTER THORN " 
       "16r00FF"    16r00FF " LATIN SMALL LETTER Y WITH DIAERESIS " 
       ) at:(code - 16rA3).
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16rA3 ifTrue:[ ^ unicode ].
    unicode > 16r20AC ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r17E ifTrue:[
	unicode <= 16rFF ifTrue:[
		(#[
		   "16r00A4"    0 " invalid " 
		   "16r00A5"    1 " YEN SIGN " 
		   "16r00A6"    0 " invalid " 
		   "16r00A7"    1 " SECTION SIGN " 
		   "16r00A8"    0 " invalid " 
		   "16r00A9"    1 " COPYRIGHT SIGN " 
		   "16r00AA"    1 " FEMININE ORDINAL INDICATOR " 
		   "16r00AB"    1 " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
		   "16r00AC"    1 " NOT SIGN " 
		   "16r00AD"    1 " SOFT HYPHEN " 
		   "16r00AE"    1 " REGISTERED SIGN " 
		   "16r00AF"    1 " MACRON " 
		   "16r00B0"    1 " DEGREE SIGN " 
		   "16r00B1"    1 " PLUS-MINUS SIGN " 
		   "16r00B2"    1 " SUPERSCRIPT TWO " 
		   "16r00B3"    1 " SUPERSCRIPT THREE " 
		   "16r00B4"    0 " invalid " 
		   "16r00B5"    1 " MICRO SIGN " 
		   "16r00B6"    1 " PILCROW SIGN " 
		   "16r00B7"    1 " MIDDLE DOT " 
		   "16r00B8"    0 " invalid " 
		   "16r00B9"    1 " SUPERSCRIPT ONE " 
		   "16r00BA"    1 " MASCULINE ORDINAL INDICATOR " 
		   "16r00BB"    1 " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
		   "16r00BC"    0 " invalid " 
		   "16r00BD"    0 " invalid " 
		   "16r00BE"    0 " invalid " 
		   "16r00BF"    1 " INVERTED QUESTION MARK " 
		   "16r00C0"    1 " LATIN CAPITAL LETTER A WITH GRAVE " 
		   "16r00C1"    1 " LATIN CAPITAL LETTER A WITH ACUTE " 
		   "16r00C2"    1 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
		   "16r00C3"    1 " LATIN CAPITAL LETTER A WITH TILDE " 
		   "16r00C4"    1 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
		   "16r00C5"    1 " LATIN CAPITAL LETTER A WITH RING ABOVE " 
		   "16r00C6"    1 " LATIN CAPITAL LETTER AE " 
		   "16r00C7"    1 " LATIN CAPITAL LETTER C WITH CEDILLA " 
		   "16r00C8"    1 " LATIN CAPITAL LETTER E WITH GRAVE " 
		   "16r00C9"    1 " LATIN CAPITAL LETTER E WITH ACUTE " 
		   "16r00CA"    1 " LATIN CAPITAL LETTER E WITH CIRCUMFLEX " 
		   "16r00CB"    1 " LATIN CAPITAL LETTER E WITH DIAERESIS " 
		   "16r00CC"    1 " LATIN CAPITAL LETTER I WITH GRAVE " 
		   "16r00CD"    1 " LATIN CAPITAL LETTER I WITH ACUTE " 
		   "16r00CE"    1 " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
		   "16r00CF"    1 " LATIN CAPITAL LETTER I WITH DIAERESIS " 
		   "16r00D0"    1 " LATIN CAPITAL LETTER ETH " 
		   "16r00D1"    1 " LATIN CAPITAL LETTER N WITH TILDE " 
		   "16r00D2"    1 " LATIN CAPITAL LETTER O WITH GRAVE " 
		   "16r00D3"    1 " LATIN CAPITAL LETTER O WITH ACUTE " 
		   "16r00D4"    1 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
		   "16r00D5"    1 " LATIN CAPITAL LETTER O WITH TILDE " 
		   "16r00D6"    1 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
		   "16r00D7"    1 " MULTIPLICATION SIGN " 
		   "16r00D8"    1 " LATIN CAPITAL LETTER O WITH STROKE " 
		   "16r00D9"    1 " LATIN CAPITAL LETTER U WITH GRAVE " 
		   "16r00DA"    1 " LATIN CAPITAL LETTER U WITH ACUTE " 
		   "16r00DB"    1 " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " 
		   "16r00DC"    1 " LATIN CAPITAL LETTER U WITH DIAERESIS " 
		   "16r00DD"    1 " LATIN CAPITAL LETTER Y WITH ACUTE " 
		   "16r00DE"    1 " LATIN CAPITAL LETTER THORN " 
		   "16r00DF"    1 " LATIN SMALL LETTER SHARP S " 
		   "16r00E0"    1 " LATIN SMALL LETTER A WITH GRAVE " 
		   "16r00E1"    1 " LATIN SMALL LETTER A WITH ACUTE " 
		   "16r00E2"    1 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
		   "16r00E3"    1 " LATIN SMALL LETTER A WITH TILDE " 
		   "16r00E4"    1 " LATIN SMALL LETTER A WITH DIAERESIS " 
		   "16r00E5"    1 " LATIN SMALL LETTER A WITH RING ABOVE " 
		   "16r00E6"    1 " LATIN SMALL LETTER AE " 
		   "16r00E7"    1 " LATIN SMALL LETTER C WITH CEDILLA " 
		   "16r00E8"    1 " LATIN SMALL LETTER E WITH GRAVE " 
		   "16r00E9"    1 " LATIN SMALL LETTER E WITH ACUTE " 
		   "16r00EA"    1 " LATIN SMALL LETTER E WITH CIRCUMFLEX " 
		   "16r00EB"    1 " LATIN SMALL LETTER E WITH DIAERESIS " 
		   "16r00EC"    1 " LATIN SMALL LETTER I WITH GRAVE " 
		   "16r00ED"    1 " LATIN SMALL LETTER I WITH ACUTE " 
		   "16r00EE"    1 " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
		   "16r00EF"    1 " LATIN SMALL LETTER I WITH DIAERESIS " 
		   "16r00F0"    1 " LATIN SMALL LETTER ETH " 
		   "16r00F1"    1 " LATIN SMALL LETTER N WITH TILDE " 
		   "16r00F2"    1 " LATIN SMALL LETTER O WITH GRAVE " 
		   "16r00F3"    1 " LATIN SMALL LETTER O WITH ACUTE " 
		   "16r00F4"    1 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
		   "16r00F5"    1 " LATIN SMALL LETTER O WITH TILDE " 
		   "16r00F6"    1 " LATIN SMALL LETTER O WITH DIAERESIS " 
		   "16r00F7"    1 " DIVISION SIGN " 
		   "16r00F8"    1 " LATIN SMALL LETTER O WITH STROKE " 
		   "16r00F9"    1 " LATIN SMALL LETTER U WITH GRAVE " 
		   "16r00FA"    1 " LATIN SMALL LETTER U WITH ACUTE " 
		   "16r00FB"    1 " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
		   "16r00FC"    1 " LATIN SMALL LETTER U WITH DIAERESIS " 
		   "16r00FD"    1 " LATIN SMALL LETTER Y WITH ACUTE " 
		   "16r00FE"    1 " LATIN SMALL LETTER THORN " 
		   "16r00FF"    1 " LATIN SMALL LETTER Y WITH DIAERESIS " 
		] at:(unicode - 163)) ~~ 0 ifTrue:[^ unicode].
		^ self encodingError.
	].
	unicode <= 16r151 ifTrue:[
	    ^ self encodingError.
	].
	unicode <= 16r161 ifTrue:[
	    [
		|t|
		t := #[
		   "16r0152"    16rBC " LATIN CAPITAL LIGATURE OE " 
		   "16r0153"    16rBD " LATIN SMALL LIGATURE OE " 
		   "16r0154"    16r00 " invalid " 
		   "16r0155"    16r00 " invalid " 
		   "16r0156"    16r00 " invalid " 
		   "16r0157"    16r00 " invalid " 
		   "16r0158"    16r00 " invalid " 
		   "16r0159"    16r00 " invalid " 
		   "16r015A"    16r00 " invalid " 
		   "16r015B"    16r00 " invalid " 
		   "16r015C"    16r00 " invalid " 
		   "16r015D"    16r00 " invalid " 
		   "16r015E"    16r00 " invalid " 
		   "16r015F"    16r00 " invalid " 
		   "16r0160"    16rA6 " LATIN CAPITAL LETTER S WITH CARON " 
		   "16r0161"    16rA8 " LATIN SMALL LETTER S WITH CARON " 
		   ] at:(unicode - 16r151).
		t == 0 ifFalse:[^ t].
		^ self encodingError
	    ] value.
	].
	unicode <= 16r177 ifTrue:[
	    ^ self encodingError.
	].
	[
	    |t|
	    t := #[
	       "16r0178"    16rBE " LATIN CAPITAL LETTER Y WITH DIAERESIS " 
	       "16r0179"    16r00 " invalid " 
	       "16r017A"    16r00 " invalid " 
	       "16r017B"    16r00 " invalid " 
	       "16r017C"    16r00 " invalid " 
	       "16r017D"    16rB4 " LATIN CAPITAL LETTER Z WITH CARON " 
	       "16r017E"    16rB8 " LATIN SMALL LETTER Z WITH CARON " 
	       ] at:(unicode - 16r177).
	    t == 0 ifFalse:[^ t].
	    ^ self encodingError
	] value.
    ].
    unicode <= 16r20AB ifTrue:[
	^ self encodingError.
    ].
    ^  "16r20AC" 16r00A4 " EURO SIGN " 
! !

!CharacterEncoder::ISO8859_16 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'ISO8859/8859-16.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-16.TXT

#
#       Name:             ISO/IEC 8859-16:2001 to Unicode
#       Unicode version:  3.0
#       Table version:    1.0
#       Table format:     Format A
#       Date:             2001 July 26
#       Authors:          Markus Kuhn <mkuhn@acm.org>
#
#       Copyright (c) 1999-2001 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ISO/IEC 8859-16:2001 characters map into Unicode.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ISO/IEC 8859-16 code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ISO/IEC 8859-16 order.
#
#       Updated versions of this file may be found in:
#               <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
#       Any comments or problems, contact <errata@unicode.org>
#       Please note that <errata@unicode.org> is an archival address;
#       notices will be checked, but do not expect an immediate response.
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x0080  #       <control>
0x81    0x0081  #       <control>
0x82    0x0082  #       <control>
0x83    0x0083  #       <control>
0x84    0x0084  #       <control>
0x85    0x0085  #       <control>
0x86    0x0086  #       <control>
0x87    0x0087  #       <control>
0x88    0x0088  #       <control>
0x89    0x0089  #       <control>
0x8A    0x008A  #       <control>
0x8B    0x008B  #       <control>
0x8C    0x008C  #       <control>
0x8D    0x008D  #       <control>
0x8E    0x008E  #       <control>
0x8F    0x008F  #       <control>
0x90    0x0090  #       <control>
0x91    0x0091  #       <control>
0x92    0x0092  #       <control>
0x93    0x0093  #       <control>
0x94    0x0094  #       <control>
0x95    0x0095  #       <control>
0x96    0x0096  #       <control>
0x97    0x0097  #       <control>
0x98    0x0098  #       <control>
0x99    0x0099  #       <control>
0x9A    0x009A  #       <control>
0x9B    0x009B  #       <control>
0x9C    0x009C  #       <control>
0x9D    0x009D  #       <control>
0x9E    0x009E  #       <control>
0x9F    0x009F  #       <control>
0xA0    0x00A0  #       NO-BREAK SPACE
0xA1    0x0104  #       LATIN CAPITAL LETTER A WITH OGONEK
0xA2    0x0105  #       LATIN SMALL LETTER A WITH OGONEK
0xA3    0x0141  #       LATIN CAPITAL LETTER L WITH STROKE
0xA4    0x20AC  #       EURO SIGN
0xA5    0x201E  #       DOUBLE LOW-9 QUOTATION MARK
0xA6    0x0160  #       LATIN CAPITAL LETTER S WITH CARON
0xA7    0x00A7  #       SECTION SIGN
0xA8    0x0161  #       LATIN SMALL LETTER S WITH CARON
0xA9    0x00A9  #       COPYRIGHT SIGN
0xAA    0x0218  #       LATIN CAPITAL LETTER S WITH COMMA BELOW
0xAB    0x00AB  #       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xAC    0x0179  #       LATIN CAPITAL LETTER Z WITH ACUTE
0xAD    0x00AD  #       SOFT HYPHEN
0xAE    0x017A  #       LATIN SMALL LETTER Z WITH ACUTE
0xAF    0x017B  #       LATIN CAPITAL LETTER Z WITH DOT ABOVE
0xB0    0x00B0  #       DEGREE SIGN
0xB1    0x00B1  #       PLUS-MINUS SIGN
0xB2    0x010C  #       LATIN CAPITAL LETTER C WITH CARON
0xB3    0x0142  #       LATIN SMALL LETTER L WITH STROKE
0xB4    0x017D  #       LATIN CAPITAL LETTER Z WITH CARON
0xB5    0x201D  #       RIGHT DOUBLE QUOTATION MARK
0xB6    0x00B6  #       PILCROW SIGN
0xB7    0x00B7  #       MIDDLE DOT
0xB8    0x017E  #       LATIN SMALL LETTER Z WITH CARON
0xB9    0x010D  #       LATIN SMALL LETTER C WITH CARON
0xBA    0x0219  #       LATIN SMALL LETTER S WITH COMMA BELOW
0xBB    0x00BB  #       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xBC    0x0152  #       LATIN CAPITAL LIGATURE OE
0xBD    0x0153  #       LATIN SMALL LIGATURE OE
0xBE    0x0178  #       LATIN CAPITAL LETTER Y WITH DIAERESIS
0xBF    0x017C  #       LATIN SMALL LETTER Z WITH DOT ABOVE
0xC0    0x00C0  #       LATIN CAPITAL LETTER A WITH GRAVE
0xC1    0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE
0xC2    0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xC3    0x0102  #       LATIN CAPITAL LETTER A WITH BREVE
0xC4    0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS
0xC5    0x0106  #       LATIN CAPITAL LETTER C WITH ACUTE
0xC6    0x00C6  #       LATIN CAPITAL LETTER AE
0xC7    0x00C7  #       LATIN CAPITAL LETTER C WITH CEDILLA
0xC8    0x00C8  #       LATIN CAPITAL LETTER E WITH GRAVE
0xC9    0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE
0xCA    0x00CA  #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xCB    0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS
0xCC    0x00CC  #       LATIN CAPITAL LETTER I WITH GRAVE
0xCD    0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE
0xCE    0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xCF    0x00CF  #       LATIN CAPITAL LETTER I WITH DIAERESIS
0xD0    0x0110  #       LATIN CAPITAL LETTER D WITH STROKE
0xD1    0x0143  #       LATIN CAPITAL LETTER N WITH ACUTE
0xD2    0x00D2  #       LATIN CAPITAL LETTER O WITH GRAVE
0xD3    0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE
0xD4    0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xD5    0x0150  #       LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
0xD6    0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS
0xD7    0x015A  #       LATIN CAPITAL LETTER S WITH ACUTE
0xD8    0x0170  #       LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
0xD9    0x00D9  #       LATIN CAPITAL LETTER U WITH GRAVE
0xDA    0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE
0xDB    0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xDC    0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS
0xDD    0x0118  #       LATIN CAPITAL LETTER E WITH OGONEK
0xDE    0x021A  #       LATIN CAPITAL LETTER T WITH COMMA BELOW
0xDF    0x00DF  #       LATIN SMALL LETTER SHARP S
0xE0    0x00E0  #       LATIN SMALL LETTER A WITH GRAVE
0xE1    0x00E1  #       LATIN SMALL LETTER A WITH ACUTE
0xE2    0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX
0xE3    0x0103  #       LATIN SMALL LETTER A WITH BREVE
0xE4    0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS
0xE5    0x0107  #       LATIN SMALL LETTER C WITH ACUTE
0xE6    0x00E6  #       LATIN SMALL LETTER AE
0xE7    0x00E7  #       LATIN SMALL LETTER C WITH CEDILLA
0xE8    0x00E8  #       LATIN SMALL LETTER E WITH GRAVE
0xE9    0x00E9  #       LATIN SMALL LETTER E WITH ACUTE
0xEA    0x00EA  #       LATIN SMALL LETTER E WITH CIRCUMFLEX
0xEB    0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS
0xEC    0x00EC  #       LATIN SMALL LETTER I WITH GRAVE
0xED    0x00ED  #       LATIN SMALL LETTER I WITH ACUTE
0xEE    0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX
0xEF    0x00EF  #       LATIN SMALL LETTER I WITH DIAERESIS
0xF0    0x0111  #       LATIN SMALL LETTER D WITH STROKE
0xF1    0x0144  #       LATIN SMALL LETTER N WITH ACUTE
0xF2    0x00F2  #       LATIN SMALL LETTER O WITH GRAVE
0xF3    0x00F3  #       LATIN SMALL LETTER O WITH ACUTE
0xF4    0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX
0xF5    0x0151  #       LATIN SMALL LETTER O WITH DOUBLE ACUTE
0xF6    0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS
0xF7    0x015B  #       LATIN SMALL LETTER S WITH ACUTE
0xF8    0x0171  #       LATIN SMALL LETTER U WITH DOUBLE ACUTE
0xF9    0x00F9  #       LATIN SMALL LETTER U WITH GRAVE
0xFA    0x00FA  #       LATIN SMALL LETTER U WITH ACUTE
0xFB    0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX
0xFC    0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS
0xFD    0x0119  #       LATIN SMALL LETTER E WITH OGONEK
0xFE    0x021B  #       LATIN SMALL LETTER T WITH COMMA BELOW
0xFF    0x00FF  #       LATIN SMALL LETTER Y WITH DIAERESIS

"
! !

!CharacterEncoder::ISO8859_16 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-16' 'iso-8859-16' 'latin10' 'latin-10' )
! !

!CharacterEncoder::ISO8859_16 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16rA0 ifTrue:[ ^ code ].
    code > 16rFF ifTrue:[
	^ self decodingError.
    ].
    ^ #(
       "16r00A1"    16r0104 " LATIN CAPITAL LETTER A WITH OGONEK " 
       "16r00A2"    16r0105 " LATIN SMALL LETTER A WITH OGONEK " 
       "16r00A3"    16r0141 " LATIN CAPITAL LETTER L WITH STROKE " 
       "16r00A4"    16r20AC " EURO SIGN " 
       "16r00A5"    16r201E " DOUBLE LOW-9 QUOTATION MARK " 
       "16r00A6"    16r0160 " LATIN CAPITAL LETTER S WITH CARON " 
       "16r00A7"    16r00A7 " SECTION SIGN " 
       "16r00A8"    16r0161 " LATIN SMALL LETTER S WITH CARON " 
       "16r00A9"    16r00A9 " COPYRIGHT SIGN " 
       "16r00AA"    16r0218 " LATIN CAPITAL LETTER S WITH COMMA BELOW " 
       "16r00AB"    16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
       "16r00AC"    16r0179 " LATIN CAPITAL LETTER Z WITH ACUTE " 
       "16r00AD"    16r00AD " SOFT HYPHEN " 
       "16r00AE"    16r017A " LATIN SMALL LETTER Z WITH ACUTE " 
       "16r00AF"    16r017B " LATIN CAPITAL LETTER Z WITH DOT ABOVE " 
       "16r00B0"    16r00B0 " DEGREE SIGN " 
       "16r00B1"    16r00B1 " PLUS-MINUS SIGN " 
       "16r00B2"    16r010C " LATIN CAPITAL LETTER C WITH CARON " 
       "16r00B3"    16r0142 " LATIN SMALL LETTER L WITH STROKE " 
       "16r00B4"    16r017D " LATIN CAPITAL LETTER Z WITH CARON " 
       "16r00B5"    16r201D " RIGHT DOUBLE QUOTATION MARK " 
       "16r00B6"    16r00B6 " PILCROW SIGN " 
       "16r00B7"    16r00B7 " MIDDLE DOT " 
       "16r00B8"    16r017E " LATIN SMALL LETTER Z WITH CARON " 
       "16r00B9"    16r010D " LATIN SMALL LETTER C WITH CARON " 
       "16r00BA"    16r0219 " LATIN SMALL LETTER S WITH COMMA BELOW " 
       "16r00BB"    16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
       "16r00BC"    16r0152 " LATIN CAPITAL LIGATURE OE " 
       "16r00BD"    16r0153 " LATIN SMALL LIGATURE OE " 
       "16r00BE"    16r0178 " LATIN CAPITAL LETTER Y WITH DIAERESIS " 
       "16r00BF"    16r017C " LATIN SMALL LETTER Z WITH DOT ABOVE " 
       "16r00C0"    16r00C0 " LATIN CAPITAL LETTER A WITH GRAVE " 
       "16r00C1"    16r00C1 " LATIN CAPITAL LETTER A WITH ACUTE " 
       "16r00C2"    16r00C2 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
       "16r00C3"    16r0102 " LATIN CAPITAL LETTER A WITH BREVE " 
       "16r00C4"    16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
       "16r00C5"    16r0106 " LATIN CAPITAL LETTER C WITH ACUTE " 
       "16r00C6"    16r00C6 " LATIN CAPITAL LETTER AE " 
       "16r00C7"    16r00C7 " LATIN CAPITAL LETTER C WITH CEDILLA " 
       "16r00C8"    16r00C8 " LATIN CAPITAL LETTER E WITH GRAVE " 
       "16r00C9"    16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE " 
       "16r00CA"    16r00CA " LATIN CAPITAL LETTER E WITH CIRCUMFLEX " 
       "16r00CB"    16r00CB " LATIN CAPITAL LETTER E WITH DIAERESIS " 
       "16r00CC"    16r00CC " LATIN CAPITAL LETTER I WITH GRAVE " 
       "16r00CD"    16r00CD " LATIN CAPITAL LETTER I WITH ACUTE " 
       "16r00CE"    16r00CE " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
       "16r00CF"    16r00CF " LATIN CAPITAL LETTER I WITH DIAERESIS " 
       "16r00D0"    16r0110 " LATIN CAPITAL LETTER D WITH STROKE " 
       "16r00D1"    16r0143 " LATIN CAPITAL LETTER N WITH ACUTE " 
       "16r00D2"    16r00D2 " LATIN CAPITAL LETTER O WITH GRAVE " 
       "16r00D3"    16r00D3 " LATIN CAPITAL LETTER O WITH ACUTE " 
       "16r00D4"    16r00D4 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
       "16r00D5"    16r0150 " LATIN CAPITAL LETTER O WITH DOUBLE ACUTE " 
       "16r00D6"    16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
       "16r00D7"    16r015A " LATIN CAPITAL LETTER S WITH ACUTE " 
       "16r00D8"    16r0170 " LATIN CAPITAL LETTER U WITH DOUBLE ACUTE " 
       "16r00D9"    16r00D9 " LATIN CAPITAL LETTER U WITH GRAVE " 
       "16r00DA"    16r00DA " LATIN CAPITAL LETTER U WITH ACUTE " 
       "16r00DB"    16r00DB " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " 
       "16r00DC"    16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS " 
       "16r00DD"    16r0118 " LATIN CAPITAL LETTER E WITH OGONEK " 
       "16r00DE"    16r021A " LATIN CAPITAL LETTER T WITH COMMA BELOW " 
       "16r00DF"    16r00DF " LATIN SMALL LETTER SHARP S " 
       "16r00E0"    16r00E0 " LATIN SMALL LETTER A WITH GRAVE " 
       "16r00E1"    16r00E1 " LATIN SMALL LETTER A WITH ACUTE " 
       "16r00E2"    16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
       "16r00E3"    16r0103 " LATIN SMALL LETTER A WITH BREVE " 
       "16r00E4"    16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS " 
       "16r00E5"    16r0107 " LATIN SMALL LETTER C WITH ACUTE " 
       "16r00E6"    16r00E6 " LATIN SMALL LETTER AE " 
       "16r00E7"    16r00E7 " LATIN SMALL LETTER C WITH CEDILLA " 
       "16r00E8"    16r00E8 " LATIN SMALL LETTER E WITH GRAVE " 
       "16r00E9"    16r00E9 " LATIN SMALL LETTER E WITH ACUTE " 
       "16r00EA"    16r00EA " LATIN SMALL LETTER E WITH CIRCUMFLEX " 
       "16r00EB"    16r00EB " LATIN SMALL LETTER E WITH DIAERESIS " 
       "16r00EC"    16r00EC " LATIN SMALL LETTER I WITH GRAVE " 
       "16r00ED"    16r00ED " LATIN SMALL LETTER I WITH ACUTE " 
       "16r00EE"    16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
       "16r00EF"    16r00EF " LATIN SMALL LETTER I WITH DIAERESIS " 
       "16r00F0"    16r0111 " LATIN SMALL LETTER D WITH STROKE " 
       "16r00F1"    16r0144 " LATIN SMALL LETTER N WITH ACUTE " 
       "16r00F2"    16r00F2 " LATIN SMALL LETTER O WITH GRAVE " 
       "16r00F3"    16r00F3 " LATIN SMALL LETTER O WITH ACUTE " 
       "16r00F4"    16r00F4 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
       "16r00F5"    16r0151 " LATIN SMALL LETTER O WITH DOUBLE ACUTE " 
       "16r00F6"    16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS " 
       "16r00F7"    16r015B " LATIN SMALL LETTER S WITH ACUTE " 
       "16r00F8"    16r0171 " LATIN SMALL LETTER U WITH DOUBLE ACUTE " 
       "16r00F9"    16r00F9 " LATIN SMALL LETTER U WITH GRAVE " 
       "16r00FA"    16r00FA " LATIN SMALL LETTER U WITH ACUTE " 
       "16r00FB"    16r00FB " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
       "16r00FC"    16r00FC " LATIN SMALL LETTER U WITH DIAERESIS " 
       "16r00FD"    16r0119 " LATIN SMALL LETTER E WITH OGONEK " 
       "16r00FE"    16r021B " LATIN SMALL LETTER T WITH COMMA BELOW " 
       "16r00FF"    16r00FF " LATIN SMALL LETTER Y WITH DIAERESIS " 
       ) at:(code - 16rA0).
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16rA0 ifTrue:[ ^ unicode ].
    unicode > 16r20AC ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r21B ifTrue:[
	unicode <= 16r17E ifTrue:[
	    unicode <= 16r101 ifTrue:[
		(#[
		   "16r00A1"    0 " invalid " 
		   "16r00A2"    0 " invalid " 
		   "16r00A3"    0 " invalid " 
		   "16r00A4"    0 " invalid " 
		   "16r00A5"    0 " invalid " 
		   "16r00A6"    0 " invalid " 
		   "16r00A7"    1 " SECTION SIGN " 
		   "16r00A8"    0 " invalid " 
		   "16r00A9"    1 " COPYRIGHT SIGN " 
		   "16r00AA"    0 " invalid " 
		   "16r00AB"    1 " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
		   "16r00AC"    0 " invalid " 
		   "16r00AD"    1 " SOFT HYPHEN " 
		   "16r00AE"    0 " invalid " 
		   "16r00AF"    0 " invalid " 
		   "16r00B0"    1 " DEGREE SIGN " 
		   "16r00B1"    1 " PLUS-MINUS SIGN " 
		   "16r00B2"    0 " invalid " 
		   "16r00B3"    0 " invalid " 
		   "16r00B4"    0 " invalid " 
		   "16r00B5"    0 " invalid " 
		   "16r00B6"    1 " PILCROW SIGN " 
		   "16r00B7"    1 " MIDDLE DOT " 
		   "16r00B8"    0 " invalid " 
		   "16r00B9"    0 " invalid " 
		   "16r00BA"    0 " invalid " 
		   "16r00BB"    1 " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
		   "16r00BC"    0 " invalid " 
		   "16r00BD"    0 " invalid " 
		   "16r00BE"    0 " invalid " 
		   "16r00BF"    0 " invalid " 
		   "16r00C0"    1 " LATIN CAPITAL LETTER A WITH GRAVE " 
		   "16r00C1"    1 " LATIN CAPITAL LETTER A WITH ACUTE " 
		   "16r00C2"    1 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
		   "16r00C3"    0 " invalid " 
		   "16r00C4"    1 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
		   "16r00C5"    0 " invalid " 
		   "16r00C6"    1 " LATIN CAPITAL LETTER AE " 
		   "16r00C7"    1 " LATIN CAPITAL LETTER C WITH CEDILLA " 
		   "16r00C8"    1 " LATIN CAPITAL LETTER E WITH GRAVE " 
		   "16r00C9"    1 " LATIN CAPITAL LETTER E WITH ACUTE " 
		   "16r00CA"    1 " LATIN CAPITAL LETTER E WITH CIRCUMFLEX " 
		   "16r00CB"    1 " LATIN CAPITAL LETTER E WITH DIAERESIS " 
		   "16r00CC"    1 " LATIN CAPITAL LETTER I WITH GRAVE " 
		   "16r00CD"    1 " LATIN CAPITAL LETTER I WITH ACUTE " 
		   "16r00CE"    1 " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
		   "16r00CF"    1 " LATIN CAPITAL LETTER I WITH DIAERESIS " 
		   "16r00D0"    0 " invalid " 
		   "16r00D1"    0 " invalid " 
		   "16r00D2"    1 " LATIN CAPITAL LETTER O WITH GRAVE " 
		   "16r00D3"    1 " LATIN CAPITAL LETTER O WITH ACUTE " 
		   "16r00D4"    1 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
		   "16r00D5"    0 " invalid " 
		   "16r00D6"    1 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
		   "16r00D7"    0 " invalid " 
		   "16r00D8"    0 " invalid " 
		   "16r00D9"    1 " LATIN CAPITAL LETTER U WITH GRAVE " 
		   "16r00DA"    1 " LATIN CAPITAL LETTER U WITH ACUTE " 
		   "16r00DB"    1 " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " 
		   "16r00DC"    1 " LATIN CAPITAL LETTER U WITH DIAERESIS " 
		   "16r00DD"    0 " invalid " 
		   "16r00DE"    0 " invalid " 
		   "16r00DF"    1 " LATIN SMALL LETTER SHARP S " 
		   "16r00E0"    1 " LATIN SMALL LETTER A WITH GRAVE " 
		   "16r00E1"    1 " LATIN SMALL LETTER A WITH ACUTE " 
		   "16r00E2"    1 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
		   "16r00E3"    0 " invalid " 
		   "16r00E4"    1 " LATIN SMALL LETTER A WITH DIAERESIS " 
		   "16r00E5"    0 " invalid " 
		   "16r00E6"    1 " LATIN SMALL LETTER AE " 
		   "16r00E7"    1 " LATIN SMALL LETTER C WITH CEDILLA " 
		   "16r00E8"    1 " LATIN SMALL LETTER E WITH GRAVE " 
		   "16r00E9"    1 " LATIN SMALL LETTER E WITH ACUTE " 
		   "16r00EA"    1 " LATIN SMALL LETTER E WITH CIRCUMFLEX " 
		   "16r00EB"    1 " LATIN SMALL LETTER E WITH DIAERESIS " 
		   "16r00EC"    1 " LATIN SMALL LETTER I WITH GRAVE " 
		   "16r00ED"    1 " LATIN SMALL LETTER I WITH ACUTE " 
		   "16r00EE"    1 " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
		   "16r00EF"    1 " LATIN SMALL LETTER I WITH DIAERESIS " 
		   "16r00F0"    0 " invalid " 
		   "16r00F1"    0 " invalid " 
		   "16r00F2"    1 " LATIN SMALL LETTER O WITH GRAVE " 
		   "16r00F3"    1 " LATIN SMALL LETTER O WITH ACUTE " 
		   "16r00F4"    1 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
		   "16r00F5"    0 " invalid " 
		   "16r00F6"    1 " LATIN SMALL LETTER O WITH DIAERESIS " 
		   "16r00F7"    0 " invalid " 
		   "16r00F8"    0 " invalid " 
		   "16r00F9"    1 " LATIN SMALL LETTER U WITH GRAVE " 
		   "16r00FA"    1 " LATIN SMALL LETTER U WITH ACUTE " 
		   "16r00FB"    1 " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
		   "16r00FC"    1 " LATIN SMALL LETTER U WITH DIAERESIS " 
		   "16r00FD"    0 " invalid " 
		   "16r00FE"    0 " invalid " 
		   "16r00FF"    1 " LATIN SMALL LETTER Y WITH DIAERESIS " 
		   "16r0100"    0 " invalid " 
		   "16r0101"    0 " invalid " 
		] at:(unicode - 160)) ~~ 0 ifTrue:[^ unicode].
		^ self encodingError.
	    ].
	    unicode <= 16r119 ifTrue:[
		[
		    |t|
		    t := #[
		       "16r0102"    16rC3 " LATIN CAPITAL LETTER A WITH BREVE " 
		       "16r0103"    16rE3 " LATIN SMALL LETTER A WITH BREVE " 
		       "16r0104"    16rA1 " LATIN CAPITAL LETTER A WITH OGONEK " 
		       "16r0105"    16rA2 " LATIN SMALL LETTER A WITH OGONEK " 
		       "16r0106"    16rC5 " LATIN CAPITAL LETTER C WITH ACUTE " 
		       "16r0107"    16rE5 " LATIN SMALL LETTER C WITH ACUTE " 
		       "16r0108"    16r00 " invalid " 
		       "16r0109"    16r00 " invalid " 
		       "16r010A"    16r00 " invalid " 
		       "16r010B"    16r00 " invalid " 
		       "16r010C"    16rB2 " LATIN CAPITAL LETTER C WITH CARON " 
		       "16r010D"    16rB9 " LATIN SMALL LETTER C WITH CARON " 
		       "16r010E"    16r00 " invalid " 
		       "16r010F"    16r00 " invalid " 
		       "16r0110"    16rD0 " LATIN CAPITAL LETTER D WITH STROKE " 
		       "16r0111"    16rF0 " LATIN SMALL LETTER D WITH STROKE " 
		       "16r0112"    16r00 " invalid " 
		       "16r0113"    16r00 " invalid " 
		       "16r0114"    16r00 " invalid " 
		       "16r0115"    16r00 " invalid " 
		       "16r0116"    16r00 " invalid " 
		       "16r0117"    16r00 " invalid " 
		       "16r0118"    16rDD " LATIN CAPITAL LETTER E WITH OGONEK " 
		       "16r0119"    16rFD " LATIN SMALL LETTER E WITH OGONEK " 
		       ] at:(unicode - 16r101).
		    t == 0 ifFalse:[^ t].
		    ^ self encodingError
		] value.
	    ].
	    unicode <= 16r140 ifTrue:[
		^ self encodingError.
	    ].
	    [
		|t|
		t := #[
		   "16r0141"    16rA3 " LATIN CAPITAL LETTER L WITH STROKE " 
		   "16r0142"    16rB3 " LATIN SMALL LETTER L WITH STROKE " 
		   "16r0143"    16rD1 " LATIN CAPITAL LETTER N WITH ACUTE " 
		   "16r0144"    16rF1 " LATIN SMALL LETTER N WITH ACUTE " 
		   "16r0145"    16r00 " invalid " 
		   "16r0146"    16r00 " invalid " 
		   "16r0147"    16r00 " invalid " 
		   "16r0148"    16r00 " invalid " 
		   "16r0149"    16r00 " invalid " 
		   "16r014A"    16r00 " invalid " 
		   "16r014B"    16r00 " invalid " 
		   "16r014C"    16r00 " invalid " 
		   "16r014D"    16r00 " invalid " 
		   "16r014E"    16r00 " invalid " 
		   "16r014F"    16r00 " invalid " 
		   "16r0150"    16rD5 " LATIN CAPITAL LETTER O WITH DOUBLE ACUTE " 
		   "16r0151"    16rF5 " LATIN SMALL LETTER O WITH DOUBLE ACUTE " 
		   "16r0152"    16rBC " LATIN CAPITAL LIGATURE OE " 
		   "16r0153"    16rBD " LATIN SMALL LIGATURE OE " 
		   "16r0154"    16r00 " invalid " 
		   "16r0155"    16r00 " invalid " 
		   "16r0156"    16r00 " invalid " 
		   "16r0157"    16r00 " invalid " 
		   "16r0158"    16r00 " invalid " 
		   "16r0159"    16r00 " invalid " 
		   "16r015A"    16rD7 " LATIN CAPITAL LETTER S WITH ACUTE " 
		   "16r015B"    16rF7 " LATIN SMALL LETTER S WITH ACUTE " 
		   "16r015C"    16r00 " invalid " 
		   "16r015D"    16r00 " invalid " 
		   "16r015E"    16r00 " invalid " 
		   "16r015F"    16r00 " invalid " 
		   "16r0160"    16rA6 " LATIN CAPITAL LETTER S WITH CARON " 
		   "16r0161"    16rA8 " LATIN SMALL LETTER S WITH CARON " 
		   "16r0162"    16r00 " invalid " 
		   "16r0163"    16r00 " invalid " 
		   "16r0164"    16r00 " invalid " 
		   "16r0165"    16r00 " invalid " 
		   "16r0166"    16r00 " invalid " 
		   "16r0167"    16r00 " invalid " 
		   "16r0168"    16r00 " invalid " 
		   "16r0169"    16r00 " invalid " 
		   "16r016A"    16r00 " invalid " 
		   "16r016B"    16r00 " invalid " 
		   "16r016C"    16r00 " invalid " 
		   "16r016D"    16r00 " invalid " 
		   "16r016E"    16r00 " invalid " 
		   "16r016F"    16r00 " invalid " 
		   "16r0170"    16rD8 " LATIN CAPITAL LETTER U WITH DOUBLE ACUTE " 
		   "16r0171"    16rF8 " LATIN SMALL LETTER U WITH DOUBLE ACUTE " 
		   "16r0172"    16r00 " invalid " 
		   "16r0173"    16r00 " invalid " 
		   "16r0174"    16r00 " invalid " 
		   "16r0175"    16r00 " invalid " 
		   "16r0176"    16r00 " invalid " 
		   "16r0177"    16r00 " invalid " 
		   "16r0178"    16rBE " LATIN CAPITAL LETTER Y WITH DIAERESIS " 
		   "16r0179"    16rAC " LATIN CAPITAL LETTER Z WITH ACUTE " 
		   "16r017A"    16rAE " LATIN SMALL LETTER Z WITH ACUTE " 
		   "16r017B"    16rAF " LATIN CAPITAL LETTER Z WITH DOT ABOVE " 
		   "16r017C"    16rBF " LATIN SMALL LETTER Z WITH DOT ABOVE " 
		   "16r017D"    16rB4 " LATIN CAPITAL LETTER Z WITH CARON " 
		   "16r017E"    16rB8 " LATIN SMALL LETTER Z WITH CARON " 
		   ] at:(unicode - 16r140).
		t == 0 ifFalse:[^ t].
		^ self encodingError
	    ] value.
	].
	unicode <= 16r217 ifTrue:[
	    ^ self encodingError.
	].
	^ #[
	   "16r0218"    16rAA " LATIN CAPITAL LETTER S WITH COMMA BELOW " 
	   "16r0219"    16rBA " LATIN SMALL LETTER S WITH COMMA BELOW " 
	   "16r021A"    16rDE " LATIN CAPITAL LETTER T WITH COMMA BELOW " 
	   "16r021B"    16rFE " LATIN SMALL LETTER T WITH COMMA BELOW " 
	   ] at:(unicode - 16r217).
    ].
    unicode <= 16r201C ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r201E ifTrue:[
	^ #[
	   "16r201D"    16rB5 " RIGHT DOUBLE QUOTATION MARK " 
	   "16r201E"    16rA5 " DOUBLE LOW-9 QUOTATION MARK " 
	   ] at:(unicode - 16r201C).
    ].
    unicode <= 16r20AB ifTrue:[
	^ self encodingError.
    ].
    ^  "16r20AC" 16r00A4 " EURO SIGN " 
! !

!CharacterEncoder::ISO8859_2 class methodsFor:'encoding & decoding'!

mapFileURL1_relativePathName
    ^ 'ISO8859/8859-2.TXT'

    "
     self generateCode
    "
! !

!CharacterEncoder::ISO8859_2 class methodsFor:'mapping'!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-2.TXT

#
#       Name:             ISO 8859-2:1999 to Unicode
#       Unicode version:  3.0
#       Table version:    1.0
#       Table format:     Format A
#       Date:             1999 July 27
#       Authors:          Ken Whistler <kenw@sybase.com>
#
#       Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ISO/IEC 8859-2:1999 characters map into Unicode.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ISO/IEC 8859-2 code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ISO/IEC 8859-2 order.
#
#       Version history
#       1.0 version updates 0.1 version by adding mappings for all
#       control characters.
#
#       Updated versions of this file may be found in:
#               <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
#       Any comments or problems, contact <errata@unicode.org>
#       Please note that <errata@unicode.org> is an archival address;
#       notices will be checked, but do not expect an immediate response.
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x0080  #       <control>
0x81    0x0081  #       <control>
0x82    0x0082  #       <control>
0x83    0x0083  #       <control>
0x84    0x0084  #       <control>
0x85    0x0085  #       <control>
0x86    0x0086  #       <control>
0x87    0x0087  #       <control>
0x88    0x0088  #       <control>
0x89    0x0089  #       <control>
0x8A    0x008A  #       <control>
0x8B    0x008B  #       <control>
0x8C    0x008C  #       <control>
0x8D    0x008D  #       <control>
0x8E    0x008E  #       <control>
0x8F    0x008F  #       <control>
0x90    0x0090  #       <control>
0x91    0x0091  #       <control>
0x92    0x0092  #       <control>
0x93    0x0093  #       <control>
0x94    0x0094  #       <control>
0x95    0x0095  #       <control>
0x96    0x0096  #       <control>
0x97    0x0097  #       <control>
0x98    0x0098  #       <control>
0x99    0x0099  #       <control>
0x9A    0x009A  #       <control>
0x9B    0x009B  #       <control>
0x9C    0x009C  #       <control>
0x9D    0x009D  #       <control>
0x9E    0x009E  #       <control>
0x9F    0x009F  #       <control>
0xA0    0x00A0  #       NO-BREAK SPACE
0xA1    0x0104  #       LATIN CAPITAL LETTER A WITH OGONEK
0xA2    0x02D8  #       BREVE
0xA3    0x0141  #       LATIN CAPITAL LETTER L WITH STROKE
0xA4    0x00A4  #       CURRENCY SIGN
0xA5    0x013D  #       LATIN CAPITAL LETTER L WITH CARON
0xA6    0x015A  #       LATIN CAPITAL LETTER S WITH ACUTE
0xA7    0x00A7  #       SECTION SIGN
0xA8    0x00A8  #       DIAERESIS
0xA9    0x0160  #       LATIN CAPITAL LETTER S WITH CARON
0xAA    0x015E  #       LATIN CAPITAL LETTER S WITH CEDILLA
0xAB    0x0164  #       LATIN CAPITAL LETTER T WITH CARON
0xAC    0x0179  #       LATIN CAPITAL LETTER Z WITH ACUTE
0xAD    0x00AD  #       SOFT HYPHEN
0xAE    0x017D  #       LATIN CAPITAL LETTER Z WITH CARON
0xAF    0x017B  #       LATIN CAPITAL LETTER Z WITH DOT ABOVE
0xB0    0x00B0  #       DEGREE SIGN
0xB1    0x0105  #       LATIN SMALL LETTER A WITH OGONEK
0xB2    0x02DB  #       OGONEK
0xB3    0x0142  #       LATIN SMALL LETTER L WITH STROKE
0xB4    0x00B4  #       ACUTE ACCENT
0xB5    0x013E  #       LATIN SMALL LETTER L WITH CARON
0xB6    0x015B  #       LATIN SMALL LETTER S WITH ACUTE
0xB7    0x02C7  #       CARON
0xB8    0x00B8  #       CEDILLA
0xB9    0x0161  #       LATIN SMALL LETTER S WITH CARON
0xBA    0x015F  #       LATIN SMALL LETTER S WITH CEDILLA
0xBB    0x0165  #       LATIN SMALL LETTER T WITH CARON
0xBC    0x017A  #       LATIN SMALL LETTER Z WITH ACUTE
0xBD    0x02DD  #       DOUBLE ACUTE ACCENT
0xBE    0x017E  #       LATIN SMALL LETTER Z WITH CARON
0xBF    0x017C  #       LATIN SMALL LETTER Z WITH DOT ABOVE
0xC0    0x0154  #       LATIN CAPITAL LETTER R WITH ACUTE
0xC1    0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE
0xC2    0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xC3    0x0102  #       LATIN CAPITAL LETTER A WITH BREVE
0xC4    0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS
0xC5    0x0139  #       LATIN CAPITAL LETTER L WITH ACUTE
0xC6    0x0106  #       LATIN CAPITAL LETTER C WITH ACUTE
0xC7    0x00C7  #       LATIN CAPITAL LETTER C WITH CEDILLA
0xC8    0x010C  #       LATIN CAPITAL LETTER C WITH CARON
0xC9    0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE
0xCA    0x0118  #       LATIN CAPITAL LETTER E WITH OGONEK
0xCB    0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS
0xCC    0x011A  #       LATIN CAPITAL LETTER E WITH CARON
0xCD    0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE
0xCE    0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xCF    0x010E  #       LATIN CAPITAL LETTER D WITH CARON
0xD0    0x0110  #       LATIN CAPITAL LETTER D WITH STROKE
0xD1    0x0143  #       LATIN CAPITAL LETTER N WITH ACUTE
0xD2    0x0147  #       LATIN CAPITAL LETTER N WITH CARON
0xD3    0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE
0xD4    0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xD5    0x0150  #       LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
0xD6    0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS
0xD7    0x00D7  #       MULTIPLICATION SIGN
0xD8    0x0158  #       LATIN CAPITAL LETTER R WITH CARON
0xD9    0x016E  #       LATIN CAPITAL LETTER U WITH RING ABOVE
0xDA    0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE
0xDB    0x0170  #       LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
0xDC    0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS
0xDD    0x00DD  #       LATIN CAPITAL LETTER Y WITH ACUTE
0xDE    0x0162  #       LATIN CAPITAL LETTER T WITH CEDILLA
0xDF    0x00DF  #       LATIN SMALL LETTER SHARP S
0xE0    0x0155  #       LATIN SMALL LETTER R WITH ACUTE
0xE1    0x00E1  #       LATIN SMALL LETTER A WITH ACUTE
0xE2    0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX
0xE3    0x0103  #       LATIN SMALL LETTER A WITH BREVE
0xE4    0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS
0xE5    0x013A  #       LATIN SMALL LETTER L WITH ACUTE
0xE6    0x0107  #       LATIN SMALL LETTER C WITH ACUTE
0xE7    0x00E7  #       LATIN SMALL LETTER C WITH CEDILLA
0xE8    0x010D  #       LATIN SMALL LETTER C WITH CARON
0xE9    0x00E9  #       LATIN SMALL LETTER E WITH ACUTE
0xEA    0x0119  #       LATIN SMALL LETTER E WITH OGONEK
0xEB    0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS
0xEC    0x011B  #       LATIN SMALL LETTER E WITH CARON
0xED    0x00ED  #       LATIN SMALL LETTER I WITH ACUTE
0xEE    0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX
0xEF    0x010F  #       LATIN SMALL LETTER D WITH CARON
0xF0    0x0111  #       LATIN SMALL LETTER D WITH STROKE
0xF1    0x0144  #       LATIN SMALL LETTER N WITH ACUTE
0xF2    0x0148  #       LATIN SMALL LETTER N WITH CARON
0xF3    0x00F3  #       LATIN SMALL LETTER O WITH ACUTE
0xF4    0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX
0xF5    0x0151  #       LATIN SMALL LETTER O WITH DOUBLE ACUTE
0xF6    0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS
0xF7    0x00F7  #       DIVISION SIGN
0xF8    0x0159  #       LATIN SMALL LETTER R WITH CARON
0xF9    0x016F  #       LATIN SMALL LETTER U WITH RING ABOVE
0xFA    0x00FA  #       LATIN SMALL LETTER U WITH ACUTE
0xFB    0x0171  #       LATIN SMALL LETTER U WITH DOUBLE ACUTE
0xFC    0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS
0xFD    0x00FD  #       LATIN SMALL LETTER Y WITH ACUTE
0xFE    0x0163  #       LATIN SMALL LETTER T WITH CEDILLA
0xFF    0x02D9  #       DOT ABOVE

"
! !

!CharacterEncoder::ISO8859_2 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-2' 'iso-8859-2' 'latin2' 'latin-2' 'iso-ir-101')
!

userFriendlyNameOfEncoding
    ^ 'Central European'
! !

!CharacterEncoder::ISO8859_2 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16rA0 ifTrue:[ ^ code ].
    code > 16rFF ifTrue:[
	^ self decodingError.
    ].
    ^ #(
       "16r00A1"    16r0104 " LATIN CAPITAL LETTER A WITH OGONEK " 
       "16r00A2"    16r02D8 " BREVE " 
       "16r00A3"    16r0141 " LATIN CAPITAL LETTER L WITH STROKE " 
       "16r00A4"    16r00A4 " CURRENCY SIGN " 
       "16r00A5"    16r013D " LATIN CAPITAL LETTER L WITH CARON " 
       "16r00A6"    16r015A " LATIN CAPITAL LETTER S WITH ACUTE " 
       "16r00A7"    16r00A7 " SECTION SIGN " 
       "16r00A8"    16r00A8 " DIAERESIS " 
       "16r00A9"    16r0160 " LATIN CAPITAL LETTER S WITH CARON " 
       "16r00AA"    16r015E " LATIN CAPITAL LETTER S WITH CEDILLA " 
       "16r00AB"    16r0164 " LATIN CAPITAL LETTER T WITH CARON " 
       "16r00AC"    16r0179 " LATIN CAPITAL LETTER Z WITH ACUTE " 
       "16r00AD"    16r00AD " SOFT HYPHEN " 
       "16r00AE"    16r017D " LATIN CAPITAL LETTER Z WITH CARON " 
       "16r00AF"    16r017B " LATIN CAPITAL LETTER Z WITH DOT ABOVE " 
       "16r00B0"    16r00B0 " DEGREE SIGN " 
       "16r00B1"    16r0105 " LATIN SMALL LETTER A WITH OGONEK " 
       "16r00B2"    16r02DB " OGONEK " 
       "16r00B3"    16r0142 " LATIN SMALL LETTER L WITH STROKE " 
       "16r00B4"    16r00B4 " ACUTE ACCENT " 
       "16r00B5"    16r013E " LATIN SMALL LETTER L WITH CARON " 
       "16r00B6"    16r015B " LATIN SMALL LETTER S WITH ACUTE " 
       "16r00B7"    16r02C7 " CARON " 
       "16r00B8"    16r00B8 " CEDILLA " 
       "16r00B9"    16r0161 " LATIN SMALL LETTER S WITH CARON " 
       "16r00BA"    16r015F " LATIN SMALL LETTER S WITH CEDILLA " 
       "16r00BB"    16r0165 " LATIN SMALL LETTER T WITH CARON " 
       "16r00BC"    16r017A " LATIN SMALL LETTER Z WITH ACUTE " 
       "16r00BD"    16r02DD " DOUBLE ACUTE ACCENT " 
       "16r00BE"    16r017E " LATIN SMALL LETTER Z WITH CARON " 
       "16r00BF"    16r017C " LATIN SMALL LETTER Z WITH DOT ABOVE " 
       "16r00C0"    16r0154 " LATIN CAPITAL LETTER R WITH ACUTE " 
       "16r00C1"    16r00C1 " LATIN CAPITAL LETTER A WITH ACUTE " 
       "16r00C2"    16r00C2 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
       "16r00C3"    16r0102 " LATIN CAPITAL LETTER A WITH BREVE " 
       "16r00C4"    16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
       "16r00C5"    16r0139 " LATIN CAPITAL LETTER L WITH ACUTE " 
       "16r00C6"    16r0106 " LATIN CAPITAL LETTER C WITH ACUTE " 
       "16r00C7"    16r00C7 " LATIN CAPITAL LETTER C WITH CEDILLA " 
       "16r00C8"    16r010C " LATIN CAPITAL LETTER C WITH CARON " 
       "16r00C9"    16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE " 
       "16r00CA"    16r0118 " LATIN CAPITAL LETTER E WITH OGONEK " 
       "16r00CB"    16r00CB " LATIN CAPITAL LETTER E WITH DIAERESIS " 
       "16r00CC"    16r011A " LATIN CAPITAL LETTER E WITH CARON " 
       "16r00CD"    16r00CD " LATIN CAPITAL LETTER I WITH ACUTE " 
       "16r00CE"    16r00CE " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
       "16r00CF"    16r010E " LATIN CAPITAL LETTER D WITH CARON " 
       "16r00D0"    16r0110 " LATIN CAPITAL LETTER D WITH STROKE " 
       "16r00D1"    16r0143 " LATIN CAPITAL LETTER N WITH ACUTE " 
       "16r00D2"    16r0147 " LATIN CAPITAL LETTER N WITH CARON " 
       "16r00D3"    16r00D3 " LATIN CAPITAL LETTER O WITH ACUTE " 
       "16r00D4"    16r00D4 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
       "16r00D5"    16r0150 " LATIN CAPITAL LETTER O WITH DOUBLE ACUTE " 
       "16r00D6"    16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
       "16r00D7"    16r00D7 " MULTIPLICATION SIGN " 
       "16r00D8"    16r0158 " LATIN CAPITAL LETTER R WITH CARON " 
       "16r00D9"    16r016E " LATIN CAPITAL LETTER U WITH RING ABOVE " 
       "16r00DA"    16r00DA " LATIN CAPITAL LETTER U WITH ACUTE " 
       "16r00DB"    16r0170 " LATIN CAPITAL LETTER U WITH DOUBLE ACUTE " 
       "16r00DC"    16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS " 
       "16r00DD"    16r00DD " LATIN CAPITAL LETTER Y WITH ACUTE " 
       "16r00DE"    16r0162 " LATIN CAPITAL LETTER T WITH CEDILLA " 
       "16r00DF"    16r00DF " LATIN SMALL LETTER SHARP S " 
       "16r00E0"    16r0155 " LATIN SMALL LETTER R WITH ACUTE " 
       "16r00E1"    16r00E1 " LATIN SMALL LETTER A WITH ACUTE " 
       "16r00E2"    16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
       "16r00E3"    16r0103 " LATIN SMALL LETTER A WITH BREVE " 
       "16r00E4"    16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS " 
       "16r00E5"    16r013A " LATIN SMALL LETTER L WITH ACUTE " 
       "16r00E6"    16r0107 " LATIN SMALL LETTER C WITH ACUTE " 
       "16r00E7"    16r00E7 " LATIN SMALL LETTER C WITH CEDILLA " 
       "16r00E8"    16r010D " LATIN SMALL LETTER C WITH CARON " 
       "16r00E9"    16r00E9 " LATIN SMALL LETTER E WITH ACUTE " 
       "16r00EA"    16r0119 " LATIN SMALL LETTER E WITH OGONEK " 
       "16r00EB"    16r00EB " LATIN SMALL LETTER E WITH DIAERESIS " 
       "16r00EC"    16r011B " LATIN SMALL LETTER E WITH CARON " 
       "16r00ED"    16r00ED " LATIN SMALL LETTER I WITH ACUTE " 
       "16r00EE"    16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
       "16r00EF"    16r010F " LATIN SMALL LETTER D WITH CARON " 
       "16r00F0"    16r0111 " LATIN SMALL LETTER D WITH STROKE " 
       "16r00F1"    16r0144 " LATIN SMALL LETTER N WITH ACUTE " 
       "16r00F2"    16r0148 " LATIN SMALL LETTER N WITH CARON " 
       "16r00F3"    16r00F3 " LATIN SMALL LETTER O WITH ACUTE " 
       "16r00F4"    16r00F4 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
       "16r00F5"    16r0151 " LATIN SMALL LETTER O WITH DOUBLE ACUTE " 
       "16r00F6"    16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS " 
       "16r00F7"    16r00F7 " DIVISION SIGN " 
       "16r00F8"    16r0159 " LATIN SMALL LETTER R WITH CARON " 
       "16r00F9"    16r016F " LATIN SMALL LETTER U WITH RING ABOVE " 
       "16r00FA"    16r00FA " LATIN SMALL LETTER U WITH ACUTE " 
       "16r00FB"    16r0171 " LATIN SMALL LETTER U WITH DOUBLE ACUTE " 
       "16r00FC"    16r00FC " LATIN SMALL LETTER U WITH DIAERESIS " 
       "16r00FD"    16r00FD " LATIN SMALL LETTER Y WITH ACUTE " 
       "16r00FE"    16r0163 " LATIN SMALL LETTER T WITH CEDILLA " 
       "16r00FF"    16r02D9 " DOT ABOVE " 
       ) at:(code - 16rA0).
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16rA0 ifTrue:[ ^ unicode ].
    unicode > 16r2DD ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r17E ifTrue:[
	unicode <= 16r101 ifTrue:[
	    (#[
	       "16r00A1"    0 " invalid " 
	       "16r00A2"    0 " invalid " 
	       "16r00A3"    0 " invalid " 
	       "16r00A4"    1 " CURRENCY SIGN " 
	       "16r00A5"    0 " invalid " 
	       "16r00A6"    0 " invalid " 
	       "16r00A7"    1 " SECTION SIGN " 
	       "16r00A8"    1 " DIAERESIS " 
	       "16r00A9"    0 " invalid " 
	       "16r00AA"    0 " invalid " 
	       "16r00AB"    0 " invalid " 
	       "16r00AC"    0 " invalid " 
	       "16r00AD"    1 " SOFT HYPHEN " 
	       "16r00AE"    0 " invalid " 
	       "16r00AF"    0 " invalid " 
	       "16r00B0"    1 " DEGREE SIGN " 
	       "16r00B1"    0 " invalid " 
	       "16r00B2"    0 " invalid " 
	       "16r00B3"    0 " invalid " 
	       "16r00B4"    1 " ACUTE ACCENT " 
	       "16r00B5"    0 " invalid " 
	       "16r00B6"    0 " invalid " 
	       "16r00B7"    0 " invalid " 
	       "16r00B8"    1 " CEDILLA " 
	       "16r00B9"    0 " invalid " 
	       "16r00BA"    0 " invalid " 
	       "16r00BB"    0 " invalid " 
	       "16r00BC"    0 " invalid " 
	       "16r00BD"    0 " invalid " 
	       "16r00BE"    0 " invalid " 
	       "16r00BF"    0 " invalid " 
	       "16r00C0"    0 " invalid " 
	       "16r00C1"    1 " LATIN CAPITAL LETTER A WITH ACUTE " 
	       "16r00C2"    1 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
	       "16r00C3"    0 " invalid " 
	       "16r00C4"    1 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
	       "16r00C5"    0 " invalid " 
	       "16r00C6"    0 " invalid " 
	       "16r00C7"    1 " LATIN CAPITAL LETTER C WITH CEDILLA " 
	       "16r00C8"    0 " invalid " 
	       "16r00C9"    1 " LATIN CAPITAL LETTER E WITH ACUTE " 
	       "16r00CA"    0 " invalid " 
	       "16r00CB"    1 " LATIN CAPITAL LETTER E WITH DIAERESIS " 
	       "16r00CC"    0 " invalid " 
	       "16r00CD"    1 " LATIN CAPITAL LETTER I WITH ACUTE " 
	       "16r00CE"    1 " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
	       "16r00CF"    0 " invalid " 
	       "16r00D0"    0 " invalid " 
	       "16r00D1"    0 " invalid " 
	       "16r00D2"    0 " invalid " 
	       "16r00D3"    1 " LATIN CAPITAL LETTER O WITH ACUTE " 
	       "16r00D4"    1 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
	       "16r00D5"    0 " invalid " 
	       "16r00D6"    1 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
	       "16r00D7"    1 " MULTIPLICATION SIGN " 
	       "16r00D8"    0 " invalid " 
	       "16r00D9"    0 " invalid " 
	       "16r00DA"    1 " LATIN CAPITAL LETTER U WITH ACUTE " 
	       "16r00DB"    0 " invalid " 
	       "16r00DC"    1 " LATIN CAPITAL LETTER U WITH DIAERESIS " 
	       "16r00DD"    1 " LATIN CAPITAL LETTER Y WITH ACUTE " 
	       "16r00DE"    0 " invalid " 
	       "16r00DF"    1 " LATIN SMALL LETTER SHARP S " 
	       "16r00E0"    0 " invalid " 
	       "16r00E1"    1 " LATIN SMALL LETTER A WITH ACUTE " 
	       "16r00E2"    1 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
	       "16r00E3"    0 " invalid " 
	       "16r00E4"    1 " LATIN SMALL LETTER A WITH DIAERESIS " 
	       "16r00E5"    0 " invalid " 
	       "16r00E6"    0 " invalid " 
	       "16r00E7"    1 " LATIN SMALL LETTER C WITH CEDILLA " 
	       "16r00E8"    0 " invalid " 
	       "16r00E9"    1 " LATIN SMALL LETTER E WITH ACUTE " 
	       "16r00EA"    0 " invalid " 
	       "16r00EB"    1 " LATIN SMALL LETTER E WITH DIAERESIS " 
	       "16r00EC"    0 " invalid " 
	       "16r00ED"    1 " LATIN SMALL LETTER I WITH ACUTE " 
	       "16r00EE"    1 " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
	       "16r00EF"    0 " invalid " 
	       "16r00F0"    0 " invalid " 
	       "16r00F1"    0 " invalid " 
	       "16r00F2"    0 " invalid " 
	       "16r00F3"    1 " LATIN SMALL LETTER O WITH ACUTE " 
	       "16r00F4"    1 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
	       "16r00F5"    0 " invalid " 
	       "16r00F6"    1 " LATIN SMALL LETTER O WITH DIAERESIS " 
	       "16r00F7"    1 " DIVISION SIGN " 
	       "16r00F8"    0 " invalid " 
	       "16r00F9"    0 " invalid " 
	       "16r00FA"    1 " LATIN SMALL LETTER U WITH ACUTE " 
	       "16r00FB"    0 " invalid " 
	       "16r00FC"    1 " LATIN SMALL LETTER U WITH DIAERESIS " 
	       "16r00FD"    1 " LATIN SMALL LETTER Y WITH ACUTE " 
	       "16r00FE"    0 " invalid " 
	       "16r00FF"    0 " invalid " 
	       "16r0100"    0 " invalid " 
	       "16r0101"    0 " invalid " 
	    ] at:(unicode - 160)) ~~ 0 ifTrue:[^ unicode].
	    ^ self encodingError.
	].
	[
	    |t|
	    t := #[
	       "16r0102"    16rC3 " LATIN CAPITAL LETTER A WITH BREVE " 
	       "16r0103"    16rE3 " LATIN SMALL LETTER A WITH BREVE " 
	       "16r0104"    16rA1 " LATIN CAPITAL LETTER A WITH OGONEK " 
	       "16r0105"    16rB1 " LATIN SMALL LETTER A WITH OGONEK " 
	       "16r0106"    16rC6 " LATIN CAPITAL LETTER C WITH ACUTE " 
	       "16r0107"    16rE6 " LATIN SMALL LETTER C WITH ACUTE " 
	       "16r0108"    16r00 " invalid " 
	       "16r0109"    16r00 " invalid " 
	       "16r010A"    16r00 " invalid " 
	       "16r010B"    16r00 " invalid " 
	       "16r010C"    16rC8 " LATIN CAPITAL LETTER C WITH CARON " 
	       "16r010D"    16rE8 " LATIN SMALL LETTER C WITH CARON " 
	       "16r010E"    16rCF " LATIN CAPITAL LETTER D WITH CARON " 
	       "16r010F"    16rEF " LATIN SMALL LETTER D WITH CARON " 
	       "16r0110"    16rD0 " LATIN CAPITAL LETTER D WITH STROKE " 
	       "16r0111"    16rF0 " LATIN SMALL LETTER D WITH STROKE " 
	       "16r0112"    16r00 " invalid " 
	       "16r0113"    16r00 " invalid " 
	       "16r0114"    16r00 " invalid " 
	       "16r0115"    16r00 " invalid " 
	       "16r0116"    16r00 " invalid " 
	       "16r0117"    16r00 " invalid " 
	       "16r0118"    16rCA " LATIN CAPITAL LETTER E WITH OGONEK " 
	       "16r0119"    16rEA " LATIN SMALL LETTER E WITH OGONEK " 
	       "16r011A"    16rCC " LATIN CAPITAL LETTER E WITH CARON " 
	       "16r011B"    16rEC " LATIN SMALL LETTER E WITH CARON " 
	       "16r011C"    16r00 " invalid " 
	       "16r011D"    16r00 " invalid " 
	       "16r011E"    16r00 " invalid " 
	       "16r011F"    16r00 " invalid " 
	       "16r0120"    16r00 " invalid " 
	       "16r0121"    16r00 " invalid " 
	       "16r0122"    16r00 " invalid " 
	       "16r0123"    16r00 " invalid " 
	       "16r0124"    16r00 " invalid " 
	       "16r0125"    16r00 " invalid " 
	       "16r0126"    16r00 " invalid " 
	       "16r0127"    16r00 " invalid " 
	       "16r0128"    16r00 " invalid " 
	       "16r0129"    16r00 " invalid " 
	       "16r012A"    16r00 " invalid " 
	       "16r012B"    16r00 " invalid " 
	       "16r012C"    16r00 " invalid " 
	       "16r012D"    16r00 " invalid " 
	       "16r012E"    16r00 " invalid " 
	       "16r012F"    16r00 " invalid " 
	       "16r0130"    16r00 " invalid " 
	       "16r0131"    16r00 " invalid " 
	       "16r0132"    16r00 " invalid " 
	       "16r0133"    16r00 " invalid " 
	       "16r0134"    16r00 " invalid " 
	       "16r0135"    16r00 " invalid " 
	       "16r0136"    16r00 " invalid " 
	       "16r0137"    16r00 " invalid " 
	       "16r0138"    16r00 " invalid " 
	       "16r0139"    16rC5 " LATIN CAPITAL LETTER L WITH ACUTE " 
	       "16r013A"    16rE5 " LATIN SMALL LETTER L WITH ACUTE " 
	       "16r013B"    16r00 " invalid " 
	       "16r013C"    16r00 " invalid " 
	       "16r013D"    16rA5 " LATIN CAPITAL LETTER L WITH CARON " 
	       "16r013E"    16rB5 " LATIN SMALL LETTER L WITH CARON " 
	       "16r013F"    16r00 " invalid " 
	       "16r0140"    16r00 " invalid " 
	       "16r0141"    16rA3 " LATIN CAPITAL LETTER L WITH STROKE " 
	       "16r0142"    16rB3 " LATIN SMALL LETTER L WITH STROKE " 
	       "16r0143"    16rD1 " LATIN CAPITAL LETTER N WITH ACUTE " 
	       "16r0144"    16rF1 " LATIN SMALL LETTER N WITH ACUTE " 
	       "16r0145"    16r00 " invalid " 
	       "16r0146"    16r00 " invalid " 
	       "16r0147"    16rD2 " LATIN CAPITAL LETTER N WITH CARON " 
	       "16r0148"    16rF2 " LATIN SMALL LETTER N WITH CARON " 
	       "16r0149"    16r00 " invalid " 
	       "16r014A"    16r00 " invalid " 
	       "16r014B"    16r00 " invalid " 
	       "16r014C"    16r00 " invalid " 
	       "16r014D"    16r00 " invalid " 
	       "16r014E"    16r00 " invalid " 
	       "16r014F"    16r00 " invalid " 
	       "16r0150"    16rD5 " LATIN CAPITAL LETTER O WITH DOUBLE ACUTE " 
	       "16r0151"    16rF5 " LATIN SMALL LETTER O WITH DOUBLE ACUTE " 
	       "16r0152"    16r00 " invalid " 
	       "16r0153"    16r00 " invalid " 
	       "16r0154"    16rC0 " LATIN CAPITAL LETTER R WITH ACUTE " 
	       "16r0155"    16rE0 " LATIN SMALL LETTER R WITH ACUTE " 
	       "16r0156"    16r00 " invalid " 
	       "16r0157"    16r00 " invalid " 
	       "16r0158"    16rD8 " LATIN CAPITAL LETTER R WITH CARON " 
	       "16r0159"    16rF8 " LATIN SMALL LETTER R WITH CARON " 
	       "16r015A"    16rA6 " LATIN CAPITAL LETTER S WITH ACUTE " 
	       "16r015B"    16rB6 " LATIN SMALL LETTER S WITH ACUTE " 
	       "16r015C"    16r00 " invalid " 
	       "16r015D"    16r00 " invalid " 
	       "16r015E"    16rAA " LATIN CAPITAL LETTER S WITH CEDILLA " 
	       "16r015F"    16rBA " LATIN SMALL LETTER S WITH CEDILLA " 
	       "16r0160"    16rA9 " LATIN CAPITAL LETTER S WITH CARON " 
	       "16r0161"    16rB9 " LATIN SMALL LETTER S WITH CARON " 
	       "16r0162"    16rDE " LATIN CAPITAL LETTER T WITH CEDILLA " 
	       "16r0163"    16rFE " LATIN SMALL LETTER T WITH CEDILLA " 
	       "16r0164"    16rAB " LATIN CAPITAL LETTER T WITH CARON " 
	       "16r0165"    16rBB " LATIN SMALL LETTER T WITH CARON " 
	       "16r0166"    16r00 " invalid " 
	       "16r0167"    16r00 " invalid " 
	       "16r0168"    16r00 " invalid " 
	       "16r0169"    16r00 " invalid " 
	       "16r016A"    16r00 " invalid " 
	       "16r016B"    16r00 " invalid " 
	       "16r016C"    16r00 " invalid " 
	       "16r016D"    16r00 " invalid " 
	       "16r016E"    16rD9 " LATIN CAPITAL LETTER U WITH RING ABOVE " 
	       "16r016F"    16rF9 " LATIN SMALL LETTER U WITH RING ABOVE " 
	       "16r0170"    16rDB " LATIN CAPITAL LETTER U WITH DOUBLE ACUTE " 
	       "16r0171"    16rFB " LATIN SMALL LETTER U WITH DOUBLE ACUTE " 
	       "16r0172"    16r00 " invalid " 
	       "16r0173"    16r00 " invalid " 
	       "16r0174"    16r00 " invalid " 
	       "16r0175"    16r00 " invalid " 
	       "16r0176"    16r00 " invalid " 
	       "16r0177"    16r00 " invalid " 
	       "16r0178"    16r00 " invalid " 
	       "16r0179"    16rAC " LATIN CAPITAL LETTER Z WITH ACUTE " 
	       "16r017A"    16rBC " LATIN SMALL LETTER Z WITH ACUTE " 
	       "16r017B"    16rAF " LATIN CAPITAL LETTER Z WITH DOT ABOVE " 
	       "16r017C"    16rBF " LATIN SMALL LETTER Z WITH DOT ABOVE " 
	       "16r017D"    16rAE " LATIN CAPITAL LETTER Z WITH CARON " 
	       "16r017E"    16rBE " LATIN SMALL LETTER Z WITH CARON " 
	       ] at:(unicode - 16r101).
	    t == 0 ifFalse:[^ t].
	    ^ self encodingError
	] value.
    ].
    unicode <= 16r2C6 ifTrue:[
	^ self encodingError.
    ].
    unicode == 16r2C7 ifTrue:[
	^  "16r02C7" 16r00B7 " CARON " 
    ].
    unicode <= 16r2D7 ifTrue:[
	^ self encodingError.
    ].
    [
	|t|
	t := #[
	   "16r02D8"    16rA2 " BREVE " 
	   "16r02D9"    16rFF " DOT ABOVE " 
	   "16r02DA"    16r00 " invalid " 
	   "16r02DB"    16rB2 " OGONEK " 
	   "16r02DC"    16r00 " invalid " 
	   "16r02DD"    16rBD " DOUBLE ACUTE ACCENT " 
	   ] at:(unicode - 16r2D7).
	t == 0 ifFalse:[^ t].
	^ self encodingError
    ] value.
! !

!CharacterEncoder::ISO8859_3 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'ISO8859/8859-3.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-3.TXT

#
#       Name:             ISO/IEC 8859-3:1999 to Unicode
#       Unicode version:  3.0
#       Table version:    1.0
#       Table format:     Format A
#       Date:             1999 July 27
#       Authors:          Ken Whistler <kenw@sybase.com>
#
#       Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ISO/IEC 8859-3:1999 characters map into Unicode.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ISO/IEC 8859-3 code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ISO/IEC 8859-3 order.
#
#       Version history
#       1.0 version updates 0.1 version by adding mappings for all
#       control characters.
#
#       Updated versions of this file may be found in:
#               <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
#       Any comments or problems, contact <errata@unicode.org>
#       Please note that <errata@unicode.org> is an archival address;
#       notices will be checked, but do not expect an immediate response.
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x0080  #       <control>
0x81    0x0081  #       <control>
0x82    0x0082  #       <control>
0x83    0x0083  #       <control>
0x84    0x0084  #       <control>
0x85    0x0085  #       <control>
0x86    0x0086  #       <control>
0x87    0x0087  #       <control>
0x88    0x0088  #       <control>
0x89    0x0089  #       <control>
0x8A    0x008A  #       <control>
0x8B    0x008B  #       <control>
0x8C    0x008C  #       <control>
0x8D    0x008D  #       <control>
0x8E    0x008E  #       <control>
0x8F    0x008F  #       <control>
0x90    0x0090  #       <control>
0x91    0x0091  #       <control>
0x92    0x0092  #       <control>
0x93    0x0093  #       <control>
0x94    0x0094  #       <control>
0x95    0x0095  #       <control>
0x96    0x0096  #       <control>
0x97    0x0097  #       <control>
0x98    0x0098  #       <control>
0x99    0x0099  #       <control>
0x9A    0x009A  #       <control>
0x9B    0x009B  #       <control>
0x9C    0x009C  #       <control>
0x9D    0x009D  #       <control>
0x9E    0x009E  #       <control>
0x9F    0x009F  #       <control>
0xA0    0x00A0  #       NO-BREAK SPACE
0xA1    0x0126  #       LATIN CAPITAL LETTER H WITH STROKE
0xA2    0x02D8  #       BREVE
0xA3    0x00A3  #       POUND SIGN
0xA4    0x00A4  #       CURRENCY SIGN
0xA6    0x0124  #       LATIN CAPITAL LETTER H WITH CIRCUMFLEX
0xA7    0x00A7  #       SECTION SIGN
0xA8    0x00A8  #       DIAERESIS
0xA9    0x0130  #       LATIN CAPITAL LETTER I WITH DOT ABOVE
0xAA    0x015E  #       LATIN CAPITAL LETTER S WITH CEDILLA
0xAB    0x011E  #       LATIN CAPITAL LETTER G WITH BREVE
0xAC    0x0134  #       LATIN CAPITAL LETTER J WITH CIRCUMFLEX
0xAD    0x00AD  #       SOFT HYPHEN
0xAF    0x017B  #       LATIN CAPITAL LETTER Z WITH DOT ABOVE
0xB0    0x00B0  #       DEGREE SIGN
0xB1    0x0127  #       LATIN SMALL LETTER H WITH STROKE
0xB2    0x00B2  #       SUPERSCRIPT TWO
0xB3    0x00B3  #       SUPERSCRIPT THREE
0xB4    0x00B4  #       ACUTE ACCENT
0xB5    0x00B5  #       MICRO SIGN
0xB6    0x0125  #       LATIN SMALL LETTER H WITH CIRCUMFLEX
0xB7    0x00B7  #       MIDDLE DOT
0xB8    0x00B8  #       CEDILLA
0xB9    0x0131  #       LATIN SMALL LETTER DOTLESS I
0xBA    0x015F  #       LATIN SMALL LETTER S WITH CEDILLA
0xBB    0x011F  #       LATIN SMALL LETTER G WITH BREVE
0xBC    0x0135  #       LATIN SMALL LETTER J WITH CIRCUMFLEX
0xBD    0x00BD  #       VULGAR FRACTION ONE HALF
0xBF    0x017C  #       LATIN SMALL LETTER Z WITH DOT ABOVE
0xC0    0x00C0  #       LATIN CAPITAL LETTER A WITH GRAVE
0xC1    0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE
0xC2    0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xC4    0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS
0xC5    0x010A  #       LATIN CAPITAL LETTER C WITH DOT ABOVE
0xC6    0x0108  #       LATIN CAPITAL LETTER C WITH CIRCUMFLEX
0xC7    0x00C7  #       LATIN CAPITAL LETTER C WITH CEDILLA
0xC8    0x00C8  #       LATIN CAPITAL LETTER E WITH GRAVE
0xC9    0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE
0xCA    0x00CA  #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xCB    0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS
0xCC    0x00CC  #       LATIN CAPITAL LETTER I WITH GRAVE
0xCD    0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE
0xCE    0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xCF    0x00CF  #       LATIN CAPITAL LETTER I WITH DIAERESIS
0xD1    0x00D1  #       LATIN CAPITAL LETTER N WITH TILDE
0xD2    0x00D2  #       LATIN CAPITAL LETTER O WITH GRAVE
0xD3    0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE
0xD4    0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xD5    0x0120  #       LATIN CAPITAL LETTER G WITH DOT ABOVE
0xD6    0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS
0xD7    0x00D7  #       MULTIPLICATION SIGN
0xD8    0x011C  #       LATIN CAPITAL LETTER G WITH CIRCUMFLEX
0xD9    0x00D9  #       LATIN CAPITAL LETTER U WITH GRAVE
0xDA    0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE
0xDB    0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xDC    0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS
0xDD    0x016C  #       LATIN CAPITAL LETTER U WITH BREVE
0xDE    0x015C  #       LATIN CAPITAL LETTER S WITH CIRCUMFLEX
0xDF    0x00DF  #       LATIN SMALL LETTER SHARP S
0xE0    0x00E0  #       LATIN SMALL LETTER A WITH GRAVE
0xE1    0x00E1  #       LATIN SMALL LETTER A WITH ACUTE
0xE2    0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX
0xE4    0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS
0xE5    0x010B  #       LATIN SMALL LETTER C WITH DOT ABOVE
0xE6    0x0109  #       LATIN SMALL LETTER C WITH CIRCUMFLEX
0xE7    0x00E7  #       LATIN SMALL LETTER C WITH CEDILLA
0xE8    0x00E8  #       LATIN SMALL LETTER E WITH GRAVE
0xE9    0x00E9  #       LATIN SMALL LETTER E WITH ACUTE
0xEA    0x00EA  #       LATIN SMALL LETTER E WITH CIRCUMFLEX
0xEB    0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS
0xEC    0x00EC  #       LATIN SMALL LETTER I WITH GRAVE
0xED    0x00ED  #       LATIN SMALL LETTER I WITH ACUTE
0xEE    0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX
0xEF    0x00EF  #       LATIN SMALL LETTER I WITH DIAERESIS
0xF1    0x00F1  #       LATIN SMALL LETTER N WITH TILDE
0xF2    0x00F2  #       LATIN SMALL LETTER O WITH GRAVE
0xF3    0x00F3  #       LATIN SMALL LETTER O WITH ACUTE
0xF4    0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX
0xF5    0x0121  #       LATIN SMALL LETTER G WITH DOT ABOVE
0xF6    0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS
0xF7    0x00F7  #       DIVISION SIGN
0xF8    0x011D  #       LATIN SMALL LETTER G WITH CIRCUMFLEX
0xF9    0x00F9  #       LATIN SMALL LETTER U WITH GRAVE
0xFA    0x00FA  #       LATIN SMALL LETTER U WITH ACUTE
0xFB    0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX
0xFC    0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS
0xFD    0x016D  #       LATIN SMALL LETTER U WITH BREVE
0xFE    0x015D  #       LATIN SMALL LETTER S WITH CIRCUMFLEX
0xFF    0x02D9  #       DOT ABOVE

"
! !

!CharacterEncoder::ISO8859_3 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-3' 'iso-8859-3' 'latin3' 'latin-3' 'iso-ir-109')
! !

!CharacterEncoder::ISO8859_3 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16rA0 ifTrue:[ ^ code ].
    code > 16rFF ifTrue:[
	^ self decodingError.
    ].
    [
	|t|
	t := #(
	   "16r00A1"    16r0126 " LATIN CAPITAL LETTER H WITH STROKE " 
	   "16r00A2"    16r02D8 " BREVE " 
	   "16r00A3"    16r00A3 " POUND SIGN " 
	   "16r00A4"    16r00A4 " CURRENCY SIGN " 
	   "16r00A5"    16r0000 " invalid " 
	   "16r00A6"    16r0124 " LATIN CAPITAL LETTER H WITH CIRCUMFLEX " 
	   "16r00A7"    16r00A7 " SECTION SIGN " 
	   "16r00A8"    16r00A8 " DIAERESIS " 
	   "16r00A9"    16r0130 " LATIN CAPITAL LETTER I WITH DOT ABOVE " 
	   "16r00AA"    16r015E " LATIN CAPITAL LETTER S WITH CEDILLA " 
	   "16r00AB"    16r011E " LATIN CAPITAL LETTER G WITH BREVE " 
	   "16r00AC"    16r0134 " LATIN CAPITAL LETTER J WITH CIRCUMFLEX " 
	   "16r00AD"    16r00AD " SOFT HYPHEN " 
	   "16r00AE"    16r0000 " invalid " 
	   "16r00AF"    16r017B " LATIN CAPITAL LETTER Z WITH DOT ABOVE " 
	   "16r00B0"    16r00B0 " DEGREE SIGN " 
	   "16r00B1"    16r0127 " LATIN SMALL LETTER H WITH STROKE " 
	   "16r00B2"    16r00B2 " SUPERSCRIPT TWO " 
	   "16r00B3"    16r00B3 " SUPERSCRIPT THREE " 
	   "16r00B4"    16r00B4 " ACUTE ACCENT " 
	   "16r00B5"    16r00B5 " MICRO SIGN " 
	   "16r00B6"    16r0125 " LATIN SMALL LETTER H WITH CIRCUMFLEX " 
	   "16r00B7"    16r00B7 " MIDDLE DOT " 
	   "16r00B8"    16r00B8 " CEDILLA " 
	   "16r00B9"    16r0131 " LATIN SMALL LETTER DOTLESS I " 
	   "16r00BA"    16r015F " LATIN SMALL LETTER S WITH CEDILLA " 
	   "16r00BB"    16r011F " LATIN SMALL LETTER G WITH BREVE " 
	   "16r00BC"    16r0135 " LATIN SMALL LETTER J WITH CIRCUMFLEX " 
	   "16r00BD"    16r00BD " VULGAR FRACTION ONE HALF " 
	   "16r00BE"    16r0000 " invalid " 
	   "16r00BF"    16r017C " LATIN SMALL LETTER Z WITH DOT ABOVE " 
	   "16r00C0"    16r00C0 " LATIN CAPITAL LETTER A WITH GRAVE " 
	   "16r00C1"    16r00C1 " LATIN CAPITAL LETTER A WITH ACUTE " 
	   "16r00C2"    16r00C2 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
	   "16r00C3"    16r0000 " invalid " 
	   "16r00C4"    16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
	   "16r00C5"    16r010A " LATIN CAPITAL LETTER C WITH DOT ABOVE " 
	   "16r00C6"    16r0108 " LATIN CAPITAL LETTER C WITH CIRCUMFLEX " 
	   "16r00C7"    16r00C7 " LATIN CAPITAL LETTER C WITH CEDILLA " 
	   "16r00C8"    16r00C8 " LATIN CAPITAL LETTER E WITH GRAVE " 
	   "16r00C9"    16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE " 
	   "16r00CA"    16r00CA " LATIN CAPITAL LETTER E WITH CIRCUMFLEX " 
	   "16r00CB"    16r00CB " LATIN CAPITAL LETTER E WITH DIAERESIS " 
	   "16r00CC"    16r00CC " LATIN CAPITAL LETTER I WITH GRAVE " 
	   "16r00CD"    16r00CD " LATIN CAPITAL LETTER I WITH ACUTE " 
	   "16r00CE"    16r00CE " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
	   "16r00CF"    16r00CF " LATIN CAPITAL LETTER I WITH DIAERESIS " 
	   "16r00D0"    16r0000 " invalid " 
	   "16r00D1"    16r00D1 " LATIN CAPITAL LETTER N WITH TILDE " 
	   "16r00D2"    16r00D2 " LATIN CAPITAL LETTER O WITH GRAVE " 
	   "16r00D3"    16r00D3 " LATIN CAPITAL LETTER O WITH ACUTE " 
	   "16r00D4"    16r00D4 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
	   "16r00D5"    16r0120 " LATIN CAPITAL LETTER G WITH DOT ABOVE " 
	   "16r00D6"    16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
	   "16r00D7"    16r00D7 " MULTIPLICATION SIGN " 
	   "16r00D8"    16r011C " LATIN CAPITAL LETTER G WITH CIRCUMFLEX " 
	   "16r00D9"    16r00D9 " LATIN CAPITAL LETTER U WITH GRAVE " 
	   "16r00DA"    16r00DA " LATIN CAPITAL LETTER U WITH ACUTE " 
	   "16r00DB"    16r00DB " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " 
	   "16r00DC"    16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS " 
	   "16r00DD"    16r016C " LATIN CAPITAL LETTER U WITH BREVE " 
	   "16r00DE"    16r015C " LATIN CAPITAL LETTER S WITH CIRCUMFLEX " 
	   "16r00DF"    16r00DF " LATIN SMALL LETTER SHARP S " 
	   "16r00E0"    16r00E0 " LATIN SMALL LETTER A WITH GRAVE " 
	   "16r00E1"    16r00E1 " LATIN SMALL LETTER A WITH ACUTE " 
	   "16r00E2"    16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
	   "16r00E3"    16r0000 " invalid " 
	   "16r00E4"    16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS " 
	   "16r00E5"    16r010B " LATIN SMALL LETTER C WITH DOT ABOVE " 
	   "16r00E6"    16r0109 " LATIN SMALL LETTER C WITH CIRCUMFLEX " 
	   "16r00E7"    16r00E7 " LATIN SMALL LETTER C WITH CEDILLA " 
	   "16r00E8"    16r00E8 " LATIN SMALL LETTER E WITH GRAVE " 
	   "16r00E9"    16r00E9 " LATIN SMALL LETTER E WITH ACUTE " 
	   "16r00EA"    16r00EA " LATIN SMALL LETTER E WITH CIRCUMFLEX " 
	   "16r00EB"    16r00EB " LATIN SMALL LETTER E WITH DIAERESIS " 
	   "16r00EC"    16r00EC " LATIN SMALL LETTER I WITH GRAVE " 
	   "16r00ED"    16r00ED " LATIN SMALL LETTER I WITH ACUTE " 
	   "16r00EE"    16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
	   "16r00EF"    16r00EF " LATIN SMALL LETTER I WITH DIAERESIS " 
	   "16r00F0"    16r0000 " invalid " 
	   "16r00F1"    16r00F1 " LATIN SMALL LETTER N WITH TILDE " 
	   "16r00F2"    16r00F2 " LATIN SMALL LETTER O WITH GRAVE " 
	   "16r00F3"    16r00F3 " LATIN SMALL LETTER O WITH ACUTE " 
	   "16r00F4"    16r00F4 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
	   "16r00F5"    16r0121 " LATIN SMALL LETTER G WITH DOT ABOVE " 
	   "16r00F6"    16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS " 
	   "16r00F7"    16r00F7 " DIVISION SIGN " 
	   "16r00F8"    16r011D " LATIN SMALL LETTER G WITH CIRCUMFLEX " 
	   "16r00F9"    16r00F9 " LATIN SMALL LETTER U WITH GRAVE " 
	   "16r00FA"    16r00FA " LATIN SMALL LETTER U WITH ACUTE " 
	   "16r00FB"    16r00FB " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
	   "16r00FC"    16r00FC " LATIN SMALL LETTER U WITH DIAERESIS " 
	   "16r00FD"    16r016D " LATIN SMALL LETTER U WITH BREVE " 
	   "16r00FE"    16r015D " LATIN SMALL LETTER S WITH CIRCUMFLEX " 
	   "16r00FF"    16r02D9 " DOT ABOVE " 
	   ) at:(code - 16rA0).
	t == 0 ifFalse:[^ t].
	^ self decodingError.
    ] value.
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16rA0 ifTrue:[ ^ unicode ].
    unicode > 16r2D9 ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r17C ifTrue:[
	unicode <= 16r107 ifTrue:[
	    (#[
	       "16r00A1"    0 " invalid " 
	       "16r00A2"    0 " invalid " 
	       "16r00A3"    1 " POUND SIGN " 
	       "16r00A4"    1 " CURRENCY SIGN " 
	       "16r00A5"    0 " invalid " 
	       "16r00A6"    0 " invalid " 
	       "16r00A7"    1 " SECTION SIGN " 
	       "16r00A8"    1 " DIAERESIS " 
	       "16r00A9"    0 " invalid " 
	       "16r00AA"    0 " invalid " 
	       "16r00AB"    0 " invalid " 
	       "16r00AC"    0 " invalid " 
	       "16r00AD"    1 " SOFT HYPHEN " 
	       "16r00AE"    0 " invalid " 
	       "16r00AF"    0 " invalid " 
	       "16r00B0"    1 " DEGREE SIGN " 
	       "16r00B1"    0 " invalid " 
	       "16r00B2"    1 " SUPERSCRIPT TWO " 
	       "16r00B3"    1 " SUPERSCRIPT THREE " 
	       "16r00B4"    1 " ACUTE ACCENT " 
	       "16r00B5"    1 " MICRO SIGN " 
	       "16r00B6"    0 " invalid " 
	       "16r00B7"    1 " MIDDLE DOT " 
	       "16r00B8"    1 " CEDILLA " 
	       "16r00B9"    0 " invalid " 
	       "16r00BA"    0 " invalid " 
	       "16r00BB"    0 " invalid " 
	       "16r00BC"    0 " invalid " 
	       "16r00BD"    1 " VULGAR FRACTION ONE HALF " 
	       "16r00BE"    0 " invalid " 
	       "16r00BF"    0 " invalid " 
	       "16r00C0"    1 " LATIN CAPITAL LETTER A WITH GRAVE " 
	       "16r00C1"    1 " LATIN CAPITAL LETTER A WITH ACUTE " 
	       "16r00C2"    1 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
	       "16r00C3"    0 " invalid " 
	       "16r00C4"    1 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
	       "16r00C5"    0 " invalid " 
	       "16r00C6"    0 " invalid " 
	       "16r00C7"    1 " LATIN CAPITAL LETTER C WITH CEDILLA " 
	       "16r00C8"    1 " LATIN CAPITAL LETTER E WITH GRAVE " 
	       "16r00C9"    1 " LATIN CAPITAL LETTER E WITH ACUTE " 
	       "16r00CA"    1 " LATIN CAPITAL LETTER E WITH CIRCUMFLEX " 
	       "16r00CB"    1 " LATIN CAPITAL LETTER E WITH DIAERESIS " 
	       "16r00CC"    1 " LATIN CAPITAL LETTER I WITH GRAVE " 
	       "16r00CD"    1 " LATIN CAPITAL LETTER I WITH ACUTE " 
	       "16r00CE"    1 " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
	       "16r00CF"    1 " LATIN CAPITAL LETTER I WITH DIAERESIS " 
	       "16r00D0"    0 " invalid " 
	       "16r00D1"    1 " LATIN CAPITAL LETTER N WITH TILDE " 
	       "16r00D2"    1 " LATIN CAPITAL LETTER O WITH GRAVE " 
	       "16r00D3"    1 " LATIN CAPITAL LETTER O WITH ACUTE " 
	       "16r00D4"    1 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
	       "16r00D5"    0 " invalid " 
	       "16r00D6"    1 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
	       "16r00D7"    1 " MULTIPLICATION SIGN " 
	       "16r00D8"    0 " invalid " 
	       "16r00D9"    1 " LATIN CAPITAL LETTER U WITH GRAVE " 
	       "16r00DA"    1 " LATIN CAPITAL LETTER U WITH ACUTE " 
	       "16r00DB"    1 " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " 
	       "16r00DC"    1 " LATIN CAPITAL LETTER U WITH DIAERESIS " 
	       "16r00DD"    0 " invalid " 
	       "16r00DE"    0 " invalid " 
	       "16r00DF"    1 " LATIN SMALL LETTER SHARP S " 
	       "16r00E0"    1 " LATIN SMALL LETTER A WITH GRAVE " 
	       "16r00E1"    1 " LATIN SMALL LETTER A WITH ACUTE " 
	       "16r00E2"    1 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
	       "16r00E3"    0 " invalid " 
	       "16r00E4"    1 " LATIN SMALL LETTER A WITH DIAERESIS " 
	       "16r00E5"    0 " invalid " 
	       "16r00E6"    0 " invalid " 
	       "16r00E7"    1 " LATIN SMALL LETTER C WITH CEDILLA " 
	       "16r00E8"    1 " LATIN SMALL LETTER E WITH GRAVE " 
	       "16r00E9"    1 " LATIN SMALL LETTER E WITH ACUTE " 
	       "16r00EA"    1 " LATIN SMALL LETTER E WITH CIRCUMFLEX " 
	       "16r00EB"    1 " LATIN SMALL LETTER E WITH DIAERESIS " 
	       "16r00EC"    1 " LATIN SMALL LETTER I WITH GRAVE " 
	       "16r00ED"    1 " LATIN SMALL LETTER I WITH ACUTE " 
	       "16r00EE"    1 " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
	       "16r00EF"    1 " LATIN SMALL LETTER I WITH DIAERESIS " 
	       "16r00F0"    0 " invalid " 
	       "16r00F1"    1 " LATIN SMALL LETTER N WITH TILDE " 
	       "16r00F2"    1 " LATIN SMALL LETTER O WITH GRAVE " 
	       "16r00F3"    1 " LATIN SMALL LETTER O WITH ACUTE " 
	       "16r00F4"    1 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
	       "16r00F5"    0 " invalid " 
	       "16r00F6"    1 " LATIN SMALL LETTER O WITH DIAERESIS " 
	       "16r00F7"    1 " DIVISION SIGN " 
	       "16r00F8"    0 " invalid " 
	       "16r00F9"    1 " LATIN SMALL LETTER U WITH GRAVE " 
	       "16r00FA"    1 " LATIN SMALL LETTER U WITH ACUTE " 
	       "16r00FB"    1 " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
	       "16r00FC"    1 " LATIN SMALL LETTER U WITH DIAERESIS " 
	       "16r00FD"    0 " invalid " 
	       "16r00FE"    0 " invalid " 
	       "16r00FF"    0 " invalid " 
	       "16r0100"    0 " invalid " 
	       "16r0101"    0 " invalid " 
	       "16r0102"    0 " invalid " 
	       "16r0103"    0 " invalid " 
	       "16r0104"    0 " invalid " 
	       "16r0105"    0 " invalid " 
	       "16r0106"    0 " invalid " 
	       "16r0107"    0 " invalid " 
	    ] at:(unicode - 160)) ~~ 0 ifTrue:[^ unicode].
	    ^ self encodingError.
	].
	unicode <= 16r135 ifTrue:[
	    unicode <= 16r10B ifTrue:[
		^ #[
		   "16r0108"    16rC6 " LATIN CAPITAL LETTER C WITH CIRCUMFLEX " 
		   "16r0109"    16rE6 " LATIN SMALL LETTER C WITH CIRCUMFLEX " 
		   "16r010A"    16rC5 " LATIN CAPITAL LETTER C WITH DOT ABOVE " 
		   "16r010B"    16rE5 " LATIN SMALL LETTER C WITH DOT ABOVE " 
		   ] at:(unicode - 16r107).
	    ].
	    unicode <= 16r11B ifTrue:[
		^ self encodingError.
	    ].
	    [
		|t|
		t := #[
		   "16r011C"    16rD8 " LATIN CAPITAL LETTER G WITH CIRCUMFLEX " 
		   "16r011D"    16rF8 " LATIN SMALL LETTER G WITH CIRCUMFLEX " 
		   "16r011E"    16rAB " LATIN CAPITAL LETTER G WITH BREVE " 
		   "16r011F"    16rBB " LATIN SMALL LETTER G WITH BREVE " 
		   "16r0120"    16rD5 " LATIN CAPITAL LETTER G WITH DOT ABOVE " 
		   "16r0121"    16rF5 " LATIN SMALL LETTER G WITH DOT ABOVE " 
		   "16r0122"    16r00 " invalid " 
		   "16r0123"    16r00 " invalid " 
		   "16r0124"    16rA6 " LATIN CAPITAL LETTER H WITH CIRCUMFLEX " 
		   "16r0125"    16rB6 " LATIN SMALL LETTER H WITH CIRCUMFLEX " 
		   "16r0126"    16rA1 " LATIN CAPITAL LETTER H WITH STROKE " 
		   "16r0127"    16rB1 " LATIN SMALL LETTER H WITH STROKE " 
		   "16r0128"    16r00 " invalid " 
		   "16r0129"    16r00 " invalid " 
		   "16r012A"    16r00 " invalid " 
		   "16r012B"    16r00 " invalid " 
		   "16r012C"    16r00 " invalid " 
		   "16r012D"    16r00 " invalid " 
		   "16r012E"    16r00 " invalid " 
		   "16r012F"    16r00 " invalid " 
		   "16r0130"    16rA9 " LATIN CAPITAL LETTER I WITH DOT ABOVE " 
		   "16r0131"    16rB9 " LATIN SMALL LETTER DOTLESS I " 
		   "16r0132"    16r00 " invalid " 
		   "16r0133"    16r00 " invalid " 
		   "16r0134"    16rAC " LATIN CAPITAL LETTER J WITH CIRCUMFLEX " 
		   "16r0135"    16rBC " LATIN SMALL LETTER J WITH CIRCUMFLEX " 
		   ] at:(unicode - 16r11B).
		t == 0 ifFalse:[^ t].
		^ self encodingError
	    ] value.
	].
	unicode <= 16r15B ifTrue:[
	    ^ self encodingError.
	].
	[
	    |t|
	    t := #[
	       "16r015C"    16rDE " LATIN CAPITAL LETTER S WITH CIRCUMFLEX " 
	       "16r015D"    16rFE " LATIN SMALL LETTER S WITH CIRCUMFLEX " 
	       "16r015E"    16rAA " LATIN CAPITAL LETTER S WITH CEDILLA " 
	       "16r015F"    16rBA " LATIN SMALL LETTER S WITH CEDILLA " 
	       "16r0160"    16r00 " invalid " 
	       "16r0161"    16r00 " invalid " 
	       "16r0162"    16r00 " invalid " 
	       "16r0163"    16r00 " invalid " 
	       "16r0164"    16r00 " invalid " 
	       "16r0165"    16r00 " invalid " 
	       "16r0166"    16r00 " invalid " 
	       "16r0167"    16r00 " invalid " 
	       "16r0168"    16r00 " invalid " 
	       "16r0169"    16r00 " invalid " 
	       "16r016A"    16r00 " invalid " 
	       "16r016B"    16r00 " invalid " 
	       "16r016C"    16rDD " LATIN CAPITAL LETTER U WITH BREVE " 
	       "16r016D"    16rFD " LATIN SMALL LETTER U WITH BREVE " 
	       "16r016E"    16r00 " invalid " 
	       "16r016F"    16r00 " invalid " 
	       "16r0170"    16r00 " invalid " 
	       "16r0171"    16r00 " invalid " 
	       "16r0172"    16r00 " invalid " 
	       "16r0173"    16r00 " invalid " 
	       "16r0174"    16r00 " invalid " 
	       "16r0175"    16r00 " invalid " 
	       "16r0176"    16r00 " invalid " 
	       "16r0177"    16r00 " invalid " 
	       "16r0178"    16r00 " invalid " 
	       "16r0179"    16r00 " invalid " 
	       "16r017A"    16r00 " invalid " 
	       "16r017B"    16rAF " LATIN CAPITAL LETTER Z WITH DOT ABOVE " 
	       "16r017C"    16rBF " LATIN SMALL LETTER Z WITH DOT ABOVE " 
	       ] at:(unicode - 16r15B).
	    t == 0 ifFalse:[^ t].
	    ^ self encodingError
	] value.
    ].
    unicode <= 16r2D7 ifTrue:[
	^ self encodingError.
    ].
    ^ #[
       "16r02D8"    16rA2 " BREVE " 
       "16r02D9"    16rFF " DOT ABOVE " 
       ] at:(unicode - 16r2D7).
! !

!CharacterEncoder::ISO8859_4 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'ISO8859/8859-4.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-4.TXT

#
#       Name:             ISO/IEC 8859-4:1998 to Unicode
#       Unicode version:  3.0
#       Table version:    1.0
#       Table format:     Format A
#       Date:             1999 July 27
#       Authors:          Ken Whistler <kenw@sybase.com>
#
#       Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ISO/IEC 8859-4:1998 characters map into Unicode.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ISO/IEC 8859-4 code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ISO/IEC 8859-4 order.
#
#       Version history
#       1.0 version updates 0.1 version by adding mappings for all
#       control characters.
#
#       Updated versions of this file may be found in:
#               <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
#       Any comments or problems, contact <errata@unicode.org>
#       Please note that <errata@unicode.org> is an archival address;
#       notices will be checked, but do not expect an immediate response.
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x0080  #       <control>
0x81    0x0081  #       <control>
0x82    0x0082  #       <control>
0x83    0x0083  #       <control>
0x84    0x0084  #       <control>
0x85    0x0085  #       <control>
0x86    0x0086  #       <control>
0x87    0x0087  #       <control>
0x88    0x0088  #       <control>
0x89    0x0089  #       <control>
0x8A    0x008A  #       <control>
0x8B    0x008B  #       <control>
0x8C    0x008C  #       <control>
0x8D    0x008D  #       <control>
0x8E    0x008E  #       <control>
0x8F    0x008F  #       <control>
0x90    0x0090  #       <control>
0x91    0x0091  #       <control>
0x92    0x0092  #       <control>
0x93    0x0093  #       <control>
0x94    0x0094  #       <control>
0x95    0x0095  #       <control>
0x96    0x0096  #       <control>
0x97    0x0097  #       <control>
0x98    0x0098  #       <control>
0x99    0x0099  #       <control>
0x9A    0x009A  #       <control>
0x9B    0x009B  #       <control>
0x9C    0x009C  #       <control>
0x9D    0x009D  #       <control>
0x9E    0x009E  #       <control>
0x9F    0x009F  #       <control>
0xA0    0x00A0  #       NO-BREAK SPACE
0xA1    0x0104  #       LATIN CAPITAL LETTER A WITH OGONEK
0xA2    0x0138  #       LATIN SMALL LETTER KRA
0xA3    0x0156  #       LATIN CAPITAL LETTER R WITH CEDILLA
0xA4    0x00A4  #       CURRENCY SIGN
0xA5    0x0128  #       LATIN CAPITAL LETTER I WITH TILDE
0xA6    0x013B  #       LATIN CAPITAL LETTER L WITH CEDILLA
0xA7    0x00A7  #       SECTION SIGN
0xA8    0x00A8  #       DIAERESIS
0xA9    0x0160  #       LATIN CAPITAL LETTER S WITH CARON
0xAA    0x0112  #       LATIN CAPITAL LETTER E WITH MACRON
0xAB    0x0122  #       LATIN CAPITAL LETTER G WITH CEDILLA
0xAC    0x0166  #       LATIN CAPITAL LETTER T WITH STROKE
0xAD    0x00AD  #       SOFT HYPHEN
0xAE    0x017D  #       LATIN CAPITAL LETTER Z WITH CARON
0xAF    0x00AF  #       MACRON
0xB0    0x00B0  #       DEGREE SIGN
0xB1    0x0105  #       LATIN SMALL LETTER A WITH OGONEK
0xB2    0x02DB  #       OGONEK
0xB3    0x0157  #       LATIN SMALL LETTER R WITH CEDILLA
0xB4    0x00B4  #       ACUTE ACCENT
0xB5    0x0129  #       LATIN SMALL LETTER I WITH TILDE
0xB6    0x013C  #       LATIN SMALL LETTER L WITH CEDILLA
0xB7    0x02C7  #       CARON
0xB8    0x00B8  #       CEDILLA
0xB9    0x0161  #       LATIN SMALL LETTER S WITH CARON
0xBA    0x0113  #       LATIN SMALL LETTER E WITH MACRON
0xBB    0x0123  #       LATIN SMALL LETTER G WITH CEDILLA
0xBC    0x0167  #       LATIN SMALL LETTER T WITH STROKE
0xBD    0x014A  #       LATIN CAPITAL LETTER ENG
0xBE    0x017E  #       LATIN SMALL LETTER Z WITH CARON
0xBF    0x014B  #       LATIN SMALL LETTER ENG
0xC0    0x0100  #       LATIN CAPITAL LETTER A WITH MACRON
0xC1    0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE
0xC2    0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xC3    0x00C3  #       LATIN CAPITAL LETTER A WITH TILDE
0xC4    0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS
0xC5    0x00C5  #       LATIN CAPITAL LETTER A WITH RING ABOVE
0xC6    0x00C6  #       LATIN CAPITAL LETTER AE
0xC7    0x012E  #       LATIN CAPITAL LETTER I WITH OGONEK
0xC8    0x010C  #       LATIN CAPITAL LETTER C WITH CARON
0xC9    0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE
0xCA    0x0118  #       LATIN CAPITAL LETTER E WITH OGONEK
0xCB    0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS
0xCC    0x0116  #       LATIN CAPITAL LETTER E WITH DOT ABOVE
0xCD    0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE
0xCE    0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xCF    0x012A  #       LATIN CAPITAL LETTER I WITH MACRON
0xD0    0x0110  #       LATIN CAPITAL LETTER D WITH STROKE
0xD1    0x0145  #       LATIN CAPITAL LETTER N WITH CEDILLA
0xD2    0x014C  #       LATIN CAPITAL LETTER O WITH MACRON
0xD3    0x0136  #       LATIN CAPITAL LETTER K WITH CEDILLA
0xD4    0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xD5    0x00D5  #       LATIN CAPITAL LETTER O WITH TILDE
0xD6    0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS
0xD7    0x00D7  #       MULTIPLICATION SIGN
0xD8    0x00D8  #       LATIN CAPITAL LETTER O WITH STROKE
0xD9    0x0172  #       LATIN CAPITAL LETTER U WITH OGONEK
0xDA    0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE
0xDB    0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xDC    0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS
0xDD    0x0168  #       LATIN CAPITAL LETTER U WITH TILDE
0xDE    0x016A  #       LATIN CAPITAL LETTER U WITH MACRON
0xDF    0x00DF  #       LATIN SMALL LETTER SHARP S
0xE0    0x0101  #       LATIN SMALL LETTER A WITH MACRON
0xE1    0x00E1  #       LATIN SMALL LETTER A WITH ACUTE
0xE2    0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX
0xE3    0x00E3  #       LATIN SMALL LETTER A WITH TILDE
0xE4    0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS
0xE5    0x00E5  #       LATIN SMALL LETTER A WITH RING ABOVE
0xE6    0x00E6  #       LATIN SMALL LETTER AE
0xE7    0x012F  #       LATIN SMALL LETTER I WITH OGONEK
0xE8    0x010D  #       LATIN SMALL LETTER C WITH CARON
0xE9    0x00E9  #       LATIN SMALL LETTER E WITH ACUTE
0xEA    0x0119  #       LATIN SMALL LETTER E WITH OGONEK
0xEB    0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS
0xEC    0x0117  #       LATIN SMALL LETTER E WITH DOT ABOVE
0xED    0x00ED  #       LATIN SMALL LETTER I WITH ACUTE
0xEE    0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX
0xEF    0x012B  #       LATIN SMALL LETTER I WITH MACRON
0xF0    0x0111  #       LATIN SMALL LETTER D WITH STROKE
0xF1    0x0146  #       LATIN SMALL LETTER N WITH CEDILLA
0xF2    0x014D  #       LATIN SMALL LETTER O WITH MACRON
0xF3    0x0137  #       LATIN SMALL LETTER K WITH CEDILLA
0xF4    0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX
0xF5    0x00F5  #       LATIN SMALL LETTER O WITH TILDE
0xF6    0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS
0xF7    0x00F7  #       DIVISION SIGN
0xF8    0x00F8  #       LATIN SMALL LETTER O WITH STROKE
0xF9    0x0173  #       LATIN SMALL LETTER U WITH OGONEK
0xFA    0x00FA  #       LATIN SMALL LETTER U WITH ACUTE
0xFB    0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX
0xFC    0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS
0xFD    0x0169  #       LATIN SMALL LETTER U WITH TILDE
0xFE    0x016B  #       LATIN SMALL LETTER U WITH MACRON
0xFF    0x02D9  #       DOT ABOVE

"
! !

!CharacterEncoder::ISO8859_4 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-4' 'iso-8859-4' 'latin4' 'latin-4' 'iso-ir-110')
! !

!CharacterEncoder::ISO8859_4 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16rA0 ifTrue:[ ^ code ].
    code > 16rFF ifTrue:[
	^ self decodingError.
    ].
    ^ #(
       "16r00A1"    16r0104 " LATIN CAPITAL LETTER A WITH OGONEK " 
       "16r00A2"    16r0138 " LATIN SMALL LETTER KRA " 
       "16r00A3"    16r0156 " LATIN CAPITAL LETTER R WITH CEDILLA " 
       "16r00A4"    16r00A4 " CURRENCY SIGN " 
       "16r00A5"    16r0128 " LATIN CAPITAL LETTER I WITH TILDE " 
       "16r00A6"    16r013B " LATIN CAPITAL LETTER L WITH CEDILLA " 
       "16r00A7"    16r00A7 " SECTION SIGN " 
       "16r00A8"    16r00A8 " DIAERESIS " 
       "16r00A9"    16r0160 " LATIN CAPITAL LETTER S WITH CARON " 
       "16r00AA"    16r0112 " LATIN CAPITAL LETTER E WITH MACRON " 
       "16r00AB"    16r0122 " LATIN CAPITAL LETTER G WITH CEDILLA " 
       "16r00AC"    16r0166 " LATIN CAPITAL LETTER T WITH STROKE " 
       "16r00AD"    16r00AD " SOFT HYPHEN " 
       "16r00AE"    16r017D " LATIN CAPITAL LETTER Z WITH CARON " 
       "16r00AF"    16r00AF " MACRON " 
       "16r00B0"    16r00B0 " DEGREE SIGN " 
       "16r00B1"    16r0105 " LATIN SMALL LETTER A WITH OGONEK " 
       "16r00B2"    16r02DB " OGONEK " 
       "16r00B3"    16r0157 " LATIN SMALL LETTER R WITH CEDILLA " 
       "16r00B4"    16r00B4 " ACUTE ACCENT " 
       "16r00B5"    16r0129 " LATIN SMALL LETTER I WITH TILDE " 
       "16r00B6"    16r013C " LATIN SMALL LETTER L WITH CEDILLA " 
       "16r00B7"    16r02C7 " CARON " 
       "16r00B8"    16r00B8 " CEDILLA " 
       "16r00B9"    16r0161 " LATIN SMALL LETTER S WITH CARON " 
       "16r00BA"    16r0113 " LATIN SMALL LETTER E WITH MACRON " 
       "16r00BB"    16r0123 " LATIN SMALL LETTER G WITH CEDILLA " 
       "16r00BC"    16r0167 " LATIN SMALL LETTER T WITH STROKE " 
       "16r00BD"    16r014A " LATIN CAPITAL LETTER ENG " 
       "16r00BE"    16r017E " LATIN SMALL LETTER Z WITH CARON " 
       "16r00BF"    16r014B " LATIN SMALL LETTER ENG " 
       "16r00C0"    16r0100 " LATIN CAPITAL LETTER A WITH MACRON " 
       "16r00C1"    16r00C1 " LATIN CAPITAL LETTER A WITH ACUTE " 
       "16r00C2"    16r00C2 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
       "16r00C3"    16r00C3 " LATIN CAPITAL LETTER A WITH TILDE " 
       "16r00C4"    16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
       "16r00C5"    16r00C5 " LATIN CAPITAL LETTER A WITH RING ABOVE " 
       "16r00C6"    16r00C6 " LATIN CAPITAL LETTER AE " 
       "16r00C7"    16r012E " LATIN CAPITAL LETTER I WITH OGONEK " 
       "16r00C8"    16r010C " LATIN CAPITAL LETTER C WITH CARON " 
       "16r00C9"    16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE " 
       "16r00CA"    16r0118 " LATIN CAPITAL LETTER E WITH OGONEK " 
       "16r00CB"    16r00CB " LATIN CAPITAL LETTER E WITH DIAERESIS " 
       "16r00CC"    16r0116 " LATIN CAPITAL LETTER E WITH DOT ABOVE " 
       "16r00CD"    16r00CD " LATIN CAPITAL LETTER I WITH ACUTE " 
       "16r00CE"    16r00CE " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
       "16r00CF"    16r012A " LATIN CAPITAL LETTER I WITH MACRON " 
       "16r00D0"    16r0110 " LATIN CAPITAL LETTER D WITH STROKE " 
       "16r00D1"    16r0145 " LATIN CAPITAL LETTER N WITH CEDILLA " 
       "16r00D2"    16r014C " LATIN CAPITAL LETTER O WITH MACRON " 
       "16r00D3"    16r0136 " LATIN CAPITAL LETTER K WITH CEDILLA " 
       "16r00D4"    16r00D4 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
       "16r00D5"    16r00D5 " LATIN CAPITAL LETTER O WITH TILDE " 
       "16r00D6"    16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
       "16r00D7"    16r00D7 " MULTIPLICATION SIGN " 
       "16r00D8"    16r00D8 " LATIN CAPITAL LETTER O WITH STROKE " 
       "16r00D9"    16r0172 " LATIN CAPITAL LETTER U WITH OGONEK " 
       "16r00DA"    16r00DA " LATIN CAPITAL LETTER U WITH ACUTE " 
       "16r00DB"    16r00DB " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " 
       "16r00DC"    16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS " 
       "16r00DD"    16r0168 " LATIN CAPITAL LETTER U WITH TILDE " 
       "16r00DE"    16r016A " LATIN CAPITAL LETTER U WITH MACRON " 
       "16r00DF"    16r00DF " LATIN SMALL LETTER SHARP S " 
       "16r00E0"    16r0101 " LATIN SMALL LETTER A WITH MACRON " 
       "16r00E1"    16r00E1 " LATIN SMALL LETTER A WITH ACUTE " 
       "16r00E2"    16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
       "16r00E3"    16r00E3 " LATIN SMALL LETTER A WITH TILDE " 
       "16r00E4"    16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS " 
       "16r00E5"    16r00E5 " LATIN SMALL LETTER A WITH RING ABOVE " 
       "16r00E6"    16r00E6 " LATIN SMALL LETTER AE " 
       "16r00E7"    16r012F " LATIN SMALL LETTER I WITH OGONEK " 
       "16r00E8"    16r010D " LATIN SMALL LETTER C WITH CARON " 
       "16r00E9"    16r00E9 " LATIN SMALL LETTER E WITH ACUTE " 
       "16r00EA"    16r0119 " LATIN SMALL LETTER E WITH OGONEK " 
       "16r00EB"    16r00EB " LATIN SMALL LETTER E WITH DIAERESIS " 
       "16r00EC"    16r0117 " LATIN SMALL LETTER E WITH DOT ABOVE " 
       "16r00ED"    16r00ED " LATIN SMALL LETTER I WITH ACUTE " 
       "16r00EE"    16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
       "16r00EF"    16r012B " LATIN SMALL LETTER I WITH MACRON " 
       "16r00F0"    16r0111 " LATIN SMALL LETTER D WITH STROKE " 
       "16r00F1"    16r0146 " LATIN SMALL LETTER N WITH CEDILLA " 
       "16r00F2"    16r014D " LATIN SMALL LETTER O WITH MACRON " 
       "16r00F3"    16r0137 " LATIN SMALL LETTER K WITH CEDILLA " 
       "16r00F4"    16r00F4 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
       "16r00F5"    16r00F5 " LATIN SMALL LETTER O WITH TILDE " 
       "16r00F6"    16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS " 
       "16r00F7"    16r00F7 " DIVISION SIGN " 
       "16r00F8"    16r00F8 " LATIN SMALL LETTER O WITH STROKE " 
       "16r00F9"    16r0173 " LATIN SMALL LETTER U WITH OGONEK " 
       "16r00FA"    16r00FA " LATIN SMALL LETTER U WITH ACUTE " 
       "16r00FB"    16r00FB " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
       "16r00FC"    16r00FC " LATIN SMALL LETTER U WITH DIAERESIS " 
       "16r00FD"    16r0169 " LATIN SMALL LETTER U WITH TILDE " 
       "16r00FE"    16r016B " LATIN SMALL LETTER U WITH MACRON " 
       "16r00FF"    16r02D9 " DOT ABOVE " 
       ) at:(code - 16rA0).
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16rA0 ifTrue:[ ^ unicode ].
    unicode > 16r2DB ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r17E ifTrue:[
	unicode <= 16rFF ifTrue:[
	    (#[
	       "16r00A1"    0 " invalid " 
	       "16r00A2"    0 " invalid " 
	       "16r00A3"    0 " invalid " 
	       "16r00A4"    1 " CURRENCY SIGN " 
	       "16r00A5"    0 " invalid " 
	       "16r00A6"    0 " invalid " 
	       "16r00A7"    1 " SECTION SIGN " 
	       "16r00A8"    1 " DIAERESIS " 
	       "16r00A9"    0 " invalid " 
	       "16r00AA"    0 " invalid " 
	       "16r00AB"    0 " invalid " 
	       "16r00AC"    0 " invalid " 
	       "16r00AD"    1 " SOFT HYPHEN " 
	       "16r00AE"    0 " invalid " 
	       "16r00AF"    1 " MACRON " 
	       "16r00B0"    1 " DEGREE SIGN " 
	       "16r00B1"    0 " invalid " 
	       "16r00B2"    0 " invalid " 
	       "16r00B3"    0 " invalid " 
	       "16r00B4"    1 " ACUTE ACCENT " 
	       "16r00B5"    0 " invalid " 
	       "16r00B6"    0 " invalid " 
	       "16r00B7"    0 " invalid " 
	       "16r00B8"    1 " CEDILLA " 
	       "16r00B9"    0 " invalid " 
	       "16r00BA"    0 " invalid " 
	       "16r00BB"    0 " invalid " 
	       "16r00BC"    0 " invalid " 
	       "16r00BD"    0 " invalid " 
	       "16r00BE"    0 " invalid " 
	       "16r00BF"    0 " invalid " 
	       "16r00C0"    0 " invalid " 
	       "16r00C1"    1 " LATIN CAPITAL LETTER A WITH ACUTE " 
	       "16r00C2"    1 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
	       "16r00C3"    1 " LATIN CAPITAL LETTER A WITH TILDE " 
	       "16r00C4"    1 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
	       "16r00C5"    1 " LATIN CAPITAL LETTER A WITH RING ABOVE " 
	       "16r00C6"    1 " LATIN CAPITAL LETTER AE " 
	       "16r00C7"    0 " invalid " 
	       "16r00C8"    0 " invalid " 
	       "16r00C9"    1 " LATIN CAPITAL LETTER E WITH ACUTE " 
	       "16r00CA"    0 " invalid " 
	       "16r00CB"    1 " LATIN CAPITAL LETTER E WITH DIAERESIS " 
	       "16r00CC"    0 " invalid " 
	       "16r00CD"    1 " LATIN CAPITAL LETTER I WITH ACUTE " 
	       "16r00CE"    1 " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
	       "16r00CF"    0 " invalid " 
	       "16r00D0"    0 " invalid " 
	       "16r00D1"    0 " invalid " 
	       "16r00D2"    0 " invalid " 
	       "16r00D3"    0 " invalid " 
	       "16r00D4"    1 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
	       "16r00D5"    1 " LATIN CAPITAL LETTER O WITH TILDE " 
	       "16r00D6"    1 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
	       "16r00D7"    1 " MULTIPLICATION SIGN " 
	       "16r00D8"    1 " LATIN CAPITAL LETTER O WITH STROKE " 
	       "16r00D9"    0 " invalid " 
	       "16r00DA"    1 " LATIN CAPITAL LETTER U WITH ACUTE " 
	       "16r00DB"    1 " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " 
	       "16r00DC"    1 " LATIN CAPITAL LETTER U WITH DIAERESIS " 
	       "16r00DD"    0 " invalid " 
	       "16r00DE"    0 " invalid " 
	       "16r00DF"    1 " LATIN SMALL LETTER SHARP S " 
	       "16r00E0"    0 " invalid " 
	       "16r00E1"    1 " LATIN SMALL LETTER A WITH ACUTE " 
	       "16r00E2"    1 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
	       "16r00E3"    1 " LATIN SMALL LETTER A WITH TILDE " 
	       "16r00E4"    1 " LATIN SMALL LETTER A WITH DIAERESIS " 
	       "16r00E5"    1 " LATIN SMALL LETTER A WITH RING ABOVE " 
	       "16r00E6"    1 " LATIN SMALL LETTER AE " 
	       "16r00E7"    0 " invalid " 
	       "16r00E8"    0 " invalid " 
	       "16r00E9"    1 " LATIN SMALL LETTER E WITH ACUTE " 
	       "16r00EA"    0 " invalid " 
	       "16r00EB"    1 " LATIN SMALL LETTER E WITH DIAERESIS " 
	       "16r00EC"    0 " invalid " 
	       "16r00ED"    1 " LATIN SMALL LETTER I WITH ACUTE " 
	       "16r00EE"    1 " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
	       "16r00EF"    0 " invalid " 
	       "16r00F0"    0 " invalid " 
	       "16r00F1"    0 " invalid " 
	       "16r00F2"    0 " invalid " 
	       "16r00F3"    0 " invalid " 
	       "16r00F4"    1 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
	       "16r00F5"    1 " LATIN SMALL LETTER O WITH TILDE " 
	       "16r00F6"    1 " LATIN SMALL LETTER O WITH DIAERESIS " 
	       "16r00F7"    1 " DIVISION SIGN " 
	       "16r00F8"    1 " LATIN SMALL LETTER O WITH STROKE " 
	       "16r00F9"    0 " invalid " 
	       "16r00FA"    1 " LATIN SMALL LETTER U WITH ACUTE " 
	       "16r00FB"    1 " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
	       "16r00FC"    1 " LATIN SMALL LETTER U WITH DIAERESIS " 
	       "16r00FD"    0 " invalid " 
	       "16r00FE"    0 " invalid " 
	       "16r00FF"    0 " invalid " 
	    ] at:(unicode - 160)) ~~ 0 ifTrue:[^ unicode].
	    ^ self encodingError.
	].
	[
	    |t|
	    t := #[
	       "16r0100"    16rC0 " LATIN CAPITAL LETTER A WITH MACRON " 
	       "16r0101"    16rE0 " LATIN SMALL LETTER A WITH MACRON " 
	       "16r0102"    16r00 " invalid " 
	       "16r0103"    16r00 " invalid " 
	       "16r0104"    16rA1 " LATIN CAPITAL LETTER A WITH OGONEK " 
	       "16r0105"    16rB1 " LATIN SMALL LETTER A WITH OGONEK " 
	       "16r0106"    16r00 " invalid " 
	       "16r0107"    16r00 " invalid " 
	       "16r0108"    16r00 " invalid " 
	       "16r0109"    16r00 " invalid " 
	       "16r010A"    16r00 " invalid " 
	       "16r010B"    16r00 " invalid " 
	       "16r010C"    16rC8 " LATIN CAPITAL LETTER C WITH CARON " 
	       "16r010D"    16rE8 " LATIN SMALL LETTER C WITH CARON " 
	       "16r010E"    16r00 " invalid " 
	       "16r010F"    16r00 " invalid " 
	       "16r0110"    16rD0 " LATIN CAPITAL LETTER D WITH STROKE " 
	       "16r0111"    16rF0 " LATIN SMALL LETTER D WITH STROKE " 
	       "16r0112"    16rAA " LATIN CAPITAL LETTER E WITH MACRON " 
	       "16r0113"    16rBA " LATIN SMALL LETTER E WITH MACRON " 
	       "16r0114"    16r00 " invalid " 
	       "16r0115"    16r00 " invalid " 
	       "16r0116"    16rCC " LATIN CAPITAL LETTER E WITH DOT ABOVE " 
	       "16r0117"    16rEC " LATIN SMALL LETTER E WITH DOT ABOVE " 
	       "16r0118"    16rCA " LATIN CAPITAL LETTER E WITH OGONEK " 
	       "16r0119"    16rEA " LATIN SMALL LETTER E WITH OGONEK " 
	       "16r011A"    16r00 " invalid " 
	       "16r011B"    16r00 " invalid " 
	       "16r011C"    16r00 " invalid " 
	       "16r011D"    16r00 " invalid " 
	       "16r011E"    16r00 " invalid " 
	       "16r011F"    16r00 " invalid " 
	       "16r0120"    16r00 " invalid " 
	       "16r0121"    16r00 " invalid " 
	       "16r0122"    16rAB " LATIN CAPITAL LETTER G WITH CEDILLA " 
	       "16r0123"    16rBB " LATIN SMALL LETTER G WITH CEDILLA " 
	       "16r0124"    16r00 " invalid " 
	       "16r0125"    16r00 " invalid " 
	       "16r0126"    16r00 " invalid " 
	       "16r0127"    16r00 " invalid " 
	       "16r0128"    16rA5 " LATIN CAPITAL LETTER I WITH TILDE " 
	       "16r0129"    16rB5 " LATIN SMALL LETTER I WITH TILDE " 
	       "16r012A"    16rCF " LATIN CAPITAL LETTER I WITH MACRON " 
	       "16r012B"    16rEF " LATIN SMALL LETTER I WITH MACRON " 
	       "16r012C"    16r00 " invalid " 
	       "16r012D"    16r00 " invalid " 
	       "16r012E"    16rC7 " LATIN CAPITAL LETTER I WITH OGONEK " 
	       "16r012F"    16rE7 " LATIN SMALL LETTER I WITH OGONEK " 
	       "16r0130"    16r00 " invalid " 
	       "16r0131"    16r00 " invalid " 
	       "16r0132"    16r00 " invalid " 
	       "16r0133"    16r00 " invalid " 
	       "16r0134"    16r00 " invalid " 
	       "16r0135"    16r00 " invalid " 
	       "16r0136"    16rD3 " LATIN CAPITAL LETTER K WITH CEDILLA " 
	       "16r0137"    16rF3 " LATIN SMALL LETTER K WITH CEDILLA " 
	       "16r0138"    16rA2 " LATIN SMALL LETTER KRA " 
	       "16r0139"    16r00 " invalid " 
	       "16r013A"    16r00 " invalid " 
	       "16r013B"    16rA6 " LATIN CAPITAL LETTER L WITH CEDILLA " 
	       "16r013C"    16rB6 " LATIN SMALL LETTER L WITH CEDILLA " 
	       "16r013D"    16r00 " invalid " 
	       "16r013E"    16r00 " invalid " 
	       "16r013F"    16r00 " invalid " 
	       "16r0140"    16r00 " invalid " 
	       "16r0141"    16r00 " invalid " 
	       "16r0142"    16r00 " invalid " 
	       "16r0143"    16r00 " invalid " 
	       "16r0144"    16r00 " invalid " 
	       "16r0145"    16rD1 " LATIN CAPITAL LETTER N WITH CEDILLA " 
	       "16r0146"    16rF1 " LATIN SMALL LETTER N WITH CEDILLA " 
	       "16r0147"    16r00 " invalid " 
	       "16r0148"    16r00 " invalid " 
	       "16r0149"    16r00 " invalid " 
	       "16r014A"    16rBD " LATIN CAPITAL LETTER ENG " 
	       "16r014B"    16rBF " LATIN SMALL LETTER ENG " 
	       "16r014C"    16rD2 " LATIN CAPITAL LETTER O WITH MACRON " 
	       "16r014D"    16rF2 " LATIN SMALL LETTER O WITH MACRON " 
	       "16r014E"    16r00 " invalid " 
	       "16r014F"    16r00 " invalid " 
	       "16r0150"    16r00 " invalid " 
	       "16r0151"    16r00 " invalid " 
	       "16r0152"    16r00 " invalid " 
	       "16r0153"    16r00 " invalid " 
	       "16r0154"    16r00 " invalid " 
	       "16r0155"    16r00 " invalid " 
	       "16r0156"    16rA3 " LATIN CAPITAL LETTER R WITH CEDILLA " 
	       "16r0157"    16rB3 " LATIN SMALL LETTER R WITH CEDILLA " 
	       "16r0158"    16r00 " invalid " 
	       "16r0159"    16r00 " invalid " 
	       "16r015A"    16r00 " invalid " 
	       "16r015B"    16r00 " invalid " 
	       "16r015C"    16r00 " invalid " 
	       "16r015D"    16r00 " invalid " 
	       "16r015E"    16r00 " invalid " 
	       "16r015F"    16r00 " invalid " 
	       "16r0160"    16rA9 " LATIN CAPITAL LETTER S WITH CARON " 
	       "16r0161"    16rB9 " LATIN SMALL LETTER S WITH CARON " 
	       "16r0162"    16r00 " invalid " 
	       "16r0163"    16r00 " invalid " 
	       "16r0164"    16r00 " invalid " 
	       "16r0165"    16r00 " invalid " 
	       "16r0166"    16rAC " LATIN CAPITAL LETTER T WITH STROKE " 
	       "16r0167"    16rBC " LATIN SMALL LETTER T WITH STROKE " 
	       "16r0168"    16rDD " LATIN CAPITAL LETTER U WITH TILDE " 
	       "16r0169"    16rFD " LATIN SMALL LETTER U WITH TILDE " 
	       "16r016A"    16rDE " LATIN CAPITAL LETTER U WITH MACRON " 
	       "16r016B"    16rFE " LATIN SMALL LETTER U WITH MACRON " 
	       "16r016C"    16r00 " invalid " 
	       "16r016D"    16r00 " invalid " 
	       "16r016E"    16r00 " invalid " 
	       "16r016F"    16r00 " invalid " 
	       "16r0170"    16r00 " invalid " 
	       "16r0171"    16r00 " invalid " 
	       "16r0172"    16rD9 " LATIN CAPITAL LETTER U WITH OGONEK " 
	       "16r0173"    16rF9 " LATIN SMALL LETTER U WITH OGONEK " 
	       "16r0174"    16r00 " invalid " 
	       "16r0175"    16r00 " invalid " 
	       "16r0176"    16r00 " invalid " 
	       "16r0177"    16r00 " invalid " 
	       "16r0178"    16r00 " invalid " 
	       "16r0179"    16r00 " invalid " 
	       "16r017A"    16r00 " invalid " 
	       "16r017B"    16r00 " invalid " 
	       "16r017C"    16r00 " invalid " 
	       "16r017D"    16rAE " LATIN CAPITAL LETTER Z WITH CARON " 
	       "16r017E"    16rBE " LATIN SMALL LETTER Z WITH CARON " 
	       ] at:(unicode - 16rFF).
	    t == 0 ifFalse:[^ t].
	    ^ self encodingError
	] value.
    ].
    unicode <= 16r2C6 ifTrue:[
	^ self encodingError.
    ].
    unicode == 16r2C7 ifTrue:[
	^  "16r02C7" 16r00B7 " CARON " 
    ].
    unicode <= 16r2D8 ifTrue:[
	^ self encodingError.
    ].
    [
	|t|
	t := #[
	   "16r02D9"    16rFF " DOT ABOVE " 
	   "16r02DA"    16r00 " invalid " 
	   "16r02DB"    16rB2 " OGONEK " 
	   ] at:(unicode - 16r2D8).
	t == 0 ifFalse:[^ t].
	^ self encodingError
    ] value.
! !

!CharacterEncoder::ISO8859_5 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'ISO8859/8859-5.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-5.TXT

#
#       Name:             ISO 8859-5:1999 to Unicode
#       Unicode version:  3.0
#       Table version:    1.0
#       Table format:     Format A
#       Date:             1999 July 27
#       Authors:          Ken Whistler <kenw@sybase.com>
#
#       Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ISO/IEC 8859-5:1999 characters map into Unicode.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ISO/IEC 8859-5 code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ISO/IEC 8859-5 order.
#
#       Version history
#       1.0 version updates 0.1 version by adding mappings for all
#       control characters.
#
#       Updated versions of this file may be found in:
#               <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
#       Any comments or problems, contact <errata@unicode.org>
#       Please note that <errata@unicode.org> is an archival address;
#       notices will be checked, but do not expect an immediate response.
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x0080  #       <control>
0x81    0x0081  #       <control>
0x82    0x0082  #       <control>
0x83    0x0083  #       <control>
0x84    0x0084  #       <control>
0x85    0x0085  #       <control>
0x86    0x0086  #       <control>
0x87    0x0087  #       <control>
0x88    0x0088  #       <control>
0x89    0x0089  #       <control>
0x8A    0x008A  #       <control>
0x8B    0x008B  #       <control>
0x8C    0x008C  #       <control>
0x8D    0x008D  #       <control>
0x8E    0x008E  #       <control>
0x8F    0x008F  #       <control>
0x90    0x0090  #       <control>
0x91    0x0091  #       <control>
0x92    0x0092  #       <control>
0x93    0x0093  #       <control>
0x94    0x0094  #       <control>
0x95    0x0095  #       <control>
0x96    0x0096  #       <control>
0x97    0x0097  #       <control>
0x98    0x0098  #       <control>
0x99    0x0099  #       <control>
0x9A    0x009A  #       <control>
0x9B    0x009B  #       <control>
0x9C    0x009C  #       <control>
0x9D    0x009D  #       <control>
0x9E    0x009E  #       <control>
0x9F    0x009F  #       <control>
0xA0    0x00A0  #       NO-BREAK SPACE
0xA1    0x0401  #       CYRILLIC CAPITAL LETTER IO
0xA2    0x0402  #       CYRILLIC CAPITAL LETTER DJE
0xA3    0x0403  #       CYRILLIC CAPITAL LETTER GJE
0xA4    0x0404  #       CYRILLIC CAPITAL LETTER UKRAINIAN IE
0xA5    0x0405  #       CYRILLIC CAPITAL LETTER DZE
0xA6    0x0406  #       CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
0xA7    0x0407  #       CYRILLIC CAPITAL LETTER YI
0xA8    0x0408  #       CYRILLIC CAPITAL LETTER JE
0xA9    0x0409  #       CYRILLIC CAPITAL LETTER LJE
0xAA    0x040A  #       CYRILLIC CAPITAL LETTER NJE
0xAB    0x040B  #       CYRILLIC CAPITAL LETTER TSHE
0xAC    0x040C  #       CYRILLIC CAPITAL LETTER KJE
0xAD    0x00AD  #       SOFT HYPHEN
0xAE    0x040E  #       CYRILLIC CAPITAL LETTER SHORT U
0xAF    0x040F  #       CYRILLIC CAPITAL LETTER DZHE
0xB0    0x0410  #       CYRILLIC CAPITAL LETTER A
0xB1    0x0411  #       CYRILLIC CAPITAL LETTER BE
0xB2    0x0412  #       CYRILLIC CAPITAL LETTER VE
0xB3    0x0413  #       CYRILLIC CAPITAL LETTER GHE
0xB4    0x0414  #       CYRILLIC CAPITAL LETTER DE
0xB5    0x0415  #       CYRILLIC CAPITAL LETTER IE
0xB6    0x0416  #       CYRILLIC CAPITAL LETTER ZHE
0xB7    0x0417  #       CYRILLIC CAPITAL LETTER ZE
0xB8    0x0418  #       CYRILLIC CAPITAL LETTER I
0xB9    0x0419  #       CYRILLIC CAPITAL LETTER SHORT I
0xBA    0x041A  #       CYRILLIC CAPITAL LETTER KA
0xBB    0x041B  #       CYRILLIC CAPITAL LETTER EL
0xBC    0x041C  #       CYRILLIC CAPITAL LETTER EM
0xBD    0x041D  #       CYRILLIC CAPITAL LETTER EN
0xBE    0x041E  #       CYRILLIC CAPITAL LETTER O
0xBF    0x041F  #       CYRILLIC CAPITAL LETTER PE
0xC0    0x0420  #       CYRILLIC CAPITAL LETTER ER
0xC1    0x0421  #       CYRILLIC CAPITAL LETTER ES
0xC2    0x0422  #       CYRILLIC CAPITAL LETTER TE
0xC3    0x0423  #       CYRILLIC CAPITAL LETTER U
0xC4    0x0424  #       CYRILLIC CAPITAL LETTER EF
0xC5    0x0425  #       CYRILLIC CAPITAL LETTER HA
0xC6    0x0426  #       CYRILLIC CAPITAL LETTER TSE
0xC7    0x0427  #       CYRILLIC CAPITAL LETTER CHE
0xC8    0x0428  #       CYRILLIC CAPITAL LETTER SHA
0xC9    0x0429  #       CYRILLIC CAPITAL LETTER SHCHA
0xCA    0x042A  #       CYRILLIC CAPITAL LETTER HARD SIGN
0xCB    0x042B  #       CYRILLIC CAPITAL LETTER YERU
0xCC    0x042C  #       CYRILLIC CAPITAL LETTER SOFT SIGN
0xCD    0x042D  #       CYRILLIC CAPITAL LETTER E
0xCE    0x042E  #       CYRILLIC CAPITAL LETTER YU
0xCF    0x042F  #       CYRILLIC CAPITAL LETTER YA
0xD0    0x0430  #       CYRILLIC SMALL LETTER A
0xD1    0x0431  #       CYRILLIC SMALL LETTER BE
0xD2    0x0432  #       CYRILLIC SMALL LETTER VE
0xD3    0x0433  #       CYRILLIC SMALL LETTER GHE
0xD4    0x0434  #       CYRILLIC SMALL LETTER DE
0xD5    0x0435  #       CYRILLIC SMALL LETTER IE
0xD6    0x0436  #       CYRILLIC SMALL LETTER ZHE
0xD7    0x0437  #       CYRILLIC SMALL LETTER ZE
0xD8    0x0438  #       CYRILLIC SMALL LETTER I
0xD9    0x0439  #       CYRILLIC SMALL LETTER SHORT I
0xDA    0x043A  #       CYRILLIC SMALL LETTER KA
0xDB    0x043B  #       CYRILLIC SMALL LETTER EL
0xDC    0x043C  #       CYRILLIC SMALL LETTER EM
0xDD    0x043D  #       CYRILLIC SMALL LETTER EN
0xDE    0x043E  #       CYRILLIC SMALL LETTER O
0xDF    0x043F  #       CYRILLIC SMALL LETTER PE
0xE0    0x0440  #       CYRILLIC SMALL LETTER ER
0xE1    0x0441  #       CYRILLIC SMALL LETTER ES
0xE2    0x0442  #       CYRILLIC SMALL LETTER TE
0xE3    0x0443  #       CYRILLIC SMALL LETTER U
0xE4    0x0444  #       CYRILLIC SMALL LETTER EF
0xE5    0x0445  #       CYRILLIC SMALL LETTER HA
0xE6    0x0446  #       CYRILLIC SMALL LETTER TSE
0xE7    0x0447  #       CYRILLIC SMALL LETTER CHE
0xE8    0x0448  #       CYRILLIC SMALL LETTER SHA
0xE9    0x0449  #       CYRILLIC SMALL LETTER SHCHA
0xEA    0x044A  #       CYRILLIC SMALL LETTER HARD SIGN
0xEB    0x044B  #       CYRILLIC SMALL LETTER YERU
0xEC    0x044C  #       CYRILLIC SMALL LETTER SOFT SIGN
0xED    0x044D  #       CYRILLIC SMALL LETTER E
0xEE    0x044E  #       CYRILLIC SMALL LETTER YU
0xEF    0x044F  #       CYRILLIC SMALL LETTER YA
0xF0    0x2116  #       NUMERO SIGN
0xF1    0x0451  #       CYRILLIC SMALL LETTER IO
0xF2    0x0452  #       CYRILLIC SMALL LETTER DJE
0xF3    0x0453  #       CYRILLIC SMALL LETTER GJE
0xF4    0x0454  #       CYRILLIC SMALL LETTER UKRAINIAN IE
0xF5    0x0455  #       CYRILLIC SMALL LETTER DZE
0xF6    0x0456  #       CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
0xF7    0x0457  #       CYRILLIC SMALL LETTER YI
0xF8    0x0458  #       CYRILLIC SMALL LETTER JE
0xF9    0x0459  #       CYRILLIC SMALL LETTER LJE
0xFA    0x045A  #       CYRILLIC SMALL LETTER NJE
0xFB    0x045B  #       CYRILLIC SMALL LETTER TSHE
0xFC    0x045C  #       CYRILLIC SMALL LETTER KJE
0xFD    0x00A7  #       SECTION SIGN
0xFE    0x045E  #       CYRILLIC SMALL LETTER SHORT U
0xFF    0x045F  #       CYRILLIC SMALL LETTER DZHE

"
! !

!CharacterEncoder::ISO8859_5 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-5' 'iso-8859-5' 'cyrillic' 'iso-ir-144' )
!

userFriendlyNameOfEncoding
    ^ 'Cyrillic'
! !

!CharacterEncoder::ISO8859_5 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16rA0 ifTrue:[ ^ code ].
    code > 16rFF ifTrue:[
	^ self decodingError.
    ].
    ^ #(
       "16r00A1"    16r0401 " CYRILLIC CAPITAL LETTER IO " 
       "16r00A2"    16r0402 " CYRILLIC CAPITAL LETTER DJE " 
       "16r00A3"    16r0403 " CYRILLIC CAPITAL LETTER GJE " 
       "16r00A4"    16r0404 " CYRILLIC CAPITAL LETTER UKRAINIAN IE " 
       "16r00A5"    16r0405 " CYRILLIC CAPITAL LETTER DZE " 
       "16r00A6"    16r0406 " CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I " 
       "16r00A7"    16r0407 " CYRILLIC CAPITAL LETTER YI " 
       "16r00A8"    16r0408 " CYRILLIC CAPITAL LETTER JE " 
       "16r00A9"    16r0409 " CYRILLIC CAPITAL LETTER LJE " 
       "16r00AA"    16r040A " CYRILLIC CAPITAL LETTER NJE " 
       "16r00AB"    16r040B " CYRILLIC CAPITAL LETTER TSHE " 
       "16r00AC"    16r040C " CYRILLIC CAPITAL LETTER KJE " 
       "16r00AD"    16r00AD " SOFT HYPHEN " 
       "16r00AE"    16r040E " CYRILLIC CAPITAL LETTER SHORT U " 
       "16r00AF"    16r040F " CYRILLIC CAPITAL LETTER DZHE " 
       "16r00B0"    16r0410 " CYRILLIC CAPITAL LETTER A " 
       "16r00B1"    16r0411 " CYRILLIC CAPITAL LETTER BE " 
       "16r00B2"    16r0412 " CYRILLIC CAPITAL LETTER VE " 
       "16r00B3"    16r0413 " CYRILLIC CAPITAL LETTER GHE " 
       "16r00B4"    16r0414 " CYRILLIC CAPITAL LETTER DE " 
       "16r00B5"    16r0415 " CYRILLIC CAPITAL LETTER IE " 
       "16r00B6"    16r0416 " CYRILLIC CAPITAL LETTER ZHE " 
       "16r00B7"    16r0417 " CYRILLIC CAPITAL LETTER ZE " 
       "16r00B8"    16r0418 " CYRILLIC CAPITAL LETTER I " 
       "16r00B9"    16r0419 " CYRILLIC CAPITAL LETTER SHORT I " 
       "16r00BA"    16r041A " CYRILLIC CAPITAL LETTER KA " 
       "16r00BB"    16r041B " CYRILLIC CAPITAL LETTER EL " 
       "16r00BC"    16r041C " CYRILLIC CAPITAL LETTER EM " 
       "16r00BD"    16r041D " CYRILLIC CAPITAL LETTER EN " 
       "16r00BE"    16r041E " CYRILLIC CAPITAL LETTER O " 
       "16r00BF"    16r041F " CYRILLIC CAPITAL LETTER PE " 
       "16r00C0"    16r0420 " CYRILLIC CAPITAL LETTER ER " 
       "16r00C1"    16r0421 " CYRILLIC CAPITAL LETTER ES " 
       "16r00C2"    16r0422 " CYRILLIC CAPITAL LETTER TE " 
       "16r00C3"    16r0423 " CYRILLIC CAPITAL LETTER U " 
       "16r00C4"    16r0424 " CYRILLIC CAPITAL LETTER EF " 
       "16r00C5"    16r0425 " CYRILLIC CAPITAL LETTER HA " 
       "16r00C6"    16r0426 " CYRILLIC CAPITAL LETTER TSE " 
       "16r00C7"    16r0427 " CYRILLIC CAPITAL LETTER CHE " 
       "16r00C8"    16r0428 " CYRILLIC CAPITAL LETTER SHA " 
       "16r00C9"    16r0429 " CYRILLIC CAPITAL LETTER SHCHA " 
       "16r00CA"    16r042A " CYRILLIC CAPITAL LETTER HARD SIGN " 
       "16r00CB"    16r042B " CYRILLIC CAPITAL LETTER YERU " 
       "16r00CC"    16r042C " CYRILLIC CAPITAL LETTER SOFT SIGN " 
       "16r00CD"    16r042D " CYRILLIC CAPITAL LETTER E " 
       "16r00CE"    16r042E " CYRILLIC CAPITAL LETTER YU " 
       "16r00CF"    16r042F " CYRILLIC CAPITAL LETTER YA " 
       "16r00D0"    16r0430 " CYRILLIC SMALL LETTER A " 
       "16r00D1"    16r0431 " CYRILLIC SMALL LETTER BE " 
       "16r00D2"    16r0432 " CYRILLIC SMALL LETTER VE " 
       "16r00D3"    16r0433 " CYRILLIC SMALL LETTER GHE " 
       "16r00D4"    16r0434 " CYRILLIC SMALL LETTER DE " 
       "16r00D5"    16r0435 " CYRILLIC SMALL LETTER IE " 
       "16r00D6"    16r0436 " CYRILLIC SMALL LETTER ZHE " 
       "16r00D7"    16r0437 " CYRILLIC SMALL LETTER ZE " 
       "16r00D8"    16r0438 " CYRILLIC SMALL LETTER I " 
       "16r00D9"    16r0439 " CYRILLIC SMALL LETTER SHORT I " 
       "16r00DA"    16r043A " CYRILLIC SMALL LETTER KA " 
       "16r00DB"    16r043B " CYRILLIC SMALL LETTER EL " 
       "16r00DC"    16r043C " CYRILLIC SMALL LETTER EM " 
       "16r00DD"    16r043D " CYRILLIC SMALL LETTER EN " 
       "16r00DE"    16r043E " CYRILLIC SMALL LETTER O " 
       "16r00DF"    16r043F " CYRILLIC SMALL LETTER PE " 
       "16r00E0"    16r0440 " CYRILLIC SMALL LETTER ER " 
       "16r00E1"    16r0441 " CYRILLIC SMALL LETTER ES " 
       "16r00E2"    16r0442 " CYRILLIC SMALL LETTER TE " 
       "16r00E3"    16r0443 " CYRILLIC SMALL LETTER U " 
       "16r00E4"    16r0444 " CYRILLIC SMALL LETTER EF " 
       "16r00E5"    16r0445 " CYRILLIC SMALL LETTER HA " 
       "16r00E6"    16r0446 " CYRILLIC SMALL LETTER TSE " 
       "16r00E7"    16r0447 " CYRILLIC SMALL LETTER CHE " 
       "16r00E8"    16r0448 " CYRILLIC SMALL LETTER SHA " 
       "16r00E9"    16r0449 " CYRILLIC SMALL LETTER SHCHA " 
       "16r00EA"    16r044A " CYRILLIC SMALL LETTER HARD SIGN " 
       "16r00EB"    16r044B " CYRILLIC SMALL LETTER YERU " 
       "16r00EC"    16r044C " CYRILLIC SMALL LETTER SOFT SIGN " 
       "16r00ED"    16r044D " CYRILLIC SMALL LETTER E " 
       "16r00EE"    16r044E " CYRILLIC SMALL LETTER YU " 
       "16r00EF"    16r044F " CYRILLIC SMALL LETTER YA " 
       "16r00F0"    16r2116 " NUMERO SIGN " 
       "16r00F1"    16r0451 " CYRILLIC SMALL LETTER IO " 
       "16r00F2"    16r0452 " CYRILLIC SMALL LETTER DJE " 
       "16r00F3"    16r0453 " CYRILLIC SMALL LETTER GJE " 
       "16r00F4"    16r0454 " CYRILLIC SMALL LETTER UKRAINIAN IE " 
       "16r00F5"    16r0455 " CYRILLIC SMALL LETTER DZE " 
       "16r00F6"    16r0456 " CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I " 
       "16r00F7"    16r0457 " CYRILLIC SMALL LETTER YI " 
       "16r00F8"    16r0458 " CYRILLIC SMALL LETTER JE " 
       "16r00F9"    16r0459 " CYRILLIC SMALL LETTER LJE " 
       "16r00FA"    16r045A " CYRILLIC SMALL LETTER NJE " 
       "16r00FB"    16r045B " CYRILLIC SMALL LETTER TSHE " 
       "16r00FC"    16r045C " CYRILLIC SMALL LETTER KJE " 
       "16r00FD"    16r00A7 " SECTION SIGN " 
       "16r00FE"    16r045E " CYRILLIC SMALL LETTER SHORT U " 
       "16r00FF"    16r045F " CYRILLIC SMALL LETTER DZHE " 
       ) at:(code - 16rA0).
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16rA0 ifTrue:[ ^ unicode ].
    unicode > 16r2116 ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r45F ifTrue:[
	unicode <= 16rAD ifTrue:[
	    [
		|t|
		t := #[
		   "16r00A1"    16r00 " invalid " 
		   "16r00A2"    16r00 " invalid " 
		   "16r00A3"    16r00 " invalid " 
		   "16r00A4"    16r00 " invalid " 
		   "16r00A5"    16r00 " invalid " 
		   "16r00A6"    16r00 " invalid " 
		   "16r00A7"    16rFD " SECTION SIGN " 
		   "16r00A8"    16r00 " invalid " 
		   "16r00A9"    16r00 " invalid " 
		   "16r00AA"    16r00 " invalid " 
		   "16r00AB"    16r00 " invalid " 
		   "16r00AC"    16r00 " invalid " 
		   "16r00AD"    16rAD " SOFT HYPHEN " 
		   ] at:(unicode - 16rA0).
		t == 0 ifFalse:[^ t].
		^ self encodingError
	    ] value.
	].
	unicode <= 16r400 ifTrue:[
	    ^ self encodingError.
	].
	[
	    |t|
	    t := #[
	       "16r0401"    16rA1 " CYRILLIC CAPITAL LETTER IO " 
	       "16r0402"    16rA2 " CYRILLIC CAPITAL LETTER DJE " 
	       "16r0403"    16rA3 " CYRILLIC CAPITAL LETTER GJE " 
	       "16r0404"    16rA4 " CYRILLIC CAPITAL LETTER UKRAINIAN IE " 
	       "16r0405"    16rA5 " CYRILLIC CAPITAL LETTER DZE " 
	       "16r0406"    16rA6 " CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I " 
	       "16r0407"    16rA7 " CYRILLIC CAPITAL LETTER YI " 
	       "16r0408"    16rA8 " CYRILLIC CAPITAL LETTER JE " 
	       "16r0409"    16rA9 " CYRILLIC CAPITAL LETTER LJE " 
	       "16r040A"    16rAA " CYRILLIC CAPITAL LETTER NJE " 
	       "16r040B"    16rAB " CYRILLIC CAPITAL LETTER TSHE " 
	       "16r040C"    16rAC " CYRILLIC CAPITAL LETTER KJE " 
	       "16r040D"    16r00 " invalid " 
	       "16r040E"    16rAE " CYRILLIC CAPITAL LETTER SHORT U " 
	       "16r040F"    16rAF " CYRILLIC CAPITAL LETTER DZHE " 
	       "16r0410"    16rB0 " CYRILLIC CAPITAL LETTER A " 
	       "16r0411"    16rB1 " CYRILLIC CAPITAL LETTER BE " 
	       "16r0412"    16rB2 " CYRILLIC CAPITAL LETTER VE " 
	       "16r0413"    16rB3 " CYRILLIC CAPITAL LETTER GHE " 
	       "16r0414"    16rB4 " CYRILLIC CAPITAL LETTER DE " 
	       "16r0415"    16rB5 " CYRILLIC CAPITAL LETTER IE " 
	       "16r0416"    16rB6 " CYRILLIC CAPITAL LETTER ZHE " 
	       "16r0417"    16rB7 " CYRILLIC CAPITAL LETTER ZE " 
	       "16r0418"    16rB8 " CYRILLIC CAPITAL LETTER I " 
	       "16r0419"    16rB9 " CYRILLIC CAPITAL LETTER SHORT I " 
	       "16r041A"    16rBA " CYRILLIC CAPITAL LETTER KA " 
	       "16r041B"    16rBB " CYRILLIC CAPITAL LETTER EL " 
	       "16r041C"    16rBC " CYRILLIC CAPITAL LETTER EM " 
	       "16r041D"    16rBD " CYRILLIC CAPITAL LETTER EN " 
	       "16r041E"    16rBE " CYRILLIC CAPITAL LETTER O " 
	       "16r041F"    16rBF " CYRILLIC CAPITAL LETTER PE " 
	       "16r0420"    16rC0 " CYRILLIC CAPITAL LETTER ER " 
	       "16r0421"    16rC1 " CYRILLIC CAPITAL LETTER ES " 
	       "16r0422"    16rC2 " CYRILLIC CAPITAL LETTER TE " 
	       "16r0423"    16rC3 " CYRILLIC CAPITAL LETTER U " 
	       "16r0424"    16rC4 " CYRILLIC CAPITAL LETTER EF " 
	       "16r0425"    16rC5 " CYRILLIC CAPITAL LETTER HA " 
	       "16r0426"    16rC6 " CYRILLIC CAPITAL LETTER TSE " 
	       "16r0427"    16rC7 " CYRILLIC CAPITAL LETTER CHE " 
	       "16r0428"    16rC8 " CYRILLIC CAPITAL LETTER SHA " 
	       "16r0429"    16rC9 " CYRILLIC CAPITAL LETTER SHCHA " 
	       "16r042A"    16rCA " CYRILLIC CAPITAL LETTER HARD SIGN " 
	       "16r042B"    16rCB " CYRILLIC CAPITAL LETTER YERU " 
	       "16r042C"    16rCC " CYRILLIC CAPITAL LETTER SOFT SIGN " 
	       "16r042D"    16rCD " CYRILLIC CAPITAL LETTER E " 
	       "16r042E"    16rCE " CYRILLIC CAPITAL LETTER YU " 
	       "16r042F"    16rCF " CYRILLIC CAPITAL LETTER YA " 
	       "16r0430"    16rD0 " CYRILLIC SMALL LETTER A " 
	       "16r0431"    16rD1 " CYRILLIC SMALL LETTER BE " 
	       "16r0432"    16rD2 " CYRILLIC SMALL LETTER VE " 
	       "16r0433"    16rD3 " CYRILLIC SMALL LETTER GHE " 
	       "16r0434"    16rD4 " CYRILLIC SMALL LETTER DE " 
	       "16r0435"    16rD5 " CYRILLIC SMALL LETTER IE " 
	       "16r0436"    16rD6 " CYRILLIC SMALL LETTER ZHE " 
	       "16r0437"    16rD7 " CYRILLIC SMALL LETTER ZE " 
	       "16r0438"    16rD8 " CYRILLIC SMALL LETTER I " 
	       "16r0439"    16rD9 " CYRILLIC SMALL LETTER SHORT I " 
	       "16r043A"    16rDA " CYRILLIC SMALL LETTER KA " 
	       "16r043B"    16rDB " CYRILLIC SMALL LETTER EL " 
	       "16r043C"    16rDC " CYRILLIC SMALL LETTER EM " 
	       "16r043D"    16rDD " CYRILLIC SMALL LETTER EN " 
	       "16r043E"    16rDE " CYRILLIC SMALL LETTER O " 
	       "16r043F"    16rDF " CYRILLIC SMALL LETTER PE " 
	       "16r0440"    16rE0 " CYRILLIC SMALL LETTER ER " 
	       "16r0441"    16rE1 " CYRILLIC SMALL LETTER ES " 
	       "16r0442"    16rE2 " CYRILLIC SMALL LETTER TE " 
	       "16r0443"    16rE3 " CYRILLIC SMALL LETTER U " 
	       "16r0444"    16rE4 " CYRILLIC SMALL LETTER EF " 
	       "16r0445"    16rE5 " CYRILLIC SMALL LETTER HA " 
	       "16r0446"    16rE6 " CYRILLIC SMALL LETTER TSE " 
	       "16r0447"    16rE7 " CYRILLIC SMALL LETTER CHE " 
	       "16r0448"    16rE8 " CYRILLIC SMALL LETTER SHA " 
	       "16r0449"    16rE9 " CYRILLIC SMALL LETTER SHCHA " 
	       "16r044A"    16rEA " CYRILLIC SMALL LETTER HARD SIGN " 
	       "16r044B"    16rEB " CYRILLIC SMALL LETTER YERU " 
	       "16r044C"    16rEC " CYRILLIC SMALL LETTER SOFT SIGN " 
	       "16r044D"    16rED " CYRILLIC SMALL LETTER E " 
	       "16r044E"    16rEE " CYRILLIC SMALL LETTER YU " 
	       "16r044F"    16rEF " CYRILLIC SMALL LETTER YA " 
	       "16r0450"    16r00 " invalid " 
	       "16r0451"    16rF1 " CYRILLIC SMALL LETTER IO " 
	       "16r0452"    16rF2 " CYRILLIC SMALL LETTER DJE " 
	       "16r0453"    16rF3 " CYRILLIC SMALL LETTER GJE " 
	       "16r0454"    16rF4 " CYRILLIC SMALL LETTER UKRAINIAN IE " 
	       "16r0455"    16rF5 " CYRILLIC SMALL LETTER DZE " 
	       "16r0456"    16rF6 " CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I " 
	       "16r0457"    16rF7 " CYRILLIC SMALL LETTER YI " 
	       "16r0458"    16rF8 " CYRILLIC SMALL LETTER JE " 
	       "16r0459"    16rF9 " CYRILLIC SMALL LETTER LJE " 
	       "16r045A"    16rFA " CYRILLIC SMALL LETTER NJE " 
	       "16r045B"    16rFB " CYRILLIC SMALL LETTER TSHE " 
	       "16r045C"    16rFC " CYRILLIC SMALL LETTER KJE " 
	       "16r045D"    16r00 " invalid " 
	       "16r045E"    16rFE " CYRILLIC SMALL LETTER SHORT U " 
	       "16r045F"    16rFF " CYRILLIC SMALL LETTER DZHE " 
	       ] at:(unicode - 16r400).
	    t == 0 ifFalse:[^ t].
	    ^ self encodingError
	] value.
    ].
    unicode <= 16r2115 ifTrue:[
	^ self encodingError.
    ].
    ^  "16r2116" 16r00F0 " NUMERO SIGN " 
! !

!CharacterEncoder::ISO8859_6 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'ISO8859/8859-6.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-6.TXT

#
#       Name:             ISO 8859-6:1999 to Unicode
#       Unicode version:  3.0
#       Table version:    1.0
#       Table format:     Format A
#       Date:             1999 July 27
#       Authors:          Ken Whistler <kenw@sybase.com>
#
#       Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ISO/IEC 8859-6:1999 characters map into Unicode.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ISO/IEC 8859-6 code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ISO/IEC 8859-6 order.
#
#       Version history
#       1.0 version updates 0.1 version by adding mappings for all
#       control characters.
#       0x30..0x39 remapped to the ASCII digits (U+0030..U+0039) instead
#       of the Arabic digits (U+0660..U+0669).
#
#       Updated versions of this file may be found in:
#               <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
#       Any comments or problems, contact <errata@unicode.org>
#       Please note that <errata@unicode.org> is an archival address;
#       notices will be checked, but do not expect an immediate response.
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x0080  #       <control>
0x81    0x0081  #       <control>
0x82    0x0082  #       <control>
0x83    0x0083  #       <control>
0x84    0x0084  #       <control>
0x85    0x0085  #       <control>
0x86    0x0086  #       <control>
0x87    0x0087  #       <control>
0x88    0x0088  #       <control>
0x89    0x0089  #       <control>
0x8A    0x008A  #       <control>
0x8B    0x008B  #       <control>
0x8C    0x008C  #       <control>
0x8D    0x008D  #       <control>
0x8E    0x008E  #       <control>
0x8F    0x008F  #       <control>
0x90    0x0090  #       <control>
0x91    0x0091  #       <control>
0x92    0x0092  #       <control>
0x93    0x0093  #       <control>
0x94    0x0094  #       <control>
0x95    0x0095  #       <control>
0x96    0x0096  #       <control>
0x97    0x0097  #       <control>
0x98    0x0098  #       <control>
0x99    0x0099  #       <control>
0x9A    0x009A  #       <control>
0x9B    0x009B  #       <control>
0x9C    0x009C  #       <control>
0x9D    0x009D  #       <control>
0x9E    0x009E  #       <control>
0x9F    0x009F  #       <control>
0xA0    0x00A0  #       NO-BREAK SPACE
0xA4    0x00A4  #       CURRENCY SIGN
0xAC    0x060C  #       ARABIC COMMA
0xAD    0x00AD  #       SOFT HYPHEN
0xBB    0x061B  #       ARABIC SEMICOLON
0xBF    0x061F  #       ARABIC QUESTION MARK
0xC1    0x0621  #       ARABIC LETTER HAMZA
0xC2    0x0622  #       ARABIC LETTER ALEF WITH MADDA ABOVE
0xC3    0x0623  #       ARABIC LETTER ALEF WITH HAMZA ABOVE
0xC4    0x0624  #       ARABIC LETTER WAW WITH HAMZA ABOVE
0xC5    0x0625  #       ARABIC LETTER ALEF WITH HAMZA BELOW
0xC6    0x0626  #       ARABIC LETTER YEH WITH HAMZA ABOVE
0xC7    0x0627  #       ARABIC LETTER ALEF
0xC8    0x0628  #       ARABIC LETTER BEH
0xC9    0x0629  #       ARABIC LETTER TEH MARBUTA
0xCA    0x062A  #       ARABIC LETTER TEH
0xCB    0x062B  #       ARABIC LETTER THEH
0xCC    0x062C  #       ARABIC LETTER JEEM
0xCD    0x062D  #       ARABIC LETTER HAH
0xCE    0x062E  #       ARABIC LETTER KHAH
0xCF    0x062F  #       ARABIC LETTER DAL
0xD0    0x0630  #       ARABIC LETTER THAL
0xD1    0x0631  #       ARABIC LETTER REH
0xD2    0x0632  #       ARABIC LETTER ZAIN
0xD3    0x0633  #       ARABIC LETTER SEEN
0xD4    0x0634  #       ARABIC LETTER SHEEN
0xD5    0x0635  #       ARABIC LETTER SAD
0xD6    0x0636  #       ARABIC LETTER DAD
0xD7    0x0637  #       ARABIC LETTER TAH
0xD8    0x0638  #       ARABIC LETTER ZAH
0xD9    0x0639  #       ARABIC LETTER AIN
0xDA    0x063A  #       ARABIC LETTER GHAIN
0xE0    0x0640  #       ARABIC TATWEEL
0xE1    0x0641  #       ARABIC LETTER FEH
0xE2    0x0642  #       ARABIC LETTER QAF
0xE3    0x0643  #       ARABIC LETTER KAF
0xE4    0x0644  #       ARABIC LETTER LAM
0xE5    0x0645  #       ARABIC LETTER MEEM
0xE6    0x0646  #       ARABIC LETTER NOON
0xE7    0x0647  #       ARABIC LETTER HEH
0xE8    0x0648  #       ARABIC LETTER WAW
0xE9    0x0649  #       ARABIC LETTER ALEF MAKSURA
0xEA    0x064A  #       ARABIC LETTER YEH
0xEB    0x064B  #       ARABIC FATHATAN
0xEC    0x064C  #       ARABIC DAMMATAN
0xED    0x064D  #       ARABIC KASRATAN
0xEE    0x064E  #       ARABIC FATHA
0xEF    0x064F  #       ARABIC DAMMA
0xF0    0x0650  #       ARABIC KASRA
0xF1    0x0651  #       ARABIC SHADDA
0xF2    0x0652  #       ARABIC SUKUN

"
! !

!CharacterEncoder::ISO8859_6 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-6' 'iso-8859-6' 'arabic' 'asmo-708' 'ecma-114' 'iso-ir-127' )
!

userFriendlyNameOfEncoding
    ^ 'Arabic'
! !

!CharacterEncoder::ISO8859_6 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16rA0 ifTrue:[ ^ code ].
    code > 16rF2 ifTrue:[
	^ self decodingError.
    ].
    [
	|t|
	t := #(
	   "16r00A1"    16r0000 " invalid " 
	   "16r00A2"    16r0000 " invalid " 
	   "16r00A3"    16r0000 " invalid " 
	   "16r00A4"    16r00A4 " CURRENCY SIGN " 
	   "16r00A5"    16r0000 " invalid " 
	   "16r00A6"    16r0000 " invalid " 
	   "16r00A7"    16r0000 " invalid " 
	   "16r00A8"    16r0000 " invalid " 
	   "16r00A9"    16r0000 " invalid " 
	   "16r00AA"    16r0000 " invalid " 
	   "16r00AB"    16r0000 " invalid " 
	   "16r00AC"    16r060C " ARABIC COMMA " 
	   "16r00AD"    16r00AD " SOFT HYPHEN " 
	   "16r00AE"    16r0000 " invalid " 
	   "16r00AF"    16r0000 " invalid " 
	   "16r00B0"    16r0000 " invalid " 
	   "16r00B1"    16r0000 " invalid " 
	   "16r00B2"    16r0000 " invalid " 
	   "16r00B3"    16r0000 " invalid " 
	   "16r00B4"    16r0000 " invalid " 
	   "16r00B5"    16r0000 " invalid " 
	   "16r00B6"    16r0000 " invalid " 
	   "16r00B7"    16r0000 " invalid " 
	   "16r00B8"    16r0000 " invalid " 
	   "16r00B9"    16r0000 " invalid " 
	   "16r00BA"    16r0000 " invalid " 
	   "16r00BB"    16r061B " ARABIC SEMICOLON " 
	   "16r00BC"    16r0000 " invalid " 
	   "16r00BD"    16r0000 " invalid " 
	   "16r00BE"    16r0000 " invalid " 
	   "16r00BF"    16r061F " ARABIC QUESTION MARK " 
	   "16r00C0"    16r0000 " invalid " 
	   "16r00C1"    16r0621 " ARABIC LETTER HAMZA " 
	   "16r00C2"    16r0622 " ARABIC LETTER ALEF WITH MADDA ABOVE " 
	   "16r00C3"    16r0623 " ARABIC LETTER ALEF WITH HAMZA ABOVE " 
	   "16r00C4"    16r0624 " ARABIC LETTER WAW WITH HAMZA ABOVE " 
	   "16r00C5"    16r0625 " ARABIC LETTER ALEF WITH HAMZA BELOW " 
	   "16r00C6"    16r0626 " ARABIC LETTER YEH WITH HAMZA ABOVE " 
	   "16r00C7"    16r0627 " ARABIC LETTER ALEF " 
	   "16r00C8"    16r0628 " ARABIC LETTER BEH " 
	   "16r00C9"    16r0629 " ARABIC LETTER TEH MARBUTA " 
	   "16r00CA"    16r062A " ARABIC LETTER TEH " 
	   "16r00CB"    16r062B " ARABIC LETTER THEH " 
	   "16r00CC"    16r062C " ARABIC LETTER JEEM " 
	   "16r00CD"    16r062D " ARABIC LETTER HAH " 
	   "16r00CE"    16r062E " ARABIC LETTER KHAH " 
	   "16r00CF"    16r062F " ARABIC LETTER DAL " 
	   "16r00D0"    16r0630 " ARABIC LETTER THAL " 
	   "16r00D1"    16r0631 " ARABIC LETTER REH " 
	   "16r00D2"    16r0632 " ARABIC LETTER ZAIN " 
	   "16r00D3"    16r0633 " ARABIC LETTER SEEN " 
	   "16r00D4"    16r0634 " ARABIC LETTER SHEEN " 
	   "16r00D5"    16r0635 " ARABIC LETTER SAD " 
	   "16r00D6"    16r0636 " ARABIC LETTER DAD " 
	   "16r00D7"    16r0637 " ARABIC LETTER TAH " 
	   "16r00D8"    16r0638 " ARABIC LETTER ZAH " 
	   "16r00D9"    16r0639 " ARABIC LETTER AIN " 
	   "16r00DA"    16r063A " ARABIC LETTER GHAIN " 
	   "16r00DB"    16r0000 " invalid " 
	   "16r00DC"    16r0000 " invalid " 
	   "16r00DD"    16r0000 " invalid " 
	   "16r00DE"    16r0000 " invalid " 
	   "16r00DF"    16r0000 " invalid " 
	   "16r00E0"    16r0640 " ARABIC TATWEEL " 
	   "16r00E1"    16r0641 " ARABIC LETTER FEH " 
	   "16r00E2"    16r0642 " ARABIC LETTER QAF " 
	   "16r00E3"    16r0643 " ARABIC LETTER KAF " 
	   "16r00E4"    16r0644 " ARABIC LETTER LAM " 
	   "16r00E5"    16r0645 " ARABIC LETTER MEEM " 
	   "16r00E6"    16r0646 " ARABIC LETTER NOON " 
	   "16r00E7"    16r0647 " ARABIC LETTER HEH " 
	   "16r00E8"    16r0648 " ARABIC LETTER WAW " 
	   "16r00E9"    16r0649 " ARABIC LETTER ALEF MAKSURA " 
	   "16r00EA"    16r064A " ARABIC LETTER YEH " 
	   "16r00EB"    16r064B " ARABIC FATHATAN " 
	   "16r00EC"    16r064C " ARABIC DAMMATAN " 
	   "16r00ED"    16r064D " ARABIC KASRATAN " 
	   "16r00EE"    16r064E " ARABIC FATHA " 
	   "16r00EF"    16r064F " ARABIC DAMMA " 
	   "16r00F0"    16r0650 " ARABIC KASRA " 
	   "16r00F1"    16r0651 " ARABIC SHADDA " 
	   "16r00F2"    16r0652 " ARABIC SUKUN " 
	   ) at:(code - 16rA0).
	t == 0 ifFalse:[^ t].
	^ self decodingError.
    ] value.
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16rA0 ifTrue:[ ^ unicode ].
    unicode > 16r652 ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16rAD ifTrue:[
	[
	    |t|
	    t := #[
	       "16r00A1"    16r00 " invalid " 
	       "16r00A2"    16r00 " invalid " 
	       "16r00A3"    16r00 " invalid " 
	       "16r00A4"    16rA4 " CURRENCY SIGN " 
	       "16r00A5"    16r00 " invalid " 
	       "16r00A6"    16r00 " invalid " 
	       "16r00A7"    16r00 " invalid " 
	       "16r00A8"    16r00 " invalid " 
	       "16r00A9"    16r00 " invalid " 
	       "16r00AA"    16r00 " invalid " 
	       "16r00AB"    16r00 " invalid " 
	       "16r00AC"    16r00 " invalid " 
	       "16r00AD"    16rAD " SOFT HYPHEN " 
	       ] at:(unicode - 16rA0).
	    t == 0 ifFalse:[^ t].
	    ^ self encodingError
	] value.
    ].
    unicode <= 16r60B ifTrue:[
	^ self encodingError.
    ].
    [
	|t|
	t := #[
	   "16r060C"    16rAC " ARABIC COMMA " 
	   "16r060D"    16r00 " invalid " 
	   "16r060E"    16r00 " invalid " 
	   "16r060F"    16r00 " invalid " 
	   "16r0610"    16r00 " invalid " 
	   "16r0611"    16r00 " invalid " 
	   "16r0612"    16r00 " invalid " 
	   "16r0613"    16r00 " invalid " 
	   "16r0614"    16r00 " invalid " 
	   "16r0615"    16r00 " invalid " 
	   "16r0616"    16r00 " invalid " 
	   "16r0617"    16r00 " invalid " 
	   "16r0618"    16r00 " invalid " 
	   "16r0619"    16r00 " invalid " 
	   "16r061A"    16r00 " invalid " 
	   "16r061B"    16rBB " ARABIC SEMICOLON " 
	   "16r061C"    16r00 " invalid " 
	   "16r061D"    16r00 " invalid " 
	   "16r061E"    16r00 " invalid " 
	   "16r061F"    16rBF " ARABIC QUESTION MARK " 
	   "16r0620"    16r00 " invalid " 
	   "16r0621"    16rC1 " ARABIC LETTER HAMZA " 
	   "16r0622"    16rC2 " ARABIC LETTER ALEF WITH MADDA ABOVE " 
	   "16r0623"    16rC3 " ARABIC LETTER ALEF WITH HAMZA ABOVE " 
	   "16r0624"    16rC4 " ARABIC LETTER WAW WITH HAMZA ABOVE " 
	   "16r0625"    16rC5 " ARABIC LETTER ALEF WITH HAMZA BELOW " 
	   "16r0626"    16rC6 " ARABIC LETTER YEH WITH HAMZA ABOVE " 
	   "16r0627"    16rC7 " ARABIC LETTER ALEF " 
	   "16r0628"    16rC8 " ARABIC LETTER BEH " 
	   "16r0629"    16rC9 " ARABIC LETTER TEH MARBUTA " 
	   "16r062A"    16rCA " ARABIC LETTER TEH " 
	   "16r062B"    16rCB " ARABIC LETTER THEH " 
	   "16r062C"    16rCC " ARABIC LETTER JEEM " 
	   "16r062D"    16rCD " ARABIC LETTER HAH " 
	   "16r062E"    16rCE " ARABIC LETTER KHAH " 
	   "16r062F"    16rCF " ARABIC LETTER DAL " 
	   "16r0630"    16rD0 " ARABIC LETTER THAL " 
	   "16r0631"    16rD1 " ARABIC LETTER REH " 
	   "16r0632"    16rD2 " ARABIC LETTER ZAIN " 
	   "16r0633"    16rD3 " ARABIC LETTER SEEN " 
	   "16r0634"    16rD4 " ARABIC LETTER SHEEN " 
	   "16r0635"    16rD5 " ARABIC LETTER SAD " 
	   "16r0636"    16rD6 " ARABIC LETTER DAD " 
	   "16r0637"    16rD7 " ARABIC LETTER TAH " 
	   "16r0638"    16rD8 " ARABIC LETTER ZAH " 
	   "16r0639"    16rD9 " ARABIC LETTER AIN " 
	   "16r063A"    16rDA " ARABIC LETTER GHAIN " 
	   "16r063B"    16r00 " invalid " 
	   "16r063C"    16r00 " invalid " 
	   "16r063D"    16r00 " invalid " 
	   "16r063E"    16r00 " invalid " 
	   "16r063F"    16r00 " invalid " 
	   "16r0640"    16rE0 " ARABIC TATWEEL " 
	   "16r0641"    16rE1 " ARABIC LETTER FEH " 
	   "16r0642"    16rE2 " ARABIC LETTER QAF " 
	   "16r0643"    16rE3 " ARABIC LETTER KAF " 
	   "16r0644"    16rE4 " ARABIC LETTER LAM " 
	   "16r0645"    16rE5 " ARABIC LETTER MEEM " 
	   "16r0646"    16rE6 " ARABIC LETTER NOON " 
	   "16r0647"    16rE7 " ARABIC LETTER HEH " 
	   "16r0648"    16rE8 " ARABIC LETTER WAW " 
	   "16r0649"    16rE9 " ARABIC LETTER ALEF MAKSURA " 
	   "16r064A"    16rEA " ARABIC LETTER YEH " 
	   "16r064B"    16rEB " ARABIC FATHATAN " 
	   "16r064C"    16rEC " ARABIC DAMMATAN " 
	   "16r064D"    16rED " ARABIC KASRATAN " 
	   "16r064E"    16rEE " ARABIC FATHA " 
	   "16r064F"    16rEF " ARABIC DAMMA " 
	   "16r0650"    16rF0 " ARABIC KASRA " 
	   "16r0651"    16rF1 " ARABIC SHADDA " 
	   "16r0652"    16rF2 " ARABIC SUKUN " 
	   ] at:(unicode - 16r60B).
	t == 0 ifFalse:[^ t].
	^ self encodingError
    ] value.
! !

!CharacterEncoder::ISO8859_7 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'ISO8859/8859-7.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-7.TXT

#
#       Name:             ISO 8859-7:2003 to Unicode
#       Unicode version:  4.0
#       Table version:    2.0
#       Table format:     Format A
#       Date:             2003-Nov-12
#       Authors:          Ken Whistler <kenw@sybase.com>
#
#       Copyright (c) 1991-2003 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ISO 8859-7:2003 characters map into Unicode.
#
#       ISO 8859-7:1987 is equivalent to ISO-IR-126, ELOT 928,
#       and ECMA 118. ISO 8859-7:2003 adds two currency signs 
#       and one other character not in the earlier standard.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ISO 8859-7 code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ISO 8859-7 order.
#
#       Version history
#       1.0 version updates 0.1 version by adding mappings for all
#       control characters.
#       Remap 0xA1 to U+2018 (instead of 0x02BD) to match text of 8859-7
#       Remap 0xA2 to U+2019 (instead of 0x02BC) to match text of 8859-7
#
#       2.0 version updates 1.0 version by adding mappings for the
#       three newly added characters 0xA4, 0xA5, 0xAA.
#
#       Updated versions of this file may be found in:
#               <http://www.unicode.org/Public/MAPPINGS/>
#
#       Any comments or problems, contact the Unicode Consortium at:
#               <http://www.unicode.org/reporting.html>
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x0080  #       <control>
0x81    0x0081  #       <control>
0x82    0x0082  #       <control>
0x83    0x0083  #       <control>
0x84    0x0084  #       <control>
0x85    0x0085  #       <control>
0x86    0x0086  #       <control>
0x87    0x0087  #       <control>
0x88    0x0088  #       <control>
0x89    0x0089  #       <control>
0x8A    0x008A  #       <control>
0x8B    0x008B  #       <control>
0x8C    0x008C  #       <control>
0x8D    0x008D  #       <control>
0x8E    0x008E  #       <control>
0x8F    0x008F  #       <control>
0x90    0x0090  #       <control>
0x91    0x0091  #       <control>
0x92    0x0092  #       <control>
0x93    0x0093  #       <control>
0x94    0x0094  #       <control>
0x95    0x0095  #       <control>
0x96    0x0096  #       <control>
0x97    0x0097  #       <control>
0x98    0x0098  #       <control>
0x99    0x0099  #       <control>
0x9A    0x009A  #       <control>
0x9B    0x009B  #       <control>
0x9C    0x009C  #       <control>
0x9D    0x009D  #       <control>
0x9E    0x009E  #       <control>
0x9F    0x009F  #       <control>
0xA0    0x00A0  #       NO-BREAK SPACE
0xA1    0x2018  #       LEFT SINGLE QUOTATION MARK
0xA2    0x2019  #       RIGHT SINGLE QUOTATION MARK
0xA3    0x00A3  #       POUND SIGN
0xA4    0x20AC  #       EURO SIGN
0xA5    0x20AF  #       DRACHMA SIGN
0xA6    0x00A6  #       BROKEN BAR
0xA7    0x00A7  #       SECTION SIGN
0xA8    0x00A8  #       DIAERESIS
0xA9    0x00A9  #       COPYRIGHT SIGN
0xAA    0x037A  #       GREEK YPOGEGRAMMENI
0xAB    0x00AB  #       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xAC    0x00AC  #       NOT SIGN
0xAD    0x00AD  #       SOFT HYPHEN
0xAF    0x2015  #       HORIZONTAL BAR
0xB0    0x00B0  #       DEGREE SIGN
0xB1    0x00B1  #       PLUS-MINUS SIGN
0xB2    0x00B2  #       SUPERSCRIPT TWO
0xB3    0x00B3  #       SUPERSCRIPT THREE
0xB4    0x0384  #       GREEK TONOS
0xB5    0x0385  #       GREEK DIALYTIKA TONOS
0xB6    0x0386  #       GREEK CAPITAL LETTER ALPHA WITH TONOS
0xB7    0x00B7  #       MIDDLE DOT
0xB8    0x0388  #       GREEK CAPITAL LETTER EPSILON WITH TONOS
0xB9    0x0389  #       GREEK CAPITAL LETTER ETA WITH TONOS
0xBA    0x038A  #       GREEK CAPITAL LETTER IOTA WITH TONOS
0xBB    0x00BB  #       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xBC    0x038C  #       GREEK CAPITAL LETTER OMICRON WITH TONOS
0xBD    0x00BD  #       VULGAR FRACTION ONE HALF
0xBE    0x038E  #       GREEK CAPITAL LETTER UPSILON WITH TONOS
0xBF    0x038F  #       GREEK CAPITAL LETTER OMEGA WITH TONOS
0xC0    0x0390  #       GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
0xC1    0x0391  #       GREEK CAPITAL LETTER ALPHA
0xC2    0x0392  #       GREEK CAPITAL LETTER BETA
0xC3    0x0393  #       GREEK CAPITAL LETTER GAMMA
0xC4    0x0394  #       GREEK CAPITAL LETTER DELTA
0xC5    0x0395  #       GREEK CAPITAL LETTER EPSILON
0xC6    0x0396  #       GREEK CAPITAL LETTER ZETA
0xC7    0x0397  #       GREEK CAPITAL LETTER ETA
0xC8    0x0398  #       GREEK CAPITAL LETTER THETA
0xC9    0x0399  #       GREEK CAPITAL LETTER IOTA
0xCA    0x039A  #       GREEK CAPITAL LETTER KAPPA
0xCB    0x039B  #       GREEK CAPITAL LETTER LAMDA
0xCC    0x039C  #       GREEK CAPITAL LETTER MU
0xCD    0x039D  #       GREEK CAPITAL LETTER NU
0xCE    0x039E  #       GREEK CAPITAL LETTER XI
0xCF    0x039F  #       GREEK CAPITAL LETTER OMICRON
0xD0    0x03A0  #       GREEK CAPITAL LETTER PI
0xD1    0x03A1  #       GREEK CAPITAL LETTER RHO
0xD3    0x03A3  #       GREEK CAPITAL LETTER SIGMA
0xD4    0x03A4  #       GREEK CAPITAL LETTER TAU
0xD5    0x03A5  #       GREEK CAPITAL LETTER UPSILON
0xD6    0x03A6  #       GREEK CAPITAL LETTER PHI
0xD7    0x03A7  #       GREEK CAPITAL LETTER CHI
0xD8    0x03A8  #       GREEK CAPITAL LETTER PSI
0xD9    0x03A9  #       GREEK CAPITAL LETTER OMEGA
0xDA    0x03AA  #       GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
0xDB    0x03AB  #       GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
0xDC    0x03AC  #       GREEK SMALL LETTER ALPHA WITH TONOS
0xDD    0x03AD  #       GREEK SMALL LETTER EPSILON WITH TONOS
0xDE    0x03AE  #       GREEK SMALL LETTER ETA WITH TONOS
0xDF    0x03AF  #       GREEK SMALL LETTER IOTA WITH TONOS
0xE0    0x03B0  #       GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
0xE1    0x03B1  #       GREEK SMALL LETTER ALPHA
0xE2    0x03B2  #       GREEK SMALL LETTER BETA
0xE3    0x03B3  #       GREEK SMALL LETTER GAMMA
0xE4    0x03B4  #       GREEK SMALL LETTER DELTA
0xE5    0x03B5  #       GREEK SMALL LETTER EPSILON
0xE6    0x03B6  #       GREEK SMALL LETTER ZETA
0xE7    0x03B7  #       GREEK SMALL LETTER ETA
0xE8    0x03B8  #       GREEK SMALL LETTER THETA
0xE9    0x03B9  #       GREEK SMALL LETTER IOTA
0xEA    0x03BA  #       GREEK SMALL LETTER KAPPA
0xEB    0x03BB  #       GREEK SMALL LETTER LAMDA
0xEC    0x03BC  #       GREEK SMALL LETTER MU
0xED    0x03BD  #       GREEK SMALL LETTER NU
0xEE    0x03BE  #       GREEK SMALL LETTER XI
0xEF    0x03BF  #       GREEK SMALL LETTER OMICRON
0xF0    0x03C0  #       GREEK SMALL LETTER PI
0xF1    0x03C1  #       GREEK SMALL LETTER RHO
0xF2    0x03C2  #       GREEK SMALL LETTER FINAL SIGMA
0xF3    0x03C3  #       GREEK SMALL LETTER SIGMA
0xF4    0x03C4  #       GREEK SMALL LETTER TAU
0xF5    0x03C5  #       GREEK SMALL LETTER UPSILON
0xF6    0x03C6  #       GREEK SMALL LETTER PHI
0xF7    0x03C7  #       GREEK SMALL LETTER CHI
0xF8    0x03C8  #       GREEK SMALL LETTER PSI
0xF9    0x03C9  #       GREEK SMALL LETTER OMEGA
0xFA    0x03CA  #       GREEK SMALL LETTER IOTA WITH DIALYTIKA
0xFB    0x03CB  #       GREEK SMALL LETTER UPSILON WITH DIALYTIKA
0xFC    0x03CC  #       GREEK SMALL LETTER OMICRON WITH TONOS
0xFD    0x03CD  #       GREEK SMALL LETTER UPSILON WITH TONOS
0xFE    0x03CE  #       GREEK SMALL LETTER OMEGA WITH TONOS

"
! !

!CharacterEncoder::ISO8859_7 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-7' 'iso-8859-7' 'greek' 'iso-ir-126' 'ecma-118')
!

userFriendlyNameOfEncoding
    ^ 'Greek'
! !

!CharacterEncoder::ISO8859_7 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16rA0 ifTrue:[ ^ code ].
    code > 16rFE ifTrue:[
	^ self decodingError.
    ].
    [
	|t|
	t := #(
	   "16r00A1"    16r2018 " LEFT SINGLE QUOTATION MARK " 
	   "16r00A2"    16r2019 " RIGHT SINGLE QUOTATION MARK " 
	   "16r00A3"    16r00A3 " POUND SIGN " 
	   "16r00A4"    16r20AC " EURO SIGN " 
	   "16r00A5"    16r20AF " DRACHMA SIGN " 
	   "16r00A6"    16r00A6 " BROKEN BAR " 
	   "16r00A7"    16r00A7 " SECTION SIGN " 
	   "16r00A8"    16r00A8 " DIAERESIS " 
	   "16r00A9"    16r00A9 " COPYRIGHT SIGN " 
	   "16r00AA"    16r037A " GREEK YPOGEGRAMMENI " 
	   "16r00AB"    16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
	   "16r00AC"    16r00AC " NOT SIGN " 
	   "16r00AD"    16r00AD " SOFT HYPHEN " 
	   "16r00AE"    16r0000 " invalid " 
	   "16r00AF"    16r2015 " HORIZONTAL BAR " 
	   "16r00B0"    16r00B0 " DEGREE SIGN " 
	   "16r00B1"    16r00B1 " PLUS-MINUS SIGN " 
	   "16r00B2"    16r00B2 " SUPERSCRIPT TWO " 
	   "16r00B3"    16r00B3 " SUPERSCRIPT THREE " 
	   "16r00B4"    16r0384 " GREEK TONOS " 
	   "16r00B5"    16r0385 " GREEK DIALYTIKA TONOS " 
	   "16r00B6"    16r0386 " GREEK CAPITAL LETTER ALPHA WITH TONOS " 
	   "16r00B7"    16r00B7 " MIDDLE DOT " 
	   "16r00B8"    16r0388 " GREEK CAPITAL LETTER EPSILON WITH TONOS " 
	   "16r00B9"    16r0389 " GREEK CAPITAL LETTER ETA WITH TONOS " 
	   "16r00BA"    16r038A " GREEK CAPITAL LETTER IOTA WITH TONOS " 
	   "16r00BB"    16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
	   "16r00BC"    16r038C " GREEK CAPITAL LETTER OMICRON WITH TONOS " 
	   "16r00BD"    16r00BD " VULGAR FRACTION ONE HALF " 
	   "16r00BE"    16r038E " GREEK CAPITAL LETTER UPSILON WITH TONOS " 
	   "16r00BF"    16r038F " GREEK CAPITAL LETTER OMEGA WITH TONOS " 
	   "16r00C0"    16r0390 " GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS " 
	   "16r00C1"    16r0391 " GREEK CAPITAL LETTER ALPHA " 
	   "16r00C2"    16r0392 " GREEK CAPITAL LETTER BETA " 
	   "16r00C3"    16r0393 " GREEK CAPITAL LETTER GAMMA " 
	   "16r00C4"    16r0394 " GREEK CAPITAL LETTER DELTA " 
	   "16r00C5"    16r0395 " GREEK CAPITAL LETTER EPSILON " 
	   "16r00C6"    16r0396 " GREEK CAPITAL LETTER ZETA " 
	   "16r00C7"    16r0397 " GREEK CAPITAL LETTER ETA " 
	   "16r00C8"    16r0398 " GREEK CAPITAL LETTER THETA " 
	   "16r00C9"    16r0399 " GREEK CAPITAL LETTER IOTA " 
	   "16r00CA"    16r039A " GREEK CAPITAL LETTER KAPPA " 
	   "16r00CB"    16r039B " GREEK CAPITAL LETTER LAMDA " 
	   "16r00CC"    16r039C " GREEK CAPITAL LETTER MU " 
	   "16r00CD"    16r039D " GREEK CAPITAL LETTER NU " 
	   "16r00CE"    16r039E " GREEK CAPITAL LETTER XI " 
	   "16r00CF"    16r039F " GREEK CAPITAL LETTER OMICRON " 
	   "16r00D0"    16r03A0 " GREEK CAPITAL LETTER PI " 
	   "16r00D1"    16r03A1 " GREEK CAPITAL LETTER RHO " 
	   "16r00D2"    16r0000 " invalid " 
	   "16r00D3"    16r03A3 " GREEK CAPITAL LETTER SIGMA " 
	   "16r00D4"    16r03A4 " GREEK CAPITAL LETTER TAU " 
	   "16r00D5"    16r03A5 " GREEK CAPITAL LETTER UPSILON " 
	   "16r00D6"    16r03A6 " GREEK CAPITAL LETTER PHI " 
	   "16r00D7"    16r03A7 " GREEK CAPITAL LETTER CHI " 
	   "16r00D8"    16r03A8 " GREEK CAPITAL LETTER PSI " 
	   "16r00D9"    16r03A9 " GREEK CAPITAL LETTER OMEGA " 
	   "16r00DA"    16r03AA " GREEK CAPITAL LETTER IOTA WITH DIALYTIKA " 
	   "16r00DB"    16r03AB " GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA " 
	   "16r00DC"    16r03AC " GREEK SMALL LETTER ALPHA WITH TONOS " 
	   "16r00DD"    16r03AD " GREEK SMALL LETTER EPSILON WITH TONOS " 
	   "16r00DE"    16r03AE " GREEK SMALL LETTER ETA WITH TONOS " 
	   "16r00DF"    16r03AF " GREEK SMALL LETTER IOTA WITH TONOS " 
	   "16r00E0"    16r03B0 " GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS " 
	   "16r00E1"    16r03B1 " GREEK SMALL LETTER ALPHA " 
	   "16r00E2"    16r03B2 " GREEK SMALL LETTER BETA " 
	   "16r00E3"    16r03B3 " GREEK SMALL LETTER GAMMA " 
	   "16r00E4"    16r03B4 " GREEK SMALL LETTER DELTA " 
	   "16r00E5"    16r03B5 " GREEK SMALL LETTER EPSILON " 
	   "16r00E6"    16r03B6 " GREEK SMALL LETTER ZETA " 
	   "16r00E7"    16r03B7 " GREEK SMALL LETTER ETA " 
	   "16r00E8"    16r03B8 " GREEK SMALL LETTER THETA " 
	   "16r00E9"    16r03B9 " GREEK SMALL LETTER IOTA " 
	   "16r00EA"    16r03BA " GREEK SMALL LETTER KAPPA " 
	   "16r00EB"    16r03BB " GREEK SMALL LETTER LAMDA " 
	   "16r00EC"    16r03BC " GREEK SMALL LETTER MU " 
	   "16r00ED"    16r03BD " GREEK SMALL LETTER NU " 
	   "16r00EE"    16r03BE " GREEK SMALL LETTER XI " 
	   "16r00EF"    16r03BF " GREEK SMALL LETTER OMICRON " 
	   "16r00F0"    16r03C0 " GREEK SMALL LETTER PI " 
	   "16r00F1"    16r03C1 " GREEK SMALL LETTER RHO " 
	   "16r00F2"    16r03C2 " GREEK SMALL LETTER FINAL SIGMA " 
	   "16r00F3"    16r03C3 " GREEK SMALL LETTER SIGMA " 
	   "16r00F4"    16r03C4 " GREEK SMALL LETTER TAU " 
	   "16r00F5"    16r03C5 " GREEK SMALL LETTER UPSILON " 
	   "16r00F6"    16r03C6 " GREEK SMALL LETTER PHI " 
	   "16r00F7"    16r03C7 " GREEK SMALL LETTER CHI " 
	   "16r00F8"    16r03C8 " GREEK SMALL LETTER PSI " 
	   "16r00F9"    16r03C9 " GREEK SMALL LETTER OMEGA " 
	   "16r00FA"    16r03CA " GREEK SMALL LETTER IOTA WITH DIALYTIKA " 
	   "16r00FB"    16r03CB " GREEK SMALL LETTER UPSILON WITH DIALYTIKA " 
	   "16r00FC"    16r03CC " GREEK SMALL LETTER OMICRON WITH TONOS " 
	   "16r00FD"    16r03CD " GREEK SMALL LETTER UPSILON WITH TONOS " 
	   "16r00FE"    16r03CE " GREEK SMALL LETTER OMEGA WITH TONOS " 
	   ) at:(code - 16rA0).
	t == 0 ifFalse:[^ t].
	^ self decodingError.
    ] value.
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16rA0 ifTrue:[ ^ unicode ].
    unicode > 16r20AF ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r3CE ifTrue:[
	unicode <= 16rBD ifTrue:[
	    [
		|t|
		t := #[
		   "16r00A1"    16r00 " invalid " 
		   "16r00A2"    16r00 " invalid " 
		   "16r00A3"    16rA3 " POUND SIGN " 
		   "16r00A4"    16r00 " invalid " 
		   "16r00A5"    16r00 " invalid " 
		   "16r00A6"    16rA6 " BROKEN BAR " 
		   "16r00A7"    16rA7 " SECTION SIGN " 
		   "16r00A8"    16rA8 " DIAERESIS " 
		   "16r00A9"    16rA9 " COPYRIGHT SIGN " 
		   "16r00AA"    16r00 " invalid " 
		   "16r00AB"    16rAB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
		   "16r00AC"    16rAC " NOT SIGN " 
		   "16r00AD"    16rAD " SOFT HYPHEN " 
		   "16r00AE"    16r00 " invalid " 
		   "16r00AF"    16r00 " invalid " 
		   "16r00B0"    16rB0 " DEGREE SIGN " 
		   "16r00B1"    16rB1 " PLUS-MINUS SIGN " 
		   "16r00B2"    16rB2 " SUPERSCRIPT TWO " 
		   "16r00B3"    16rB3 " SUPERSCRIPT THREE " 
		   "16r00B4"    16r00 " invalid " 
		   "16r00B5"    16r00 " invalid " 
		   "16r00B6"    16r00 " invalid " 
		   "16r00B7"    16rB7 " MIDDLE DOT " 
		   "16r00B8"    16r00 " invalid " 
		   "16r00B9"    16r00 " invalid " 
		   "16r00BA"    16r00 " invalid " 
		   "16r00BB"    16rBB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
		   "16r00BC"    16r00 " invalid " 
		   "16r00BD"    16rBD " VULGAR FRACTION ONE HALF " 
		   ] at:(unicode - 16rA0).
		t == 0 ifFalse:[^ t].
		^ self encodingError
	    ] value.
	].
	unicode <= 16r379 ifTrue:[
	    ^ self encodingError.
	].
	[
	    |t|
	    t := #[
	       "16r037A"    16rAA " GREEK YPOGEGRAMMENI " 
	       "16r037B"    16r00 " invalid " 
	       "16r037C"    16r00 " invalid " 
	       "16r037D"    16r00 " invalid " 
	       "16r037E"    16r00 " invalid " 
	       "16r037F"    16r00 " invalid " 
	       "16r0380"    16r00 " invalid " 
	       "16r0381"    16r00 " invalid " 
	       "16r0382"    16r00 " invalid " 
	       "16r0383"    16r00 " invalid " 
	       "16r0384"    16rB4 " GREEK TONOS " 
	       "16r0385"    16rB5 " GREEK DIALYTIKA TONOS " 
	       "16r0386"    16rB6 " GREEK CAPITAL LETTER ALPHA WITH TONOS " 
	       "16r0387"    16r00 " invalid " 
	       "16r0388"    16rB8 " GREEK CAPITAL LETTER EPSILON WITH TONOS " 
	       "16r0389"    16rB9 " GREEK CAPITAL LETTER ETA WITH TONOS " 
	       "16r038A"    16rBA " GREEK CAPITAL LETTER IOTA WITH TONOS " 
	       "16r038B"    16r00 " invalid " 
	       "16r038C"    16rBC " GREEK CAPITAL LETTER OMICRON WITH TONOS " 
	       "16r038D"    16r00 " invalid " 
	       "16r038E"    16rBE " GREEK CAPITAL LETTER UPSILON WITH TONOS " 
	       "16r038F"    16rBF " GREEK CAPITAL LETTER OMEGA WITH TONOS " 
	       "16r0390"    16rC0 " GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS " 
	       "16r0391"    16rC1 " GREEK CAPITAL LETTER ALPHA " 
	       "16r0392"    16rC2 " GREEK CAPITAL LETTER BETA " 
	       "16r0393"    16rC3 " GREEK CAPITAL LETTER GAMMA " 
	       "16r0394"    16rC4 " GREEK CAPITAL LETTER DELTA " 
	       "16r0395"    16rC5 " GREEK CAPITAL LETTER EPSILON " 
	       "16r0396"    16rC6 " GREEK CAPITAL LETTER ZETA " 
	       "16r0397"    16rC7 " GREEK CAPITAL LETTER ETA " 
	       "16r0398"    16rC8 " GREEK CAPITAL LETTER THETA " 
	       "16r0399"    16rC9 " GREEK CAPITAL LETTER IOTA " 
	       "16r039A"    16rCA " GREEK CAPITAL LETTER KAPPA " 
	       "16r039B"    16rCB " GREEK CAPITAL LETTER LAMDA " 
	       "16r039C"    16rCC " GREEK CAPITAL LETTER MU " 
	       "16r039D"    16rCD " GREEK CAPITAL LETTER NU " 
	       "16r039E"    16rCE " GREEK CAPITAL LETTER XI " 
	       "16r039F"    16rCF " GREEK CAPITAL LETTER OMICRON " 
	       "16r03A0"    16rD0 " GREEK CAPITAL LETTER PI " 
	       "16r03A1"    16rD1 " GREEK CAPITAL LETTER RHO " 
	       "16r03A2"    16r00 " invalid " 
	       "16r03A3"    16rD3 " GREEK CAPITAL LETTER SIGMA " 
	       "16r03A4"    16rD4 " GREEK CAPITAL LETTER TAU " 
	       "16r03A5"    16rD5 " GREEK CAPITAL LETTER UPSILON " 
	       "16r03A6"    16rD6 " GREEK CAPITAL LETTER PHI " 
	       "16r03A7"    16rD7 " GREEK CAPITAL LETTER CHI " 
	       "16r03A8"    16rD8 " GREEK CAPITAL LETTER PSI " 
	       "16r03A9"    16rD9 " GREEK CAPITAL LETTER OMEGA " 
	       "16r03AA"    16rDA " GREEK CAPITAL LETTER IOTA WITH DIALYTIKA " 
	       "16r03AB"    16rDB " GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA " 
	       "16r03AC"    16rDC " GREEK SMALL LETTER ALPHA WITH TONOS " 
	       "16r03AD"    16rDD " GREEK SMALL LETTER EPSILON WITH TONOS " 
	       "16r03AE"    16rDE " GREEK SMALL LETTER ETA WITH TONOS " 
	       "16r03AF"    16rDF " GREEK SMALL LETTER IOTA WITH TONOS " 
	       "16r03B0"    16rE0 " GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS " 
	       "16r03B1"    16rE1 " GREEK SMALL LETTER ALPHA " 
	       "16r03B2"    16rE2 " GREEK SMALL LETTER BETA " 
	       "16r03B3"    16rE3 " GREEK SMALL LETTER GAMMA " 
	       "16r03B4"    16rE4 " GREEK SMALL LETTER DELTA " 
	       "16r03B5"    16rE5 " GREEK SMALL LETTER EPSILON " 
	       "16r03B6"    16rE6 " GREEK SMALL LETTER ZETA " 
	       "16r03B7"    16rE7 " GREEK SMALL LETTER ETA " 
	       "16r03B8"    16rE8 " GREEK SMALL LETTER THETA " 
	       "16r03B9"    16rE9 " GREEK SMALL LETTER IOTA " 
	       "16r03BA"    16rEA " GREEK SMALL LETTER KAPPA " 
	       "16r03BB"    16rEB " GREEK SMALL LETTER LAMDA " 
	       "16r03BC"    16rEC " GREEK SMALL LETTER MU " 
	       "16r03BD"    16rED " GREEK SMALL LETTER NU " 
	       "16r03BE"    16rEE " GREEK SMALL LETTER XI " 
	       "16r03BF"    16rEF " GREEK SMALL LETTER OMICRON " 
	       "16r03C0"    16rF0 " GREEK SMALL LETTER PI " 
	       "16r03C1"    16rF1 " GREEK SMALL LETTER RHO " 
	       "16r03C2"    16rF2 " GREEK SMALL LETTER FINAL SIGMA " 
	       "16r03C3"    16rF3 " GREEK SMALL LETTER SIGMA " 
	       "16r03C4"    16rF4 " GREEK SMALL LETTER TAU " 
	       "16r03C5"    16rF5 " GREEK SMALL LETTER UPSILON " 
	       "16r03C6"    16rF6 " GREEK SMALL LETTER PHI " 
	       "16r03C7"    16rF7 " GREEK SMALL LETTER CHI " 
	       "16r03C8"    16rF8 " GREEK SMALL LETTER PSI " 
	       "16r03C9"    16rF9 " GREEK SMALL LETTER OMEGA " 
	       "16r03CA"    16rFA " GREEK SMALL LETTER IOTA WITH DIALYTIKA " 
	       "16r03CB"    16rFB " GREEK SMALL LETTER UPSILON WITH DIALYTIKA " 
	       "16r03CC"    16rFC " GREEK SMALL LETTER OMICRON WITH TONOS " 
	       "16r03CD"    16rFD " GREEK SMALL LETTER UPSILON WITH TONOS " 
	       "16r03CE"    16rFE " GREEK SMALL LETTER OMEGA WITH TONOS " 
	       ] at:(unicode - 16r379).
	    t == 0 ifFalse:[^ t].
	    ^ self encodingError
	] value.
    ].
    unicode <= 16r2014 ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r2019 ifTrue:[
	[
	    |t|
	    t := #[
	       "16r2015"    16rAF " HORIZONTAL BAR " 
	       "16r2016"    16r00 " invalid " 
	       "16r2017"    16r00 " invalid " 
	       "16r2018"    16rA1 " LEFT SINGLE QUOTATION MARK " 
	       "16r2019"    16rA2 " RIGHT SINGLE QUOTATION MARK " 
	       ] at:(unicode - 16r2014).
	    t == 0 ifFalse:[^ t].
	    ^ self encodingError
	] value.
    ].
    unicode <= 16r20AB ifTrue:[
	^ self encodingError.
    ].
    [
	|t|
	t := #[
	   "16r20AC"    16rA4 " EURO SIGN " 
	   "16r20AD"    16r00 " invalid " 
	   "16r20AE"    16r00 " invalid " 
	   "16r20AF"    16rA5 " DRACHMA SIGN " 
	   ] at:(unicode - 16r20AB).
	t == 0 ifFalse:[^ t].
	^ self encodingError
    ] value.
! !

!CharacterEncoder::ISO8859_8 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'ISO8859/8859-8.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-8.TXT

#
#       Name:             ISO/IEC 8859-8:1999 to Unicode
#       Unicode version:  3.0
#       Table version:    1.1
#       Table format:     Format A
#       Date:             2000-Jan-03
#       Authors:          Ken Whistler <kenw@sybase.com>
#
#       Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ISO/IEC 8859-8:1999 characters map into Unicode.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ISO/IEC 8859-8 code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ISO/IEC 8859-8 order.
#
#       Version history
#       1.0 version updates 0.1 version by adding mappings for all
#       control characters.
#       1.1 version updates to the published 8859-8:1999, correcting
#          the mapping of 0xAF and adding mappings for LRM and RLM.
#
#       Updated versions of this file may be found in:
#               <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
#       Any comments or problems, contact <errata@unicode.org>
#       Please note that <errata@unicode.org> is an archival address;
#       notices will be checked, but do not expect an immediate response.
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x0080  #       <control>
0x81    0x0081  #       <control>
0x82    0x0082  #       <control>
0x83    0x0083  #       <control>
0x84    0x0084  #       <control>
0x85    0x0085  #       <control>
0x86    0x0086  #       <control>
0x87    0x0087  #       <control>
0x88    0x0088  #       <control>
0x89    0x0089  #       <control>
0x8A    0x008A  #       <control>
0x8B    0x008B  #       <control>
0x8C    0x008C  #       <control>
0x8D    0x008D  #       <control>
0x8E    0x008E  #       <control>
0x8F    0x008F  #       <control>
0x90    0x0090  #       <control>
0x91    0x0091  #       <control>
0x92    0x0092  #       <control>
0x93    0x0093  #       <control>
0x94    0x0094  #       <control>
0x95    0x0095  #       <control>
0x96    0x0096  #       <control>
0x97    0x0097  #       <control>
0x98    0x0098  #       <control>
0x99    0x0099  #       <control>
0x9A    0x009A  #       <control>
0x9B    0x009B  #       <control>
0x9C    0x009C  #       <control>
0x9D    0x009D  #       <control>
0x9E    0x009E  #       <control>
0x9F    0x009F  #       <control>
0xA0    0x00A0  #       NO-BREAK SPACE
0xA2    0x00A2  #       CENT SIGN
0xA3    0x00A3  #       POUND SIGN
0xA4    0x00A4  #       CURRENCY SIGN
0xA5    0x00A5  #       YEN SIGN
0xA6    0x00A6  #       BROKEN BAR
0xA7    0x00A7  #       SECTION SIGN
0xA8    0x00A8  #       DIAERESIS
0xA9    0x00A9  #       COPYRIGHT SIGN
0xAA    0x00D7  #       MULTIPLICATION SIGN
0xAB    0x00AB  #       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xAC    0x00AC  #       NOT SIGN
0xAD    0x00AD  #       SOFT HYPHEN
0xAE    0x00AE  #       REGISTERED SIGN
0xAF    0x00AF  #       MACRON
0xB0    0x00B0  #       DEGREE SIGN
0xB1    0x00B1  #       PLUS-MINUS SIGN
0xB2    0x00B2  #       SUPERSCRIPT TWO
0xB3    0x00B3  #       SUPERSCRIPT THREE
0xB4    0x00B4  #       ACUTE ACCENT
0xB5    0x00B5  #       MICRO SIGN
0xB6    0x00B6  #       PILCROW SIGN
0xB7    0x00B7  #       MIDDLE DOT
0xB8    0x00B8  #       CEDILLA
0xB9    0x00B9  #       SUPERSCRIPT ONE
0xBA    0x00F7  #       DIVISION SIGN
0xBB    0x00BB  #       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xBC    0x00BC  #       VULGAR FRACTION ONE QUARTER
0xBD    0x00BD  #       VULGAR FRACTION ONE HALF
0xBE    0x00BE  #       VULGAR FRACTION THREE QUARTERS
0xDF    0x2017  #       DOUBLE LOW LINE
0xE0    0x05D0  #       HEBREW LETTER ALEF
0xE1    0x05D1  #       HEBREW LETTER BET
0xE2    0x05D2  #       HEBREW LETTER GIMEL
0xE3    0x05D3  #       HEBREW LETTER DALET
0xE4    0x05D4  #       HEBREW LETTER HE
0xE5    0x05D5  #       HEBREW LETTER VAV
0xE6    0x05D6  #       HEBREW LETTER ZAYIN
0xE7    0x05D7  #       HEBREW LETTER HET
0xE8    0x05D8  #       HEBREW LETTER TET
0xE9    0x05D9  #       HEBREW LETTER YOD
0xEA    0x05DA  #       HEBREW LETTER FINAL KAF
0xEB    0x05DB  #       HEBREW LETTER KAF
0xEC    0x05DC  #       HEBREW LETTER LAMED
0xED    0x05DD  #       HEBREW LETTER FINAL MEM
0xEE    0x05DE  #       HEBREW LETTER MEM
0xEF    0x05DF  #       HEBREW LETTER FINAL NUN
0xF0    0x05E0  #       HEBREW LETTER NUN
0xF1    0x05E1  #       HEBREW LETTER SAMEKH
0xF2    0x05E2  #       HEBREW LETTER AYIN
0xF3    0x05E3  #       HEBREW LETTER FINAL PE
0xF4    0x05E4  #       HEBREW LETTER PE
0xF5    0x05E5  #       HEBREW LETTER FINAL TSADI
0xF6    0x05E6  #       HEBREW LETTER TSADI
0xF7    0x05E7  #       HEBREW LETTER QOF
0xF8    0x05E8  #       HEBREW LETTER RESH
0xF9    0x05E9  #       HEBREW LETTER SHIN
0xFA    0x05EA  #       HEBREW LETTER TAV
0xFD    0x200E  #       LEFT-TO-RIGHT MARK
0xFE    0x200F  #       RIGHT-TO-LEFT MARK


"
! !

!CharacterEncoder::ISO8859_8 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-8' 'iso-8859-8' 'hebrew' 'iso-ir-138' )
!

userFriendlyNameOfEncoding
    ^ 'Hebrew'
! !

!CharacterEncoder::ISO8859_8 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16rA0 ifTrue:[ ^ code ].
    code > 16rFE ifTrue:[
	^ self decodingError.
    ].
    code <= 16rBE ifTrue:[
	[
	    |t|
	    t := #[
	       "16r00A1"    16r00 " invalid " 
	       "16r00A2"    16rA2 " CENT SIGN " 
	       "16r00A3"    16rA3 " POUND SIGN " 
	       "16r00A4"    16rA4 " CURRENCY SIGN " 
	       "16r00A5"    16rA5 " YEN SIGN " 
	       "16r00A6"    16rA6 " BROKEN BAR " 
	       "16r00A7"    16rA7 " SECTION SIGN " 
	       "16r00A8"    16rA8 " DIAERESIS " 
	       "16r00A9"    16rA9 " COPYRIGHT SIGN " 
	       "16r00AA"    16rD7 " MULTIPLICATION SIGN " 
	       "16r00AB"    16rAB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
	       "16r00AC"    16rAC " NOT SIGN " 
	       "16r00AD"    16rAD " SOFT HYPHEN " 
	       "16r00AE"    16rAE " REGISTERED SIGN " 
	       "16r00AF"    16rAF " MACRON " 
	       "16r00B0"    16rB0 " DEGREE SIGN " 
	       "16r00B1"    16rB1 " PLUS-MINUS SIGN " 
	       "16r00B2"    16rB2 " SUPERSCRIPT TWO " 
	       "16r00B3"    16rB3 " SUPERSCRIPT THREE " 
	       "16r00B4"    16rB4 " ACUTE ACCENT " 
	       "16r00B5"    16rB5 " MICRO SIGN " 
	       "16r00B6"    16rB6 " PILCROW SIGN " 
	       "16r00B7"    16rB7 " MIDDLE DOT " 
	       "16r00B8"    16rB8 " CEDILLA " 
	       "16r00B9"    16rB9 " SUPERSCRIPT ONE " 
	       "16r00BA"    16rF7 " DIVISION SIGN " 
	       "16r00BB"    16rBB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
	       "16r00BC"    16rBC " VULGAR FRACTION ONE QUARTER " 
	       "16r00BD"    16rBD " VULGAR FRACTION ONE HALF " 
	       "16r00BE"    16rBE " VULGAR FRACTION THREE QUARTERS " 
	       ] at:(code - 16rA0).
	    t == 0 ifFalse:[^ t].
	    ^ self decodingError.
	] value.
    ].
    code <= 16rDE ifTrue:[
	^ self decodingError.
    ].
    [
	|t|
	t := #(
	   "16r00DF"    16r2017 " DOUBLE LOW LINE " 
	   "16r00E0"    16r05D0 " HEBREW LETTER ALEF " 
	   "16r00E1"    16r05D1 " HEBREW LETTER BET " 
	   "16r00E2"    16r05D2 " HEBREW LETTER GIMEL " 
	   "16r00E3"    16r05D3 " HEBREW LETTER DALET " 
	   "16r00E4"    16r05D4 " HEBREW LETTER HE " 
	   "16r00E5"    16r05D5 " HEBREW LETTER VAV " 
	   "16r00E6"    16r05D6 " HEBREW LETTER ZAYIN " 
	   "16r00E7"    16r05D7 " HEBREW LETTER HET " 
	   "16r00E8"    16r05D8 " HEBREW LETTER TET " 
	   "16r00E9"    16r05D9 " HEBREW LETTER YOD " 
	   "16r00EA"    16r05DA " HEBREW LETTER FINAL KAF " 
	   "16r00EB"    16r05DB " HEBREW LETTER KAF " 
	   "16r00EC"    16r05DC " HEBREW LETTER LAMED " 
	   "16r00ED"    16r05DD " HEBREW LETTER FINAL MEM " 
	   "16r00EE"    16r05DE " HEBREW LETTER MEM " 
	   "16r00EF"    16r05DF " HEBREW LETTER FINAL NUN " 
	   "16r00F0"    16r05E0 " HEBREW LETTER NUN " 
	   "16r00F1"    16r05E1 " HEBREW LETTER SAMEKH " 
	   "16r00F2"    16r05E2 " HEBREW LETTER AYIN " 
	   "16r00F3"    16r05E3 " HEBREW LETTER FINAL PE " 
	   "16r00F4"    16r05E4 " HEBREW LETTER PE " 
	   "16r00F5"    16r05E5 " HEBREW LETTER FINAL TSADI " 
	   "16r00F6"    16r05E6 " HEBREW LETTER TSADI " 
	   "16r00F7"    16r05E7 " HEBREW LETTER QOF " 
	   "16r00F8"    16r05E8 " HEBREW LETTER RESH " 
	   "16r00F9"    16r05E9 " HEBREW LETTER SHIN " 
	   "16r00FA"    16r05EA " HEBREW LETTER TAV " 
	   "16r00FB"    16r0000 " invalid " 
	   "16r00FC"    16r0000 " invalid " 
	   "16r00FD"    16r200E " LEFT-TO-RIGHT MARK " 
	   "16r00FE"    16r200F " RIGHT-TO-LEFT MARK " 
	   ) at:(code - 16rDE).
	t == 0 ifFalse:[^ t].
	^ self decodingError.
    ] value.
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16rA0 ifTrue:[ ^ unicode ].
    unicode > 16r2017 ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r5EA ifTrue:[
	unicode <= 16rF7 ifTrue:[
	    unicode <= 16rD7 ifTrue:[
		unicode <= 16rBE ifTrue:[
		    [
			|t|
			t := #[
			   "16r00A1"    16r00 " invalid " 
			   "16r00A2"    16rA2 " CENT SIGN " 
			   "16r00A3"    16rA3 " POUND SIGN " 
			   "16r00A4"    16rA4 " CURRENCY SIGN " 
			   "16r00A5"    16rA5 " YEN SIGN " 
			   "16r00A6"    16rA6 " BROKEN BAR " 
			   "16r00A7"    16rA7 " SECTION SIGN " 
			   "16r00A8"    16rA8 " DIAERESIS " 
			   "16r00A9"    16rA9 " COPYRIGHT SIGN " 
			   "16r00AA"    16r00 " invalid " 
			   "16r00AB"    16rAB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
			   "16r00AC"    16rAC " NOT SIGN " 
			   "16r00AD"    16rAD " SOFT HYPHEN " 
			   "16r00AE"    16rAE " REGISTERED SIGN " 
			   "16r00AF"    16rAF " MACRON " 
			   "16r00B0"    16rB0 " DEGREE SIGN " 
			   "16r00B1"    16rB1 " PLUS-MINUS SIGN " 
			   "16r00B2"    16rB2 " SUPERSCRIPT TWO " 
			   "16r00B3"    16rB3 " SUPERSCRIPT THREE " 
			   "16r00B4"    16rB4 " ACUTE ACCENT " 
			   "16r00B5"    16rB5 " MICRO SIGN " 
			   "16r00B6"    16rB6 " PILCROW SIGN " 
			   "16r00B7"    16rB7 " MIDDLE DOT " 
			   "16r00B8"    16rB8 " CEDILLA " 
			   "16r00B9"    16rB9 " SUPERSCRIPT ONE " 
			   "16r00BA"    16r00 " invalid " 
			   "16r00BB"    16rBB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
			   "16r00BC"    16rBC " VULGAR FRACTION ONE QUARTER " 
			   "16r00BD"    16rBD " VULGAR FRACTION ONE HALF " 
			   "16r00BE"    16rBE " VULGAR FRACTION THREE QUARTERS " 
			   ] at:(unicode - 16rA0).
			t == 0 ifFalse:[^ t].
			^ self encodingError
		    ] value.
		].
		unicode <= 16rD6 ifTrue:[
		    ^ self encodingError.
		].
		^  "16r00D7" 16r00AA " MULTIPLICATION SIGN " 
	    ].
	    unicode <= 16rF6 ifTrue:[
		^ self encodingError.
	    ].
	    ^  "16r00F7" 16r00BA " DIVISION SIGN " 
	].
	unicode <= 16r5CF ifTrue:[
	    ^ self encodingError.
	].
	^ #[
	   "16r05D0"    16rE0 " HEBREW LETTER ALEF " 
	   "16r05D1"    16rE1 " HEBREW LETTER BET " 
	   "16r05D2"    16rE2 " HEBREW LETTER GIMEL " 
	   "16r05D3"    16rE3 " HEBREW LETTER DALET " 
	   "16r05D4"    16rE4 " HEBREW LETTER HE " 
	   "16r05D5"    16rE5 " HEBREW LETTER VAV " 
	   "16r05D6"    16rE6 " HEBREW LETTER ZAYIN " 
	   "16r05D7"    16rE7 " HEBREW LETTER HET " 
	   "16r05D8"    16rE8 " HEBREW LETTER TET " 
	   "16r05D9"    16rE9 " HEBREW LETTER YOD " 
	   "16r05DA"    16rEA " HEBREW LETTER FINAL KAF " 
	   "16r05DB"    16rEB " HEBREW LETTER KAF " 
	   "16r05DC"    16rEC " HEBREW LETTER LAMED " 
	   "16r05DD"    16rED " HEBREW LETTER FINAL MEM " 
	   "16r05DE"    16rEE " HEBREW LETTER MEM " 
	   "16r05DF"    16rEF " HEBREW LETTER FINAL NUN " 
	   "16r05E0"    16rF0 " HEBREW LETTER NUN " 
	   "16r05E1"    16rF1 " HEBREW LETTER SAMEKH " 
	   "16r05E2"    16rF2 " HEBREW LETTER AYIN " 
	   "16r05E3"    16rF3 " HEBREW LETTER FINAL PE " 
	   "16r05E4"    16rF4 " HEBREW LETTER PE " 
	   "16r05E5"    16rF5 " HEBREW LETTER FINAL TSADI " 
	   "16r05E6"    16rF6 " HEBREW LETTER TSADI " 
	   "16r05E7"    16rF7 " HEBREW LETTER QOF " 
	   "16r05E8"    16rF8 " HEBREW LETTER RESH " 
	   "16r05E9"    16rF9 " HEBREW LETTER SHIN " 
	   "16r05EA"    16rFA " HEBREW LETTER TAV " 
	   ] at:(unicode - 16r5CF).
    ].
    unicode <= 16r200D ifTrue:[
	^ self encodingError.
    ].
    [
	|t|
	t := #[
	   "16r200E"    16rFD " LEFT-TO-RIGHT MARK " 
	   "16r200F"    16rFE " RIGHT-TO-LEFT MARK " 
	   "16r2010"    16r00 " invalid " 
	   "16r2011"    16r00 " invalid " 
	   "16r2012"    16r00 " invalid " 
	   "16r2013"    16r00 " invalid " 
	   "16r2014"    16r00 " invalid " 
	   "16r2015"    16r00 " invalid " 
	   "16r2016"    16r00 " invalid " 
	   "16r2017"    16rDF " DOUBLE LOW LINE " 
	   ] at:(unicode - 16r200D).
	t == 0 ifFalse:[^ t].
	^ self encodingError
    ] value.
! !

!CharacterEncoder::ISO8859_9 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'ISO8859/8859-9.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-9.TXT

#
#       Name:             ISO/IEC 8859-9:1999 to Unicode
#       Unicode version:  3.0
#       Table version:    1.0
#       Table format:     Format A
#       Date:             1999 July 27
#       Authors:          Ken Whistler <kenw@sybase.com>
#
#       Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on magnetic media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       ISO/IEC 8859-9:1999 characters map into Unicode.
#
#       Format:  Three tab-separated columns
#                Column #1 is the ISO/IEC 8859-9 code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in ISO/IEC 8859-9 order.
#
#       ISO/IEC 8859-9 is also equivalent to ISO-IR-148.
#
#       Version history
#       1.0 version updates 0.1 version by adding mappings for all
#       control characters.
#
#       Updated versions of this file may be found in:
#               <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
#       Any comments or problems, contact <errata@unicode.org>
#       Please note that <errata@unicode.org> is an archival address;
#       notices will be checked, but do not expect an immediate response.
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x0080  #       <control>
0x81    0x0081  #       <control>
0x82    0x0082  #       <control>
0x83    0x0083  #       <control>
0x84    0x0084  #       <control>
0x85    0x0085  #       <control>
0x86    0x0086  #       <control>
0x87    0x0087  #       <control>
0x88    0x0088  #       <control>
0x89    0x0089  #       <control>
0x8A    0x008A  #       <control>
0x8B    0x008B  #       <control>
0x8C    0x008C  #       <control>
0x8D    0x008D  #       <control>
0x8E    0x008E  #       <control>
0x8F    0x008F  #       <control>
0x90    0x0090  #       <control>
0x91    0x0091  #       <control>
0x92    0x0092  #       <control>
0x93    0x0093  #       <control>
0x94    0x0094  #       <control>
0x95    0x0095  #       <control>
0x96    0x0096  #       <control>
0x97    0x0097  #       <control>
0x98    0x0098  #       <control>
0x99    0x0099  #       <control>
0x9A    0x009A  #       <control>
0x9B    0x009B  #       <control>
0x9C    0x009C  #       <control>
0x9D    0x009D  #       <control>
0x9E    0x009E  #       <control>
0x9F    0x009F  #       <control>
0xA0    0x00A0  #       NO-BREAK SPACE
0xA1    0x00A1  #       INVERTED EXCLAMATION MARK
0xA2    0x00A2  #       CENT SIGN
0xA3    0x00A3  #       POUND SIGN
0xA4    0x00A4  #       CURRENCY SIGN
0xA5    0x00A5  #       YEN SIGN
0xA6    0x00A6  #       BROKEN BAR
0xA7    0x00A7  #       SECTION SIGN
0xA8    0x00A8  #       DIAERESIS
0xA9    0x00A9  #       COPYRIGHT SIGN
0xAA    0x00AA  #       FEMININE ORDINAL INDICATOR
0xAB    0x00AB  #       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xAC    0x00AC  #       NOT SIGN
0xAD    0x00AD  #       SOFT HYPHEN
0xAE    0x00AE  #       REGISTERED SIGN
0xAF    0x00AF  #       MACRON
0xB0    0x00B0  #       DEGREE SIGN
0xB1    0x00B1  #       PLUS-MINUS SIGN
0xB2    0x00B2  #       SUPERSCRIPT TWO
0xB3    0x00B3  #       SUPERSCRIPT THREE
0xB4    0x00B4  #       ACUTE ACCENT
0xB5    0x00B5  #       MICRO SIGN
0xB6    0x00B6  #       PILCROW SIGN
0xB7    0x00B7  #       MIDDLE DOT
0xB8    0x00B8  #       CEDILLA
0xB9    0x00B9  #       SUPERSCRIPT ONE
0xBA    0x00BA  #       MASCULINE ORDINAL INDICATOR
0xBB    0x00BB  #       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xBC    0x00BC  #       VULGAR FRACTION ONE QUARTER
0xBD    0x00BD  #       VULGAR FRACTION ONE HALF
0xBE    0x00BE  #       VULGAR FRACTION THREE QUARTERS
0xBF    0x00BF  #       INVERTED QUESTION MARK
0xC0    0x00C0  #       LATIN CAPITAL LETTER A WITH GRAVE
0xC1    0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE
0xC2    0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xC3    0x00C3  #       LATIN CAPITAL LETTER A WITH TILDE
0xC4    0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS
0xC5    0x00C5  #       LATIN CAPITAL LETTER A WITH RING ABOVE
0xC6    0x00C6  #       LATIN CAPITAL LETTER AE
0xC7    0x00C7  #       LATIN CAPITAL LETTER C WITH CEDILLA
0xC8    0x00C8  #       LATIN CAPITAL LETTER E WITH GRAVE
0xC9    0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE
0xCA    0x00CA  #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xCB    0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS
0xCC    0x00CC  #       LATIN CAPITAL LETTER I WITH GRAVE
0xCD    0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE
0xCE    0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xCF    0x00CF  #       LATIN CAPITAL LETTER I WITH DIAERESIS
0xD0    0x011E  #       LATIN CAPITAL LETTER G WITH BREVE
0xD1    0x00D1  #       LATIN CAPITAL LETTER N WITH TILDE
0xD2    0x00D2  #       LATIN CAPITAL LETTER O WITH GRAVE
0xD3    0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE
0xD4    0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xD5    0x00D5  #       LATIN CAPITAL LETTER O WITH TILDE
0xD6    0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS
0xD7    0x00D7  #       MULTIPLICATION SIGN
0xD8    0x00D8  #       LATIN CAPITAL LETTER O WITH STROKE
0xD9    0x00D9  #       LATIN CAPITAL LETTER U WITH GRAVE
0xDA    0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE
0xDB    0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xDC    0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS
0xDD    0x0130  #       LATIN CAPITAL LETTER I WITH DOT ABOVE
0xDE    0x015E  #       LATIN CAPITAL LETTER S WITH CEDILLA
0xDF    0x00DF  #       LATIN SMALL LETTER SHARP S
0xE0    0x00E0  #       LATIN SMALL LETTER A WITH GRAVE
0xE1    0x00E1  #       LATIN SMALL LETTER A WITH ACUTE
0xE2    0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX
0xE3    0x00E3  #       LATIN SMALL LETTER A WITH TILDE
0xE4    0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS
0xE5    0x00E5  #       LATIN SMALL LETTER A WITH RING ABOVE
0xE6    0x00E6  #       LATIN SMALL LETTER AE
0xE7    0x00E7  #       LATIN SMALL LETTER C WITH CEDILLA
0xE8    0x00E8  #       LATIN SMALL LETTER E WITH GRAVE
0xE9    0x00E9  #       LATIN SMALL LETTER E WITH ACUTE
0xEA    0x00EA  #       LATIN SMALL LETTER E WITH CIRCUMFLEX
0xEB    0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS
0xEC    0x00EC  #       LATIN SMALL LETTER I WITH GRAVE
0xED    0x00ED  #       LATIN SMALL LETTER I WITH ACUTE
0xEE    0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX
0xEF    0x00EF  #       LATIN SMALL LETTER I WITH DIAERESIS
0xF0    0x011F  #       LATIN SMALL LETTER G WITH BREVE
0xF1    0x00F1  #       LATIN SMALL LETTER N WITH TILDE
0xF2    0x00F2  #       LATIN SMALL LETTER O WITH GRAVE
0xF3    0x00F3  #       LATIN SMALL LETTER O WITH ACUTE
0xF4    0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX
0xF5    0x00F5  #       LATIN SMALL LETTER O WITH TILDE
0xF6    0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS
0xF7    0x00F7  #       DIVISION SIGN
0xF8    0x00F8  #       LATIN SMALL LETTER O WITH STROKE
0xF9    0x00F9  #       LATIN SMALL LETTER U WITH GRAVE
0xFA    0x00FA  #       LATIN SMALL LETTER U WITH ACUTE
0xFB    0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX
0xFC    0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS
0xFD    0x0131  #       LATIN SMALL LETTER DOTLESS I
0xFE    0x015F  #       LATIN SMALL LETTER S WITH CEDILLA
0xFF    0x00FF  #       LATIN SMALL LETTER Y WITH DIAERESIS



"
! !

!CharacterEncoder::ISO8859_9 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'iso8859-9' 'iso-8859-9' 'latin5' 'latin-5' 'iso-ir-148')
! !

!CharacterEncoder::ISO8859_9 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code > 16rCF ifTrue:[
        code <= 16rFE ifTrue:[
            code == 16rD0 ifTrue:[
                ^  "16r00D0" 16r011E " LATIN CAPITAL LETTER G WITH BREVE " 
            ].
            code == 16rDD ifTrue:[
                ^  "16r00DD" 16r0130 " LATIN CAPITAL LETTER I WITH DOT ABOVE " 
            ].
            code == 16rDE ifTrue:[
                ^  "16r00DE" 16r015E " LATIN CAPITAL LETTER S WITH CEDILLA " 
            ].
            code == 16rF0 ifTrue:[
                ^  "16r00F0" 16r011F " LATIN SMALL LETTER G WITH BREVE " 
            ].
            code == 16rFD ifTrue:[
                ^  "16r00FD" 16r0131 " LATIN SMALL LETTER DOTLESS I " 
            ].
            code == 16rFE ifTrue:[
                ^  "16r00FE" 16r015F " LATIN SMALL LETTER S WITH CEDILLA " 
            ].
        ].
    ].
    ^ super decode:code
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode > 16rCF ifTrue:[
        ((unicode == 16rDD)
         or:[(unicode == 16rDE)
         or:[(unicode == 16rF0)
         or:[(unicode == 16rD0)
         or:[(unicode == 16rFD)
         or:[(unicode == 16rFE)]]]]]) ifTrue:[
            ^ self decodingError.
        ].
        unicode == 16r11E ifTrue:[
            ^  "16r011E" 16r00D0 " LATIN CAPITAL LETTER G WITH BREVE " 
        ].
        unicode == 16r11F ifTrue:[
            ^  "16r011F" 16r00F0 " LATIN SMALL LETTER G WITH BREVE " 
        ].
        unicode == 16r130 ifTrue:[
            ^  "16r0130" 16r00DD " LATIN CAPITAL LETTER I WITH DOT ABOVE " 
        ].
        unicode == 16r131 ifTrue:[
            ^  "16r0131" 16r00FD " LATIN SMALL LETTER DOTLESS I " 
        ].
        unicode == 16r15E ifTrue:[
            ^  "16r015E" 16r00DE " LATIN CAPITAL LETTER S WITH CEDILLA " 
        ].
        unicode == 16r15F ifTrue:[
            ^  "16r015F" 16r00FE " LATIN SMALL LETTER S WITH CEDILLA " 
        ].
    ].
    ^ super encode:unicode
! !

!CharacterEncoder::InverseEncoder class methodsFor:'documentation'!

documentation
"
    An inverseEncoder does the inverse - i.e. encode is really a decode
    and decode is really an encode.
"
! !

!CharacterEncoder::InverseEncoder methodsFor:'accessing'!

decoder:something
    decoder := something.
! !

!CharacterEncoder::InverseEncoder methodsFor:'encoding & decoding'!

decode:aCode
    ^ decoder encode:aCode
!

decodeString:aString
    ^ decoder encodeString:aString
!

encode:aCode
    ^ decoder decode:aCode
!

encodeString:aString
    ^ decoder decodeString:aString
! !

!CharacterEncoder::InverseEncoder methodsFor:'printing'!

printOn:aStream
    aStream 
        nextPutAll:(decoder nameOfEncoding);
        nextPutAll:'->';
        nextPutAll:(decoder nameOfDecodedCode)
! !

!CharacterEncoder::JIS0201 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'OBSOLETE/EASTASIA/JIS/JIS0201.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0201.TXT

#
#       Name:             JIS X 0201 (1976) to Unicode 1.1 Table
#       Unicode version:  1.1
#       Table version:    0.9
#       Table format:     Format A
#       Date:             8 March 1994
#
#       Copyright (c) 1991-1994 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on magnetic media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Recipient is granted the right to make copies in any form for
#       internal distribution and to freely use the information supplied
#       in the creation of products supporting Unicode.  Unicode, Inc.
#       specifically excludes the right to re-distribute this file directly
#       to third parties or other organizations whether for profit or not.
#
#       General notes:
#
#
# This table contains one set of mappings from JIS X 0201 into Unicode.
# Note that these data are *possible* mappings only and may not be the
# same as those used by actual products, nor may they be the best suited
# for all uses.  For more information on the mappings between various code
# pages incorporating the repertoire of JIS X 0201 and Unicode, consult the
# VENDORS mapping data.  Normative information on the mapping between
# JIS X 0201 and Unicode may be found in the Unihan.txt file in the
# latest Unicode Character Database.
#
# If you have carefully considered the fact that the mappings in
# this table are only one possible set of mappings between JIS X 0201 and
# Unicode and have no normative status, but still feel that you
# have located an error in the table that requires fixing, you may
# report any such error to errata@unicode.org.
#
#
#       Format:  Three tab-separated columns
#               Column #1 is the shift JIS code (in hex as 0xXX)
#               Column #2 is the Unicode (in hex as 0xXXXX)
#               Column #3 the Unicode (ISO 10646) name (follows a comment sign)
#
#       The entries are in JIS order
#
#
0x20    0x0020  # SPACE
0x21    0x0021  # EXCLAMATION MARK
0x22    0x0022  # QUOTATION MARK
0x23    0x0023  # NUMBER SIGN
0x24    0x0024  # DOLLAR SIGN
0x25    0x0025  # PERCENT SIGN
0x26    0x0026  # AMPERSAND
0x27    0x0027  # APOSTROPHE
0x28    0x0028  # LEFT PARENTHESIS
0x29    0x0029  # RIGHT PARENTHESIS
0x2A    0x002A  # ASTERISK
0x2B    0x002B  # PLUS SIGN
0x2C    0x002C  # COMMA
0x2D    0x002D  # HYPHEN-MINUS
0x2E    0x002E  # FULL STOP
0x2F    0x002F  # SOLIDUS
0x30    0x0030  # DIGIT ZERO
0x31    0x0031  # DIGIT ONE
0x32    0x0032  # DIGIT TWO
0x33    0x0033  # DIGIT THREE
0x34    0x0034  # DIGIT FOUR
0x35    0x0035  # DIGIT FIVE
0x36    0x0036  # DIGIT SIX
0x37    0x0037  # DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT
0x39    0x0039  # DIGIT NINE
0x3A    0x003A  # COLON
0x3B    0x003B  # SEMICOLON
0x3C    0x003C  # LESS-THAN SIGN
0x3D    0x003D  # EQUALS SIGN
0x3E    0x003E  # GREATER-THAN SIGN
0x3F    0x003F  # QUESTION MARK
0x40    0x0040  # COMMERCIAL AT
0x41    0x0041  # LATIN CAPITAL LETTER A
0x42    0x0042  # LATIN CAPITAL LETTER B
0x43    0x0043  # LATIN CAPITAL LETTER C
0x44    0x0044  # LATIN CAPITAL LETTER D
0x45    0x0045  # LATIN CAPITAL LETTER E
0x46    0x0046  # LATIN CAPITAL LETTER F
0x47    0x0047  # LATIN CAPITAL LETTER G
0x48    0x0048  # LATIN CAPITAL LETTER H
0x49    0x0049  # LATIN CAPITAL LETTER I
0x4A    0x004A  # LATIN CAPITAL LETTER J
0x4B    0x004B  # LATIN CAPITAL LETTER K
0x4C    0x004C  # LATIN CAPITAL LETTER L
0x4D    0x004D  # LATIN CAPITAL LETTER M
0x4E    0x004E  # LATIN CAPITAL LETTER N
0x4F    0x004F  # LATIN CAPITAL LETTER O
0x50    0x0050  # LATIN CAPITAL LETTER P
0x51    0x0051  # LATIN CAPITAL LETTER Q
0x52    0x0052  # LATIN CAPITAL LETTER R
0x53    0x0053  # LATIN CAPITAL LETTER S
0x54    0x0054  # LATIN CAPITAL LETTER T
0x55    0x0055  # LATIN CAPITAL LETTER U
0x56    0x0056  # LATIN CAPITAL LETTER V
0x57    0x0057  # LATIN CAPITAL LETTER W
0x58    0x0058  # LATIN CAPITAL LETTER X
0x59    0x0059  # LATIN CAPITAL LETTER Y
0x5A    0x005A  # LATIN CAPITAL LETTER Z
0x5B    0x005B  # LEFT SQUARE BRACKET
0x5C    0x00A5  # YEN SIGN
0x5D    0x005D  # RIGHT SQUARE BRACKET
0x5E    0x005E  # CIRCUMFLEX ACCENT
0x5F    0x005F  # LOW LINE
0x60    0x0060  # GRAVE ACCENT
0x61    0x0061  # LATIN SMALL LETTER A
0x62    0x0062  # LATIN SMALL LETTER B
0x63    0x0063  # LATIN SMALL LETTER C
0x64    0x0064  # LATIN SMALL LETTER D
0x65    0x0065  # LATIN SMALL LETTER E
0x66    0x0066  # LATIN SMALL LETTER F
0x67    0x0067  # LATIN SMALL LETTER G
0x68    0x0068  # LATIN SMALL LETTER H
0x69    0x0069  # LATIN SMALL LETTER I
0x6A    0x006A  # LATIN SMALL LETTER J
0x6B    0x006B  # LATIN SMALL LETTER K
0x6C    0x006C  # LATIN SMALL LETTER L
0x6D    0x006D  # LATIN SMALL LETTER M
0x6E    0x006E  # LATIN SMALL LETTER N
0x6F    0x006F  # LATIN SMALL LETTER O
0x70    0x0070  # LATIN SMALL LETTER P
0x71    0x0071  # LATIN SMALL LETTER Q
0x72    0x0072  # LATIN SMALL LETTER R
0x73    0x0073  # LATIN SMALL LETTER S
0x74    0x0074  # LATIN SMALL LETTER T
0x75    0x0075  # LATIN SMALL LETTER U
0x76    0x0076  # LATIN SMALL LETTER V
0x77    0x0077  # LATIN SMALL LETTER W
0x78    0x0078  # LATIN SMALL LETTER X
0x79    0x0079  # LATIN SMALL LETTER Y
0x7A    0x007A  # LATIN SMALL LETTER Z
0x7B    0x007B  # LEFT CURLY BRACKET
0x7C    0x007C  # VERTICAL LINE
0x7D    0x007D  # RIGHT CURLY BRACKET
0x7E    0x203E  # OVERLINE
0xA1    0xFF61  # HALFWIDTH IDEOGRAPHIC FULL STOP
0xA2    0xFF62  # HALFWIDTH LEFT CORNER BRACKET
0xA3    0xFF63  # HALFWIDTH RIGHT CORNER BRACKET
0xA4    0xFF64  # HALFWIDTH IDEOGRAPHIC COMMA
0xA5    0xFF65  # HALFWIDTH KATAKANA MIDDLE DOT
0xA6    0xFF66  # HALFWIDTH KATAKANA LETTER WO
0xA7    0xFF67  # HALFWIDTH KATAKANA LETTER SMALL A
0xA8    0xFF68  # HALFWIDTH KATAKANA LETTER SMALL I
0xA9    0xFF69  # HALFWIDTH KATAKANA LETTER SMALL U
0xAA    0xFF6A  # HALFWIDTH KATAKANA LETTER SMALL E
0xAB    0xFF6B  # HALFWIDTH KATAKANA LETTER SMALL O
0xAC    0xFF6C  # HALFWIDTH KATAKANA LETTER SMALL YA
0xAD    0xFF6D  # HALFWIDTH KATAKANA LETTER SMALL YU
0xAE    0xFF6E  # HALFWIDTH KATAKANA LETTER SMALL YO
0xAF    0xFF6F  # HALFWIDTH KATAKANA LETTER SMALL TU
0xB0    0xFF70  # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
0xB1    0xFF71  # HALFWIDTH KATAKANA LETTER A
0xB2    0xFF72  # HALFWIDTH KATAKANA LETTER I
0xB3    0xFF73  # HALFWIDTH KATAKANA LETTER U
0xB4    0xFF74  # HALFWIDTH KATAKANA LETTER E
0xB5    0xFF75  # HALFWIDTH KATAKANA LETTER O
0xB6    0xFF76  # HALFWIDTH KATAKANA LETTER KA
0xB7    0xFF77  # HALFWIDTH KATAKANA LETTER KI
0xB8    0xFF78  # HALFWIDTH KATAKANA LETTER KU
0xB9    0xFF79  # HALFWIDTH KATAKANA LETTER KE
0xBA    0xFF7A  # HALFWIDTH KATAKANA LETTER KO
0xBB    0xFF7B  # HALFWIDTH KATAKANA LETTER SA
0xBC    0xFF7C  # HALFWIDTH KATAKANA LETTER SI
0xBD    0xFF7D  # HALFWIDTH KATAKANA LETTER SU
0xBE    0xFF7E  # HALFWIDTH KATAKANA LETTER SE
0xBF    0xFF7F  # HALFWIDTH KATAKANA LETTER SO
0xC0    0xFF80  # HALFWIDTH KATAKANA LETTER TA
0xC1    0xFF81  # HALFWIDTH KATAKANA LETTER TI
0xC2    0xFF82  # HALFWIDTH KATAKANA LETTER TU
0xC3    0xFF83  # HALFWIDTH KATAKANA LETTER TE
0xC4    0xFF84  # HALFWIDTH KATAKANA LETTER TO
0xC5    0xFF85  # HALFWIDTH KATAKANA LETTER NA
0xC6    0xFF86  # HALFWIDTH KATAKANA LETTER NI
0xC7    0xFF87  # HALFWIDTH KATAKANA LETTER NU
0xC8    0xFF88  # HALFWIDTH KATAKANA LETTER NE
0xC9    0xFF89  # HALFWIDTH KATAKANA LETTER NO
0xCA    0xFF8A  # HALFWIDTH KATAKANA LETTER HA
0xCB    0xFF8B  # HALFWIDTH KATAKANA LETTER HI
0xCC    0xFF8C  # HALFWIDTH KATAKANA LETTER HU
0xCD    0xFF8D  # HALFWIDTH KATAKANA LETTER HE
0xCE    0xFF8E  # HALFWIDTH KATAKANA LETTER HO
0xCF    0xFF8F  # HALFWIDTH KATAKANA LETTER MA
0xD0    0xFF90  # HALFWIDTH KATAKANA LETTER MI
0xD1    0xFF91  # HALFWIDTH KATAKANA LETTER MU
0xD2    0xFF92  # HALFWIDTH KATAKANA LETTER ME
0xD3    0xFF93  # HALFWIDTH KATAKANA LETTER MO
0xD4    0xFF94  # HALFWIDTH KATAKANA LETTER YA
0xD5    0xFF95  # HALFWIDTH KATAKANA LETTER YU
0xD6    0xFF96  # HALFWIDTH KATAKANA LETTER YO
0xD7    0xFF97  # HALFWIDTH KATAKANA LETTER RA
0xD8    0xFF98  # HALFWIDTH KATAKANA LETTER RI
0xD9    0xFF99  # HALFWIDTH KATAKANA LETTER RU
0xDA    0xFF9A  # HALFWIDTH KATAKANA LETTER RE
0xDB    0xFF9B  # HALFWIDTH KATAKANA LETTER RO
0xDC    0xFF9C  # HALFWIDTH KATAKANA LETTER WA
0xDD    0xFF9D  # HALFWIDTH KATAKANA LETTER N
0xDE    0xFF9E  # HALFWIDTH KATAKANA VOICED SOUND MARK
0xDF    0xFF9F  # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK

"
! !

!CharacterEncoder::JIS0201 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'jis0201' )
! !

!CharacterEncoder::JIS0201 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16r1F ifTrue:[
	^ self decodingError.
    ].
    code <= 16r5B ifTrue:[ ^ code ].
    code > 16rDF ifTrue:[
	^ self decodingError.
    ].
    [
	|t|
	t := #(
	   "16r005C"    16r00A5 " YEN SIGN " 
	   "16r005D"    16r005D " RIGHT SQUARE BRACKET " 
	   "16r005E"    16r005E " CIRCUMFLEX ACCENT " 
	   "16r005F"    16r005F " LOW LINE " 
	   "16r0060"    16r0060 " GRAVE ACCENT " 
	   "16r0061"    16r0061 " LATIN SMALL LETTER A " 
	   "16r0062"    16r0062 " LATIN SMALL LETTER B " 
	   "16r0063"    16r0063 " LATIN SMALL LETTER C " 
	   "16r0064"    16r0064 " LATIN SMALL LETTER D " 
	   "16r0065"    16r0065 " LATIN SMALL LETTER E " 
	   "16r0066"    16r0066 " LATIN SMALL LETTER F " 
	   "16r0067"    16r0067 " LATIN SMALL LETTER G " 
	   "16r0068"    16r0068 " LATIN SMALL LETTER H " 
	   "16r0069"    16r0069 " LATIN SMALL LETTER I " 
	   "16r006A"    16r006A " LATIN SMALL LETTER J " 
	   "16r006B"    16r006B " LATIN SMALL LETTER K " 
	   "16r006C"    16r006C " LATIN SMALL LETTER L " 
	   "16r006D"    16r006D " LATIN SMALL LETTER M " 
	   "16r006E"    16r006E " LATIN SMALL LETTER N " 
	   "16r006F"    16r006F " LATIN SMALL LETTER O " 
	   "16r0070"    16r0070 " LATIN SMALL LETTER P " 
	   "16r0071"    16r0071 " LATIN SMALL LETTER Q " 
	   "16r0072"    16r0072 " LATIN SMALL LETTER R " 
	   "16r0073"    16r0073 " LATIN SMALL LETTER S " 
	   "16r0074"    16r0074 " LATIN SMALL LETTER T " 
	   "16r0075"    16r0075 " LATIN SMALL LETTER U " 
	   "16r0076"    16r0076 " LATIN SMALL LETTER V " 
	   "16r0077"    16r0077 " LATIN SMALL LETTER W " 
	   "16r0078"    16r0078 " LATIN SMALL LETTER X " 
	   "16r0079"    16r0079 " LATIN SMALL LETTER Y " 
	   "16r007A"    16r007A " LATIN SMALL LETTER Z " 
	   "16r007B"    16r007B " LEFT CURLY BRACKET " 
	   "16r007C"    16r007C " VERTICAL LINE " 
	   "16r007D"    16r007D " RIGHT CURLY BRACKET " 
	   "16r007E"    16r203E " OVERLINE " 
	   "16r007F"    16r0000 " invalid " 
	   "16r0080"    16r0000 " invalid " 
	   "16r0081"    16r0000 " invalid " 
	   "16r0082"    16r0000 " invalid " 
	   "16r0083"    16r0000 " invalid " 
	   "16r0084"    16r0000 " invalid " 
	   "16r0085"    16r0000 " invalid " 
	   "16r0086"    16r0000 " invalid " 
	   "16r0087"    16r0000 " invalid " 
	   "16r0088"    16r0000 " invalid " 
	   "16r0089"    16r0000 " invalid " 
	   "16r008A"    16r0000 " invalid " 
	   "16r008B"    16r0000 " invalid " 
	   "16r008C"    16r0000 " invalid " 
	   "16r008D"    16r0000 " invalid " 
	   "16r008E"    16r0000 " invalid " 
	   "16r008F"    16r0000 " invalid " 
	   "16r0090"    16r0000 " invalid " 
	   "16r0091"    16r0000 " invalid " 
	   "16r0092"    16r0000 " invalid " 
	   "16r0093"    16r0000 " invalid " 
	   "16r0094"    16r0000 " invalid " 
	   "16r0095"    16r0000 " invalid " 
	   "16r0096"    16r0000 " invalid " 
	   "16r0097"    16r0000 " invalid " 
	   "16r0098"    16r0000 " invalid " 
	   "16r0099"    16r0000 " invalid " 
	   "16r009A"    16r0000 " invalid " 
	   "16r009B"    16r0000 " invalid " 
	   "16r009C"    16r0000 " invalid " 
	   "16r009D"    16r0000 " invalid " 
	   "16r009E"    16r0000 " invalid " 
	   "16r009F"    16r0000 " invalid " 
	   "16r00A0"    16r0000 " invalid " 
	   "16r00A1"    16rFF61 " HALFWIDTH IDEOGRAPHIC FULL STOP " 
	   "16r00A2"    16rFF62 " HALFWIDTH LEFT CORNER BRACKET " 
	   "16r00A3"    16rFF63 " HALFWIDTH RIGHT CORNER BRACKET " 
	   "16r00A4"    16rFF64 " HALFWIDTH IDEOGRAPHIC COMMA " 
	   "16r00A5"    16rFF65 " HALFWIDTH KATAKANA MIDDLE DOT " 
	   "16r00A6"    16rFF66 " HALFWIDTH KATAKANA LETTER WO " 
	   "16r00A7"    16rFF67 " HALFWIDTH KATAKANA LETTER SMALL A " 
	   "16r00A8"    16rFF68 " HALFWIDTH KATAKANA LETTER SMALL I " 
	   "16r00A9"    16rFF69 " HALFWIDTH KATAKANA LETTER SMALL U " 
	   "16r00AA"    16rFF6A " HALFWIDTH KATAKANA LETTER SMALL E " 
	   "16r00AB"    16rFF6B " HALFWIDTH KATAKANA LETTER SMALL O " 
	   "16r00AC"    16rFF6C " HALFWIDTH KATAKANA LETTER SMALL YA " 
	   "16r00AD"    16rFF6D " HALFWIDTH KATAKANA LETTER SMALL YU " 
	   "16r00AE"    16rFF6E " HALFWIDTH KATAKANA LETTER SMALL YO " 
	   "16r00AF"    16rFF6F " HALFWIDTH KATAKANA LETTER SMALL TU " 
	   "16r00B0"    16rFF70 " HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK " 
	   "16r00B1"    16rFF71 " HALFWIDTH KATAKANA LETTER A " 
	   "16r00B2"    16rFF72 " HALFWIDTH KATAKANA LETTER I " 
	   "16r00B3"    16rFF73 " HALFWIDTH KATAKANA LETTER U " 
	   "16r00B4"    16rFF74 " HALFWIDTH KATAKANA LETTER E " 
	   "16r00B5"    16rFF75 " HALFWIDTH KATAKANA LETTER O " 
	   "16r00B6"    16rFF76 " HALFWIDTH KATAKANA LETTER KA " 
	   "16r00B7"    16rFF77 " HALFWIDTH KATAKANA LETTER KI " 
	   "16r00B8"    16rFF78 " HALFWIDTH KATAKANA LETTER KU " 
	   "16r00B9"    16rFF79 " HALFWIDTH KATAKANA LETTER KE " 
	   "16r00BA"    16rFF7A " HALFWIDTH KATAKANA LETTER KO " 
	   "16r00BB"    16rFF7B " HALFWIDTH KATAKANA LETTER SA " 
	   "16r00BC"    16rFF7C " HALFWIDTH KATAKANA LETTER SI " 
	   "16r00BD"    16rFF7D " HALFWIDTH KATAKANA LETTER SU " 
	   "16r00BE"    16rFF7E " HALFWIDTH KATAKANA LETTER SE " 
	   "16r00BF"    16rFF7F " HALFWIDTH KATAKANA LETTER SO " 
	   "16r00C0"    16rFF80 " HALFWIDTH KATAKANA LETTER TA " 
	   "16r00C1"    16rFF81 " HALFWIDTH KATAKANA LETTER TI " 
	   "16r00C2"    16rFF82 " HALFWIDTH KATAKANA LETTER TU " 
	   "16r00C3"    16rFF83 " HALFWIDTH KATAKANA LETTER TE " 
	   "16r00C4"    16rFF84 " HALFWIDTH KATAKANA LETTER TO " 
	   "16r00C5"    16rFF85 " HALFWIDTH KATAKANA LETTER NA " 
	   "16r00C6"    16rFF86 " HALFWIDTH KATAKANA LETTER NI " 
	   "16r00C7"    16rFF87 " HALFWIDTH KATAKANA LETTER NU " 
	   "16r00C8"    16rFF88 " HALFWIDTH KATAKANA LETTER NE " 
	   "16r00C9"    16rFF89 " HALFWIDTH KATAKANA LETTER NO " 
	   "16r00CA"    16rFF8A " HALFWIDTH KATAKANA LETTER HA " 
	   "16r00CB"    16rFF8B " HALFWIDTH KATAKANA LETTER HI " 
	   "16r00CC"    16rFF8C " HALFWIDTH KATAKANA LETTER HU " 
	   "16r00CD"    16rFF8D " HALFWIDTH KATAKANA LETTER HE " 
	   "16r00CE"    16rFF8E " HALFWIDTH KATAKANA LETTER HO " 
	   "16r00CF"    16rFF8F " HALFWIDTH KATAKANA LETTER MA " 
	   "16r00D0"    16rFF90 " HALFWIDTH KATAKANA LETTER MI " 
	   "16r00D1"    16rFF91 " HALFWIDTH KATAKANA LETTER MU " 
	   "16r00D2"    16rFF92 " HALFWIDTH KATAKANA LETTER ME " 
	   "16r00D3"    16rFF93 " HALFWIDTH KATAKANA LETTER MO " 
	   "16r00D4"    16rFF94 " HALFWIDTH KATAKANA LETTER YA " 
	   "16r00D5"    16rFF95 " HALFWIDTH KATAKANA LETTER YU " 
	   "16r00D6"    16rFF96 " HALFWIDTH KATAKANA LETTER YO " 
	   "16r00D7"    16rFF97 " HALFWIDTH KATAKANA LETTER RA " 
	   "16r00D8"    16rFF98 " HALFWIDTH KATAKANA LETTER RI " 
	   "16r00D9"    16rFF99 " HALFWIDTH KATAKANA LETTER RU " 
	   "16r00DA"    16rFF9A " HALFWIDTH KATAKANA LETTER RE " 
	   "16r00DB"    16rFF9B " HALFWIDTH KATAKANA LETTER RO " 
	   "16r00DC"    16rFF9C " HALFWIDTH KATAKANA LETTER WA " 
	   "16r00DD"    16rFF9D " HALFWIDTH KATAKANA LETTER N " 
	   "16r00DE"    16rFF9E " HALFWIDTH KATAKANA VOICED SOUND MARK " 
	   "16r00DF"    16rFF9F " HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK " 
	   ) at:(code - 16r5B).
	t == 0 ifFalse:[^ t].
	^ self decodingError.
    ] value.
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16r1F ifTrue:[
	^ self decodingError.
    ].
    unicode <= 16r5B ifTrue:[ ^ unicode ].
    unicode > 16rFF9F ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r203E ifTrue:[
	unicode <= 16rA5 ifTrue:[
	    unicode <= 16r7D ifTrue:[
		[
		    |t|
		    t := #[
		       "16r005C"    16r00 " invalid " 
		       "16r005D"    16r5D " RIGHT SQUARE BRACKET " 
		       "16r005E"    16r5E " CIRCUMFLEX ACCENT " 
		       "16r005F"    16r5F " LOW LINE " 
		       "16r0060"    16r60 " GRAVE ACCENT " 
		       "16r0061"    16r61 " LATIN SMALL LETTER A " 
		       "16r0062"    16r62 " LATIN SMALL LETTER B " 
		       "16r0063"    16r63 " LATIN SMALL LETTER C " 
		       "16r0064"    16r64 " LATIN SMALL LETTER D " 
		       "16r0065"    16r65 " LATIN SMALL LETTER E " 
		       "16r0066"    16r66 " LATIN SMALL LETTER F " 
		       "16r0067"    16r67 " LATIN SMALL LETTER G " 
		       "16r0068"    16r68 " LATIN SMALL LETTER H " 
		       "16r0069"    16r69 " LATIN SMALL LETTER I " 
		       "16r006A"    16r6A " LATIN SMALL LETTER J " 
		       "16r006B"    16r6B " LATIN SMALL LETTER K " 
		       "16r006C"    16r6C " LATIN SMALL LETTER L " 
		       "16r006D"    16r6D " LATIN SMALL LETTER M " 
		       "16r006E"    16r6E " LATIN SMALL LETTER N " 
		       "16r006F"    16r6F " LATIN SMALL LETTER O " 
		       "16r0070"    16r70 " LATIN SMALL LETTER P " 
		       "16r0071"    16r71 " LATIN SMALL LETTER Q " 
		       "16r0072"    16r72 " LATIN SMALL LETTER R " 
		       "16r0073"    16r73 " LATIN SMALL LETTER S " 
		       "16r0074"    16r74 " LATIN SMALL LETTER T " 
		       "16r0075"    16r75 " LATIN SMALL LETTER U " 
		       "16r0076"    16r76 " LATIN SMALL LETTER V " 
		       "16r0077"    16r77 " LATIN SMALL LETTER W " 
		       "16r0078"    16r78 " LATIN SMALL LETTER X " 
		       "16r0079"    16r79 " LATIN SMALL LETTER Y " 
		       "16r007A"    16r7A " LATIN SMALL LETTER Z " 
		       "16r007B"    16r7B " LEFT CURLY BRACKET " 
		       "16r007C"    16r7C " VERTICAL LINE " 
		       "16r007D"    16r7D " RIGHT CURLY BRACKET " 
		       ] at:(unicode - 16r5B).
		    t == 0 ifFalse:[^ t].
		    ^ self encodingError
		] value.
	    ].
	    unicode <= 16rA4 ifTrue:[
		^ self encodingError.
	    ].
	    ^  "16r00A5" 16r005C " YEN SIGN " 
	].
	unicode <= 16r203D ifTrue:[
	    ^ self encodingError.
	].
	^  "16r203E" 16r007E " OVERLINE " 
    ].
    unicode <= 16rFF60 ifTrue:[
	^ self encodingError.
    ].
    ^ #[
       "16rFF61"    16rA1 " HALFWIDTH IDEOGRAPHIC FULL STOP " 
       "16rFF62"    16rA2 " HALFWIDTH LEFT CORNER BRACKET " 
       "16rFF63"    16rA3 " HALFWIDTH RIGHT CORNER BRACKET " 
       "16rFF64"    16rA4 " HALFWIDTH IDEOGRAPHIC COMMA " 
       "16rFF65"    16rA5 " HALFWIDTH KATAKANA MIDDLE DOT " 
       "16rFF66"    16rA6 " HALFWIDTH KATAKANA LETTER WO " 
       "16rFF67"    16rA7 " HALFWIDTH KATAKANA LETTER SMALL A " 
       "16rFF68"    16rA8 " HALFWIDTH KATAKANA LETTER SMALL I " 
       "16rFF69"    16rA9 " HALFWIDTH KATAKANA LETTER SMALL U " 
       "16rFF6A"    16rAA " HALFWIDTH KATAKANA LETTER SMALL E " 
       "16rFF6B"    16rAB " HALFWIDTH KATAKANA LETTER SMALL O " 
       "16rFF6C"    16rAC " HALFWIDTH KATAKANA LETTER SMALL YA " 
       "16rFF6D"    16rAD " HALFWIDTH KATAKANA LETTER SMALL YU " 
       "16rFF6E"    16rAE " HALFWIDTH KATAKANA LETTER SMALL YO " 
       "16rFF6F"    16rAF " HALFWIDTH KATAKANA LETTER SMALL TU " 
       "16rFF70"    16rB0 " HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK " 
       "16rFF71"    16rB1 " HALFWIDTH KATAKANA LETTER A " 
       "16rFF72"    16rB2 " HALFWIDTH KATAKANA LETTER I " 
       "16rFF73"    16rB3 " HALFWIDTH KATAKANA LETTER U " 
       "16rFF74"    16rB4 " HALFWIDTH KATAKANA LETTER E " 
       "16rFF75"    16rB5 " HALFWIDTH KATAKANA LETTER O " 
       "16rFF76"    16rB6 " HALFWIDTH KATAKANA LETTER KA " 
       "16rFF77"    16rB7 " HALFWIDTH KATAKANA LETTER KI " 
       "16rFF78"    16rB8 " HALFWIDTH KATAKANA LETTER KU " 
       "16rFF79"    16rB9 " HALFWIDTH KATAKANA LETTER KE " 
       "16rFF7A"    16rBA " HALFWIDTH KATAKANA LETTER KO " 
       "16rFF7B"    16rBB " HALFWIDTH KATAKANA LETTER SA " 
       "16rFF7C"    16rBC " HALFWIDTH KATAKANA LETTER SI " 
       "16rFF7D"    16rBD " HALFWIDTH KATAKANA LETTER SU " 
       "16rFF7E"    16rBE " HALFWIDTH KATAKANA LETTER SE " 
       "16rFF7F"    16rBF " HALFWIDTH KATAKANA LETTER SO " 
       "16rFF80"    16rC0 " HALFWIDTH KATAKANA LETTER TA " 
       "16rFF81"    16rC1 " HALFWIDTH KATAKANA LETTER TI " 
       "16rFF82"    16rC2 " HALFWIDTH KATAKANA LETTER TU " 
       "16rFF83"    16rC3 " HALFWIDTH KATAKANA LETTER TE " 
       "16rFF84"    16rC4 " HALFWIDTH KATAKANA LETTER TO " 
       "16rFF85"    16rC5 " HALFWIDTH KATAKANA LETTER NA " 
       "16rFF86"    16rC6 " HALFWIDTH KATAKANA LETTER NI " 
       "16rFF87"    16rC7 " HALFWIDTH KATAKANA LETTER NU " 
       "16rFF88"    16rC8 " HALFWIDTH KATAKANA LETTER NE " 
       "16rFF89"    16rC9 " HALFWIDTH KATAKANA LETTER NO " 
       "16rFF8A"    16rCA " HALFWIDTH KATAKANA LETTER HA " 
       "16rFF8B"    16rCB " HALFWIDTH KATAKANA LETTER HI " 
       "16rFF8C"    16rCC " HALFWIDTH KATAKANA LETTER HU " 
       "16rFF8D"    16rCD " HALFWIDTH KATAKANA LETTER HE " 
       "16rFF8E"    16rCE " HALFWIDTH KATAKANA LETTER HO " 
       "16rFF8F"    16rCF " HALFWIDTH KATAKANA LETTER MA " 
       "16rFF90"    16rD0 " HALFWIDTH KATAKANA LETTER MI " 
       "16rFF91"    16rD1 " HALFWIDTH KATAKANA LETTER MU " 
       "16rFF92"    16rD2 " HALFWIDTH KATAKANA LETTER ME " 
       "16rFF93"    16rD3 " HALFWIDTH KATAKANA LETTER MO " 
       "16rFF94"    16rD4 " HALFWIDTH KATAKANA LETTER YA " 
       "16rFF95"    16rD5 " HALFWIDTH KATAKANA LETTER YU " 
       "16rFF96"    16rD6 " HALFWIDTH KATAKANA LETTER YO " 
       "16rFF97"    16rD7 " HALFWIDTH KATAKANA LETTER RA " 
       "16rFF98"    16rD8 " HALFWIDTH KATAKANA LETTER RI " 
       "16rFF99"    16rD9 " HALFWIDTH KATAKANA LETTER RU " 
       "16rFF9A"    16rDA " HALFWIDTH KATAKANA LETTER RE " 
       "16rFF9B"    16rDB " HALFWIDTH KATAKANA LETTER RO " 
       "16rFF9C"    16rDC " HALFWIDTH KATAKANA LETTER WA " 
       "16rFF9D"    16rDD " HALFWIDTH KATAKANA LETTER N " 
       "16rFF9E"    16rDE " HALFWIDTH KATAKANA VOICED SOUND MARK " 
       "16rFF9F"    16rDF " HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK " 
       ] at:(unicode - 16rFF60).
! !

!CharacterEncoder::JIS0208 class methodsFor:'constants'!

defaultRomanCharacterValue
    ^ 16r2222
!

romanTable
    "return a table to decode from roman ascii to 16 bit JIS."

    ^ #(
	    " "    "excla"          " # "   " $ "   " % "   " & "   " ' "
	  16r2121 16r212a 16r2149 16r2174 16r2170 16r2173 16r2175 16r2147     "/ 20
	    " ( "   " ) "   " * "   " + "   " , "   " - "   " . "   " / "
	  16r214a 16r214b 16r2176 16r215c 16r2124 16r215d 16r2125 16r213f     "/ 28
	    " 0 "   " 1 "   " 2 "   " 3 "   " 4 "   " 5 "   " 6 "   " 7 "
	  16r2330 16r2331 16r2332 16r2333 16r2334 16r2335 16r2336 16r2337     "/ 30
	    " 8 "   " 9 "   " : "   " ; "   " < "   " = "   " > "   " ? "
	  16r2338 16r2339 16r2127 16r2128 16r2163 16r2161 16r2164 16r2129     "/ 38
	    " @ "   " A "   " B "   " C "   " D "   " E "   " F "   " G "
	  16r2177 16r2341 16r2342 16r2343 16r2344 16r2345 16r2346 16r2347     "/ 40
	    " H "   " I "   " J "   " K "   " L "   " M "   " N "   " O "
	  16r2348 16r2349 16r234a 16r234b 16r234c 16r234d 16r234e 16r234f     "/ 48
	    " P "   " Q "   " R "   " S "   " T "   " U "   " V "   " W "
	  16r2350 16r2351 16r2352 16r2353 16r2354 16r2355 16r2356 16r2357     "/ 50
	    " X "   " Y "   " Z "   " [ "   " \ "   " ] "   " ^ "   " _ "
	  16r2358 16r2359 16r235a 16r214e 16r2140 16r214f 16r2130 16r2132     "/ 58
	    " ` "   " a "   " b "   " c "   " d "   " e "   " f "   " g "
	  16r2146 16r2361 16r2362 16r2363 16r2364 16r2365 16r2366 16r2367     "/ 60
	    " h "   " i "   " j "   " k "   " l "   " m "   " n "   " o "
	  16r2368 16r2369 16r236a 16r236b 16r236c 16r236d 16r236e 16r236f     "/ 68
	    " p "   " q "   " r "   " s "   " t "   " u "   " v "   " w "
	  16r2370 16r2371 16r2372 16r2373 16r2374 16r2375 16r2376 16r2377     "/ 70
	    " x "   " y "   " z "   " { "   " | "   " } "  " ~ "
	  16r2378 16r2379 16r237a 16r2150 16r2143 16r2151 16r2141 16r2121     "/ 78

	  "/ actually: half-width katakana

	  16r2121 16r2123 16r2156 16r2157 16r2122 16r2126 16r2572 16r2521     "/ 80
	  16r2523 16r2525 16r2527 16r2529 16r2563 16r2565 16r2567 16r2543     "/ 88
	  16r213c 16r2522 16r2524 16r2526 16r2528 16r252a 16r252b 16r252d     "/ 90
	  16r252f 16r2531 16r2533 16r2535 16r2537 16r2539 16r253b 16r253d     "/ 98
	  16r253f 16r2541 16r2544 16r2546 16r2548 16r254a 16r254b 16r254c     "/ A0
	  16r254d 16r254e 16r254f 16r2552 16r2555 16r2558 16r255b 16r255e     "/ A8
	  16r255f 16r2560 16r2561 16r2562 16r2564 16r2566 16r2568 16r2569     "/ B0
	  16r256a 16r256b 16r256c 16r256d 16r256f 16r2573 16r212b 16r212c     "/ B8
      ).

    "Created: 30.6.1997 / 14:25:53 / cg"
    "Modified: 30.6.1997 / 19:11:45 / cg"
! !

!CharacterEncoder::JIS0208 class methodsFor:'mapping'!

mapFileURL1_codeColumn
    ^ 2
!

mapFileURL1_relativePathName
    ^ 'OBSOLETE/EASTASIA/JIS/JIS0208.TXT'
! !

!CharacterEncoder::JIS0208 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'jis0208' 'jisx0208' 'jisx0208.1983-0')
! !

!CharacterEncoder::JIS0208 methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16r7F ifTrue:[
        ^ code.
    ].
    code <= 16r2120 ifTrue:[
        ^ self decodingError.
    ].
    code > 16r7426 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r2840 ifTrue:[
        code <= 16r2658 ifTrue:[
            code <= 16r227E ifTrue:[
                code <= 16r217E ifTrue:[
                    ^ #(
                       "16r2121"    16r3000 " IDEOGRAPHIC SPACE " 
                       "16r2122"    16r3001 " IDEOGRAPHIC COMMA " 
                       "16r2123"    16r3002 " IDEOGRAPHIC FULL STOP " 
                       "16r2124"    16rFF0C " FULLWIDTH COMMA " 
                       "16r2125"    16rFF0E " FULLWIDTH FULL STOP " 
                       "16r2126"    16r30FB " KATAKANA MIDDLE DOT " 
                       "16r2127"    16rFF1A " FULLWIDTH COLON " 
                       "16r2128"    16rFF1B " FULLWIDTH SEMICOLON " 
                       "16r2129"    16rFF1F " FULLWIDTH QUESTION MARK " 
                       "16r212A"    16rFF01 " FULLWIDTH EXCLAMATION MARK " 
                       "16r212B"    16r309B " KATAKANA-HIRAGANA VOICED SOUND MARK " 
                       "16r212C"    16r309C " KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK " 
                       "16r212D"    16r00B4 " ACUTE ACCENT " 
                       "16r212E"    16rFF40 " FULLWIDTH GRAVE ACCENT " 
                       "16r212F"    16r00A8 " DIAERESIS " 
                       "16r2130"    16rFF3E " FULLWIDTH CIRCUMFLEX ACCENT " 
                       "16r2131"    16rFFE3 " FULLWIDTH MACRON " 
                       "16r2132"    16rFF3F " FULLWIDTH LOW LINE " 
                       "16r2133"    16r30FD " KATAKANA ITERATION MARK " 
                       "16r2134"    16r30FE " KATAKANA VOICED ITERATION MARK " 
                       "16r2135"    16r309D " HIRAGANA ITERATION MARK " 
                       "16r2136"    16r309E " HIRAGANA VOICED ITERATION MARK " 
                       "16r2137"    16r3003 " DITTO MARK " 
                       "16r2138"    16r4EDD " <CJK> " 
                       "16r2139"    16r3005 " IDEOGRAPHIC ITERATION MARK " 
                       "16r213A"    16r3006 " IDEOGRAPHIC CLOSING MARK " 
                       "16r213B"    16r3007 " IDEOGRAPHIC NUMBER ZERO " 
                       "16r213C"    16r30FC " KATAKANA-HIRAGANA PROLONGED SOUND MARK " 
                       "16r213D"    16r2015 " HORIZONTAL BAR " 
                       "16r213E"    16r2010 " HYPHEN " 
                       "16r213F"    16rFF0F " FULLWIDTH SOLIDUS " 
                       "16r2140"    16r005C " REVERSE SOLIDUS " 
                       "16r2141"    16r301C " WAVE DASH " 
                       "16r2142"    16r2016 " DOUBLE VERTICAL LINE " 
                       "16r2143"    16rFF5C " FULLWIDTH VERTICAL LINE " 
                       "16r2144"    16r2026 " HORIZONTAL ELLIPSIS " 
                       "16r2145"    16r2025 " TWO DOT LEADER " 
                       "16r2146"    16r2018 " LEFT SINGLE QUOTATION MARK " 
                       "16r2147"    16r2019 " RIGHT SINGLE QUOTATION MARK " 
                       "16r2148"    16r201C " LEFT DOUBLE QUOTATION MARK " 
                       "16r2149"    16r201D " RIGHT DOUBLE QUOTATION MARK " 
                       "16r214A"    16rFF08 " FULLWIDTH LEFT PARENTHESIS " 
                       "16r214B"    16rFF09 " FULLWIDTH RIGHT PARENTHESIS " 
                       "16r214C"    16r3014 " LEFT TORTOISE SHELL BRACKET " 
                       "16r214D"    16r3015 " RIGHT TORTOISE SHELL BRACKET " 
                       "16r214E"    16rFF3B " FULLWIDTH LEFT SQUARE BRACKET " 
                       "16r214F"    16rFF3D " FULLWIDTH RIGHT SQUARE BRACKET " 
                       "16r2150"    16rFF5B " FULLWIDTH LEFT CURLY BRACKET " 
                       "16r2151"    16rFF5D " FULLWIDTH RIGHT CURLY BRACKET " 
                       "16r2152"    16r3008 " LEFT ANGLE BRACKET " 
                       "16r2153"    16r3009 " RIGHT ANGLE BRACKET " 
                       "16r2154"    16r300A " LEFT DOUBLE ANGLE BRACKET " 
                       "16r2155"    16r300B " RIGHT DOUBLE ANGLE BRACKET " 
                       "16r2156"    16r300C " LEFT CORNER BRACKET " 
                       "16r2157"    16r300D " RIGHT CORNER BRACKET " 
                       "16r2158"    16r300E " LEFT WHITE CORNER BRACKET " 
                       "16r2159"    16r300F " RIGHT WHITE CORNER BRACKET " 
                       "16r215A"    16r3010 " LEFT BLACK LENTICULAR BRACKET " 
                       "16r215B"    16r3011 " RIGHT BLACK LENTICULAR BRACKET " 
                       "16r215C"    16rFF0B " FULLWIDTH PLUS SIGN " 
                       "16r215D"    16r2212 " MINUS SIGN " 
                       "16r215E"    16r00B1 " PLUS-MINUS SIGN " 
                       "16r215F"    16r00D7 " MULTIPLICATION SIGN " 
                       "16r2160"    16r00F7 " DIVISION SIGN " 
                       "16r2161"    16rFF1D " FULLWIDTH EQUALS SIGN " 
                       "16r2162"    16r2260 " NOT EQUAL TO " 
                       "16r2163"    16rFF1C " FULLWIDTH LESS-THAN SIGN " 
                       "16r2164"    16rFF1E " FULLWIDTH GREATER-THAN SIGN " 
                       "16r2165"    16r2266 " LESS-THAN OVER EQUAL TO " 
                       "16r2166"    16r2267 " GREATER-THAN OVER EQUAL TO " 
                       "16r2167"    16r221E " INFINITY " 
                       "16r2168"    16r2234 " THEREFORE " 
                       "16r2169"    16r2642 " MALE SIGN " 
                       "16r216A"    16r2640 " FEMALE SIGN " 
                       "16r216B"    16r00B0 " DEGREE SIGN " 
                       "16r216C"    16r2032 " PRIME " 
                       "16r216D"    16r2033 " DOUBLE PRIME " 
                       "16r216E"    16r2103 " DEGREE CELSIUS " 
                       "16r216F"    16rFFE5 " FULLWIDTH YEN SIGN " 
                       "16r2170"    16rFF04 " FULLWIDTH DOLLAR SIGN " 
                       "16r2171"    16r00A2 " CENT SIGN " 
                       "16r2172"    16r00A3 " POUND SIGN " 
                       "16r2173"    16rFF05 " FULLWIDTH PERCENT SIGN " 
                       "16r2174"    16rFF03 " FULLWIDTH NUMBER SIGN " 
                       "16r2175"    16rFF06 " FULLWIDTH AMPERSAND " 
                       "16r2176"    16rFF0A " FULLWIDTH ASTERISK " 
                       "16r2177"    16rFF20 " FULLWIDTH COMMERCIAL AT " 
                       "16r2178"    16r00A7 " SECTION SIGN " 
                       "16r2179"    16r2606 " WHITE STAR " 
                       "16r217A"    16r2605 " BLACK STAR " 
                       "16r217B"    16r25CB " WHITE CIRCLE " 
                       "16r217C"    16r25CF " BLACK CIRCLE " 
                       "16r217D"    16r25CE " BULLSEYE " 
                       "16r217E"    16r25C7 " WHITE DIAMOND " 
                       ) at:(code - 16r2120).
                ].
                code <= 16r2220 ifTrue:[
                    ^ self decodingError.
                ].
                [
                    |t|
                    t := #(
                       "16r2221"    16r25C6 " BLACK DIAMOND " 
                       "16r2222"    16r25A1 " WHITE SQUARE " 
                       "16r2223"    16r25A0 " BLACK SQUARE " 
                       "16r2224"    16r25B3 " WHITE UP-POINTING TRIANGLE " 
                       "16r2225"    16r25B2 " BLACK UP-POINTING TRIANGLE " 
                       "16r2226"    16r25BD " WHITE DOWN-POINTING TRIANGLE " 
                       "16r2227"    16r25BC " BLACK DOWN-POINTING TRIANGLE " 
                       "16r2228"    16r203B " REFERENCE MARK " 
                       "16r2229"    16r3012 " POSTAL MARK " 
                       "16r222A"    16r2192 " RIGHTWARDS ARROW " 
                       "16r222B"    16r2190 " LEFTWARDS ARROW " 
                       "16r222C"    16r2191 " UPWARDS ARROW " 
                       "16r222D"    16r2193 " DOWNWARDS ARROW " 
                       "16r222E"    16r3013 " GETA MARK " 
                       "16r222F"    16r0000 " invalid " 
                       "16r2230"    16r0000 " invalid " 
                       "16r2231"    16r0000 " invalid " 
                       "16r2232"    16r0000 " invalid " 
                       "16r2233"    16r0000 " invalid " 
                       "16r2234"    16r0000 " invalid " 
                       "16r2235"    16r0000 " invalid " 
                       "16r2236"    16r0000 " invalid " 
                       "16r2237"    16r0000 " invalid " 
                       "16r2238"    16r0000 " invalid " 
                       "16r2239"    16r0000 " invalid " 
                       "16r223A"    16r2208 " ELEMENT OF " 
                       "16r223B"    16r220B " CONTAINS AS MEMBER " 
                       "16r223C"    16r2286 " SUBSET OF OR EQUAL TO " 
                       "16r223D"    16r2287 " SUPERSET OF OR EQUAL TO " 
                       "16r223E"    16r2282 " SUBSET OF " 
                       "16r223F"    16r2283 " SUPERSET OF " 
                       "16r2240"    16r222A " UNION " 
                       "16r2241"    16r2229 " INTERSECTION " 
                       "16r2242"    16r0000 " invalid " 
                       "16r2243"    16r0000 " invalid " 
                       "16r2244"    16r0000 " invalid " 
                       "16r2245"    16r0000 " invalid " 
                       "16r2246"    16r0000 " invalid " 
                       "16r2247"    16r0000 " invalid " 
                       "16r2248"    16r0000 " invalid " 
                       "16r2249"    16r0000 " invalid " 
                       "16r224A"    16r2227 " LOGICAL AND " 
                       "16r224B"    16r2228 " LOGICAL OR " 
                       "16r224C"    16r00AC " NOT SIGN " 
                       "16r224D"    16r21D2 " RIGHTWARDS DOUBLE ARROW " 
                       "16r224E"    16r21D4 " LEFT RIGHT DOUBLE ARROW " 
                       "16r224F"    16r2200 " FOR ALL " 
                       "16r2250"    16r2203 " THERE EXISTS " 
                       "16r2251"    16r0000 " invalid " 
                       "16r2252"    16r0000 " invalid " 
                       "16r2253"    16r0000 " invalid " 
                       "16r2254"    16r0000 " invalid " 
                       "16r2255"    16r0000 " invalid " 
                       "16r2256"    16r0000 " invalid " 
                       "16r2257"    16r0000 " invalid " 
                       "16r2258"    16r0000 " invalid " 
                       "16r2259"    16r0000 " invalid " 
                       "16r225A"    16r0000 " invalid " 
                       "16r225B"    16r0000 " invalid " 
                       "16r225C"    16r2220 " ANGLE " 
                       "16r225D"    16r22A5 " UP TACK " 
                       "16r225E"    16r2312 " ARC " 
                       "16r225F"    16r2202 " PARTIAL DIFFERENTIAL " 
                       "16r2260"    16r2207 " NABLA " 
                       "16r2261"    16r2261 " IDENTICAL TO " 
                       "16r2262"    16r2252 " APPROXIMATELY EQUAL TO OR THE IMAGE OF " 
                       "16r2263"    16r226A " MUCH LESS-THAN " 
                       "16r2264"    16r226B " MUCH GREATER-THAN " 
                       "16r2265"    16r221A " SQUARE ROOT " 
                       "16r2266"    16r223D " REVERSED TILDE " 
                       "16r2267"    16r221D " PROPORTIONAL TO " 
                       "16r2268"    16r2235 " BECAUSE " 
                       "16r2269"    16r222B " INTEGRAL " 
                       "16r226A"    16r222C " DOUBLE INTEGRAL " 
                       "16r226B"    16r0000 " invalid " 
                       "16r226C"    16r0000 " invalid " 
                       "16r226D"    16r0000 " invalid " 
                       "16r226E"    16r0000 " invalid " 
                       "16r226F"    16r0000 " invalid " 
                       "16r2270"    16r0000 " invalid " 
                       "16r2271"    16r0000 " invalid " 
                       "16r2272"    16r212B " ANGSTROM SIGN " 
                       "16r2273"    16r2030 " PER MILLE SIGN " 
                       "16r2274"    16r266F " MUSIC SHARP SIGN " 
                       "16r2275"    16r266D " MUSIC FLAT SIGN " 
                       "16r2276"    16r266A " EIGHTH NOTE " 
                       "16r2277"    16r2020 " DAGGER " 
                       "16r2278"    16r2021 " DOUBLE DAGGER " 
                       "16r2279"    16r00B6 " PILCROW SIGN " 
                       "16r227A"    16r0000 " invalid " 
                       "16r227B"    16r0000 " invalid " 
                       "16r227C"    16r0000 " invalid " 
                       "16r227D"    16r0000 " invalid " 
                       "16r227E"    16r25EF " LARGE CIRCLE " 
                       ) at:(code - 16r2220).
                    t == 0 ifFalse:[^ t].
                    ^ self decodingError.
                ] value.
            ].
            code <= 16r232F ifTrue:[
                ^ self decodingError.
            ].
            code <= 16r2473 ifTrue:[
                code <= 16r237A ifTrue:[
                    [
                        |t|
                        t := #(
                           "16r2330"    16rFF10 " FULLWIDTH DIGIT ZERO " 
                           "16r2331"    16rFF11 " FULLWIDTH DIGIT ONE " 
                           "16r2332"    16rFF12 " FULLWIDTH DIGIT TWO " 
                           "16r2333"    16rFF13 " FULLWIDTH DIGIT THREE " 
                           "16r2334"    16rFF14 " FULLWIDTH DIGIT FOUR " 
                           "16r2335"    16rFF15 " FULLWIDTH DIGIT FIVE " 
                           "16r2336"    16rFF16 " FULLWIDTH DIGIT SIX " 
                           "16r2337"    16rFF17 " FULLWIDTH DIGIT SEVEN " 
                           "16r2338"    16rFF18 " FULLWIDTH DIGIT EIGHT " 
                           "16r2339"    16rFF19 " FULLWIDTH DIGIT NINE " 
                           "16r233A"    16r0000 " invalid " 
                           "16r233B"    16r0000 " invalid " 
                           "16r233C"    16r0000 " invalid " 
                           "16r233D"    16r0000 " invalid " 
                           "16r233E"    16r0000 " invalid " 
                           "16r233F"    16r0000 " invalid " 
                           "16r2340"    16r0000 " invalid " 
                           "16r2341"    16rFF21 " FULLWIDTH LATIN CAPITAL LETTER A " 
                           "16r2342"    16rFF22 " FULLWIDTH LATIN CAPITAL LETTER B " 
                           "16r2343"    16rFF23 " FULLWIDTH LATIN CAPITAL LETTER C " 
                           "16r2344"    16rFF24 " FULLWIDTH LATIN CAPITAL LETTER D " 
                           "16r2345"    16rFF25 " FULLWIDTH LATIN CAPITAL LETTER E " 
                           "16r2346"    16rFF26 " FULLWIDTH LATIN CAPITAL LETTER F " 
                           "16r2347"    16rFF27 " FULLWIDTH LATIN CAPITAL LETTER G " 
                           "16r2348"    16rFF28 " FULLWIDTH LATIN CAPITAL LETTER H " 
                           "16r2349"    16rFF29 " FULLWIDTH LATIN CAPITAL LETTER I " 
                           "16r234A"    16rFF2A " FULLWIDTH LATIN CAPITAL LETTER J " 
                           "16r234B"    16rFF2B " FULLWIDTH LATIN CAPITAL LETTER K " 
                           "16r234C"    16rFF2C " FULLWIDTH LATIN CAPITAL LETTER L " 
                           "16r234D"    16rFF2D " FULLWIDTH LATIN CAPITAL LETTER M " 
                           "16r234E"    16rFF2E " FULLWIDTH LATIN CAPITAL LETTER N " 
                           "16r234F"    16rFF2F " FULLWIDTH LATIN CAPITAL LETTER O " 
                           "16r2350"    16rFF30 " FULLWIDTH LATIN CAPITAL LETTER P " 
                           "16r2351"    16rFF31 " FULLWIDTH LATIN CAPITAL LETTER Q " 
                           "16r2352"    16rFF32 " FULLWIDTH LATIN CAPITAL LETTER R " 
                           "16r2353"    16rFF33 " FULLWIDTH LATIN CAPITAL LETTER S " 
                           "16r2354"    16rFF34 " FULLWIDTH LATIN CAPITAL LETTER T " 
                           "16r2355"    16rFF35 " FULLWIDTH LATIN CAPITAL LETTER U " 
                           "16r2356"    16rFF36 " FULLWIDTH LATIN CAPITAL LETTER V " 
                           "16r2357"    16rFF37 " FULLWIDTH LATIN CAPITAL LETTER W " 
                           "16r2358"    16rFF38 " FULLWIDTH LATIN CAPITAL LETTER X " 
                           "16r2359"    16rFF39 " FULLWIDTH LATIN CAPITAL LETTER Y " 
                           "16r235A"    16rFF3A " FULLWIDTH LATIN CAPITAL LETTER Z " 
                           "16r235B"    16r0000 " invalid " 
                           "16r235C"    16r0000 " invalid " 
                           "16r235D"    16r0000 " invalid " 
                           "16r235E"    16r0000 " invalid " 
                           "16r235F"    16r0000 " invalid " 
                           "16r2360"    16r0000 " invalid " 
                           "16r2361"    16rFF41 " FULLWIDTH LATIN SMALL LETTER A " 
                           "16r2362"    16rFF42 " FULLWIDTH LATIN SMALL LETTER B " 
                           "16r2363"    16rFF43 " FULLWIDTH LATIN SMALL LETTER C " 
                           "16r2364"    16rFF44 " FULLWIDTH LATIN SMALL LETTER D " 
                           "16r2365"    16rFF45 " FULLWIDTH LATIN SMALL LETTER E " 
                           "16r2366"    16rFF46 " FULLWIDTH LATIN SMALL LETTER F " 
                           "16r2367"    16rFF47 " FULLWIDTH LATIN SMALL LETTER G " 
                           "16r2368"    16rFF48 " FULLWIDTH LATIN SMALL LETTER H " 
                           "16r2369"    16rFF49 " FULLWIDTH LATIN SMALL LETTER I " 
                           "16r236A"    16rFF4A " FULLWIDTH LATIN SMALL LETTER J " 
                           "16r236B"    16rFF4B " FULLWIDTH LATIN SMALL LETTER K " 
                           "16r236C"    16rFF4C " FULLWIDTH LATIN SMALL LETTER L " 
                           "16r236D"    16rFF4D " FULLWIDTH LATIN SMALL LETTER M " 
                           "16r236E"    16rFF4E " FULLWIDTH LATIN SMALL LETTER N " 
                           "16r236F"    16rFF4F " FULLWIDTH LATIN SMALL LETTER O " 
                           "16r2370"    16rFF50 " FULLWIDTH LATIN SMALL LETTER P " 
                           "16r2371"    16rFF51 " FULLWIDTH LATIN SMALL LETTER Q " 
                           "16r2372"    16rFF52 " FULLWIDTH LATIN SMALL LETTER R " 
                           "16r2373"    16rFF53 " FULLWIDTH LATIN SMALL LETTER S " 
                           "16r2374"    16rFF54 " FULLWIDTH LATIN SMALL LETTER T " 
                           "16r2375"    16rFF55 " FULLWIDTH LATIN SMALL LETTER U " 
                           "16r2376"    16rFF56 " FULLWIDTH LATIN SMALL LETTER V " 
                           "16r2377"    16rFF57 " FULLWIDTH LATIN SMALL LETTER W " 
                           "16r2378"    16rFF58 " FULLWIDTH LATIN SMALL LETTER X " 
                           "16r2379"    16rFF59 " FULLWIDTH LATIN SMALL LETTER Y " 
                           "16r237A"    16rFF5A " FULLWIDTH LATIN SMALL LETTER Z " 
                           ) at:(code - 16r232F).
                        t == 0 ifFalse:[^ t].
                        ^ self decodingError.
                    ] value.
                ].
                code <= 16r2420 ifTrue:[
                    ^ self decodingError.
                ].
                ^ #(
                   "16r2421"    16r3041 " HIRAGANA LETTER SMALL A " 
                   "16r2422"    16r3042 " HIRAGANA LETTER A " 
                   "16r2423"    16r3043 " HIRAGANA LETTER SMALL I " 
                   "16r2424"    16r3044 " HIRAGANA LETTER I " 
                   "16r2425"    16r3045 " HIRAGANA LETTER SMALL U " 
                   "16r2426"    16r3046 " HIRAGANA LETTER U " 
                   "16r2427"    16r3047 " HIRAGANA LETTER SMALL E " 
                   "16r2428"    16r3048 " HIRAGANA LETTER E " 
                   "16r2429"    16r3049 " HIRAGANA LETTER SMALL O " 
                   "16r242A"    16r304A " HIRAGANA LETTER O " 
                   "16r242B"    16r304B " HIRAGANA LETTER KA " 
                   "16r242C"    16r304C " HIRAGANA LETTER GA " 
                   "16r242D"    16r304D " HIRAGANA LETTER KI " 
                   "16r242E"    16r304E " HIRAGANA LETTER GI " 
                   "16r242F"    16r304F " HIRAGANA LETTER KU " 
                   "16r2430"    16r3050 " HIRAGANA LETTER GU " 
                   "16r2431"    16r3051 " HIRAGANA LETTER KE " 
                   "16r2432"    16r3052 " HIRAGANA LETTER GE " 
                   "16r2433"    16r3053 " HIRAGANA LETTER KO " 
                   "16r2434"    16r3054 " HIRAGANA LETTER GO " 
                   "16r2435"    16r3055 " HIRAGANA LETTER SA " 
                   "16r2436"    16r3056 " HIRAGANA LETTER ZA " 
                   "16r2437"    16r3057 " HIRAGANA LETTER SI " 
                   "16r2438"    16r3058 " HIRAGANA LETTER ZI " 
                   "16r2439"    16r3059 " HIRAGANA LETTER SU " 
                   "16r243A"    16r305A " HIRAGANA LETTER ZU " 
                   "16r243B"    16r305B " HIRAGANA LETTER SE " 
                   "16r243C"    16r305C " HIRAGANA LETTER ZE " 
                   "16r243D"    16r305D " HIRAGANA LETTER SO " 
                   "16r243E"    16r305E " HIRAGANA LETTER ZO " 
                   "16r243F"    16r305F " HIRAGANA LETTER TA " 
                   "16r2440"    16r3060 " HIRAGANA LETTER DA " 
                   "16r2441"    16r3061 " HIRAGANA LETTER TI " 
                   "16r2442"    16r3062 " HIRAGANA LETTER DI " 
                   "16r2443"    16r3063 " HIRAGANA LETTER SMALL TU " 
                   "16r2444"    16r3064 " HIRAGANA LETTER TU " 
                   "16r2445"    16r3065 " HIRAGANA LETTER DU " 
                   "16r2446"    16r3066 " HIRAGANA LETTER TE " 
                   "16r2447"    16r3067 " HIRAGANA LETTER DE " 
                   "16r2448"    16r3068 " HIRAGANA LETTER TO " 
                   "16r2449"    16r3069 " HIRAGANA LETTER DO " 
                   "16r244A"    16r306A " HIRAGANA LETTER NA " 
                   "16r244B"    16r306B " HIRAGANA LETTER NI " 
                   "16r244C"    16r306C " HIRAGANA LETTER NU " 
                   "16r244D"    16r306D " HIRAGANA LETTER NE " 
                   "16r244E"    16r306E " HIRAGANA LETTER NO " 
                   "16r244F"    16r306F " HIRAGANA LETTER HA " 
                   "16r2450"    16r3070 " HIRAGANA LETTER BA " 
                   "16r2451"    16r3071 " HIRAGANA LETTER PA " 
                   "16r2452"    16r3072 " HIRAGANA LETTER HI " 
                   "16r2453"    16r3073 " HIRAGANA LETTER BI " 
                   "16r2454"    16r3074 " HIRAGANA LETTER PI " 
                   "16r2455"    16r3075 " HIRAGANA LETTER HU " 
                   "16r2456"    16r3076 " HIRAGANA LETTER BU " 
                   "16r2457"    16r3077 " HIRAGANA LETTER PU " 
                   "16r2458"    16r3078 " HIRAGANA LETTER HE " 
                   "16r2459"    16r3079 " HIRAGANA LETTER BE " 
                   "16r245A"    16r307A " HIRAGANA LETTER PE " 
                   "16r245B"    16r307B " HIRAGANA LETTER HO " 
                   "16r245C"    16r307C " HIRAGANA LETTER BO " 
                   "16r245D"    16r307D " HIRAGANA LETTER PO " 
                   "16r245E"    16r307E " HIRAGANA LETTER MA " 
                   "16r245F"    16r307F " HIRAGANA LETTER MI " 
                   "16r2460"    16r3080 " HIRAGANA LETTER MU " 
                   "16r2461"    16r3081 " HIRAGANA LETTER ME " 
                   "16r2462"    16r3082 " HIRAGANA LETTER MO " 
                   "16r2463"    16r3083 " HIRAGANA LETTER SMALL YA " 
                   "16r2464"    16r3084 " HIRAGANA LETTER YA " 
                   "16r2465"    16r3085 " HIRAGANA LETTER SMALL YU " 
                   "16r2466"    16r3086 " HIRAGANA LETTER YU " 
                   "16r2467"    16r3087 " HIRAGANA LETTER SMALL YO " 
                   "16r2468"    16r3088 " HIRAGANA LETTER YO " 
                   "16r2469"    16r3089 " HIRAGANA LETTER RA " 
                   "16r246A"    16r308A " HIRAGANA LETTER RI " 
                   "16r246B"    16r308B " HIRAGANA LETTER RU " 
                   "16r246C"    16r308C " HIRAGANA LETTER RE " 
                   "16r246D"    16r308D " HIRAGANA LETTER RO " 
                   "16r246E"    16r308E " HIRAGANA LETTER SMALL WA " 
                   "16r246F"    16r308F " HIRAGANA LETTER WA " 
                   "16r2470"    16r3090 " HIRAGANA LETTER WI " 
                   "16r2471"    16r3091 " HIRAGANA LETTER WE " 
                   "16r2472"    16r3092 " HIRAGANA LETTER WO " 
                   "16r2473"    16r3093 " HIRAGANA LETTER N " 
                   ) at:(code - 16r2420).
            ].
            code <= 16r2520 ifTrue:[
                ^ self decodingError.
            ].
            code <= 16r2576 ifTrue:[
                ^ #(
                   "16r2521"    16r30A1 " KATAKANA LETTER SMALL A " 
                   "16r2522"    16r30A2 " KATAKANA LETTER A " 
                   "16r2523"    16r30A3 " KATAKANA LETTER SMALL I " 
                   "16r2524"    16r30A4 " KATAKANA LETTER I " 
                   "16r2525"    16r30A5 " KATAKANA LETTER SMALL U " 
                   "16r2526"    16r30A6 " KATAKANA LETTER U " 
                   "16r2527"    16r30A7 " KATAKANA LETTER SMALL E " 
                   "16r2528"    16r30A8 " KATAKANA LETTER E " 
                   "16r2529"    16r30A9 " KATAKANA LETTER SMALL O " 
                   "16r252A"    16r30AA " KATAKANA LETTER O " 
                   "16r252B"    16r30AB " KATAKANA LETTER KA " 
                   "16r252C"    16r30AC " KATAKANA LETTER GA " 
                   "16r252D"    16r30AD " KATAKANA LETTER KI " 
                   "16r252E"    16r30AE " KATAKANA LETTER GI " 
                   "16r252F"    16r30AF " KATAKANA LETTER KU " 
                   "16r2530"    16r30B0 " KATAKANA LETTER GU " 
                   "16r2531"    16r30B1 " KATAKANA LETTER KE " 
                   "16r2532"    16r30B2 " KATAKANA LETTER GE " 
                   "16r2533"    16r30B3 " KATAKANA LETTER KO " 
                   "16r2534"    16r30B4 " KATAKANA LETTER GO " 
                   "16r2535"    16r30B5 " KATAKANA LETTER SA " 
                   "16r2536"    16r30B6 " KATAKANA LETTER ZA " 
                   "16r2537"    16r30B7 " KATAKANA LETTER SI " 
                   "16r2538"    16r30B8 " KATAKANA LETTER ZI " 
                   "16r2539"    16r30B9 " KATAKANA LETTER SU " 
                   "16r253A"    16r30BA " KATAKANA LETTER ZU " 
                   "16r253B"    16r30BB " KATAKANA LETTER SE " 
                   "16r253C"    16r30BC " KATAKANA LETTER ZE " 
                   "16r253D"    16r30BD " KATAKANA LETTER SO " 
                   "16r253E"    16r30BE " KATAKANA LETTER ZO " 
                   "16r253F"    16r30BF " KATAKANA LETTER TA " 
                   "16r2540"    16r30C0 " KATAKANA LETTER DA " 
                   "16r2541"    16r30C1 " KATAKANA LETTER TI " 
                   "16r2542"    16r30C2 " KATAKANA LETTER DI " 
                   "16r2543"    16r30C3 " KATAKANA LETTER SMALL TU " 
                   "16r2544"    16r30C4 " KATAKANA LETTER TU " 
                   "16r2545"    16r30C5 " KATAKANA LETTER DU " 
                   "16r2546"    16r30C6 " KATAKANA LETTER TE " 
                   "16r2547"    16r30C7 " KATAKANA LETTER DE " 
                   "16r2548"    16r30C8 " KATAKANA LETTER TO " 
                   "16r2549"    16r30C9 " KATAKANA LETTER DO " 
                   "16r254A"    16r30CA " KATAKANA LETTER NA " 
                   "16r254B"    16r30CB " KATAKANA LETTER NI " 
                   "16r254C"    16r30CC " KATAKANA LETTER NU " 
                   "16r254D"    16r30CD " KATAKANA LETTER NE " 
                   "16r254E"    16r30CE " KATAKANA LETTER NO " 
                   "16r254F"    16r30CF " KATAKANA LETTER HA " 
                   "16r2550"    16r30D0 " KATAKANA LETTER BA " 
                   "16r2551"    16r30D1 " KATAKANA LETTER PA " 
                   "16r2552"    16r30D2 " KATAKANA LETTER HI " 
                   "16r2553"    16r30D3 " KATAKANA LETTER BI " 
                   "16r2554"    16r30D4 " KATAKANA LETTER PI " 
                   "16r2555"    16r30D5 " KATAKANA LETTER HU " 
                   "16r2556"    16r30D6 " KATAKANA LETTER BU " 
                   "16r2557"    16r30D7 " KATAKANA LETTER PU " 
                   "16r2558"    16r30D8 " KATAKANA LETTER HE " 
                   "16r2559"    16r30D9 " KATAKANA LETTER BE " 
                   "16r255A"    16r30DA " KATAKANA LETTER PE " 
                   "16r255B"    16r30DB " KATAKANA LETTER HO " 
                   "16r255C"    16r30DC " KATAKANA LETTER BO " 
                   "16r255D"    16r30DD " KATAKANA LETTER PO " 
                   "16r255E"    16r30DE " KATAKANA LETTER MA " 
                   "16r255F"    16r30DF " KATAKANA LETTER MI " 
                   "16r2560"    16r30E0 " KATAKANA LETTER MU " 
                   "16r2561"    16r30E1 " KATAKANA LETTER ME " 
                   "16r2562"    16r30E2 " KATAKANA LETTER MO " 
                   "16r2563"    16r30E3 " KATAKANA LETTER SMALL YA " 
                   "16r2564"    16r30E4 " KATAKANA LETTER YA " 
                   "16r2565"    16r30E5 " KATAKANA LETTER SMALL YU " 
                   "16r2566"    16r30E6 " KATAKANA LETTER YU " 
                   "16r2567"    16r30E7 " KATAKANA LETTER SMALL YO " 
                   "16r2568"    16r30E8 " KATAKANA LETTER YO " 
                   "16r2569"    16r30E9 " KATAKANA LETTER RA " 
                   "16r256A"    16r30EA " KATAKANA LETTER RI " 
                   "16r256B"    16r30EB " KATAKANA LETTER RU " 
                   "16r256C"    16r30EC " KATAKANA LETTER RE " 
                   "16r256D"    16r30ED " KATAKANA LETTER RO " 
                   "16r256E"    16r30EE " KATAKANA LETTER SMALL WA " 
                   "16r256F"    16r30EF " KATAKANA LETTER WA " 
                   "16r2570"    16r30F0 " KATAKANA LETTER WI " 
                   "16r2571"    16r30F1 " KATAKANA LETTER WE " 
                   "16r2572"    16r30F2 " KATAKANA LETTER WO " 
                   "16r2573"    16r30F3 " KATAKANA LETTER N " 
                   "16r2574"    16r30F4 " KATAKANA LETTER VU " 
                   "16r2575"    16r30F5 " KATAKANA LETTER SMALL KA " 
                   "16r2576"    16r30F6 " KATAKANA LETTER SMALL KE " 
                   ) at:(code - 16r2520).
            ].
            code <= 16r2620 ifTrue:[
                ^ self decodingError.
            ].
            [
                |t|
                t := #(
                   "16r2621"    16r0391 " GREEK CAPITAL LETTER ALPHA " 
                   "16r2622"    16r0392 " GREEK CAPITAL LETTER BETA " 
                   "16r2623"    16r0393 " GREEK CAPITAL LETTER GAMMA " 
                   "16r2624"    16r0394 " GREEK CAPITAL LETTER DELTA " 
                   "16r2625"    16r0395 " GREEK CAPITAL LETTER EPSILON " 
                   "16r2626"    16r0396 " GREEK CAPITAL LETTER ZETA " 
                   "16r2627"    16r0397 " GREEK CAPITAL LETTER ETA " 
                   "16r2628"    16r0398 " GREEK CAPITAL LETTER THETA " 
                   "16r2629"    16r0399 " GREEK CAPITAL LETTER IOTA " 
                   "16r262A"    16r039A " GREEK CAPITAL LETTER KAPPA " 
                   "16r262B"    16r039B " GREEK CAPITAL LETTER LAMDA " 
                   "16r262C"    16r039C " GREEK CAPITAL LETTER MU " 
                   "16r262D"    16r039D " GREEK CAPITAL LETTER NU " 
                   "16r262E"    16r039E " GREEK CAPITAL LETTER XI " 
                   "16r262F"    16r039F " GREEK CAPITAL LETTER OMICRON " 
                   "16r2630"    16r03A0 " GREEK CAPITAL LETTER PI " 
                   "16r2631"    16r03A1 " GREEK CAPITAL LETTER RHO " 
                   "16r2632"    16r03A3 " GREEK CAPITAL LETTER SIGMA " 
                   "16r2633"    16r03A4 " GREEK CAPITAL LETTER TAU " 
                   "16r2634"    16r03A5 " GREEK CAPITAL LETTER UPSILON " 
                   "16r2635"    16r03A6 " GREEK CAPITAL LETTER PHI " 
                   "16r2636"    16r03A7 " GREEK CAPITAL LETTER CHI " 
                   "16r2637"    16r03A8 " GREEK CAPITAL LETTER PSI " 
                   "16r2638"    16r03A9 " GREEK CAPITAL LETTER OMEGA " 
                   "16r2639"    16r0000 " invalid " 
                   "16r263A"    16r0000 " invalid " 
                   "16r263B"    16r0000 " invalid " 
                   "16r263C"    16r0000 " invalid " 
                   "16r263D"    16r0000 " invalid " 
                   "16r263E"    16r0000 " invalid " 
                   "16r263F"    16r0000 " invalid " 
                   "16r2640"    16r0000 " invalid " 
                   "16r2641"    16r03B1 " GREEK SMALL LETTER ALPHA " 
                   "16r2642"    16r03B2 " GREEK SMALL LETTER BETA " 
                   "16r2643"    16r03B3 " GREEK SMALL LETTER GAMMA " 
                   "16r2644"    16r03B4 " GREEK SMALL LETTER DELTA " 
                   "16r2645"    16r03B5 " GREEK SMALL LETTER EPSILON " 
                   "16r2646"    16r03B6 " GREEK SMALL LETTER ZETA " 
                   "16r2647"    16r03B7 " GREEK SMALL LETTER ETA " 
                   "16r2648"    16r03B8 " GREEK SMALL LETTER THETA " 
                   "16r2649"    16r03B9 " GREEK SMALL LETTER IOTA " 
                   "16r264A"    16r03BA " GREEK SMALL LETTER KAPPA " 
                   "16r264B"    16r03BB " GREEK SMALL LETTER LAMDA " 
                   "16r264C"    16r03BC " GREEK SMALL LETTER MU " 
                   "16r264D"    16r03BD " GREEK SMALL LETTER NU " 
                   "16r264E"    16r03BE " GREEK SMALL LETTER XI " 
                   "16r264F"    16r03BF " GREEK SMALL LETTER OMICRON " 
                   "16r2650"    16r03C0 " GREEK SMALL LETTER PI " 
                   "16r2651"    16r03C1 " GREEK SMALL LETTER RHO " 
                   "16r2652"    16r03C3 " GREEK SMALL LETTER SIGMA " 
                   "16r2653"    16r03C4 " GREEK SMALL LETTER TAU " 
                   "16r2654"    16r03C5 " GREEK SMALL LETTER UPSILON " 
                   "16r2655"    16r03C6 " GREEK SMALL LETTER PHI " 
                   "16r2656"    16r03C7 " GREEK SMALL LETTER CHI " 
                   "16r2657"    16r03C8 " GREEK SMALL LETTER PSI " 
                   "16r2658"    16r03C9 " GREEK SMALL LETTER OMEGA " 
                   ) at:(code - 16r2620).
                t == 0 ifFalse:[^ t].
                ^ self decodingError.
            ] value.
        ].
        code <= 16r2720 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r2771 ifTrue:[
            [
                |t|
                t := #(
                   "16r2721"    16r0410 " CYRILLIC CAPITAL LETTER A " 
                   "16r2722"    16r0411 " CYRILLIC CAPITAL LETTER BE " 
                   "16r2723"    16r0412 " CYRILLIC CAPITAL LETTER VE " 
                   "16r2724"    16r0413 " CYRILLIC CAPITAL LETTER GHE " 
                   "16r2725"    16r0414 " CYRILLIC CAPITAL LETTER DE " 
                   "16r2726"    16r0415 " CYRILLIC CAPITAL LETTER IE " 
                   "16r2727"    16r0401 " CYRILLIC CAPITAL LETTER IO " 
                   "16r2728"    16r0416 " CYRILLIC CAPITAL LETTER ZHE " 
                   "16r2729"    16r0417 " CYRILLIC CAPITAL LETTER ZE " 
                   "16r272A"    16r0418 " CYRILLIC CAPITAL LETTER I " 
                   "16r272B"    16r0419 " CYRILLIC CAPITAL LETTER SHORT I " 
                   "16r272C"    16r041A " CYRILLIC CAPITAL LETTER KA " 
                   "16r272D"    16r041B " CYRILLIC CAPITAL LETTER EL " 
                   "16r272E"    16r041C " CYRILLIC CAPITAL LETTER EM " 
                   "16r272F"    16r041D " CYRILLIC CAPITAL LETTER EN " 
                   "16r2730"    16r041E " CYRILLIC CAPITAL LETTER O " 
                   "16r2731"    16r041F " CYRILLIC CAPITAL LETTER PE " 
                   "16r2732"    16r0420 " CYRILLIC CAPITAL LETTER ER " 
                   "16r2733"    16r0421 " CYRILLIC CAPITAL LETTER ES " 
                   "16r2734"    16r0422 " CYRILLIC CAPITAL LETTER TE " 
                   "16r2735"    16r0423 " CYRILLIC CAPITAL LETTER U " 
                   "16r2736"    16r0424 " CYRILLIC CAPITAL LETTER EF " 
                   "16r2737"    16r0425 " CYRILLIC CAPITAL LETTER HA " 
                   "16r2738"    16r0426 " CYRILLIC CAPITAL LETTER TSE " 
                   "16r2739"    16r0427 " CYRILLIC CAPITAL LETTER CHE " 
                   "16r273A"    16r0428 " CYRILLIC CAPITAL LETTER SHA " 
                   "16r273B"    16r0429 " CYRILLIC CAPITAL LETTER SHCHA " 
                   "16r273C"    16r042A " CYRILLIC CAPITAL LETTER HARD SIGN " 
                   "16r273D"    16r042B " CYRILLIC CAPITAL LETTER YERU " 
                   "16r273E"    16r042C " CYRILLIC CAPITAL LETTER SOFT SIGN " 
                   "16r273F"    16r042D " CYRILLIC CAPITAL LETTER E " 
                   "16r2740"    16r042E " CYRILLIC CAPITAL LETTER YU " 
                   "16r2741"    16r042F " CYRILLIC CAPITAL LETTER YA " 
                   "16r2742"    16r0000 " invalid " 
                   "16r2743"    16r0000 " invalid " 
                   "16r2744"    16r0000 " invalid " 
                   "16r2745"    16r0000 " invalid " 
                   "16r2746"    16r0000 " invalid " 
                   "16r2747"    16r0000 " invalid " 
                   "16r2748"    16r0000 " invalid " 
                   "16r2749"    16r0000 " invalid " 
                   "16r274A"    16r0000 " invalid " 
                   "16r274B"    16r0000 " invalid " 
                   "16r274C"    16r0000 " invalid " 
                   "16r274D"    16r0000 " invalid " 
                   "16r274E"    16r0000 " invalid " 
                   "16r274F"    16r0000 " invalid " 
                   "16r2750"    16r0000 " invalid " 
                   "16r2751"    16r0430 " CYRILLIC SMALL LETTER A " 
                   "16r2752"    16r0431 " CYRILLIC SMALL LETTER BE " 
                   "16r2753"    16r0432 " CYRILLIC SMALL LETTER VE " 
                   "16r2754"    16r0433 " CYRILLIC SMALL LETTER GHE " 
                   "16r2755"    16r0434 " CYRILLIC SMALL LETTER DE " 
                   "16r2756"    16r0435 " CYRILLIC SMALL LETTER IE " 
                   "16r2757"    16r0451 " CYRILLIC SMALL LETTER IO " 
                   "16r2758"    16r0436 " CYRILLIC SMALL LETTER ZHE " 
                   "16r2759"    16r0437 " CYRILLIC SMALL LETTER ZE " 
                   "16r275A"    16r0438 " CYRILLIC SMALL LETTER I " 
                   "16r275B"    16r0439 " CYRILLIC SMALL LETTER SHORT I " 
                   "16r275C"    16r043A " CYRILLIC SMALL LETTER KA " 
                   "16r275D"    16r043B " CYRILLIC SMALL LETTER EL " 
                   "16r275E"    16r043C " CYRILLIC SMALL LETTER EM " 
                   "16r275F"    16r043D " CYRILLIC SMALL LETTER EN " 
                   "16r2760"    16r043E " CYRILLIC SMALL LETTER O " 
                   "16r2761"    16r043F " CYRILLIC SMALL LETTER PE " 
                   "16r2762"    16r0440 " CYRILLIC SMALL LETTER ER " 
                   "16r2763"    16r0441 " CYRILLIC SMALL LETTER ES " 
                   "16r2764"    16r0442 " CYRILLIC SMALL LETTER TE " 
                   "16r2765"    16r0443 " CYRILLIC SMALL LETTER U " 
                   "16r2766"    16r0444 " CYRILLIC SMALL LETTER EF " 
                   "16r2767"    16r0445 " CYRILLIC SMALL LETTER HA " 
                   "16r2768"    16r0446 " CYRILLIC SMALL LETTER TSE " 
                   "16r2769"    16r0447 " CYRILLIC SMALL LETTER CHE " 
                   "16r276A"    16r0448 " CYRILLIC SMALL LETTER SHA " 
                   "16r276B"    16r0449 " CYRILLIC SMALL LETTER SHCHA " 
                   "16r276C"    16r044A " CYRILLIC SMALL LETTER HARD SIGN " 
                   "16r276D"    16r044B " CYRILLIC SMALL LETTER YERU " 
                   "16r276E"    16r044C " CYRILLIC SMALL LETTER SOFT SIGN " 
                   "16r276F"    16r044D " CYRILLIC SMALL LETTER E " 
                   "16r2770"    16r044E " CYRILLIC SMALL LETTER YU " 
                   "16r2771"    16r044F " CYRILLIC SMALL LETTER YA " 
                   ) at:(code - 16r2720).
                t == 0 ifFalse:[^ t].
                ^ self decodingError.
            ] value.
        ].
        code <= 16r2820 ifTrue:[
            ^ self decodingError.
        ].
        ^ #(
           "16r2821"    16r2500 " BOX DRAWINGS LIGHT HORIZONTAL " 
           "16r2822"    16r2502 " BOX DRAWINGS LIGHT VERTICAL " 
           "16r2823"    16r250C " BOX DRAWINGS LIGHT DOWN AND RIGHT " 
           "16r2824"    16r2510 " BOX DRAWINGS LIGHT DOWN AND LEFT " 
           "16r2825"    16r2518 " BOX DRAWINGS LIGHT UP AND LEFT " 
           "16r2826"    16r2514 " BOX DRAWINGS LIGHT UP AND RIGHT " 
           "16r2827"    16r251C " BOX DRAWINGS LIGHT VERTICAL AND RIGHT " 
           "16r2828"    16r252C " BOX DRAWINGS LIGHT DOWN AND HORIZONTAL " 
           "16r2829"    16r2524 " BOX DRAWINGS LIGHT VERTICAL AND LEFT " 
           "16r282A"    16r2534 " BOX DRAWINGS LIGHT UP AND HORIZONTAL " 
           "16r282B"    16r253C " BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL " 
           "16r282C"    16r2501 " BOX DRAWINGS HEAVY HORIZONTAL " 
           "16r282D"    16r2503 " BOX DRAWINGS HEAVY VERTICAL " 
           "16r282E"    16r250F " BOX DRAWINGS HEAVY DOWN AND RIGHT " 
           "16r282F"    16r2513 " BOX DRAWINGS HEAVY DOWN AND LEFT " 
           "16r2830"    16r251B " BOX DRAWINGS HEAVY UP AND LEFT " 
           "16r2831"    16r2517 " BOX DRAWINGS HEAVY UP AND RIGHT " 
           "16r2832"    16r2523 " BOX DRAWINGS HEAVY VERTICAL AND RIGHT " 
           "16r2833"    16r2533 " BOX DRAWINGS HEAVY DOWN AND HORIZONTAL " 
           "16r2834"    16r252B " BOX DRAWINGS HEAVY VERTICAL AND LEFT " 
           "16r2835"    16r253B " BOX DRAWINGS HEAVY UP AND HORIZONTAL " 
           "16r2836"    16r254B " BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL " 
           "16r2837"    16r2520 " BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT " 
           "16r2838"    16r252F " BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY " 
           "16r2839"    16r2528 " BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT " 
           "16r283A"    16r2537 " BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY " 
           "16r283B"    16r253F " BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY " 
           "16r283C"    16r251D " BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY " 
           "16r283D"    16r2530 " BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT " 
           "16r283E"    16r2525 " BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY " 
           "16r283F"    16r2538 " BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT " 
           "16r2840"    16r2542 " BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT " 
           ) at:(code - 16r2820).
    ].
    code <= 16r3020 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r4F53 ifTrue:[
        code <= 16r307E ifTrue:[
            ^ #(
               "16r3021"    16r4E9C " <CJK> " 
               "16r3022"    16r5516 " <CJK> " 
               "16r3023"    16r5A03 " <CJK> " 
               "16r3024"    16r963F " <CJK> " 
               "16r3025"    16r54C0 " <CJK> " 
               "16r3026"    16r611B " <CJK> " 
               "16r3027"    16r6328 " <CJK> " 
               "16r3028"    16r59F6 " <CJK> " 
               "16r3029"    16r9022 " <CJK> " 
               "16r302A"    16r8475 " <CJK> " 
               "16r302B"    16r831C " <CJK> " 
               "16r302C"    16r7A50 " <CJK> " 
               "16r302D"    16r60AA " <CJK> " 
               "16r302E"    16r63E1 " <CJK> " 
               "16r302F"    16r6E25 " <CJK> " 
               "16r3030"    16r65ED " <CJK> " 
               "16r3031"    16r8466 " <CJK> " 
               "16r3032"    16r82A6 " <CJK> " 
               "16r3033"    16r9BF5 " <CJK> " 
               "16r3034"    16r6893 " <CJK> " 
               "16r3035"    16r5727 " <CJK> " 
               "16r3036"    16r65A1 " <CJK> " 
               "16r3037"    16r6271 " <CJK> " 
               "16r3038"    16r5B9B " <CJK> " 
               "16r3039"    16r59D0 " <CJK> " 
               "16r303A"    16r867B " <CJK> " 
               "16r303B"    16r98F4 " <CJK> " 
               "16r303C"    16r7D62 " <CJK> " 
               "16r303D"    16r7DBE " <CJK> " 
               "16r303E"    16r9B8E " <CJK> " 
               "16r303F"    16r6216 " <CJK> " 
               "16r3040"    16r7C9F " <CJK> " 
               "16r3041"    16r88B7 " <CJK> " 
               "16r3042"    16r5B89 " <CJK> " 
               "16r3043"    16r5EB5 " <CJK> " 
               "16r3044"    16r6309 " <CJK> " 
               "16r3045"    16r6697 " <CJK> " 
               "16r3046"    16r6848 " <CJK> " 
               "16r3047"    16r95C7 " <CJK> " 
               "16r3048"    16r978D " <CJK> " 
               "16r3049"    16r674F " <CJK> " 
               "16r304A"    16r4EE5 " <CJK> " 
               "16r304B"    16r4F0A " <CJK> " 
               "16r304C"    16r4F4D " <CJK> " 
               "16r304D"    16r4F9D " <CJK> " 
               "16r304E"    16r5049 " <CJK> " 
               "16r304F"    16r56F2 " <CJK> " 
               "16r3050"    16r5937 " <CJK> " 
               "16r3051"    16r59D4 " <CJK> " 
               "16r3052"    16r5A01 " <CJK> " 
               "16r3053"    16r5C09 " <CJK> " 
               "16r3054"    16r60DF " <CJK> " 
               "16r3055"    16r610F " <CJK> " 
               "16r3056"    16r6170 " <CJK> " 
               "16r3057"    16r6613 " <CJK> " 
               "16r3058"    16r6905 " <CJK> " 
               "16r3059"    16r70BA " <CJK> " 
               "16r305A"    16r754F " <CJK> " 
               "16r305B"    16r7570 " <CJK> " 
               "16r305C"    16r79FB " <CJK> " 
               "16r305D"    16r7DAD " <CJK> " 
               "16r305E"    16r7DEF " <CJK> " 
               "16r305F"    16r80C3 " <CJK> " 
               "16r3060"    16r840E " <CJK> " 
               "16r3061"    16r8863 " <CJK> " 
               "16r3062"    16r8B02 " <CJK> " 
               "16r3063"    16r9055 " <CJK> " 
               "16r3064"    16r907A " <CJK> " 
               "16r3065"    16r533B " <CJK> " 
               "16r3066"    16r4E95 " <CJK> " 
               "16r3067"    16r4EA5 " <CJK> " 
               "16r3068"    16r57DF " <CJK> " 
               "16r3069"    16r80B2 " <CJK> " 
               "16r306A"    16r90C1 " <CJK> " 
               "16r306B"    16r78EF " <CJK> " 
               "16r306C"    16r4E00 " <CJK> " 
               "16r306D"    16r58F1 " <CJK> " 
               "16r306E"    16r6EA2 " <CJK> " 
               "16r306F"    16r9038 " <CJK> " 
               "16r3070"    16r7A32 " <CJK> " 
               "16r3071"    16r8328 " <CJK> " 
               "16r3072"    16r828B " <CJK> " 
               "16r3073"    16r9C2F " <CJK> " 
               "16r3074"    16r5141 " <CJK> " 
               "16r3075"    16r5370 " <CJK> " 
               "16r3076"    16r54BD " <CJK> " 
               "16r3077"    16r54E1 " <CJK> " 
               "16r3078"    16r56E0 " <CJK> " 
               "16r3079"    16r59FB " <CJK> " 
               "16r307A"    16r5F15 " <CJK> " 
               "16r307B"    16r98F2 " <CJK> " 
               "16r307C"    16r6DEB " <CJK> " 
               "16r307D"    16r80E4 " <CJK> " 
               "16r307E"    16r852D " <CJK> " 
               ) at:(code - 16r3020).
        ].
        code <= 16r3120 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r317E ifTrue:[
            ^ #(
               "16r3121"    16r9662 " <CJK> " 
               "16r3122"    16r9670 " <CJK> " 
               "16r3123"    16r96A0 " <CJK> " 
               "16r3124"    16r97FB " <CJK> " 
               "16r3125"    16r540B " <CJK> " 
               "16r3126"    16r53F3 " <CJK> " 
               "16r3127"    16r5B87 " <CJK> " 
               "16r3128"    16r70CF " <CJK> " 
               "16r3129"    16r7FBD " <CJK> " 
               "16r312A"    16r8FC2 " <CJK> " 
               "16r312B"    16r96E8 " <CJK> " 
               "16r312C"    16r536F " <CJK> " 
               "16r312D"    16r9D5C " <CJK> " 
               "16r312E"    16r7ABA " <CJK> " 
               "16r312F"    16r4E11 " <CJK> " 
               "16r3130"    16r7893 " <CJK> " 
               "16r3131"    16r81FC " <CJK> " 
               "16r3132"    16r6E26 " <CJK> " 
               "16r3133"    16r5618 " <CJK> " 
               "16r3134"    16r5504 " <CJK> " 
               "16r3135"    16r6B1D " <CJK> " 
               "16r3136"    16r851A " <CJK> " 
               "16r3137"    16r9C3B " <CJK> " 
               "16r3138"    16r59E5 " <CJK> " 
               "16r3139"    16r53A9 " <CJK> " 
               "16r313A"    16r6D66 " <CJK> " 
               "16r313B"    16r74DC " <CJK> " 
               "16r313C"    16r958F " <CJK> " 
               "16r313D"    16r5642 " <CJK> " 
               "16r313E"    16r4E91 " <CJK> " 
               "16r313F"    16r904B " <CJK> " 
               "16r3140"    16r96F2 " <CJK> " 
               "16r3141"    16r834F " <CJK> " 
               "16r3142"    16r990C " <CJK> " 
               "16r3143"    16r53E1 " <CJK> " 
               "16r3144"    16r55B6 " <CJK> " 
               "16r3145"    16r5B30 " <CJK> " 
               "16r3146"    16r5F71 " <CJK> " 
               "16r3147"    16r6620 " <CJK> " 
               "16r3148"    16r66F3 " <CJK> " 
               "16r3149"    16r6804 " <CJK> " 
               "16r314A"    16r6C38 " <CJK> " 
               "16r314B"    16r6CF3 " <CJK> " 
               "16r314C"    16r6D29 " <CJK> " 
               "16r314D"    16r745B " <CJK> " 
               "16r314E"    16r76C8 " <CJK> " 
               "16r314F"    16r7A4E " <CJK> " 
               "16r3150"    16r9834 " <CJK> " 
               "16r3151"    16r82F1 " <CJK> " 
               "16r3152"    16r885B " <CJK> " 
               "16r3153"    16r8A60 " <CJK> " 
               "16r3154"    16r92ED " <CJK> " 
               "16r3155"    16r6DB2 " <CJK> " 
               "16r3156"    16r75AB " <CJK> " 
               "16r3157"    16r76CA " <CJK> " 
               "16r3158"    16r99C5 " <CJK> " 
               "16r3159"    16r60A6 " <CJK> " 
               "16r315A"    16r8B01 " <CJK> " 
               "16r315B"    16r8D8A " <CJK> " 
               "16r315C"    16r95B2 " <CJK> " 
               "16r315D"    16r698E " <CJK> " 
               "16r315E"    16r53AD " <CJK> " 
               "16r315F"    16r5186 " <CJK> " 
               "16r3160"    16r5712 " <CJK> " 
               "16r3161"    16r5830 " <CJK> " 
               "16r3162"    16r5944 " <CJK> " 
               "16r3163"    16r5BB4 " <CJK> " 
               "16r3164"    16r5EF6 " <CJK> " 
               "16r3165"    16r6028 " <CJK> " 
               "16r3166"    16r63A9 " <CJK> " 
               "16r3167"    16r63F4 " <CJK> " 
               "16r3168"    16r6CBF " <CJK> " 
               "16r3169"    16r6F14 " <CJK> " 
               "16r316A"    16r708E " <CJK> " 
               "16r316B"    16r7114 " <CJK> " 
               "16r316C"    16r7159 " <CJK> " 
               "16r316D"    16r71D5 " <CJK> " 
               "16r316E"    16r733F " <CJK> " 
               "16r316F"    16r7E01 " <CJK> " 
               "16r3170"    16r8276 " <CJK> " 
               "16r3171"    16r82D1 " <CJK> " 
               "16r3172"    16r8597 " <CJK> " 
               "16r3173"    16r9060 " <CJK> " 
               "16r3174"    16r925B " <CJK> " 
               "16r3175"    16r9D1B " <CJK> " 
               "16r3176"    16r5869 " <CJK> " 
               "16r3177"    16r65BC " <CJK> " 
               "16r3178"    16r6C5A " <CJK> " 
               "16r3179"    16r7525 " <CJK> " 
               "16r317A"    16r51F9 " <CJK> " 
               "16r317B"    16r592E " <CJK> " 
               "16r317C"    16r5965 " <CJK> " 
               "16r317D"    16r5F80 " <CJK> " 
               "16r317E"    16r5FDC " <CJK> " 
               ) at:(code - 16r3120).
        ].
        code <= 16r3220 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r327E ifTrue:[
            ^ #(
               "16r3221"    16r62BC " <CJK> " 
               "16r3222"    16r65FA " <CJK> " 
               "16r3223"    16r6A2A " <CJK> " 
               "16r3224"    16r6B27 " <CJK> " 
               "16r3225"    16r6BB4 " <CJK> " 
               "16r3226"    16r738B " <CJK> " 
               "16r3227"    16r7FC1 " <CJK> " 
               "16r3228"    16r8956 " <CJK> " 
               "16r3229"    16r9D2C " <CJK> " 
               "16r322A"    16r9D0E " <CJK> " 
               "16r322B"    16r9EC4 " <CJK> " 
               "16r322C"    16r5CA1 " <CJK> " 
               "16r322D"    16r6C96 " <CJK> " 
               "16r322E"    16r837B " <CJK> " 
               "16r322F"    16r5104 " <CJK> " 
               "16r3230"    16r5C4B " <CJK> " 
               "16r3231"    16r61B6 " <CJK> " 
               "16r3232"    16r81C6 " <CJK> " 
               "16r3233"    16r6876 " <CJK> " 
               "16r3234"    16r7261 " <CJK> " 
               "16r3235"    16r4E59 " <CJK> " 
               "16r3236"    16r4FFA " <CJK> " 
               "16r3237"    16r5378 " <CJK> " 
               "16r3238"    16r6069 " <CJK> " 
               "16r3239"    16r6E29 " <CJK> " 
               "16r323A"    16r7A4F " <CJK> " 
               "16r323B"    16r97F3 " <CJK> " 
               "16r323C"    16r4E0B " <CJK> " 
               "16r323D"    16r5316 " <CJK> " 
               "16r323E"    16r4EEE " <CJK> " 
               "16r323F"    16r4F55 " <CJK> " 
               "16r3240"    16r4F3D " <CJK> " 
               "16r3241"    16r4FA1 " <CJK> " 
               "16r3242"    16r4F73 " <CJK> " 
               "16r3243"    16r52A0 " <CJK> " 
               "16r3244"    16r53EF " <CJK> " 
               "16r3245"    16r5609 " <CJK> " 
               "16r3246"    16r590F " <CJK> " 
               "16r3247"    16r5AC1 " <CJK> " 
               "16r3248"    16r5BB6 " <CJK> " 
               "16r3249"    16r5BE1 " <CJK> " 
               "16r324A"    16r79D1 " <CJK> " 
               "16r324B"    16r6687 " <CJK> " 
               "16r324C"    16r679C " <CJK> " 
               "16r324D"    16r67B6 " <CJK> " 
               "16r324E"    16r6B4C " <CJK> " 
               "16r324F"    16r6CB3 " <CJK> " 
               "16r3250"    16r706B " <CJK> " 
               "16r3251"    16r73C2 " <CJK> " 
               "16r3252"    16r798D " <CJK> " 
               "16r3253"    16r79BE " <CJK> " 
               "16r3254"    16r7A3C " <CJK> " 
               "16r3255"    16r7B87 " <CJK> " 
               "16r3256"    16r82B1 " <CJK> " 
               "16r3257"    16r82DB " <CJK> " 
               "16r3258"    16r8304 " <CJK> " 
               "16r3259"    16r8377 " <CJK> " 
               "16r325A"    16r83EF " <CJK> " 
               "16r325B"    16r83D3 " <CJK> " 
               "16r325C"    16r8766 " <CJK> " 
               "16r325D"    16r8AB2 " <CJK> " 
               "16r325E"    16r5629 " <CJK> " 
               "16r325F"    16r8CA8 " <CJK> " 
               "16r3260"    16r8FE6 " <CJK> " 
               "16r3261"    16r904E " <CJK> " 
               "16r3262"    16r971E " <CJK> " 
               "16r3263"    16r868A " <CJK> " 
               "16r3264"    16r4FC4 " <CJK> " 
               "16r3265"    16r5CE8 " <CJK> " 
               "16r3266"    16r6211 " <CJK> " 
               "16r3267"    16r7259 " <CJK> " 
               "16r3268"    16r753B " <CJK> " 
               "16r3269"    16r81E5 " <CJK> " 
               "16r326A"    16r82BD " <CJK> " 
               "16r326B"    16r86FE " <CJK> " 
               "16r326C"    16r8CC0 " <CJK> " 
               "16r326D"    16r96C5 " <CJK> " 
               "16r326E"    16r9913 " <CJK> " 
               "16r326F"    16r99D5 " <CJK> " 
               "16r3270"    16r4ECB " <CJK> " 
               "16r3271"    16r4F1A " <CJK> " 
               "16r3272"    16r89E3 " <CJK> " 
               "16r3273"    16r56DE " <CJK> " 
               "16r3274"    16r584A " <CJK> " 
               "16r3275"    16r58CA " <CJK> " 
               "16r3276"    16r5EFB " <CJK> " 
               "16r3277"    16r5FEB " <CJK> " 
               "16r3278"    16r602A " <CJK> " 
               "16r3279"    16r6094 " <CJK> " 
               "16r327A"    16r6062 " <CJK> " 
               "16r327B"    16r61D0 " <CJK> " 
               "16r327C"    16r6212 " <CJK> " 
               "16r327D"    16r62D0 " <CJK> " 
               "16r327E"    16r6539 " <CJK> " 
               ) at:(code - 16r3220).
        ].
        code <= 16r3320 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r337E ifTrue:[
            ^ #(
               "16r3321"    16r9B41 " <CJK> " 
               "16r3322"    16r6666 " <CJK> " 
               "16r3323"    16r68B0 " <CJK> " 
               "16r3324"    16r6D77 " <CJK> " 
               "16r3325"    16r7070 " <CJK> " 
               "16r3326"    16r754C " <CJK> " 
               "16r3327"    16r7686 " <CJK> " 
               "16r3328"    16r7D75 " <CJK> " 
               "16r3329"    16r82A5 " <CJK> " 
               "16r332A"    16r87F9 " <CJK> " 
               "16r332B"    16r958B " <CJK> " 
               "16r332C"    16r968E " <CJK> " 
               "16r332D"    16r8C9D " <CJK> " 
               "16r332E"    16r51F1 " <CJK> " 
               "16r332F"    16r52BE " <CJK> " 
               "16r3330"    16r5916 " <CJK> " 
               "16r3331"    16r54B3 " <CJK> " 
               "16r3332"    16r5BB3 " <CJK> " 
               "16r3333"    16r5D16 " <CJK> " 
               "16r3334"    16r6168 " <CJK> " 
               "16r3335"    16r6982 " <CJK> " 
               "16r3336"    16r6DAF " <CJK> " 
               "16r3337"    16r788D " <CJK> " 
               "16r3338"    16r84CB " <CJK> " 
               "16r3339"    16r8857 " <CJK> " 
               "16r333A"    16r8A72 " <CJK> " 
               "16r333B"    16r93A7 " <CJK> " 
               "16r333C"    16r9AB8 " <CJK> " 
               "16r333D"    16r6D6C " <CJK> " 
               "16r333E"    16r99A8 " <CJK> " 
               "16r333F"    16r86D9 " <CJK> " 
               "16r3340"    16r57A3 " <CJK> " 
               "16r3341"    16r67FF " <CJK> " 
               "16r3342"    16r86CE " <CJK> " 
               "16r3343"    16r920E " <CJK> " 
               "16r3344"    16r5283 " <CJK> " 
               "16r3345"    16r5687 " <CJK> " 
               "16r3346"    16r5404 " <CJK> " 
               "16r3347"    16r5ED3 " <CJK> " 
               "16r3348"    16r62E1 " <CJK> " 
               "16r3349"    16r64B9 " <CJK> " 
               "16r334A"    16r683C " <CJK> " 
               "16r334B"    16r6838 " <CJK> " 
               "16r334C"    16r6BBB " <CJK> " 
               "16r334D"    16r7372 " <CJK> " 
               "16r334E"    16r78BA " <CJK> " 
               "16r334F"    16r7A6B " <CJK> " 
               "16r3350"    16r899A " <CJK> " 
               "16r3351"    16r89D2 " <CJK> " 
               "16r3352"    16r8D6B " <CJK> " 
               "16r3353"    16r8F03 " <CJK> " 
               "16r3354"    16r90ED " <CJK> " 
               "16r3355"    16r95A3 " <CJK> " 
               "16r3356"    16r9694 " <CJK> " 
               "16r3357"    16r9769 " <CJK> " 
               "16r3358"    16r5B66 " <CJK> " 
               "16r3359"    16r5CB3 " <CJK> " 
               "16r335A"    16r697D " <CJK> " 
               "16r335B"    16r984D " <CJK> " 
               "16r335C"    16r984E " <CJK> " 
               "16r335D"    16r639B " <CJK> " 
               "16r335E"    16r7B20 " <CJK> " 
               "16r335F"    16r6A2B " <CJK> " 
               "16r3360"    16r6A7F " <CJK> " 
               "16r3361"    16r68B6 " <CJK> " 
               "16r3362"    16r9C0D " <CJK> " 
               "16r3363"    16r6F5F " <CJK> " 
               "16r3364"    16r5272 " <CJK> " 
               "16r3365"    16r559D " <CJK> " 
               "16r3366"    16r6070 " <CJK> " 
               "16r3367"    16r62EC " <CJK> " 
               "16r3368"    16r6D3B " <CJK> " 
               "16r3369"    16r6E07 " <CJK> " 
               "16r336A"    16r6ED1 " <CJK> " 
               "16r336B"    16r845B " <CJK> " 
               "16r336C"    16r8910 " <CJK> " 
               "16r336D"    16r8F44 " <CJK> " 
               "16r336E"    16r4E14 " <CJK> " 
               "16r336F"    16r9C39 " <CJK> " 
               "16r3370"    16r53F6 " <CJK> " 
               "16r3371"    16r691B " <CJK> " 
               "16r3372"    16r6A3A " <CJK> " 
               "16r3373"    16r9784 " <CJK> " 
               "16r3374"    16r682A " <CJK> " 
               "16r3375"    16r515C " <CJK> " 
               "16r3376"    16r7AC3 " <CJK> " 
               "16r3377"    16r84B2 " <CJK> " 
               "16r3378"    16r91DC " <CJK> " 
               "16r3379"    16r938C " <CJK> " 
               "16r337A"    16r565B " <CJK> " 
               "16r337B"    16r9D28 " <CJK> " 
               "16r337C"    16r6822 " <CJK> " 
               "16r337D"    16r8305 " <CJK> " 
               "16r337E"    16r8431 " <CJK> " 
               ) at:(code - 16r3320).
        ].
        code <= 16r3420 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r347E ifTrue:[
            ^ #(
               "16r3421"    16r7CA5 " <CJK> " 
               "16r3422"    16r5208 " <CJK> " 
               "16r3423"    16r82C5 " <CJK> " 
               "16r3424"    16r74E6 " <CJK> " 
               "16r3425"    16r4E7E " <CJK> " 
               "16r3426"    16r4F83 " <CJK> " 
               "16r3427"    16r51A0 " <CJK> " 
               "16r3428"    16r5BD2 " <CJK> " 
               "16r3429"    16r520A " <CJK> " 
               "16r342A"    16r52D8 " <CJK> " 
               "16r342B"    16r52E7 " <CJK> " 
               "16r342C"    16r5DFB " <CJK> " 
               "16r342D"    16r559A " <CJK> " 
               "16r342E"    16r582A " <CJK> " 
               "16r342F"    16r59E6 " <CJK> " 
               "16r3430"    16r5B8C " <CJK> " 
               "16r3431"    16r5B98 " <CJK> " 
               "16r3432"    16r5BDB " <CJK> " 
               "16r3433"    16r5E72 " <CJK> " 
               "16r3434"    16r5E79 " <CJK> " 
               "16r3435"    16r60A3 " <CJK> " 
               "16r3436"    16r611F " <CJK> " 
               "16r3437"    16r6163 " <CJK> " 
               "16r3438"    16r61BE " <CJK> " 
               "16r3439"    16r63DB " <CJK> " 
               "16r343A"    16r6562 " <CJK> " 
               "16r343B"    16r67D1 " <CJK> " 
               "16r343C"    16r6853 " <CJK> " 
               "16r343D"    16r68FA " <CJK> " 
               "16r343E"    16r6B3E " <CJK> " 
               "16r343F"    16r6B53 " <CJK> " 
               "16r3440"    16r6C57 " <CJK> " 
               "16r3441"    16r6F22 " <CJK> " 
               "16r3442"    16r6F97 " <CJK> " 
               "16r3443"    16r6F45 " <CJK> " 
               "16r3444"    16r74B0 " <CJK> " 
               "16r3445"    16r7518 " <CJK> " 
               "16r3446"    16r76E3 " <CJK> " 
               "16r3447"    16r770B " <CJK> " 
               "16r3448"    16r7AFF " <CJK> " 
               "16r3449"    16r7BA1 " <CJK> " 
               "16r344A"    16r7C21 " <CJK> " 
               "16r344B"    16r7DE9 " <CJK> " 
               "16r344C"    16r7F36 " <CJK> " 
               "16r344D"    16r7FF0 " <CJK> " 
               "16r344E"    16r809D " <CJK> " 
               "16r344F"    16r8266 " <CJK> " 
               "16r3450"    16r839E " <CJK> " 
               "16r3451"    16r89B3 " <CJK> " 
               "16r3452"    16r8ACC " <CJK> " 
               "16r3453"    16r8CAB " <CJK> " 
               "16r3454"    16r9084 " <CJK> " 
               "16r3455"    16r9451 " <CJK> " 
               "16r3456"    16r9593 " <CJK> " 
               "16r3457"    16r9591 " <CJK> " 
               "16r3458"    16r95A2 " <CJK> " 
               "16r3459"    16r9665 " <CJK> " 
               "16r345A"    16r97D3 " <CJK> " 
               "16r345B"    16r9928 " <CJK> " 
               "16r345C"    16r8218 " <CJK> " 
               "16r345D"    16r4E38 " <CJK> " 
               "16r345E"    16r542B " <CJK> " 
               "16r345F"    16r5CB8 " <CJK> " 
               "16r3460"    16r5DCC " <CJK> " 
               "16r3461"    16r73A9 " <CJK> " 
               "16r3462"    16r764C " <CJK> " 
               "16r3463"    16r773C " <CJK> " 
               "16r3464"    16r5CA9 " <CJK> " 
               "16r3465"    16r7FEB " <CJK> " 
               "16r3466"    16r8D0B " <CJK> " 
               "16r3467"    16r96C1 " <CJK> " 
               "16r3468"    16r9811 " <CJK> " 
               "16r3469"    16r9854 " <CJK> " 
               "16r346A"    16r9858 " <CJK> " 
               "16r346B"    16r4F01 " <CJK> " 
               "16r346C"    16r4F0E " <CJK> " 
               "16r346D"    16r5371 " <CJK> " 
               "16r346E"    16r559C " <CJK> " 
               "16r346F"    16r5668 " <CJK> " 
               "16r3470"    16r57FA " <CJK> " 
               "16r3471"    16r5947 " <CJK> " 
               "16r3472"    16r5B09 " <CJK> " 
               "16r3473"    16r5BC4 " <CJK> " 
               "16r3474"    16r5C90 " <CJK> " 
               "16r3475"    16r5E0C " <CJK> " 
               "16r3476"    16r5E7E " <CJK> " 
               "16r3477"    16r5FCC " <CJK> " 
               "16r3478"    16r63EE " <CJK> " 
               "16r3479"    16r673A " <CJK> " 
               "16r347A"    16r65D7 " <CJK> " 
               "16r347B"    16r65E2 " <CJK> " 
               "16r347C"    16r671F " <CJK> " 
               "16r347D"    16r68CB " <CJK> " 
               "16r347E"    16r68C4 " <CJK> " 
               ) at:(code - 16r3420).
        ].
        code <= 16r3520 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r357E ifTrue:[
            ^ #(
               "16r3521"    16r6A5F " <CJK> " 
               "16r3522"    16r5E30 " <CJK> " 
               "16r3523"    16r6BC5 " <CJK> " 
               "16r3524"    16r6C17 " <CJK> " 
               "16r3525"    16r6C7D " <CJK> " 
               "16r3526"    16r757F " <CJK> " 
               "16r3527"    16r7948 " <CJK> " 
               "16r3528"    16r5B63 " <CJK> " 
               "16r3529"    16r7A00 " <CJK> " 
               "16r352A"    16r7D00 " <CJK> " 
               "16r352B"    16r5FBD " <CJK> " 
               "16r352C"    16r898F " <CJK> " 
               "16r352D"    16r8A18 " <CJK> " 
               "16r352E"    16r8CB4 " <CJK> " 
               "16r352F"    16r8D77 " <CJK> " 
               "16r3530"    16r8ECC " <CJK> " 
               "16r3531"    16r8F1D " <CJK> " 
               "16r3532"    16r98E2 " <CJK> " 
               "16r3533"    16r9A0E " <CJK> " 
               "16r3534"    16r9B3C " <CJK> " 
               "16r3535"    16r4E80 " <CJK> " 
               "16r3536"    16r507D " <CJK> " 
               "16r3537"    16r5100 " <CJK> " 
               "16r3538"    16r5993 " <CJK> " 
               "16r3539"    16r5B9C " <CJK> " 
               "16r353A"    16r622F " <CJK> " 
               "16r353B"    16r6280 " <CJK> " 
               "16r353C"    16r64EC " <CJK> " 
               "16r353D"    16r6B3A " <CJK> " 
               "16r353E"    16r72A0 " <CJK> " 
               "16r353F"    16r7591 " <CJK> " 
               "16r3540"    16r7947 " <CJK> " 
               "16r3541"    16r7FA9 " <CJK> " 
               "16r3542"    16r87FB " <CJK> " 
               "16r3543"    16r8ABC " <CJK> " 
               "16r3544"    16r8B70 " <CJK> " 
               "16r3545"    16r63AC " <CJK> " 
               "16r3546"    16r83CA " <CJK> " 
               "16r3547"    16r97A0 " <CJK> " 
               "16r3548"    16r5409 " <CJK> " 
               "16r3549"    16r5403 " <CJK> " 
               "16r354A"    16r55AB " <CJK> " 
               "16r354B"    16r6854 " <CJK> " 
               "16r354C"    16r6A58 " <CJK> " 
               "16r354D"    16r8A70 " <CJK> " 
               "16r354E"    16r7827 " <CJK> " 
               "16r354F"    16r6775 " <CJK> " 
               "16r3550"    16r9ECD " <CJK> " 
               "16r3551"    16r5374 " <CJK> " 
               "16r3552"    16r5BA2 " <CJK> " 
               "16r3553"    16r811A " <CJK> " 
               "16r3554"    16r8650 " <CJK> " 
               "16r3555"    16r9006 " <CJK> " 
               "16r3556"    16r4E18 " <CJK> " 
               "16r3557"    16r4E45 " <CJK> " 
               "16r3558"    16r4EC7 " <CJK> " 
               "16r3559"    16r4F11 " <CJK> " 
               "16r355A"    16r53CA " <CJK> " 
               "16r355B"    16r5438 " <CJK> " 
               "16r355C"    16r5BAE " <CJK> " 
               "16r355D"    16r5F13 " <CJK> " 
               "16r355E"    16r6025 " <CJK> " 
               "16r355F"    16r6551 " <CJK> " 
               "16r3560"    16r673D " <CJK> " 
               "16r3561"    16r6C42 " <CJK> " 
               "16r3562"    16r6C72 " <CJK> " 
               "16r3563"    16r6CE3 " <CJK> " 
               "16r3564"    16r7078 " <CJK> " 
               "16r3565"    16r7403 " <CJK> " 
               "16r3566"    16r7A76 " <CJK> " 
               "16r3567"    16r7AAE " <CJK> " 
               "16r3568"    16r7B08 " <CJK> " 
               "16r3569"    16r7D1A " <CJK> " 
               "16r356A"    16r7CFE " <CJK> " 
               "16r356B"    16r7D66 " <CJK> " 
               "16r356C"    16r65E7 " <CJK> " 
               "16r356D"    16r725B " <CJK> " 
               "16r356E"    16r53BB " <CJK> " 
               "16r356F"    16r5C45 " <CJK> " 
               "16r3570"    16r5DE8 " <CJK> " 
               "16r3571"    16r62D2 " <CJK> " 
               "16r3572"    16r62E0 " <CJK> " 
               "16r3573"    16r6319 " <CJK> " 
               "16r3574"    16r6E20 " <CJK> " 
               "16r3575"    16r865A " <CJK> " 
               "16r3576"    16r8A31 " <CJK> " 
               "16r3577"    16r8DDD " <CJK> " 
               "16r3578"    16r92F8 " <CJK> " 
               "16r3579"    16r6F01 " <CJK> " 
               "16r357A"    16r79A6 " <CJK> " 
               "16r357B"    16r9B5A " <CJK> " 
               "16r357C"    16r4EA8 " <CJK> " 
               "16r357D"    16r4EAB " <CJK> " 
               "16r357E"    16r4EAC " <CJK> " 
               ) at:(code - 16r3520).
        ].
        code <= 16r3620 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r367E ifTrue:[
            ^ #(
               "16r3621"    16r4F9B " <CJK> " 
               "16r3622"    16r4FA0 " <CJK> " 
               "16r3623"    16r50D1 " <CJK> " 
               "16r3624"    16r5147 " <CJK> " 
               "16r3625"    16r7AF6 " <CJK> " 
               "16r3626"    16r5171 " <CJK> " 
               "16r3627"    16r51F6 " <CJK> " 
               "16r3628"    16r5354 " <CJK> " 
               "16r3629"    16r5321 " <CJK> " 
               "16r362A"    16r537F " <CJK> " 
               "16r362B"    16r53EB " <CJK> " 
               "16r362C"    16r55AC " <CJK> " 
               "16r362D"    16r5883 " <CJK> " 
               "16r362E"    16r5CE1 " <CJK> " 
               "16r362F"    16r5F37 " <CJK> " 
               "16r3630"    16r5F4A " <CJK> " 
               "16r3631"    16r602F " <CJK> " 
               "16r3632"    16r6050 " <CJK> " 
               "16r3633"    16r606D " <CJK> " 
               "16r3634"    16r631F " <CJK> " 
               "16r3635"    16r6559 " <CJK> " 
               "16r3636"    16r6A4B " <CJK> " 
               "16r3637"    16r6CC1 " <CJK> " 
               "16r3638"    16r72C2 " <CJK> " 
               "16r3639"    16r72ED " <CJK> " 
               "16r363A"    16r77EF " <CJK> " 
               "16r363B"    16r80F8 " <CJK> " 
               "16r363C"    16r8105 " <CJK> " 
               "16r363D"    16r8208 " <CJK> " 
               "16r363E"    16r854E " <CJK> " 
               "16r363F"    16r90F7 " <CJK> " 
               "16r3640"    16r93E1 " <CJK> " 
               "16r3641"    16r97FF " <CJK> " 
               "16r3642"    16r9957 " <CJK> " 
               "16r3643"    16r9A5A " <CJK> " 
               "16r3644"    16r4EF0 " <CJK> " 
               "16r3645"    16r51DD " <CJK> " 
               "16r3646"    16r5C2D " <CJK> " 
               "16r3647"    16r6681 " <CJK> " 
               "16r3648"    16r696D " <CJK> " 
               "16r3649"    16r5C40 " <CJK> " 
               "16r364A"    16r66F2 " <CJK> " 
               "16r364B"    16r6975 " <CJK> " 
               "16r364C"    16r7389 " <CJK> " 
               "16r364D"    16r6850 " <CJK> " 
               "16r364E"    16r7C81 " <CJK> " 
               "16r364F"    16r50C5 " <CJK> " 
               "16r3650"    16r52E4 " <CJK> " 
               "16r3651"    16r5747 " <CJK> " 
               "16r3652"    16r5DFE " <CJK> " 
               "16r3653"    16r9326 " <CJK> " 
               "16r3654"    16r65A4 " <CJK> " 
               "16r3655"    16r6B23 " <CJK> " 
               "16r3656"    16r6B3D " <CJK> " 
               "16r3657"    16r7434 " <CJK> " 
               "16r3658"    16r7981 " <CJK> " 
               "16r3659"    16r79BD " <CJK> " 
               "16r365A"    16r7B4B " <CJK> " 
               "16r365B"    16r7DCA " <CJK> " 
               "16r365C"    16r82B9 " <CJK> " 
               "16r365D"    16r83CC " <CJK> " 
               "16r365E"    16r887F " <CJK> " 
               "16r365F"    16r895F " <CJK> " 
               "16r3660"    16r8B39 " <CJK> " 
               "16r3661"    16r8FD1 " <CJK> " 
               "16r3662"    16r91D1 " <CJK> " 
               "16r3663"    16r541F " <CJK> " 
               "16r3664"    16r9280 " <CJK> " 
               "16r3665"    16r4E5D " <CJK> " 
               "16r3666"    16r5036 " <CJK> " 
               "16r3667"    16r53E5 " <CJK> " 
               "16r3668"    16r533A " <CJK> " 
               "16r3669"    16r72D7 " <CJK> " 
               "16r366A"    16r7396 " <CJK> " 
               "16r366B"    16r77E9 " <CJK> " 
               "16r366C"    16r82E6 " <CJK> " 
               "16r366D"    16r8EAF " <CJK> " 
               "16r366E"    16r99C6 " <CJK> " 
               "16r366F"    16r99C8 " <CJK> " 
               "16r3670"    16r99D2 " <CJK> " 
               "16r3671"    16r5177 " <CJK> " 
               "16r3672"    16r611A " <CJK> " 
               "16r3673"    16r865E " <CJK> " 
               "16r3674"    16r55B0 " <CJK> " 
               "16r3675"    16r7A7A " <CJK> " 
               "16r3676"    16r5076 " <CJK> " 
               "16r3677"    16r5BD3 " <CJK> " 
               "16r3678"    16r9047 " <CJK> " 
               "16r3679"    16r9685 " <CJK> " 
               "16r367A"    16r4E32 " <CJK> " 
               "16r367B"    16r6ADB " <CJK> " 
               "16r367C"    16r91E7 " <CJK> " 
               "16r367D"    16r5C51 " <CJK> " 
               "16r367E"    16r5C48 " <CJK> " 
               ) at:(code - 16r3620).
        ].
        code <= 16r3720 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r377E ifTrue:[
            ^ #(
               "16r3721"    16r6398 " <CJK> " 
               "16r3722"    16r7A9F " <CJK> " 
               "16r3723"    16r6C93 " <CJK> " 
               "16r3724"    16r9774 " <CJK> " 
               "16r3725"    16r8F61 " <CJK> " 
               "16r3726"    16r7AAA " <CJK> " 
               "16r3727"    16r718A " <CJK> " 
               "16r3728"    16r9688 " <CJK> " 
               "16r3729"    16r7C82 " <CJK> " 
               "16r372A"    16r6817 " <CJK> " 
               "16r372B"    16r7E70 " <CJK> " 
               "16r372C"    16r6851 " <CJK> " 
               "16r372D"    16r936C " <CJK> " 
               "16r372E"    16r52F2 " <CJK> " 
               "16r372F"    16r541B " <CJK> " 
               "16r3730"    16r85AB " <CJK> " 
               "16r3731"    16r8A13 " <CJK> " 
               "16r3732"    16r7FA4 " <CJK> " 
               "16r3733"    16r8ECD " <CJK> " 
               "16r3734"    16r90E1 " <CJK> " 
               "16r3735"    16r5366 " <CJK> " 
               "16r3736"    16r8888 " <CJK> " 
               "16r3737"    16r7941 " <CJK> " 
               "16r3738"    16r4FC2 " <CJK> " 
               "16r3739"    16r50BE " <CJK> " 
               "16r373A"    16r5211 " <CJK> " 
               "16r373B"    16r5144 " <CJK> " 
               "16r373C"    16r5553 " <CJK> " 
               "16r373D"    16r572D " <CJK> " 
               "16r373E"    16r73EA " <CJK> " 
               "16r373F"    16r578B " <CJK> " 
               "16r3740"    16r5951 " <CJK> " 
               "16r3741"    16r5F62 " <CJK> " 
               "16r3742"    16r5F84 " <CJK> " 
               "16r3743"    16r6075 " <CJK> " 
               "16r3744"    16r6176 " <CJK> " 
               "16r3745"    16r6167 " <CJK> " 
               "16r3746"    16r61A9 " <CJK> " 
               "16r3747"    16r63B2 " <CJK> " 
               "16r3748"    16r643A " <CJK> " 
               "16r3749"    16r656C " <CJK> " 
               "16r374A"    16r666F " <CJK> " 
               "16r374B"    16r6842 " <CJK> " 
               "16r374C"    16r6E13 " <CJK> " 
               "16r374D"    16r7566 " <CJK> " 
               "16r374E"    16r7A3D " <CJK> " 
               "16r374F"    16r7CFB " <CJK> " 
               "16r3750"    16r7D4C " <CJK> " 
               "16r3751"    16r7D99 " <CJK> " 
               "16r3752"    16r7E4B " <CJK> " 
               "16r3753"    16r7F6B " <CJK> " 
               "16r3754"    16r830E " <CJK> " 
               "16r3755"    16r834A " <CJK> " 
               "16r3756"    16r86CD " <CJK> " 
               "16r3757"    16r8A08 " <CJK> " 
               "16r3758"    16r8A63 " <CJK> " 
               "16r3759"    16r8B66 " <CJK> " 
               "16r375A"    16r8EFD " <CJK> " 
               "16r375B"    16r981A " <CJK> " 
               "16r375C"    16r9D8F " <CJK> " 
               "16r375D"    16r82B8 " <CJK> " 
               "16r375E"    16r8FCE " <CJK> " 
               "16r375F"    16r9BE8 " <CJK> " 
               "16r3760"    16r5287 " <CJK> " 
               "16r3761"    16r621F " <CJK> " 
               "16r3762"    16r6483 " <CJK> " 
               "16r3763"    16r6FC0 " <CJK> " 
               "16r3764"    16r9699 " <CJK> " 
               "16r3765"    16r6841 " <CJK> " 
               "16r3766"    16r5091 " <CJK> " 
               "16r3767"    16r6B20 " <CJK> " 
               "16r3768"    16r6C7A " <CJK> " 
               "16r3769"    16r6F54 " <CJK> " 
               "16r376A"    16r7A74 " <CJK> " 
               "16r376B"    16r7D50 " <CJK> " 
               "16r376C"    16r8840 " <CJK> " 
               "16r376D"    16r8A23 " <CJK> " 
               "16r376E"    16r6708 " <CJK> " 
               "16r376F"    16r4EF6 " <CJK> " 
               "16r3770"    16r5039 " <CJK> " 
               "16r3771"    16r5026 " <CJK> " 
               "16r3772"    16r5065 " <CJK> " 
               "16r3773"    16r517C " <CJK> " 
               "16r3774"    16r5238 " <CJK> " 
               "16r3775"    16r5263 " <CJK> " 
               "16r3776"    16r55A7 " <CJK> " 
               "16r3777"    16r570F " <CJK> " 
               "16r3778"    16r5805 " <CJK> " 
               "16r3779"    16r5ACC " <CJK> " 
               "16r377A"    16r5EFA " <CJK> " 
               "16r377B"    16r61B2 " <CJK> " 
               "16r377C"    16r61F8 " <CJK> " 
               "16r377D"    16r62F3 " <CJK> " 
               "16r377E"    16r6372 " <CJK> " 
               ) at:(code - 16r3720).
        ].
        code <= 16r3820 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r387E ifTrue:[
            ^ #(
               "16r3821"    16r691C " <CJK> " 
               "16r3822"    16r6A29 " <CJK> " 
               "16r3823"    16r727D " <CJK> " 
               "16r3824"    16r72AC " <CJK> " 
               "16r3825"    16r732E " <CJK> " 
               "16r3826"    16r7814 " <CJK> " 
               "16r3827"    16r786F " <CJK> " 
               "16r3828"    16r7D79 " <CJK> " 
               "16r3829"    16r770C " <CJK> " 
               "16r382A"    16r80A9 " <CJK> " 
               "16r382B"    16r898B " <CJK> " 
               "16r382C"    16r8B19 " <CJK> " 
               "16r382D"    16r8CE2 " <CJK> " 
               "16r382E"    16r8ED2 " <CJK> " 
               "16r382F"    16r9063 " <CJK> " 
               "16r3830"    16r9375 " <CJK> " 
               "16r3831"    16r967A " <CJK> " 
               "16r3832"    16r9855 " <CJK> " 
               "16r3833"    16r9A13 " <CJK> " 
               "16r3834"    16r9E78 " <CJK> " 
               "16r3835"    16r5143 " <CJK> " 
               "16r3836"    16r539F " <CJK> " 
               "16r3837"    16r53B3 " <CJK> " 
               "16r3838"    16r5E7B " <CJK> " 
               "16r3839"    16r5F26 " <CJK> " 
               "16r383A"    16r6E1B " <CJK> " 
               "16r383B"    16r6E90 " <CJK> " 
               "16r383C"    16r7384 " <CJK> " 
               "16r383D"    16r73FE " <CJK> " 
               "16r383E"    16r7D43 " <CJK> " 
               "16r383F"    16r8237 " <CJK> " 
               "16r3840"    16r8A00 " <CJK> " 
               "16r3841"    16r8AFA " <CJK> " 
               "16r3842"    16r9650 " <CJK> " 
               "16r3843"    16r4E4E " <CJK> " 
               "16r3844"    16r500B " <CJK> " 
               "16r3845"    16r53E4 " <CJK> " 
               "16r3846"    16r547C " <CJK> " 
               "16r3847"    16r56FA " <CJK> " 
               "16r3848"    16r59D1 " <CJK> " 
               "16r3849"    16r5B64 " <CJK> " 
               "16r384A"    16r5DF1 " <CJK> " 
               "16r384B"    16r5EAB " <CJK> " 
               "16r384C"    16r5F27 " <CJK> " 
               "16r384D"    16r6238 " <CJK> " 
               "16r384E"    16r6545 " <CJK> " 
               "16r384F"    16r67AF " <CJK> " 
               "16r3850"    16r6E56 " <CJK> " 
               "16r3851"    16r72D0 " <CJK> " 
               "16r3852"    16r7CCA " <CJK> " 
               "16r3853"    16r88B4 " <CJK> " 
               "16r3854"    16r80A1 " <CJK> " 
               "16r3855"    16r80E1 " <CJK> " 
               "16r3856"    16r83F0 " <CJK> " 
               "16r3857"    16r864E " <CJK> " 
               "16r3858"    16r8A87 " <CJK> " 
               "16r3859"    16r8DE8 " <CJK> " 
               "16r385A"    16r9237 " <CJK> " 
               "16r385B"    16r96C7 " <CJK> " 
               "16r385C"    16r9867 " <CJK> " 
               "16r385D"    16r9F13 " <CJK> " 
               "16r385E"    16r4E94 " <CJK> " 
               "16r385F"    16r4E92 " <CJK> " 
               "16r3860"    16r4F0D " <CJK> " 
               "16r3861"    16r5348 " <CJK> " 
               "16r3862"    16r5449 " <CJK> " 
               "16r3863"    16r543E " <CJK> " 
               "16r3864"    16r5A2F " <CJK> " 
               "16r3865"    16r5F8C " <CJK> " 
               "16r3866"    16r5FA1 " <CJK> " 
               "16r3867"    16r609F " <CJK> " 
               "16r3868"    16r68A7 " <CJK> " 
               "16r3869"    16r6A8E " <CJK> " 
               "16r386A"    16r745A " <CJK> " 
               "16r386B"    16r7881 " <CJK> " 
               "16r386C"    16r8A9E " <CJK> " 
               "16r386D"    16r8AA4 " <CJK> " 
               "16r386E"    16r8B77 " <CJK> " 
               "16r386F"    16r9190 " <CJK> " 
               "16r3870"    16r4E5E " <CJK> " 
               "16r3871"    16r9BC9 " <CJK> " 
               "16r3872"    16r4EA4 " <CJK> " 
               "16r3873"    16r4F7C " <CJK> " 
               "16r3874"    16r4FAF " <CJK> " 
               "16r3875"    16r5019 " <CJK> " 
               "16r3876"    16r5016 " <CJK> " 
               "16r3877"    16r5149 " <CJK> " 
               "16r3878"    16r516C " <CJK> " 
               "16r3879"    16r529F " <CJK> " 
               "16r387A"    16r52B9 " <CJK> " 
               "16r387B"    16r52FE " <CJK> " 
               "16r387C"    16r539A " <CJK> " 
               "16r387D"    16r53E3 " <CJK> " 
               "16r387E"    16r5411 " <CJK> " 
               ) at:(code - 16r3820).
        ].
        code <= 16r3920 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r397E ifTrue:[
            ^ #(
               "16r3921"    16r540E " <CJK> " 
               "16r3922"    16r5589 " <CJK> " 
               "16r3923"    16r5751 " <CJK> " 
               "16r3924"    16r57A2 " <CJK> " 
               "16r3925"    16r597D " <CJK> " 
               "16r3926"    16r5B54 " <CJK> " 
               "16r3927"    16r5B5D " <CJK> " 
               "16r3928"    16r5B8F " <CJK> " 
               "16r3929"    16r5DE5 " <CJK> " 
               "16r392A"    16r5DE7 " <CJK> " 
               "16r392B"    16r5DF7 " <CJK> " 
               "16r392C"    16r5E78 " <CJK> " 
               "16r392D"    16r5E83 " <CJK> " 
               "16r392E"    16r5E9A " <CJK> " 
               "16r392F"    16r5EB7 " <CJK> " 
               "16r3930"    16r5F18 " <CJK> " 
               "16r3931"    16r6052 " <CJK> " 
               "16r3932"    16r614C " <CJK> " 
               "16r3933"    16r6297 " <CJK> " 
               "16r3934"    16r62D8 " <CJK> " 
               "16r3935"    16r63A7 " <CJK> " 
               "16r3936"    16r653B " <CJK> " 
               "16r3937"    16r6602 " <CJK> " 
               "16r3938"    16r6643 " <CJK> " 
               "16r3939"    16r66F4 " <CJK> " 
               "16r393A"    16r676D " <CJK> " 
               "16r393B"    16r6821 " <CJK> " 
               "16r393C"    16r6897 " <CJK> " 
               "16r393D"    16r69CB " <CJK> " 
               "16r393E"    16r6C5F " <CJK> " 
               "16r393F"    16r6D2A " <CJK> " 
               "16r3940"    16r6D69 " <CJK> " 
               "16r3941"    16r6E2F " <CJK> " 
               "16r3942"    16r6E9D " <CJK> " 
               "16r3943"    16r7532 " <CJK> " 
               "16r3944"    16r7687 " <CJK> " 
               "16r3945"    16r786C " <CJK> " 
               "16r3946"    16r7A3F " <CJK> " 
               "16r3947"    16r7CE0 " <CJK> " 
               "16r3948"    16r7D05 " <CJK> " 
               "16r3949"    16r7D18 " <CJK> " 
               "16r394A"    16r7D5E " <CJK> " 
               "16r394B"    16r7DB1 " <CJK> " 
               "16r394C"    16r8015 " <CJK> " 
               "16r394D"    16r8003 " <CJK> " 
               "16r394E"    16r80AF " <CJK> " 
               "16r394F"    16r80B1 " <CJK> " 
               "16r3950"    16r8154 " <CJK> " 
               "16r3951"    16r818F " <CJK> " 
               "16r3952"    16r822A " <CJK> " 
               "16r3953"    16r8352 " <CJK> " 
               "16r3954"    16r884C " <CJK> " 
               "16r3955"    16r8861 " <CJK> " 
               "16r3956"    16r8B1B " <CJK> " 
               "16r3957"    16r8CA2 " <CJK> " 
               "16r3958"    16r8CFC " <CJK> " 
               "16r3959"    16r90CA " <CJK> " 
               "16r395A"    16r9175 " <CJK> " 
               "16r395B"    16r9271 " <CJK> " 
               "16r395C"    16r783F " <CJK> " 
               "16r395D"    16r92FC " <CJK> " 
               "16r395E"    16r95A4 " <CJK> " 
               "16r395F"    16r964D " <CJK> " 
               "16r3960"    16r9805 " <CJK> " 
               "16r3961"    16r9999 " <CJK> " 
               "16r3962"    16r9AD8 " <CJK> " 
               "16r3963"    16r9D3B " <CJK> " 
               "16r3964"    16r525B " <CJK> " 
               "16r3965"    16r52AB " <CJK> " 
               "16r3966"    16r53F7 " <CJK> " 
               "16r3967"    16r5408 " <CJK> " 
               "16r3968"    16r58D5 " <CJK> " 
               "16r3969"    16r62F7 " <CJK> " 
               "16r396A"    16r6FE0 " <CJK> " 
               "16r396B"    16r8C6A " <CJK> " 
               "16r396C"    16r8F5F " <CJK> " 
               "16r396D"    16r9EB9 " <CJK> " 
               "16r396E"    16r514B " <CJK> " 
               "16r396F"    16r523B " <CJK> " 
               "16r3970"    16r544A " <CJK> " 
               "16r3971"    16r56FD " <CJK> " 
               "16r3972"    16r7A40 " <CJK> " 
               "16r3973"    16r9177 " <CJK> " 
               "16r3974"    16r9D60 " <CJK> " 
               "16r3975"    16r9ED2 " <CJK> " 
               "16r3976"    16r7344 " <CJK> " 
               "16r3977"    16r6F09 " <CJK> " 
               "16r3978"    16r8170 " <CJK> " 
               "16r3979"    16r7511 " <CJK> " 
               "16r397A"    16r5FFD " <CJK> " 
               "16r397B"    16r60DA " <CJK> " 
               "16r397C"    16r9AA8 " <CJK> " 
               "16r397D"    16r72DB " <CJK> " 
               "16r397E"    16r8FBC " <CJK> " 
               ) at:(code - 16r3920).
        ].
        code <= 16r3A20 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r3A7E ifTrue:[
            ^ #(
               "16r3A21"    16r6B64 " <CJK> " 
               "16r3A22"    16r9803 " <CJK> " 
               "16r3A23"    16r4ECA " <CJK> " 
               "16r3A24"    16r56F0 " <CJK> " 
               "16r3A25"    16r5764 " <CJK> " 
               "16r3A26"    16r58BE " <CJK> " 
               "16r3A27"    16r5A5A " <CJK> " 
               "16r3A28"    16r6068 " <CJK> " 
               "16r3A29"    16r61C7 " <CJK> " 
               "16r3A2A"    16r660F " <CJK> " 
               "16r3A2B"    16r6606 " <CJK> " 
               "16r3A2C"    16r6839 " <CJK> " 
               "16r3A2D"    16r68B1 " <CJK> " 
               "16r3A2E"    16r6DF7 " <CJK> " 
               "16r3A2F"    16r75D5 " <CJK> " 
               "16r3A30"    16r7D3A " <CJK> " 
               "16r3A31"    16r826E " <CJK> " 
               "16r3A32"    16r9B42 " <CJK> " 
               "16r3A33"    16r4E9B " <CJK> " 
               "16r3A34"    16r4F50 " <CJK> " 
               "16r3A35"    16r53C9 " <CJK> " 
               "16r3A36"    16r5506 " <CJK> " 
               "16r3A37"    16r5D6F " <CJK> " 
               "16r3A38"    16r5DE6 " <CJK> " 
               "16r3A39"    16r5DEE " <CJK> " 
               "16r3A3A"    16r67FB " <CJK> " 
               "16r3A3B"    16r6C99 " <CJK> " 
               "16r3A3C"    16r7473 " <CJK> " 
               "16r3A3D"    16r7802 " <CJK> " 
               "16r3A3E"    16r8A50 " <CJK> " 
               "16r3A3F"    16r9396 " <CJK> " 
               "16r3A40"    16r88DF " <CJK> " 
               "16r3A41"    16r5750 " <CJK> " 
               "16r3A42"    16r5EA7 " <CJK> " 
               "16r3A43"    16r632B " <CJK> " 
               "16r3A44"    16r50B5 " <CJK> " 
               "16r3A45"    16r50AC " <CJK> " 
               "16r3A46"    16r518D " <CJK> " 
               "16r3A47"    16r6700 " <CJK> " 
               "16r3A48"    16r54C9 " <CJK> " 
               "16r3A49"    16r585E " <CJK> " 
               "16r3A4A"    16r59BB " <CJK> " 
               "16r3A4B"    16r5BB0 " <CJK> " 
               "16r3A4C"    16r5F69 " <CJK> " 
               "16r3A4D"    16r624D " <CJK> " 
               "16r3A4E"    16r63A1 " <CJK> " 
               "16r3A4F"    16r683D " <CJK> " 
               "16r3A50"    16r6B73 " <CJK> " 
               "16r3A51"    16r6E08 " <CJK> " 
               "16r3A52"    16r707D " <CJK> " 
               "16r3A53"    16r91C7 " <CJK> " 
               "16r3A54"    16r7280 " <CJK> " 
               "16r3A55"    16r7815 " <CJK> " 
               "16r3A56"    16r7826 " <CJK> " 
               "16r3A57"    16r796D " <CJK> " 
               "16r3A58"    16r658E " <CJK> " 
               "16r3A59"    16r7D30 " <CJK> " 
               "16r3A5A"    16r83DC " <CJK> " 
               "16r3A5B"    16r88C1 " <CJK> " 
               "16r3A5C"    16r8F09 " <CJK> " 
               "16r3A5D"    16r969B " <CJK> " 
               "16r3A5E"    16r5264 " <CJK> " 
               "16r3A5F"    16r5728 " <CJK> " 
               "16r3A60"    16r6750 " <CJK> " 
               "16r3A61"    16r7F6A " <CJK> " 
               "16r3A62"    16r8CA1 " <CJK> " 
               "16r3A63"    16r51B4 " <CJK> " 
               "16r3A64"    16r5742 " <CJK> " 
               "16r3A65"    16r962A " <CJK> " 
               "16r3A66"    16r583A " <CJK> " 
               "16r3A67"    16r698A " <CJK> " 
               "16r3A68"    16r80B4 " <CJK> " 
               "16r3A69"    16r54B2 " <CJK> " 
               "16r3A6A"    16r5D0E " <CJK> " 
               "16r3A6B"    16r57FC " <CJK> " 
               "16r3A6C"    16r7895 " <CJK> " 
               "16r3A6D"    16r9DFA " <CJK> " 
               "16r3A6E"    16r4F5C " <CJK> " 
               "16r3A6F"    16r524A " <CJK> " 
               "16r3A70"    16r548B " <CJK> " 
               "16r3A71"    16r643E " <CJK> " 
               "16r3A72"    16r6628 " <CJK> " 
               "16r3A73"    16r6714 " <CJK> " 
               "16r3A74"    16r67F5 " <CJK> " 
               "16r3A75"    16r7A84 " <CJK> " 
               "16r3A76"    16r7B56 " <CJK> " 
               "16r3A77"    16r7D22 " <CJK> " 
               "16r3A78"    16r932F " <CJK> " 
               "16r3A79"    16r685C " <CJK> " 
               "16r3A7A"    16r9BAD " <CJK> " 
               "16r3A7B"    16r7B39 " <CJK> " 
               "16r3A7C"    16r5319 " <CJK> " 
               "16r3A7D"    16r518A " <CJK> " 
               "16r3A7E"    16r5237 " <CJK> " 
               ) at:(code - 16r3A20).
        ].
        code <= 16r3B20 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r3B7E ifTrue:[
            ^ #(
               "16r3B21"    16r5BDF " <CJK> " 
               "16r3B22"    16r62F6 " <CJK> " 
               "16r3B23"    16r64AE " <CJK> " 
               "16r3B24"    16r64E6 " <CJK> " 
               "16r3B25"    16r672D " <CJK> " 
               "16r3B26"    16r6BBA " <CJK> " 
               "16r3B27"    16r85A9 " <CJK> " 
               "16r3B28"    16r96D1 " <CJK> " 
               "16r3B29"    16r7690 " <CJK> " 
               "16r3B2A"    16r9BD6 " <CJK> " 
               "16r3B2B"    16r634C " <CJK> " 
               "16r3B2C"    16r9306 " <CJK> " 
               "16r3B2D"    16r9BAB " <CJK> " 
               "16r3B2E"    16r76BF " <CJK> " 
               "16r3B2F"    16r6652 " <CJK> " 
               "16r3B30"    16r4E09 " <CJK> " 
               "16r3B31"    16r5098 " <CJK> " 
               "16r3B32"    16r53C2 " <CJK> " 
               "16r3B33"    16r5C71 " <CJK> " 
               "16r3B34"    16r60E8 " <CJK> " 
               "16r3B35"    16r6492 " <CJK> " 
               "16r3B36"    16r6563 " <CJK> " 
               "16r3B37"    16r685F " <CJK> " 
               "16r3B38"    16r71E6 " <CJK> " 
               "16r3B39"    16r73CA " <CJK> " 
               "16r3B3A"    16r7523 " <CJK> " 
               "16r3B3B"    16r7B97 " <CJK> " 
               "16r3B3C"    16r7E82 " <CJK> " 
               "16r3B3D"    16r8695 " <CJK> " 
               "16r3B3E"    16r8B83 " <CJK> " 
               "16r3B3F"    16r8CDB " <CJK> " 
               "16r3B40"    16r9178 " <CJK> " 
               "16r3B41"    16r9910 " <CJK> " 
               "16r3B42"    16r65AC " <CJK> " 
               "16r3B43"    16r66AB " <CJK> " 
               "16r3B44"    16r6B8B " <CJK> " 
               "16r3B45"    16r4ED5 " <CJK> " 
               "16r3B46"    16r4ED4 " <CJK> " 
               "16r3B47"    16r4F3A " <CJK> " 
               "16r3B48"    16r4F7F " <CJK> " 
               "16r3B49"    16r523A " <CJK> " 
               "16r3B4A"    16r53F8 " <CJK> " 
               "16r3B4B"    16r53F2 " <CJK> " 
               "16r3B4C"    16r55E3 " <CJK> " 
               "16r3B4D"    16r56DB " <CJK> " 
               "16r3B4E"    16r58EB " <CJK> " 
               "16r3B4F"    16r59CB " <CJK> " 
               "16r3B50"    16r59C9 " <CJK> " 
               "16r3B51"    16r59FF " <CJK> " 
               "16r3B52"    16r5B50 " <CJK> " 
               "16r3B53"    16r5C4D " <CJK> " 
               "16r3B54"    16r5E02 " <CJK> " 
               "16r3B55"    16r5E2B " <CJK> " 
               "16r3B56"    16r5FD7 " <CJK> " 
               "16r3B57"    16r601D " <CJK> " 
               "16r3B58"    16r6307 " <CJK> " 
               "16r3B59"    16r652F " <CJK> " 
               "16r3B5A"    16r5B5C " <CJK> " 
               "16r3B5B"    16r65AF " <CJK> " 
               "16r3B5C"    16r65BD " <CJK> " 
               "16r3B5D"    16r65E8 " <CJK> " 
               "16r3B5E"    16r679D " <CJK> " 
               "16r3B5F"    16r6B62 " <CJK> " 
               "16r3B60"    16r6B7B " <CJK> " 
               "16r3B61"    16r6C0F " <CJK> " 
               "16r3B62"    16r7345 " <CJK> " 
               "16r3B63"    16r7949 " <CJK> " 
               "16r3B64"    16r79C1 " <CJK> " 
               "16r3B65"    16r7CF8 " <CJK> " 
               "16r3B66"    16r7D19 " <CJK> " 
               "16r3B67"    16r7D2B " <CJK> " 
               "16r3B68"    16r80A2 " <CJK> " 
               "16r3B69"    16r8102 " <CJK> " 
               "16r3B6A"    16r81F3 " <CJK> " 
               "16r3B6B"    16r8996 " <CJK> " 
               "16r3B6C"    16r8A5E " <CJK> " 
               "16r3B6D"    16r8A69 " <CJK> " 
               "16r3B6E"    16r8A66 " <CJK> " 
               "16r3B6F"    16r8A8C " <CJK> " 
               "16r3B70"    16r8AEE " <CJK> " 
               "16r3B71"    16r8CC7 " <CJK> " 
               "16r3B72"    16r8CDC " <CJK> " 
               "16r3B73"    16r96CC " <CJK> " 
               "16r3B74"    16r98FC " <CJK> " 
               "16r3B75"    16r6B6F " <CJK> " 
               "16r3B76"    16r4E8B " <CJK> " 
               "16r3B77"    16r4F3C " <CJK> " 
               "16r3B78"    16r4F8D " <CJK> " 
               "16r3B79"    16r5150 " <CJK> " 
               "16r3B7A"    16r5B57 " <CJK> " 
               "16r3B7B"    16r5BFA " <CJK> " 
               "16r3B7C"    16r6148 " <CJK> " 
               "16r3B7D"    16r6301 " <CJK> " 
               "16r3B7E"    16r6642 " <CJK> " 
               ) at:(code - 16r3B20).
        ].
        code <= 16r3C20 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r3C7E ifTrue:[
            ^ #(
               "16r3C21"    16r6B21 " <CJK> " 
               "16r3C22"    16r6ECB " <CJK> " 
               "16r3C23"    16r6CBB " <CJK> " 
               "16r3C24"    16r723E " <CJK> " 
               "16r3C25"    16r74BD " <CJK> " 
               "16r3C26"    16r75D4 " <CJK> " 
               "16r3C27"    16r78C1 " <CJK> " 
               "16r3C28"    16r793A " <CJK> " 
               "16r3C29"    16r800C " <CJK> " 
               "16r3C2A"    16r8033 " <CJK> " 
               "16r3C2B"    16r81EA " <CJK> " 
               "16r3C2C"    16r8494 " <CJK> " 
               "16r3C2D"    16r8F9E " <CJK> " 
               "16r3C2E"    16r6C50 " <CJK> " 
               "16r3C2F"    16r9E7F " <CJK> " 
               "16r3C30"    16r5F0F " <CJK> " 
               "16r3C31"    16r8B58 " <CJK> " 
               "16r3C32"    16r9D2B " <CJK> " 
               "16r3C33"    16r7AFA " <CJK> " 
               "16r3C34"    16r8EF8 " <CJK> " 
               "16r3C35"    16r5B8D " <CJK> " 
               "16r3C36"    16r96EB " <CJK> " 
               "16r3C37"    16r4E03 " <CJK> " 
               "16r3C38"    16r53F1 " <CJK> " 
               "16r3C39"    16r57F7 " <CJK> " 
               "16r3C3A"    16r5931 " <CJK> " 
               "16r3C3B"    16r5AC9 " <CJK> " 
               "16r3C3C"    16r5BA4 " <CJK> " 
               "16r3C3D"    16r6089 " <CJK> " 
               "16r3C3E"    16r6E7F " <CJK> " 
               "16r3C3F"    16r6F06 " <CJK> " 
               "16r3C40"    16r75BE " <CJK> " 
               "16r3C41"    16r8CEA " <CJK> " 
               "16r3C42"    16r5B9F " <CJK> " 
               "16r3C43"    16r8500 " <CJK> " 
               "16r3C44"    16r7BE0 " <CJK> " 
               "16r3C45"    16r5072 " <CJK> " 
               "16r3C46"    16r67F4 " <CJK> " 
               "16r3C47"    16r829D " <CJK> " 
               "16r3C48"    16r5C61 " <CJK> " 
               "16r3C49"    16r854A " <CJK> " 
               "16r3C4A"    16r7E1E " <CJK> " 
               "16r3C4B"    16r820E " <CJK> " 
               "16r3C4C"    16r5199 " <CJK> " 
               "16r3C4D"    16r5C04 " <CJK> " 
               "16r3C4E"    16r6368 " <CJK> " 
               "16r3C4F"    16r8D66 " <CJK> " 
               "16r3C50"    16r659C " <CJK> " 
               "16r3C51"    16r716E " <CJK> " 
               "16r3C52"    16r793E " <CJK> " 
               "16r3C53"    16r7D17 " <CJK> " 
               "16r3C54"    16r8005 " <CJK> " 
               "16r3C55"    16r8B1D " <CJK> " 
               "16r3C56"    16r8ECA " <CJK> " 
               "16r3C57"    16r906E " <CJK> " 
               "16r3C58"    16r86C7 " <CJK> " 
               "16r3C59"    16r90AA " <CJK> " 
               "16r3C5A"    16r501F " <CJK> " 
               "16r3C5B"    16r52FA " <CJK> " 
               "16r3C5C"    16r5C3A " <CJK> " 
               "16r3C5D"    16r6753 " <CJK> " 
               "16r3C5E"    16r707C " <CJK> " 
               "16r3C5F"    16r7235 " <CJK> " 
               "16r3C60"    16r914C " <CJK> " 
               "16r3C61"    16r91C8 " <CJK> " 
               "16r3C62"    16r932B " <CJK> " 
               "16r3C63"    16r82E5 " <CJK> " 
               "16r3C64"    16r5BC2 " <CJK> " 
               "16r3C65"    16r5F31 " <CJK> " 
               "16r3C66"    16r60F9 " <CJK> " 
               "16r3C67"    16r4E3B " <CJK> " 
               "16r3C68"    16r53D6 " <CJK> " 
               "16r3C69"    16r5B88 " <CJK> " 
               "16r3C6A"    16r624B " <CJK> " 
               "16r3C6B"    16r6731 " <CJK> " 
               "16r3C6C"    16r6B8A " <CJK> " 
               "16r3C6D"    16r72E9 " <CJK> " 
               "16r3C6E"    16r73E0 " <CJK> " 
               "16r3C6F"    16r7A2E " <CJK> " 
               "16r3C70"    16r816B " <CJK> " 
               "16r3C71"    16r8DA3 " <CJK> " 
               "16r3C72"    16r9152 " <CJK> " 
               "16r3C73"    16r9996 " <CJK> " 
               "16r3C74"    16r5112 " <CJK> " 
               "16r3C75"    16r53D7 " <CJK> " 
               "16r3C76"    16r546A " <CJK> " 
               "16r3C77"    16r5BFF " <CJK> " 
               "16r3C78"    16r6388 " <CJK> " 
               "16r3C79"    16r6A39 " <CJK> " 
               "16r3C7A"    16r7DAC " <CJK> " 
               "16r3C7B"    16r9700 " <CJK> " 
               "16r3C7C"    16r56DA " <CJK> " 
               "16r3C7D"    16r53CE " <CJK> " 
               "16r3C7E"    16r5468 " <CJK> " 
               ) at:(code - 16r3C20).
        ].
        code <= 16r3D20 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r3D7E ifTrue:[
            ^ #(
               "16r3D21"    16r5B97 " <CJK> " 
               "16r3D22"    16r5C31 " <CJK> " 
               "16r3D23"    16r5DDE " <CJK> " 
               "16r3D24"    16r4FEE " <CJK> " 
               "16r3D25"    16r6101 " <CJK> " 
               "16r3D26"    16r62FE " <CJK> " 
               "16r3D27"    16r6D32 " <CJK> " 
               "16r3D28"    16r79C0 " <CJK> " 
               "16r3D29"    16r79CB " <CJK> " 
               "16r3D2A"    16r7D42 " <CJK> " 
               "16r3D2B"    16r7E4D " <CJK> " 
               "16r3D2C"    16r7FD2 " <CJK> " 
               "16r3D2D"    16r81ED " <CJK> " 
               "16r3D2E"    16r821F " <CJK> " 
               "16r3D2F"    16r8490 " <CJK> " 
               "16r3D30"    16r8846 " <CJK> " 
               "16r3D31"    16r8972 " <CJK> " 
               "16r3D32"    16r8B90 " <CJK> " 
               "16r3D33"    16r8E74 " <CJK> " 
               "16r3D34"    16r8F2F " <CJK> " 
               "16r3D35"    16r9031 " <CJK> " 
               "16r3D36"    16r914B " <CJK> " 
               "16r3D37"    16r916C " <CJK> " 
               "16r3D38"    16r96C6 " <CJK> " 
               "16r3D39"    16r919C " <CJK> " 
               "16r3D3A"    16r4EC0 " <CJK> " 
               "16r3D3B"    16r4F4F " <CJK> " 
               "16r3D3C"    16r5145 " <CJK> " 
               "16r3D3D"    16r5341 " <CJK> " 
               "16r3D3E"    16r5F93 " <CJK> " 
               "16r3D3F"    16r620E " <CJK> " 
               "16r3D40"    16r67D4 " <CJK> " 
               "16r3D41"    16r6C41 " <CJK> " 
               "16r3D42"    16r6E0B " <CJK> " 
               "16r3D43"    16r7363 " <CJK> " 
               "16r3D44"    16r7E26 " <CJK> " 
               "16r3D45"    16r91CD " <CJK> " 
               "16r3D46"    16r9283 " <CJK> " 
               "16r3D47"    16r53D4 " <CJK> " 
               "16r3D48"    16r5919 " <CJK> " 
               "16r3D49"    16r5BBF " <CJK> " 
               "16r3D4A"    16r6DD1 " <CJK> " 
               "16r3D4B"    16r795D " <CJK> " 
               "16r3D4C"    16r7E2E " <CJK> " 
               "16r3D4D"    16r7C9B " <CJK> " 
               "16r3D4E"    16r587E " <CJK> " 
               "16r3D4F"    16r719F " <CJK> " 
               "16r3D50"    16r51FA " <CJK> " 
               "16r3D51"    16r8853 " <CJK> " 
               "16r3D52"    16r8FF0 " <CJK> " 
               "16r3D53"    16r4FCA " <CJK> " 
               "16r3D54"    16r5CFB " <CJK> " 
               "16r3D55"    16r6625 " <CJK> " 
               "16r3D56"    16r77AC " <CJK> " 
               "16r3D57"    16r7AE3 " <CJK> " 
               "16r3D58"    16r821C " <CJK> " 
               "16r3D59"    16r99FF " <CJK> " 
               "16r3D5A"    16r51C6 " <CJK> " 
               "16r3D5B"    16r5FAA " <CJK> " 
               "16r3D5C"    16r65EC " <CJK> " 
               "16r3D5D"    16r696F " <CJK> " 
               "16r3D5E"    16r6B89 " <CJK> " 
               "16r3D5F"    16r6DF3 " <CJK> " 
               "16r3D60"    16r6E96 " <CJK> " 
               "16r3D61"    16r6F64 " <CJK> " 
               "16r3D62"    16r76FE " <CJK> " 
               "16r3D63"    16r7D14 " <CJK> " 
               "16r3D64"    16r5DE1 " <CJK> " 
               "16r3D65"    16r9075 " <CJK> " 
               "16r3D66"    16r9187 " <CJK> " 
               "16r3D67"    16r9806 " <CJK> " 
               "16r3D68"    16r51E6 " <CJK> " 
               "16r3D69"    16r521D " <CJK> " 
               "16r3D6A"    16r6240 " <CJK> " 
               "16r3D6B"    16r6691 " <CJK> " 
               "16r3D6C"    16r66D9 " <CJK> " 
               "16r3D6D"    16r6E1A " <CJK> " 
               "16r3D6E"    16r5EB6 " <CJK> " 
               "16r3D6F"    16r7DD2 " <CJK> " 
               "16r3D70"    16r7F72 " <CJK> " 
               "16r3D71"    16r66F8 " <CJK> " 
               "16r3D72"    16r85AF " <CJK> " 
               "16r3D73"    16r85F7 " <CJK> " 
               "16r3D74"    16r8AF8 " <CJK> " 
               "16r3D75"    16r52A9 " <CJK> " 
               "16r3D76"    16r53D9 " <CJK> " 
               "16r3D77"    16r5973 " <CJK> " 
               "16r3D78"    16r5E8F " <CJK> " 
               "16r3D79"    16r5F90 " <CJK> " 
               "16r3D7A"    16r6055 " <CJK> " 
               "16r3D7B"    16r92E4 " <CJK> " 
               "16r3D7C"    16r9664 " <CJK> " 
               "16r3D7D"    16r50B7 " <CJK> " 
               "16r3D7E"    16r511F " <CJK> " 
               ) at:(code - 16r3D20).
        ].
        code <= 16r3E20 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r3E7E ifTrue:[
            ^ #(
               "16r3E21"    16r52DD " <CJK> " 
               "16r3E22"    16r5320 " <CJK> " 
               "16r3E23"    16r5347 " <CJK> " 
               "16r3E24"    16r53EC " <CJK> " 
               "16r3E25"    16r54E8 " <CJK> " 
               "16r3E26"    16r5546 " <CJK> " 
               "16r3E27"    16r5531 " <CJK> " 
               "16r3E28"    16r5617 " <CJK> " 
               "16r3E29"    16r5968 " <CJK> " 
               "16r3E2A"    16r59BE " <CJK> " 
               "16r3E2B"    16r5A3C " <CJK> " 
               "16r3E2C"    16r5BB5 " <CJK> " 
               "16r3E2D"    16r5C06 " <CJK> " 
               "16r3E2E"    16r5C0F " <CJK> " 
               "16r3E2F"    16r5C11 " <CJK> " 
               "16r3E30"    16r5C1A " <CJK> " 
               "16r3E31"    16r5E84 " <CJK> " 
               "16r3E32"    16r5E8A " <CJK> " 
               "16r3E33"    16r5EE0 " <CJK> " 
               "16r3E34"    16r5F70 " <CJK> " 
               "16r3E35"    16r627F " <CJK> " 
               "16r3E36"    16r6284 " <CJK> " 
               "16r3E37"    16r62DB " <CJK> " 
               "16r3E38"    16r638C " <CJK> " 
               "16r3E39"    16r6377 " <CJK> " 
               "16r3E3A"    16r6607 " <CJK> " 
               "16r3E3B"    16r660C " <CJK> " 
               "16r3E3C"    16r662D " <CJK> " 
               "16r3E3D"    16r6676 " <CJK> " 
               "16r3E3E"    16r677E " <CJK> " 
               "16r3E3F"    16r68A2 " <CJK> " 
               "16r3E40"    16r6A1F " <CJK> " 
               "16r3E41"    16r6A35 " <CJK> " 
               "16r3E42"    16r6CBC " <CJK> " 
               "16r3E43"    16r6D88 " <CJK> " 
               "16r3E44"    16r6E09 " <CJK> " 
               "16r3E45"    16r6E58 " <CJK> " 
               "16r3E46"    16r713C " <CJK> " 
               "16r3E47"    16r7126 " <CJK> " 
               "16r3E48"    16r7167 " <CJK> " 
               "16r3E49"    16r75C7 " <CJK> " 
               "16r3E4A"    16r7701 " <CJK> " 
               "16r3E4B"    16r785D " <CJK> " 
               "16r3E4C"    16r7901 " <CJK> " 
               "16r3E4D"    16r7965 " <CJK> " 
               "16r3E4E"    16r79F0 " <CJK> " 
               "16r3E4F"    16r7AE0 " <CJK> " 
               "16r3E50"    16r7B11 " <CJK> " 
               "16r3E51"    16r7CA7 " <CJK> " 
               "16r3E52"    16r7D39 " <CJK> " 
               "16r3E53"    16r8096 " <CJK> " 
               "16r3E54"    16r83D6 " <CJK> " 
               "16r3E55"    16r848B " <CJK> " 
               "16r3E56"    16r8549 " <CJK> " 
               "16r3E57"    16r885D " <CJK> " 
               "16r3E58"    16r88F3 " <CJK> " 
               "16r3E59"    16r8A1F " <CJK> " 
               "16r3E5A"    16r8A3C " <CJK> " 
               "16r3E5B"    16r8A54 " <CJK> " 
               "16r3E5C"    16r8A73 " <CJK> " 
               "16r3E5D"    16r8C61 " <CJK> " 
               "16r3E5E"    16r8CDE " <CJK> " 
               "16r3E5F"    16r91A4 " <CJK> " 
               "16r3E60"    16r9266 " <CJK> " 
               "16r3E61"    16r937E " <CJK> " 
               "16r3E62"    16r9418 " <CJK> " 
               "16r3E63"    16r969C " <CJK> " 
               "16r3E64"    16r9798 " <CJK> " 
               "16r3E65"    16r4E0A " <CJK> " 
               "16r3E66"    16r4E08 " <CJK> " 
               "16r3E67"    16r4E1E " <CJK> " 
               "16r3E68"    16r4E57 " <CJK> " 
               "16r3E69"    16r5197 " <CJK> " 
               "16r3E6A"    16r5270 " <CJK> " 
               "16r3E6B"    16r57CE " <CJK> " 
               "16r3E6C"    16r5834 " <CJK> " 
               "16r3E6D"    16r58CC " <CJK> " 
               "16r3E6E"    16r5B22 " <CJK> " 
               "16r3E6F"    16r5E38 " <CJK> " 
               "16r3E70"    16r60C5 " <CJK> " 
               "16r3E71"    16r64FE " <CJK> " 
               "16r3E72"    16r6761 " <CJK> " 
               "16r3E73"    16r6756 " <CJK> " 
               "16r3E74"    16r6D44 " <CJK> " 
               "16r3E75"    16r72B6 " <CJK> " 
               "16r3E76"    16r7573 " <CJK> " 
               "16r3E77"    16r7A63 " <CJK> " 
               "16r3E78"    16r84B8 " <CJK> " 
               "16r3E79"    16r8B72 " <CJK> " 
               "16r3E7A"    16r91B8 " <CJK> " 
               "16r3E7B"    16r9320 " <CJK> " 
               "16r3E7C"    16r5631 " <CJK> " 
               "16r3E7D"    16r57F4 " <CJK> " 
               "16r3E7E"    16r98FE " <CJK> " 
               ) at:(code - 16r3E20).
        ].
        code <= 16r3F20 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r3F7E ifTrue:[
            ^ #(
               "16r3F21"    16r62ED " <CJK> " 
               "16r3F22"    16r690D " <CJK> " 
               "16r3F23"    16r6B96 " <CJK> " 
               "16r3F24"    16r71ED " <CJK> " 
               "16r3F25"    16r7E54 " <CJK> " 
               "16r3F26"    16r8077 " <CJK> " 
               "16r3F27"    16r8272 " <CJK> " 
               "16r3F28"    16r89E6 " <CJK> " 
               "16r3F29"    16r98DF " <CJK> " 
               "16r3F2A"    16r8755 " <CJK> " 
               "16r3F2B"    16r8FB1 " <CJK> " 
               "16r3F2C"    16r5C3B " <CJK> " 
               "16r3F2D"    16r4F38 " <CJK> " 
               "16r3F2E"    16r4FE1 " <CJK> " 
               "16r3F2F"    16r4FB5 " <CJK> " 
               "16r3F30"    16r5507 " <CJK> " 
               "16r3F31"    16r5A20 " <CJK> " 
               "16r3F32"    16r5BDD " <CJK> " 
               "16r3F33"    16r5BE9 " <CJK> " 
               "16r3F34"    16r5FC3 " <CJK> " 
               "16r3F35"    16r614E " <CJK> " 
               "16r3F36"    16r632F " <CJK> " 
               "16r3F37"    16r65B0 " <CJK> " 
               "16r3F38"    16r664B " <CJK> " 
               "16r3F39"    16r68EE " <CJK> " 
               "16r3F3A"    16r699B " <CJK> " 
               "16r3F3B"    16r6D78 " <CJK> " 
               "16r3F3C"    16r6DF1 " <CJK> " 
               "16r3F3D"    16r7533 " <CJK> " 
               "16r3F3E"    16r75B9 " <CJK> " 
               "16r3F3F"    16r771F " <CJK> " 
               "16r3F40"    16r795E " <CJK> " 
               "16r3F41"    16r79E6 " <CJK> " 
               "16r3F42"    16r7D33 " <CJK> " 
               "16r3F43"    16r81E3 " <CJK> " 
               "16r3F44"    16r82AF " <CJK> " 
               "16r3F45"    16r85AA " <CJK> " 
               "16r3F46"    16r89AA " <CJK> " 
               "16r3F47"    16r8A3A " <CJK> " 
               "16r3F48"    16r8EAB " <CJK> " 
               "16r3F49"    16r8F9B " <CJK> " 
               "16r3F4A"    16r9032 " <CJK> " 
               "16r3F4B"    16r91DD " <CJK> " 
               "16r3F4C"    16r9707 " <CJK> " 
               "16r3F4D"    16r4EBA " <CJK> " 
               "16r3F4E"    16r4EC1 " <CJK> " 
               "16r3F4F"    16r5203 " <CJK> " 
               "16r3F50"    16r5875 " <CJK> " 
               "16r3F51"    16r58EC " <CJK> " 
               "16r3F52"    16r5C0B " <CJK> " 
               "16r3F53"    16r751A " <CJK> " 
               "16r3F54"    16r5C3D " <CJK> " 
               "16r3F55"    16r814E " <CJK> " 
               "16r3F56"    16r8A0A " <CJK> " 
               "16r3F57"    16r8FC5 " <CJK> " 
               "16r3F58"    16r9663 " <CJK> " 
               "16r3F59"    16r976D " <CJK> " 
               "16r3F5A"    16r7B25 " <CJK> " 
               "16r3F5B"    16r8ACF " <CJK> " 
               "16r3F5C"    16r9808 " <CJK> " 
               "16r3F5D"    16r9162 " <CJK> " 
               "16r3F5E"    16r56F3 " <CJK> " 
               "16r3F5F"    16r53A8 " <CJK> " 
               "16r3F60"    16r9017 " <CJK> " 
               "16r3F61"    16r5439 " <CJK> " 
               "16r3F62"    16r5782 " <CJK> " 
               "16r3F63"    16r5E25 " <CJK> " 
               "16r3F64"    16r63A8 " <CJK> " 
               "16r3F65"    16r6C34 " <CJK> " 
               "16r3F66"    16r708A " <CJK> " 
               "16r3F67"    16r7761 " <CJK> " 
               "16r3F68"    16r7C8B " <CJK> " 
               "16r3F69"    16r7FE0 " <CJK> " 
               "16r3F6A"    16r8870 " <CJK> " 
               "16r3F6B"    16r9042 " <CJK> " 
               "16r3F6C"    16r9154 " <CJK> " 
               "16r3F6D"    16r9310 " <CJK> " 
               "16r3F6E"    16r9318 " <CJK> " 
               "16r3F6F"    16r968F " <CJK> " 
               "16r3F70"    16r745E " <CJK> " 
               "16r3F71"    16r9AC4 " <CJK> " 
               "16r3F72"    16r5D07 " <CJK> " 
               "16r3F73"    16r5D69 " <CJK> " 
               "16r3F74"    16r6570 " <CJK> " 
               "16r3F75"    16r67A2 " <CJK> " 
               "16r3F76"    16r8DA8 " <CJK> " 
               "16r3F77"    16r96DB " <CJK> " 
               "16r3F78"    16r636E " <CJK> " 
               "16r3F79"    16r6749 " <CJK> " 
               "16r3F7A"    16r6919 " <CJK> " 
               "16r3F7B"    16r83C5 " <CJK> " 
               "16r3F7C"    16r9817 " <CJK> " 
               "16r3F7D"    16r96C0 " <CJK> " 
               "16r3F7E"    16r88FE " <CJK> " 
               ) at:(code - 16r3F20).
        ].
        code <= 16r4020 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r407E ifTrue:[
            ^ #(
               "16r4021"    16r6F84 " <CJK> " 
               "16r4022"    16r647A " <CJK> " 
               "16r4023"    16r5BF8 " <CJK> " 
               "16r4024"    16r4E16 " <CJK> " 
               "16r4025"    16r702C " <CJK> " 
               "16r4026"    16r755D " <CJK> " 
               "16r4027"    16r662F " <CJK> " 
               "16r4028"    16r51C4 " <CJK> " 
               "16r4029"    16r5236 " <CJK> " 
               "16r402A"    16r52E2 " <CJK> " 
               "16r402B"    16r59D3 " <CJK> " 
               "16r402C"    16r5F81 " <CJK> " 
               "16r402D"    16r6027 " <CJK> " 
               "16r402E"    16r6210 " <CJK> " 
               "16r402F"    16r653F " <CJK> " 
               "16r4030"    16r6574 " <CJK> " 
               "16r4031"    16r661F " <CJK> " 
               "16r4032"    16r6674 " <CJK> " 
               "16r4033"    16r68F2 " <CJK> " 
               "16r4034"    16r6816 " <CJK> " 
               "16r4035"    16r6B63 " <CJK> " 
               "16r4036"    16r6E05 " <CJK> " 
               "16r4037"    16r7272 " <CJK> " 
               "16r4038"    16r751F " <CJK> " 
               "16r4039"    16r76DB " <CJK> " 
               "16r403A"    16r7CBE " <CJK> " 
               "16r403B"    16r8056 " <CJK> " 
               "16r403C"    16r58F0 " <CJK> " 
               "16r403D"    16r88FD " <CJK> " 
               "16r403E"    16r897F " <CJK> " 
               "16r403F"    16r8AA0 " <CJK> " 
               "16r4040"    16r8A93 " <CJK> " 
               "16r4041"    16r8ACB " <CJK> " 
               "16r4042"    16r901D " <CJK> " 
               "16r4043"    16r9192 " <CJK> " 
               "16r4044"    16r9752 " <CJK> " 
               "16r4045"    16r9759 " <CJK> " 
               "16r4046"    16r6589 " <CJK> " 
               "16r4047"    16r7A0E " <CJK> " 
               "16r4048"    16r8106 " <CJK> " 
               "16r4049"    16r96BB " <CJK> " 
               "16r404A"    16r5E2D " <CJK> " 
               "16r404B"    16r60DC " <CJK> " 
               "16r404C"    16r621A " <CJK> " 
               "16r404D"    16r65A5 " <CJK> " 
               "16r404E"    16r6614 " <CJK> " 
               "16r404F"    16r6790 " <CJK> " 
               "16r4050"    16r77F3 " <CJK> " 
               "16r4051"    16r7A4D " <CJK> " 
               "16r4052"    16r7C4D " <CJK> " 
               "16r4053"    16r7E3E " <CJK> " 
               "16r4054"    16r810A " <CJK> " 
               "16r4055"    16r8CAC " <CJK> " 
               "16r4056"    16r8D64 " <CJK> " 
               "16r4057"    16r8DE1 " <CJK> " 
               "16r4058"    16r8E5F " <CJK> " 
               "16r4059"    16r78A9 " <CJK> " 
               "16r405A"    16r5207 " <CJK> " 
               "16r405B"    16r62D9 " <CJK> " 
               "16r405C"    16r63A5 " <CJK> " 
               "16r405D"    16r6442 " <CJK> " 
               "16r405E"    16r6298 " <CJK> " 
               "16r405F"    16r8A2D " <CJK> " 
               "16r4060"    16r7A83 " <CJK> " 
               "16r4061"    16r7BC0 " <CJK> " 
               "16r4062"    16r8AAC " <CJK> " 
               "16r4063"    16r96EA " <CJK> " 
               "16r4064"    16r7D76 " <CJK> " 
               "16r4065"    16r820C " <CJK> " 
               "16r4066"    16r8749 " <CJK> " 
               "16r4067"    16r4ED9 " <CJK> " 
               "16r4068"    16r5148 " <CJK> " 
               "16r4069"    16r5343 " <CJK> " 
               "16r406A"    16r5360 " <CJK> " 
               "16r406B"    16r5BA3 " <CJK> " 
               "16r406C"    16r5C02 " <CJK> " 
               "16r406D"    16r5C16 " <CJK> " 
               "16r406E"    16r5DDD " <CJK> " 
               "16r406F"    16r6226 " <CJK> " 
               "16r4070"    16r6247 " <CJK> " 
               "16r4071"    16r64B0 " <CJK> " 
               "16r4072"    16r6813 " <CJK> " 
               "16r4073"    16r6834 " <CJK> " 
               "16r4074"    16r6CC9 " <CJK> " 
               "16r4075"    16r6D45 " <CJK> " 
               "16r4076"    16r6D17 " <CJK> " 
               "16r4077"    16r67D3 " <CJK> " 
               "16r4078"    16r6F5C " <CJK> " 
               "16r4079"    16r714E " <CJK> " 
               "16r407A"    16r717D " <CJK> " 
               "16r407B"    16r65CB " <CJK> " 
               "16r407C"    16r7A7F " <CJK> " 
               "16r407D"    16r7BAD " <CJK> " 
               "16r407E"    16r7DDA " <CJK> " 
               ) at:(code - 16r4020).
        ].
        code <= 16r4120 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r417E ifTrue:[
            ^ #(
               "16r4121"    16r7E4A " <CJK> " 
               "16r4122"    16r7FA8 " <CJK> " 
               "16r4123"    16r817A " <CJK> " 
               "16r4124"    16r821B " <CJK> " 
               "16r4125"    16r8239 " <CJK> " 
               "16r4126"    16r85A6 " <CJK> " 
               "16r4127"    16r8A6E " <CJK> " 
               "16r4128"    16r8CCE " <CJK> " 
               "16r4129"    16r8DF5 " <CJK> " 
               "16r412A"    16r9078 " <CJK> " 
               "16r412B"    16r9077 " <CJK> " 
               "16r412C"    16r92AD " <CJK> " 
               "16r412D"    16r9291 " <CJK> " 
               "16r412E"    16r9583 " <CJK> " 
               "16r412F"    16r9BAE " <CJK> " 
               "16r4130"    16r524D " <CJK> " 
               "16r4131"    16r5584 " <CJK> " 
               "16r4132"    16r6F38 " <CJK> " 
               "16r4133"    16r7136 " <CJK> " 
               "16r4134"    16r5168 " <CJK> " 
               "16r4135"    16r7985 " <CJK> " 
               "16r4136"    16r7E55 " <CJK> " 
               "16r4137"    16r81B3 " <CJK> " 
               "16r4138"    16r7CCE " <CJK> " 
               "16r4139"    16r564C " <CJK> " 
               "16r413A"    16r5851 " <CJK> " 
               "16r413B"    16r5CA8 " <CJK> " 
               "16r413C"    16r63AA " <CJK> " 
               "16r413D"    16r66FE " <CJK> " 
               "16r413E"    16r66FD " <CJK> " 
               "16r413F"    16r695A " <CJK> " 
               "16r4140"    16r72D9 " <CJK> " 
               "16r4141"    16r758F " <CJK> " 
               "16r4142"    16r758E " <CJK> " 
               "16r4143"    16r790E " <CJK> " 
               "16r4144"    16r7956 " <CJK> " 
               "16r4145"    16r79DF " <CJK> " 
               "16r4146"    16r7C97 " <CJK> " 
               "16r4147"    16r7D20 " <CJK> " 
               "16r4148"    16r7D44 " <CJK> " 
               "16r4149"    16r8607 " <CJK> " 
               "16r414A"    16r8A34 " <CJK> " 
               "16r414B"    16r963B " <CJK> " 
               "16r414C"    16r9061 " <CJK> " 
               "16r414D"    16r9F20 " <CJK> " 
               "16r414E"    16r50E7 " <CJK> " 
               "16r414F"    16r5275 " <CJK> " 
               "16r4150"    16r53CC " <CJK> " 
               "16r4151"    16r53E2 " <CJK> " 
               "16r4152"    16r5009 " <CJK> " 
               "16r4153"    16r55AA " <CJK> " 
               "16r4154"    16r58EE " <CJK> " 
               "16r4155"    16r594F " <CJK> " 
               "16r4156"    16r723D " <CJK> " 
               "16r4157"    16r5B8B " <CJK> " 
               "16r4158"    16r5C64 " <CJK> " 
               "16r4159"    16r531D " <CJK> " 
               "16r415A"    16r60E3 " <CJK> " 
               "16r415B"    16r60F3 " <CJK> " 
               "16r415C"    16r635C " <CJK> " 
               "16r415D"    16r6383 " <CJK> " 
               "16r415E"    16r633F " <CJK> " 
               "16r415F"    16r63BB " <CJK> " 
               "16r4160"    16r64CD " <CJK> " 
               "16r4161"    16r65E9 " <CJK> " 
               "16r4162"    16r66F9 " <CJK> " 
               "16r4163"    16r5DE3 " <CJK> " 
               "16r4164"    16r69CD " <CJK> " 
               "16r4165"    16r69FD " <CJK> " 
               "16r4166"    16r6F15 " <CJK> " 
               "16r4167"    16r71E5 " <CJK> " 
               "16r4168"    16r4E89 " <CJK> " 
               "16r4169"    16r75E9 " <CJK> " 
               "16r416A"    16r76F8 " <CJK> " 
               "16r416B"    16r7A93 " <CJK> " 
               "16r416C"    16r7CDF " <CJK> " 
               "16r416D"    16r7DCF " <CJK> " 
               "16r416E"    16r7D9C " <CJK> " 
               "16r416F"    16r8061 " <CJK> " 
               "16r4170"    16r8349 " <CJK> " 
               "16r4171"    16r8358 " <CJK> " 
               "16r4172"    16r846C " <CJK> " 
               "16r4173"    16r84BC " <CJK> " 
               "16r4174"    16r85FB " <CJK> " 
               "16r4175"    16r88C5 " <CJK> " 
               "16r4176"    16r8D70 " <CJK> " 
               "16r4177"    16r9001 " <CJK> " 
               "16r4178"    16r906D " <CJK> " 
               "16r4179"    16r9397 " <CJK> " 
               "16r417A"    16r971C " <CJK> " 
               "16r417B"    16r9A12 " <CJK> " 
               "16r417C"    16r50CF " <CJK> " 
               "16r417D"    16r5897 " <CJK> " 
               "16r417E"    16r618E " <CJK> " 
               ) at:(code - 16r4120).
        ].
        code <= 16r4220 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r427E ifTrue:[
            ^ #(
               "16r4221"    16r81D3 " <CJK> " 
               "16r4222"    16r8535 " <CJK> " 
               "16r4223"    16r8D08 " <CJK> " 
               "16r4224"    16r9020 " <CJK> " 
               "16r4225"    16r4FC3 " <CJK> " 
               "16r4226"    16r5074 " <CJK> " 
               "16r4227"    16r5247 " <CJK> " 
               "16r4228"    16r5373 " <CJK> " 
               "16r4229"    16r606F " <CJK> " 
               "16r422A"    16r6349 " <CJK> " 
               "16r422B"    16r675F " <CJK> " 
               "16r422C"    16r6E2C " <CJK> " 
               "16r422D"    16r8DB3 " <CJK> " 
               "16r422E"    16r901F " <CJK> " 
               "16r422F"    16r4FD7 " <CJK> " 
               "16r4230"    16r5C5E " <CJK> " 
               "16r4231"    16r8CCA " <CJK> " 
               "16r4232"    16r65CF " <CJK> " 
               "16r4233"    16r7D9A " <CJK> " 
               "16r4234"    16r5352 " <CJK> " 
               "16r4235"    16r8896 " <CJK> " 
               "16r4236"    16r5176 " <CJK> " 
               "16r4237"    16r63C3 " <CJK> " 
               "16r4238"    16r5B58 " <CJK> " 
               "16r4239"    16r5B6B " <CJK> " 
               "16r423A"    16r5C0A " <CJK> " 
               "16r423B"    16r640D " <CJK> " 
               "16r423C"    16r6751 " <CJK> " 
               "16r423D"    16r905C " <CJK> " 
               "16r423E"    16r4ED6 " <CJK> " 
               "16r423F"    16r591A " <CJK> " 
               "16r4240"    16r592A " <CJK> " 
               "16r4241"    16r6C70 " <CJK> " 
               "16r4242"    16r8A51 " <CJK> " 
               "16r4243"    16r553E " <CJK> " 
               "16r4244"    16r5815 " <CJK> " 
               "16r4245"    16r59A5 " <CJK> " 
               "16r4246"    16r60F0 " <CJK> " 
               "16r4247"    16r6253 " <CJK> " 
               "16r4248"    16r67C1 " <CJK> " 
               "16r4249"    16r8235 " <CJK> " 
               "16r424A"    16r6955 " <CJK> " 
               "16r424B"    16r9640 " <CJK> " 
               "16r424C"    16r99C4 " <CJK> " 
               "16r424D"    16r9A28 " <CJK> " 
               "16r424E"    16r4F53 " <CJK> " 
               "16r424F"    16r5806 " <CJK> " 
               "16r4250"    16r5BFE " <CJK> " 
               "16r4251"    16r8010 " <CJK> " 
               "16r4252"    16r5CB1 " <CJK> " 
               "16r4253"    16r5E2F " <CJK> " 
               "16r4254"    16r5F85 " <CJK> " 
               "16r4255"    16r6020 " <CJK> " 
               "16r4256"    16r614B " <CJK> " 
               "16r4257"    16r6234 " <CJK> " 
               "16r4258"    16r66FF " <CJK> " 
               "16r4259"    16r6CF0 " <CJK> " 
               "16r425A"    16r6EDE " <CJK> " 
               "16r425B"    16r80CE " <CJK> " 
               "16r425C"    16r817F " <CJK> " 
               "16r425D"    16r82D4 " <CJK> " 
               "16r425E"    16r888B " <CJK> " 
               "16r425F"    16r8CB8 " <CJK> " 
               "16r4260"    16r9000 " <CJK> " 
               "16r4261"    16r902E " <CJK> " 
               "16r4262"    16r968A " <CJK> " 
               "16r4263"    16r9EDB " <CJK> " 
               "16r4264"    16r9BDB " <CJK> " 
               "16r4265"    16r4EE3 " <CJK> " 
               "16r4266"    16r53F0 " <CJK> " 
               "16r4267"    16r5927 " <CJK> " 
               "16r4268"    16r7B2C " <CJK> " 
               "16r4269"    16r918D " <CJK> " 
               "16r426A"    16r984C " <CJK> " 
               "16r426B"    16r9DF9 " <CJK> " 
               "16r426C"    16r6EDD " <CJK> " 
               "16r426D"    16r7027 " <CJK> " 
               "16r426E"    16r5353 " <CJK> " 
               "16r426F"    16r5544 " <CJK> " 
               "16r4270"    16r5B85 " <CJK> " 
               "16r4271"    16r6258 " <CJK> " 
               "16r4272"    16r629E " <CJK> " 
               "16r4273"    16r62D3 " <CJK> " 
               "16r4274"    16r6CA2 " <CJK> " 
               "16r4275"    16r6FEF " <CJK> " 
               "16r4276"    16r7422 " <CJK> " 
               "16r4277"    16r8A17 " <CJK> " 
               "16r4278"    16r9438 " <CJK> " 
               "16r4279"    16r6FC1 " <CJK> " 
               "16r427A"    16r8AFE " <CJK> " 
               "16r427B"    16r8338 " <CJK> " 
               "16r427C"    16r51E7 " <CJK> " 
               "16r427D"    16r86F8 " <CJK> " 
               "16r427E"    16r53EA " <CJK> " 
               ) at:(code - 16r4220).
        ].
        code <= 16r4320 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r437E ifTrue:[
            ^ #(
               "16r4321"    16r53E9 " <CJK> " 
               "16r4322"    16r4F46 " <CJK> " 
               "16r4323"    16r9054 " <CJK> " 
               "16r4324"    16r8FB0 " <CJK> " 
               "16r4325"    16r596A " <CJK> " 
               "16r4326"    16r8131 " <CJK> " 
               "16r4327"    16r5DFD " <CJK> " 
               "16r4328"    16r7AEA " <CJK> " 
               "16r4329"    16r8FBF " <CJK> " 
               "16r432A"    16r68DA " <CJK> " 
               "16r432B"    16r8C37 " <CJK> " 
               "16r432C"    16r72F8 " <CJK> " 
               "16r432D"    16r9C48 " <CJK> " 
               "16r432E"    16r6A3D " <CJK> " 
               "16r432F"    16r8AB0 " <CJK> " 
               "16r4330"    16r4E39 " <CJK> " 
               "16r4331"    16r5358 " <CJK> " 
               "16r4332"    16r5606 " <CJK> " 
               "16r4333"    16r5766 " <CJK> " 
               "16r4334"    16r62C5 " <CJK> " 
               "16r4335"    16r63A2 " <CJK> " 
               "16r4336"    16r65E6 " <CJK> " 
               "16r4337"    16r6B4E " <CJK> " 
               "16r4338"    16r6DE1 " <CJK> " 
               "16r4339"    16r6E5B " <CJK> " 
               "16r433A"    16r70AD " <CJK> " 
               "16r433B"    16r77ED " <CJK> " 
               "16r433C"    16r7AEF " <CJK> " 
               "16r433D"    16r7BAA " <CJK> " 
               "16r433E"    16r7DBB " <CJK> " 
               "16r433F"    16r803D " <CJK> " 
               "16r4340"    16r80C6 " <CJK> " 
               "16r4341"    16r86CB " <CJK> " 
               "16r4342"    16r8A95 " <CJK> " 
               "16r4343"    16r935B " <CJK> " 
               "16r4344"    16r56E3 " <CJK> " 
               "16r4345"    16r58C7 " <CJK> " 
               "16r4346"    16r5F3E " <CJK> " 
               "16r4347"    16r65AD " <CJK> " 
               "16r4348"    16r6696 " <CJK> " 
               "16r4349"    16r6A80 " <CJK> " 
               "16r434A"    16r6BB5 " <CJK> " 
               "16r434B"    16r7537 " <CJK> " 
               "16r434C"    16r8AC7 " <CJK> " 
               "16r434D"    16r5024 " <CJK> " 
               "16r434E"    16r77E5 " <CJK> " 
               "16r434F"    16r5730 " <CJK> " 
               "16r4350"    16r5F1B " <CJK> " 
               "16r4351"    16r6065 " <CJK> " 
               "16r4352"    16r667A " <CJK> " 
               "16r4353"    16r6C60 " <CJK> " 
               "16r4354"    16r75F4 " <CJK> " 
               "16r4355"    16r7A1A " <CJK> " 
               "16r4356"    16r7F6E " <CJK> " 
               "16r4357"    16r81F4 " <CJK> " 
               "16r4358"    16r8718 " <CJK> " 
               "16r4359"    16r9045 " <CJK> " 
               "16r435A"    16r99B3 " <CJK> " 
               "16r435B"    16r7BC9 " <CJK> " 
               "16r435C"    16r755C " <CJK> " 
               "16r435D"    16r7AF9 " <CJK> " 
               "16r435E"    16r7B51 " <CJK> " 
               "16r435F"    16r84C4 " <CJK> " 
               "16r4360"    16r9010 " <CJK> " 
               "16r4361"    16r79E9 " <CJK> " 
               "16r4362"    16r7A92 " <CJK> " 
               "16r4363"    16r8336 " <CJK> " 
               "16r4364"    16r5AE1 " <CJK> " 
               "16r4365"    16r7740 " <CJK> " 
               "16r4366"    16r4E2D " <CJK> " 
               "16r4367"    16r4EF2 " <CJK> " 
               "16r4368"    16r5B99 " <CJK> " 
               "16r4369"    16r5FE0 " <CJK> " 
               "16r436A"    16r62BD " <CJK> " 
               "16r436B"    16r663C " <CJK> " 
               "16r436C"    16r67F1 " <CJK> " 
               "16r436D"    16r6CE8 " <CJK> " 
               "16r436E"    16r866B " <CJK> " 
               "16r436F"    16r8877 " <CJK> " 
               "16r4370"    16r8A3B " <CJK> " 
               "16r4371"    16r914E " <CJK> " 
               "16r4372"    16r92F3 " <CJK> " 
               "16r4373"    16r99D0 " <CJK> " 
               "16r4374"    16r6A17 " <CJK> " 
               "16r4375"    16r7026 " <CJK> " 
               "16r4376"    16r732A " <CJK> " 
               "16r4377"    16r82E7 " <CJK> " 
               "16r4378"    16r8457 " <CJK> " 
               "16r4379"    16r8CAF " <CJK> " 
               "16r437A"    16r4E01 " <CJK> " 
               "16r437B"    16r5146 " <CJK> " 
               "16r437C"    16r51CB " <CJK> " 
               "16r437D"    16r558B " <CJK> " 
               "16r437E"    16r5BF5 " <CJK> " 
               ) at:(code - 16r4320).
        ].
        code <= 16r4420 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r447E ifTrue:[
            ^ #(
               "16r4421"    16r5E16 " <CJK> " 
               "16r4422"    16r5E33 " <CJK> " 
               "16r4423"    16r5E81 " <CJK> " 
               "16r4424"    16r5F14 " <CJK> " 
               "16r4425"    16r5F35 " <CJK> " 
               "16r4426"    16r5F6B " <CJK> " 
               "16r4427"    16r5FB4 " <CJK> " 
               "16r4428"    16r61F2 " <CJK> " 
               "16r4429"    16r6311 " <CJK> " 
               "16r442A"    16r66A2 " <CJK> " 
               "16r442B"    16r671D " <CJK> " 
               "16r442C"    16r6F6E " <CJK> " 
               "16r442D"    16r7252 " <CJK> " 
               "16r442E"    16r753A " <CJK> " 
               "16r442F"    16r773A " <CJK> " 
               "16r4430"    16r8074 " <CJK> " 
               "16r4431"    16r8139 " <CJK> " 
               "16r4432"    16r8178 " <CJK> " 
               "16r4433"    16r8776 " <CJK> " 
               "16r4434"    16r8ABF " <CJK> " 
               "16r4435"    16r8ADC " <CJK> " 
               "16r4436"    16r8D85 " <CJK> " 
               "16r4437"    16r8DF3 " <CJK> " 
               "16r4438"    16r929A " <CJK> " 
               "16r4439"    16r9577 " <CJK> " 
               "16r443A"    16r9802 " <CJK> " 
               "16r443B"    16r9CE5 " <CJK> " 
               "16r443C"    16r52C5 " <CJK> " 
               "16r443D"    16r6357 " <CJK> " 
               "16r443E"    16r76F4 " <CJK> " 
               "16r443F"    16r6715 " <CJK> " 
               "16r4440"    16r6C88 " <CJK> " 
               "16r4441"    16r73CD " <CJK> " 
               "16r4442"    16r8CC3 " <CJK> " 
               "16r4443"    16r93AE " <CJK> " 
               "16r4444"    16r9673 " <CJK> " 
               "16r4445"    16r6D25 " <CJK> " 
               "16r4446"    16r589C " <CJK> " 
               "16r4447"    16r690E " <CJK> " 
               "16r4448"    16r69CC " <CJK> " 
               "16r4449"    16r8FFD " <CJK> " 
               "16r444A"    16r939A " <CJK> " 
               "16r444B"    16r75DB " <CJK> " 
               "16r444C"    16r901A " <CJK> " 
               "16r444D"    16r585A " <CJK> " 
               "16r444E"    16r6802 " <CJK> " 
               "16r444F"    16r63B4 " <CJK> " 
               "16r4450"    16r69FB " <CJK> " 
               "16r4451"    16r4F43 " <CJK> " 
               "16r4452"    16r6F2C " <CJK> " 
               "16r4453"    16r67D8 " <CJK> " 
               "16r4454"    16r8FBB " <CJK> " 
               "16r4455"    16r8526 " <CJK> " 
               "16r4456"    16r7DB4 " <CJK> " 
               "16r4457"    16r9354 " <CJK> " 
               "16r4458"    16r693F " <CJK> " 
               "16r4459"    16r6F70 " <CJK> " 
               "16r445A"    16r576A " <CJK> " 
               "16r445B"    16r58F7 " <CJK> " 
               "16r445C"    16r5B2C " <CJK> " 
               "16r445D"    16r7D2C " <CJK> " 
               "16r445E"    16r722A " <CJK> " 
               "16r445F"    16r540A " <CJK> " 
               "16r4460"    16r91E3 " <CJK> " 
               "16r4461"    16r9DB4 " <CJK> " 
               "16r4462"    16r4EAD " <CJK> " 
               "16r4463"    16r4F4E " <CJK> " 
               "16r4464"    16r505C " <CJK> " 
               "16r4465"    16r5075 " <CJK> " 
               "16r4466"    16r5243 " <CJK> " 
               "16r4467"    16r8C9E " <CJK> " 
               "16r4468"    16r5448 " <CJK> " 
               "16r4469"    16r5824 " <CJK> " 
               "16r446A"    16r5B9A " <CJK> " 
               "16r446B"    16r5E1D " <CJK> " 
               "16r446C"    16r5E95 " <CJK> " 
               "16r446D"    16r5EAD " <CJK> " 
               "16r446E"    16r5EF7 " <CJK> " 
               "16r446F"    16r5F1F " <CJK> " 
               "16r4470"    16r608C " <CJK> " 
               "16r4471"    16r62B5 " <CJK> " 
               "16r4472"    16r633A " <CJK> " 
               "16r4473"    16r63D0 " <CJK> " 
               "16r4474"    16r68AF " <CJK> " 
               "16r4475"    16r6C40 " <CJK> " 
               "16r4476"    16r7887 " <CJK> " 
               "16r4477"    16r798E " <CJK> " 
               "16r4478"    16r7A0B " <CJK> " 
               "16r4479"    16r7DE0 " <CJK> " 
               "16r447A"    16r8247 " <CJK> " 
               "16r447B"    16r8A02 " <CJK> " 
               "16r447C"    16r8AE6 " <CJK> " 
               "16r447D"    16r8E44 " <CJK> " 
               "16r447E"    16r9013 " <CJK> " 
               ) at:(code - 16r4420).
        ].
        code <= 16r4520 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r457E ifTrue:[
            ^ #(
               "16r4521"    16r90B8 " <CJK> " 
               "16r4522"    16r912D " <CJK> " 
               "16r4523"    16r91D8 " <CJK> " 
               "16r4524"    16r9F0E " <CJK> " 
               "16r4525"    16r6CE5 " <CJK> " 
               "16r4526"    16r6458 " <CJK> " 
               "16r4527"    16r64E2 " <CJK> " 
               "16r4528"    16r6575 " <CJK> " 
               "16r4529"    16r6EF4 " <CJK> " 
               "16r452A"    16r7684 " <CJK> " 
               "16r452B"    16r7B1B " <CJK> " 
               "16r452C"    16r9069 " <CJK> " 
               "16r452D"    16r93D1 " <CJK> " 
               "16r452E"    16r6EBA " <CJK> " 
               "16r452F"    16r54F2 " <CJK> " 
               "16r4530"    16r5FB9 " <CJK> " 
               "16r4531"    16r64A4 " <CJK> " 
               "16r4532"    16r8F4D " <CJK> " 
               "16r4533"    16r8FED " <CJK> " 
               "16r4534"    16r9244 " <CJK> " 
               "16r4535"    16r5178 " <CJK> " 
               "16r4536"    16r586B " <CJK> " 
               "16r4537"    16r5929 " <CJK> " 
               "16r4538"    16r5C55 " <CJK> " 
               "16r4539"    16r5E97 " <CJK> " 
               "16r453A"    16r6DFB " <CJK> " 
               "16r453B"    16r7E8F " <CJK> " 
               "16r453C"    16r751C " <CJK> " 
               "16r453D"    16r8CBC " <CJK> " 
               "16r453E"    16r8EE2 " <CJK> " 
               "16r453F"    16r985B " <CJK> " 
               "16r4540"    16r70B9 " <CJK> " 
               "16r4541"    16r4F1D " <CJK> " 
               "16r4542"    16r6BBF " <CJK> " 
               "16r4543"    16r6FB1 " <CJK> " 
               "16r4544"    16r7530 " <CJK> " 
               "16r4545"    16r96FB " <CJK> " 
               "16r4546"    16r514E " <CJK> " 
               "16r4547"    16r5410 " <CJK> " 
               "16r4548"    16r5835 " <CJK> " 
               "16r4549"    16r5857 " <CJK> " 
               "16r454A"    16r59AC " <CJK> " 
               "16r454B"    16r5C60 " <CJK> " 
               "16r454C"    16r5F92 " <CJK> " 
               "16r454D"    16r6597 " <CJK> " 
               "16r454E"    16r675C " <CJK> " 
               "16r454F"    16r6E21 " <CJK> " 
               "16r4550"    16r767B " <CJK> " 
               "16r4551"    16r83DF " <CJK> " 
               "16r4552"    16r8CED " <CJK> " 
               "16r4553"    16r9014 " <CJK> " 
               "16r4554"    16r90FD " <CJK> " 
               "16r4555"    16r934D " <CJK> " 
               "16r4556"    16r7825 " <CJK> " 
               "16r4557"    16r783A " <CJK> " 
               "16r4558"    16r52AA " <CJK> " 
               "16r4559"    16r5EA6 " <CJK> " 
               "16r455A"    16r571F " <CJK> " 
               "16r455B"    16r5974 " <CJK> " 
               "16r455C"    16r6012 " <CJK> " 
               "16r455D"    16r5012 " <CJK> " 
               "16r455E"    16r515A " <CJK> " 
               "16r455F"    16r51AC " <CJK> " 
               "16r4560"    16r51CD " <CJK> " 
               "16r4561"    16r5200 " <CJK> " 
               "16r4562"    16r5510 " <CJK> " 
               "16r4563"    16r5854 " <CJK> " 
               "16r4564"    16r5858 " <CJK> " 
               "16r4565"    16r5957 " <CJK> " 
               "16r4566"    16r5B95 " <CJK> " 
               "16r4567"    16r5CF6 " <CJK> " 
               "16r4568"    16r5D8B " <CJK> " 
               "16r4569"    16r60BC " <CJK> " 
               "16r456A"    16r6295 " <CJK> " 
               "16r456B"    16r642D " <CJK> " 
               "16r456C"    16r6771 " <CJK> " 
               "16r456D"    16r6843 " <CJK> " 
               "16r456E"    16r68BC " <CJK> " 
               "16r456F"    16r68DF " <CJK> " 
               "16r4570"    16r76D7 " <CJK> " 
               "16r4571"    16r6DD8 " <CJK> " 
               "16r4572"    16r6E6F " <CJK> " 
               "16r4573"    16r6D9B " <CJK> " 
               "16r4574"    16r706F " <CJK> " 
               "16r4575"    16r71C8 " <CJK> " 
               "16r4576"    16r5F53 " <CJK> " 
               "16r4577"    16r75D8 " <CJK> " 
               "16r4578"    16r7977 " <CJK> " 
               "16r4579"    16r7B49 " <CJK> " 
               "16r457A"    16r7B54 " <CJK> " 
               "16r457B"    16r7B52 " <CJK> " 
               "16r457C"    16r7CD6 " <CJK> " 
               "16r457D"    16r7D71 " <CJK> " 
               "16r457E"    16r5230 " <CJK> " 
               ) at:(code - 16r4520).
        ].
        code <= 16r4620 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r467E ifTrue:[
            ^ #(
               "16r4621"    16r8463 " <CJK> " 
               "16r4622"    16r8569 " <CJK> " 
               "16r4623"    16r85E4 " <CJK> " 
               "16r4624"    16r8A0E " <CJK> " 
               "16r4625"    16r8B04 " <CJK> " 
               "16r4626"    16r8C46 " <CJK> " 
               "16r4627"    16r8E0F " <CJK> " 
               "16r4628"    16r9003 " <CJK> " 
               "16r4629"    16r900F " <CJK> " 
               "16r462A"    16r9419 " <CJK> " 
               "16r462B"    16r9676 " <CJK> " 
               "16r462C"    16r982D " <CJK> " 
               "16r462D"    16r9A30 " <CJK> " 
               "16r462E"    16r95D8 " <CJK> " 
               "16r462F"    16r50CD " <CJK> " 
               "16r4630"    16r52D5 " <CJK> " 
               "16r4631"    16r540C " <CJK> " 
               "16r4632"    16r5802 " <CJK> " 
               "16r4633"    16r5C0E " <CJK> " 
               "16r4634"    16r61A7 " <CJK> " 
               "16r4635"    16r649E " <CJK> " 
               "16r4636"    16r6D1E " <CJK> " 
               "16r4637"    16r77B3 " <CJK> " 
               "16r4638"    16r7AE5 " <CJK> " 
               "16r4639"    16r80F4 " <CJK> " 
               "16r463A"    16r8404 " <CJK> " 
               "16r463B"    16r9053 " <CJK> " 
               "16r463C"    16r9285 " <CJK> " 
               "16r463D"    16r5CE0 " <CJK> " 
               "16r463E"    16r9D07 " <CJK> " 
               "16r463F"    16r533F " <CJK> " 
               "16r4640"    16r5F97 " <CJK> " 
               "16r4641"    16r5FB3 " <CJK> " 
               "16r4642"    16r6D9C " <CJK> " 
               "16r4643"    16r7279 " <CJK> " 
               "16r4644"    16r7763 " <CJK> " 
               "16r4645"    16r79BF " <CJK> " 
               "16r4646"    16r7BE4 " <CJK> " 
               "16r4647"    16r6BD2 " <CJK> " 
               "16r4648"    16r72EC " <CJK> " 
               "16r4649"    16r8AAD " <CJK> " 
               "16r464A"    16r6803 " <CJK> " 
               "16r464B"    16r6A61 " <CJK> " 
               "16r464C"    16r51F8 " <CJK> " 
               "16r464D"    16r7A81 " <CJK> " 
               "16r464E"    16r6934 " <CJK> " 
               "16r464F"    16r5C4A " <CJK> " 
               "16r4650"    16r9CF6 " <CJK> " 
               "16r4651"    16r82EB " <CJK> " 
               "16r4652"    16r5BC5 " <CJK> " 
               "16r4653"    16r9149 " <CJK> " 
               "16r4654"    16r701E " <CJK> " 
               "16r4655"    16r5678 " <CJK> " 
               "16r4656"    16r5C6F " <CJK> " 
               "16r4657"    16r60C7 " <CJK> " 
               "16r4658"    16r6566 " <CJK> " 
               "16r4659"    16r6C8C " <CJK> " 
               "16r465A"    16r8C5A " <CJK> " 
               "16r465B"    16r9041 " <CJK> " 
               "16r465C"    16r9813 " <CJK> " 
               "16r465D"    16r5451 " <CJK> " 
               "16r465E"    16r66C7 " <CJK> " 
               "16r465F"    16r920D " <CJK> " 
               "16r4660"    16r5948 " <CJK> " 
               "16r4661"    16r90A3 " <CJK> " 
               "16r4662"    16r5185 " <CJK> " 
               "16r4663"    16r4E4D " <CJK> " 
               "16r4664"    16r51EA " <CJK> " 
               "16r4665"    16r8599 " <CJK> " 
               "16r4666"    16r8B0E " <CJK> " 
               "16r4667"    16r7058 " <CJK> " 
               "16r4668"    16r637A " <CJK> " 
               "16r4669"    16r934B " <CJK> " 
               "16r466A"    16r6962 " <CJK> " 
               "16r466B"    16r99B4 " <CJK> " 
               "16r466C"    16r7E04 " <CJK> " 
               "16r466D"    16r7577 " <CJK> " 
               "16r466E"    16r5357 " <CJK> " 
               "16r466F"    16r6960 " <CJK> " 
               "16r4670"    16r8EDF " <CJK> " 
               "16r4671"    16r96E3 " <CJK> " 
               "16r4672"    16r6C5D " <CJK> " 
               "16r4673"    16r4E8C " <CJK> " 
               "16r4674"    16r5C3C " <CJK> " 
               "16r4675"    16r5F10 " <CJK> " 
               "16r4676"    16r8FE9 " <CJK> " 
               "16r4677"    16r5302 " <CJK> " 
               "16r4678"    16r8CD1 " <CJK> " 
               "16r4679"    16r8089 " <CJK> " 
               "16r467A"    16r8679 " <CJK> " 
               "16r467B"    16r5EFF " <CJK> " 
               "16r467C"    16r65E5 " <CJK> " 
               "16r467D"    16r4E73 " <CJK> " 
               "16r467E"    16r5165 " <CJK> " 
               ) at:(code - 16r4620).
        ].
        code <= 16r4720 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r477E ifTrue:[
            ^ #(
               "16r4721"    16r5982 " <CJK> " 
               "16r4722"    16r5C3F " <CJK> " 
               "16r4723"    16r97EE " <CJK> " 
               "16r4724"    16r4EFB " <CJK> " 
               "16r4725"    16r598A " <CJK> " 
               "16r4726"    16r5FCD " <CJK> " 
               "16r4727"    16r8A8D " <CJK> " 
               "16r4728"    16r6FE1 " <CJK> " 
               "16r4729"    16r79B0 " <CJK> " 
               "16r472A"    16r7962 " <CJK> " 
               "16r472B"    16r5BE7 " <CJK> " 
               "16r472C"    16r8471 " <CJK> " 
               "16r472D"    16r732B " <CJK> " 
               "16r472E"    16r71B1 " <CJK> " 
               "16r472F"    16r5E74 " <CJK> " 
               "16r4730"    16r5FF5 " <CJK> " 
               "16r4731"    16r637B " <CJK> " 
               "16r4732"    16r649A " <CJK> " 
               "16r4733"    16r71C3 " <CJK> " 
               "16r4734"    16r7C98 " <CJK> " 
               "16r4735"    16r4E43 " <CJK> " 
               "16r4736"    16r5EFC " <CJK> " 
               "16r4737"    16r4E4B " <CJK> " 
               "16r4738"    16r57DC " <CJK> " 
               "16r4739"    16r56A2 " <CJK> " 
               "16r473A"    16r60A9 " <CJK> " 
               "16r473B"    16r6FC3 " <CJK> " 
               "16r473C"    16r7D0D " <CJK> " 
               "16r473D"    16r80FD " <CJK> " 
               "16r473E"    16r8133 " <CJK> " 
               "16r473F"    16r81BF " <CJK> " 
               "16r4740"    16r8FB2 " <CJK> " 
               "16r4741"    16r8997 " <CJK> " 
               "16r4742"    16r86A4 " <CJK> " 
               "16r4743"    16r5DF4 " <CJK> " 
               "16r4744"    16r628A " <CJK> " 
               "16r4745"    16r64AD " <CJK> " 
               "16r4746"    16r8987 " <CJK> " 
               "16r4747"    16r6777 " <CJK> " 
               "16r4748"    16r6CE2 " <CJK> " 
               "16r4749"    16r6D3E " <CJK> " 
               "16r474A"    16r7436 " <CJK> " 
               "16r474B"    16r7834 " <CJK> " 
               "16r474C"    16r5A46 " <CJK> " 
               "16r474D"    16r7F75 " <CJK> " 
               "16r474E"    16r82AD " <CJK> " 
               "16r474F"    16r99AC " <CJK> " 
               "16r4750"    16r4FF3 " <CJK> " 
               "16r4751"    16r5EC3 " <CJK> " 
               "16r4752"    16r62DD " <CJK> " 
               "16r4753"    16r6392 " <CJK> " 
               "16r4754"    16r6557 " <CJK> " 
               "16r4755"    16r676F " <CJK> " 
               "16r4756"    16r76C3 " <CJK> " 
               "16r4757"    16r724C " <CJK> " 
               "16r4758"    16r80CC " <CJK> " 
               "16r4759"    16r80BA " <CJK> " 
               "16r475A"    16r8F29 " <CJK> " 
               "16r475B"    16r914D " <CJK> " 
               "16r475C"    16r500D " <CJK> " 
               "16r475D"    16r57F9 " <CJK> " 
               "16r475E"    16r5A92 " <CJK> " 
               "16r475F"    16r6885 " <CJK> " 
               "16r4760"    16r6973 " <CJK> " 
               "16r4761"    16r7164 " <CJK> " 
               "16r4762"    16r72FD " <CJK> " 
               "16r4763"    16r8CB7 " <CJK> " 
               "16r4764"    16r58F2 " <CJK> " 
               "16r4765"    16r8CE0 " <CJK> " 
               "16r4766"    16r966A " <CJK> " 
               "16r4767"    16r9019 " <CJK> " 
               "16r4768"    16r877F " <CJK> " 
               "16r4769"    16r79E4 " <CJK> " 
               "16r476A"    16r77E7 " <CJK> " 
               "16r476B"    16r8429 " <CJK> " 
               "16r476C"    16r4F2F " <CJK> " 
               "16r476D"    16r5265 " <CJK> " 
               "16r476E"    16r535A " <CJK> " 
               "16r476F"    16r62CD " <CJK> " 
               "16r4770"    16r67CF " <CJK> " 
               "16r4771"    16r6CCA " <CJK> " 
               "16r4772"    16r767D " <CJK> " 
               "16r4773"    16r7B94 " <CJK> " 
               "16r4774"    16r7C95 " <CJK> " 
               "16r4775"    16r8236 " <CJK> " 
               "16r4776"    16r8584 " <CJK> " 
               "16r4777"    16r8FEB " <CJK> " 
               "16r4778"    16r66DD " <CJK> " 
               "16r4779"    16r6F20 " <CJK> " 
               "16r477A"    16r7206 " <CJK> " 
               "16r477B"    16r7E1B " <CJK> " 
               "16r477C"    16r83AB " <CJK> " 
               "16r477D"    16r99C1 " <CJK> " 
               "16r477E"    16r9EA6 " <CJK> " 
               ) at:(code - 16r4720).
        ].
        code <= 16r4820 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r487E ifTrue:[
            ^ #(
               "16r4821"    16r51FD " <CJK> " 
               "16r4822"    16r7BB1 " <CJK> " 
               "16r4823"    16r7872 " <CJK> " 
               "16r4824"    16r7BB8 " <CJK> " 
               "16r4825"    16r8087 " <CJK> " 
               "16r4826"    16r7B48 " <CJK> " 
               "16r4827"    16r6AE8 " <CJK> " 
               "16r4828"    16r5E61 " <CJK> " 
               "16r4829"    16r808C " <CJK> " 
               "16r482A"    16r7551 " <CJK> " 
               "16r482B"    16r7560 " <CJK> " 
               "16r482C"    16r516B " <CJK> " 
               "16r482D"    16r9262 " <CJK> " 
               "16r482E"    16r6E8C " <CJK> " 
               "16r482F"    16r767A " <CJK> " 
               "16r4830"    16r9197 " <CJK> " 
               "16r4831"    16r9AEA " <CJK> " 
               "16r4832"    16r4F10 " <CJK> " 
               "16r4833"    16r7F70 " <CJK> " 
               "16r4834"    16r629C " <CJK> " 
               "16r4835"    16r7B4F " <CJK> " 
               "16r4836"    16r95A5 " <CJK> " 
               "16r4837"    16r9CE9 " <CJK> " 
               "16r4838"    16r567A " <CJK> " 
               "16r4839"    16r5859 " <CJK> " 
               "16r483A"    16r86E4 " <CJK> " 
               "16r483B"    16r96BC " <CJK> " 
               "16r483C"    16r4F34 " <CJK> " 
               "16r483D"    16r5224 " <CJK> " 
               "16r483E"    16r534A " <CJK> " 
               "16r483F"    16r53CD " <CJK> " 
               "16r4840"    16r53DB " <CJK> " 
               "16r4841"    16r5E06 " <CJK> " 
               "16r4842"    16r642C " <CJK> " 
               "16r4843"    16r6591 " <CJK> " 
               "16r4844"    16r677F " <CJK> " 
               "16r4845"    16r6C3E " <CJK> " 
               "16r4846"    16r6C4E " <CJK> " 
               "16r4847"    16r7248 " <CJK> " 
               "16r4848"    16r72AF " <CJK> " 
               "16r4849"    16r73ED " <CJK> " 
               "16r484A"    16r7554 " <CJK> " 
               "16r484B"    16r7E41 " <CJK> " 
               "16r484C"    16r822C " <CJK> " 
               "16r484D"    16r85E9 " <CJK> " 
               "16r484E"    16r8CA9 " <CJK> " 
               "16r484F"    16r7BC4 " <CJK> " 
               "16r4850"    16r91C6 " <CJK> " 
               "16r4851"    16r7169 " <CJK> " 
               "16r4852"    16r9812 " <CJK> " 
               "16r4853"    16r98EF " <CJK> " 
               "16r4854"    16r633D " <CJK> " 
               "16r4855"    16r6669 " <CJK> " 
               "16r4856"    16r756A " <CJK> " 
               "16r4857"    16r76E4 " <CJK> " 
               "16r4858"    16r78D0 " <CJK> " 
               "16r4859"    16r8543 " <CJK> " 
               "16r485A"    16r86EE " <CJK> " 
               "16r485B"    16r532A " <CJK> " 
               "16r485C"    16r5351 " <CJK> " 
               "16r485D"    16r5426 " <CJK> " 
               "16r485E"    16r5983 " <CJK> " 
               "16r485F"    16r5E87 " <CJK> " 
               "16r4860"    16r5F7C " <CJK> " 
               "16r4861"    16r60B2 " <CJK> " 
               "16r4862"    16r6249 " <CJK> " 
               "16r4863"    16r6279 " <CJK> " 
               "16r4864"    16r62AB " <CJK> " 
               "16r4865"    16r6590 " <CJK> " 
               "16r4866"    16r6BD4 " <CJK> " 
               "16r4867"    16r6CCC " <CJK> " 
               "16r4868"    16r75B2 " <CJK> " 
               "16r4869"    16r76AE " <CJK> " 
               "16r486A"    16r7891 " <CJK> " 
               "16r486B"    16r79D8 " <CJK> " 
               "16r486C"    16r7DCB " <CJK> " 
               "16r486D"    16r7F77 " <CJK> " 
               "16r486E"    16r80A5 " <CJK> " 
               "16r486F"    16r88AB " <CJK> " 
               "16r4870"    16r8AB9 " <CJK> " 
               "16r4871"    16r8CBB " <CJK> " 
               "16r4872"    16r907F " <CJK> " 
               "16r4873"    16r975E " <CJK> " 
               "16r4874"    16r98DB " <CJK> " 
               "16r4875"    16r6A0B " <CJK> " 
               "16r4876"    16r7C38 " <CJK> " 
               "16r4877"    16r5099 " <CJK> " 
               "16r4878"    16r5C3E " <CJK> " 
               "16r4879"    16r5FAE " <CJK> " 
               "16r487A"    16r6787 " <CJK> " 
               "16r487B"    16r6BD8 " <CJK> " 
               "16r487C"    16r7435 " <CJK> " 
               "16r487D"    16r7709 " <CJK> " 
               "16r487E"    16r7F8E " <CJK> " 
               ) at:(code - 16r4820).
        ].
        code <= 16r4920 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r497E ifTrue:[
            ^ #(
               "16r4921"    16r9F3B " <CJK> " 
               "16r4922"    16r67CA " <CJK> " 
               "16r4923"    16r7A17 " <CJK> " 
               "16r4924"    16r5339 " <CJK> " 
               "16r4925"    16r758B " <CJK> " 
               "16r4926"    16r9AED " <CJK> " 
               "16r4927"    16r5F66 " <CJK> " 
               "16r4928"    16r819D " <CJK> " 
               "16r4929"    16r83F1 " <CJK> " 
               "16r492A"    16r8098 " <CJK> " 
               "16r492B"    16r5F3C " <CJK> " 
               "16r492C"    16r5FC5 " <CJK> " 
               "16r492D"    16r7562 " <CJK> " 
               "16r492E"    16r7B46 " <CJK> " 
               "16r492F"    16r903C " <CJK> " 
               "16r4930"    16r6867 " <CJK> " 
               "16r4931"    16r59EB " <CJK> " 
               "16r4932"    16r5A9B " <CJK> " 
               "16r4933"    16r7D10 " <CJK> " 
               "16r4934"    16r767E " <CJK> " 
               "16r4935"    16r8B2C " <CJK> " 
               "16r4936"    16r4FF5 " <CJK> " 
               "16r4937"    16r5F6A " <CJK> " 
               "16r4938"    16r6A19 " <CJK> " 
               "16r4939"    16r6C37 " <CJK> " 
               "16r493A"    16r6F02 " <CJK> " 
               "16r493B"    16r74E2 " <CJK> " 
               "16r493C"    16r7968 " <CJK> " 
               "16r493D"    16r8868 " <CJK> " 
               "16r493E"    16r8A55 " <CJK> " 
               "16r493F"    16r8C79 " <CJK> " 
               "16r4940"    16r5EDF " <CJK> " 
               "16r4941"    16r63CF " <CJK> " 
               "16r4942"    16r75C5 " <CJK> " 
               "16r4943"    16r79D2 " <CJK> " 
               "16r4944"    16r82D7 " <CJK> " 
               "16r4945"    16r9328 " <CJK> " 
               "16r4946"    16r92F2 " <CJK> " 
               "16r4947"    16r849C " <CJK> " 
               "16r4948"    16r86ED " <CJK> " 
               "16r4949"    16r9C2D " <CJK> " 
               "16r494A"    16r54C1 " <CJK> " 
               "16r494B"    16r5F6C " <CJK> " 
               "16r494C"    16r658C " <CJK> " 
               "16r494D"    16r6D5C " <CJK> " 
               "16r494E"    16r7015 " <CJK> " 
               "16r494F"    16r8CA7 " <CJK> " 
               "16r4950"    16r8CD3 " <CJK> " 
               "16r4951"    16r983B " <CJK> " 
               "16r4952"    16r654F " <CJK> " 
               "16r4953"    16r74F6 " <CJK> " 
               "16r4954"    16r4E0D " <CJK> " 
               "16r4955"    16r4ED8 " <CJK> " 
               "16r4956"    16r57E0 " <CJK> " 
               "16r4957"    16r592B " <CJK> " 
               "16r4958"    16r5A66 " <CJK> " 
               "16r4959"    16r5BCC " <CJK> " 
               "16r495A"    16r51A8 " <CJK> " 
               "16r495B"    16r5E03 " <CJK> " 
               "16r495C"    16r5E9C " <CJK> " 
               "16r495D"    16r6016 " <CJK> " 
               "16r495E"    16r6276 " <CJK> " 
               "16r495F"    16r6577 " <CJK> " 
               "16r4960"    16r65A7 " <CJK> " 
               "16r4961"    16r666E " <CJK> " 
               "16r4962"    16r6D6E " <CJK> " 
               "16r4963"    16r7236 " <CJK> " 
               "16r4964"    16r7B26 " <CJK> " 
               "16r4965"    16r8150 " <CJK> " 
               "16r4966"    16r819A " <CJK> " 
               "16r4967"    16r8299 " <CJK> " 
               "16r4968"    16r8B5C " <CJK> " 
               "16r4969"    16r8CA0 " <CJK> " 
               "16r496A"    16r8CE6 " <CJK> " 
               "16r496B"    16r8D74 " <CJK> " 
               "16r496C"    16r961C " <CJK> " 
               "16r496D"    16r9644 " <CJK> " 
               "16r496E"    16r4FAE " <CJK> " 
               "16r496F"    16r64AB " <CJK> " 
               "16r4970"    16r6B66 " <CJK> " 
               "16r4971"    16r821E " <CJK> " 
               "16r4972"    16r8461 " <CJK> " 
               "16r4973"    16r856A " <CJK> " 
               "16r4974"    16r90E8 " <CJK> " 
               "16r4975"    16r5C01 " <CJK> " 
               "16r4976"    16r6953 " <CJK> " 
               "16r4977"    16r98A8 " <CJK> " 
               "16r4978"    16r847A " <CJK> " 
               "16r4979"    16r8557 " <CJK> " 
               "16r497A"    16r4F0F " <CJK> " 
               "16r497B"    16r526F " <CJK> " 
               "16r497C"    16r5FA9 " <CJK> " 
               "16r497D"    16r5E45 " <CJK> " 
               "16r497E"    16r670D " <CJK> " 
               ) at:(code - 16r4920).
        ].
        code <= 16r4A20 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r4A7E ifTrue:[
            ^ #(
               "16r4A21"    16r798F " <CJK> " 
               "16r4A22"    16r8179 " <CJK> " 
               "16r4A23"    16r8907 " <CJK> " 
               "16r4A24"    16r8986 " <CJK> " 
               "16r4A25"    16r6DF5 " <CJK> " 
               "16r4A26"    16r5F17 " <CJK> " 
               "16r4A27"    16r6255 " <CJK> " 
               "16r4A28"    16r6CB8 " <CJK> " 
               "16r4A29"    16r4ECF " <CJK> " 
               "16r4A2A"    16r7269 " <CJK> " 
               "16r4A2B"    16r9B92 " <CJK> " 
               "16r4A2C"    16r5206 " <CJK> " 
               "16r4A2D"    16r543B " <CJK> " 
               "16r4A2E"    16r5674 " <CJK> " 
               "16r4A2F"    16r58B3 " <CJK> " 
               "16r4A30"    16r61A4 " <CJK> " 
               "16r4A31"    16r626E " <CJK> " 
               "16r4A32"    16r711A " <CJK> " 
               "16r4A33"    16r596E " <CJK> " 
               "16r4A34"    16r7C89 " <CJK> " 
               "16r4A35"    16r7CDE " <CJK> " 
               "16r4A36"    16r7D1B " <CJK> " 
               "16r4A37"    16r96F0 " <CJK> " 
               "16r4A38"    16r6587 " <CJK> " 
               "16r4A39"    16r805E " <CJK> " 
               "16r4A3A"    16r4E19 " <CJK> " 
               "16r4A3B"    16r4F75 " <CJK> " 
               "16r4A3C"    16r5175 " <CJK> " 
               "16r4A3D"    16r5840 " <CJK> " 
               "16r4A3E"    16r5E63 " <CJK> " 
               "16r4A3F"    16r5E73 " <CJK> " 
               "16r4A40"    16r5F0A " <CJK> " 
               "16r4A41"    16r67C4 " <CJK> " 
               "16r4A42"    16r4E26 " <CJK> " 
               "16r4A43"    16r853D " <CJK> " 
               "16r4A44"    16r9589 " <CJK> " 
               "16r4A45"    16r965B " <CJK> " 
               "16r4A46"    16r7C73 " <CJK> " 
               "16r4A47"    16r9801 " <CJK> " 
               "16r4A48"    16r50FB " <CJK> " 
               "16r4A49"    16r58C1 " <CJK> " 
               "16r4A4A"    16r7656 " <CJK> " 
               "16r4A4B"    16r78A7 " <CJK> " 
               "16r4A4C"    16r5225 " <CJK> " 
               "16r4A4D"    16r77A5 " <CJK> " 
               "16r4A4E"    16r8511 " <CJK> " 
               "16r4A4F"    16r7B86 " <CJK> " 
               "16r4A50"    16r504F " <CJK> " 
               "16r4A51"    16r5909 " <CJK> " 
               "16r4A52"    16r7247 " <CJK> " 
               "16r4A53"    16r7BC7 " <CJK> " 
               "16r4A54"    16r7DE8 " <CJK> " 
               "16r4A55"    16r8FBA " <CJK> " 
               "16r4A56"    16r8FD4 " <CJK> " 
               "16r4A57"    16r904D " <CJK> " 
               "16r4A58"    16r4FBF " <CJK> " 
               "16r4A59"    16r52C9 " <CJK> " 
               "16r4A5A"    16r5A29 " <CJK> " 
               "16r4A5B"    16r5F01 " <CJK> " 
               "16r4A5C"    16r97AD " <CJK> " 
               "16r4A5D"    16r4FDD " <CJK> " 
               "16r4A5E"    16r8217 " <CJK> " 
               "16r4A5F"    16r92EA " <CJK> " 
               "16r4A60"    16r5703 " <CJK> " 
               "16r4A61"    16r6355 " <CJK> " 
               "16r4A62"    16r6B69 " <CJK> " 
               "16r4A63"    16r752B " <CJK> " 
               "16r4A64"    16r88DC " <CJK> " 
               "16r4A65"    16r8F14 " <CJK> " 
               "16r4A66"    16r7A42 " <CJK> " 
               "16r4A67"    16r52DF " <CJK> " 
               "16r4A68"    16r5893 " <CJK> " 
               "16r4A69"    16r6155 " <CJK> " 
               "16r4A6A"    16r620A " <CJK> " 
               "16r4A6B"    16r66AE " <CJK> " 
               "16r4A6C"    16r6BCD " <CJK> " 
               "16r4A6D"    16r7C3F " <CJK> " 
               "16r4A6E"    16r83E9 " <CJK> " 
               "16r4A6F"    16r5023 " <CJK> " 
               "16r4A70"    16r4FF8 " <CJK> " 
               "16r4A71"    16r5305 " <CJK> " 
               "16r4A72"    16r5446 " <CJK> " 
               "16r4A73"    16r5831 " <CJK> " 
               "16r4A74"    16r5949 " <CJK> " 
               "16r4A75"    16r5B9D " <CJK> " 
               "16r4A76"    16r5CF0 " <CJK> " 
               "16r4A77"    16r5CEF " <CJK> " 
               "16r4A78"    16r5D29 " <CJK> " 
               "16r4A79"    16r5E96 " <CJK> " 
               "16r4A7A"    16r62B1 " <CJK> " 
               "16r4A7B"    16r6367 " <CJK> " 
               "16r4A7C"    16r653E " <CJK> " 
               "16r4A7D"    16r65B9 " <CJK> " 
               "16r4A7E"    16r670B " <CJK> " 
               ) at:(code - 16r4A20).
        ].
        code <= 16r4B20 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r4B7E ifTrue:[
            ^ #(
               "16r4B21"    16r6CD5 " <CJK> " 
               "16r4B22"    16r6CE1 " <CJK> " 
               "16r4B23"    16r70F9 " <CJK> " 
               "16r4B24"    16r7832 " <CJK> " 
               "16r4B25"    16r7E2B " <CJK> " 
               "16r4B26"    16r80DE " <CJK> " 
               "16r4B27"    16r82B3 " <CJK> " 
               "16r4B28"    16r840C " <CJK> " 
               "16r4B29"    16r84EC " <CJK> " 
               "16r4B2A"    16r8702 " <CJK> " 
               "16r4B2B"    16r8912 " <CJK> " 
               "16r4B2C"    16r8A2A " <CJK> " 
               "16r4B2D"    16r8C4A " <CJK> " 
               "16r4B2E"    16r90A6 " <CJK> " 
               "16r4B2F"    16r92D2 " <CJK> " 
               "16r4B30"    16r98FD " <CJK> " 
               "16r4B31"    16r9CF3 " <CJK> " 
               "16r4B32"    16r9D6C " <CJK> " 
               "16r4B33"    16r4E4F " <CJK> " 
               "16r4B34"    16r4EA1 " <CJK> " 
               "16r4B35"    16r508D " <CJK> " 
               "16r4B36"    16r5256 " <CJK> " 
               "16r4B37"    16r574A " <CJK> " 
               "16r4B38"    16r59A8 " <CJK> " 
               "16r4B39"    16r5E3D " <CJK> " 
               "16r4B3A"    16r5FD8 " <CJK> " 
               "16r4B3B"    16r5FD9 " <CJK> " 
               "16r4B3C"    16r623F " <CJK> " 
               "16r4B3D"    16r66B4 " <CJK> " 
               "16r4B3E"    16r671B " <CJK> " 
               "16r4B3F"    16r67D0 " <CJK> " 
               "16r4B40"    16r68D2 " <CJK> " 
               "16r4B41"    16r5192 " <CJK> " 
               "16r4B42"    16r7D21 " <CJK> " 
               "16r4B43"    16r80AA " <CJK> " 
               "16r4B44"    16r81A8 " <CJK> " 
               "16r4B45"    16r8B00 " <CJK> " 
               "16r4B46"    16r8C8C " <CJK> " 
               "16r4B47"    16r8CBF " <CJK> " 
               "16r4B48"    16r927E " <CJK> " 
               "16r4B49"    16r9632 " <CJK> " 
               "16r4B4A"    16r5420 " <CJK> " 
               "16r4B4B"    16r982C " <CJK> " 
               "16r4B4C"    16r5317 " <CJK> " 
               "16r4B4D"    16r50D5 " <CJK> " 
               "16r4B4E"    16r535C " <CJK> " 
               "16r4B4F"    16r58A8 " <CJK> " 
               "16r4B50"    16r64B2 " <CJK> " 
               "16r4B51"    16r6734 " <CJK> " 
               "16r4B52"    16r7267 " <CJK> " 
               "16r4B53"    16r7766 " <CJK> " 
               "16r4B54"    16r7A46 " <CJK> " 
               "16r4B55"    16r91E6 " <CJK> " 
               "16r4B56"    16r52C3 " <CJK> " 
               "16r4B57"    16r6CA1 " <CJK> " 
               "16r4B58"    16r6B86 " <CJK> " 
               "16r4B59"    16r5800 " <CJK> " 
               "16r4B5A"    16r5E4C " <CJK> " 
               "16r4B5B"    16r5954 " <CJK> " 
               "16r4B5C"    16r672C " <CJK> " 
               "16r4B5D"    16r7FFB " <CJK> " 
               "16r4B5E"    16r51E1 " <CJK> " 
               "16r4B5F"    16r76C6 " <CJK> " 
               "16r4B60"    16r6469 " <CJK> " 
               "16r4B61"    16r78E8 " <CJK> " 
               "16r4B62"    16r9B54 " <CJK> " 
               "16r4B63"    16r9EBB " <CJK> " 
               "16r4B64"    16r57CB " <CJK> " 
               "16r4B65"    16r59B9 " <CJK> " 
               "16r4B66"    16r6627 " <CJK> " 
               "16r4B67"    16r679A " <CJK> " 
               "16r4B68"    16r6BCE " <CJK> " 
               "16r4B69"    16r54E9 " <CJK> " 
               "16r4B6A"    16r69D9 " <CJK> " 
               "16r4B6B"    16r5E55 " <CJK> " 
               "16r4B6C"    16r819C " <CJK> " 
               "16r4B6D"    16r6795 " <CJK> " 
               "16r4B6E"    16r9BAA " <CJK> " 
               "16r4B6F"    16r67FE " <CJK> " 
               "16r4B70"    16r9C52 " <CJK> " 
               "16r4B71"    16r685D " <CJK> " 
               "16r4B72"    16r4EA6 " <CJK> " 
               "16r4B73"    16r4FE3 " <CJK> " 
               "16r4B74"    16r53C8 " <CJK> " 
               "16r4B75"    16r62B9 " <CJK> " 
               "16r4B76"    16r672B " <CJK> " 
               "16r4B77"    16r6CAB " <CJK> " 
               "16r4B78"    16r8FC4 " <CJK> " 
               "16r4B79"    16r4FAD " <CJK> " 
               "16r4B7A"    16r7E6D " <CJK> " 
               "16r4B7B"    16r9EBF " <CJK> " 
               "16r4B7C"    16r4E07 " <CJK> " 
               "16r4B7D"    16r6162 " <CJK> " 
               "16r4B7E"    16r6E80 " <CJK> " 
               ) at:(code - 16r4B20).
        ].
        code <= 16r4C20 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r4C7E ifTrue:[
            ^ #(
               "16r4C21"    16r6F2B " <CJK> " 
               "16r4C22"    16r8513 " <CJK> " 
               "16r4C23"    16r5473 " <CJK> " 
               "16r4C24"    16r672A " <CJK> " 
               "16r4C25"    16r9B45 " <CJK> " 
               "16r4C26"    16r5DF3 " <CJK> " 
               "16r4C27"    16r7B95 " <CJK> " 
               "16r4C28"    16r5CAC " <CJK> " 
               "16r4C29"    16r5BC6 " <CJK> " 
               "16r4C2A"    16r871C " <CJK> " 
               "16r4C2B"    16r6E4A " <CJK> " 
               "16r4C2C"    16r84D1 " <CJK> " 
               "16r4C2D"    16r7A14 " <CJK> " 
               "16r4C2E"    16r8108 " <CJK> " 
               "16r4C2F"    16r5999 " <CJK> " 
               "16r4C30"    16r7C8D " <CJK> " 
               "16r4C31"    16r6C11 " <CJK> " 
               "16r4C32"    16r7720 " <CJK> " 
               "16r4C33"    16r52D9 " <CJK> " 
               "16r4C34"    16r5922 " <CJK> " 
               "16r4C35"    16r7121 " <CJK> " 
               "16r4C36"    16r725F " <CJK> " 
               "16r4C37"    16r77DB " <CJK> " 
               "16r4C38"    16r9727 " <CJK> " 
               "16r4C39"    16r9D61 " <CJK> " 
               "16r4C3A"    16r690B " <CJK> " 
               "16r4C3B"    16r5A7F " <CJK> " 
               "16r4C3C"    16r5A18 " <CJK> " 
               "16r4C3D"    16r51A5 " <CJK> " 
               "16r4C3E"    16r540D " <CJK> " 
               "16r4C3F"    16r547D " <CJK> " 
               "16r4C40"    16r660E " <CJK> " 
               "16r4C41"    16r76DF " <CJK> " 
               "16r4C42"    16r8FF7 " <CJK> " 
               "16r4C43"    16r9298 " <CJK> " 
               "16r4C44"    16r9CF4 " <CJK> " 
               "16r4C45"    16r59EA " <CJK> " 
               "16r4C46"    16r725D " <CJK> " 
               "16r4C47"    16r6EC5 " <CJK> " 
               "16r4C48"    16r514D " <CJK> " 
               "16r4C49"    16r68C9 " <CJK> " 
               "16r4C4A"    16r7DBF " <CJK> " 
               "16r4C4B"    16r7DEC " <CJK> " 
               "16r4C4C"    16r9762 " <CJK> " 
               "16r4C4D"    16r9EBA " <CJK> " 
               "16r4C4E"    16r6478 " <CJK> " 
               "16r4C4F"    16r6A21 " <CJK> " 
               "16r4C50"    16r8302 " <CJK> " 
               "16r4C51"    16r5984 " <CJK> " 
               "16r4C52"    16r5B5F " <CJK> " 
               "16r4C53"    16r6BDB " <CJK> " 
               "16r4C54"    16r731B " <CJK> " 
               "16r4C55"    16r76F2 " <CJK> " 
               "16r4C56"    16r7DB2 " <CJK> " 
               "16r4C57"    16r8017 " <CJK> " 
               "16r4C58"    16r8499 " <CJK> " 
               "16r4C59"    16r5132 " <CJK> " 
               "16r4C5A"    16r6728 " <CJK> " 
               "16r4C5B"    16r9ED9 " <CJK> " 
               "16r4C5C"    16r76EE " <CJK> " 
               "16r4C5D"    16r6762 " <CJK> " 
               "16r4C5E"    16r52FF " <CJK> " 
               "16r4C5F"    16r9905 " <CJK> " 
               "16r4C60"    16r5C24 " <CJK> " 
               "16r4C61"    16r623B " <CJK> " 
               "16r4C62"    16r7C7E " <CJK> " 
               "16r4C63"    16r8CB0 " <CJK> " 
               "16r4C64"    16r554F " <CJK> " 
               "16r4C65"    16r60B6 " <CJK> " 
               "16r4C66"    16r7D0B " <CJK> " 
               "16r4C67"    16r9580 " <CJK> " 
               "16r4C68"    16r5301 " <CJK> " 
               "16r4C69"    16r4E5F " <CJK> " 
               "16r4C6A"    16r51B6 " <CJK> " 
               "16r4C6B"    16r591C " <CJK> " 
               "16r4C6C"    16r723A " <CJK> " 
               "16r4C6D"    16r8036 " <CJK> " 
               "16r4C6E"    16r91CE " <CJK> " 
               "16r4C6F"    16r5F25 " <CJK> " 
               "16r4C70"    16r77E2 " <CJK> " 
               "16r4C71"    16r5384 " <CJK> " 
               "16r4C72"    16r5F79 " <CJK> " 
               "16r4C73"    16r7D04 " <CJK> " 
               "16r4C74"    16r85AC " <CJK> " 
               "16r4C75"    16r8A33 " <CJK> " 
               "16r4C76"    16r8E8D " <CJK> " 
               "16r4C77"    16r9756 " <CJK> " 
               "16r4C78"    16r67F3 " <CJK> " 
               "16r4C79"    16r85AE " <CJK> " 
               "16r4C7A"    16r9453 " <CJK> " 
               "16r4C7B"    16r6109 " <CJK> " 
               "16r4C7C"    16r6108 " <CJK> " 
               "16r4C7D"    16r6CB9 " <CJK> " 
               "16r4C7E"    16r7652 " <CJK> " 
               ) at:(code - 16r4C20).
        ].
        code <= 16r4D20 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r4D7E ifTrue:[
            ^ #(
               "16r4D21"    16r8AED " <CJK> " 
               "16r4D22"    16r8F38 " <CJK> " 
               "16r4D23"    16r552F " <CJK> " 
               "16r4D24"    16r4F51 " <CJK> " 
               "16r4D25"    16r512A " <CJK> " 
               "16r4D26"    16r52C7 " <CJK> " 
               "16r4D27"    16r53CB " <CJK> " 
               "16r4D28"    16r5BA5 " <CJK> " 
               "16r4D29"    16r5E7D " <CJK> " 
               "16r4D2A"    16r60A0 " <CJK> " 
               "16r4D2B"    16r6182 " <CJK> " 
               "16r4D2C"    16r63D6 " <CJK> " 
               "16r4D2D"    16r6709 " <CJK> " 
               "16r4D2E"    16r67DA " <CJK> " 
               "16r4D2F"    16r6E67 " <CJK> " 
               "16r4D30"    16r6D8C " <CJK> " 
               "16r4D31"    16r7336 " <CJK> " 
               "16r4D32"    16r7337 " <CJK> " 
               "16r4D33"    16r7531 " <CJK> " 
               "16r4D34"    16r7950 " <CJK> " 
               "16r4D35"    16r88D5 " <CJK> " 
               "16r4D36"    16r8A98 " <CJK> " 
               "16r4D37"    16r904A " <CJK> " 
               "16r4D38"    16r9091 " <CJK> " 
               "16r4D39"    16r90F5 " <CJK> " 
               "16r4D3A"    16r96C4 " <CJK> " 
               "16r4D3B"    16r878D " <CJK> " 
               "16r4D3C"    16r5915 " <CJK> " 
               "16r4D3D"    16r4E88 " <CJK> " 
               "16r4D3E"    16r4F59 " <CJK> " 
               "16r4D3F"    16r4E0E " <CJK> " 
               "16r4D40"    16r8A89 " <CJK> " 
               "16r4D41"    16r8F3F " <CJK> " 
               "16r4D42"    16r9810 " <CJK> " 
               "16r4D43"    16r50AD " <CJK> " 
               "16r4D44"    16r5E7C " <CJK> " 
               "16r4D45"    16r5996 " <CJK> " 
               "16r4D46"    16r5BB9 " <CJK> " 
               "16r4D47"    16r5EB8 " <CJK> " 
               "16r4D48"    16r63DA " <CJK> " 
               "16r4D49"    16r63FA " <CJK> " 
               "16r4D4A"    16r64C1 " <CJK> " 
               "16r4D4B"    16r66DC " <CJK> " 
               "16r4D4C"    16r694A " <CJK> " 
               "16r4D4D"    16r69D8 " <CJK> " 
               "16r4D4E"    16r6D0B " <CJK> " 
               "16r4D4F"    16r6EB6 " <CJK> " 
               "16r4D50"    16r7194 " <CJK> " 
               "16r4D51"    16r7528 " <CJK> " 
               "16r4D52"    16r7AAF " <CJK> " 
               "16r4D53"    16r7F8A " <CJK> " 
               "16r4D54"    16r8000 " <CJK> " 
               "16r4D55"    16r8449 " <CJK> " 
               "16r4D56"    16r84C9 " <CJK> " 
               "16r4D57"    16r8981 " <CJK> " 
               "16r4D58"    16r8B21 " <CJK> " 
               "16r4D59"    16r8E0A " <CJK> " 
               "16r4D5A"    16r9065 " <CJK> " 
               "16r4D5B"    16r967D " <CJK> " 
               "16r4D5C"    16r990A " <CJK> " 
               "16r4D5D"    16r617E " <CJK> " 
               "16r4D5E"    16r6291 " <CJK> " 
               "16r4D5F"    16r6B32 " <CJK> " 
               "16r4D60"    16r6C83 " <CJK> " 
               "16r4D61"    16r6D74 " <CJK> " 
               "16r4D62"    16r7FCC " <CJK> " 
               "16r4D63"    16r7FFC " <CJK> " 
               "16r4D64"    16r6DC0 " <CJK> " 
               "16r4D65"    16r7F85 " <CJK> " 
               "16r4D66"    16r87BA " <CJK> " 
               "16r4D67"    16r88F8 " <CJK> " 
               "16r4D68"    16r6765 " <CJK> " 
               "16r4D69"    16r83B1 " <CJK> " 
               "16r4D6A"    16r983C " <CJK> " 
               "16r4D6B"    16r96F7 " <CJK> " 
               "16r4D6C"    16r6D1B " <CJK> " 
               "16r4D6D"    16r7D61 " <CJK> " 
               "16r4D6E"    16r843D " <CJK> " 
               "16r4D6F"    16r916A " <CJK> " 
               "16r4D70"    16r4E71 " <CJK> " 
               "16r4D71"    16r5375 " <CJK> " 
               "16r4D72"    16r5D50 " <CJK> " 
               "16r4D73"    16r6B04 " <CJK> " 
               "16r4D74"    16r6FEB " <CJK> " 
               "16r4D75"    16r85CD " <CJK> " 
               "16r4D76"    16r862D " <CJK> " 
               "16r4D77"    16r89A7 " <CJK> " 
               "16r4D78"    16r5229 " <CJK> " 
               "16r4D79"    16r540F " <CJK> " 
               "16r4D7A"    16r5C65 " <CJK> " 
               "16r4D7B"    16r674E " <CJK> " 
               "16r4D7C"    16r68A8 " <CJK> " 
               "16r4D7D"    16r7406 " <CJK> " 
               "16r4D7E"    16r7483 " <CJK> " 
               ) at:(code - 16r4D20).
        ].
        code <= 16r4E20 ifTrue:[
            ^ self decodingError.
        ].
        code <= 16r4E7E ifTrue:[
            ^ #(
               "16r4E21"    16r75E2 " <CJK> " 
               "16r4E22"    16r88CF " <CJK> " 
               "16r4E23"    16r88E1 " <CJK> " 
               "16r4E24"    16r91CC " <CJK> " 
               "16r4E25"    16r96E2 " <CJK> " 
               "16r4E26"    16r9678 " <CJK> " 
               "16r4E27"    16r5F8B " <CJK> " 
               "16r4E28"    16r7387 " <CJK> " 
               "16r4E29"    16r7ACB " <CJK> " 
               "16r4E2A"    16r844E " <CJK> " 
               "16r4E2B"    16r63A0 " <CJK> " 
               "16r4E2C"    16r7565 " <CJK> " 
               "16r4E2D"    16r5289 " <CJK> " 
               "16r4E2E"    16r6D41 " <CJK> " 
               "16r4E2F"    16r6E9C " <CJK> " 
               "16r4E30"    16r7409 " <CJK> " 
               "16r4E31"    16r7559 " <CJK> " 
               "16r4E32"    16r786B " <CJK> " 
               "16r4E33"    16r7C92 " <CJK> " 
               "16r4E34"    16r9686 " <CJK> " 
               "16r4E35"    16r7ADC " <CJK> " 
               "16r4E36"    16r9F8D " <CJK> " 
               "16r4E37"    16r4FB6 " <CJK> " 
               "16r4E38"    16r616E " <CJK> " 
               "16r4E39"    16r65C5 " <CJK> " 
               "16r4E3A"    16r865C " <CJK> " 
               "16r4E3B"    16r4E86 " <CJK> " 
               "16r4E3C"    16r4EAE " <CJK> " 
               "16r4E3D"    16r50DA " <CJK> " 
               "16r4E3E"    16r4E21 " <CJK> " 
               "16r4E3F"    16r51CC " <CJK> " 
               "16r4E40"    16r5BEE " <CJK> " 
               "16r4E41"    16r6599 " <CJK> " 
               "16r4E42"    16r6881 " <CJK> " 
               "16r4E43"    16r6DBC " <CJK> " 
               "16r4E44"    16r731F " <CJK> " 
               "16r4E45"    16r7642 " <CJK> " 
               "16r4E46"    16r77AD " <CJK> " 
               "16r4E47"    16r7A1C " <CJK> " 
               "16r4E48"    16r7CE7 " <CJK> " 
               "16r4E49"    16r826F " <CJK> " 
               "16r4E4A"    16r8AD2 " <CJK> " 
               "16r4E4B"    16r907C " <CJK> " 
               "16r4E4C"    16r91CF " <CJK> " 
               "16r4E4D"    16r9675 " <CJK> " 
               "16r4E4E"    16r9818 " <CJK> " 
               "16r4E4F"    16r529B " <CJK> " 
               "16r4E50"    16r7DD1 " <CJK> " 
               "16r4E51"    16r502B " <CJK> " 
               "16r4E52"    16r5398 " <CJK> " 
               "16r4E53"    16r6797 " <CJK> " 
               "16r4E54"    16r6DCB " <CJK> " 
               "16r4E55"    16r71D0 " <CJK> " 
               "16r4E56"    16r7433 " <CJK> " 
               "16r4E57"    16r81E8 " <CJK> " 
               "16r4E58"    16r8F2A " <CJK> " 
               "16r4E59"    16r96A3 " <CJK> " 
               "16r4E5A"    16r9C57 " <CJK> " 
               "16r4E5B"    16r9E9F " <CJK> " 
               "16r4E5C"    16r7460 " <CJK> " 
               "16r4E5D"    16r5841 " <CJK> " 
               "16r4E5E"    16r6D99 " <CJK> " 
               "16r4E5F"    16r7D2F " <CJK> " 
               "16r4E60"    16r985E " <CJK> " 
               "16r4E61"    16r4EE4 " <CJK> " 
               "16r4E62"    16r4F36 " <CJK> " 
               "16r4E63"    16r4F8B " <CJK> " 
               "16r4E64"    16r51B7 " <CJK> " 
               "16r4E65"    16r52B1 " <CJK> " 
               "16r4E66"    16r5DBA " <CJK> " 
               "16r4E67"    16r601C " <CJK> " 
               "16r4E68"    16r73B2 " <CJK> " 
               "16r4E69"    16r793C " <CJK> " 
               "16r4E6A"    16r82D3 " <CJK> " 
               "16r4E6B"    16r9234 " <CJK> " 
               "16r4E6C"    16r96B7 " <CJK> " 
               "16r4E6D"    16r96F6 " <CJK> " 
               "16r4E6E"    16r970A " <CJK> " 
               "16r4E6F"    16r9E97 " <CJK> " 
               "16r4E70"    16r9F62 " <CJK> " 
               "16r4E71"    16r66A6 " <CJK> " 
               "16r4E72"    16r6B74 " <CJK> " 
               "16r4E73"    16r5217 " <CJK> " 
               "16r4E74"    16r52A3 " <CJK> " 
               "16r4E75"    16r70C8 " <CJK> " 
               "16r4E76"    16r88C2 " <CJK> " 
               "16r4E77"    16r5EC9 " <CJK> " 
               "16r4E78"    16r604B " <CJK> " 
               "16r4E79"    16r6190 " <CJK> " 
               "16r4E7A"    16r6F23 " <CJK> " 
               "16r4E7B"    16r7149 " <CJK> " 
               "16r4E7C"    16r7C3E " <CJK> " 
               "16r4E7D"    16r7DF4 " <CJK> " 
               "16r4E7E"    16r806F " <CJK> " 
               ) at:(code - 16r4E20).
        ].
        code <= 16r4F20 ifTrue:[
            ^ self decodingError.
        ].
        ^ #(
           "16r4F21"    16r84EE " <CJK> " 
           "16r4F22"    16r9023 " <CJK> " 
           "16r4F23"    16r932C " <CJK> " 
           "16r4F24"    16r5442 " <CJK> " 
           "16r4F25"    16r9B6F " <CJK> " 
           "16r4F26"    16r6AD3 " <CJK> " 
           "16r4F27"    16r7089 " <CJK> " 
           "16r4F28"    16r8CC2 " <CJK> " 
           "16r4F29"    16r8DEF " <CJK> " 
           "16r4F2A"    16r9732 " <CJK> " 
           "16r4F2B"    16r52B4 " <CJK> " 
           "16r4F2C"    16r5A41 " <CJK> " 
           "16r4F2D"    16r5ECA " <CJK> " 
           "16r4F2E"    16r5F04 " <CJK> " 
           "16r4F2F"    16r6717 " <CJK> " 
           "16r4F30"    16r697C " <CJK> " 
           "16r4F31"    16r6994 " <CJK> " 
           "16r4F32"    16r6D6A " <CJK> " 
           "16r4F33"    16r6F0F " <CJK> " 
           "16r4F34"    16r7262 " <CJK> " 
           "16r4F35"    16r72FC " <CJK> " 
           "16r4F36"    16r7BED " <CJK> " 
           "16r4F37"    16r8001 " <CJK> " 
           "16r4F38"    16r807E " <CJK> " 
           "16r4F39"    16r874B " <CJK> " 
           "16r4F3A"    16r90CE " <CJK> " 
           "16r4F3B"    16r516D " <CJK> " 
           "16r4F3C"    16r9E93 " <CJK> " 
           "16r4F3D"    16r7984 " <CJK> " 
           "16r4F3E"    16r808B " <CJK> " 
           "16r4F3F"    16r9332 " <CJK> " 
           "16r4F40"    16r8AD6 " <CJK> " 
           "16r4F41"    16r502D " <CJK> " 
           "16r4F42"    16r548C " <CJK> " 
           "16r4F43"    16r8A71 " <CJK> " 
           "16r4F44"    16r6B6A " <CJK> " 
           "16r4F45"    16r8CC4 " <CJK> " 
           "16r4F46"    16r8107 " <CJK> " 
           "16r4F47"    16r60D1 " <CJK> " 
           "16r4F48"    16r67A0 " <CJK> " 
           "16r4F49"    16r9DF2 " <CJK> " 
           "16r4F4A"    16r4E99 " <CJK> " 
           "16r4F4B"    16r4E98 " <CJK> " 
           "16r4F4C"    16r9C10 " <CJK> " 
           "16r4F4D"    16r8A6B " <CJK> " 
           "16r4F4E"    16r85C1 " <CJK> " 
           "16r4F4F"    16r8568 " <CJK> " 
           "16r4F50"    16r6900 " <CJK> " 
           "16r4F51"    16r6E7E " <CJK> " 
           "16r4F52"    16r7897 " <CJK> " 
           "16r4F53"    16r8155 " <CJK> " 
           ) at:(code - 16r4F20).
    ].
    code <= 16r5020 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r507E ifTrue:[
        ^ #(
           "16r5021"    16r5F0C " <CJK> " 
           "16r5022"    16r4E10 " <CJK> " 
           "16r5023"    16r4E15 " <CJK> " 
           "16r5024"    16r4E2A " <CJK> " 
           "16r5025"    16r4E31 " <CJK> " 
           "16r5026"    16r4E36 " <CJK> " 
           "16r5027"    16r4E3C " <CJK> " 
           "16r5028"    16r4E3F " <CJK> " 
           "16r5029"    16r4E42 " <CJK> " 
           "16r502A"    16r4E56 " <CJK> " 
           "16r502B"    16r4E58 " <CJK> " 
           "16r502C"    16r4E82 " <CJK> " 
           "16r502D"    16r4E85 " <CJK> " 
           "16r502E"    16r8C6B " <CJK> " 
           "16r502F"    16r4E8A " <CJK> " 
           "16r5030"    16r8212 " <CJK> " 
           "16r5031"    16r5F0D " <CJK> " 
           "16r5032"    16r4E8E " <CJK> " 
           "16r5033"    16r4E9E " <CJK> " 
           "16r5034"    16r4E9F " <CJK> " 
           "16r5035"    16r4EA0 " <CJK> " 
           "16r5036"    16r4EA2 " <CJK> " 
           "16r5037"    16r4EB0 " <CJK> " 
           "16r5038"    16r4EB3 " <CJK> " 
           "16r5039"    16r4EB6 " <CJK> " 
           "16r503A"    16r4ECE " <CJK> " 
           "16r503B"    16r4ECD " <CJK> " 
           "16r503C"    16r4EC4 " <CJK> " 
           "16r503D"    16r4EC6 " <CJK> " 
           "16r503E"    16r4EC2 " <CJK> " 
           "16r503F"    16r4ED7 " <CJK> " 
           "16r5040"    16r4EDE " <CJK> " 
           "16r5041"    16r4EED " <CJK> " 
           "16r5042"    16r4EDF " <CJK> " 
           "16r5043"    16r4EF7 " <CJK> " 
           "16r5044"    16r4F09 " <CJK> " 
           "16r5045"    16r4F5A " <CJK> " 
           "16r5046"    16r4F30 " <CJK> " 
           "16r5047"    16r4F5B " <CJK> " 
           "16r5048"    16r4F5D " <CJK> " 
           "16r5049"    16r4F57 " <CJK> " 
           "16r504A"    16r4F47 " <CJK> " 
           "16r504B"    16r4F76 " <CJK> " 
           "16r504C"    16r4F88 " <CJK> " 
           "16r504D"    16r4F8F " <CJK> " 
           "16r504E"    16r4F98 " <CJK> " 
           "16r504F"    16r4F7B " <CJK> " 
           "16r5050"    16r4F69 " <CJK> " 
           "16r5051"    16r4F70 " <CJK> " 
           "16r5052"    16r4F91 " <CJK> " 
           "16r5053"    16r4F6F " <CJK> " 
           "16r5054"    16r4F86 " <CJK> " 
           "16r5055"    16r4F96 " <CJK> " 
           "16r5056"    16r5118 " <CJK> " 
           "16r5057"    16r4FD4 " <CJK> " 
           "16r5058"    16r4FDF " <CJK> " 
           "16r5059"    16r4FCE " <CJK> " 
           "16r505A"    16r4FD8 " <CJK> " 
           "16r505B"    16r4FDB " <CJK> " 
           "16r505C"    16r4FD1 " <CJK> " 
           "16r505D"    16r4FDA " <CJK> " 
           "16r505E"    16r4FD0 " <CJK> " 
           "16r505F"    16r4FE4 " <CJK> " 
           "16r5060"    16r4FE5 " <CJK> " 
           "16r5061"    16r501A " <CJK> " 
           "16r5062"    16r5028 " <CJK> " 
           "16r5063"    16r5014 " <CJK> " 
           "16r5064"    16r502A " <CJK> " 
           "16r5065"    16r5025 " <CJK> " 
           "16r5066"    16r5005 " <CJK> " 
           "16r5067"    16r4F1C " <CJK> " 
           "16r5068"    16r4FF6 " <CJK> " 
           "16r5069"    16r5021 " <CJK> " 
           "16r506A"    16r5029 " <CJK> " 
           "16r506B"    16r502C " <CJK> " 
           "16r506C"    16r4FFE " <CJK> " 
           "16r506D"    16r4FEF " <CJK> " 
           "16r506E"    16r5011 " <CJK> " 
           "16r506F"    16r5006 " <CJK> " 
           "16r5070"    16r5043 " <CJK> " 
           "16r5071"    16r5047 " <CJK> " 
           "16r5072"    16r6703 " <CJK> " 
           "16r5073"    16r5055 " <CJK> " 
           "16r5074"    16r5050 " <CJK> " 
           "16r5075"    16r5048 " <CJK> " 
           "16r5076"    16r505A " <CJK> " 
           "16r5077"    16r5056 " <CJK> " 
           "16r5078"    16r506C " <CJK> " 
           "16r5079"    16r5078 " <CJK> " 
           "16r507A"    16r5080 " <CJK> " 
           "16r507B"    16r509A " <CJK> " 
           "16r507C"    16r5085 " <CJK> " 
           "16r507D"    16r50B4 " <CJK> " 
           "16r507E"    16r50B2 " <CJK> " 
           ) at:(code - 16r5020).
    ].
    code <= 16r5120 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r517E ifTrue:[
        ^ #(
           "16r5121"    16r50C9 " <CJK> " 
           "16r5122"    16r50CA " <CJK> " 
           "16r5123"    16r50B3 " <CJK> " 
           "16r5124"    16r50C2 " <CJK> " 
           "16r5125"    16r50D6 " <CJK> " 
           "16r5126"    16r50DE " <CJK> " 
           "16r5127"    16r50E5 " <CJK> " 
           "16r5128"    16r50ED " <CJK> " 
           "16r5129"    16r50E3 " <CJK> " 
           "16r512A"    16r50EE " <CJK> " 
           "16r512B"    16r50F9 " <CJK> " 
           "16r512C"    16r50F5 " <CJK> " 
           "16r512D"    16r5109 " <CJK> " 
           "16r512E"    16r5101 " <CJK> " 
           "16r512F"    16r5102 " <CJK> " 
           "16r5130"    16r5116 " <CJK> " 
           "16r5131"    16r5115 " <CJK> " 
           "16r5132"    16r5114 " <CJK> " 
           "16r5133"    16r511A " <CJK> " 
           "16r5134"    16r5121 " <CJK> " 
           "16r5135"    16r513A " <CJK> " 
           "16r5136"    16r5137 " <CJK> " 
           "16r5137"    16r513C " <CJK> " 
           "16r5138"    16r513B " <CJK> " 
           "16r5139"    16r513F " <CJK> " 
           "16r513A"    16r5140 " <CJK> " 
           "16r513B"    16r5152 " <CJK> " 
           "16r513C"    16r514C " <CJK> " 
           "16r513D"    16r5154 " <CJK> " 
           "16r513E"    16r5162 " <CJK> " 
           "16r513F"    16r7AF8 " <CJK> " 
           "16r5140"    16r5169 " <CJK> " 
           "16r5141"    16r516A " <CJK> " 
           "16r5142"    16r516E " <CJK> " 
           "16r5143"    16r5180 " <CJK> " 
           "16r5144"    16r5182 " <CJK> " 
           "16r5145"    16r56D8 " <CJK> " 
           "16r5146"    16r518C " <CJK> " 
           "16r5147"    16r5189 " <CJK> " 
           "16r5148"    16r518F " <CJK> " 
           "16r5149"    16r5191 " <CJK> " 
           "16r514A"    16r5193 " <CJK> " 
           "16r514B"    16r5195 " <CJK> " 
           "16r514C"    16r5196 " <CJK> " 
           "16r514D"    16r51A4 " <CJK> " 
           "16r514E"    16r51A6 " <CJK> " 
           "16r514F"    16r51A2 " <CJK> " 
           "16r5150"    16r51A9 " <CJK> " 
           "16r5151"    16r51AA " <CJK> " 
           "16r5152"    16r51AB " <CJK> " 
           "16r5153"    16r51B3 " <CJK> " 
           "16r5154"    16r51B1 " <CJK> " 
           "16r5155"    16r51B2 " <CJK> " 
           "16r5156"    16r51B0 " <CJK> " 
           "16r5157"    16r51B5 " <CJK> " 
           "16r5158"    16r51BD " <CJK> " 
           "16r5159"    16r51C5 " <CJK> " 
           "16r515A"    16r51C9 " <CJK> " 
           "16r515B"    16r51DB " <CJK> " 
           "16r515C"    16r51E0 " <CJK> " 
           "16r515D"    16r8655 " <CJK> " 
           "16r515E"    16r51E9 " <CJK> " 
           "16r515F"    16r51ED " <CJK> " 
           "16r5160"    16r51F0 " <CJK> " 
           "16r5161"    16r51F5 " <CJK> " 
           "16r5162"    16r51FE " <CJK> " 
           "16r5163"    16r5204 " <CJK> " 
           "16r5164"    16r520B " <CJK> " 
           "16r5165"    16r5214 " <CJK> " 
           "16r5166"    16r520E " <CJK> " 
           "16r5167"    16r5227 " <CJK> " 
           "16r5168"    16r522A " <CJK> " 
           "16r5169"    16r522E " <CJK> " 
           "16r516A"    16r5233 " <CJK> " 
           "16r516B"    16r5239 " <CJK> " 
           "16r516C"    16r524F " <CJK> " 
           "16r516D"    16r5244 " <CJK> " 
           "16r516E"    16r524B " <CJK> " 
           "16r516F"    16r524C " <CJK> " 
           "16r5170"    16r525E " <CJK> " 
           "16r5171"    16r5254 " <CJK> " 
           "16r5172"    16r526A " <CJK> " 
           "16r5173"    16r5274 " <CJK> " 
           "16r5174"    16r5269 " <CJK> " 
           "16r5175"    16r5273 " <CJK> " 
           "16r5176"    16r527F " <CJK> " 
           "16r5177"    16r527D " <CJK> " 
           "16r5178"    16r528D " <CJK> " 
           "16r5179"    16r5294 " <CJK> " 
           "16r517A"    16r5292 " <CJK> " 
           "16r517B"    16r5271 " <CJK> " 
           "16r517C"    16r5288 " <CJK> " 
           "16r517D"    16r5291 " <CJK> " 
           "16r517E"    16r8FA8 " <CJK> " 
           ) at:(code - 16r5120).
    ].
    code <= 16r5220 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r527E ifTrue:[
        ^ #(
           "16r5221"    16r8FA7 " <CJK> " 
           "16r5222"    16r52AC " <CJK> " 
           "16r5223"    16r52AD " <CJK> " 
           "16r5224"    16r52BC " <CJK> " 
           "16r5225"    16r52B5 " <CJK> " 
           "16r5226"    16r52C1 " <CJK> " 
           "16r5227"    16r52CD " <CJK> " 
           "16r5228"    16r52D7 " <CJK> " 
           "16r5229"    16r52DE " <CJK> " 
           "16r522A"    16r52E3 " <CJK> " 
           "16r522B"    16r52E6 " <CJK> " 
           "16r522C"    16r98ED " <CJK> " 
           "16r522D"    16r52E0 " <CJK> " 
           "16r522E"    16r52F3 " <CJK> " 
           "16r522F"    16r52F5 " <CJK> " 
           "16r5230"    16r52F8 " <CJK> " 
           "16r5231"    16r52F9 " <CJK> " 
           "16r5232"    16r5306 " <CJK> " 
           "16r5233"    16r5308 " <CJK> " 
           "16r5234"    16r7538 " <CJK> " 
           "16r5235"    16r530D " <CJK> " 
           "16r5236"    16r5310 " <CJK> " 
           "16r5237"    16r530F " <CJK> " 
           "16r5238"    16r5315 " <CJK> " 
           "16r5239"    16r531A " <CJK> " 
           "16r523A"    16r5323 " <CJK> " 
           "16r523B"    16r532F " <CJK> " 
           "16r523C"    16r5331 " <CJK> " 
           "16r523D"    16r5333 " <CJK> " 
           "16r523E"    16r5338 " <CJK> " 
           "16r523F"    16r5340 " <CJK> " 
           "16r5240"    16r5346 " <CJK> " 
           "16r5241"    16r5345 " <CJK> " 
           "16r5242"    16r4E17 " <CJK> " 
           "16r5243"    16r5349 " <CJK> " 
           "16r5244"    16r534D " <CJK> " 
           "16r5245"    16r51D6 " <CJK> " 
           "16r5246"    16r535E " <CJK> " 
           "16r5247"    16r5369 " <CJK> " 
           "16r5248"    16r536E " <CJK> " 
           "16r5249"    16r5918 " <CJK> " 
           "16r524A"    16r537B " <CJK> " 
           "16r524B"    16r5377 " <CJK> " 
           "16r524C"    16r5382 " <CJK> " 
           "16r524D"    16r5396 " <CJK> " 
           "16r524E"    16r53A0 " <CJK> " 
           "16r524F"    16r53A6 " <CJK> " 
           "16r5250"    16r53A5 " <CJK> " 
           "16r5251"    16r53AE " <CJK> " 
           "16r5252"    16r53B0 " <CJK> " 
           "16r5253"    16r53B6 " <CJK> " 
           "16r5254"    16r53C3 " <CJK> " 
           "16r5255"    16r7C12 " <CJK> " 
           "16r5256"    16r96D9 " <CJK> " 
           "16r5257"    16r53DF " <CJK> " 
           "16r5258"    16r66FC " <CJK> " 
           "16r5259"    16r71EE " <CJK> " 
           "16r525A"    16r53EE " <CJK> " 
           "16r525B"    16r53E8 " <CJK> " 
           "16r525C"    16r53ED " <CJK> " 
           "16r525D"    16r53FA " <CJK> " 
           "16r525E"    16r5401 " <CJK> " 
           "16r525F"    16r543D " <CJK> " 
           "16r5260"    16r5440 " <CJK> " 
           "16r5261"    16r542C " <CJK> " 
           "16r5262"    16r542D " <CJK> " 
           "16r5263"    16r543C " <CJK> " 
           "16r5264"    16r542E " <CJK> " 
           "16r5265"    16r5436 " <CJK> " 
           "16r5266"    16r5429 " <CJK> " 
           "16r5267"    16r541D " <CJK> " 
           "16r5268"    16r544E " <CJK> " 
           "16r5269"    16r548F " <CJK> " 
           "16r526A"    16r5475 " <CJK> " 
           "16r526B"    16r548E " <CJK> " 
           "16r526C"    16r545F " <CJK> " 
           "16r526D"    16r5471 " <CJK> " 
           "16r526E"    16r5477 " <CJK> " 
           "16r526F"    16r5470 " <CJK> " 
           "16r5270"    16r5492 " <CJK> " 
           "16r5271"    16r547B " <CJK> " 
           "16r5272"    16r5480 " <CJK> " 
           "16r5273"    16r5476 " <CJK> " 
           "16r5274"    16r5484 " <CJK> " 
           "16r5275"    16r5490 " <CJK> " 
           "16r5276"    16r5486 " <CJK> " 
           "16r5277"    16r54C7 " <CJK> " 
           "16r5278"    16r54A2 " <CJK> " 
           "16r5279"    16r54B8 " <CJK> " 
           "16r527A"    16r54A5 " <CJK> " 
           "16r527B"    16r54AC " <CJK> " 
           "16r527C"    16r54C4 " <CJK> " 
           "16r527D"    16r54C8 " <CJK> " 
           "16r527E"    16r54A8 " <CJK> " 
           ) at:(code - 16r5220).
    ].
    code <= 16r5320 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r537E ifTrue:[
        ^ #(
           "16r5321"    16r54AB " <CJK> " 
           "16r5322"    16r54C2 " <CJK> " 
           "16r5323"    16r54A4 " <CJK> " 
           "16r5324"    16r54BE " <CJK> " 
           "16r5325"    16r54BC " <CJK> " 
           "16r5326"    16r54D8 " <CJK> " 
           "16r5327"    16r54E5 " <CJK> " 
           "16r5328"    16r54E6 " <CJK> " 
           "16r5329"    16r550F " <CJK> " 
           "16r532A"    16r5514 " <CJK> " 
           "16r532B"    16r54FD " <CJK> " 
           "16r532C"    16r54EE " <CJK> " 
           "16r532D"    16r54ED " <CJK> " 
           "16r532E"    16r54FA " <CJK> " 
           "16r532F"    16r54E2 " <CJK> " 
           "16r5330"    16r5539 " <CJK> " 
           "16r5331"    16r5540 " <CJK> " 
           "16r5332"    16r5563 " <CJK> " 
           "16r5333"    16r554C " <CJK> " 
           "16r5334"    16r552E " <CJK> " 
           "16r5335"    16r555C " <CJK> " 
           "16r5336"    16r5545 " <CJK> " 
           "16r5337"    16r5556 " <CJK> " 
           "16r5338"    16r5557 " <CJK> " 
           "16r5339"    16r5538 " <CJK> " 
           "16r533A"    16r5533 " <CJK> " 
           "16r533B"    16r555D " <CJK> " 
           "16r533C"    16r5599 " <CJK> " 
           "16r533D"    16r5580 " <CJK> " 
           "16r533E"    16r54AF " <CJK> " 
           "16r533F"    16r558A " <CJK> " 
           "16r5340"    16r559F " <CJK> " 
           "16r5341"    16r557B " <CJK> " 
           "16r5342"    16r557E " <CJK> " 
           "16r5343"    16r5598 " <CJK> " 
           "16r5344"    16r559E " <CJK> " 
           "16r5345"    16r55AE " <CJK> " 
           "16r5346"    16r557C " <CJK> " 
           "16r5347"    16r5583 " <CJK> " 
           "16r5348"    16r55A9 " <CJK> " 
           "16r5349"    16r5587 " <CJK> " 
           "16r534A"    16r55A8 " <CJK> " 
           "16r534B"    16r55DA " <CJK> " 
           "16r534C"    16r55C5 " <CJK> " 
           "16r534D"    16r55DF " <CJK> " 
           "16r534E"    16r55C4 " <CJK> " 
           "16r534F"    16r55DC " <CJK> " 
           "16r5350"    16r55E4 " <CJK> " 
           "16r5351"    16r55D4 " <CJK> " 
           "16r5352"    16r5614 " <CJK> " 
           "16r5353"    16r55F7 " <CJK> " 
           "16r5354"    16r5616 " <CJK> " 
           "16r5355"    16r55FE " <CJK> " 
           "16r5356"    16r55FD " <CJK> " 
           "16r5357"    16r561B " <CJK> " 
           "16r5358"    16r55F9 " <CJK> " 
           "16r5359"    16r564E " <CJK> " 
           "16r535A"    16r5650 " <CJK> " 
           "16r535B"    16r71DF " <CJK> " 
           "16r535C"    16r5634 " <CJK> " 
           "16r535D"    16r5636 " <CJK> " 
           "16r535E"    16r5632 " <CJK> " 
           "16r535F"    16r5638 " <CJK> " 
           "16r5360"    16r566B " <CJK> " 
           "16r5361"    16r5664 " <CJK> " 
           "16r5362"    16r562F " <CJK> " 
           "16r5363"    16r566C " <CJK> " 
           "16r5364"    16r566A " <CJK> " 
           "16r5365"    16r5686 " <CJK> " 
           "16r5366"    16r5680 " <CJK> " 
           "16r5367"    16r568A " <CJK> " 
           "16r5368"    16r56A0 " <CJK> " 
           "16r5369"    16r5694 " <CJK> " 
           "16r536A"    16r568F " <CJK> " 
           "16r536B"    16r56A5 " <CJK> " 
           "16r536C"    16r56AE " <CJK> " 
           "16r536D"    16r56B6 " <CJK> " 
           "16r536E"    16r56B4 " <CJK> " 
           "16r536F"    16r56C2 " <CJK> " 
           "16r5370"    16r56BC " <CJK> " 
           "16r5371"    16r56C1 " <CJK> " 
           "16r5372"    16r56C3 " <CJK> " 
           "16r5373"    16r56C0 " <CJK> " 
           "16r5374"    16r56C8 " <CJK> " 
           "16r5375"    16r56CE " <CJK> " 
           "16r5376"    16r56D1 " <CJK> " 
           "16r5377"    16r56D3 " <CJK> " 
           "16r5378"    16r56D7 " <CJK> " 
           "16r5379"    16r56EE " <CJK> " 
           "16r537A"    16r56F9 " <CJK> " 
           "16r537B"    16r5700 " <CJK> " 
           "16r537C"    16r56FF " <CJK> " 
           "16r537D"    16r5704 " <CJK> " 
           "16r537E"    16r5709 " <CJK> " 
           ) at:(code - 16r5320).
    ].
    code <= 16r5420 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r547E ifTrue:[
        ^ #(
           "16r5421"    16r5708 " <CJK> " 
           "16r5422"    16r570B " <CJK> " 
           "16r5423"    16r570D " <CJK> " 
           "16r5424"    16r5713 " <CJK> " 
           "16r5425"    16r5718 " <CJK> " 
           "16r5426"    16r5716 " <CJK> " 
           "16r5427"    16r55C7 " <CJK> " 
           "16r5428"    16r571C " <CJK> " 
           "16r5429"    16r5726 " <CJK> " 
           "16r542A"    16r5737 " <CJK> " 
           "16r542B"    16r5738 " <CJK> " 
           "16r542C"    16r574E " <CJK> " 
           "16r542D"    16r573B " <CJK> " 
           "16r542E"    16r5740 " <CJK> " 
           "16r542F"    16r574F " <CJK> " 
           "16r5430"    16r5769 " <CJK> " 
           "16r5431"    16r57C0 " <CJK> " 
           "16r5432"    16r5788 " <CJK> " 
           "16r5433"    16r5761 " <CJK> " 
           "16r5434"    16r577F " <CJK> " 
           "16r5435"    16r5789 " <CJK> " 
           "16r5436"    16r5793 " <CJK> " 
           "16r5437"    16r57A0 " <CJK> " 
           "16r5438"    16r57B3 " <CJK> " 
           "16r5439"    16r57A4 " <CJK> " 
           "16r543A"    16r57AA " <CJK> " 
           "16r543B"    16r57B0 " <CJK> " 
           "16r543C"    16r57C3 " <CJK> " 
           "16r543D"    16r57C6 " <CJK> " 
           "16r543E"    16r57D4 " <CJK> " 
           "16r543F"    16r57D2 " <CJK> " 
           "16r5440"    16r57D3 " <CJK> " 
           "16r5441"    16r580A " <CJK> " 
           "16r5442"    16r57D6 " <CJK> " 
           "16r5443"    16r57E3 " <CJK> " 
           "16r5444"    16r580B " <CJK> " 
           "16r5445"    16r5819 " <CJK> " 
           "16r5446"    16r581D " <CJK> " 
           "16r5447"    16r5872 " <CJK> " 
           "16r5448"    16r5821 " <CJK> " 
           "16r5449"    16r5862 " <CJK> " 
           "16r544A"    16r584B " <CJK> " 
           "16r544B"    16r5870 " <CJK> " 
           "16r544C"    16r6BC0 " <CJK> " 
           "16r544D"    16r5852 " <CJK> " 
           "16r544E"    16r583D " <CJK> " 
           "16r544F"    16r5879 " <CJK> " 
           "16r5450"    16r5885 " <CJK> " 
           "16r5451"    16r58B9 " <CJK> " 
           "16r5452"    16r589F " <CJK> " 
           "16r5453"    16r58AB " <CJK> " 
           "16r5454"    16r58BA " <CJK> " 
           "16r5455"    16r58DE " <CJK> " 
           "16r5456"    16r58BB " <CJK> " 
           "16r5457"    16r58B8 " <CJK> " 
           "16r5458"    16r58AE " <CJK> " 
           "16r5459"    16r58C5 " <CJK> " 
           "16r545A"    16r58D3 " <CJK> " 
           "16r545B"    16r58D1 " <CJK> " 
           "16r545C"    16r58D7 " <CJK> " 
           "16r545D"    16r58D9 " <CJK> " 
           "16r545E"    16r58D8 " <CJK> " 
           "16r545F"    16r58E5 " <CJK> " 
           "16r5460"    16r58DC " <CJK> " 
           "16r5461"    16r58E4 " <CJK> " 
           "16r5462"    16r58DF " <CJK> " 
           "16r5463"    16r58EF " <CJK> " 
           "16r5464"    16r58FA " <CJK> " 
           "16r5465"    16r58F9 " <CJK> " 
           "16r5466"    16r58FB " <CJK> " 
           "16r5467"    16r58FC " <CJK> " 
           "16r5468"    16r58FD " <CJK> " 
           "16r5469"    16r5902 " <CJK> " 
           "16r546A"    16r590A " <CJK> " 
           "16r546B"    16r5910 " <CJK> " 
           "16r546C"    16r591B " <CJK> " 
           "16r546D"    16r68A6 " <CJK> " 
           "16r546E"    16r5925 " <CJK> " 
           "16r546F"    16r592C " <CJK> " 
           "16r5470"    16r592D " <CJK> " 
           "16r5471"    16r5932 " <CJK> " 
           "16r5472"    16r5938 " <CJK> " 
           "16r5473"    16r593E " <CJK> " 
           "16r5474"    16r7AD2 " <CJK> " 
           "16r5475"    16r5955 " <CJK> " 
           "16r5476"    16r5950 " <CJK> " 
           "16r5477"    16r594E " <CJK> " 
           "16r5478"    16r595A " <CJK> " 
           "16r5479"    16r5958 " <CJK> " 
           "16r547A"    16r5962 " <CJK> " 
           "16r547B"    16r5960 " <CJK> " 
           "16r547C"    16r5967 " <CJK> " 
           "16r547D"    16r596C " <CJK> " 
           "16r547E"    16r5969 " <CJK> " 
           ) at:(code - 16r5420).
    ].
    code <= 16r5520 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r557E ifTrue:[
        ^ #(
           "16r5521"    16r5978 " <CJK> " 
           "16r5522"    16r5981 " <CJK> " 
           "16r5523"    16r599D " <CJK> " 
           "16r5524"    16r4F5E " <CJK> " 
           "16r5525"    16r4FAB " <CJK> " 
           "16r5526"    16r59A3 " <CJK> " 
           "16r5527"    16r59B2 " <CJK> " 
           "16r5528"    16r59C6 " <CJK> " 
           "16r5529"    16r59E8 " <CJK> " 
           "16r552A"    16r59DC " <CJK> " 
           "16r552B"    16r598D " <CJK> " 
           "16r552C"    16r59D9 " <CJK> " 
           "16r552D"    16r59DA " <CJK> " 
           "16r552E"    16r5A25 " <CJK> " 
           "16r552F"    16r5A1F " <CJK> " 
           "16r5530"    16r5A11 " <CJK> " 
           "16r5531"    16r5A1C " <CJK> " 
           "16r5532"    16r5A09 " <CJK> " 
           "16r5533"    16r5A1A " <CJK> " 
           "16r5534"    16r5A40 " <CJK> " 
           "16r5535"    16r5A6C " <CJK> " 
           "16r5536"    16r5A49 " <CJK> " 
           "16r5537"    16r5A35 " <CJK> " 
           "16r5538"    16r5A36 " <CJK> " 
           "16r5539"    16r5A62 " <CJK> " 
           "16r553A"    16r5A6A " <CJK> " 
           "16r553B"    16r5A9A " <CJK> " 
           "16r553C"    16r5ABC " <CJK> " 
           "16r553D"    16r5ABE " <CJK> " 
           "16r553E"    16r5ACB " <CJK> " 
           "16r553F"    16r5AC2 " <CJK> " 
           "16r5540"    16r5ABD " <CJK> " 
           "16r5541"    16r5AE3 " <CJK> " 
           "16r5542"    16r5AD7 " <CJK> " 
           "16r5543"    16r5AE6 " <CJK> " 
           "16r5544"    16r5AE9 " <CJK> " 
           "16r5545"    16r5AD6 " <CJK> " 
           "16r5546"    16r5AFA " <CJK> " 
           "16r5547"    16r5AFB " <CJK> " 
           "16r5548"    16r5B0C " <CJK> " 
           "16r5549"    16r5B0B " <CJK> " 
           "16r554A"    16r5B16 " <CJK> " 
           "16r554B"    16r5B32 " <CJK> " 
           "16r554C"    16r5AD0 " <CJK> " 
           "16r554D"    16r5B2A " <CJK> " 
           "16r554E"    16r5B36 " <CJK> " 
           "16r554F"    16r5B3E " <CJK> " 
           "16r5550"    16r5B43 " <CJK> " 
           "16r5551"    16r5B45 " <CJK> " 
           "16r5552"    16r5B40 " <CJK> " 
           "16r5553"    16r5B51 " <CJK> " 
           "16r5554"    16r5B55 " <CJK> " 
           "16r5555"    16r5B5A " <CJK> " 
           "16r5556"    16r5B5B " <CJK> " 
           "16r5557"    16r5B65 " <CJK> " 
           "16r5558"    16r5B69 " <CJK> " 
           "16r5559"    16r5B70 " <CJK> " 
           "16r555A"    16r5B73 " <CJK> " 
           "16r555B"    16r5B75 " <CJK> " 
           "16r555C"    16r5B78 " <CJK> " 
           "16r555D"    16r6588 " <CJK> " 
           "16r555E"    16r5B7A " <CJK> " 
           "16r555F"    16r5B80 " <CJK> " 
           "16r5560"    16r5B83 " <CJK> " 
           "16r5561"    16r5BA6 " <CJK> " 
           "16r5562"    16r5BB8 " <CJK> " 
           "16r5563"    16r5BC3 " <CJK> " 
           "16r5564"    16r5BC7 " <CJK> " 
           "16r5565"    16r5BC9 " <CJK> " 
           "16r5566"    16r5BD4 " <CJK> " 
           "16r5567"    16r5BD0 " <CJK> " 
           "16r5568"    16r5BE4 " <CJK> " 
           "16r5569"    16r5BE6 " <CJK> " 
           "16r556A"    16r5BE2 " <CJK> " 
           "16r556B"    16r5BDE " <CJK> " 
           "16r556C"    16r5BE5 " <CJK> " 
           "16r556D"    16r5BEB " <CJK> " 
           "16r556E"    16r5BF0 " <CJK> " 
           "16r556F"    16r5BF6 " <CJK> " 
           "16r5570"    16r5BF3 " <CJK> " 
           "16r5571"    16r5C05 " <CJK> " 
           "16r5572"    16r5C07 " <CJK> " 
           "16r5573"    16r5C08 " <CJK> " 
           "16r5574"    16r5C0D " <CJK> " 
           "16r5575"    16r5C13 " <CJK> " 
           "16r5576"    16r5C20 " <CJK> " 
           "16r5577"    16r5C22 " <CJK> " 
           "16r5578"    16r5C28 " <CJK> " 
           "16r5579"    16r5C38 " <CJK> " 
           "16r557A"    16r5C39 " <CJK> " 
           "16r557B"    16r5C41 " <CJK> " 
           "16r557C"    16r5C46 " <CJK> " 
           "16r557D"    16r5C4E " <CJK> " 
           "16r557E"    16r5C53 " <CJK> " 
           ) at:(code - 16r5520).
    ].
    code <= 16r5620 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r567E ifTrue:[
        ^ #(
           "16r5621"    16r5C50 " <CJK> " 
           "16r5622"    16r5C4F " <CJK> " 
           "16r5623"    16r5B71 " <CJK> " 
           "16r5624"    16r5C6C " <CJK> " 
           "16r5625"    16r5C6E " <CJK> " 
           "16r5626"    16r4E62 " <CJK> " 
           "16r5627"    16r5C76 " <CJK> " 
           "16r5628"    16r5C79 " <CJK> " 
           "16r5629"    16r5C8C " <CJK> " 
           "16r562A"    16r5C91 " <CJK> " 
           "16r562B"    16r5C94 " <CJK> " 
           "16r562C"    16r599B " <CJK> " 
           "16r562D"    16r5CAB " <CJK> " 
           "16r562E"    16r5CBB " <CJK> " 
           "16r562F"    16r5CB6 " <CJK> " 
           "16r5630"    16r5CBC " <CJK> " 
           "16r5631"    16r5CB7 " <CJK> " 
           "16r5632"    16r5CC5 " <CJK> " 
           "16r5633"    16r5CBE " <CJK> " 
           "16r5634"    16r5CC7 " <CJK> " 
           "16r5635"    16r5CD9 " <CJK> " 
           "16r5636"    16r5CE9 " <CJK> " 
           "16r5637"    16r5CFD " <CJK> " 
           "16r5638"    16r5CFA " <CJK> " 
           "16r5639"    16r5CED " <CJK> " 
           "16r563A"    16r5D8C " <CJK> " 
           "16r563B"    16r5CEA " <CJK> " 
           "16r563C"    16r5D0B " <CJK> " 
           "16r563D"    16r5D15 " <CJK> " 
           "16r563E"    16r5D17 " <CJK> " 
           "16r563F"    16r5D5C " <CJK> " 
           "16r5640"    16r5D1F " <CJK> " 
           "16r5641"    16r5D1B " <CJK> " 
           "16r5642"    16r5D11 " <CJK> " 
           "16r5643"    16r5D14 " <CJK> " 
           "16r5644"    16r5D22 " <CJK> " 
           "16r5645"    16r5D1A " <CJK> " 
           "16r5646"    16r5D19 " <CJK> " 
           "16r5647"    16r5D18 " <CJK> " 
           "16r5648"    16r5D4C " <CJK> " 
           "16r5649"    16r5D52 " <CJK> " 
           "16r564A"    16r5D4E " <CJK> " 
           "16r564B"    16r5D4B " <CJK> " 
           "16r564C"    16r5D6C " <CJK> " 
           "16r564D"    16r5D73 " <CJK> " 
           "16r564E"    16r5D76 " <CJK> " 
           "16r564F"    16r5D87 " <CJK> " 
           "16r5650"    16r5D84 " <CJK> " 
           "16r5651"    16r5D82 " <CJK> " 
           "16r5652"    16r5DA2 " <CJK> " 
           "16r5653"    16r5D9D " <CJK> " 
           "16r5654"    16r5DAC " <CJK> " 
           "16r5655"    16r5DAE " <CJK> " 
           "16r5656"    16r5DBD " <CJK> " 
           "16r5657"    16r5D90 " <CJK> " 
           "16r5658"    16r5DB7 " <CJK> " 
           "16r5659"    16r5DBC " <CJK> " 
           "16r565A"    16r5DC9 " <CJK> " 
           "16r565B"    16r5DCD " <CJK> " 
           "16r565C"    16r5DD3 " <CJK> " 
           "16r565D"    16r5DD2 " <CJK> " 
           "16r565E"    16r5DD6 " <CJK> " 
           "16r565F"    16r5DDB " <CJK> " 
           "16r5660"    16r5DEB " <CJK> " 
           "16r5661"    16r5DF2 " <CJK> " 
           "16r5662"    16r5DF5 " <CJK> " 
           "16r5663"    16r5E0B " <CJK> " 
           "16r5664"    16r5E1A " <CJK> " 
           "16r5665"    16r5E19 " <CJK> " 
           "16r5666"    16r5E11 " <CJK> " 
           "16r5667"    16r5E1B " <CJK> " 
           "16r5668"    16r5E36 " <CJK> " 
           "16r5669"    16r5E37 " <CJK> " 
           "16r566A"    16r5E44 " <CJK> " 
           "16r566B"    16r5E43 " <CJK> " 
           "16r566C"    16r5E40 " <CJK> " 
           "16r566D"    16r5E4E " <CJK> " 
           "16r566E"    16r5E57 " <CJK> " 
           "16r566F"    16r5E54 " <CJK> " 
           "16r5670"    16r5E5F " <CJK> " 
           "16r5671"    16r5E62 " <CJK> " 
           "16r5672"    16r5E64 " <CJK> " 
           "16r5673"    16r5E47 " <CJK> " 
           "16r5674"    16r5E75 " <CJK> " 
           "16r5675"    16r5E76 " <CJK> " 
           "16r5676"    16r5E7A " <CJK> " 
           "16r5677"    16r9EBC " <CJK> " 
           "16r5678"    16r5E7F " <CJK> " 
           "16r5679"    16r5EA0 " <CJK> " 
           "16r567A"    16r5EC1 " <CJK> " 
           "16r567B"    16r5EC2 " <CJK> " 
           "16r567C"    16r5EC8 " <CJK> " 
           "16r567D"    16r5ED0 " <CJK> " 
           "16r567E"    16r5ECF " <CJK> " 
           ) at:(code - 16r5620).
    ].
    code <= 16r5720 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r577E ifTrue:[
        ^ #(
           "16r5721"    16r5ED6 " <CJK> " 
           "16r5722"    16r5EE3 " <CJK> " 
           "16r5723"    16r5EDD " <CJK> " 
           "16r5724"    16r5EDA " <CJK> " 
           "16r5725"    16r5EDB " <CJK> " 
           "16r5726"    16r5EE2 " <CJK> " 
           "16r5727"    16r5EE1 " <CJK> " 
           "16r5728"    16r5EE8 " <CJK> " 
           "16r5729"    16r5EE9 " <CJK> " 
           "16r572A"    16r5EEC " <CJK> " 
           "16r572B"    16r5EF1 " <CJK> " 
           "16r572C"    16r5EF3 " <CJK> " 
           "16r572D"    16r5EF0 " <CJK> " 
           "16r572E"    16r5EF4 " <CJK> " 
           "16r572F"    16r5EF8 " <CJK> " 
           "16r5730"    16r5EFE " <CJK> " 
           "16r5731"    16r5F03 " <CJK> " 
           "16r5732"    16r5F09 " <CJK> " 
           "16r5733"    16r5F5D " <CJK> " 
           "16r5734"    16r5F5C " <CJK> " 
           "16r5735"    16r5F0B " <CJK> " 
           "16r5736"    16r5F11 " <CJK> " 
           "16r5737"    16r5F16 " <CJK> " 
           "16r5738"    16r5F29 " <CJK> " 
           "16r5739"    16r5F2D " <CJK> " 
           "16r573A"    16r5F38 " <CJK> " 
           "16r573B"    16r5F41 " <CJK> " 
           "16r573C"    16r5F48 " <CJK> " 
           "16r573D"    16r5F4C " <CJK> " 
           "16r573E"    16r5F4E " <CJK> " 
           "16r573F"    16r5F2F " <CJK> " 
           "16r5740"    16r5F51 " <CJK> " 
           "16r5741"    16r5F56 " <CJK> " 
           "16r5742"    16r5F57 " <CJK> " 
           "16r5743"    16r5F59 " <CJK> " 
           "16r5744"    16r5F61 " <CJK> " 
           "16r5745"    16r5F6D " <CJK> " 
           "16r5746"    16r5F73 " <CJK> " 
           "16r5747"    16r5F77 " <CJK> " 
           "16r5748"    16r5F83 " <CJK> " 
           "16r5749"    16r5F82 " <CJK> " 
           "16r574A"    16r5F7F " <CJK> " 
           "16r574B"    16r5F8A " <CJK> " 
           "16r574C"    16r5F88 " <CJK> " 
           "16r574D"    16r5F91 " <CJK> " 
           "16r574E"    16r5F87 " <CJK> " 
           "16r574F"    16r5F9E " <CJK> " 
           "16r5750"    16r5F99 " <CJK> " 
           "16r5751"    16r5F98 " <CJK> " 
           "16r5752"    16r5FA0 " <CJK> " 
           "16r5753"    16r5FA8 " <CJK> " 
           "16r5754"    16r5FAD " <CJK> " 
           "16r5755"    16r5FBC " <CJK> " 
           "16r5756"    16r5FD6 " <CJK> " 
           "16r5757"    16r5FFB " <CJK> " 
           "16r5758"    16r5FE4 " <CJK> " 
           "16r5759"    16r5FF8 " <CJK> " 
           "16r575A"    16r5FF1 " <CJK> " 
           "16r575B"    16r5FDD " <CJK> " 
           "16r575C"    16r60B3 " <CJK> " 
           "16r575D"    16r5FFF " <CJK> " 
           "16r575E"    16r6021 " <CJK> " 
           "16r575F"    16r6060 " <CJK> " 
           "16r5760"    16r6019 " <CJK> " 
           "16r5761"    16r6010 " <CJK> " 
           "16r5762"    16r6029 " <CJK> " 
           "16r5763"    16r600E " <CJK> " 
           "16r5764"    16r6031 " <CJK> " 
           "16r5765"    16r601B " <CJK> " 
           "16r5766"    16r6015 " <CJK> " 
           "16r5767"    16r602B " <CJK> " 
           "16r5768"    16r6026 " <CJK> " 
           "16r5769"    16r600F " <CJK> " 
           "16r576A"    16r603A " <CJK> " 
           "16r576B"    16r605A " <CJK> " 
           "16r576C"    16r6041 " <CJK> " 
           "16r576D"    16r606A " <CJK> " 
           "16r576E"    16r6077 " <CJK> " 
           "16r576F"    16r605F " <CJK> " 
           "16r5770"    16r604A " <CJK> " 
           "16r5771"    16r6046 " <CJK> " 
           "16r5772"    16r604D " <CJK> " 
           "16r5773"    16r6063 " <CJK> " 
           "16r5774"    16r6043 " <CJK> " 
           "16r5775"    16r6064 " <CJK> " 
           "16r5776"    16r6042 " <CJK> " 
           "16r5777"    16r606C " <CJK> " 
           "16r5778"    16r606B " <CJK> " 
           "16r5779"    16r6059 " <CJK> " 
           "16r577A"    16r6081 " <CJK> " 
           "16r577B"    16r608D " <CJK> " 
           "16r577C"    16r60E7 " <CJK> " 
           "16r577D"    16r6083 " <CJK> " 
           "16r577E"    16r609A " <CJK> " 
           ) at:(code - 16r5720).
    ].
    code <= 16r5820 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r587E ifTrue:[
        ^ #(
           "16r5821"    16r6084 " <CJK> " 
           "16r5822"    16r609B " <CJK> " 
           "16r5823"    16r6096 " <CJK> " 
           "16r5824"    16r6097 " <CJK> " 
           "16r5825"    16r6092 " <CJK> " 
           "16r5826"    16r60A7 " <CJK> " 
           "16r5827"    16r608B " <CJK> " 
           "16r5828"    16r60E1 " <CJK> " 
           "16r5829"    16r60B8 " <CJK> " 
           "16r582A"    16r60E0 " <CJK> " 
           "16r582B"    16r60D3 " <CJK> " 
           "16r582C"    16r60B4 " <CJK> " 
           "16r582D"    16r5FF0 " <CJK> " 
           "16r582E"    16r60BD " <CJK> " 
           "16r582F"    16r60C6 " <CJK> " 
           "16r5830"    16r60B5 " <CJK> " 
           "16r5831"    16r60D8 " <CJK> " 
           "16r5832"    16r614D " <CJK> " 
           "16r5833"    16r6115 " <CJK> " 
           "16r5834"    16r6106 " <CJK> " 
           "16r5835"    16r60F6 " <CJK> " 
           "16r5836"    16r60F7 " <CJK> " 
           "16r5837"    16r6100 " <CJK> " 
           "16r5838"    16r60F4 " <CJK> " 
           "16r5839"    16r60FA " <CJK> " 
           "16r583A"    16r6103 " <CJK> " 
           "16r583B"    16r6121 " <CJK> " 
           "16r583C"    16r60FB " <CJK> " 
           "16r583D"    16r60F1 " <CJK> " 
           "16r583E"    16r610D " <CJK> " 
           "16r583F"    16r610E " <CJK> " 
           "16r5840"    16r6147 " <CJK> " 
           "16r5841"    16r613E " <CJK> " 
           "16r5842"    16r6128 " <CJK> " 
           "16r5843"    16r6127 " <CJK> " 
           "16r5844"    16r614A " <CJK> " 
           "16r5845"    16r613F " <CJK> " 
           "16r5846"    16r613C " <CJK> " 
           "16r5847"    16r612C " <CJK> " 
           "16r5848"    16r6134 " <CJK> " 
           "16r5849"    16r613D " <CJK> " 
           "16r584A"    16r6142 " <CJK> " 
           "16r584B"    16r6144 " <CJK> " 
           "16r584C"    16r6173 " <CJK> " 
           "16r584D"    16r6177 " <CJK> " 
           "16r584E"    16r6158 " <CJK> " 
           "16r584F"    16r6159 " <CJK> " 
           "16r5850"    16r615A " <CJK> " 
           "16r5851"    16r616B " <CJK> " 
           "16r5852"    16r6174 " <CJK> " 
           "16r5853"    16r616F " <CJK> " 
           "16r5854"    16r6165 " <CJK> " 
           "16r5855"    16r6171 " <CJK> " 
           "16r5856"    16r615F " <CJK> " 
           "16r5857"    16r615D " <CJK> " 
           "16r5858"    16r6153 " <CJK> " 
           "16r5859"    16r6175 " <CJK> " 
           "16r585A"    16r6199 " <CJK> " 
           "16r585B"    16r6196 " <CJK> " 
           "16r585C"    16r6187 " <CJK> " 
           "16r585D"    16r61AC " <CJK> " 
           "16r585E"    16r6194 " <CJK> " 
           "16r585F"    16r619A " <CJK> " 
           "16r5860"    16r618A " <CJK> " 
           "16r5861"    16r6191 " <CJK> " 
           "16r5862"    16r61AB " <CJK> " 
           "16r5863"    16r61AE " <CJK> " 
           "16r5864"    16r61CC " <CJK> " 
           "16r5865"    16r61CA " <CJK> " 
           "16r5866"    16r61C9 " <CJK> " 
           "16r5867"    16r61F7 " <CJK> " 
           "16r5868"    16r61C8 " <CJK> " 
           "16r5869"    16r61C3 " <CJK> " 
           "16r586A"    16r61C6 " <CJK> " 
           "16r586B"    16r61BA " <CJK> " 
           "16r586C"    16r61CB " <CJK> " 
           "16r586D"    16r7F79 " <CJK> " 
           "16r586E"    16r61CD " <CJK> " 
           "16r586F"    16r61E6 " <CJK> " 
           "16r5870"    16r61E3 " <CJK> " 
           "16r5871"    16r61F6 " <CJK> " 
           "16r5872"    16r61FA " <CJK> " 
           "16r5873"    16r61F4 " <CJK> " 
           "16r5874"    16r61FF " <CJK> " 
           "16r5875"    16r61FD " <CJK> " 
           "16r5876"    16r61FC " <CJK> " 
           "16r5877"    16r61FE " <CJK> " 
           "16r5878"    16r6200 " <CJK> " 
           "16r5879"    16r6208 " <CJK> " 
           "16r587A"    16r6209 " <CJK> " 
           "16r587B"    16r620D " <CJK> " 
           "16r587C"    16r620C " <CJK> " 
           "16r587D"    16r6214 " <CJK> " 
           "16r587E"    16r621B " <CJK> " 
           ) at:(code - 16r5820).
    ].
    code <= 16r5920 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r597E ifTrue:[
        ^ #(
           "16r5921"    16r621E " <CJK> " 
           "16r5922"    16r6221 " <CJK> " 
           "16r5923"    16r622A " <CJK> " 
           "16r5924"    16r622E " <CJK> " 
           "16r5925"    16r6230 " <CJK> " 
           "16r5926"    16r6232 " <CJK> " 
           "16r5927"    16r6233 " <CJK> " 
           "16r5928"    16r6241 " <CJK> " 
           "16r5929"    16r624E " <CJK> " 
           "16r592A"    16r625E " <CJK> " 
           "16r592B"    16r6263 " <CJK> " 
           "16r592C"    16r625B " <CJK> " 
           "16r592D"    16r6260 " <CJK> " 
           "16r592E"    16r6268 " <CJK> " 
           "16r592F"    16r627C " <CJK> " 
           "16r5930"    16r6282 " <CJK> " 
           "16r5931"    16r6289 " <CJK> " 
           "16r5932"    16r627E " <CJK> " 
           "16r5933"    16r6292 " <CJK> " 
           "16r5934"    16r6293 " <CJK> " 
           "16r5935"    16r6296 " <CJK> " 
           "16r5936"    16r62D4 " <CJK> " 
           "16r5937"    16r6283 " <CJK> " 
           "16r5938"    16r6294 " <CJK> " 
           "16r5939"    16r62D7 " <CJK> " 
           "16r593A"    16r62D1 " <CJK> " 
           "16r593B"    16r62BB " <CJK> " 
           "16r593C"    16r62CF " <CJK> " 
           "16r593D"    16r62FF " <CJK> " 
           "16r593E"    16r62C6 " <CJK> " 
           "16r593F"    16r64D4 " <CJK> " 
           "16r5940"    16r62C8 " <CJK> " 
           "16r5941"    16r62DC " <CJK> " 
           "16r5942"    16r62CC " <CJK> " 
           "16r5943"    16r62CA " <CJK> " 
           "16r5944"    16r62C2 " <CJK> " 
           "16r5945"    16r62C7 " <CJK> " 
           "16r5946"    16r629B " <CJK> " 
           "16r5947"    16r62C9 " <CJK> " 
           "16r5948"    16r630C " <CJK> " 
           "16r5949"    16r62EE " <CJK> " 
           "16r594A"    16r62F1 " <CJK> " 
           "16r594B"    16r6327 " <CJK> " 
           "16r594C"    16r6302 " <CJK> " 
           "16r594D"    16r6308 " <CJK> " 
           "16r594E"    16r62EF " <CJK> " 
           "16r594F"    16r62F5 " <CJK> " 
           "16r5950"    16r6350 " <CJK> " 
           "16r5951"    16r633E " <CJK> " 
           "16r5952"    16r634D " <CJK> " 
           "16r5953"    16r641C " <CJK> " 
           "16r5954"    16r634F " <CJK> " 
           "16r5955"    16r6396 " <CJK> " 
           "16r5956"    16r638E " <CJK> " 
           "16r5957"    16r6380 " <CJK> " 
           "16r5958"    16r63AB " <CJK> " 
           "16r5959"    16r6376 " <CJK> " 
           "16r595A"    16r63A3 " <CJK> " 
           "16r595B"    16r638F " <CJK> " 
           "16r595C"    16r6389 " <CJK> " 
           "16r595D"    16r639F " <CJK> " 
           "16r595E"    16r63B5 " <CJK> " 
           "16r595F"    16r636B " <CJK> " 
           "16r5960"    16r6369 " <CJK> " 
           "16r5961"    16r63BE " <CJK> " 
           "16r5962"    16r63E9 " <CJK> " 
           "16r5963"    16r63C0 " <CJK> " 
           "16r5964"    16r63C6 " <CJK> " 
           "16r5965"    16r63E3 " <CJK> " 
           "16r5966"    16r63C9 " <CJK> " 
           "16r5967"    16r63D2 " <CJK> " 
           "16r5968"    16r63F6 " <CJK> " 
           "16r5969"    16r63C4 " <CJK> " 
           "16r596A"    16r6416 " <CJK> " 
           "16r596B"    16r6434 " <CJK> " 
           "16r596C"    16r6406 " <CJK> " 
           "16r596D"    16r6413 " <CJK> " 
           "16r596E"    16r6426 " <CJK> " 
           "16r596F"    16r6436 " <CJK> " 
           "16r5970"    16r651D " <CJK> " 
           "16r5971"    16r6417 " <CJK> " 
           "16r5972"    16r6428 " <CJK> " 
           "16r5973"    16r640F " <CJK> " 
           "16r5974"    16r6467 " <CJK> " 
           "16r5975"    16r646F " <CJK> " 
           "16r5976"    16r6476 " <CJK> " 
           "16r5977"    16r644E " <CJK> " 
           "16r5978"    16r652A " <CJK> " 
           "16r5979"    16r6495 " <CJK> " 
           "16r597A"    16r6493 " <CJK> " 
           "16r597B"    16r64A5 " <CJK> " 
           "16r597C"    16r64A9 " <CJK> " 
           "16r597D"    16r6488 " <CJK> " 
           "16r597E"    16r64BC " <CJK> " 
           ) at:(code - 16r5920).
    ].
    code <= 16r5A20 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r5A7E ifTrue:[
        ^ #(
           "16r5A21"    16r64DA " <CJK> " 
           "16r5A22"    16r64D2 " <CJK> " 
           "16r5A23"    16r64C5 " <CJK> " 
           "16r5A24"    16r64C7 " <CJK> " 
           "16r5A25"    16r64BB " <CJK> " 
           "16r5A26"    16r64D8 " <CJK> " 
           "16r5A27"    16r64C2 " <CJK> " 
           "16r5A28"    16r64F1 " <CJK> " 
           "16r5A29"    16r64E7 " <CJK> " 
           "16r5A2A"    16r8209 " <CJK> " 
           "16r5A2B"    16r64E0 " <CJK> " 
           "16r5A2C"    16r64E1 " <CJK> " 
           "16r5A2D"    16r62AC " <CJK> " 
           "16r5A2E"    16r64E3 " <CJK> " 
           "16r5A2F"    16r64EF " <CJK> " 
           "16r5A30"    16r652C " <CJK> " 
           "16r5A31"    16r64F6 " <CJK> " 
           "16r5A32"    16r64F4 " <CJK> " 
           "16r5A33"    16r64F2 " <CJK> " 
           "16r5A34"    16r64FA " <CJK> " 
           "16r5A35"    16r6500 " <CJK> " 
           "16r5A36"    16r64FD " <CJK> " 
           "16r5A37"    16r6518 " <CJK> " 
           "16r5A38"    16r651C " <CJK> " 
           "16r5A39"    16r6505 " <CJK> " 
           "16r5A3A"    16r6524 " <CJK> " 
           "16r5A3B"    16r6523 " <CJK> " 
           "16r5A3C"    16r652B " <CJK> " 
           "16r5A3D"    16r6534 " <CJK> " 
           "16r5A3E"    16r6535 " <CJK> " 
           "16r5A3F"    16r6537 " <CJK> " 
           "16r5A40"    16r6536 " <CJK> " 
           "16r5A41"    16r6538 " <CJK> " 
           "16r5A42"    16r754B " <CJK> " 
           "16r5A43"    16r6548 " <CJK> " 
           "16r5A44"    16r6556 " <CJK> " 
           "16r5A45"    16r6555 " <CJK> " 
           "16r5A46"    16r654D " <CJK> " 
           "16r5A47"    16r6558 " <CJK> " 
           "16r5A48"    16r655E " <CJK> " 
           "16r5A49"    16r655D " <CJK> " 
           "16r5A4A"    16r6572 " <CJK> " 
           "16r5A4B"    16r6578 " <CJK> " 
           "16r5A4C"    16r6582 " <CJK> " 
           "16r5A4D"    16r6583 " <CJK> " 
           "16r5A4E"    16r8B8A " <CJK> " 
           "16r5A4F"    16r659B " <CJK> " 
           "16r5A50"    16r659F " <CJK> " 
           "16r5A51"    16r65AB " <CJK> " 
           "16r5A52"    16r65B7 " <CJK> " 
           "16r5A53"    16r65C3 " <CJK> " 
           "16r5A54"    16r65C6 " <CJK> " 
           "16r5A55"    16r65C1 " <CJK> " 
           "16r5A56"    16r65C4 " <CJK> " 
           "16r5A57"    16r65CC " <CJK> " 
           "16r5A58"    16r65D2 " <CJK> " 
           "16r5A59"    16r65DB " <CJK> " 
           "16r5A5A"    16r65D9 " <CJK> " 
           "16r5A5B"    16r65E0 " <CJK> " 
           "16r5A5C"    16r65E1 " <CJK> " 
           "16r5A5D"    16r65F1 " <CJK> " 
           "16r5A5E"    16r6772 " <CJK> " 
           "16r5A5F"    16r660A " <CJK> " 
           "16r5A60"    16r6603 " <CJK> " 
           "16r5A61"    16r65FB " <CJK> " 
           "16r5A62"    16r6773 " <CJK> " 
           "16r5A63"    16r6635 " <CJK> " 
           "16r5A64"    16r6636 " <CJK> " 
           "16r5A65"    16r6634 " <CJK> " 
           "16r5A66"    16r661C " <CJK> " 
           "16r5A67"    16r664F " <CJK> " 
           "16r5A68"    16r6644 " <CJK> " 
           "16r5A69"    16r6649 " <CJK> " 
           "16r5A6A"    16r6641 " <CJK> " 
           "16r5A6B"    16r665E " <CJK> " 
           "16r5A6C"    16r665D " <CJK> " 
           "16r5A6D"    16r6664 " <CJK> " 
           "16r5A6E"    16r6667 " <CJK> " 
           "16r5A6F"    16r6668 " <CJK> " 
           "16r5A70"    16r665F " <CJK> " 
           "16r5A71"    16r6662 " <CJK> " 
           "16r5A72"    16r6670 " <CJK> " 
           "16r5A73"    16r6683 " <CJK> " 
           "16r5A74"    16r6688 " <CJK> " 
           "16r5A75"    16r668E " <CJK> " 
           "16r5A76"    16r6689 " <CJK> " 
           "16r5A77"    16r6684 " <CJK> " 
           "16r5A78"    16r6698 " <CJK> " 
           "16r5A79"    16r669D " <CJK> " 
           "16r5A7A"    16r66C1 " <CJK> " 
           "16r5A7B"    16r66B9 " <CJK> " 
           "16r5A7C"    16r66C9 " <CJK> " 
           "16r5A7D"    16r66BE " <CJK> " 
           "16r5A7E"    16r66BC " <CJK> " 
           ) at:(code - 16r5A20).
    ].
    code <= 16r5B20 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r5B7E ifTrue:[
        ^ #(
           "16r5B21"    16r66C4 " <CJK> " 
           "16r5B22"    16r66B8 " <CJK> " 
           "16r5B23"    16r66D6 " <CJK> " 
           "16r5B24"    16r66DA " <CJK> " 
           "16r5B25"    16r66E0 " <CJK> " 
           "16r5B26"    16r663F " <CJK> " 
           "16r5B27"    16r66E6 " <CJK> " 
           "16r5B28"    16r66E9 " <CJK> " 
           "16r5B29"    16r66F0 " <CJK> " 
           "16r5B2A"    16r66F5 " <CJK> " 
           "16r5B2B"    16r66F7 " <CJK> " 
           "16r5B2C"    16r670F " <CJK> " 
           "16r5B2D"    16r6716 " <CJK> " 
           "16r5B2E"    16r671E " <CJK> " 
           "16r5B2F"    16r6726 " <CJK> " 
           "16r5B30"    16r6727 " <CJK> " 
           "16r5B31"    16r9738 " <CJK> " 
           "16r5B32"    16r672E " <CJK> " 
           "16r5B33"    16r673F " <CJK> " 
           "16r5B34"    16r6736 " <CJK> " 
           "16r5B35"    16r6741 " <CJK> " 
           "16r5B36"    16r6738 " <CJK> " 
           "16r5B37"    16r6737 " <CJK> " 
           "16r5B38"    16r6746 " <CJK> " 
           "16r5B39"    16r675E " <CJK> " 
           "16r5B3A"    16r6760 " <CJK> " 
           "16r5B3B"    16r6759 " <CJK> " 
           "16r5B3C"    16r6763 " <CJK> " 
           "16r5B3D"    16r6764 " <CJK> " 
           "16r5B3E"    16r6789 " <CJK> " 
           "16r5B3F"    16r6770 " <CJK> " 
           "16r5B40"    16r67A9 " <CJK> " 
           "16r5B41"    16r677C " <CJK> " 
           "16r5B42"    16r676A " <CJK> " 
           "16r5B43"    16r678C " <CJK> " 
           "16r5B44"    16r678B " <CJK> " 
           "16r5B45"    16r67A6 " <CJK> " 
           "16r5B46"    16r67A1 " <CJK> " 
           "16r5B47"    16r6785 " <CJK> " 
           "16r5B48"    16r67B7 " <CJK> " 
           "16r5B49"    16r67EF " <CJK> " 
           "16r5B4A"    16r67B4 " <CJK> " 
           "16r5B4B"    16r67EC " <CJK> " 
           "16r5B4C"    16r67B3 " <CJK> " 
           "16r5B4D"    16r67E9 " <CJK> " 
           "16r5B4E"    16r67B8 " <CJK> " 
           "16r5B4F"    16r67E4 " <CJK> " 
           "16r5B50"    16r67DE " <CJK> " 
           "16r5B51"    16r67DD " <CJK> " 
           "16r5B52"    16r67E2 " <CJK> " 
           "16r5B53"    16r67EE " <CJK> " 
           "16r5B54"    16r67B9 " <CJK> " 
           "16r5B55"    16r67CE " <CJK> " 
           "16r5B56"    16r67C6 " <CJK> " 
           "16r5B57"    16r67E7 " <CJK> " 
           "16r5B58"    16r6A9C " <CJK> " 
           "16r5B59"    16r681E " <CJK> " 
           "16r5B5A"    16r6846 " <CJK> " 
           "16r5B5B"    16r6829 " <CJK> " 
           "16r5B5C"    16r6840 " <CJK> " 
           "16r5B5D"    16r684D " <CJK> " 
           "16r5B5E"    16r6832 " <CJK> " 
           "16r5B5F"    16r684E " <CJK> " 
           "16r5B60"    16r68B3 " <CJK> " 
           "16r5B61"    16r682B " <CJK> " 
           "16r5B62"    16r6859 " <CJK> " 
           "16r5B63"    16r6863 " <CJK> " 
           "16r5B64"    16r6877 " <CJK> " 
           "16r5B65"    16r687F " <CJK> " 
           "16r5B66"    16r689F " <CJK> " 
           "16r5B67"    16r688F " <CJK> " 
           "16r5B68"    16r68AD " <CJK> " 
           "16r5B69"    16r6894 " <CJK> " 
           "16r5B6A"    16r689D " <CJK> " 
           "16r5B6B"    16r689B " <CJK> " 
           "16r5B6C"    16r6883 " <CJK> " 
           "16r5B6D"    16r6AAE " <CJK> " 
           "16r5B6E"    16r68B9 " <CJK> " 
           "16r5B6F"    16r6874 " <CJK> " 
           "16r5B70"    16r68B5 " <CJK> " 
           "16r5B71"    16r68A0 " <CJK> " 
           "16r5B72"    16r68BA " <CJK> " 
           "16r5B73"    16r690F " <CJK> " 
           "16r5B74"    16r688D " <CJK> " 
           "16r5B75"    16r687E " <CJK> " 
           "16r5B76"    16r6901 " <CJK> " 
           "16r5B77"    16r68CA " <CJK> " 
           "16r5B78"    16r6908 " <CJK> " 
           "16r5B79"    16r68D8 " <CJK> " 
           "16r5B7A"    16r6922 " <CJK> " 
           "16r5B7B"    16r6926 " <CJK> " 
           "16r5B7C"    16r68E1 " <CJK> " 
           "16r5B7D"    16r690C " <CJK> " 
           "16r5B7E"    16r68CD " <CJK> " 
           ) at:(code - 16r5B20).
    ].
    code <= 16r5C20 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r5C7E ifTrue:[
        ^ #(
           "16r5C21"    16r68D4 " <CJK> " 
           "16r5C22"    16r68E7 " <CJK> " 
           "16r5C23"    16r68D5 " <CJK> " 
           "16r5C24"    16r6936 " <CJK> " 
           "16r5C25"    16r6912 " <CJK> " 
           "16r5C26"    16r6904 " <CJK> " 
           "16r5C27"    16r68D7 " <CJK> " 
           "16r5C28"    16r68E3 " <CJK> " 
           "16r5C29"    16r6925 " <CJK> " 
           "16r5C2A"    16r68F9 " <CJK> " 
           "16r5C2B"    16r68E0 " <CJK> " 
           "16r5C2C"    16r68EF " <CJK> " 
           "16r5C2D"    16r6928 " <CJK> " 
           "16r5C2E"    16r692A " <CJK> " 
           "16r5C2F"    16r691A " <CJK> " 
           "16r5C30"    16r6923 " <CJK> " 
           "16r5C31"    16r6921 " <CJK> " 
           "16r5C32"    16r68C6 " <CJK> " 
           "16r5C33"    16r6979 " <CJK> " 
           "16r5C34"    16r6977 " <CJK> " 
           "16r5C35"    16r695C " <CJK> " 
           "16r5C36"    16r6978 " <CJK> " 
           "16r5C37"    16r696B " <CJK> " 
           "16r5C38"    16r6954 " <CJK> " 
           "16r5C39"    16r697E " <CJK> " 
           "16r5C3A"    16r696E " <CJK> " 
           "16r5C3B"    16r6939 " <CJK> " 
           "16r5C3C"    16r6974 " <CJK> " 
           "16r5C3D"    16r693D " <CJK> " 
           "16r5C3E"    16r6959 " <CJK> " 
           "16r5C3F"    16r6930 " <CJK> " 
           "16r5C40"    16r6961 " <CJK> " 
           "16r5C41"    16r695E " <CJK> " 
           "16r5C42"    16r695D " <CJK> " 
           "16r5C43"    16r6981 " <CJK> " 
           "16r5C44"    16r696A " <CJK> " 
           "16r5C45"    16r69B2 " <CJK> " 
           "16r5C46"    16r69AE " <CJK> " 
           "16r5C47"    16r69D0 " <CJK> " 
           "16r5C48"    16r69BF " <CJK> " 
           "16r5C49"    16r69C1 " <CJK> " 
           "16r5C4A"    16r69D3 " <CJK> " 
           "16r5C4B"    16r69BE " <CJK> " 
           "16r5C4C"    16r69CE " <CJK> " 
           "16r5C4D"    16r5BE8 " <CJK> " 
           "16r5C4E"    16r69CA " <CJK> " 
           "16r5C4F"    16r69DD " <CJK> " 
           "16r5C50"    16r69BB " <CJK> " 
           "16r5C51"    16r69C3 " <CJK> " 
           "16r5C52"    16r69A7 " <CJK> " 
           "16r5C53"    16r6A2E " <CJK> " 
           "16r5C54"    16r6991 " <CJK> " 
           "16r5C55"    16r69A0 " <CJK> " 
           "16r5C56"    16r699C " <CJK> " 
           "16r5C57"    16r6995 " <CJK> " 
           "16r5C58"    16r69B4 " <CJK> " 
           "16r5C59"    16r69DE " <CJK> " 
           "16r5C5A"    16r69E8 " <CJK> " 
           "16r5C5B"    16r6A02 " <CJK> " 
           "16r5C5C"    16r6A1B " <CJK> " 
           "16r5C5D"    16r69FF " <CJK> " 
           "16r5C5E"    16r6B0A " <CJK> " 
           "16r5C5F"    16r69F9 " <CJK> " 
           "16r5C60"    16r69F2 " <CJK> " 
           "16r5C61"    16r69E7 " <CJK> " 
           "16r5C62"    16r6A05 " <CJK> " 
           "16r5C63"    16r69B1 " <CJK> " 
           "16r5C64"    16r6A1E " <CJK> " 
           "16r5C65"    16r69ED " <CJK> " 
           "16r5C66"    16r6A14 " <CJK> " 
           "16r5C67"    16r69EB " <CJK> " 
           "16r5C68"    16r6A0A " <CJK> " 
           "16r5C69"    16r6A12 " <CJK> " 
           "16r5C6A"    16r6AC1 " <CJK> " 
           "16r5C6B"    16r6A23 " <CJK> " 
           "16r5C6C"    16r6A13 " <CJK> " 
           "16r5C6D"    16r6A44 " <CJK> " 
           "16r5C6E"    16r6A0C " <CJK> " 
           "16r5C6F"    16r6A72 " <CJK> " 
           "16r5C70"    16r6A36 " <CJK> " 
           "16r5C71"    16r6A78 " <CJK> " 
           "16r5C72"    16r6A47 " <CJK> " 
           "16r5C73"    16r6A62 " <CJK> " 
           "16r5C74"    16r6A59 " <CJK> " 
           "16r5C75"    16r6A66 " <CJK> " 
           "16r5C76"    16r6A48 " <CJK> " 
           "16r5C77"    16r6A38 " <CJK> " 
           "16r5C78"    16r6A22 " <CJK> " 
           "16r5C79"    16r6A90 " <CJK> " 
           "16r5C7A"    16r6A8D " <CJK> " 
           "16r5C7B"    16r6AA0 " <CJK> " 
           "16r5C7C"    16r6A84 " <CJK> " 
           "16r5C7D"    16r6AA2 " <CJK> " 
           "16r5C7E"    16r6AA3 " <CJK> " 
           ) at:(code - 16r5C20).
    ].
    code <= 16r5D20 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r5D7E ifTrue:[
        ^ #(
           "16r5D21"    16r6A97 " <CJK> " 
           "16r5D22"    16r8617 " <CJK> " 
           "16r5D23"    16r6ABB " <CJK> " 
           "16r5D24"    16r6AC3 " <CJK> " 
           "16r5D25"    16r6AC2 " <CJK> " 
           "16r5D26"    16r6AB8 " <CJK> " 
           "16r5D27"    16r6AB3 " <CJK> " 
           "16r5D28"    16r6AAC " <CJK> " 
           "16r5D29"    16r6ADE " <CJK> " 
           "16r5D2A"    16r6AD1 " <CJK> " 
           "16r5D2B"    16r6ADF " <CJK> " 
           "16r5D2C"    16r6AAA " <CJK> " 
           "16r5D2D"    16r6ADA " <CJK> " 
           "16r5D2E"    16r6AEA " <CJK> " 
           "16r5D2F"    16r6AFB " <CJK> " 
           "16r5D30"    16r6B05 " <CJK> " 
           "16r5D31"    16r8616 " <CJK> " 
           "16r5D32"    16r6AFA " <CJK> " 
           "16r5D33"    16r6B12 " <CJK> " 
           "16r5D34"    16r6B16 " <CJK> " 
           "16r5D35"    16r9B31 " <CJK> " 
           "16r5D36"    16r6B1F " <CJK> " 
           "16r5D37"    16r6B38 " <CJK> " 
           "16r5D38"    16r6B37 " <CJK> " 
           "16r5D39"    16r76DC " <CJK> " 
           "16r5D3A"    16r6B39 " <CJK> " 
           "16r5D3B"    16r98EE " <CJK> " 
           "16r5D3C"    16r6B47 " <CJK> " 
           "16r5D3D"    16r6B43 " <CJK> " 
           "16r5D3E"    16r6B49 " <CJK> " 
           "16r5D3F"    16r6B50 " <CJK> " 
           "16r5D40"    16r6B59 " <CJK> " 
           "16r5D41"    16r6B54 " <CJK> " 
           "16r5D42"    16r6B5B " <CJK> " 
           "16r5D43"    16r6B5F " <CJK> " 
           "16r5D44"    16r6B61 " <CJK> " 
           "16r5D45"    16r6B78 " <CJK> " 
           "16r5D46"    16r6B79 " <CJK> " 
           "16r5D47"    16r6B7F " <CJK> " 
           "16r5D48"    16r6B80 " <CJK> " 
           "16r5D49"    16r6B84 " <CJK> " 
           "16r5D4A"    16r6B83 " <CJK> " 
           "16r5D4B"    16r6B8D " <CJK> " 
           "16r5D4C"    16r6B98 " <CJK> " 
           "16r5D4D"    16r6B95 " <CJK> " 
           "16r5D4E"    16r6B9E " <CJK> " 
           "16r5D4F"    16r6BA4 " <CJK> " 
           "16r5D50"    16r6BAA " <CJK> " 
           "16r5D51"    16r6BAB " <CJK> " 
           "16r5D52"    16r6BAF " <CJK> " 
           "16r5D53"    16r6BB2 " <CJK> " 
           "16r5D54"    16r6BB1 " <CJK> " 
           "16r5D55"    16r6BB3 " <CJK> " 
           "16r5D56"    16r6BB7 " <CJK> " 
           "16r5D57"    16r6BBC " <CJK> " 
           "16r5D58"    16r6BC6 " <CJK> " 
           "16r5D59"    16r6BCB " <CJK> " 
           "16r5D5A"    16r6BD3 " <CJK> " 
           "16r5D5B"    16r6BDF " <CJK> " 
           "16r5D5C"    16r6BEC " <CJK> " 
           "16r5D5D"    16r6BEB " <CJK> " 
           "16r5D5E"    16r6BF3 " <CJK> " 
           "16r5D5F"    16r6BEF " <CJK> " 
           "16r5D60"    16r9EBE " <CJK> " 
           "16r5D61"    16r6C08 " <CJK> " 
           "16r5D62"    16r6C13 " <CJK> " 
           "16r5D63"    16r6C14 " <CJK> " 
           "16r5D64"    16r6C1B " <CJK> " 
           "16r5D65"    16r6C24 " <CJK> " 
           "16r5D66"    16r6C23 " <CJK> " 
           "16r5D67"    16r6C5E " <CJK> " 
           "16r5D68"    16r6C55 " <CJK> " 
           "16r5D69"    16r6C62 " <CJK> " 
           "16r5D6A"    16r6C6A " <CJK> " 
           "16r5D6B"    16r6C82 " <CJK> " 
           "16r5D6C"    16r6C8D " <CJK> " 
           "16r5D6D"    16r6C9A " <CJK> " 
           "16r5D6E"    16r6C81 " <CJK> " 
           "16r5D6F"    16r6C9B " <CJK> " 
           "16r5D70"    16r6C7E " <CJK> " 
           "16r5D71"    16r6C68 " <CJK> " 
           "16r5D72"    16r6C73 " <CJK> " 
           "16r5D73"    16r6C92 " <CJK> " 
           "16r5D74"    16r6C90 " <CJK> " 
           "16r5D75"    16r6CC4 " <CJK> " 
           "16r5D76"    16r6CF1 " <CJK> " 
           "16r5D77"    16r6CD3 " <CJK> " 
           "16r5D78"    16r6CBD " <CJK> " 
           "16r5D79"    16r6CD7 " <CJK> " 
           "16r5D7A"    16r6CC5 " <CJK> " 
           "16r5D7B"    16r6CDD " <CJK> " 
           "16r5D7C"    16r6CAE " <CJK> " 
           "16r5D7D"    16r6CB1 " <CJK> " 
           "16r5D7E"    16r6CBE " <CJK> " 
           ) at:(code - 16r5D20).
    ].
    code <= 16r5E20 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r5E7E ifTrue:[
        ^ #(
           "16r5E21"    16r6CBA " <CJK> " 
           "16r5E22"    16r6CDB " <CJK> " 
           "16r5E23"    16r6CEF " <CJK> " 
           "16r5E24"    16r6CD9 " <CJK> " 
           "16r5E25"    16r6CEA " <CJK> " 
           "16r5E26"    16r6D1F " <CJK> " 
           "16r5E27"    16r884D " <CJK> " 
           "16r5E28"    16r6D36 " <CJK> " 
           "16r5E29"    16r6D2B " <CJK> " 
           "16r5E2A"    16r6D3D " <CJK> " 
           "16r5E2B"    16r6D38 " <CJK> " 
           "16r5E2C"    16r6D19 " <CJK> " 
           "16r5E2D"    16r6D35 " <CJK> " 
           "16r5E2E"    16r6D33 " <CJK> " 
           "16r5E2F"    16r6D12 " <CJK> " 
           "16r5E30"    16r6D0C " <CJK> " 
           "16r5E31"    16r6D63 " <CJK> " 
           "16r5E32"    16r6D93 " <CJK> " 
           "16r5E33"    16r6D64 " <CJK> " 
           "16r5E34"    16r6D5A " <CJK> " 
           "16r5E35"    16r6D79 " <CJK> " 
           "16r5E36"    16r6D59 " <CJK> " 
           "16r5E37"    16r6D8E " <CJK> " 
           "16r5E38"    16r6D95 " <CJK> " 
           "16r5E39"    16r6FE4 " <CJK> " 
           "16r5E3A"    16r6D85 " <CJK> " 
           "16r5E3B"    16r6DF9 " <CJK> " 
           "16r5E3C"    16r6E15 " <CJK> " 
           "16r5E3D"    16r6E0A " <CJK> " 
           "16r5E3E"    16r6DB5 " <CJK> " 
           "16r5E3F"    16r6DC7 " <CJK> " 
           "16r5E40"    16r6DE6 " <CJK> " 
           "16r5E41"    16r6DB8 " <CJK> " 
           "16r5E42"    16r6DC6 " <CJK> " 
           "16r5E43"    16r6DEC " <CJK> " 
           "16r5E44"    16r6DDE " <CJK> " 
           "16r5E45"    16r6DCC " <CJK> " 
           "16r5E46"    16r6DE8 " <CJK> " 
           "16r5E47"    16r6DD2 " <CJK> " 
           "16r5E48"    16r6DC5 " <CJK> " 
           "16r5E49"    16r6DFA " <CJK> " 
           "16r5E4A"    16r6DD9 " <CJK> " 
           "16r5E4B"    16r6DE4 " <CJK> " 
           "16r5E4C"    16r6DD5 " <CJK> " 
           "16r5E4D"    16r6DEA " <CJK> " 
           "16r5E4E"    16r6DEE " <CJK> " 
           "16r5E4F"    16r6E2D " <CJK> " 
           "16r5E50"    16r6E6E " <CJK> " 
           "16r5E51"    16r6E2E " <CJK> " 
           "16r5E52"    16r6E19 " <CJK> " 
           "16r5E53"    16r6E72 " <CJK> " 
           "16r5E54"    16r6E5F " <CJK> " 
           "16r5E55"    16r6E3E " <CJK> " 
           "16r5E56"    16r6E23 " <CJK> " 
           "16r5E57"    16r6E6B " <CJK> " 
           "16r5E58"    16r6E2B " <CJK> " 
           "16r5E59"    16r6E76 " <CJK> " 
           "16r5E5A"    16r6E4D " <CJK> " 
           "16r5E5B"    16r6E1F " <CJK> " 
           "16r5E5C"    16r6E43 " <CJK> " 
           "16r5E5D"    16r6E3A " <CJK> " 
           "16r5E5E"    16r6E4E " <CJK> " 
           "16r5E5F"    16r6E24 " <CJK> " 
           "16r5E60"    16r6EFF " <CJK> " 
           "16r5E61"    16r6E1D " <CJK> " 
           "16r5E62"    16r6E38 " <CJK> " 
           "16r5E63"    16r6E82 " <CJK> " 
           "16r5E64"    16r6EAA " <CJK> " 
           "16r5E65"    16r6E98 " <CJK> " 
           "16r5E66"    16r6EC9 " <CJK> " 
           "16r5E67"    16r6EB7 " <CJK> " 
           "16r5E68"    16r6ED3 " <CJK> " 
           "16r5E69"    16r6EBD " <CJK> " 
           "16r5E6A"    16r6EAF " <CJK> " 
           "16r5E6B"    16r6EC4 " <CJK> " 
           "16r5E6C"    16r6EB2 " <CJK> " 
           "16r5E6D"    16r6ED4 " <CJK> " 
           "16r5E6E"    16r6ED5 " <CJK> " 
           "16r5E6F"    16r6E8F " <CJK> " 
           "16r5E70"    16r6EA5 " <CJK> " 
           "16r5E71"    16r6EC2 " <CJK> " 
           "16r5E72"    16r6E9F " <CJK> " 
           "16r5E73"    16r6F41 " <CJK> " 
           "16r5E74"    16r6F11 " <CJK> " 
           "16r5E75"    16r704C " <CJK> " 
           "16r5E76"    16r6EEC " <CJK> " 
           "16r5E77"    16r6EF8 " <CJK> " 
           "16r5E78"    16r6EFE " <CJK> " 
           "16r5E79"    16r6F3F " <CJK> " 
           "16r5E7A"    16r6EF2 " <CJK> " 
           "16r5E7B"    16r6F31 " <CJK> " 
           "16r5E7C"    16r6EEF " <CJK> " 
           "16r5E7D"    16r6F32 " <CJK> " 
           "16r5E7E"    16r6ECC " <CJK> " 
           ) at:(code - 16r5E20).
    ].
    code <= 16r5F20 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r5F7E ifTrue:[
        ^ #(
           "16r5F21"    16r6F3E " <CJK> " 
           "16r5F22"    16r6F13 " <CJK> " 
           "16r5F23"    16r6EF7 " <CJK> " 
           "16r5F24"    16r6F86 " <CJK> " 
           "16r5F25"    16r6F7A " <CJK> " 
           "16r5F26"    16r6F78 " <CJK> " 
           "16r5F27"    16r6F81 " <CJK> " 
           "16r5F28"    16r6F80 " <CJK> " 
           "16r5F29"    16r6F6F " <CJK> " 
           "16r5F2A"    16r6F5B " <CJK> " 
           "16r5F2B"    16r6FF3 " <CJK> " 
           "16r5F2C"    16r6F6D " <CJK> " 
           "16r5F2D"    16r6F82 " <CJK> " 
           "16r5F2E"    16r6F7C " <CJK> " 
           "16r5F2F"    16r6F58 " <CJK> " 
           "16r5F30"    16r6F8E " <CJK> " 
           "16r5F31"    16r6F91 " <CJK> " 
           "16r5F32"    16r6FC2 " <CJK> " 
           "16r5F33"    16r6F66 " <CJK> " 
           "16r5F34"    16r6FB3 " <CJK> " 
           "16r5F35"    16r6FA3 " <CJK> " 
           "16r5F36"    16r6FA1 " <CJK> " 
           "16r5F37"    16r6FA4 " <CJK> " 
           "16r5F38"    16r6FB9 " <CJK> " 
           "16r5F39"    16r6FC6 " <CJK> " 
           "16r5F3A"    16r6FAA " <CJK> " 
           "16r5F3B"    16r6FDF " <CJK> " 
           "16r5F3C"    16r6FD5 " <CJK> " 
           "16r5F3D"    16r6FEC " <CJK> " 
           "16r5F3E"    16r6FD4 " <CJK> " 
           "16r5F3F"    16r6FD8 " <CJK> " 
           "16r5F40"    16r6FF1 " <CJK> " 
           "16r5F41"    16r6FEE " <CJK> " 
           "16r5F42"    16r6FDB " <CJK> " 
           "16r5F43"    16r7009 " <CJK> " 
           "16r5F44"    16r700B " <CJK> " 
           "16r5F45"    16r6FFA " <CJK> " 
           "16r5F46"    16r7011 " <CJK> " 
           "16r5F47"    16r7001 " <CJK> " 
           "16r5F48"    16r700F " <CJK> " 
           "16r5F49"    16r6FFE " <CJK> " 
           "16r5F4A"    16r701B " <CJK> " 
           "16r5F4B"    16r701A " <CJK> " 
           "16r5F4C"    16r6F74 " <CJK> " 
           "16r5F4D"    16r701D " <CJK> " 
           "16r5F4E"    16r7018 " <CJK> " 
           "16r5F4F"    16r701F " <CJK> " 
           "16r5F50"    16r7030 " <CJK> " 
           "16r5F51"    16r703E " <CJK> " 
           "16r5F52"    16r7032 " <CJK> " 
           "16r5F53"    16r7051 " <CJK> " 
           "16r5F54"    16r7063 " <CJK> " 
           "16r5F55"    16r7099 " <CJK> " 
           "16r5F56"    16r7092 " <CJK> " 
           "16r5F57"    16r70AF " <CJK> " 
           "16r5F58"    16r70F1 " <CJK> " 
           "16r5F59"    16r70AC " <CJK> " 
           "16r5F5A"    16r70B8 " <CJK> " 
           "16r5F5B"    16r70B3 " <CJK> " 
           "16r5F5C"    16r70AE " <CJK> " 
           "16r5F5D"    16r70DF " <CJK> " 
           "16r5F5E"    16r70CB " <CJK> " 
           "16r5F5F"    16r70DD " <CJK> " 
           "16r5F60"    16r70D9 " <CJK> " 
           "16r5F61"    16r7109 " <CJK> " 
           "16r5F62"    16r70FD " <CJK> " 
           "16r5F63"    16r711C " <CJK> " 
           "16r5F64"    16r7119 " <CJK> " 
           "16r5F65"    16r7165 " <CJK> " 
           "16r5F66"    16r7155 " <CJK> " 
           "16r5F67"    16r7188 " <CJK> " 
           "16r5F68"    16r7166 " <CJK> " 
           "16r5F69"    16r7162 " <CJK> " 
           "16r5F6A"    16r714C " <CJK> " 
           "16r5F6B"    16r7156 " <CJK> " 
           "16r5F6C"    16r716C " <CJK> " 
           "16r5F6D"    16r718F " <CJK> " 
           "16r5F6E"    16r71FB " <CJK> " 
           "16r5F6F"    16r7184 " <CJK> " 
           "16r5F70"    16r7195 " <CJK> " 
           "16r5F71"    16r71A8 " <CJK> " 
           "16r5F72"    16r71AC " <CJK> " 
           "16r5F73"    16r71D7 " <CJK> " 
           "16r5F74"    16r71B9 " <CJK> " 
           "16r5F75"    16r71BE " <CJK> " 
           "16r5F76"    16r71D2 " <CJK> " 
           "16r5F77"    16r71C9 " <CJK> " 
           "16r5F78"    16r71D4 " <CJK> " 
           "16r5F79"    16r71CE " <CJK> " 
           "16r5F7A"    16r71E0 " <CJK> " 
           "16r5F7B"    16r71EC " <CJK> " 
           "16r5F7C"    16r71E7 " <CJK> " 
           "16r5F7D"    16r71F5 " <CJK> " 
           "16r5F7E"    16r71FC " <CJK> " 
           ) at:(code - 16r5F20).
    ].
    code <= 16r6020 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r607E ifTrue:[
        ^ #(
           "16r6021"    16r71F9 " <CJK> " 
           "16r6022"    16r71FF " <CJK> " 
           "16r6023"    16r720D " <CJK> " 
           "16r6024"    16r7210 " <CJK> " 
           "16r6025"    16r721B " <CJK> " 
           "16r6026"    16r7228 " <CJK> " 
           "16r6027"    16r722D " <CJK> " 
           "16r6028"    16r722C " <CJK> " 
           "16r6029"    16r7230 " <CJK> " 
           "16r602A"    16r7232 " <CJK> " 
           "16r602B"    16r723B " <CJK> " 
           "16r602C"    16r723C " <CJK> " 
           "16r602D"    16r723F " <CJK> " 
           "16r602E"    16r7240 " <CJK> " 
           "16r602F"    16r7246 " <CJK> " 
           "16r6030"    16r724B " <CJK> " 
           "16r6031"    16r7258 " <CJK> " 
           "16r6032"    16r7274 " <CJK> " 
           "16r6033"    16r727E " <CJK> " 
           "16r6034"    16r7282 " <CJK> " 
           "16r6035"    16r7281 " <CJK> " 
           "16r6036"    16r7287 " <CJK> " 
           "16r6037"    16r7292 " <CJK> " 
           "16r6038"    16r7296 " <CJK> " 
           "16r6039"    16r72A2 " <CJK> " 
           "16r603A"    16r72A7 " <CJK> " 
           "16r603B"    16r72B9 " <CJK> " 
           "16r603C"    16r72B2 " <CJK> " 
           "16r603D"    16r72C3 " <CJK> " 
           "16r603E"    16r72C6 " <CJK> " 
           "16r603F"    16r72C4 " <CJK> " 
           "16r6040"    16r72CE " <CJK> " 
           "16r6041"    16r72D2 " <CJK> " 
           "16r6042"    16r72E2 " <CJK> " 
           "16r6043"    16r72E0 " <CJK> " 
           "16r6044"    16r72E1 " <CJK> " 
           "16r6045"    16r72F9 " <CJK> " 
           "16r6046"    16r72F7 " <CJK> " 
           "16r6047"    16r500F " <CJK> " 
           "16r6048"    16r7317 " <CJK> " 
           "16r6049"    16r730A " <CJK> " 
           "16r604A"    16r731C " <CJK> " 
           "16r604B"    16r7316 " <CJK> " 
           "16r604C"    16r731D " <CJK> " 
           "16r604D"    16r7334 " <CJK> " 
           "16r604E"    16r732F " <CJK> " 
           "16r604F"    16r7329 " <CJK> " 
           "16r6050"    16r7325 " <CJK> " 
           "16r6051"    16r733E " <CJK> " 
           "16r6052"    16r734E " <CJK> " 
           "16r6053"    16r734F " <CJK> " 
           "16r6054"    16r9ED8 " <CJK> " 
           "16r6055"    16r7357 " <CJK> " 
           "16r6056"    16r736A " <CJK> " 
           "16r6057"    16r7368 " <CJK> " 
           "16r6058"    16r7370 " <CJK> " 
           "16r6059"    16r7378 " <CJK> " 
           "16r605A"    16r7375 " <CJK> " 
           "16r605B"    16r737B " <CJK> " 
           "16r605C"    16r737A " <CJK> " 
           "16r605D"    16r73C8 " <CJK> " 
           "16r605E"    16r73B3 " <CJK> " 
           "16r605F"    16r73CE " <CJK> " 
           "16r6060"    16r73BB " <CJK> " 
           "16r6061"    16r73C0 " <CJK> " 
           "16r6062"    16r73E5 " <CJK> " 
           "16r6063"    16r73EE " <CJK> " 
           "16r6064"    16r73DE " <CJK> " 
           "16r6065"    16r74A2 " <CJK> " 
           "16r6066"    16r7405 " <CJK> " 
           "16r6067"    16r746F " <CJK> " 
           "16r6068"    16r7425 " <CJK> " 
           "16r6069"    16r73F8 " <CJK> " 
           "16r606A"    16r7432 " <CJK> " 
           "16r606B"    16r743A " <CJK> " 
           "16r606C"    16r7455 " <CJK> " 
           "16r606D"    16r743F " <CJK> " 
           "16r606E"    16r745F " <CJK> " 
           "16r606F"    16r7459 " <CJK> " 
           "16r6070"    16r7441 " <CJK> " 
           "16r6071"    16r745C " <CJK> " 
           "16r6072"    16r7469 " <CJK> " 
           "16r6073"    16r7470 " <CJK> " 
           "16r6074"    16r7463 " <CJK> " 
           "16r6075"    16r746A " <CJK> " 
           "16r6076"    16r7476 " <CJK> " 
           "16r6077"    16r747E " <CJK> " 
           "16r6078"    16r748B " <CJK> " 
           "16r6079"    16r749E " <CJK> " 
           "16r607A"    16r74A7 " <CJK> " 
           "16r607B"    16r74CA " <CJK> " 
           "16r607C"    16r74CF " <CJK> " 
           "16r607D"    16r74D4 " <CJK> " 
           "16r607E"    16r73F1 " <CJK> " 
           ) at:(code - 16r6020).
    ].
    code <= 16r6120 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r617E ifTrue:[
        ^ #(
           "16r6121"    16r74E0 " <CJK> " 
           "16r6122"    16r74E3 " <CJK> " 
           "16r6123"    16r74E7 " <CJK> " 
           "16r6124"    16r74E9 " <CJK> " 
           "16r6125"    16r74EE " <CJK> " 
           "16r6126"    16r74F2 " <CJK> " 
           "16r6127"    16r74F0 " <CJK> " 
           "16r6128"    16r74F1 " <CJK> " 
           "16r6129"    16r74F8 " <CJK> " 
           "16r612A"    16r74F7 " <CJK> " 
           "16r612B"    16r7504 " <CJK> " 
           "16r612C"    16r7503 " <CJK> " 
           "16r612D"    16r7505 " <CJK> " 
           "16r612E"    16r750C " <CJK> " 
           "16r612F"    16r750E " <CJK> " 
           "16r6130"    16r750D " <CJK> " 
           "16r6131"    16r7515 " <CJK> " 
           "16r6132"    16r7513 " <CJK> " 
           "16r6133"    16r751E " <CJK> " 
           "16r6134"    16r7526 " <CJK> " 
           "16r6135"    16r752C " <CJK> " 
           "16r6136"    16r753C " <CJK> " 
           "16r6137"    16r7544 " <CJK> " 
           "16r6138"    16r754D " <CJK> " 
           "16r6139"    16r754A " <CJK> " 
           "16r613A"    16r7549 " <CJK> " 
           "16r613B"    16r755B " <CJK> " 
           "16r613C"    16r7546 " <CJK> " 
           "16r613D"    16r755A " <CJK> " 
           "16r613E"    16r7569 " <CJK> " 
           "16r613F"    16r7564 " <CJK> " 
           "16r6140"    16r7567 " <CJK> " 
           "16r6141"    16r756B " <CJK> " 
           "16r6142"    16r756D " <CJK> " 
           "16r6143"    16r7578 " <CJK> " 
           "16r6144"    16r7576 " <CJK> " 
           "16r6145"    16r7586 " <CJK> " 
           "16r6146"    16r7587 " <CJK> " 
           "16r6147"    16r7574 " <CJK> " 
           "16r6148"    16r758A " <CJK> " 
           "16r6149"    16r7589 " <CJK> " 
           "16r614A"    16r7582 " <CJK> " 
           "16r614B"    16r7594 " <CJK> " 
           "16r614C"    16r759A " <CJK> " 
           "16r614D"    16r759D " <CJK> " 
           "16r614E"    16r75A5 " <CJK> " 
           "16r614F"    16r75A3 " <CJK> " 
           "16r6150"    16r75C2 " <CJK> " 
           "16r6151"    16r75B3 " <CJK> " 
           "16r6152"    16r75C3 " <CJK> " 
           "16r6153"    16r75B5 " <CJK> " 
           "16r6154"    16r75BD " <CJK> " 
           "16r6155"    16r75B8 " <CJK> " 
           "16r6156"    16r75BC " <CJK> " 
           "16r6157"    16r75B1 " <CJK> " 
           "16r6158"    16r75CD " <CJK> " 
           "16r6159"    16r75CA " <CJK> " 
           "16r615A"    16r75D2 " <CJK> " 
           "16r615B"    16r75D9 " <CJK> " 
           "16r615C"    16r75E3 " <CJK> " 
           "16r615D"    16r75DE " <CJK> " 
           "16r615E"    16r75FE " <CJK> " 
           "16r615F"    16r75FF " <CJK> " 
           "16r6160"    16r75FC " <CJK> " 
           "16r6161"    16r7601 " <CJK> " 
           "16r6162"    16r75F0 " <CJK> " 
           "16r6163"    16r75FA " <CJK> " 
           "16r6164"    16r75F2 " <CJK> " 
           "16r6165"    16r75F3 " <CJK> " 
           "16r6166"    16r760B " <CJK> " 
           "16r6167"    16r760D " <CJK> " 
           "16r6168"    16r7609 " <CJK> " 
           "16r6169"    16r761F " <CJK> " 
           "16r616A"    16r7627 " <CJK> " 
           "16r616B"    16r7620 " <CJK> " 
           "16r616C"    16r7621 " <CJK> " 
           "16r616D"    16r7622 " <CJK> " 
           "16r616E"    16r7624 " <CJK> " 
           "16r616F"    16r7634 " <CJK> " 
           "16r6170"    16r7630 " <CJK> " 
           "16r6171"    16r763B " <CJK> " 
           "16r6172"    16r7647 " <CJK> " 
           "16r6173"    16r7648 " <CJK> " 
           "16r6174"    16r7646 " <CJK> " 
           "16r6175"    16r765C " <CJK> " 
           "16r6176"    16r7658 " <CJK> " 
           "16r6177"    16r7661 " <CJK> " 
           "16r6178"    16r7662 " <CJK> " 
           "16r6179"    16r7668 " <CJK> " 
           "16r617A"    16r7669 " <CJK> " 
           "16r617B"    16r766A " <CJK> " 
           "16r617C"    16r7667 " <CJK> " 
           "16r617D"    16r766C " <CJK> " 
           "16r617E"    16r7670 " <CJK> " 
           ) at:(code - 16r6120).
    ].
    code <= 16r6220 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r627E ifTrue:[
        ^ #(
           "16r6221"    16r7672 " <CJK> " 
           "16r6222"    16r7676 " <CJK> " 
           "16r6223"    16r7678 " <CJK> " 
           "16r6224"    16r767C " <CJK> " 
           "16r6225"    16r7680 " <CJK> " 
           "16r6226"    16r7683 " <CJK> " 
           "16r6227"    16r7688 " <CJK> " 
           "16r6228"    16r768B " <CJK> " 
           "16r6229"    16r768E " <CJK> " 
           "16r622A"    16r7696 " <CJK> " 
           "16r622B"    16r7693 " <CJK> " 
           "16r622C"    16r7699 " <CJK> " 
           "16r622D"    16r769A " <CJK> " 
           "16r622E"    16r76B0 " <CJK> " 
           "16r622F"    16r76B4 " <CJK> " 
           "16r6230"    16r76B8 " <CJK> " 
           "16r6231"    16r76B9 " <CJK> " 
           "16r6232"    16r76BA " <CJK> " 
           "16r6233"    16r76C2 " <CJK> " 
           "16r6234"    16r76CD " <CJK> " 
           "16r6235"    16r76D6 " <CJK> " 
           "16r6236"    16r76D2 " <CJK> " 
           "16r6237"    16r76DE " <CJK> " 
           "16r6238"    16r76E1 " <CJK> " 
           "16r6239"    16r76E5 " <CJK> " 
           "16r623A"    16r76E7 " <CJK> " 
           "16r623B"    16r76EA " <CJK> " 
           "16r623C"    16r862F " <CJK> " 
           "16r623D"    16r76FB " <CJK> " 
           "16r623E"    16r7708 " <CJK> " 
           "16r623F"    16r7707 " <CJK> " 
           "16r6240"    16r7704 " <CJK> " 
           "16r6241"    16r7729 " <CJK> " 
           "16r6242"    16r7724 " <CJK> " 
           "16r6243"    16r771E " <CJK> " 
           "16r6244"    16r7725 " <CJK> " 
           "16r6245"    16r7726 " <CJK> " 
           "16r6246"    16r771B " <CJK> " 
           "16r6247"    16r7737 " <CJK> " 
           "16r6248"    16r7738 " <CJK> " 
           "16r6249"    16r7747 " <CJK> " 
           "16r624A"    16r775A " <CJK> " 
           "16r624B"    16r7768 " <CJK> " 
           "16r624C"    16r776B " <CJK> " 
           "16r624D"    16r775B " <CJK> " 
           "16r624E"    16r7765 " <CJK> " 
           "16r624F"    16r777F " <CJK> " 
           "16r6250"    16r777E " <CJK> " 
           "16r6251"    16r7779 " <CJK> " 
           "16r6252"    16r778E " <CJK> " 
           "16r6253"    16r778B " <CJK> " 
           "16r6254"    16r7791 " <CJK> " 
           "16r6255"    16r77A0 " <CJK> " 
           "16r6256"    16r779E " <CJK> " 
           "16r6257"    16r77B0 " <CJK> " 
           "16r6258"    16r77B6 " <CJK> " 
           "16r6259"    16r77B9 " <CJK> " 
           "16r625A"    16r77BF " <CJK> " 
           "16r625B"    16r77BC " <CJK> " 
           "16r625C"    16r77BD " <CJK> " 
           "16r625D"    16r77BB " <CJK> " 
           "16r625E"    16r77C7 " <CJK> " 
           "16r625F"    16r77CD " <CJK> " 
           "16r6260"    16r77D7 " <CJK> " 
           "16r6261"    16r77DA " <CJK> " 
           "16r6262"    16r77DC " <CJK> " 
           "16r6263"    16r77E3 " <CJK> " 
           "16r6264"    16r77EE " <CJK> " 
           "16r6265"    16r77FC " <CJK> " 
           "16r6266"    16r780C " <CJK> " 
           "16r6267"    16r7812 " <CJK> " 
           "16r6268"    16r7926 " <CJK> " 
           "16r6269"    16r7820 " <CJK> " 
           "16r626A"    16r792A " <CJK> " 
           "16r626B"    16r7845 " <CJK> " 
           "16r626C"    16r788E " <CJK> " 
           "16r626D"    16r7874 " <CJK> " 
           "16r626E"    16r7886 " <CJK> " 
           "16r626F"    16r787C " <CJK> " 
           "16r6270"    16r789A " <CJK> " 
           "16r6271"    16r788C " <CJK> " 
           "16r6272"    16r78A3 " <CJK> " 
           "16r6273"    16r78B5 " <CJK> " 
           "16r6274"    16r78AA " <CJK> " 
           "16r6275"    16r78AF " <CJK> " 
           "16r6276"    16r78D1 " <CJK> " 
           "16r6277"    16r78C6 " <CJK> " 
           "16r6278"    16r78CB " <CJK> " 
           "16r6279"    16r78D4 " <CJK> " 
           "16r627A"    16r78BE " <CJK> " 
           "16r627B"    16r78BC " <CJK> " 
           "16r627C"    16r78C5 " <CJK> " 
           "16r627D"    16r78CA " <CJK> " 
           "16r627E"    16r78EC " <CJK> " 
           ) at:(code - 16r6220).
    ].
    code <= 16r6320 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r637E ifTrue:[
        ^ #(
           "16r6321"    16r78E7 " <CJK> " 
           "16r6322"    16r78DA " <CJK> " 
           "16r6323"    16r78FD " <CJK> " 
           "16r6324"    16r78F4 " <CJK> " 
           "16r6325"    16r7907 " <CJK> " 
           "16r6326"    16r7912 " <CJK> " 
           "16r6327"    16r7911 " <CJK> " 
           "16r6328"    16r7919 " <CJK> " 
           "16r6329"    16r792C " <CJK> " 
           "16r632A"    16r792B " <CJK> " 
           "16r632B"    16r7940 " <CJK> " 
           "16r632C"    16r7960 " <CJK> " 
           "16r632D"    16r7957 " <CJK> " 
           "16r632E"    16r795F " <CJK> " 
           "16r632F"    16r795A " <CJK> " 
           "16r6330"    16r7955 " <CJK> " 
           "16r6331"    16r7953 " <CJK> " 
           "16r6332"    16r797A " <CJK> " 
           "16r6333"    16r797F " <CJK> " 
           "16r6334"    16r798A " <CJK> " 
           "16r6335"    16r799D " <CJK> " 
           "16r6336"    16r79A7 " <CJK> " 
           "16r6337"    16r9F4B " <CJK> " 
           "16r6338"    16r79AA " <CJK> " 
           "16r6339"    16r79AE " <CJK> " 
           "16r633A"    16r79B3 " <CJK> " 
           "16r633B"    16r79B9 " <CJK> " 
           "16r633C"    16r79BA " <CJK> " 
           "16r633D"    16r79C9 " <CJK> " 
           "16r633E"    16r79D5 " <CJK> " 
           "16r633F"    16r79E7 " <CJK> " 
           "16r6340"    16r79EC " <CJK> " 
           "16r6341"    16r79E1 " <CJK> " 
           "16r6342"    16r79E3 " <CJK> " 
           "16r6343"    16r7A08 " <CJK> " 
           "16r6344"    16r7A0D " <CJK> " 
           "16r6345"    16r7A18 " <CJK> " 
           "16r6346"    16r7A19 " <CJK> " 
           "16r6347"    16r7A20 " <CJK> " 
           "16r6348"    16r7A1F " <CJK> " 
           "16r6349"    16r7980 " <CJK> " 
           "16r634A"    16r7A31 " <CJK> " 
           "16r634B"    16r7A3B " <CJK> " 
           "16r634C"    16r7A3E " <CJK> " 
           "16r634D"    16r7A37 " <CJK> " 
           "16r634E"    16r7A43 " <CJK> " 
           "16r634F"    16r7A57 " <CJK> " 
           "16r6350"    16r7A49 " <CJK> " 
           "16r6351"    16r7A61 " <CJK> " 
           "16r6352"    16r7A62 " <CJK> " 
           "16r6353"    16r7A69 " <CJK> " 
           "16r6354"    16r9F9D " <CJK> " 
           "16r6355"    16r7A70 " <CJK> " 
           "16r6356"    16r7A79 " <CJK> " 
           "16r6357"    16r7A7D " <CJK> " 
           "16r6358"    16r7A88 " <CJK> " 
           "16r6359"    16r7A97 " <CJK> " 
           "16r635A"    16r7A95 " <CJK> " 
           "16r635B"    16r7A98 " <CJK> " 
           "16r635C"    16r7A96 " <CJK> " 
           "16r635D"    16r7AA9 " <CJK> " 
           "16r635E"    16r7AC8 " <CJK> " 
           "16r635F"    16r7AB0 " <CJK> " 
           "16r6360"    16r7AB6 " <CJK> " 
           "16r6361"    16r7AC5 " <CJK> " 
           "16r6362"    16r7AC4 " <CJK> " 
           "16r6363"    16r7ABF " <CJK> " 
           "16r6364"    16r9083 " <CJK> " 
           "16r6365"    16r7AC7 " <CJK> " 
           "16r6366"    16r7ACA " <CJK> " 
           "16r6367"    16r7ACD " <CJK> " 
           "16r6368"    16r7ACF " <CJK> " 
           "16r6369"    16r7AD5 " <CJK> " 
           "16r636A"    16r7AD3 " <CJK> " 
           "16r636B"    16r7AD9 " <CJK> " 
           "16r636C"    16r7ADA " <CJK> " 
           "16r636D"    16r7ADD " <CJK> " 
           "16r636E"    16r7AE1 " <CJK> " 
           "16r636F"    16r7AE2 " <CJK> " 
           "16r6370"    16r7AE6 " <CJK> " 
           "16r6371"    16r7AED " <CJK> " 
           "16r6372"    16r7AF0 " <CJK> " 
           "16r6373"    16r7B02 " <CJK> " 
           "16r6374"    16r7B0F " <CJK> " 
           "16r6375"    16r7B0A " <CJK> " 
           "16r6376"    16r7B06 " <CJK> " 
           "16r6377"    16r7B33 " <CJK> " 
           "16r6378"    16r7B18 " <CJK> " 
           "16r6379"    16r7B19 " <CJK> " 
           "16r637A"    16r7B1E " <CJK> " 
           "16r637B"    16r7B35 " <CJK> " 
           "16r637C"    16r7B28 " <CJK> " 
           "16r637D"    16r7B36 " <CJK> " 
           "16r637E"    16r7B50 " <CJK> " 
           ) at:(code - 16r6320).
    ].
    code <= 16r6420 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r647E ifTrue:[
        ^ #(
           "16r6421"    16r7B7A " <CJK> " 
           "16r6422"    16r7B04 " <CJK> " 
           "16r6423"    16r7B4D " <CJK> " 
           "16r6424"    16r7B0B " <CJK> " 
           "16r6425"    16r7B4C " <CJK> " 
           "16r6426"    16r7B45 " <CJK> " 
           "16r6427"    16r7B75 " <CJK> " 
           "16r6428"    16r7B65 " <CJK> " 
           "16r6429"    16r7B74 " <CJK> " 
           "16r642A"    16r7B67 " <CJK> " 
           "16r642B"    16r7B70 " <CJK> " 
           "16r642C"    16r7B71 " <CJK> " 
           "16r642D"    16r7B6C " <CJK> " 
           "16r642E"    16r7B6E " <CJK> " 
           "16r642F"    16r7B9D " <CJK> " 
           "16r6430"    16r7B98 " <CJK> " 
           "16r6431"    16r7B9F " <CJK> " 
           "16r6432"    16r7B8D " <CJK> " 
           "16r6433"    16r7B9C " <CJK> " 
           "16r6434"    16r7B9A " <CJK> " 
           "16r6435"    16r7B8B " <CJK> " 
           "16r6436"    16r7B92 " <CJK> " 
           "16r6437"    16r7B8F " <CJK> " 
           "16r6438"    16r7B5D " <CJK> " 
           "16r6439"    16r7B99 " <CJK> " 
           "16r643A"    16r7BCB " <CJK> " 
           "16r643B"    16r7BC1 " <CJK> " 
           "16r643C"    16r7BCC " <CJK> " 
           "16r643D"    16r7BCF " <CJK> " 
           "16r643E"    16r7BB4 " <CJK> " 
           "16r643F"    16r7BC6 " <CJK> " 
           "16r6440"    16r7BDD " <CJK> " 
           "16r6441"    16r7BE9 " <CJK> " 
           "16r6442"    16r7C11 " <CJK> " 
           "16r6443"    16r7C14 " <CJK> " 
           "16r6444"    16r7BE6 " <CJK> " 
           "16r6445"    16r7BE5 " <CJK> " 
           "16r6446"    16r7C60 " <CJK> " 
           "16r6447"    16r7C00 " <CJK> " 
           "16r6448"    16r7C07 " <CJK> " 
           "16r6449"    16r7C13 " <CJK> " 
           "16r644A"    16r7BF3 " <CJK> " 
           "16r644B"    16r7BF7 " <CJK> " 
           "16r644C"    16r7C17 " <CJK> " 
           "16r644D"    16r7C0D " <CJK> " 
           "16r644E"    16r7BF6 " <CJK> " 
           "16r644F"    16r7C23 " <CJK> " 
           "16r6450"    16r7C27 " <CJK> " 
           "16r6451"    16r7C2A " <CJK> " 
           "16r6452"    16r7C1F " <CJK> " 
           "16r6453"    16r7C37 " <CJK> " 
           "16r6454"    16r7C2B " <CJK> " 
           "16r6455"    16r7C3D " <CJK> " 
           "16r6456"    16r7C4C " <CJK> " 
           "16r6457"    16r7C43 " <CJK> " 
           "16r6458"    16r7C54 " <CJK> " 
           "16r6459"    16r7C4F " <CJK> " 
           "16r645A"    16r7C40 " <CJK> " 
           "16r645B"    16r7C50 " <CJK> " 
           "16r645C"    16r7C58 " <CJK> " 
           "16r645D"    16r7C5F " <CJK> " 
           "16r645E"    16r7C64 " <CJK> " 
           "16r645F"    16r7C56 " <CJK> " 
           "16r6460"    16r7C65 " <CJK> " 
           "16r6461"    16r7C6C " <CJK> " 
           "16r6462"    16r7C75 " <CJK> " 
           "16r6463"    16r7C83 " <CJK> " 
           "16r6464"    16r7C90 " <CJK> " 
           "16r6465"    16r7CA4 " <CJK> " 
           "16r6466"    16r7CAD " <CJK> " 
           "16r6467"    16r7CA2 " <CJK> " 
           "16r6468"    16r7CAB " <CJK> " 
           "16r6469"    16r7CA1 " <CJK> " 
           "16r646A"    16r7CA8 " <CJK> " 
           "16r646B"    16r7CB3 " <CJK> " 
           "16r646C"    16r7CB2 " <CJK> " 
           "16r646D"    16r7CB1 " <CJK> " 
           "16r646E"    16r7CAE " <CJK> " 
           "16r646F"    16r7CB9 " <CJK> " 
           "16r6470"    16r7CBD " <CJK> " 
           "16r6471"    16r7CC0 " <CJK> " 
           "16r6472"    16r7CC5 " <CJK> " 
           "16r6473"    16r7CC2 " <CJK> " 
           "16r6474"    16r7CD8 " <CJK> " 
           "16r6475"    16r7CD2 " <CJK> " 
           "16r6476"    16r7CDC " <CJK> " 
           "16r6477"    16r7CE2 " <CJK> " 
           "16r6478"    16r9B3B " <CJK> " 
           "16r6479"    16r7CEF " <CJK> " 
           "16r647A"    16r7CF2 " <CJK> " 
           "16r647B"    16r7CF4 " <CJK> " 
           "16r647C"    16r7CF6 " <CJK> " 
           "16r647D"    16r7CFA " <CJK> " 
           "16r647E"    16r7D06 " <CJK> " 
           ) at:(code - 16r6420).
    ].
    code <= 16r6520 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r657E ifTrue:[
        ^ #(
           "16r6521"    16r7D02 " <CJK> " 
           "16r6522"    16r7D1C " <CJK> " 
           "16r6523"    16r7D15 " <CJK> " 
           "16r6524"    16r7D0A " <CJK> " 
           "16r6525"    16r7D45 " <CJK> " 
           "16r6526"    16r7D4B " <CJK> " 
           "16r6527"    16r7D2E " <CJK> " 
           "16r6528"    16r7D32 " <CJK> " 
           "16r6529"    16r7D3F " <CJK> " 
           "16r652A"    16r7D35 " <CJK> " 
           "16r652B"    16r7D46 " <CJK> " 
           "16r652C"    16r7D73 " <CJK> " 
           "16r652D"    16r7D56 " <CJK> " 
           "16r652E"    16r7D4E " <CJK> " 
           "16r652F"    16r7D72 " <CJK> " 
           "16r6530"    16r7D68 " <CJK> " 
           "16r6531"    16r7D6E " <CJK> " 
           "16r6532"    16r7D4F " <CJK> " 
           "16r6533"    16r7D63 " <CJK> " 
           "16r6534"    16r7D93 " <CJK> " 
           "16r6535"    16r7D89 " <CJK> " 
           "16r6536"    16r7D5B " <CJK> " 
           "16r6537"    16r7D8F " <CJK> " 
           "16r6538"    16r7D7D " <CJK> " 
           "16r6539"    16r7D9B " <CJK> " 
           "16r653A"    16r7DBA " <CJK> " 
           "16r653B"    16r7DAE " <CJK> " 
           "16r653C"    16r7DA3 " <CJK> " 
           "16r653D"    16r7DB5 " <CJK> " 
           "16r653E"    16r7DC7 " <CJK> " 
           "16r653F"    16r7DBD " <CJK> " 
           "16r6540"    16r7DAB " <CJK> " 
           "16r6541"    16r7E3D " <CJK> " 
           "16r6542"    16r7DA2 " <CJK> " 
           "16r6543"    16r7DAF " <CJK> " 
           "16r6544"    16r7DDC " <CJK> " 
           "16r6545"    16r7DB8 " <CJK> " 
           "16r6546"    16r7D9F " <CJK> " 
           "16r6547"    16r7DB0 " <CJK> " 
           "16r6548"    16r7DD8 " <CJK> " 
           "16r6549"    16r7DDD " <CJK> " 
           "16r654A"    16r7DE4 " <CJK> " 
           "16r654B"    16r7DDE " <CJK> " 
           "16r654C"    16r7DFB " <CJK> " 
           "16r654D"    16r7DF2 " <CJK> " 
           "16r654E"    16r7DE1 " <CJK> " 
           "16r654F"    16r7E05 " <CJK> " 
           "16r6550"    16r7E0A " <CJK> " 
           "16r6551"    16r7E23 " <CJK> " 
           "16r6552"    16r7E21 " <CJK> " 
           "16r6553"    16r7E12 " <CJK> " 
           "16r6554"    16r7E31 " <CJK> " 
           "16r6555"    16r7E1F " <CJK> " 
           "16r6556"    16r7E09 " <CJK> " 
           "16r6557"    16r7E0B " <CJK> " 
           "16r6558"    16r7E22 " <CJK> " 
           "16r6559"    16r7E46 " <CJK> " 
           "16r655A"    16r7E66 " <CJK> " 
           "16r655B"    16r7E3B " <CJK> " 
           "16r655C"    16r7E35 " <CJK> " 
           "16r655D"    16r7E39 " <CJK> " 
           "16r655E"    16r7E43 " <CJK> " 
           "16r655F"    16r7E37 " <CJK> " 
           "16r6560"    16r7E32 " <CJK> " 
           "16r6561"    16r7E3A " <CJK> " 
           "16r6562"    16r7E67 " <CJK> " 
           "16r6563"    16r7E5D " <CJK> " 
           "16r6564"    16r7E56 " <CJK> " 
           "16r6565"    16r7E5E " <CJK> " 
           "16r6566"    16r7E59 " <CJK> " 
           "16r6567"    16r7E5A " <CJK> " 
           "16r6568"    16r7E79 " <CJK> " 
           "16r6569"    16r7E6A " <CJK> " 
           "16r656A"    16r7E69 " <CJK> " 
           "16r656B"    16r7E7C " <CJK> " 
           "16r656C"    16r7E7B " <CJK> " 
           "16r656D"    16r7E83 " <CJK> " 
           "16r656E"    16r7DD5 " <CJK> " 
           "16r656F"    16r7E7D " <CJK> " 
           "16r6570"    16r8FAE " <CJK> " 
           "16r6571"    16r7E7F " <CJK> " 
           "16r6572"    16r7E88 " <CJK> " 
           "16r6573"    16r7E89 " <CJK> " 
           "16r6574"    16r7E8C " <CJK> " 
           "16r6575"    16r7E92 " <CJK> " 
           "16r6576"    16r7E90 " <CJK> " 
           "16r6577"    16r7E93 " <CJK> " 
           "16r6578"    16r7E94 " <CJK> " 
           "16r6579"    16r7E96 " <CJK> " 
           "16r657A"    16r7E8E " <CJK> " 
           "16r657B"    16r7E9B " <CJK> " 
           "16r657C"    16r7E9C " <CJK> " 
           "16r657D"    16r7F38 " <CJK> " 
           "16r657E"    16r7F3A " <CJK> " 
           ) at:(code - 16r6520).
    ].
    code <= 16r6620 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r667E ifTrue:[
        ^ #(
           "16r6621"    16r7F45 " <CJK> " 
           "16r6622"    16r7F4C " <CJK> " 
           "16r6623"    16r7F4D " <CJK> " 
           "16r6624"    16r7F4E " <CJK> " 
           "16r6625"    16r7F50 " <CJK> " 
           "16r6626"    16r7F51 " <CJK> " 
           "16r6627"    16r7F55 " <CJK> " 
           "16r6628"    16r7F54 " <CJK> " 
           "16r6629"    16r7F58 " <CJK> " 
           "16r662A"    16r7F5F " <CJK> " 
           "16r662B"    16r7F60 " <CJK> " 
           "16r662C"    16r7F68 " <CJK> " 
           "16r662D"    16r7F69 " <CJK> " 
           "16r662E"    16r7F67 " <CJK> " 
           "16r662F"    16r7F78 " <CJK> " 
           "16r6630"    16r7F82 " <CJK> " 
           "16r6631"    16r7F86 " <CJK> " 
           "16r6632"    16r7F83 " <CJK> " 
           "16r6633"    16r7F88 " <CJK> " 
           "16r6634"    16r7F87 " <CJK> " 
           "16r6635"    16r7F8C " <CJK> " 
           "16r6636"    16r7F94 " <CJK> " 
           "16r6637"    16r7F9E " <CJK> " 
           "16r6638"    16r7F9D " <CJK> " 
           "16r6639"    16r7F9A " <CJK> " 
           "16r663A"    16r7FA3 " <CJK> " 
           "16r663B"    16r7FAF " <CJK> " 
           "16r663C"    16r7FB2 " <CJK> " 
           "16r663D"    16r7FB9 " <CJK> " 
           "16r663E"    16r7FAE " <CJK> " 
           "16r663F"    16r7FB6 " <CJK> " 
           "16r6640"    16r7FB8 " <CJK> " 
           "16r6641"    16r8B71 " <CJK> " 
           "16r6642"    16r7FC5 " <CJK> " 
           "16r6643"    16r7FC6 " <CJK> " 
           "16r6644"    16r7FCA " <CJK> " 
           "16r6645"    16r7FD5 " <CJK> " 
           "16r6646"    16r7FD4 " <CJK> " 
           "16r6647"    16r7FE1 " <CJK> " 
           "16r6648"    16r7FE6 " <CJK> " 
           "16r6649"    16r7FE9 " <CJK> " 
           "16r664A"    16r7FF3 " <CJK> " 
           "16r664B"    16r7FF9 " <CJK> " 
           "16r664C"    16r98DC " <CJK> " 
           "16r664D"    16r8006 " <CJK> " 
           "16r664E"    16r8004 " <CJK> " 
           "16r664F"    16r800B " <CJK> " 
           "16r6650"    16r8012 " <CJK> " 
           "16r6651"    16r8018 " <CJK> " 
           "16r6652"    16r8019 " <CJK> " 
           "16r6653"    16r801C " <CJK> " 
           "16r6654"    16r8021 " <CJK> " 
           "16r6655"    16r8028 " <CJK> " 
           "16r6656"    16r803F " <CJK> " 
           "16r6657"    16r803B " <CJK> " 
           "16r6658"    16r804A " <CJK> " 
           "16r6659"    16r8046 " <CJK> " 
           "16r665A"    16r8052 " <CJK> " 
           "16r665B"    16r8058 " <CJK> " 
           "16r665C"    16r805A " <CJK> " 
           "16r665D"    16r805F " <CJK> " 
           "16r665E"    16r8062 " <CJK> " 
           "16r665F"    16r8068 " <CJK> " 
           "16r6660"    16r8073 " <CJK> " 
           "16r6661"    16r8072 " <CJK> " 
           "16r6662"    16r8070 " <CJK> " 
           "16r6663"    16r8076 " <CJK> " 
           "16r6664"    16r8079 " <CJK> " 
           "16r6665"    16r807D " <CJK> " 
           "16r6666"    16r807F " <CJK> " 
           "16r6667"    16r8084 " <CJK> " 
           "16r6668"    16r8086 " <CJK> " 
           "16r6669"    16r8085 " <CJK> " 
           "16r666A"    16r809B " <CJK> " 
           "16r666B"    16r8093 " <CJK> " 
           "16r666C"    16r809A " <CJK> " 
           "16r666D"    16r80AD " <CJK> " 
           "16r666E"    16r5190 " <CJK> " 
           "16r666F"    16r80AC " <CJK> " 
           "16r6670"    16r80DB " <CJK> " 
           "16r6671"    16r80E5 " <CJK> " 
           "16r6672"    16r80D9 " <CJK> " 
           "16r6673"    16r80DD " <CJK> " 
           "16r6674"    16r80C4 " <CJK> " 
           "16r6675"    16r80DA " <CJK> " 
           "16r6676"    16r80D6 " <CJK> " 
           "16r6677"    16r8109 " <CJK> " 
           "16r6678"    16r80EF " <CJK> " 
           "16r6679"    16r80F1 " <CJK> " 
           "16r667A"    16r811B " <CJK> " 
           "16r667B"    16r8129 " <CJK> " 
           "16r667C"    16r8123 " <CJK> " 
           "16r667D"    16r812F " <CJK> " 
           "16r667E"    16r814B " <CJK> " 
           ) at:(code - 16r6620).
    ].
    code <= 16r6720 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r677E ifTrue:[
        ^ #(
           "16r6721"    16r968B " <CJK> " 
           "16r6722"    16r8146 " <CJK> " 
           "16r6723"    16r813E " <CJK> " 
           "16r6724"    16r8153 " <CJK> " 
           "16r6725"    16r8151 " <CJK> " 
           "16r6726"    16r80FC " <CJK> " 
           "16r6727"    16r8171 " <CJK> " 
           "16r6728"    16r816E " <CJK> " 
           "16r6729"    16r8165 " <CJK> " 
           "16r672A"    16r8166 " <CJK> " 
           "16r672B"    16r8174 " <CJK> " 
           "16r672C"    16r8183 " <CJK> " 
           "16r672D"    16r8188 " <CJK> " 
           "16r672E"    16r818A " <CJK> " 
           "16r672F"    16r8180 " <CJK> " 
           "16r6730"    16r8182 " <CJK> " 
           "16r6731"    16r81A0 " <CJK> " 
           "16r6732"    16r8195 " <CJK> " 
           "16r6733"    16r81A4 " <CJK> " 
           "16r6734"    16r81A3 " <CJK> " 
           "16r6735"    16r815F " <CJK> " 
           "16r6736"    16r8193 " <CJK> " 
           "16r6737"    16r81A9 " <CJK> " 
           "16r6738"    16r81B0 " <CJK> " 
           "16r6739"    16r81B5 " <CJK> " 
           "16r673A"    16r81BE " <CJK> " 
           "16r673B"    16r81B8 " <CJK> " 
           "16r673C"    16r81BD " <CJK> " 
           "16r673D"    16r81C0 " <CJK> " 
           "16r673E"    16r81C2 " <CJK> " 
           "16r673F"    16r81BA " <CJK> " 
           "16r6740"    16r81C9 " <CJK> " 
           "16r6741"    16r81CD " <CJK> " 
           "16r6742"    16r81D1 " <CJK> " 
           "16r6743"    16r81D9 " <CJK> " 
           "16r6744"    16r81D8 " <CJK> " 
           "16r6745"    16r81C8 " <CJK> " 
           "16r6746"    16r81DA " <CJK> " 
           "16r6747"    16r81DF " <CJK> " 
           "16r6748"    16r81E0 " <CJK> " 
           "16r6749"    16r81E7 " <CJK> " 
           "16r674A"    16r81FA " <CJK> " 
           "16r674B"    16r81FB " <CJK> " 
           "16r674C"    16r81FE " <CJK> " 
           "16r674D"    16r8201 " <CJK> " 
           "16r674E"    16r8202 " <CJK> " 
           "16r674F"    16r8205 " <CJK> " 
           "16r6750"    16r8207 " <CJK> " 
           "16r6751"    16r820A " <CJK> " 
           "16r6752"    16r820D " <CJK> " 
           "16r6753"    16r8210 " <CJK> " 
           "16r6754"    16r8216 " <CJK> " 
           "16r6755"    16r8229 " <CJK> " 
           "16r6756"    16r822B " <CJK> " 
           "16r6757"    16r8238 " <CJK> " 
           "16r6758"    16r8233 " <CJK> " 
           "16r6759"    16r8240 " <CJK> " 
           "16r675A"    16r8259 " <CJK> " 
           "16r675B"    16r8258 " <CJK> " 
           "16r675C"    16r825D " <CJK> " 
           "16r675D"    16r825A " <CJK> " 
           "16r675E"    16r825F " <CJK> " 
           "16r675F"    16r8264 " <CJK> " 
           "16r6760"    16r8262 " <CJK> " 
           "16r6761"    16r8268 " <CJK> " 
           "16r6762"    16r826A " <CJK> " 
           "16r6763"    16r826B " <CJK> " 
           "16r6764"    16r822E " <CJK> " 
           "16r6765"    16r8271 " <CJK> " 
           "16r6766"    16r8277 " <CJK> " 
           "16r6767"    16r8278 " <CJK> " 
           "16r6768"    16r827E " <CJK> " 
           "16r6769"    16r828D " <CJK> " 
           "16r676A"    16r8292 " <CJK> " 
           "16r676B"    16r82AB " <CJK> " 
           "16r676C"    16r829F " <CJK> " 
           "16r676D"    16r82BB " <CJK> " 
           "16r676E"    16r82AC " <CJK> " 
           "16r676F"    16r82E1 " <CJK> " 
           "16r6770"    16r82E3 " <CJK> " 
           "16r6771"    16r82DF " <CJK> " 
           "16r6772"    16r82D2 " <CJK> " 
           "16r6773"    16r82F4 " <CJK> " 
           "16r6774"    16r82F3 " <CJK> " 
           "16r6775"    16r82FA " <CJK> " 
           "16r6776"    16r8393 " <CJK> " 
           "16r6777"    16r8303 " <CJK> " 
           "16r6778"    16r82FB " <CJK> " 
           "16r6779"    16r82F9 " <CJK> " 
           "16r677A"    16r82DE " <CJK> " 
           "16r677B"    16r8306 " <CJK> " 
           "16r677C"    16r82DC " <CJK> " 
           "16r677D"    16r8309 " <CJK> " 
           "16r677E"    16r82D9 " <CJK> " 
           ) at:(code - 16r6720).
    ].
    code <= 16r6820 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r687E ifTrue:[
        ^ #(
           "16r6821"    16r8335 " <CJK> " 
           "16r6822"    16r8334 " <CJK> " 
           "16r6823"    16r8316 " <CJK> " 
           "16r6824"    16r8332 " <CJK> " 
           "16r6825"    16r8331 " <CJK> " 
           "16r6826"    16r8340 " <CJK> " 
           "16r6827"    16r8339 " <CJK> " 
           "16r6828"    16r8350 " <CJK> " 
           "16r6829"    16r8345 " <CJK> " 
           "16r682A"    16r832F " <CJK> " 
           "16r682B"    16r832B " <CJK> " 
           "16r682C"    16r8317 " <CJK> " 
           "16r682D"    16r8318 " <CJK> " 
           "16r682E"    16r8385 " <CJK> " 
           "16r682F"    16r839A " <CJK> " 
           "16r6830"    16r83AA " <CJK> " 
           "16r6831"    16r839F " <CJK> " 
           "16r6832"    16r83A2 " <CJK> " 
           "16r6833"    16r8396 " <CJK> " 
           "16r6834"    16r8323 " <CJK> " 
           "16r6835"    16r838E " <CJK> " 
           "16r6836"    16r8387 " <CJK> " 
           "16r6837"    16r838A " <CJK> " 
           "16r6838"    16r837C " <CJK> " 
           "16r6839"    16r83B5 " <CJK> " 
           "16r683A"    16r8373 " <CJK> " 
           "16r683B"    16r8375 " <CJK> " 
           "16r683C"    16r83A0 " <CJK> " 
           "16r683D"    16r8389 " <CJK> " 
           "16r683E"    16r83A8 " <CJK> " 
           "16r683F"    16r83F4 " <CJK> " 
           "16r6840"    16r8413 " <CJK> " 
           "16r6841"    16r83EB " <CJK> " 
           "16r6842"    16r83CE " <CJK> " 
           "16r6843"    16r83FD " <CJK> " 
           "16r6844"    16r8403 " <CJK> " 
           "16r6845"    16r83D8 " <CJK> " 
           "16r6846"    16r840B " <CJK> " 
           "16r6847"    16r83C1 " <CJK> " 
           "16r6848"    16r83F7 " <CJK> " 
           "16r6849"    16r8407 " <CJK> " 
           "16r684A"    16r83E0 " <CJK> " 
           "16r684B"    16r83F2 " <CJK> " 
           "16r684C"    16r840D " <CJK> " 
           "16r684D"    16r8422 " <CJK> " 
           "16r684E"    16r8420 " <CJK> " 
           "16r684F"    16r83BD " <CJK> " 
           "16r6850"    16r8438 " <CJK> " 
           "16r6851"    16r8506 " <CJK> " 
           "16r6852"    16r83FB " <CJK> " 
           "16r6853"    16r846D " <CJK> " 
           "16r6854"    16r842A " <CJK> " 
           "16r6855"    16r843C " <CJK> " 
           "16r6856"    16r855A " <CJK> " 
           "16r6857"    16r8484 " <CJK> " 
           "16r6858"    16r8477 " <CJK> " 
           "16r6859"    16r846B " <CJK> " 
           "16r685A"    16r84AD " <CJK> " 
           "16r685B"    16r846E " <CJK> " 
           "16r685C"    16r8482 " <CJK> " 
           "16r685D"    16r8469 " <CJK> " 
           "16r685E"    16r8446 " <CJK> " 
           "16r685F"    16r842C " <CJK> " 
           "16r6860"    16r846F " <CJK> " 
           "16r6861"    16r8479 " <CJK> " 
           "16r6862"    16r8435 " <CJK> " 
           "16r6863"    16r84CA " <CJK> " 
           "16r6864"    16r8462 " <CJK> " 
           "16r6865"    16r84B9 " <CJK> " 
           "16r6866"    16r84BF " <CJK> " 
           "16r6867"    16r849F " <CJK> " 
           "16r6868"    16r84D9 " <CJK> " 
           "16r6869"    16r84CD " <CJK> " 
           "16r686A"    16r84BB " <CJK> " 
           "16r686B"    16r84DA " <CJK> " 
           "16r686C"    16r84D0 " <CJK> " 
           "16r686D"    16r84C1 " <CJK> " 
           "16r686E"    16r84C6 " <CJK> " 
           "16r686F"    16r84D6 " <CJK> " 
           "16r6870"    16r84A1 " <CJK> " 
           "16r6871"    16r8521 " <CJK> " 
           "16r6872"    16r84FF " <CJK> " 
           "16r6873"    16r84F4 " <CJK> " 
           "16r6874"    16r8517 " <CJK> " 
           "16r6875"    16r8518 " <CJK> " 
           "16r6876"    16r852C " <CJK> " 
           "16r6877"    16r851F " <CJK> " 
           "16r6878"    16r8515 " <CJK> " 
           "16r6879"    16r8514 " <CJK> " 
           "16r687A"    16r84FC " <CJK> " 
           "16r687B"    16r8540 " <CJK> " 
           "16r687C"    16r8563 " <CJK> " 
           "16r687D"    16r8558 " <CJK> " 
           "16r687E"    16r8548 " <CJK> " 
           ) at:(code - 16r6820).
    ].
    code <= 16r6920 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r697E ifTrue:[
        ^ #(
           "16r6921"    16r8541 " <CJK> " 
           "16r6922"    16r8602 " <CJK> " 
           "16r6923"    16r854B " <CJK> " 
           "16r6924"    16r8555 " <CJK> " 
           "16r6925"    16r8580 " <CJK> " 
           "16r6926"    16r85A4 " <CJK> " 
           "16r6927"    16r8588 " <CJK> " 
           "16r6928"    16r8591 " <CJK> " 
           "16r6929"    16r858A " <CJK> " 
           "16r692A"    16r85A8 " <CJK> " 
           "16r692B"    16r856D " <CJK> " 
           "16r692C"    16r8594 " <CJK> " 
           "16r692D"    16r859B " <CJK> " 
           "16r692E"    16r85EA " <CJK> " 
           "16r692F"    16r8587 " <CJK> " 
           "16r6930"    16r859C " <CJK> " 
           "16r6931"    16r8577 " <CJK> " 
           "16r6932"    16r857E " <CJK> " 
           "16r6933"    16r8590 " <CJK> " 
           "16r6934"    16r85C9 " <CJK> " 
           "16r6935"    16r85BA " <CJK> " 
           "16r6936"    16r85CF " <CJK> " 
           "16r6937"    16r85B9 " <CJK> " 
           "16r6938"    16r85D0 " <CJK> " 
           "16r6939"    16r85D5 " <CJK> " 
           "16r693A"    16r85DD " <CJK> " 
           "16r693B"    16r85E5 " <CJK> " 
           "16r693C"    16r85DC " <CJK> " 
           "16r693D"    16r85F9 " <CJK> " 
           "16r693E"    16r860A " <CJK> " 
           "16r693F"    16r8613 " <CJK> " 
           "16r6940"    16r860B " <CJK> " 
           "16r6941"    16r85FE " <CJK> " 
           "16r6942"    16r85FA " <CJK> " 
           "16r6943"    16r8606 " <CJK> " 
           "16r6944"    16r8622 " <CJK> " 
           "16r6945"    16r861A " <CJK> " 
           "16r6946"    16r8630 " <CJK> " 
           "16r6947"    16r863F " <CJK> " 
           "16r6948"    16r864D " <CJK> " 
           "16r6949"    16r4E55 " <CJK> " 
           "16r694A"    16r8654 " <CJK> " 
           "16r694B"    16r865F " <CJK> " 
           "16r694C"    16r8667 " <CJK> " 
           "16r694D"    16r8671 " <CJK> " 
           "16r694E"    16r8693 " <CJK> " 
           "16r694F"    16r86A3 " <CJK> " 
           "16r6950"    16r86A9 " <CJK> " 
           "16r6951"    16r86AA " <CJK> " 
           "16r6952"    16r868B " <CJK> " 
           "16r6953"    16r868C " <CJK> " 
           "16r6954"    16r86B6 " <CJK> " 
           "16r6955"    16r86AF " <CJK> " 
           "16r6956"    16r86C4 " <CJK> " 
           "16r6957"    16r86C6 " <CJK> " 
           "16r6958"    16r86B0 " <CJK> " 
           "16r6959"    16r86C9 " <CJK> " 
           "16r695A"    16r8823 " <CJK> " 
           "16r695B"    16r86AB " <CJK> " 
           "16r695C"    16r86D4 " <CJK> " 
           "16r695D"    16r86DE " <CJK> " 
           "16r695E"    16r86E9 " <CJK> " 
           "16r695F"    16r86EC " <CJK> " 
           "16r6960"    16r86DF " <CJK> " 
           "16r6961"    16r86DB " <CJK> " 
           "16r6962"    16r86EF " <CJK> " 
           "16r6963"    16r8712 " <CJK> " 
           "16r6964"    16r8706 " <CJK> " 
           "16r6965"    16r8708 " <CJK> " 
           "16r6966"    16r8700 " <CJK> " 
           "16r6967"    16r8703 " <CJK> " 
           "16r6968"    16r86FB " <CJK> " 
           "16r6969"    16r8711 " <CJK> " 
           "16r696A"    16r8709 " <CJK> " 
           "16r696B"    16r870D " <CJK> " 
           "16r696C"    16r86F9 " <CJK> " 
           "16r696D"    16r870A " <CJK> " 
           "16r696E"    16r8734 " <CJK> " 
           "16r696F"    16r873F " <CJK> " 
           "16r6970"    16r8737 " <CJK> " 
           "16r6971"    16r873B " <CJK> " 
           "16r6972"    16r8725 " <CJK> " 
           "16r6973"    16r8729 " <CJK> " 
           "16r6974"    16r871A " <CJK> " 
           "16r6975"    16r8760 " <CJK> " 
           "16r6976"    16r875F " <CJK> " 
           "16r6977"    16r8778 " <CJK> " 
           "16r6978"    16r874C " <CJK> " 
           "16r6979"    16r874E " <CJK> " 
           "16r697A"    16r8774 " <CJK> " 
           "16r697B"    16r8757 " <CJK> " 
           "16r697C"    16r8768 " <CJK> " 
           "16r697D"    16r876E " <CJK> " 
           "16r697E"    16r8759 " <CJK> " 
           ) at:(code - 16r6920).
    ].
    code <= 16r6A20 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r6A7E ifTrue:[
        ^ #(
           "16r6A21"    16r8753 " <CJK> " 
           "16r6A22"    16r8763 " <CJK> " 
           "16r6A23"    16r876A " <CJK> " 
           "16r6A24"    16r8805 " <CJK> " 
           "16r6A25"    16r87A2 " <CJK> " 
           "16r6A26"    16r879F " <CJK> " 
           "16r6A27"    16r8782 " <CJK> " 
           "16r6A28"    16r87AF " <CJK> " 
           "16r6A29"    16r87CB " <CJK> " 
           "16r6A2A"    16r87BD " <CJK> " 
           "16r6A2B"    16r87C0 " <CJK> " 
           "16r6A2C"    16r87D0 " <CJK> " 
           "16r6A2D"    16r96D6 " <CJK> " 
           "16r6A2E"    16r87AB " <CJK> " 
           "16r6A2F"    16r87C4 " <CJK> " 
           "16r6A30"    16r87B3 " <CJK> " 
           "16r6A31"    16r87C7 " <CJK> " 
           "16r6A32"    16r87C6 " <CJK> " 
           "16r6A33"    16r87BB " <CJK> " 
           "16r6A34"    16r87EF " <CJK> " 
           "16r6A35"    16r87F2 " <CJK> " 
           "16r6A36"    16r87E0 " <CJK> " 
           "16r6A37"    16r880F " <CJK> " 
           "16r6A38"    16r880D " <CJK> " 
           "16r6A39"    16r87FE " <CJK> " 
           "16r6A3A"    16r87F6 " <CJK> " 
           "16r6A3B"    16r87F7 " <CJK> " 
           "16r6A3C"    16r880E " <CJK> " 
           "16r6A3D"    16r87D2 " <CJK> " 
           "16r6A3E"    16r8811 " <CJK> " 
           "16r6A3F"    16r8816 " <CJK> " 
           "16r6A40"    16r8815 " <CJK> " 
           "16r6A41"    16r8822 " <CJK> " 
           "16r6A42"    16r8821 " <CJK> " 
           "16r6A43"    16r8831 " <CJK> " 
           "16r6A44"    16r8836 " <CJK> " 
           "16r6A45"    16r8839 " <CJK> " 
           "16r6A46"    16r8827 " <CJK> " 
           "16r6A47"    16r883B " <CJK> " 
           "16r6A48"    16r8844 " <CJK> " 
           "16r6A49"    16r8842 " <CJK> " 
           "16r6A4A"    16r8852 " <CJK> " 
           "16r6A4B"    16r8859 " <CJK> " 
           "16r6A4C"    16r885E " <CJK> " 
           "16r6A4D"    16r8862 " <CJK> " 
           "16r6A4E"    16r886B " <CJK> " 
           "16r6A4F"    16r8881 " <CJK> " 
           "16r6A50"    16r887E " <CJK> " 
           "16r6A51"    16r889E " <CJK> " 
           "16r6A52"    16r8875 " <CJK> " 
           "16r6A53"    16r887D " <CJK> " 
           "16r6A54"    16r88B5 " <CJK> " 
           "16r6A55"    16r8872 " <CJK> " 
           "16r6A56"    16r8882 " <CJK> " 
           "16r6A57"    16r8897 " <CJK> " 
           "16r6A58"    16r8892 " <CJK> " 
           "16r6A59"    16r88AE " <CJK> " 
           "16r6A5A"    16r8899 " <CJK> " 
           "16r6A5B"    16r88A2 " <CJK> " 
           "16r6A5C"    16r888D " <CJK> " 
           "16r6A5D"    16r88A4 " <CJK> " 
           "16r6A5E"    16r88B0 " <CJK> " 
           "16r6A5F"    16r88BF " <CJK> " 
           "16r6A60"    16r88B1 " <CJK> " 
           "16r6A61"    16r88C3 " <CJK> " 
           "16r6A62"    16r88C4 " <CJK> " 
           "16r6A63"    16r88D4 " <CJK> " 
           "16r6A64"    16r88D8 " <CJK> " 
           "16r6A65"    16r88D9 " <CJK> " 
           "16r6A66"    16r88DD " <CJK> " 
           "16r6A67"    16r88F9 " <CJK> " 
           "16r6A68"    16r8902 " <CJK> " 
           "16r6A69"    16r88FC " <CJK> " 
           "16r6A6A"    16r88F4 " <CJK> " 
           "16r6A6B"    16r88E8 " <CJK> " 
           "16r6A6C"    16r88F2 " <CJK> " 
           "16r6A6D"    16r8904 " <CJK> " 
           "16r6A6E"    16r890C " <CJK> " 
           "16r6A6F"    16r890A " <CJK> " 
           "16r6A70"    16r8913 " <CJK> " 
           "16r6A71"    16r8943 " <CJK> " 
           "16r6A72"    16r891E " <CJK> " 
           "16r6A73"    16r8925 " <CJK> " 
           "16r6A74"    16r892A " <CJK> " 
           "16r6A75"    16r892B " <CJK> " 
           "16r6A76"    16r8941 " <CJK> " 
           "16r6A77"    16r8944 " <CJK> " 
           "16r6A78"    16r893B " <CJK> " 
           "16r6A79"    16r8936 " <CJK> " 
           "16r6A7A"    16r8938 " <CJK> " 
           "16r6A7B"    16r894C " <CJK> " 
           "16r6A7C"    16r891D " <CJK> " 
           "16r6A7D"    16r8960 " <CJK> " 
           "16r6A7E"    16r895E " <CJK> " 
           ) at:(code - 16r6A20).
    ].
    code <= 16r6B20 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r6B7E ifTrue:[
        ^ #(
           "16r6B21"    16r8966 " <CJK> " 
           "16r6B22"    16r8964 " <CJK> " 
           "16r6B23"    16r896D " <CJK> " 
           "16r6B24"    16r896A " <CJK> " 
           "16r6B25"    16r896F " <CJK> " 
           "16r6B26"    16r8974 " <CJK> " 
           "16r6B27"    16r8977 " <CJK> " 
           "16r6B28"    16r897E " <CJK> " 
           "16r6B29"    16r8983 " <CJK> " 
           "16r6B2A"    16r8988 " <CJK> " 
           "16r6B2B"    16r898A " <CJK> " 
           "16r6B2C"    16r8993 " <CJK> " 
           "16r6B2D"    16r8998 " <CJK> " 
           "16r6B2E"    16r89A1 " <CJK> " 
           "16r6B2F"    16r89A9 " <CJK> " 
           "16r6B30"    16r89A6 " <CJK> " 
           "16r6B31"    16r89AC " <CJK> " 
           "16r6B32"    16r89AF " <CJK> " 
           "16r6B33"    16r89B2 " <CJK> " 
           "16r6B34"    16r89BA " <CJK> " 
           "16r6B35"    16r89BD " <CJK> " 
           "16r6B36"    16r89BF " <CJK> " 
           "16r6B37"    16r89C0 " <CJK> " 
           "16r6B38"    16r89DA " <CJK> " 
           "16r6B39"    16r89DC " <CJK> " 
           "16r6B3A"    16r89DD " <CJK> " 
           "16r6B3B"    16r89E7 " <CJK> " 
           "16r6B3C"    16r89F4 " <CJK> " 
           "16r6B3D"    16r89F8 " <CJK> " 
           "16r6B3E"    16r8A03 " <CJK> " 
           "16r6B3F"    16r8A16 " <CJK> " 
           "16r6B40"    16r8A10 " <CJK> " 
           "16r6B41"    16r8A0C " <CJK> " 
           "16r6B42"    16r8A1B " <CJK> " 
           "16r6B43"    16r8A1D " <CJK> " 
           "16r6B44"    16r8A25 " <CJK> " 
           "16r6B45"    16r8A36 " <CJK> " 
           "16r6B46"    16r8A41 " <CJK> " 
           "16r6B47"    16r8A5B " <CJK> " 
           "16r6B48"    16r8A52 " <CJK> " 
           "16r6B49"    16r8A46 " <CJK> " 
           "16r6B4A"    16r8A48 " <CJK> " 
           "16r6B4B"    16r8A7C " <CJK> " 
           "16r6B4C"    16r8A6D " <CJK> " 
           "16r6B4D"    16r8A6C " <CJK> " 
           "16r6B4E"    16r8A62 " <CJK> " 
           "16r6B4F"    16r8A85 " <CJK> " 
           "16r6B50"    16r8A82 " <CJK> " 
           "16r6B51"    16r8A84 " <CJK> " 
           "16r6B52"    16r8AA8 " <CJK> " 
           "16r6B53"    16r8AA1 " <CJK> " 
           "16r6B54"    16r8A91 " <CJK> " 
           "16r6B55"    16r8AA5 " <CJK> " 
           "16r6B56"    16r8AA6 " <CJK> " 
           "16r6B57"    16r8A9A " <CJK> " 
           "16r6B58"    16r8AA3 " <CJK> " 
           "16r6B59"    16r8AC4 " <CJK> " 
           "16r6B5A"    16r8ACD " <CJK> " 
           "16r6B5B"    16r8AC2 " <CJK> " 
           "16r6B5C"    16r8ADA " <CJK> " 
           "16r6B5D"    16r8AEB " <CJK> " 
           "16r6B5E"    16r8AF3 " <CJK> " 
           "16r6B5F"    16r8AE7 " <CJK> " 
           "16r6B60"    16r8AE4 " <CJK> " 
           "16r6B61"    16r8AF1 " <CJK> " 
           "16r6B62"    16r8B14 " <CJK> " 
           "16r6B63"    16r8AE0 " <CJK> " 
           "16r6B64"    16r8AE2 " <CJK> " 
           "16r6B65"    16r8AF7 " <CJK> " 
           "16r6B66"    16r8ADE " <CJK> " 
           "16r6B67"    16r8ADB " <CJK> " 
           "16r6B68"    16r8B0C " <CJK> " 
           "16r6B69"    16r8B07 " <CJK> " 
           "16r6B6A"    16r8B1A " <CJK> " 
           "16r6B6B"    16r8AE1 " <CJK> " 
           "16r6B6C"    16r8B16 " <CJK> " 
           "16r6B6D"    16r8B10 " <CJK> " 
           "16r6B6E"    16r8B17 " <CJK> " 
           "16r6B6F"    16r8B20 " <CJK> " 
           "16r6B70"    16r8B33 " <CJK> " 
           "16r6B71"    16r97AB " <CJK> " 
           "16r6B72"    16r8B26 " <CJK> " 
           "16r6B73"    16r8B2B " <CJK> " 
           "16r6B74"    16r8B3E " <CJK> " 
           "16r6B75"    16r8B28 " <CJK> " 
           "16r6B76"    16r8B41 " <CJK> " 
           "16r6B77"    16r8B4C " <CJK> " 
           "16r6B78"    16r8B4F " <CJK> " 
           "16r6B79"    16r8B4E " <CJK> " 
           "16r6B7A"    16r8B49 " <CJK> " 
           "16r6B7B"    16r8B56 " <CJK> " 
           "16r6B7C"    16r8B5B " <CJK> " 
           "16r6B7D"    16r8B5A " <CJK> " 
           "16r6B7E"    16r8B6B " <CJK> " 
           ) at:(code - 16r6B20).
    ].
    code <= 16r6C20 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r6C7E ifTrue:[
        ^ #(
           "16r6C21"    16r8B5F " <CJK> " 
           "16r6C22"    16r8B6C " <CJK> " 
           "16r6C23"    16r8B6F " <CJK> " 
           "16r6C24"    16r8B74 " <CJK> " 
           "16r6C25"    16r8B7D " <CJK> " 
           "16r6C26"    16r8B80 " <CJK> " 
           "16r6C27"    16r8B8C " <CJK> " 
           "16r6C28"    16r8B8E " <CJK> " 
           "16r6C29"    16r8B92 " <CJK> " 
           "16r6C2A"    16r8B93 " <CJK> " 
           "16r6C2B"    16r8B96 " <CJK> " 
           "16r6C2C"    16r8B99 " <CJK> " 
           "16r6C2D"    16r8B9A " <CJK> " 
           "16r6C2E"    16r8C3A " <CJK> " 
           "16r6C2F"    16r8C41 " <CJK> " 
           "16r6C30"    16r8C3F " <CJK> " 
           "16r6C31"    16r8C48 " <CJK> " 
           "16r6C32"    16r8C4C " <CJK> " 
           "16r6C33"    16r8C4E " <CJK> " 
           "16r6C34"    16r8C50 " <CJK> " 
           "16r6C35"    16r8C55 " <CJK> " 
           "16r6C36"    16r8C62 " <CJK> " 
           "16r6C37"    16r8C6C " <CJK> " 
           "16r6C38"    16r8C78 " <CJK> " 
           "16r6C39"    16r8C7A " <CJK> " 
           "16r6C3A"    16r8C82 " <CJK> " 
           "16r6C3B"    16r8C89 " <CJK> " 
           "16r6C3C"    16r8C85 " <CJK> " 
           "16r6C3D"    16r8C8A " <CJK> " 
           "16r6C3E"    16r8C8D " <CJK> " 
           "16r6C3F"    16r8C8E " <CJK> " 
           "16r6C40"    16r8C94 " <CJK> " 
           "16r6C41"    16r8C7C " <CJK> " 
           "16r6C42"    16r8C98 " <CJK> " 
           "16r6C43"    16r621D " <CJK> " 
           "16r6C44"    16r8CAD " <CJK> " 
           "16r6C45"    16r8CAA " <CJK> " 
           "16r6C46"    16r8CBD " <CJK> " 
           "16r6C47"    16r8CB2 " <CJK> " 
           "16r6C48"    16r8CB3 " <CJK> " 
           "16r6C49"    16r8CAE " <CJK> " 
           "16r6C4A"    16r8CB6 " <CJK> " 
           "16r6C4B"    16r8CC8 " <CJK> " 
           "16r6C4C"    16r8CC1 " <CJK> " 
           "16r6C4D"    16r8CE4 " <CJK> " 
           "16r6C4E"    16r8CE3 " <CJK> " 
           "16r6C4F"    16r8CDA " <CJK> " 
           "16r6C50"    16r8CFD " <CJK> " 
           "16r6C51"    16r8CFA " <CJK> " 
           "16r6C52"    16r8CFB " <CJK> " 
           "16r6C53"    16r8D04 " <CJK> " 
           "16r6C54"    16r8D05 " <CJK> " 
           "16r6C55"    16r8D0A " <CJK> " 
           "16r6C56"    16r8D07 " <CJK> " 
           "16r6C57"    16r8D0F " <CJK> " 
           "16r6C58"    16r8D0D " <CJK> " 
           "16r6C59"    16r8D10 " <CJK> " 
           "16r6C5A"    16r9F4E " <CJK> " 
           "16r6C5B"    16r8D13 " <CJK> " 
           "16r6C5C"    16r8CCD " <CJK> " 
           "16r6C5D"    16r8D14 " <CJK> " 
           "16r6C5E"    16r8D16 " <CJK> " 
           "16r6C5F"    16r8D67 " <CJK> " 
           "16r6C60"    16r8D6D " <CJK> " 
           "16r6C61"    16r8D71 " <CJK> " 
           "16r6C62"    16r8D73 " <CJK> " 
           "16r6C63"    16r8D81 " <CJK> " 
           "16r6C64"    16r8D99 " <CJK> " 
           "16r6C65"    16r8DC2 " <CJK> " 
           "16r6C66"    16r8DBE " <CJK> " 
           "16r6C67"    16r8DBA " <CJK> " 
           "16r6C68"    16r8DCF " <CJK> " 
           "16r6C69"    16r8DDA " <CJK> " 
           "16r6C6A"    16r8DD6 " <CJK> " 
           "16r6C6B"    16r8DCC " <CJK> " 
           "16r6C6C"    16r8DDB " <CJK> " 
           "16r6C6D"    16r8DCB " <CJK> " 
           "16r6C6E"    16r8DEA " <CJK> " 
           "16r6C6F"    16r8DEB " <CJK> " 
           "16r6C70"    16r8DDF " <CJK> " 
           "16r6C71"    16r8DE3 " <CJK> " 
           "16r6C72"    16r8DFC " <CJK> " 
           "16r6C73"    16r8E08 " <CJK> " 
           "16r6C74"    16r8E09 " <CJK> " 
           "16r6C75"    16r8DFF " <CJK> " 
           "16r6C76"    16r8E1D " <CJK> " 
           "16r6C77"    16r8E1E " <CJK> " 
           "16r6C78"    16r8E10 " <CJK> " 
           "16r6C79"    16r8E1F " <CJK> " 
           "16r6C7A"    16r8E42 " <CJK> " 
           "16r6C7B"    16r8E35 " <CJK> " 
           "16r6C7C"    16r8E30 " <CJK> " 
           "16r6C7D"    16r8E34 " <CJK> " 
           "16r6C7E"    16r8E4A " <CJK> " 
           ) at:(code - 16r6C20).
    ].
    code <= 16r6D20 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r6D7E ifTrue:[
        ^ #(
           "16r6D21"    16r8E47 " <CJK> " 
           "16r6D22"    16r8E49 " <CJK> " 
           "16r6D23"    16r8E4C " <CJK> " 
           "16r6D24"    16r8E50 " <CJK> " 
           "16r6D25"    16r8E48 " <CJK> " 
           "16r6D26"    16r8E59 " <CJK> " 
           "16r6D27"    16r8E64 " <CJK> " 
           "16r6D28"    16r8E60 " <CJK> " 
           "16r6D29"    16r8E2A " <CJK> " 
           "16r6D2A"    16r8E63 " <CJK> " 
           "16r6D2B"    16r8E55 " <CJK> " 
           "16r6D2C"    16r8E76 " <CJK> " 
           "16r6D2D"    16r8E72 " <CJK> " 
           "16r6D2E"    16r8E7C " <CJK> " 
           "16r6D2F"    16r8E81 " <CJK> " 
           "16r6D30"    16r8E87 " <CJK> " 
           "16r6D31"    16r8E85 " <CJK> " 
           "16r6D32"    16r8E84 " <CJK> " 
           "16r6D33"    16r8E8B " <CJK> " 
           "16r6D34"    16r8E8A " <CJK> " 
           "16r6D35"    16r8E93 " <CJK> " 
           "16r6D36"    16r8E91 " <CJK> " 
           "16r6D37"    16r8E94 " <CJK> " 
           "16r6D38"    16r8E99 " <CJK> " 
           "16r6D39"    16r8EAA " <CJK> " 
           "16r6D3A"    16r8EA1 " <CJK> " 
           "16r6D3B"    16r8EAC " <CJK> " 
           "16r6D3C"    16r8EB0 " <CJK> " 
           "16r6D3D"    16r8EC6 " <CJK> " 
           "16r6D3E"    16r8EB1 " <CJK> " 
           "16r6D3F"    16r8EBE " <CJK> " 
           "16r6D40"    16r8EC5 " <CJK> " 
           "16r6D41"    16r8EC8 " <CJK> " 
           "16r6D42"    16r8ECB " <CJK> " 
           "16r6D43"    16r8EDB " <CJK> " 
           "16r6D44"    16r8EE3 " <CJK> " 
           "16r6D45"    16r8EFC " <CJK> " 
           "16r6D46"    16r8EFB " <CJK> " 
           "16r6D47"    16r8EEB " <CJK> " 
           "16r6D48"    16r8EFE " <CJK> " 
           "16r6D49"    16r8F0A " <CJK> " 
           "16r6D4A"    16r8F05 " <CJK> " 
           "16r6D4B"    16r8F15 " <CJK> " 
           "16r6D4C"    16r8F12 " <CJK> " 
           "16r6D4D"    16r8F19 " <CJK> " 
           "16r6D4E"    16r8F13 " <CJK> " 
           "16r6D4F"    16r8F1C " <CJK> " 
           "16r6D50"    16r8F1F " <CJK> " 
           "16r6D51"    16r8F1B " <CJK> " 
           "16r6D52"    16r8F0C " <CJK> " 
           "16r6D53"    16r8F26 " <CJK> " 
           "16r6D54"    16r8F33 " <CJK> " 
           "16r6D55"    16r8F3B " <CJK> " 
           "16r6D56"    16r8F39 " <CJK> " 
           "16r6D57"    16r8F45 " <CJK> " 
           "16r6D58"    16r8F42 " <CJK> " 
           "16r6D59"    16r8F3E " <CJK> " 
           "16r6D5A"    16r8F4C " <CJK> " 
           "16r6D5B"    16r8F49 " <CJK> " 
           "16r6D5C"    16r8F46 " <CJK> " 
           "16r6D5D"    16r8F4E " <CJK> " 
           "16r6D5E"    16r8F57 " <CJK> " 
           "16r6D5F"    16r8F5C " <CJK> " 
           "16r6D60"    16r8F62 " <CJK> " 
           "16r6D61"    16r8F63 " <CJK> " 
           "16r6D62"    16r8F64 " <CJK> " 
           "16r6D63"    16r8F9C " <CJK> " 
           "16r6D64"    16r8F9F " <CJK> " 
           "16r6D65"    16r8FA3 " <CJK> " 
           "16r6D66"    16r8FAD " <CJK> " 
           "16r6D67"    16r8FAF " <CJK> " 
           "16r6D68"    16r8FB7 " <CJK> " 
           "16r6D69"    16r8FDA " <CJK> " 
           "16r6D6A"    16r8FE5 " <CJK> " 
           "16r6D6B"    16r8FE2 " <CJK> " 
           "16r6D6C"    16r8FEA " <CJK> " 
           "16r6D6D"    16r8FEF " <CJK> " 
           "16r6D6E"    16r9087 " <CJK> " 
           "16r6D6F"    16r8FF4 " <CJK> " 
           "16r6D70"    16r9005 " <CJK> " 
           "16r6D71"    16r8FF9 " <CJK> " 
           "16r6D72"    16r8FFA " <CJK> " 
           "16r6D73"    16r9011 " <CJK> " 
           "16r6D74"    16r9015 " <CJK> " 
           "16r6D75"    16r9021 " <CJK> " 
           "16r6D76"    16r900D " <CJK> " 
           "16r6D77"    16r901E " <CJK> " 
           "16r6D78"    16r9016 " <CJK> " 
           "16r6D79"    16r900B " <CJK> " 
           "16r6D7A"    16r9027 " <CJK> " 
           "16r6D7B"    16r9036 " <CJK> " 
           "16r6D7C"    16r9035 " <CJK> " 
           "16r6D7D"    16r9039 " <CJK> " 
           "16r6D7E"    16r8FF8 " <CJK> " 
           ) at:(code - 16r6D20).
    ].
    code <= 16r6E20 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r6E7E ifTrue:[
        ^ #(
           "16r6E21"    16r904F " <CJK> " 
           "16r6E22"    16r9050 " <CJK> " 
           "16r6E23"    16r9051 " <CJK> " 
           "16r6E24"    16r9052 " <CJK> " 
           "16r6E25"    16r900E " <CJK> " 
           "16r6E26"    16r9049 " <CJK> " 
           "16r6E27"    16r903E " <CJK> " 
           "16r6E28"    16r9056 " <CJK> " 
           "16r6E29"    16r9058 " <CJK> " 
           "16r6E2A"    16r905E " <CJK> " 
           "16r6E2B"    16r9068 " <CJK> " 
           "16r6E2C"    16r906F " <CJK> " 
           "16r6E2D"    16r9076 " <CJK> " 
           "16r6E2E"    16r96A8 " <CJK> " 
           "16r6E2F"    16r9072 " <CJK> " 
           "16r6E30"    16r9082 " <CJK> " 
           "16r6E31"    16r907D " <CJK> " 
           "16r6E32"    16r9081 " <CJK> " 
           "16r6E33"    16r9080 " <CJK> " 
           "16r6E34"    16r908A " <CJK> " 
           "16r6E35"    16r9089 " <CJK> " 
           "16r6E36"    16r908F " <CJK> " 
           "16r6E37"    16r90A8 " <CJK> " 
           "16r6E38"    16r90AF " <CJK> " 
           "16r6E39"    16r90B1 " <CJK> " 
           "16r6E3A"    16r90B5 " <CJK> " 
           "16r6E3B"    16r90E2 " <CJK> " 
           "16r6E3C"    16r90E4 " <CJK> " 
           "16r6E3D"    16r6248 " <CJK> " 
           "16r6E3E"    16r90DB " <CJK> " 
           "16r6E3F"    16r9102 " <CJK> " 
           "16r6E40"    16r9112 " <CJK> " 
           "16r6E41"    16r9119 " <CJK> " 
           "16r6E42"    16r9132 " <CJK> " 
           "16r6E43"    16r9130 " <CJK> " 
           "16r6E44"    16r914A " <CJK> " 
           "16r6E45"    16r9156 " <CJK> " 
           "16r6E46"    16r9158 " <CJK> " 
           "16r6E47"    16r9163 " <CJK> " 
           "16r6E48"    16r9165 " <CJK> " 
           "16r6E49"    16r9169 " <CJK> " 
           "16r6E4A"    16r9173 " <CJK> " 
           "16r6E4B"    16r9172 " <CJK> " 
           "16r6E4C"    16r918B " <CJK> " 
           "16r6E4D"    16r9189 " <CJK> " 
           "16r6E4E"    16r9182 " <CJK> " 
           "16r6E4F"    16r91A2 " <CJK> " 
           "16r6E50"    16r91AB " <CJK> " 
           "16r6E51"    16r91AF " <CJK> " 
           "16r6E52"    16r91AA " <CJK> " 
           "16r6E53"    16r91B5 " <CJK> " 
           "16r6E54"    16r91B4 " <CJK> " 
           "16r6E55"    16r91BA " <CJK> " 
           "16r6E56"    16r91C0 " <CJK> " 
           "16r6E57"    16r91C1 " <CJK> " 
           "16r6E58"    16r91C9 " <CJK> " 
           "16r6E59"    16r91CB " <CJK> " 
           "16r6E5A"    16r91D0 " <CJK> " 
           "16r6E5B"    16r91D6 " <CJK> " 
           "16r6E5C"    16r91DF " <CJK> " 
           "16r6E5D"    16r91E1 " <CJK> " 
           "16r6E5E"    16r91DB " <CJK> " 
           "16r6E5F"    16r91FC " <CJK> " 
           "16r6E60"    16r91F5 " <CJK> " 
           "16r6E61"    16r91F6 " <CJK> " 
           "16r6E62"    16r921E " <CJK> " 
           "16r6E63"    16r91FF " <CJK> " 
           "16r6E64"    16r9214 " <CJK> " 
           "16r6E65"    16r922C " <CJK> " 
           "16r6E66"    16r9215 " <CJK> " 
           "16r6E67"    16r9211 " <CJK> " 
           "16r6E68"    16r925E " <CJK> " 
           "16r6E69"    16r9257 " <CJK> " 
           "16r6E6A"    16r9245 " <CJK> " 
           "16r6E6B"    16r9249 " <CJK> " 
           "16r6E6C"    16r9264 " <CJK> " 
           "16r6E6D"    16r9248 " <CJK> " 
           "16r6E6E"    16r9295 " <CJK> " 
           "16r6E6F"    16r923F " <CJK> " 
           "16r6E70"    16r924B " <CJK> " 
           "16r6E71"    16r9250 " <CJK> " 
           "16r6E72"    16r929C " <CJK> " 
           "16r6E73"    16r9296 " <CJK> " 
           "16r6E74"    16r9293 " <CJK> " 
           "16r6E75"    16r929B " <CJK> " 
           "16r6E76"    16r925A " <CJK> " 
           "16r6E77"    16r92CF " <CJK> " 
           "16r6E78"    16r92B9 " <CJK> " 
           "16r6E79"    16r92B7 " <CJK> " 
           "16r6E7A"    16r92E9 " <CJK> " 
           "16r6E7B"    16r930F " <CJK> " 
           "16r6E7C"    16r92FA " <CJK> " 
           "16r6E7D"    16r9344 " <CJK> " 
           "16r6E7E"    16r932E " <CJK> " 
           ) at:(code - 16r6E20).
    ].
    code <= 16r6F20 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r6F7E ifTrue:[
        ^ #(
           "16r6F21"    16r9319 " <CJK> " 
           "16r6F22"    16r9322 " <CJK> " 
           "16r6F23"    16r931A " <CJK> " 
           "16r6F24"    16r9323 " <CJK> " 
           "16r6F25"    16r933A " <CJK> " 
           "16r6F26"    16r9335 " <CJK> " 
           "16r6F27"    16r933B " <CJK> " 
           "16r6F28"    16r935C " <CJK> " 
           "16r6F29"    16r9360 " <CJK> " 
           "16r6F2A"    16r937C " <CJK> " 
           "16r6F2B"    16r936E " <CJK> " 
           "16r6F2C"    16r9356 " <CJK> " 
           "16r6F2D"    16r93B0 " <CJK> " 
           "16r6F2E"    16r93AC " <CJK> " 
           "16r6F2F"    16r93AD " <CJK> " 
           "16r6F30"    16r9394 " <CJK> " 
           "16r6F31"    16r93B9 " <CJK> " 
           "16r6F32"    16r93D6 " <CJK> " 
           "16r6F33"    16r93D7 " <CJK> " 
           "16r6F34"    16r93E8 " <CJK> " 
           "16r6F35"    16r93E5 " <CJK> " 
           "16r6F36"    16r93D8 " <CJK> " 
           "16r6F37"    16r93C3 " <CJK> " 
           "16r6F38"    16r93DD " <CJK> " 
           "16r6F39"    16r93D0 " <CJK> " 
           "16r6F3A"    16r93C8 " <CJK> " 
           "16r6F3B"    16r93E4 " <CJK> " 
           "16r6F3C"    16r941A " <CJK> " 
           "16r6F3D"    16r9414 " <CJK> " 
           "16r6F3E"    16r9413 " <CJK> " 
           "16r6F3F"    16r9403 " <CJK> " 
           "16r6F40"    16r9407 " <CJK> " 
           "16r6F41"    16r9410 " <CJK> " 
           "16r6F42"    16r9436 " <CJK> " 
           "16r6F43"    16r942B " <CJK> " 
           "16r6F44"    16r9435 " <CJK> " 
           "16r6F45"    16r9421 " <CJK> " 
           "16r6F46"    16r943A " <CJK> " 
           "16r6F47"    16r9441 " <CJK> " 
           "16r6F48"    16r9452 " <CJK> " 
           "16r6F49"    16r9444 " <CJK> " 
           "16r6F4A"    16r945B " <CJK> " 
           "16r6F4B"    16r9460 " <CJK> " 
           "16r6F4C"    16r9462 " <CJK> " 
           "16r6F4D"    16r945E " <CJK> " 
           "16r6F4E"    16r946A " <CJK> " 
           "16r6F4F"    16r9229 " <CJK> " 
           "16r6F50"    16r9470 " <CJK> " 
           "16r6F51"    16r9475 " <CJK> " 
           "16r6F52"    16r9477 " <CJK> " 
           "16r6F53"    16r947D " <CJK> " 
           "16r6F54"    16r945A " <CJK> " 
           "16r6F55"    16r947C " <CJK> " 
           "16r6F56"    16r947E " <CJK> " 
           "16r6F57"    16r9481 " <CJK> " 
           "16r6F58"    16r947F " <CJK> " 
           "16r6F59"    16r9582 " <CJK> " 
           "16r6F5A"    16r9587 " <CJK> " 
           "16r6F5B"    16r958A " <CJK> " 
           "16r6F5C"    16r9594 " <CJK> " 
           "16r6F5D"    16r9596 " <CJK> " 
           "16r6F5E"    16r9598 " <CJK> " 
           "16r6F5F"    16r9599 " <CJK> " 
           "16r6F60"    16r95A0 " <CJK> " 
           "16r6F61"    16r95A8 " <CJK> " 
           "16r6F62"    16r95A7 " <CJK> " 
           "16r6F63"    16r95AD " <CJK> " 
           "16r6F64"    16r95BC " <CJK> " 
           "16r6F65"    16r95BB " <CJK> " 
           "16r6F66"    16r95B9 " <CJK> " 
           "16r6F67"    16r95BE " <CJK> " 
           "16r6F68"    16r95CA " <CJK> " 
           "16r6F69"    16r6FF6 " <CJK> " 
           "16r6F6A"    16r95C3 " <CJK> " 
           "16r6F6B"    16r95CD " <CJK> " 
           "16r6F6C"    16r95CC " <CJK> " 
           "16r6F6D"    16r95D5 " <CJK> " 
           "16r6F6E"    16r95D4 " <CJK> " 
           "16r6F6F"    16r95D6 " <CJK> " 
           "16r6F70"    16r95DC " <CJK> " 
           "16r6F71"    16r95E1 " <CJK> " 
           "16r6F72"    16r95E5 " <CJK> " 
           "16r6F73"    16r95E2 " <CJK> " 
           "16r6F74"    16r9621 " <CJK> " 
           "16r6F75"    16r9628 " <CJK> " 
           "16r6F76"    16r962E " <CJK> " 
           "16r6F77"    16r962F " <CJK> " 
           "16r6F78"    16r9642 " <CJK> " 
           "16r6F79"    16r964C " <CJK> " 
           "16r6F7A"    16r964F " <CJK> " 
           "16r6F7B"    16r964B " <CJK> " 
           "16r6F7C"    16r9677 " <CJK> " 
           "16r6F7D"    16r965C " <CJK> " 
           "16r6F7E"    16r965E " <CJK> " 
           ) at:(code - 16r6F20).
    ].
    code <= 16r7020 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r707E ifTrue:[
        ^ #(
           "16r7021"    16r965D " <CJK> " 
           "16r7022"    16r965F " <CJK> " 
           "16r7023"    16r9666 " <CJK> " 
           "16r7024"    16r9672 " <CJK> " 
           "16r7025"    16r966C " <CJK> " 
           "16r7026"    16r968D " <CJK> " 
           "16r7027"    16r9698 " <CJK> " 
           "16r7028"    16r9695 " <CJK> " 
           "16r7029"    16r9697 " <CJK> " 
           "16r702A"    16r96AA " <CJK> " 
           "16r702B"    16r96A7 " <CJK> " 
           "16r702C"    16r96B1 " <CJK> " 
           "16r702D"    16r96B2 " <CJK> " 
           "16r702E"    16r96B0 " <CJK> " 
           "16r702F"    16r96B4 " <CJK> " 
           "16r7030"    16r96B6 " <CJK> " 
           "16r7031"    16r96B8 " <CJK> " 
           "16r7032"    16r96B9 " <CJK> " 
           "16r7033"    16r96CE " <CJK> " 
           "16r7034"    16r96CB " <CJK> " 
           "16r7035"    16r96C9 " <CJK> " 
           "16r7036"    16r96CD " <CJK> " 
           "16r7037"    16r894D " <CJK> " 
           "16r7038"    16r96DC " <CJK> " 
           "16r7039"    16r970D " <CJK> " 
           "16r703A"    16r96D5 " <CJK> " 
           "16r703B"    16r96F9 " <CJK> " 
           "16r703C"    16r9704 " <CJK> " 
           "16r703D"    16r9706 " <CJK> " 
           "16r703E"    16r9708 " <CJK> " 
           "16r703F"    16r9713 " <CJK> " 
           "16r7040"    16r970E " <CJK> " 
           "16r7041"    16r9711 " <CJK> " 
           "16r7042"    16r970F " <CJK> " 
           "16r7043"    16r9716 " <CJK> " 
           "16r7044"    16r9719 " <CJK> " 
           "16r7045"    16r9724 " <CJK> " 
           "16r7046"    16r972A " <CJK> " 
           "16r7047"    16r9730 " <CJK> " 
           "16r7048"    16r9739 " <CJK> " 
           "16r7049"    16r973D " <CJK> " 
           "16r704A"    16r973E " <CJK> " 
           "16r704B"    16r9744 " <CJK> " 
           "16r704C"    16r9746 " <CJK> " 
           "16r704D"    16r9748 " <CJK> " 
           "16r704E"    16r9742 " <CJK> " 
           "16r704F"    16r9749 " <CJK> " 
           "16r7050"    16r975C " <CJK> " 
           "16r7051"    16r9760 " <CJK> " 
           "16r7052"    16r9764 " <CJK> " 
           "16r7053"    16r9766 " <CJK> " 
           "16r7054"    16r9768 " <CJK> " 
           "16r7055"    16r52D2 " <CJK> " 
           "16r7056"    16r976B " <CJK> " 
           "16r7057"    16r9771 " <CJK> " 
           "16r7058"    16r9779 " <CJK> " 
           "16r7059"    16r9785 " <CJK> " 
           "16r705A"    16r977C " <CJK> " 
           "16r705B"    16r9781 " <CJK> " 
           "16r705C"    16r977A " <CJK> " 
           "16r705D"    16r9786 " <CJK> " 
           "16r705E"    16r978B " <CJK> " 
           "16r705F"    16r978F " <CJK> " 
           "16r7060"    16r9790 " <CJK> " 
           "16r7061"    16r979C " <CJK> " 
           "16r7062"    16r97A8 " <CJK> " 
           "16r7063"    16r97A6 " <CJK> " 
           "16r7064"    16r97A3 " <CJK> " 
           "16r7065"    16r97B3 " <CJK> " 
           "16r7066"    16r97B4 " <CJK> " 
           "16r7067"    16r97C3 " <CJK> " 
           "16r7068"    16r97C6 " <CJK> " 
           "16r7069"    16r97C8 " <CJK> " 
           "16r706A"    16r97CB " <CJK> " 
           "16r706B"    16r97DC " <CJK> " 
           "16r706C"    16r97ED " <CJK> " 
           "16r706D"    16r9F4F " <CJK> " 
           "16r706E"    16r97F2 " <CJK> " 
           "16r706F"    16r7ADF " <CJK> " 
           "16r7070"    16r97F6 " <CJK> " 
           "16r7071"    16r97F5 " <CJK> " 
           "16r7072"    16r980F " <CJK> " 
           "16r7073"    16r980C " <CJK> " 
           "16r7074"    16r9838 " <CJK> " 
           "16r7075"    16r9824 " <CJK> " 
           "16r7076"    16r9821 " <CJK> " 
           "16r7077"    16r9837 " <CJK> " 
           "16r7078"    16r983D " <CJK> " 
           "16r7079"    16r9846 " <CJK> " 
           "16r707A"    16r984F " <CJK> " 
           "16r707B"    16r984B " <CJK> " 
           "16r707C"    16r986B " <CJK> " 
           "16r707D"    16r986F " <CJK> " 
           "16r707E"    16r9870 " <CJK> " 
           ) at:(code - 16r7020).
    ].
    code <= 16r7120 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r717E ifTrue:[
        ^ #(
           "16r7121"    16r9871 " <CJK> " 
           "16r7122"    16r9874 " <CJK> " 
           "16r7123"    16r9873 " <CJK> " 
           "16r7124"    16r98AA " <CJK> " 
           "16r7125"    16r98AF " <CJK> " 
           "16r7126"    16r98B1 " <CJK> " 
           "16r7127"    16r98B6 " <CJK> " 
           "16r7128"    16r98C4 " <CJK> " 
           "16r7129"    16r98C3 " <CJK> " 
           "16r712A"    16r98C6 " <CJK> " 
           "16r712B"    16r98E9 " <CJK> " 
           "16r712C"    16r98EB " <CJK> " 
           "16r712D"    16r9903 " <CJK> " 
           "16r712E"    16r9909 " <CJK> " 
           "16r712F"    16r9912 " <CJK> " 
           "16r7130"    16r9914 " <CJK> " 
           "16r7131"    16r9918 " <CJK> " 
           "16r7132"    16r9921 " <CJK> " 
           "16r7133"    16r991D " <CJK> " 
           "16r7134"    16r991E " <CJK> " 
           "16r7135"    16r9924 " <CJK> " 
           "16r7136"    16r9920 " <CJK> " 
           "16r7137"    16r992C " <CJK> " 
           "16r7138"    16r992E " <CJK> " 
           "16r7139"    16r993D " <CJK> " 
           "16r713A"    16r993E " <CJK> " 
           "16r713B"    16r9942 " <CJK> " 
           "16r713C"    16r9949 " <CJK> " 
           "16r713D"    16r9945 " <CJK> " 
           "16r713E"    16r9950 " <CJK> " 
           "16r713F"    16r994B " <CJK> " 
           "16r7140"    16r9951 " <CJK> " 
           "16r7141"    16r9952 " <CJK> " 
           "16r7142"    16r994C " <CJK> " 
           "16r7143"    16r9955 " <CJK> " 
           "16r7144"    16r9997 " <CJK> " 
           "16r7145"    16r9998 " <CJK> " 
           "16r7146"    16r99A5 " <CJK> " 
           "16r7147"    16r99AD " <CJK> " 
           "16r7148"    16r99AE " <CJK> " 
           "16r7149"    16r99BC " <CJK> " 
           "16r714A"    16r99DF " <CJK> " 
           "16r714B"    16r99DB " <CJK> " 
           "16r714C"    16r99DD " <CJK> " 
           "16r714D"    16r99D8 " <CJK> " 
           "16r714E"    16r99D1 " <CJK> " 
           "16r714F"    16r99ED " <CJK> " 
           "16r7150"    16r99EE " <CJK> " 
           "16r7151"    16r99F1 " <CJK> " 
           "16r7152"    16r99F2 " <CJK> " 
           "16r7153"    16r99FB " <CJK> " 
           "16r7154"    16r99F8 " <CJK> " 
           "16r7155"    16r9A01 " <CJK> " 
           "16r7156"    16r9A0F " <CJK> " 
           "16r7157"    16r9A05 " <CJK> " 
           "16r7158"    16r99E2 " <CJK> " 
           "16r7159"    16r9A19 " <CJK> " 
           "16r715A"    16r9A2B " <CJK> " 
           "16r715B"    16r9A37 " <CJK> " 
           "16r715C"    16r9A45 " <CJK> " 
           "16r715D"    16r9A42 " <CJK> " 
           "16r715E"    16r9A40 " <CJK> " 
           "16r715F"    16r9A43 " <CJK> " 
           "16r7160"    16r9A3E " <CJK> " 
           "16r7161"    16r9A55 " <CJK> " 
           "16r7162"    16r9A4D " <CJK> " 
           "16r7163"    16r9A5B " <CJK> " 
           "16r7164"    16r9A57 " <CJK> " 
           "16r7165"    16r9A5F " <CJK> " 
           "16r7166"    16r9A62 " <CJK> " 
           "16r7167"    16r9A65 " <CJK> " 
           "16r7168"    16r9A64 " <CJK> " 
           "16r7169"    16r9A69 " <CJK> " 
           "16r716A"    16r9A6B " <CJK> " 
           "16r716B"    16r9A6A " <CJK> " 
           "16r716C"    16r9AAD " <CJK> " 
           "16r716D"    16r9AB0 " <CJK> " 
           "16r716E"    16r9ABC " <CJK> " 
           "16r716F"    16r9AC0 " <CJK> " 
           "16r7170"    16r9ACF " <CJK> " 
           "16r7171"    16r9AD1 " <CJK> " 
           "16r7172"    16r9AD3 " <CJK> " 
           "16r7173"    16r9AD4 " <CJK> " 
           "16r7174"    16r9ADE " <CJK> " 
           "16r7175"    16r9ADF " <CJK> " 
           "16r7176"    16r9AE2 " <CJK> " 
           "16r7177"    16r9AE3 " <CJK> " 
           "16r7178"    16r9AE6 " <CJK> " 
           "16r7179"    16r9AEF " <CJK> " 
           "16r717A"    16r9AEB " <CJK> " 
           "16r717B"    16r9AEE " <CJK> " 
           "16r717C"    16r9AF4 " <CJK> " 
           "16r717D"    16r9AF1 " <CJK> " 
           "16r717E"    16r9AF7 " <CJK> " 
           ) at:(code - 16r7120).
    ].
    code <= 16r7220 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r727E ifTrue:[
        ^ #(
           "16r7221"    16r9AFB " <CJK> " 
           "16r7222"    16r9B06 " <CJK> " 
           "16r7223"    16r9B18 " <CJK> " 
           "16r7224"    16r9B1A " <CJK> " 
           "16r7225"    16r9B1F " <CJK> " 
           "16r7226"    16r9B22 " <CJK> " 
           "16r7227"    16r9B23 " <CJK> " 
           "16r7228"    16r9B25 " <CJK> " 
           "16r7229"    16r9B27 " <CJK> " 
           "16r722A"    16r9B28 " <CJK> " 
           "16r722B"    16r9B29 " <CJK> " 
           "16r722C"    16r9B2A " <CJK> " 
           "16r722D"    16r9B2E " <CJK> " 
           "16r722E"    16r9B2F " <CJK> " 
           "16r722F"    16r9B32 " <CJK> " 
           "16r7230"    16r9B44 " <CJK> " 
           "16r7231"    16r9B43 " <CJK> " 
           "16r7232"    16r9B4F " <CJK> " 
           "16r7233"    16r9B4D " <CJK> " 
           "16r7234"    16r9B4E " <CJK> " 
           "16r7235"    16r9B51 " <CJK> " 
           "16r7236"    16r9B58 " <CJK> " 
           "16r7237"    16r9B74 " <CJK> " 
           "16r7238"    16r9B93 " <CJK> " 
           "16r7239"    16r9B83 " <CJK> " 
           "16r723A"    16r9B91 " <CJK> " 
           "16r723B"    16r9B96 " <CJK> " 
           "16r723C"    16r9B97 " <CJK> " 
           "16r723D"    16r9B9F " <CJK> " 
           "16r723E"    16r9BA0 " <CJK> " 
           "16r723F"    16r9BA8 " <CJK> " 
           "16r7240"    16r9BB4 " <CJK> " 
           "16r7241"    16r9BC0 " <CJK> " 
           "16r7242"    16r9BCA " <CJK> " 
           "16r7243"    16r9BB9 " <CJK> " 
           "16r7244"    16r9BC6 " <CJK> " 
           "16r7245"    16r9BCF " <CJK> " 
           "16r7246"    16r9BD1 " <CJK> " 
           "16r7247"    16r9BD2 " <CJK> " 
           "16r7248"    16r9BE3 " <CJK> " 
           "16r7249"    16r9BE2 " <CJK> " 
           "16r724A"    16r9BE4 " <CJK> " 
           "16r724B"    16r9BD4 " <CJK> " 
           "16r724C"    16r9BE1 " <CJK> " 
           "16r724D"    16r9C3A " <CJK> " 
           "16r724E"    16r9BF2 " <CJK> " 
           "16r724F"    16r9BF1 " <CJK> " 
           "16r7250"    16r9BF0 " <CJK> " 
           "16r7251"    16r9C15 " <CJK> " 
           "16r7252"    16r9C14 " <CJK> " 
           "16r7253"    16r9C09 " <CJK> " 
           "16r7254"    16r9C13 " <CJK> " 
           "16r7255"    16r9C0C " <CJK> " 
           "16r7256"    16r9C06 " <CJK> " 
           "16r7257"    16r9C08 " <CJK> " 
           "16r7258"    16r9C12 " <CJK> " 
           "16r7259"    16r9C0A " <CJK> " 
           "16r725A"    16r9C04 " <CJK> " 
           "16r725B"    16r9C2E " <CJK> " 
           "16r725C"    16r9C1B " <CJK> " 
           "16r725D"    16r9C25 " <CJK> " 
           "16r725E"    16r9C24 " <CJK> " 
           "16r725F"    16r9C21 " <CJK> " 
           "16r7260"    16r9C30 " <CJK> " 
           "16r7261"    16r9C47 " <CJK> " 
           "16r7262"    16r9C32 " <CJK> " 
           "16r7263"    16r9C46 " <CJK> " 
           "16r7264"    16r9C3E " <CJK> " 
           "16r7265"    16r9C5A " <CJK> " 
           "16r7266"    16r9C60 " <CJK> " 
           "16r7267"    16r9C67 " <CJK> " 
           "16r7268"    16r9C76 " <CJK> " 
           "16r7269"    16r9C78 " <CJK> " 
           "16r726A"    16r9CE7 " <CJK> " 
           "16r726B"    16r9CEC " <CJK> " 
           "16r726C"    16r9CF0 " <CJK> " 
           "16r726D"    16r9D09 " <CJK> " 
           "16r726E"    16r9D08 " <CJK> " 
           "16r726F"    16r9CEB " <CJK> " 
           "16r7270"    16r9D03 " <CJK> " 
           "16r7271"    16r9D06 " <CJK> " 
           "16r7272"    16r9D2A " <CJK> " 
           "16r7273"    16r9D26 " <CJK> " 
           "16r7274"    16r9DAF " <CJK> " 
           "16r7275"    16r9D23 " <CJK> " 
           "16r7276"    16r9D1F " <CJK> " 
           "16r7277"    16r9D44 " <CJK> " 
           "16r7278"    16r9D15 " <CJK> " 
           "16r7279"    16r9D12 " <CJK> " 
           "16r727A"    16r9D41 " <CJK> " 
           "16r727B"    16r9D3F " <CJK> " 
           "16r727C"    16r9D3E " <CJK> " 
           "16r727D"    16r9D46 " <CJK> " 
           "16r727E"    16r9D48 " <CJK> " 
           ) at:(code - 16r7220).
    ].
    code <= 16r7320 ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r737E ifTrue:[
        ^ #(
           "16r7321"    16r9D5D " <CJK> " 
           "16r7322"    16r9D5E " <CJK> " 
           "16r7323"    16r9D64 " <CJK> " 
           "16r7324"    16r9D51 " <CJK> " 
           "16r7325"    16r9D50 " <CJK> " 
           "16r7326"    16r9D59 " <CJK> " 
           "16r7327"    16r9D72 " <CJK> " 
           "16r7328"    16r9D89 " <CJK> " 
           "16r7329"    16r9D87 " <CJK> " 
           "16r732A"    16r9DAB " <CJK> " 
           "16r732B"    16r9D6F " <CJK> " 
           "16r732C"    16r9D7A " <CJK> " 
           "16r732D"    16r9D9A " <CJK> " 
           "16r732E"    16r9DA4 " <CJK> " 
           "16r732F"    16r9DA9 " <CJK> " 
           "16r7330"    16r9DB2 " <CJK> " 
           "16r7331"    16r9DC4 " <CJK> " 
           "16r7332"    16r9DC1 " <CJK> " 
           "16r7333"    16r9DBB " <CJK> " 
           "16r7334"    16r9DB8 " <CJK> " 
           "16r7335"    16r9DBA " <CJK> " 
           "16r7336"    16r9DC6 " <CJK> " 
           "16r7337"    16r9DCF " <CJK> " 
           "16r7338"    16r9DC2 " <CJK> " 
           "16r7339"    16r9DD9 " <CJK> " 
           "16r733A"    16r9DD3 " <CJK> " 
           "16r733B"    16r9DF8 " <CJK> " 
           "16r733C"    16r9DE6 " <CJK> " 
           "16r733D"    16r9DED " <CJK> " 
           "16r733E"    16r9DEF " <CJK> " 
           "16r733F"    16r9DFD " <CJK> " 
           "16r7340"    16r9E1A " <CJK> " 
           "16r7341"    16r9E1B " <CJK> " 
           "16r7342"    16r9E1E " <CJK> " 
           "16r7343"    16r9E75 " <CJK> " 
           "16r7344"    16r9E79 " <CJK> " 
           "16r7345"    16r9E7D " <CJK> " 
           "16r7346"    16r9E81 " <CJK> " 
           "16r7347"    16r9E88 " <CJK> " 
           "16r7348"    16r9E8B " <CJK> " 
           "16r7349"    16r9E8C " <CJK> " 
           "16r734A"    16r9E92 " <CJK> " 
           "16r734B"    16r9E95 " <CJK> " 
           "16r734C"    16r9E91 " <CJK> " 
           "16r734D"    16r9E9D " <CJK> " 
           "16r734E"    16r9EA5 " <CJK> " 
           "16r734F"    16r9EA9 " <CJK> " 
           "16r7350"    16r9EB8 " <CJK> " 
           "16r7351"    16r9EAA " <CJK> " 
           "16r7352"    16r9EAD " <CJK> " 
           "16r7353"    16r9761 " <CJK> " 
           "16r7354"    16r9ECC " <CJK> " 
           "16r7355"    16r9ECE " <CJK> " 
           "16r7356"    16r9ECF " <CJK> " 
           "16r7357"    16r9ED0 " <CJK> " 
           "16r7358"    16r9ED4 " <CJK> " 
           "16r7359"    16r9EDC " <CJK> " 
           "16r735A"    16r9EDE " <CJK> " 
           "16r735B"    16r9EDD " <CJK> " 
           "16r735C"    16r9EE0 " <CJK> " 
           "16r735D"    16r9EE5 " <CJK> " 
           "16r735E"    16r9EE8 " <CJK> " 
           "16r735F"    16r9EEF " <CJK> " 
           "16r7360"    16r9EF4 " <CJK> " 
           "16r7361"    16r9EF6 " <CJK> " 
           "16r7362"    16r9EF7 " <CJK> " 
           "16r7363"    16r9EF9 " <CJK> " 
           "16r7364"    16r9EFB " <CJK> " 
           "16r7365"    16r9EFC " <CJK> " 
           "16r7366"    16r9EFD " <CJK> " 
           "16r7367"    16r9F07 " <CJK> " 
           "16r7368"    16r9F08 " <CJK> " 
           "16r7369"    16r76B7 " <CJK> " 
           "16r736A"    16r9F15 " <CJK> " 
           "16r736B"    16r9F21 " <CJK> " 
           "16r736C"    16r9F2C " <CJK> " 
           "16r736D"    16r9F3E " <CJK> " 
           "16r736E"    16r9F4A " <CJK> " 
           "16r736F"    16r9F52 " <CJK> " 
           "16r7370"    16r9F54 " <CJK> " 
           "16r7371"    16r9F63 " <CJK> " 
           "16r7372"    16r9F5F " <CJK> " 
           "16r7373"    16r9F60 " <CJK> " 
           "16r7374"    16r9F61 " <CJK> " 
           "16r7375"    16r9F66 " <CJK> " 
           "16r7376"    16r9F67 " <CJK> " 
           "16r7377"    16r9F6C " <CJK> " 
           "16r7378"    16r9F6A " <CJK> " 
           "16r7379"    16r9F77 " <CJK> " 
           "16r737A"    16r9F72 " <CJK> " 
           "16r737B"    16r9F76 " <CJK> " 
           "16r737C"    16r9F95 " <CJK> " 
           "16r737D"    16r9F9C " <CJK> " 
           "16r737E"    16r9FA0 " <CJK> " 
           ) at:(code - 16r7320).
    ].
    code <= 16r7420 ifTrue:[
        ^ self decodingError.
    ].
    ^ #(
       "16r7421"    16r582F " <CJK> " 
       "16r7422"    16r69C7 " <CJK> " 
       "16r7423"    16r9059 " <CJK> " 
       "16r7424"    16r7464 " <CJK> " 
       "16r7425"    16r51DC " <CJK> " 
       "16r7426"    16r7199 " <CJK> " 
       ) at:(code - 16r7420).
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16r7F ifTrue:[
        ^ unicode.
    ].
    unicode <= 16r5B ifTrue:[
        ^ self decodingError.
    ].
    unicode > 16rFFE5 ifTrue:[
        ^ self encodingError.
    ].
    unicode <= 16r9FA0 ifTrue:[
        unicode <= 16r30FE ifTrue:[
            unicode <= 16r451 ifTrue:[
                unicode <= 16rF7 ifTrue:[
                    unicode == 16r5C ifTrue:[
                        ^  "16r005C" 16r2140 " REVERSE SOLIDUS " 
                    ].
                    unicode <= 16rA1 ifTrue:[
                        ^ self encodingError.
                    ].
                    unicode <= 16rB6 ifTrue:[
                        [
                            |t|
                            t := #(
                               "16r00A2"    16r2171 " CENT SIGN " 
                               "16r00A3"    16r2172 " POUND SIGN " 
                               "16r00A4"    16r0000 " invalid " 
                               "16r00A5"    16r0000 " invalid " 
                               "16r00A6"    16r0000 " invalid " 
                               "16r00A7"    16r2178 " SECTION SIGN " 
                               "16r00A8"    16r212F " DIAERESIS " 
                               "16r00A9"    16r0000 " invalid " 
                               "16r00AA"    16r0000 " invalid " 
                               "16r00AB"    16r0000 " invalid " 
                               "16r00AC"    16r224C " NOT SIGN " 
                               "16r00AD"    16r0000 " invalid " 
                               "16r00AE"    16r0000 " invalid " 
                               "16r00AF"    16r0000 " invalid " 
                               "16r00B0"    16r216B " DEGREE SIGN " 
                               "16r00B1"    16r215E " PLUS-MINUS SIGN " 
                               "16r00B2"    16r0000 " invalid " 
                               "16r00B3"    16r0000 " invalid " 
                               "16r00B4"    16r212D " ACUTE ACCENT " 
                               "16r00B5"    16r0000 " invalid " 
                               "16r00B6"    16r2279 " PILCROW SIGN " 
                               ) at:(unicode - 16rA1).
                            t == 0 ifFalse:[^ t].
                            ^ self encodingError
                        ] value.
                    ].
                    unicode <= 16rD6 ifTrue:[
                        ^ self encodingError.
                    ].
                    unicode == 16rD7 ifTrue:[
                        ^  "16r00D7" 16r215F " MULTIPLICATION SIGN " 
                    ].
                    unicode <= 16rF6 ifTrue:[
                        ^ self encodingError.
                    ].
                    ^  "16r00F7" 16r2160 " DIVISION SIGN " 
                ].
                unicode <= 16r390 ifTrue:[
                    ^ self encodingError.
                ].
                unicode <= 16r3C9 ifTrue:[
                    [
                        |t|
                        t := #(
                           "16r0391"    16r2621 " GREEK CAPITAL LETTER ALPHA " 
                           "16r0392"    16r2622 " GREEK CAPITAL LETTER BETA " 
                           "16r0393"    16r2623 " GREEK CAPITAL LETTER GAMMA " 
                           "16r0394"    16r2624 " GREEK CAPITAL LETTER DELTA " 
                           "16r0395"    16r2625 " GREEK CAPITAL LETTER EPSILON " 
                           "16r0396"    16r2626 " GREEK CAPITAL LETTER ZETA " 
                           "16r0397"    16r2627 " GREEK CAPITAL LETTER ETA " 
                           "16r0398"    16r2628 " GREEK CAPITAL LETTER THETA " 
                           "16r0399"    16r2629 " GREEK CAPITAL LETTER IOTA " 
                           "16r039A"    16r262A " GREEK CAPITAL LETTER KAPPA " 
                           "16r039B"    16r262B " GREEK CAPITAL LETTER LAMDA " 
                           "16r039C"    16r262C " GREEK CAPITAL LETTER MU " 
                           "16r039D"    16r262D " GREEK CAPITAL LETTER NU " 
                           "16r039E"    16r262E " GREEK CAPITAL LETTER XI " 
                           "16r039F"    16r262F " GREEK CAPITAL LETTER OMICRON " 
                           "16r03A0"    16r2630 " GREEK CAPITAL LETTER PI " 
                           "16r03A1"    16r2631 " GREEK CAPITAL LETTER RHO " 
                           "16r03A2"    16r0000 " invalid " 
                           "16r03A3"    16r2632 " GREEK CAPITAL LETTER SIGMA " 
                           "16r03A4"    16r2633 " GREEK CAPITAL LETTER TAU " 
                           "16r03A5"    16r2634 " GREEK CAPITAL LETTER UPSILON " 
                           "16r03A6"    16r2635 " GREEK CAPITAL LETTER PHI " 
                           "16r03A7"    16r2636 " GREEK CAPITAL LETTER CHI " 
                           "16r03A8"    16r2637 " GREEK CAPITAL LETTER PSI " 
                           "16r03A9"    16r2638 " GREEK CAPITAL LETTER OMEGA " 
                           "16r03AA"    16r0000 " invalid " 
                           "16r03AB"    16r0000 " invalid " 
                           "16r03AC"    16r0000 " invalid " 
                           "16r03AD"    16r0000 " invalid " 
                           "16r03AE"    16r0000 " invalid " 
                           "16r03AF"    16r0000 " invalid " 
                           "16r03B0"    16r0000 " invalid " 
                           "16r03B1"    16r2641 " GREEK SMALL LETTER ALPHA " 
                           "16r03B2"    16r2642 " GREEK SMALL LETTER BETA " 
                           "16r03B3"    16r2643 " GREEK SMALL LETTER GAMMA " 
                           "16r03B4"    16r2644 " GREEK SMALL LETTER DELTA " 
                           "16r03B5"    16r2645 " GREEK SMALL LETTER EPSILON " 
                           "16r03B6"    16r2646 " GREEK SMALL LETTER ZETA " 
                           "16r03B7"    16r2647 " GREEK SMALL LETTER ETA " 
                           "16r03B8"    16r2648 " GREEK SMALL LETTER THETA " 
                           "16r03B9"    16r2649 " GREEK SMALL LETTER IOTA " 
                           "16r03BA"    16r264A " GREEK SMALL LETTER KAPPA " 
                           "16r03BB"    16r264B " GREEK SMALL LETTER LAMDA " 
                           "16r03BC"    16r264C " GREEK SMALL LETTER MU " 
                           "16r03BD"    16r264D " GREEK SMALL LETTER NU " 
                           "16r03BE"    16r264E " GREEK SMALL LETTER XI " 
                           "16r03BF"    16r264F " GREEK SMALL LETTER OMICRON " 
                           "16r03C0"    16r2650 " GREEK SMALL LETTER PI " 
                           "16r03C1"    16r2651 " GREEK SMALL LETTER RHO " 
                           "16r03C2"    16r0000 " invalid " 
                           "16r03C3"    16r2652 " GREEK SMALL LETTER SIGMA " 
                           "16r03C4"    16r2653 " GREEK SMALL LETTER TAU " 
                           "16r03C5"    16r2654 " GREEK SMALL LETTER UPSILON " 
                           "16r03C6"    16r2655 " GREEK SMALL LETTER PHI " 
                           "16r03C7"    16r2656 " GREEK SMALL LETTER CHI " 
                           "16r03C8"    16r2657 " GREEK SMALL LETTER PSI " 
                           "16r03C9"    16r2658 " GREEK SMALL LETTER OMEGA " 
                           ) at:(unicode - 16r390).
                        t == 0 ifFalse:[^ t].
                        ^ self encodingError
                    ] value.
                ].
                unicode <= 16r400 ifTrue:[
                    ^ self encodingError.
                ].
                [
                    |t|
                    t := #(
                       "16r0401"    16r2727 " CYRILLIC CAPITAL LETTER IO " 
                       "16r0402"    16r0000 " invalid " 
                       "16r0403"    16r0000 " invalid " 
                       "16r0404"    16r0000 " invalid " 
                       "16r0405"    16r0000 " invalid " 
                       "16r0406"    16r0000 " invalid " 
                       "16r0407"    16r0000 " invalid " 
                       "16r0408"    16r0000 " invalid " 
                       "16r0409"    16r0000 " invalid " 
                       "16r040A"    16r0000 " invalid " 
                       "16r040B"    16r0000 " invalid " 
                       "16r040C"    16r0000 " invalid " 
                       "16r040D"    16r0000 " invalid " 
                       "16r040E"    16r0000 " invalid " 
                       "16r040F"    16r0000 " invalid " 
                       "16r0410"    16r2721 " CYRILLIC CAPITAL LETTER A " 
                       "16r0411"    16r2722 " CYRILLIC CAPITAL LETTER BE " 
                       "16r0412"    16r2723 " CYRILLIC CAPITAL LETTER VE " 
                       "16r0413"    16r2724 " CYRILLIC CAPITAL LETTER GHE " 
                       "16r0414"    16r2725 " CYRILLIC CAPITAL LETTER DE " 
                       "16r0415"    16r2726 " CYRILLIC CAPITAL LETTER IE " 
                       "16r0416"    16r2728 " CYRILLIC CAPITAL LETTER ZHE " 
                       "16r0417"    16r2729 " CYRILLIC CAPITAL LETTER ZE " 
                       "16r0418"    16r272A " CYRILLIC CAPITAL LETTER I " 
                       "16r0419"    16r272B " CYRILLIC CAPITAL LETTER SHORT I " 
                       "16r041A"    16r272C " CYRILLIC CAPITAL LETTER KA " 
                       "16r041B"    16r272D " CYRILLIC CAPITAL LETTER EL " 
                       "16r041C"    16r272E " CYRILLIC CAPITAL LETTER EM " 
                       "16r041D"    16r272F " CYRILLIC CAPITAL LETTER EN " 
                       "16r041E"    16r2730 " CYRILLIC CAPITAL LETTER O " 
                       "16r041F"    16r2731 " CYRILLIC CAPITAL LETTER PE " 
                       "16r0420"    16r2732 " CYRILLIC CAPITAL LETTER ER " 
                       "16r0421"    16r2733 " CYRILLIC CAPITAL LETTER ES " 
                       "16r0422"    16r2734 " CYRILLIC CAPITAL LETTER TE " 
                       "16r0423"    16r2735 " CYRILLIC CAPITAL LETTER U " 
                       "16r0424"    16r2736 " CYRILLIC CAPITAL LETTER EF " 
                       "16r0425"    16r2737 " CYRILLIC CAPITAL LETTER HA " 
                       "16r0426"    16r2738 " CYRILLIC CAPITAL LETTER TSE " 
                       "16r0427"    16r2739 " CYRILLIC CAPITAL LETTER CHE " 
                       "16r0428"    16r273A " CYRILLIC CAPITAL LETTER SHA " 
                       "16r0429"    16r273B " CYRILLIC CAPITAL LETTER SHCHA " 
                       "16r042A"    16r273C " CYRILLIC CAPITAL LETTER HARD SIGN " 
                       "16r042B"    16r273D " CYRILLIC CAPITAL LETTER YERU " 
                       "16r042C"    16r273E " CYRILLIC CAPITAL LETTER SOFT SIGN " 
                       "16r042D"    16r273F " CYRILLIC CAPITAL LETTER E " 
                       "16r042E"    16r2740 " CYRILLIC CAPITAL LETTER YU " 
                       "16r042F"    16r2741 " CYRILLIC CAPITAL LETTER YA " 
                       "16r0430"    16r2751 " CYRILLIC SMALL LETTER A " 
                       "16r0431"    16r2752 " CYRILLIC SMALL LETTER BE " 
                       "16r0432"    16r2753 " CYRILLIC SMALL LETTER VE " 
                       "16r0433"    16r2754 " CYRILLIC SMALL LETTER GHE " 
                       "16r0434"    16r2755 " CYRILLIC SMALL LETTER DE " 
                       "16r0435"    16r2756 " CYRILLIC SMALL LETTER IE " 
                       "16r0436"    16r2758 " CYRILLIC SMALL LETTER ZHE " 
                       "16r0437"    16r2759 " CYRILLIC SMALL LETTER ZE " 
                       "16r0438"    16r275A " CYRILLIC SMALL LETTER I " 
                       "16r0439"    16r275B " CYRILLIC SMALL LETTER SHORT I " 
                       "16r043A"    16r275C " CYRILLIC SMALL LETTER KA " 
                       "16r043B"    16r275D " CYRILLIC SMALL LETTER EL " 
                       "16r043C"    16r275E " CYRILLIC SMALL LETTER EM " 
                       "16r043D"    16r275F " CYRILLIC SMALL LETTER EN " 
                       "16r043E"    16r2760 " CYRILLIC SMALL LETTER O " 
                       "16r043F"    16r2761 " CYRILLIC SMALL LETTER PE " 
                       "16r0440"    16r2762 " CYRILLIC SMALL LETTER ER " 
                       "16r0441"    16r2763 " CYRILLIC SMALL LETTER ES " 
                       "16r0442"    16r2764 " CYRILLIC SMALL LETTER TE " 
                       "16r0443"    16r2765 " CYRILLIC SMALL LETTER U " 
                       "16r0444"    16r2766 " CYRILLIC SMALL LETTER EF " 
                       "16r0445"    16r2767 " CYRILLIC SMALL LETTER HA " 
                       "16r0446"    16r2768 " CYRILLIC SMALL LETTER TSE " 
                       "16r0447"    16r2769 " CYRILLIC SMALL LETTER CHE " 
                       "16r0448"    16r276A " CYRILLIC SMALL LETTER SHA " 
                       "16r0449"    16r276B " CYRILLIC SMALL LETTER SHCHA " 
                       "16r044A"    16r276C " CYRILLIC SMALL LETTER HARD SIGN " 
                       "16r044B"    16r276D " CYRILLIC SMALL LETTER YERU " 
                       "16r044C"    16r276E " CYRILLIC SMALL LETTER SOFT SIGN " 
                       "16r044D"    16r276F " CYRILLIC SMALL LETTER E " 
                       "16r044E"    16r2770 " CYRILLIC SMALL LETTER YU " 
                       "16r044F"    16r2771 " CYRILLIC SMALL LETTER YA " 
                       "16r0450"    16r0000 " invalid " 
                       "16r0451"    16r2757 " CYRILLIC SMALL LETTER IO " 
                       ) at:(unicode - 16r400).
                    t == 0 ifFalse:[^ t].
                    ^ self encodingError
                ] value.
            ].
            unicode <= 16r200F ifTrue:[
                ^ self encodingError.
            ].
            unicode <= 16r266F ifTrue:[
                unicode <= 16r2312 ifTrue:[
                    unicode <= 16r203B ifTrue:[
                        [
                            |t|
                            t := #(
                               "16r2010"    16r213E " HYPHEN " 
                               "16r2011"    16r0000 " invalid " 
                               "16r2012"    16r0000 " invalid " 
                               "16r2013"    16r0000 " invalid " 
                               "16r2014"    16r0000 " invalid " 
                               "16r2015"    16r213D " HORIZONTAL BAR " 
                               "16r2016"    16r2142 " DOUBLE VERTICAL LINE " 
                               "16r2017"    16r0000 " invalid " 
                               "16r2018"    16r2146 " LEFT SINGLE QUOTATION MARK " 
                               "16r2019"    16r2147 " RIGHT SINGLE QUOTATION MARK " 
                               "16r201A"    16r0000 " invalid " 
                               "16r201B"    16r0000 " invalid " 
                               "16r201C"    16r2148 " LEFT DOUBLE QUOTATION MARK " 
                               "16r201D"    16r2149 " RIGHT DOUBLE QUOTATION MARK " 
                               "16r201E"    16r0000 " invalid " 
                               "16r201F"    16r0000 " invalid " 
                               "16r2020"    16r2277 " DAGGER " 
                               "16r2021"    16r2278 " DOUBLE DAGGER " 
                               "16r2022"    16r0000 " invalid " 
                               "16r2023"    16r0000 " invalid " 
                               "16r2024"    16r0000 " invalid " 
                               "16r2025"    16r2145 " TWO DOT LEADER " 
                               "16r2026"    16r2144 " HORIZONTAL ELLIPSIS " 
                               "16r2027"    16r0000 " invalid " 
                               "16r2028"    16r0000 " invalid " 
                               "16r2029"    16r0000 " invalid " 
                               "16r202A"    16r0000 " invalid " 
                               "16r202B"    16r0000 " invalid " 
                               "16r202C"    16r0000 " invalid " 
                               "16r202D"    16r0000 " invalid " 
                               "16r202E"    16r0000 " invalid " 
                               "16r202F"    16r0000 " invalid " 
                               "16r2030"    16r2273 " PER MILLE SIGN " 
                               "16r2031"    16r0000 " invalid " 
                               "16r2032"    16r216C " PRIME " 
                               "16r2033"    16r216D " DOUBLE PRIME " 
                               "16r2034"    16r0000 " invalid " 
                               "16r2035"    16r0000 " invalid " 
                               "16r2036"    16r0000 " invalid " 
                               "16r2037"    16r0000 " invalid " 
                               "16r2038"    16r0000 " invalid " 
                               "16r2039"    16r0000 " invalid " 
                               "16r203A"    16r0000 " invalid " 
                               "16r203B"    16r2228 " REFERENCE MARK " 
                               ) at:(unicode - 16r200F).
                            t == 0 ifFalse:[^ t].
                            ^ self encodingError
                        ] value.
                    ].
                    unicode <= 16r2102 ifTrue:[
                        ^ self encodingError.
                    ].
                    unicode <= 16r22A5 ifTrue:[
                        unicode <= 16r212B ifTrue:[
                            unicode == 16r2103 ifTrue:[
                                ^  "16r2103" 16r216E " DEGREE CELSIUS " 
                            ].
                            unicode <= 16r212A ifTrue:[
                                ^ self encodingError.
                            ].
                            ^  "16r212B" 16r2272 " ANGSTROM SIGN " 
                        ].
                        unicode <= 16r218F ifTrue:[
                            ^ self encodingError.
                        ].
                        unicode <= 16r2193 ifTrue:[
                            ^ #(
                               "16r2190"    16r222B " LEFTWARDS ARROW " 
                               "16r2191"    16r222C " UPWARDS ARROW " 
                               "16r2192"    16r222A " RIGHTWARDS ARROW " 
                               "16r2193"    16r222D " DOWNWARDS ARROW " 
                               ) at:(unicode - 16r218F).
                        ].
                        unicode <= 16r21D1 ifTrue:[
                            ^ self encodingError.
                        ].
                        unicode <= 16r21D4 ifTrue:[
                            [
                                |t|
                                t := #(
                                   "16r21D2"    16r224D " RIGHTWARDS DOUBLE ARROW " 
                                   "16r21D3"    16r0000 " invalid " 
                                   "16r21D4"    16r224E " LEFT RIGHT DOUBLE ARROW " 
                                   ) at:(unicode - 16r21D1).
                                t == 0 ifFalse:[^ t].
                                ^ self encodingError
                            ] value.
                        ].
                        unicode <= 16r21FF ifTrue:[
                            ^ self encodingError.
                        ].
                        [
                            |t|
                            t := #(
                               "16r2200"    16r224F " FOR ALL " 
                               "16r2201"    16r0000 " invalid " 
                               "16r2202"    16r225F " PARTIAL DIFFERENTIAL " 
                               "16r2203"    16r2250 " THERE EXISTS " 
                               "16r2204"    16r0000 " invalid " 
                               "16r2205"    16r0000 " invalid " 
                               "16r2206"    16r0000 " invalid " 
                               "16r2207"    16r2260 " NABLA " 
                               "16r2208"    16r223A " ELEMENT OF " 
                               "16r2209"    16r0000 " invalid " 
                               "16r220A"    16r0000 " invalid " 
                               "16r220B"    16r223B " CONTAINS AS MEMBER " 
                               "16r220C"    16r0000 " invalid " 
                               "16r220D"    16r0000 " invalid " 
                               "16r220E"    16r0000 " invalid " 
                               "16r220F"    16r0000 " invalid " 
                               "16r2210"    16r0000 " invalid " 
                               "16r2211"    16r0000 " invalid " 
                               "16r2212"    16r215D " MINUS SIGN " 
                               "16r2213"    16r0000 " invalid " 
                               "16r2214"    16r0000 " invalid " 
                               "16r2215"    16r0000 " invalid " 
                               "16r2216"    16r0000 " invalid " 
                               "16r2217"    16r0000 " invalid " 
                               "16r2218"    16r0000 " invalid " 
                               "16r2219"    16r0000 " invalid " 
                               "16r221A"    16r2265 " SQUARE ROOT " 
                               "16r221B"    16r0000 " invalid " 
                               "16r221C"    16r0000 " invalid " 
                               "16r221D"    16r2267 " PROPORTIONAL TO " 
                               "16r221E"    16r2167 " INFINITY " 
                               "16r221F"    16r0000 " invalid " 
                               "16r2220"    16r225C " ANGLE " 
                               "16r2221"    16r0000 " invalid " 
                               "16r2222"    16r0000 " invalid " 
                               "16r2223"    16r0000 " invalid " 
                               "16r2224"    16r0000 " invalid " 
                               "16r2225"    16r0000 " invalid " 
                               "16r2226"    16r0000 " invalid " 
                               "16r2227"    16r224A " LOGICAL AND " 
                               "16r2228"    16r224B " LOGICAL OR " 
                               "16r2229"    16r2241 " INTERSECTION " 
                               "16r222A"    16r2240 " UNION " 
                               "16r222B"    16r2269 " INTEGRAL " 
                               "16r222C"    16r226A " DOUBLE INTEGRAL " 
                               "16r222D"    16r0000 " invalid " 
                               "16r222E"    16r0000 " invalid " 
                               "16r222F"    16r0000 " invalid " 
                               "16r2230"    16r0000 " invalid " 
                               "16r2231"    16r0000 " invalid " 
                               "16r2232"    16r0000 " invalid " 
                               "16r2233"    16r0000 " invalid " 
                               "16r2234"    16r2168 " THEREFORE " 
                               "16r2235"    16r2268 " BECAUSE " 
                               "16r2236"    16r0000 " invalid " 
                               "16r2237"    16r0000 " invalid " 
                               "16r2238"    16r0000 " invalid " 
                               "16r2239"    16r0000 " invalid " 
                               "16r223A"    16r0000 " invalid " 
                               "16r223B"    16r0000 " invalid " 
                               "16r223C"    16r0000 " invalid " 
                               "16r223D"    16r2266 " REVERSED TILDE " 
                               "16r223E"    16r0000 " invalid " 
                               "16r223F"    16r0000 " invalid " 
                               "16r2240"    16r0000 " invalid " 
                               "16r2241"    16r0000 " invalid " 
                               "16r2242"    16r0000 " invalid " 
                               "16r2243"    16r0000 " invalid " 
                               "16r2244"    16r0000 " invalid " 
                               "16r2245"    16r0000 " invalid " 
                               "16r2246"    16r0000 " invalid " 
                               "16r2247"    16r0000 " invalid " 
                               "16r2248"    16r0000 " invalid " 
                               "16r2249"    16r0000 " invalid " 
                               "16r224A"    16r0000 " invalid " 
                               "16r224B"    16r0000 " invalid " 
                               "16r224C"    16r0000 " invalid " 
                               "16r224D"    16r0000 " invalid " 
                               "16r224E"    16r0000 " invalid " 
                               "16r224F"    16r0000 " invalid " 
                               "16r2250"    16r0000 " invalid " 
                               "16r2251"    16r0000 " invalid " 
                               "16r2252"    16r2262 " APPROXIMATELY EQUAL TO OR THE IMAGE OF " 
                               "16r2253"    16r0000 " invalid " 
                               "16r2254"    16r0000 " invalid " 
                               "16r2255"    16r0000 " invalid " 
                               "16r2256"    16r0000 " invalid " 
                               "16r2257"    16r0000 " invalid " 
                               "16r2258"    16r0000 " invalid " 
                               "16r2259"    16r0000 " invalid " 
                               "16r225A"    16r0000 " invalid " 
                               "16r225B"    16r0000 " invalid " 
                               "16r225C"    16r0000 " invalid " 
                               "16r225D"    16r0000 " invalid " 
                               "16r225E"    16r0000 " invalid " 
                               "16r225F"    16r0000 " invalid " 
                               "16r2260"    16r2162 " NOT EQUAL TO " 
                               "16r2261"    16r2261 " IDENTICAL TO " 
                               "16r2262"    16r0000 " invalid " 
                               "16r2263"    16r0000 " invalid " 
                               "16r2264"    16r0000 " invalid " 
                               "16r2265"    16r0000 " invalid " 
                               "16r2266"    16r2165 " LESS-THAN OVER EQUAL TO " 
                               "16r2267"    16r2166 " GREATER-THAN OVER EQUAL TO " 
                               "16r2268"    16r0000 " invalid " 
                               "16r2269"    16r0000 " invalid " 
                               "16r226A"    16r2263 " MUCH LESS-THAN " 
                               "16r226B"    16r2264 " MUCH GREATER-THAN " 
                               "16r226C"    16r0000 " invalid " 
                               "16r226D"    16r0000 " invalid " 
                               "16r226E"    16r0000 " invalid " 
                               "16r226F"    16r0000 " invalid " 
                               "16r2270"    16r0000 " invalid " 
                               "16r2271"    16r0000 " invalid " 
                               "16r2272"    16r0000 " invalid " 
                               "16r2273"    16r0000 " invalid " 
                               "16r2274"    16r0000 " invalid " 
                               "16r2275"    16r0000 " invalid " 
                               "16r2276"    16r0000 " invalid " 
                               "16r2277"    16r0000 " invalid " 
                               "16r2278"    16r0000 " invalid " 
                               "16r2279"    16r0000 " invalid " 
                               "16r227A"    16r0000 " invalid " 
                               "16r227B"    16r0000 " invalid " 
                               "16r227C"    16r0000 " invalid " 
                               "16r227D"    16r0000 " invalid " 
                               "16r227E"    16r0000 " invalid " 
                               "16r227F"    16r0000 " invalid " 
                               "16r2280"    16r0000 " invalid " 
                               "16r2281"    16r0000 " invalid " 
                               "16r2282"    16r223E " SUBSET OF " 
                               "16r2283"    16r223F " SUPERSET OF " 
                               "16r2284"    16r0000 " invalid " 
                               "16r2285"    16r0000 " invalid " 
                               "16r2286"    16r223C " SUBSET OF OR EQUAL TO " 
                               "16r2287"    16r223D " SUPERSET OF OR EQUAL TO " 
                               "16r2288"    16r0000 " invalid " 
                               "16r2289"    16r0000 " invalid " 
                               "16r228A"    16r0000 " invalid " 
                               "16r228B"    16r0000 " invalid " 
                               "16r228C"    16r0000 " invalid " 
                               "16r228D"    16r0000 " invalid " 
                               "16r228E"    16r0000 " invalid " 
                               "16r228F"    16r0000 " invalid " 
                               "16r2290"    16r0000 " invalid " 
                               "16r2291"    16r0000 " invalid " 
                               "16r2292"    16r0000 " invalid " 
                               "16r2293"    16r0000 " invalid " 
                               "16r2294"    16r0000 " invalid " 
                               "16r2295"    16r0000 " invalid " 
                               "16r2296"    16r0000 " invalid " 
                               "16r2297"    16r0000 " invalid " 
                               "16r2298"    16r0000 " invalid " 
                               "16r2299"    16r0000 " invalid " 
                               "16r229A"    16r0000 " invalid " 
                               "16r229B"    16r0000 " invalid " 
                               "16r229C"    16r0000 " invalid " 
                               "16r229D"    16r0000 " invalid " 
                               "16r229E"    16r0000 " invalid " 
                               "16r229F"    16r0000 " invalid " 
                               "16r22A0"    16r0000 " invalid " 
                               "16r22A1"    16r0000 " invalid " 
                               "16r22A2"    16r0000 " invalid " 
                               "16r22A3"    16r0000 " invalid " 
                               "16r22A4"    16r0000 " invalid " 
                               "16r22A5"    16r225D " UP TACK " 
                               ) at:(unicode - 16r21FF).
                            t == 0 ifFalse:[^ t].
                            ^ self encodingError
                        ] value.
                    ].
                    unicode <= 16r2311 ifTrue:[
                        ^ self encodingError.
                    ].
                    ^  "16r2312" 16r225E " ARC " 
                ].
                unicode <= 16r24FF ifTrue:[
                    ^ self encodingError.
                ].
                unicode <= 16r254B ifTrue:[
                    [
                        |t|
                        t := #(
                           "16r2500"    16r2821 " BOX DRAWINGS LIGHT HORIZONTAL " 
                           "16r2501"    16r282C " BOX DRAWINGS HEAVY HORIZONTAL " 
                           "16r2502"    16r2822 " BOX DRAWINGS LIGHT VERTICAL " 
                           "16r2503"    16r282D " BOX DRAWINGS HEAVY VERTICAL " 
                           "16r2504"    16r0000 " invalid " 
                           "16r2505"    16r0000 " invalid " 
                           "16r2506"    16r0000 " invalid " 
                           "16r2507"    16r0000 " invalid " 
                           "16r2508"    16r0000 " invalid " 
                           "16r2509"    16r0000 " invalid " 
                           "16r250A"    16r0000 " invalid " 
                           "16r250B"    16r0000 " invalid " 
                           "16r250C"    16r2823 " BOX DRAWINGS LIGHT DOWN AND RIGHT " 
                           "16r250D"    16r0000 " invalid " 
                           "16r250E"    16r0000 " invalid " 
                           "16r250F"    16r282E " BOX DRAWINGS HEAVY DOWN AND RIGHT " 
                           "16r2510"    16r2824 " BOX DRAWINGS LIGHT DOWN AND LEFT " 
                           "16r2511"    16r0000 " invalid " 
                           "16r2512"    16r0000 " invalid " 
                           "16r2513"    16r282F " BOX DRAWINGS HEAVY DOWN AND LEFT " 
                           "16r2514"    16r2826 " BOX DRAWINGS LIGHT UP AND RIGHT " 
                           "16r2515"    16r0000 " invalid " 
                           "16r2516"    16r0000 " invalid " 
                           "16r2517"    16r2831 " BOX DRAWINGS HEAVY UP AND RIGHT " 
                           "16r2518"    16r2825 " BOX DRAWINGS LIGHT UP AND LEFT " 
                           "16r2519"    16r0000 " invalid " 
                           "16r251A"    16r0000 " invalid " 
                           "16r251B"    16r2830 " BOX DRAWINGS HEAVY UP AND LEFT " 
                           "16r251C"    16r2827 " BOX DRAWINGS LIGHT VERTICAL AND RIGHT " 
                           "16r251D"    16r283C " BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY " 
                           "16r251E"    16r0000 " invalid " 
                           "16r251F"    16r0000 " invalid " 
                           "16r2520"    16r2837 " BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT " 
                           "16r2521"    16r0000 " invalid " 
                           "16r2522"    16r0000 " invalid " 
                           "16r2523"    16r2832 " BOX DRAWINGS HEAVY VERTICAL AND RIGHT " 
                           "16r2524"    16r2829 " BOX DRAWINGS LIGHT VERTICAL AND LEFT " 
                           "16r2525"    16r283E " BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY " 
                           "16r2526"    16r0000 " invalid " 
                           "16r2527"    16r0000 " invalid " 
                           "16r2528"    16r2839 " BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT " 
                           "16r2529"    16r0000 " invalid " 
                           "16r252A"    16r0000 " invalid " 
                           "16r252B"    16r2834 " BOX DRAWINGS HEAVY VERTICAL AND LEFT " 
                           "16r252C"    16r2828 " BOX DRAWINGS LIGHT DOWN AND HORIZONTAL " 
                           "16r252D"    16r0000 " invalid " 
                           "16r252E"    16r0000 " invalid " 
                           "16r252F"    16r2838 " BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY " 
                           "16r2530"    16r283D " BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT " 
                           "16r2531"    16r0000 " invalid " 
                           "16r2532"    16r0000 " invalid " 
                           "16r2533"    16r2833 " BOX DRAWINGS HEAVY DOWN AND HORIZONTAL " 
                           "16r2534"    16r282A " BOX DRAWINGS LIGHT UP AND HORIZONTAL " 
                           "16r2535"    16r0000 " invalid " 
                           "16r2536"    16r0000 " invalid " 
                           "16r2537"    16r283A " BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY " 
                           "16r2538"    16r283F " BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT " 
                           "16r2539"    16r0000 " invalid " 
                           "16r253A"    16r0000 " invalid " 
                           "16r253B"    16r2835 " BOX DRAWINGS HEAVY UP AND HORIZONTAL " 
                           "16r253C"    16r282B " BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL " 
                           "16r253D"    16r0000 " invalid " 
                           "16r253E"    16r0000 " invalid " 
                           "16r253F"    16r283B " BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY " 
                           "16r2540"    16r0000 " invalid " 
                           "16r2541"    16r0000 " invalid " 
                           "16r2542"    16r2840 " BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT " 
                           "16r2543"    16r0000 " invalid " 
                           "16r2544"    16r0000 " invalid " 
                           "16r2545"    16r0000 " invalid " 
                           "16r2546"    16r0000 " invalid " 
                           "16r2547"    16r0000 " invalid " 
                           "16r2548"    16r0000 " invalid " 
                           "16r2549"    16r0000 " invalid " 
                           "16r254A"    16r0000 " invalid " 
                           "16r254B"    16r2836 " BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL " 
                           ) at:(unicode - 16r24FF).
                        t == 0 ifFalse:[^ t].
                        ^ self encodingError
                    ] value.
                ].
                unicode <= 16r259F ifTrue:[
                    ^ self encodingError.
                ].
                unicode <= 16r2606 ifTrue:[
                    unicode <= 16r25CF ifTrue:[
                        unicode <= 16r25A1 ifTrue:[
                            ^ #(
                               "16r25A0"    16r2223 " BLACK SQUARE " 
                               "16r25A1"    16r2222 " WHITE SQUARE " 
                               ) at:(unicode - 16r259F).
                        ].
                        unicode <= 16r25B1 ifTrue:[
                            ^ self encodingError.
                        ].
                        [
                            |t|
                            t := #(
                               "16r25B2"    16r2225 " BLACK UP-POINTING TRIANGLE " 
                               "16r25B3"    16r2224 " WHITE UP-POINTING TRIANGLE " 
                               "16r25B4"    16r0000 " invalid " 
                               "16r25B5"    16r0000 " invalid " 
                               "16r25B6"    16r0000 " invalid " 
                               "16r25B7"    16r0000 " invalid " 
                               "16r25B8"    16r0000 " invalid " 
                               "16r25B9"    16r0000 " invalid " 
                               "16r25BA"    16r0000 " invalid " 
                               "16r25BB"    16r0000 " invalid " 
                               "16r25BC"    16r2227 " BLACK DOWN-POINTING TRIANGLE " 
                               "16r25BD"    16r2226 " WHITE DOWN-POINTING TRIANGLE " 
                               "16r25BE"    16r0000 " invalid " 
                               "16r25BF"    16r0000 " invalid " 
                               "16r25C0"    16r0000 " invalid " 
                               "16r25C1"    16r0000 " invalid " 
                               "16r25C2"    16r0000 " invalid " 
                               "16r25C3"    16r0000 " invalid " 
                               "16r25C4"    16r0000 " invalid " 
                               "16r25C5"    16r0000 " invalid " 
                               "16r25C6"    16r2221 " BLACK DIAMOND " 
                               "16r25C7"    16r217E " WHITE DIAMOND " 
                               "16r25C8"    16r0000 " invalid " 
                               "16r25C9"    16r0000 " invalid " 
                               "16r25CA"    16r0000 " invalid " 
                               "16r25CB"    16r217B " WHITE CIRCLE " 
                               "16r25CC"    16r0000 " invalid " 
                               "16r25CD"    16r0000 " invalid " 
                               "16r25CE"    16r217D " BULLSEYE " 
                               "16r25CF"    16r217C " BLACK CIRCLE " 
                               ) at:(unicode - 16r25B1).
                            t == 0 ifFalse:[^ t].
                            ^ self encodingError
                        ] value.
                    ].
                    unicode <= 16r25EE ifTrue:[
                        ^ self encodingError.
                    ].
                    unicode == 16r25EF ifTrue:[
                        ^  "16r25EF" 16r227E " LARGE CIRCLE " 
                    ].
                    unicode <= 16r2604 ifTrue:[
                        ^ self encodingError.
                    ].
                    ^ #(
                       "16r2605"    16r217A " BLACK STAR " 
                       "16r2606"    16r2179 " WHITE STAR " 
                       ) at:(unicode - 16r2604).
                ].
                unicode <= 16r263F ifTrue:[
                    ^ self encodingError.
                ].
                unicode <= 16r2642 ifTrue:[
                    [
                        |t|
                        t := #(
                           "16r2640"    16r216A " FEMALE SIGN " 
                           "16r2641"    16r0000 " invalid " 
                           "16r2642"    16r2169 " MALE SIGN " 
                           ) at:(unicode - 16r263F).
                        t == 0 ifFalse:[^ t].
                        ^ self encodingError
                    ] value.
                ].
                unicode <= 16r2669 ifTrue:[
                    ^ self encodingError.
                ].
                [
                    |t|
                    t := #(
                       "16r266A"    16r2276 " EIGHTH NOTE " 
                       "16r266B"    16r0000 " invalid " 
                       "16r266C"    16r0000 " invalid " 
                       "16r266D"    16r2275 " MUSIC FLAT SIGN " 
                       "16r266E"    16r0000 " invalid " 
                       "16r266F"    16r2274 " MUSIC SHARP SIGN " 
                       ) at:(unicode - 16r2669).
                    t == 0 ifFalse:[^ t].
                    ^ self encodingError
                ] value.
            ].
            unicode <= 16r2FFF ifTrue:[
                ^ self encodingError.
            ].
            [
                |t|
                t := #(
                   "16r3000"    16r2121 " IDEOGRAPHIC SPACE " 
                   "16r3001"    16r2122 " IDEOGRAPHIC COMMA " 
                   "16r3002"    16r2123 " IDEOGRAPHIC FULL STOP " 
                   "16r3003"    16r2137 " DITTO MARK " 
                   "16r3004"    16r0000 " invalid " 
                   "16r3005"    16r2139 " IDEOGRAPHIC ITERATION MARK " 
                   "16r3006"    16r213A " IDEOGRAPHIC CLOSING MARK " 
                   "16r3007"    16r213B " IDEOGRAPHIC NUMBER ZERO " 
                   "16r3008"    16r2152 " LEFT ANGLE BRACKET " 
                   "16r3009"    16r2153 " RIGHT ANGLE BRACKET " 
                   "16r300A"    16r2154 " LEFT DOUBLE ANGLE BRACKET " 
                   "16r300B"    16r2155 " RIGHT DOUBLE ANGLE BRACKET " 
                   "16r300C"    16r2156 " LEFT CORNER BRACKET " 
                   "16r300D"    16r2157 " RIGHT CORNER BRACKET " 
                   "16r300E"    16r2158 " LEFT WHITE CORNER BRACKET " 
                   "16r300F"    16r2159 " RIGHT WHITE CORNER BRACKET " 
                   "16r3010"    16r215A " LEFT BLACK LENTICULAR BRACKET " 
                   "16r3011"    16r215B " RIGHT BLACK LENTICULAR BRACKET " 
                   "16r3012"    16r2229 " POSTAL MARK " 
                   "16r3013"    16r222E " GETA MARK " 
                   "16r3014"    16r214C " LEFT TORTOISE SHELL BRACKET " 
                   "16r3015"    16r214D " RIGHT TORTOISE SHELL BRACKET " 
                   "16r3016"    16r0000 " invalid " 
                   "16r3017"    16r0000 " invalid " 
                   "16r3018"    16r0000 " invalid " 
                   "16r3019"    16r0000 " invalid " 
                   "16r301A"    16r0000 " invalid " 
                   "16r301B"    16r0000 " invalid " 
                   "16r301C"    16r2141 " WAVE DASH " 
                   "16r301D"    16r0000 " invalid " 
                   "16r301E"    16r0000 " invalid " 
                   "16r301F"    16r0000 " invalid " 
                   "16r3020"    16r0000 " invalid " 
                   "16r3021"    16r0000 " invalid " 
                   "16r3022"    16r0000 " invalid " 
                   "16r3023"    16r0000 " invalid " 
                   "16r3024"    16r0000 " invalid " 
                   "16r3025"    16r0000 " invalid " 
                   "16r3026"    16r0000 " invalid " 
                   "16r3027"    16r0000 " invalid " 
                   "16r3028"    16r0000 " invalid " 
                   "16r3029"    16r0000 " invalid " 
                   "16r302A"    16r0000 " invalid " 
                   "16r302B"    16r0000 " invalid " 
                   "16r302C"    16r0000 " invalid " 
                   "16r302D"    16r0000 " invalid " 
                   "16r302E"    16r0000 " invalid " 
                   "16r302F"    16r0000 " invalid " 
                   "16r3030"    16r0000 " invalid " 
                   "16r3031"    16r0000 " invalid " 
                   "16r3032"    16r0000 " invalid " 
                   "16r3033"    16r0000 " invalid " 
                   "16r3034"    16r0000 " invalid " 
                   "16r3035"    16r0000 " invalid " 
                   "16r3036"    16r0000 " invalid " 
                   "16r3037"    16r0000 " invalid " 
                   "16r3038"    16r0000 " invalid " 
                   "16r3039"    16r0000 " invalid " 
                   "16r303A"    16r0000 " invalid " 
                   "16r303B"    16r0000 " invalid " 
                   "16r303C"    16r0000 " invalid " 
                   "16r303D"    16r0000 " invalid " 
                   "16r303E"    16r0000 " invalid " 
                   "16r303F"    16r0000 " invalid " 
                   "16r3040"    16r0000 " invalid " 
                   "16r3041"    16r2421 " HIRAGANA LETTER SMALL A " 
                   "16r3042"    16r2422 " HIRAGANA LETTER A " 
                   "16r3043"    16r2423 " HIRAGANA LETTER SMALL I " 
                   "16r3044"    16r2424 " HIRAGANA LETTER I " 
                   "16r3045"    16r2425 " HIRAGANA LETTER SMALL U " 
                   "16r3046"    16r2426 " HIRAGANA LETTER U " 
                   "16r3047"    16r2427 " HIRAGANA LETTER SMALL E " 
                   "16r3048"    16r2428 " HIRAGANA LETTER E " 
                   "16r3049"    16r2429 " HIRAGANA LETTER SMALL O " 
                   "16r304A"    16r242A " HIRAGANA LETTER O " 
                   "16r304B"    16r242B " HIRAGANA LETTER KA " 
                   "16r304C"    16r242C " HIRAGANA LETTER GA " 
                   "16r304D"    16r242D " HIRAGANA LETTER KI " 
                   "16r304E"    16r242E " HIRAGANA LETTER GI " 
                   "16r304F"    16r242F " HIRAGANA LETTER KU " 
                   "16r3050"    16r2430 " HIRAGANA LETTER GU " 
                   "16r3051"    16r2431 " HIRAGANA LETTER KE " 
                   "16r3052"    16r2432 " HIRAGANA LETTER GE " 
                   "16r3053"    16r2433 " HIRAGANA LETTER KO " 
                   "16r3054"    16r2434 " HIRAGANA LETTER GO " 
                   "16r3055"    16r2435 " HIRAGANA LETTER SA " 
                   "16r3056"    16r2436 " HIRAGANA LETTER ZA " 
                   "16r3057"    16r2437 " HIRAGANA LETTER SI " 
                   "16r3058"    16r2438 " HIRAGANA LETTER ZI " 
                   "16r3059"    16r2439 " HIRAGANA LETTER SU " 
                   "16r305A"    16r243A " HIRAGANA LETTER ZU " 
                   "16r305B"    16r243B " HIRAGANA LETTER SE " 
                   "16r305C"    16r243C " HIRAGANA LETTER ZE " 
                   "16r305D"    16r243D " HIRAGANA LETTER SO " 
                   "16r305E"    16r243E " HIRAGANA LETTER ZO " 
                   "16r305F"    16r243F " HIRAGANA LETTER TA " 
                   "16r3060"    16r2440 " HIRAGANA LETTER DA " 
                   "16r3061"    16r2441 " HIRAGANA LETTER TI " 
                   "16r3062"    16r2442 " HIRAGANA LETTER DI " 
                   "16r3063"    16r2443 " HIRAGANA LETTER SMALL TU " 
                   "16r3064"    16r2444 " HIRAGANA LETTER TU " 
                   "16r3065"    16r2445 " HIRAGANA LETTER DU " 
                   "16r3066"    16r2446 " HIRAGANA LETTER TE " 
                   "16r3067"    16r2447 " HIRAGANA LETTER DE " 
                   "16r3068"    16r2448 " HIRAGANA LETTER TO " 
                   "16r3069"    16r2449 " HIRAGANA LETTER DO " 
                   "16r306A"    16r244A " HIRAGANA LETTER NA " 
                   "16r306B"    16r244B " HIRAGANA LETTER NI " 
                   "16r306C"    16r244C " HIRAGANA LETTER NU " 
                   "16r306D"    16r244D " HIRAGANA LETTER NE " 
                   "16r306E"    16r244E " HIRAGANA LETTER NO " 
                   "16r306F"    16r244F " HIRAGANA LETTER HA " 
                   "16r3070"    16r2450 " HIRAGANA LETTER BA " 
                   "16r3071"    16r2451 " HIRAGANA LETTER PA " 
                   "16r3072"    16r2452 " HIRAGANA LETTER HI " 
                   "16r3073"    16r2453 " HIRAGANA LETTER BI " 
                   "16r3074"    16r2454 " HIRAGANA LETTER PI " 
                   "16r3075"    16r2455 " HIRAGANA LETTER HU " 
                   "16r3076"    16r2456 " HIRAGANA LETTER BU " 
                   "16r3077"    16r2457 " HIRAGANA LETTER PU " 
                   "16r3078"    16r2458 " HIRAGANA LETTER HE " 
                   "16r3079"    16r2459 " HIRAGANA LETTER BE " 
                   "16r307A"    16r245A " HIRAGANA LETTER PE " 
                   "16r307B"    16r245B " HIRAGANA LETTER HO " 
                   "16r307C"    16r245C " HIRAGANA LETTER BO " 
                   "16r307D"    16r245D " HIRAGANA LETTER PO " 
                   "16r307E"    16r245E " HIRAGANA LETTER MA " 
                   "16r307F"    16r245F " HIRAGANA LETTER MI " 
                   "16r3080"    16r2460 " HIRAGANA LETTER MU " 
                   "16r3081"    16r2461 " HIRAGANA LETTER ME " 
                   "16r3082"    16r2462 " HIRAGANA LETTER MO " 
                   "16r3083"    16r2463 " HIRAGANA LETTER SMALL YA " 
                   "16r3084"    16r2464 " HIRAGANA LETTER YA " 
                   "16r3085"    16r2465 " HIRAGANA LETTER SMALL YU " 
                   "16r3086"    16r2466 " HIRAGANA LETTER YU " 
                   "16r3087"    16r2467 " HIRAGANA LETTER SMALL YO " 
                   "16r3088"    16r2468 " HIRAGANA LETTER YO " 
                   "16r3089"    16r2469 " HIRAGANA LETTER RA " 
                   "16r308A"    16r246A " HIRAGANA LETTER RI " 
                   "16r308B"    16r246B " HIRAGANA LETTER RU " 
                   "16r308C"    16r246C " HIRAGANA LETTER RE " 
                   "16r308D"    16r246D " HIRAGANA LETTER RO " 
                   "16r308E"    16r246E " HIRAGANA LETTER SMALL WA " 
                   "16r308F"    16r246F " HIRAGANA LETTER WA " 
                   "16r3090"    16r2470 " HIRAGANA LETTER WI " 
                   "16r3091"    16r2471 " HIRAGANA LETTER WE " 
                   "16r3092"    16r2472 " HIRAGANA LETTER WO " 
                   "16r3093"    16r2473 " HIRAGANA LETTER N " 
                   "16r3094"    16r0000 " invalid " 
                   "16r3095"    16r0000 " invalid " 
                   "16r3096"    16r0000 " invalid " 
                   "16r3097"    16r0000 " invalid " 
                   "16r3098"    16r0000 " invalid " 
                   "16r3099"    16r0000 " invalid " 
                   "16r309A"    16r0000 " invalid " 
                   "16r309B"    16r212B " KATAKANA-HIRAGANA VOICED SOUND MARK " 
                   "16r309C"    16r212C " KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK " 
                   "16r309D"    16r2135 " HIRAGANA ITERATION MARK " 
                   "16r309E"    16r2136 " HIRAGANA VOICED ITERATION MARK " 
                   "16r309F"    16r0000 " invalid " 
                   "16r30A0"    16r0000 " invalid " 
                   "16r30A1"    16r2521 " KATAKANA LETTER SMALL A " 
                   "16r30A2"    16r2522 " KATAKANA LETTER A " 
                   "16r30A3"    16r2523 " KATAKANA LETTER SMALL I " 
                   "16r30A4"    16r2524 " KATAKANA LETTER I " 
                   "16r30A5"    16r2525 " KATAKANA LETTER SMALL U " 
                   "16r30A6"    16r2526 " KATAKANA LETTER U " 
                   "16r30A7"    16r2527 " KATAKANA LETTER SMALL E " 
                   "16r30A8"    16r2528 " KATAKANA LETTER E " 
                   "16r30A9"    16r2529 " KATAKANA LETTER SMALL O " 
                   "16r30AA"    16r252A " KATAKANA LETTER O " 
                   "16r30AB"    16r252B " KATAKANA LETTER KA " 
                   "16r30AC"    16r252C " KATAKANA LETTER GA " 
                   "16r30AD"    16r252D " KATAKANA LETTER KI " 
                   "16r30AE"    16r252E " KATAKANA LETTER GI " 
                   "16r30AF"    16r252F " KATAKANA LETTER KU " 
                   "16r30B0"    16r2530 " KATAKANA LETTER GU " 
                   "16r30B1"    16r2531 " KATAKANA LETTER KE " 
                   "16r30B2"    16r2532 " KATAKANA LETTER GE " 
                   "16r30B3"    16r2533 " KATAKANA LETTER KO " 
                   "16r30B4"    16r2534 " KATAKANA LETTER GO " 
                   "16r30B5"    16r2535 " KATAKANA LETTER SA " 
                   "16r30B6"    16r2536 " KATAKANA LETTER ZA " 
                   "16r30B7"    16r2537 " KATAKANA LETTER SI " 
                   "16r30B8"    16r2538 " KATAKANA LETTER ZI " 
                   "16r30B9"    16r2539 " KATAKANA LETTER SU " 
                   "16r30BA"    16r253A " KATAKANA LETTER ZU " 
                   "16r30BB"    16r253B " KATAKANA LETTER SE " 
                   "16r30BC"    16r253C " KATAKANA LETTER ZE " 
                   "16r30BD"    16r253D " KATAKANA LETTER SO " 
                   "16r30BE"    16r253E " KATAKANA LETTER ZO " 
                   "16r30BF"    16r253F " KATAKANA LETTER TA " 
                   "16r30C0"    16r2540 " KATAKANA LETTER DA " 
                   "16r30C1"    16r2541 " KATAKANA LETTER TI " 
                   "16r30C2"    16r2542 " KATAKANA LETTER DI " 
                   "16r30C3"    16r2543 " KATAKANA LETTER SMALL TU " 
                   "16r30C4"    16r2544 " KATAKANA LETTER TU " 
                   "16r30C5"    16r2545 " KATAKANA LETTER DU " 
                   "16r30C6"    16r2546 " KATAKANA LETTER TE " 
                   "16r30C7"    16r2547 " KATAKANA LETTER DE " 
                   "16r30C8"    16r2548 " KATAKANA LETTER TO " 
                   "16r30C9"    16r2549 " KATAKANA LETTER DO " 
                   "16r30CA"    16r254A " KATAKANA LETTER NA " 
                   "16r30CB"    16r254B " KATAKANA LETTER NI " 
                   "16r30CC"    16r254C " KATAKANA LETTER NU " 
                   "16r30CD"    16r254D " KATAKANA LETTER NE " 
                   "16r30CE"    16r254E " KATAKANA LETTER NO " 
                   "16r30CF"    16r254F " KATAKANA LETTER HA " 
                   "16r30D0"    16r2550 " KATAKANA LETTER BA " 
                   "16r30D1"    16r2551 " KATAKANA LETTER PA " 
                   "16r30D2"    16r2552 " KATAKANA LETTER HI " 
                   "16r30D3"    16r2553 " KATAKANA LETTER BI " 
                   "16r30D4"    16r2554 " KATAKANA LETTER PI " 
                   "16r30D5"    16r2555 " KATAKANA LETTER HU " 
                   "16r30D6"    16r2556 " KATAKANA LETTER BU " 
                   "16r30D7"    16r2557 " KATAKANA LETTER PU " 
                   "16r30D8"    16r2558 " KATAKANA LETTER HE " 
                   "16r30D9"    16r2559 " KATAKANA LETTER BE " 
                   "16r30DA"    16r255A " KATAKANA LETTER PE " 
                   "16r30DB"    16r255B " KATAKANA LETTER HO " 
                   "16r30DC"    16r255C " KATAKANA LETTER BO " 
                   "16r30DD"    16r255D " KATAKANA LETTER PO " 
                   "16r30DE"    16r255E " KATAKANA LETTER MA " 
                   "16r30DF"    16r255F " KATAKANA LETTER MI " 
                   "16r30E0"    16r2560 " KATAKANA LETTER MU " 
                   "16r30E1"    16r2561 " KATAKANA LETTER ME " 
                   "16r30E2"    16r2562 " KATAKANA LETTER MO " 
                   "16r30E3"    16r2563 " KATAKANA LETTER SMALL YA " 
                   "16r30E4"    16r2564 " KATAKANA LETTER YA " 
                   "16r30E5"    16r2565 " KATAKANA LETTER SMALL YU " 
                   "16r30E6"    16r2566 " KATAKANA LETTER YU " 
                   "16r30E7"    16r2567 " KATAKANA LETTER SMALL YO " 
                   "16r30E8"    16r2568 " KATAKANA LETTER YO " 
                   "16r30E9"    16r2569 " KATAKANA LETTER RA " 
                   "16r30EA"    16r256A " KATAKANA LETTER RI " 
                   "16r30EB"    16r256B " KATAKANA LETTER RU " 
                   "16r30EC"    16r256C " KATAKANA LETTER RE " 
                   "16r30ED"    16r256D " KATAKANA LETTER RO " 
                   "16r30EE"    16r256E " KATAKANA LETTER SMALL WA " 
                   "16r30EF"    16r256F " KATAKANA LETTER WA " 
                   "16r30F0"    16r2570 " KATAKANA LETTER WI " 
                   "16r30F1"    16r2571 " KATAKANA LETTER WE " 
                   "16r30F2"    16r2572 " KATAKANA LETTER WO " 
                   "16r30F3"    16r2573 " KATAKANA LETTER N " 
                   "16r30F4"    16r2574 " KATAKANA LETTER VU " 
                   "16r30F5"    16r2575 " KATAKANA LETTER SMALL KA " 
                   "16r30F6"    16r2576 " KATAKANA LETTER SMALL KE " 
                   "16r30F7"    16r0000 " invalid " 
                   "16r30F8"    16r0000 " invalid " 
                   "16r30F9"    16r0000 " invalid " 
                   "16r30FA"    16r0000 " invalid " 
                   "16r30FB"    16r2126 " KATAKANA MIDDLE DOT " 
                   "16r30FC"    16r213C " KATAKANA-HIRAGANA PROLONGED SOUND MARK " 
                   "16r30FD"    16r2133 " KATAKANA ITERATION MARK " 
                   "16r30FE"    16r2134 " KATAKANA VOICED ITERATION MARK " 
                   ) at:(unicode - 16r2FFF).
                t == 0 ifFalse:[^ t].
                ^ self encodingError
            ] value.
        ].
        unicode <= 16r4DFF ifTrue:[
            ^ self encodingError.
        ].
        unicode <= 16r9481 ifTrue:[
            unicode <= 16r8B9A ifTrue:[
                unicode <= 16r7E9C ifTrue:[
                    [
                        |t|
                        t := #(
                           "16r4E00"    16r306C " <CJK> " 
                           "16r4E01"    16r437A " <CJK> " 
                           "16r4E02"    16r0000 " invalid " 
                           "16r4E03"    16r3C37 " <CJK> " 
                           "16r4E04"    16r0000 " invalid " 
                           "16r4E05"    16r0000 " invalid " 
                           "16r4E06"    16r0000 " invalid " 
                           "16r4E07"    16r4B7C " <CJK> " 
                           "16r4E08"    16r3E66 " <CJK> " 
                           "16r4E09"    16r3B30 " <CJK> " 
                           "16r4E0A"    16r3E65 " <CJK> " 
                           "16r4E0B"    16r323C " <CJK> " 
                           "16r4E0C"    16r0000 " invalid " 
                           "16r4E0D"    16r4954 " <CJK> " 
                           "16r4E0E"    16r4D3F " <CJK> " 
                           "16r4E0F"    16r0000 " invalid " 
                           "16r4E10"    16r5022 " <CJK> " 
                           "16r4E11"    16r312F " <CJK> " 
                           "16r4E12"    16r0000 " invalid " 
                           "16r4E13"    16r0000 " invalid " 
                           "16r4E14"    16r336E " <CJK> " 
                           "16r4E15"    16r5023 " <CJK> " 
                           "16r4E16"    16r4024 " <CJK> " 
                           "16r4E17"    16r5242 " <CJK> " 
                           "16r4E18"    16r3556 " <CJK> " 
                           "16r4E19"    16r4A3A " <CJK> " 
                           "16r4E1A"    16r0000 " invalid " 
                           "16r4E1B"    16r0000 " invalid " 
                           "16r4E1C"    16r0000 " invalid " 
                           "16r4E1D"    16r0000 " invalid " 
                           "16r4E1E"    16r3E67 " <CJK> " 
                           "16r4E1F"    16r0000 " invalid " 
                           "16r4E20"    16r0000 " invalid " 
                           "16r4E21"    16r4E3E " <CJK> " 
                           "16r4E22"    16r0000 " invalid " 
                           "16r4E23"    16r0000 " invalid " 
                           "16r4E24"    16r0000 " invalid " 
                           "16r4E25"    16r0000 " invalid " 
                           "16r4E26"    16r4A42 " <CJK> " 
                           "16r4E27"    16r0000 " invalid " 
                           "16r4E28"    16r0000 " invalid " 
                           "16r4E29"    16r0000 " invalid " 
                           "16r4E2A"    16r5024 " <CJK> " 
                           "16r4E2B"    16r0000 " invalid " 
                           "16r4E2C"    16r0000 " invalid " 
                           "16r4E2D"    16r4366 " <CJK> " 
                           "16r4E2E"    16r0000 " invalid " 
                           "16r4E2F"    16r0000 " invalid " 
                           "16r4E30"    16r0000 " invalid " 
                           "16r4E31"    16r5025 " <CJK> " 
                           "16r4E32"    16r367A " <CJK> " 
                           "16r4E33"    16r0000 " invalid " 
                           "16r4E34"    16r0000 " invalid " 
                           "16r4E35"    16r0000 " invalid " 
                           "16r4E36"    16r5026 " <CJK> " 
                           "16r4E37"    16r0000 " invalid " 
                           "16r4E38"    16r345D " <CJK> " 
                           "16r4E39"    16r4330 " <CJK> " 
                           "16r4E3A"    16r0000 " invalid " 
                           "16r4E3B"    16r3C67 " <CJK> " 
                           "16r4E3C"    16r5027 " <CJK> " 
                           "16r4E3D"    16r0000 " invalid " 
                           "16r4E3E"    16r0000 " invalid " 
                           "16r4E3F"    16r5028 " <CJK> " 
                           "16r4E40"    16r0000 " invalid " 
                           "16r4E41"    16r0000 " invalid " 
                           "16r4E42"    16r5029 " <CJK> " 
                           "16r4E43"    16r4735 " <CJK> " 
                           "16r4E44"    16r0000 " invalid " 
                           "16r4E45"    16r3557 " <CJK> " 
                           "16r4E46"    16r0000 " invalid " 
                           "16r4E47"    16r0000 " invalid " 
                           "16r4E48"    16r0000 " invalid " 
                           "16r4E49"    16r0000 " invalid " 
                           "16r4E4A"    16r0000 " invalid " 
                           "16r4E4B"    16r4737 " <CJK> " 
                           "16r4E4C"    16r0000 " invalid " 
                           "16r4E4D"    16r4663 " <CJK> " 
                           "16r4E4E"    16r3843 " <CJK> " 
                           "16r4E4F"    16r4B33 " <CJK> " 
                           "16r4E50"    16r0000 " invalid " 
                           "16r4E51"    16r0000 " invalid " 
                           "16r4E52"    16r0000 " invalid " 
                           "16r4E53"    16r0000 " invalid " 
                           "16r4E54"    16r0000 " invalid " 
                           "16r4E55"    16r6949 " <CJK> " 
                           "16r4E56"    16r502A " <CJK> " 
                           "16r4E57"    16r3E68 " <CJK> " 
                           "16r4E58"    16r502B " <CJK> " 
                           "16r4E59"    16r3235 " <CJK> " 
                           "16r4E5A"    16r0000 " invalid " 
                           "16r4E5B"    16r0000 " invalid " 
                           "16r4E5C"    16r0000 " invalid " 
                           "16r4E5D"    16r3665 " <CJK> " 
                           "16r4E5E"    16r3870 " <CJK> " 
                           "16r4E5F"    16r4C69 " <CJK> " 
                           "16r4E60"    16r0000 " invalid " 
                           "16r4E61"    16r0000 " invalid " 
                           "16r4E62"    16r5626 " <CJK> " 
                           "16r4E63"    16r0000 " invalid " 
                           "16r4E64"    16r0000 " invalid " 
                           "16r4E65"    16r0000 " invalid " 
                           "16r4E66"    16r0000 " invalid " 
                           "16r4E67"    16r0000 " invalid " 
                           "16r4E68"    16r0000 " invalid " 
                           "16r4E69"    16r0000 " invalid " 
                           "16r4E6A"    16r0000 " invalid " 
                           "16r4E6B"    16r0000 " invalid " 
                           "16r4E6C"    16r0000 " invalid " 
                           "16r4E6D"    16r0000 " invalid " 
                           "16r4E6E"    16r0000 " invalid " 
                           "16r4E6F"    16r0000 " invalid " 
                           "16r4E70"    16r0000 " invalid " 
                           "16r4E71"    16r4D70 " <CJK> " 
                           "16r4E72"    16r0000 " invalid " 
                           "16r4E73"    16r467D " <CJK> " 
                           "16r4E74"    16r0000 " invalid " 
                           "16r4E75"    16r0000 " invalid " 
                           "16r4E76"    16r0000 " invalid " 
                           "16r4E77"    16r0000 " invalid " 
                           "16r4E78"    16r0000 " invalid " 
                           "16r4E79"    16r0000 " invalid " 
                           "16r4E7A"    16r0000 " invalid " 
                           "16r4E7B"    16r0000 " invalid " 
                           "16r4E7C"    16r0000 " invalid " 
                           "16r4E7D"    16r0000 " invalid " 
                           "16r4E7E"    16r3425 " <CJK> " 
                           "16r4E7F"    16r0000 " invalid " 
                           "16r4E80"    16r3535 " <CJK> " 
                           "16r4E81"    16r0000 " invalid " 
                           "16r4E82"    16r502C " <CJK> " 
                           "16r4E83"    16r0000 " invalid " 
                           "16r4E84"    16r0000 " invalid " 
                           "16r4E85"    16r502D " <CJK> " 
                           "16r4E86"    16r4E3B " <CJK> " 
                           "16r4E87"    16r0000 " invalid " 
                           "16r4E88"    16r4D3D " <CJK> " 
                           "16r4E89"    16r4168 " <CJK> " 
                           "16r4E8A"    16r502F " <CJK> " 
                           "16r4E8B"    16r3B76 " <CJK> " 
                           "16r4E8C"    16r4673 " <CJK> " 
                           "16r4E8D"    16r0000 " invalid " 
                           "16r4E8E"    16r5032 " <CJK> " 
                           "16r4E8F"    16r0000 " invalid " 
                           "16r4E90"    16r0000 " invalid " 
                           "16r4E91"    16r313E " <CJK> " 
                           "16r4E92"    16r385F " <CJK> " 
                           "16r4E93"    16r0000 " invalid " 
                           "16r4E94"    16r385E " <CJK> " 
                           "16r4E95"    16r3066 " <CJK> " 
                           "16r4E96"    16r0000 " invalid " 
                           "16r4E97"    16r0000 " invalid " 
                           "16r4E98"    16r4F4B " <CJK> " 
                           "16r4E99"    16r4F4A " <CJK> " 
                           "16r4E9A"    16r0000 " invalid " 
                           "16r4E9B"    16r3A33 " <CJK> " 
                           "16r4E9C"    16r3021 " <CJK> " 
                           "16r4E9D"    16r0000 " invalid " 
                           "16r4E9E"    16r5033 " <CJK> " 
                           "16r4E9F"    16r5034 " <CJK> " 
                           "16r4EA0"    16r5035 " <CJK> " 
                           "16r4EA1"    16r4B34 " <CJK> " 
                           "16r4EA2"    16r5036 " <CJK> " 
                           "16r4EA3"    16r0000 " invalid " 
                           "16r4EA4"    16r3872 " <CJK> " 
                           "16r4EA5"    16r3067 " <CJK> " 
                           "16r4EA6"    16r4B72 " <CJK> " 
                           "16r4EA7"    16r0000 " invalid " 
                           "16r4EA8"    16r357C " <CJK> " 
                           "16r4EA9"    16r0000 " invalid " 
                           "16r4EAA"    16r0000 " invalid " 
                           "16r4EAB"    16r357D " <CJK> " 
                           "16r4EAC"    16r357E " <CJK> " 
                           "16r4EAD"    16r4462 " <CJK> " 
                           "16r4EAE"    16r4E3C " <CJK> " 
                           "16r4EAF"    16r0000 " invalid " 
                           "16r4EB0"    16r5037 " <CJK> " 
                           "16r4EB1"    16r0000 " invalid " 
                           "16r4EB2"    16r0000 " invalid " 
                           "16r4EB3"    16r5038 " <CJK> " 
                           "16r4EB4"    16r0000 " invalid " 
                           "16r4EB5"    16r0000 " invalid " 
                           "16r4EB6"    16r5039 " <CJK> " 
                           "16r4EB7"    16r0000 " invalid " 
                           "16r4EB8"    16r0000 " invalid " 
                           "16r4EB9"    16r0000 " invalid " 
                           "16r4EBA"    16r3F4D " <CJK> " 
                           "16r4EBB"    16r0000 " invalid " 
                           "16r4EBC"    16r0000 " invalid " 
                           "16r4EBD"    16r0000 " invalid " 
                           "16r4EBE"    16r0000 " invalid " 
                           "16r4EBF"    16r0000 " invalid " 
                           "16r4EC0"    16r3D3A " <CJK> " 
                           "16r4EC1"    16r3F4E " <CJK> " 
                           "16r4EC2"    16r503E " <CJK> " 
                           "16r4EC3"    16r0000 " invalid " 
                           "16r4EC4"    16r503C " <CJK> " 
                           "16r4EC5"    16r0000 " invalid " 
                           "16r4EC6"    16r503D " <CJK> " 
                           "16r4EC7"    16r3558 " <CJK> " 
                           "16r4EC8"    16r0000 " invalid " 
                           "16r4EC9"    16r0000 " invalid " 
                           "16r4ECA"    16r3A23 " <CJK> " 
                           "16r4ECB"    16r3270 " <CJK> " 
                           "16r4ECC"    16r0000 " invalid " 
                           "16r4ECD"    16r503B " <CJK> " 
                           "16r4ECE"    16r503A " <CJK> " 
                           "16r4ECF"    16r4A29 " <CJK> " 
                           "16r4ED0"    16r0000 " invalid " 
                           "16r4ED1"    16r0000 " invalid " 
                           "16r4ED2"    16r0000 " invalid " 
                           "16r4ED3"    16r0000 " invalid " 
                           "16r4ED4"    16r3B46 " <CJK> " 
                           "16r4ED5"    16r3B45 " <CJK> " 
                           "16r4ED6"    16r423E " <CJK> " 
                           "16r4ED7"    16r503F " <CJK> " 
                           "16r4ED8"    16r4955 " <CJK> " 
                           "16r4ED9"    16r4067 " <CJK> " 
                           "16r4EDA"    16r0000 " invalid " 
                           "16r4EDB"    16r0000 " invalid " 
                           "16r4EDC"    16r0000 " invalid " 
                           "16r4EDD"    16r2138 " <CJK> " 
                           "16r4EDE"    16r5040 " <CJK> " 
                           "16r4EDF"    16r5042 " <CJK> " 
                           "16r4EE0"    16r0000 " invalid " 
                           "16r4EE1"    16r0000 " invalid " 
                           "16r4EE2"    16r0000 " invalid " 
                           "16r4EE3"    16r4265 " <CJK> " 
                           "16r4EE4"    16r4E61 " <CJK> " 
                           "16r4EE5"    16r304A " <CJK> " 
                           "16r4EE6"    16r0000 " invalid " 
                           "16r4EE7"    16r0000 " invalid " 
                           "16r4EE8"    16r0000 " invalid " 
                           "16r4EE9"    16r0000 " invalid " 
                           "16r4EEA"    16r0000 " invalid " 
                           "16r4EEB"    16r0000 " invalid " 
                           "16r4EEC"    16r0000 " invalid " 
                           "16r4EED"    16r5041 " <CJK> " 
                           "16r4EEE"    16r323E " <CJK> " 
                           "16r4EEF"    16r0000 " invalid " 
                           "16r4EF0"    16r3644 " <CJK> " 
                           "16r4EF1"    16r0000 " invalid " 
                           "16r4EF2"    16r4367 " <CJK> " 
                           "16r4EF3"    16r0000 " invalid " 
                           "16r4EF4"    16r0000 " invalid " 
                           "16r4EF5"    16r0000 " invalid " 
                           "16r4EF6"    16r376F " <CJK> " 
                           "16r4EF7"    16r5043 " <CJK> " 
                           "16r4EF8"    16r0000 " invalid " 
                           "16r4EF9"    16r0000 " invalid " 
                           "16r4EFA"    16r0000 " invalid " 
                           "16r4EFB"    16r4724 " <CJK> " 
                           "16r4EFC"    16r0000 " invalid " 
                           "16r4EFD"    16r0000 " invalid " 
                           "16r4EFE"    16r0000 " invalid " 
                           "16r4EFF"    16r0000 " invalid " 
                           "16r4F00"    16r0000 " invalid " 
                           "16r4F01"    16r346B " <CJK> " 
                           "16r4F02"    16r0000 " invalid " 
                           "16r4F03"    16r0000 " invalid " 
                           "16r4F04"    16r0000 " invalid " 
                           "16r4F05"    16r0000 " invalid " 
                           "16r4F06"    16r0000 " invalid " 
                           "16r4F07"    16r0000 " invalid " 
                           "16r4F08"    16r0000 " invalid " 
                           "16r4F09"    16r5044 " <CJK> " 
                           "16r4F0A"    16r304B " <CJK> " 
                           "16r4F0B"    16r0000 " invalid " 
                           "16r4F0C"    16r0000 " invalid " 
                           "16r4F0D"    16r3860 " <CJK> " 
                           "16r4F0E"    16r346C " <CJK> " 
                           "16r4F0F"    16r497A " <CJK> " 
                           "16r4F10"    16r4832 " <CJK> " 
                           "16r4F11"    16r3559 " <CJK> " 
                           "16r4F12"    16r0000 " invalid " 
                           "16r4F13"    16r0000 " invalid " 
                           "16r4F14"    16r0000 " invalid " 
                           "16r4F15"    16r0000 " invalid " 
                           "16r4F16"    16r0000 " invalid " 
                           "16r4F17"    16r0000 " invalid " 
                           "16r4F18"    16r0000 " invalid " 
                           "16r4F19"    16r0000 " invalid " 
                           "16r4F1A"    16r3271 " <CJK> " 
                           "16r4F1B"    16r0000 " invalid " 
                           "16r4F1C"    16r5067 " <CJK> " 
                           "16r4F1D"    16r4541 " <CJK> " 
                           "16r4F1E"    16r0000 " invalid " 
                           "16r4F1F"    16r0000 " invalid " 
                           "16r4F20"    16r0000 " invalid " 
                           "16r4F21"    16r0000 " invalid " 
                           "16r4F22"    16r0000 " invalid " 
                           "16r4F23"    16r0000 " invalid " 
                           "16r4F24"    16r0000 " invalid " 
                           "16r4F25"    16r0000 " invalid " 
                           "16r4F26"    16r0000 " invalid " 
                           "16r4F27"    16r0000 " invalid " 
                           "16r4F28"    16r0000 " invalid " 
                           "16r4F29"    16r0000 " invalid " 
                           "16r4F2A"    16r0000 " invalid " 
                           "16r4F2B"    16r0000 " invalid " 
                           "16r4F2C"    16r0000 " invalid " 
                           "16r4F2D"    16r0000 " invalid " 
                           "16r4F2E"    16r0000 " invalid " 
                           "16r4F2F"    16r476C " <CJK> " 
                           "16r4F30"    16r5046 " <CJK> " 
                           "16r4F31"    16r0000 " invalid " 
                           "16r4F32"    16r0000 " invalid " 
                           "16r4F33"    16r0000 " invalid " 
                           "16r4F34"    16r483C " <CJK> " 
                           "16r4F35"    16r0000 " invalid " 
                           "16r4F36"    16r4E62 " <CJK> " 
                           "16r4F37"    16r0000 " invalid " 
                           "16r4F38"    16r3F2D " <CJK> " 
                           "16r4F39"    16r0000 " invalid " 
                           "16r4F3A"    16r3B47 " <CJK> " 
                           "16r4F3B"    16r0000 " invalid " 
                           "16r4F3C"    16r3B77 " <CJK> " 
                           "16r4F3D"    16r3240 " <CJK> " 
                           "16r4F3E"    16r0000 " invalid " 
                           "16r4F3F"    16r0000 " invalid " 
                           "16r4F40"    16r0000 " invalid " 
                           "16r4F41"    16r0000 " invalid " 
                           "16r4F42"    16r0000 " invalid " 
                           "16r4F43"    16r4451 " <CJK> " 
                           "16r4F44"    16r0000 " invalid " 
                           "16r4F45"    16r0000 " invalid " 
                           "16r4F46"    16r4322 " <CJK> " 
                           "16r4F47"    16r504A " <CJK> " 
                           "16r4F48"    16r0000 " invalid " 
                           "16r4F49"    16r0000 " invalid " 
                           "16r4F4A"    16r0000 " invalid " 
                           "16r4F4B"    16r0000 " invalid " 
                           "16r4F4C"    16r0000 " invalid " 
                           "16r4F4D"    16r304C " <CJK> " 
                           "16r4F4E"    16r4463 " <CJK> " 
                           "16r4F4F"    16r3D3B " <CJK> " 
                           "16r4F50"    16r3A34 " <CJK> " 
                           "16r4F51"    16r4D24 " <CJK> " 
                           "16r4F52"    16r0000 " invalid " 
                           "16r4F53"    16r424E " <CJK> " 
                           "16r4F54"    16r0000 " invalid " 
                           "16r4F55"    16r323F " <CJK> " 
                           "16r4F56"    16r0000 " invalid " 
                           "16r4F57"    16r5049 " <CJK> " 
                           "16r4F58"    16r0000 " invalid " 
                           "16r4F59"    16r4D3E " <CJK> " 
                           "16r4F5A"    16r5045 " <CJK> " 
                           "16r4F5B"    16r5047 " <CJK> " 
                           "16r4F5C"    16r3A6E " <CJK> " 
                           "16r4F5D"    16r5048 " <CJK> " 
                           "16r4F5E"    16r5524 " <CJK> " 
                           "16r4F5F"    16r0000 " invalid " 
                           "16r4F60"    16r0000 " invalid " 
                           "16r4F61"    16r0000 " invalid " 
                           "16r4F62"    16r0000 " invalid " 
                           "16r4F63"    16r0000 " invalid " 
                           "16r4F64"    16r0000 " invalid " 
                           "16r4F65"    16r0000 " invalid " 
                           "16r4F66"    16r0000 " invalid " 
                           "16r4F67"    16r0000 " invalid " 
                           "16r4F68"    16r0000 " invalid " 
                           "16r4F69"    16r5050 " <CJK> " 
                           "16r4F6A"    16r0000 " invalid " 
                           "16r4F6B"    16r0000 " invalid " 
                           "16r4F6C"    16r0000 " invalid " 
                           "16r4F6D"    16r0000 " invalid " 
                           "16r4F6E"    16r0000 " invalid " 
                           "16r4F6F"    16r5053 " <CJK> " 
                           "16r4F70"    16r5051 " <CJK> " 
                           "16r4F71"    16r0000 " invalid " 
                           "16r4F72"    16r0000 " invalid " 
                           "16r4F73"    16r3242 " <CJK> " 
                           "16r4F74"    16r0000 " invalid " 
                           "16r4F75"    16r4A3B " <CJK> " 
                           "16r4F76"    16r504B " <CJK> " 
                           "16r4F77"    16r0000 " invalid " 
                           "16r4F78"    16r0000 " invalid " 
                           "16r4F79"    16r0000 " invalid " 
                           "16r4F7A"    16r0000 " invalid " 
                           "16r4F7B"    16r504F " <CJK> " 
                           "16r4F7C"    16r3873 " <CJK> " 
                           "16r4F7D"    16r0000 " invalid " 
                           "16r4F7E"    16r0000 " invalid " 
                           "16r4F7F"    16r3B48 " <CJK> " 
                           "16r4F80"    16r0000 " invalid " 
                           "16r4F81"    16r0000 " invalid " 
                           "16r4F82"    16r0000 " invalid " 
                           "16r4F83"    16r3426 " <CJK> " 
                           "16r4F84"    16r0000 " invalid " 
                           "16r4F85"    16r0000 " invalid " 
                           "16r4F86"    16r5054 " <CJK> " 
                           "16r4F87"    16r0000 " invalid " 
                           "16r4F88"    16r504C " <CJK> " 
                           "16r4F89"    16r0000 " invalid " 
                           "16r4F8A"    16r0000 " invalid " 
                           "16r4F8B"    16r4E63 " <CJK> " 
                           "16r4F8C"    16r0000 " invalid " 
                           "16r4F8D"    16r3B78 " <CJK> " 
                           "16r4F8E"    16r0000 " invalid " 
                           "16r4F8F"    16r504D " <CJK> " 
                           "16r4F90"    16r0000 " invalid " 
                           "16r4F91"    16r5052 " <CJK> " 
                           "16r4F92"    16r0000 " invalid " 
                           "16r4F93"    16r0000 " invalid " 
                           "16r4F94"    16r0000 " invalid " 
                           "16r4F95"    16r0000 " invalid " 
                           "16r4F96"    16r5055 " <CJK> " 
                           "16r4F97"    16r0000 " invalid " 
                           "16r4F98"    16r504E " <CJK> " 
                           "16r4F99"    16r0000 " invalid " 
                           "16r4F9A"    16r0000 " invalid " 
                           "16r4F9B"    16r3621 " <CJK> " 
                           "16r4F9C"    16r0000 " invalid " 
                           "16r4F9D"    16r304D " <CJK> " 
                           "16r4F9E"    16r0000 " invalid " 
                           "16r4F9F"    16r0000 " invalid " 
                           "16r4FA0"    16r3622 " <CJK> " 
                           "16r4FA1"    16r3241 " <CJK> " 
                           "16r4FA2"    16r0000 " invalid " 
                           "16r4FA3"    16r0000 " invalid " 
                           "16r4FA4"    16r0000 " invalid " 
                           "16r4FA5"    16r0000 " invalid " 
                           "16r4FA6"    16r0000 " invalid " 
                           "16r4FA7"    16r0000 " invalid " 
                           "16r4FA8"    16r0000 " invalid " 
                           "16r4FA9"    16r0000 " invalid " 
                           "16r4FAA"    16r0000 " invalid " 
                           "16r4FAB"    16r5525 " <CJK> " 
                           "16r4FAC"    16r0000 " invalid " 
                           "16r4FAD"    16r4B79 " <CJK> " 
                           "16r4FAE"    16r496E " <CJK> " 
                           "16r4FAF"    16r3874 " <CJK> " 
                           "16r4FB0"    16r0000 " invalid " 
                           "16r4FB1"    16r0000 " invalid " 
                           "16r4FB2"    16r0000 " invalid " 
                           "16r4FB3"    16r0000 " invalid " 
                           "16r4FB4"    16r0000 " invalid " 
                           "16r4FB5"    16r3F2F " <CJK> " 
                           "16r4FB6"    16r4E37 " <CJK> " 
                           "16r4FB7"    16r0000 " invalid " 
                           "16r4FB8"    16r0000 " invalid " 
                           "16r4FB9"    16r0000 " invalid " 
                           "16r4FBA"    16r0000 " invalid " 
                           "16r4FBB"    16r0000 " invalid " 
                           "16r4FBC"    16r0000 " invalid " 
                           "16r4FBD"    16r0000 " invalid " 
                           "16r4FBE"    16r0000 " invalid " 
                           "16r4FBF"    16r4A58 " <CJK> " 
                           "16r4FC0"    16r0000 " invalid " 
                           "16r4FC1"    16r0000 " invalid " 
                           "16r4FC2"    16r3738 " <CJK> " 
                           "16r4FC3"    16r4225 " <CJK> " 
                           "16r4FC4"    16r3264 " <CJK> " 
                           "16r4FC5"    16r0000 " invalid " 
                           "16r4FC6"    16r0000 " invalid " 
                           "16r4FC7"    16r0000 " invalid " 
                           "16r4FC8"    16r0000 " invalid " 
                           "16r4FC9"    16r0000 " invalid " 
                           "16r4FCA"    16r3D53 " <CJK> " 
                           "16r4FCB"    16r0000 " invalid " 
                           "16r4FCC"    16r0000 " invalid " 
                           "16r4FCD"    16r0000 " invalid " 
                           "16r4FCE"    16r5059 " <CJK> " 
                           "16r4FCF"    16r0000 " invalid " 
                           "16r4FD0"    16r505E " <CJK> " 
                           "16r4FD1"    16r505C " <CJK> " 
                           "16r4FD2"    16r0000 " invalid " 
                           "16r4FD3"    16r0000 " invalid " 
                           "16r4FD4"    16r5057 " <CJK> " 
                           "16r4FD5"    16r0000 " invalid " 
                           "16r4FD6"    16r0000 " invalid " 
                           "16r4FD7"    16r422F " <CJK> " 
                           "16r4FD8"    16r505A " <CJK> " 
                           "16r4FD9"    16r0000 " invalid " 
                           "16r4FDA"    16r505D " <CJK> " 
                           "16r4FDB"    16r505B " <CJK> " 
                           "16r4FDC"    16r0000 " invalid " 
                           "16r4FDD"    16r4A5D " <CJK> " 
                           "16r4FDE"    16r0000 " invalid " 
                           "16r4FDF"    16r5058 " <CJK> " 
                           "16r4FE0"    16r0000 " invalid " 
                           "16r4FE1"    16r3F2E " <CJK> " 
                           "16r4FE2"    16r0000 " invalid " 
                           "16r4FE3"    16r4B73 " <CJK> " 
                           "16r4FE4"    16r505F " <CJK> " 
                           "16r4FE5"    16r5060 " <CJK> " 
                           "16r4FE6"    16r0000 " invalid " 
                           "16r4FE7"    16r0000 " invalid " 
                           "16r4FE8"    16r0000 " invalid " 
                           "16r4FE9"    16r0000 " invalid " 
                           "16r4FEA"    16r0000 " invalid " 
                           "16r4FEB"    16r0000 " invalid " 
                           "16r4FEC"    16r0000 " invalid " 
                           "16r4FED"    16r0000 " invalid " 
                           "16r4FEE"    16r3D24 " <CJK> " 
                           "16r4FEF"    16r506D " <CJK> " 
                           "16r4FF0"    16r0000 " invalid " 
                           "16r4FF1"    16r0000 " invalid " 
                           "16r4FF2"    16r0000 " invalid " 
                           "16r4FF3"    16r4750 " <CJK> " 
                           "16r4FF4"    16r0000 " invalid " 
                           "16r4FF5"    16r4936 " <CJK> " 
                           "16r4FF6"    16r5068 " <CJK> " 
                           "16r4FF7"    16r0000 " invalid " 
                           "16r4FF8"    16r4A70 " <CJK> " 
                           "16r4FF9"    16r0000 " invalid " 
                           "16r4FFA"    16r3236 " <CJK> " 
                           "16r4FFB"    16r0000 " invalid " 
                           "16r4FFC"    16r0000 " invalid " 
                           "16r4FFD"    16r0000 " invalid " 
                           "16r4FFE"    16r506C " <CJK> " 
                           "16r4FFF"    16r0000 " invalid " 
                           "16r5000"    16r0000 " invalid " 
                           "16r5001"    16r0000 " invalid " 
                           "16r5002"    16r0000 " invalid " 
                           "16r5003"    16r0000 " invalid " 
                           "16r5004"    16r0000 " invalid " 
                           "16r5005"    16r5066 " <CJK> " 
                           "16r5006"    16r506F " <CJK> " 
                           "16r5007"    16r0000 " invalid " 
                           "16r5008"    16r0000 " invalid " 
                           "16r5009"    16r4152 " <CJK> " 
                           "16r500A"    16r0000 " invalid " 
                           "16r500B"    16r3844 " <CJK> " 
                           "16r500C"    16r0000 " invalid " 
                           "16r500D"    16r475C " <CJK> " 
                           "16r500E"    16r0000 " invalid " 
                           "16r500F"    16r6047 " <CJK> " 
                           "16r5010"    16r0000 " invalid " 
                           "16r5011"    16r506E " <CJK> " 
                           "16r5012"    16r455D " <CJK> " 
                           "16r5013"    16r0000 " invalid " 
                           "16r5014"    16r5063 " <CJK> " 
                           "16r5015"    16r0000 " invalid " 
                           "16r5016"    16r3876 " <CJK> " 
                           "16r5017"    16r0000 " invalid " 
                           "16r5018"    16r0000 " invalid " 
                           "16r5019"    16r3875 " <CJK> " 
                           "16r501A"    16r5061 " <CJK> " 
                           "16r501B"    16r0000 " invalid " 
                           "16r501C"    16r0000 " invalid " 
                           "16r501D"    16r0000 " invalid " 
                           "16r501E"    16r0000 " invalid " 
                           "16r501F"    16r3C5A " <CJK> " 
                           "16r5020"    16r0000 " invalid " 
                           "16r5021"    16r5069 " <CJK> " 
                           "16r5022"    16r0000 " invalid " 
                           "16r5023"    16r4A6F " <CJK> " 
                           "16r5024"    16r434D " <CJK> " 
                           "16r5025"    16r5065 " <CJK> " 
                           "16r5026"    16r3771 " <CJK> " 
                           "16r5027"    16r0000 " invalid " 
                           "16r5028"    16r5062 " <CJK> " 
                           "16r5029"    16r506A " <CJK> " 
                           "16r502A"    16r5064 " <CJK> " 
                           "16r502B"    16r4E51 " <CJK> " 
                           "16r502C"    16r506B " <CJK> " 
                           "16r502D"    16r4F41 " <CJK> " 
                           "16r502E"    16r0000 " invalid " 
                           "16r502F"    16r0000 " invalid " 
                           "16r5030"    16r0000 " invalid " 
                           "16r5031"    16r0000 " invalid " 
                           "16r5032"    16r0000 " invalid " 
                           "16r5033"    16r0000 " invalid " 
                           "16r5034"    16r0000 " invalid " 
                           "16r5035"    16r0000 " invalid " 
                           "16r5036"    16r3666 " <CJK> " 
                           "16r5037"    16r0000 " invalid " 
                           "16r5038"    16r0000 " invalid " 
                           "16r5039"    16r3770 " <CJK> " 
                           "16r503A"    16r0000 " invalid " 
                           "16r503B"    16r0000 " invalid " 
                           "16r503C"    16r0000 " invalid " 
                           "16r503D"    16r0000 " invalid " 
                           "16r503E"    16r0000 " invalid " 
                           "16r503F"    16r0000 " invalid " 
                           "16r5040"    16r0000 " invalid " 
                           "16r5041"    16r0000 " invalid " 
                           "16r5042"    16r0000 " invalid " 
                           "16r5043"    16r5070 " <CJK> " 
                           "16r5044"    16r0000 " invalid " 
                           "16r5045"    16r0000 " invalid " 
                           "16r5046"    16r0000 " invalid " 
                           "16r5047"    16r5071 " <CJK> " 
                           "16r5048"    16r5075 " <CJK> " 
                           "16r5049"    16r304E " <CJK> " 
                           "16r504A"    16r0000 " invalid " 
                           "16r504B"    16r0000 " invalid " 
                           "16r504C"    16r0000 " invalid " 
                           "16r504D"    16r0000 " invalid " 
                           "16r504E"    16r0000 " invalid " 
                           "16r504F"    16r4A50 " <CJK> " 
                           "16r5050"    16r5074 " <CJK> " 
                           "16r5051"    16r0000 " invalid " 
                           "16r5052"    16r0000 " invalid " 
                           "16r5053"    16r0000 " invalid " 
                           "16r5054"    16r0000 " invalid " 
                           "16r5055"    16r5073 " <CJK> " 
                           "16r5056"    16r5077 " <CJK> " 
                           "16r5057"    16r0000 " invalid " 
                           "16r5058"    16r0000 " invalid " 
                           "16r5059"    16r0000 " invalid " 
                           "16r505A"    16r5076 " <CJK> " 
                           "16r505B"    16r0000 " invalid " 
                           "16r505C"    16r4464 " <CJK> " 
                           "16r505D"    16r0000 " invalid " 
                           "16r505E"    16r0000 " invalid " 
                           "16r505F"    16r0000 " invalid " 
                           "16r5060"    16r0000 " invalid " 
                           "16r5061"    16r0000 " invalid " 
                           "16r5062"    16r0000 " invalid " 
                           "16r5063"    16r0000 " invalid " 
                           "16r5064"    16r0000 " invalid " 
                           "16r5065"    16r3772 " <CJK> " 
                           "16r5066"    16r0000 " invalid " 
                           "16r5067"    16r0000 " invalid " 
                           "16r5068"    16r0000 " invalid " 
                           "16r5069"    16r0000 " invalid " 
                           "16r506A"    16r0000 " invalid " 
                           "16r506B"    16r0000 " invalid " 
                           "16r506C"    16r5078 " <CJK> " 
                           "16r506D"    16r0000 " invalid " 
                           "16r506E"    16r0000 " invalid " 
                           "16r506F"    16r0000 " invalid " 
                           "16r5070"    16r0000 " invalid " 
                           "16r5071"    16r0000 " invalid " 
                           "16r5072"    16r3C45 " <CJK> " 
                           "16r5073"    16r0000 " invalid " 
                           "16r5074"    16r4226 " <CJK> " 
                           "16r5075"    16r4465 " <CJK> " 
                           "16r5076"    16r3676 " <CJK> " 
                           "16r5077"    16r0000 " invalid " 
                           "16r5078"    16r5079 " <CJK> " 
                           "16r5079"    16r0000 " invalid " 
                           "16r507A"    16r0000 " invalid " 
                           "16r507B"    16r0000 " invalid " 
                           "16r507C"    16r0000 " invalid " 
                           "16r507D"    16r3536 " <CJK> " 
                           "16r507E"    16r0000 " invalid " 
                           "16r507F"    16r0000 " invalid " 
                           "16r5080"    16r507A " <CJK> " 
                           "16r5081"    16r0000 " invalid " 
                           "16r5082"    16r0000 " invalid " 
                           "16r5083"    16r0000 " invalid " 
                           "16r5084"    16r0000 " invalid " 
                           "16r5085"    16r507C " <CJK> " 
                           "16r5086"    16r0000 " invalid " 
                           "16r5087"    16r0000 " invalid " 
                           "16r5088"    16r0000 " invalid " 
                           "16r5089"    16r0000 " invalid " 
                           "16r508A"    16r0000 " invalid " 
                           "16r508B"    16r0000 " invalid " 
                           "16r508C"    16r0000 " invalid " 
                           "16r508D"    16r4B35 " <CJK> " 
                           "16r508E"    16r0000 " invalid " 
                           "16r508F"    16r0000 " invalid " 
                           "16r5090"    16r0000 " invalid " 
                           "16r5091"    16r3766 " <CJK> " 
                           "16r5092"    16r0000 " invalid " 
                           "16r5093"    16r0000 " invalid " 
                           "16r5094"    16r0000 " invalid " 
                           "16r5095"    16r0000 " invalid " 
                           "16r5096"    16r0000 " invalid " 
                           "16r5097"    16r0000 " invalid " 
                           "16r5098"    16r3B31 " <CJK> " 
                           "16r5099"    16r4877 " <CJK> " 
                           "16r509A"    16r507B " <CJK> " 
                           "16r509B"    16r0000 " invalid " 
                           "16r509C"    16r0000 " invalid " 
                           "16r509D"    16r0000 " invalid " 
                           "16r509E"    16r0000 " invalid " 
                           "16r509F"    16r0000 " invalid " 
                           "16r50A0"    16r0000 " invalid " 
                           "16r50A1"    16r0000 " invalid " 
                           "16r50A2"    16r0000 " invalid " 
                           "16r50A3"    16r0000 " invalid " 
                           "16r50A4"    16r0000 " invalid " 
                           "16r50A5"    16r0000 " invalid " 
                           "16r50A6"    16r0000 " invalid " 
                           "16r50A7"    16r0000 " invalid " 
                           "16r50A8"    16r0000 " invalid " 
                           "16r50A9"    16r0000 " invalid " 
                           "16r50AA"    16r0000 " invalid " 
                           "16r50AB"    16r0000 " invalid " 
                           "16r50AC"    16r3A45 " <CJK> " 
                           "16r50AD"    16r4D43 " <CJK> " 
                           "16r50AE"    16r0000 " invalid " 
                           "16r50AF"    16r0000 " invalid " 
                           "16r50B0"    16r0000 " invalid " 
                           "16r50B1"    16r0000 " invalid " 
                           "16r50B2"    16r507E " <CJK> " 
                           "16r50B3"    16r5123 " <CJK> " 
                           "16r50B4"    16r507D " <CJK> " 
                           "16r50B5"    16r3A44 " <CJK> " 
                           "16r50B6"    16r0000 " invalid " 
                           "16r50B7"    16r3D7D " <CJK> " 
                           "16r50B8"    16r0000 " invalid " 
                           "16r50B9"    16r0000 " invalid " 
                           "16r50BA"    16r0000 " invalid " 
                           "16r50BB"    16r0000 " invalid " 
                           "16r50BC"    16r0000 " invalid " 
                           "16r50BD"    16r0000 " invalid " 
                           "16r50BE"    16r3739 " <CJK> " 
                           "16r50BF"    16r0000 " invalid " 
                           "16r50C0"    16r0000 " invalid " 
                           "16r50C1"    16r0000 " invalid " 
                           "16r50C2"    16r5124 " <CJK> " 
                           "16r50C3"    16r0000 " invalid " 
                           "16r50C4"    16r0000 " invalid " 
                           "16r50C5"    16r364F " <CJK> " 
                           "16r50C6"    16r0000 " invalid " 
                           "16r50C7"    16r0000 " invalid " 
                           "16r50C8"    16r0000 " invalid " 
                           "16r50C9"    16r5121 " <CJK> " 
                           "16r50CA"    16r5122 " <CJK> " 
                           "16r50CB"    16r0000 " invalid " 
                           "16r50CC"    16r0000 " invalid " 
                           "16r50CD"    16r462F " <CJK> " 
                           "16r50CE"    16r0000 " invalid " 
                           "16r50CF"    16r417C " <CJK> " 
                           "16r50D0"    16r0000 " invalid " 
                           "16r50D1"    16r3623 " <CJK> " 
                           "16r50D2"    16r0000 " invalid " 
                           "16r50D3"    16r0000 " invalid " 
                           "16r50D4"    16r0000 " invalid " 
                           "16r50D5"    16r4B4D " <CJK> " 
                           "16r50D6"    16r5125 " <CJK> " 
                           "16r50D7"    16r0000 " invalid " 
                           "16r50D8"    16r0000 " invalid " 
                           "16r50D9"    16r0000 " invalid " 
                           "16r50DA"    16r4E3D " <CJK> " 
                           "16r50DB"    16r0000 " invalid " 
                           "16r50DC"    16r0000 " invalid " 
                           "16r50DD"    16r0000 " invalid " 
                           "16r50DE"    16r5126 " <CJK> " 
                           "16r50DF"    16r0000 " invalid " 
                           "16r50E0"    16r0000 " invalid " 
                           "16r50E1"    16r0000 " invalid " 
                           "16r50E2"    16r0000 " invalid " 
                           "16r50E3"    16r5129 " <CJK> " 
                           "16r50E4"    16r0000 " invalid " 
                           "16r50E5"    16r5127 " <CJK> " 
                           "16r50E6"    16r0000 " invalid " 
                           "16r50E7"    16r414E " <CJK> " 
                           "16r50E8"    16r0000 " invalid " 
                           "16r50E9"    16r0000 " invalid " 
                           "16r50EA"    16r0000 " invalid " 
                           "16r50EB"    16r0000 " invalid " 
                           "16r50EC"    16r0000 " invalid " 
                           "16r50ED"    16r5128 " <CJK> " 
                           "16r50EE"    16r512A " <CJK> " 
                           "16r50EF"    16r0000 " invalid " 
                           "16r50F0"    16r0000 " invalid " 
                           "16r50F1"    16r0000 " invalid " 
                           "16r50F2"    16r0000 " invalid " 
                           "16r50F3"    16r0000 " invalid " 
                           "16r50F4"    16r0000 " invalid " 
                           "16r50F5"    16r512C " <CJK> " 
                           "16r50F6"    16r0000 " invalid " 
                           "16r50F7"    16r0000 " invalid " 
                           "16r50F8"    16r0000 " invalid " 
                           "16r50F9"    16r512B " <CJK> " 
                           "16r50FA"    16r0000 " invalid " 
                           "16r50FB"    16r4A48 " <CJK> " 
                           "16r50FC"    16r0000 " invalid " 
                           "16r50FD"    16r0000 " invalid " 
                           "16r50FE"    16r0000 " invalid " 
                           "16r50FF"    16r0000 " invalid " 
                           "16r5100"    16r3537 " <CJK> " 
                           "16r5101"    16r512E " <CJK> " 
                           "16r5102"    16r512F " <CJK> " 
                           "16r5103"    16r0000 " invalid " 
                           "16r5104"    16r322F " <CJK> " 
                           "16r5105"    16r0000 " invalid " 
                           "16r5106"    16r0000 " invalid " 
                           "16r5107"    16r0000 " invalid " 
                           "16r5108"    16r0000 " invalid " 
                           "16r5109"    16r512D " <CJK> " 
                           "16r510A"    16r0000 " invalid " 
                           "16r510B"    16r0000 " invalid " 
                           "16r510C"    16r0000 " invalid " 
                           "16r510D"    16r0000 " invalid " 
                           "16r510E"    16r0000 " invalid " 
                           "16r510F"    16r0000 " invalid " 
                           "16r5110"    16r0000 " invalid " 
                           "16r5111"    16r0000 " invalid " 
                           "16r5112"    16r3C74 " <CJK> " 
                           "16r5113"    16r0000 " invalid " 
                           "16r5114"    16r5132 " <CJK> " 
                           "16r5115"    16r5131 " <CJK> " 
                           "16r5116"    16r5130 " <CJK> " 
                           "16r5117"    16r0000 " invalid " 
                           "16r5118"    16r5056 " <CJK> " 
                           "16r5119"    16r0000 " invalid " 
                           "16r511A"    16r5133 " <CJK> " 
                           "16r511B"    16r0000 " invalid " 
                           "16r511C"    16r0000 " invalid " 
                           "16r511D"    16r0000 " invalid " 
                           "16r511E"    16r0000 " invalid " 
                           "16r511F"    16r3D7E " <CJK> " 
                           "16r5120"    16r0000 " invalid " 
                           "16r5121"    16r5134 " <CJK> " 
                           "16r5122"    16r0000 " invalid " 
                           "16r5123"    16r0000 " invalid " 
                           "16r5124"    16r0000 " invalid " 
                           "16r5125"    16r0000 " invalid " 
                           "16r5126"    16r0000 " invalid " 
                           "16r5127"    16r0000 " invalid " 
                           "16r5128"    16r0000 " invalid " 
                           "16r5129"    16r0000 " invalid " 
                           "16r512A"    16r4D25 " <CJK> " 
                           "16r512B"    16r0000 " invalid " 
                           "16r512C"    16r0000 " invalid " 
                           "16r512D"    16r0000 " invalid " 
                           "16r512E"    16r0000 " invalid " 
                           "16r512F"    16r0000 " invalid " 
                           "16r5130"    16r0000 " invalid " 
                           "16r5131"    16r0000 " invalid " 
                           "16r5132"    16r4C59 " <CJK> " 
                           "16r5133"    16r0000 " invalid " 
                           "16r5134"    16r0000 " invalid " 
                           "16r5135"    16r0000 " invalid " 
                           "16r5136"    16r0000 " invalid " 
                           "16r5137"    16r5136 " <CJK> " 
                           "16r5138"    16r0000 " invalid " 
                           "16r5139"    16r0000 " invalid " 
                           "16r513A"    16r5135 " <CJK> " 
                           "16r513B"    16r5138 " <CJK> " 
                           "16r513C"    16r5137 " <CJK> " 
                           "16r513D"    16r0000 " invalid " 
                           "16r513E"    16r0000 " invalid " 
                           "16r513F"    16r5139 " <CJK> " 
                           "16r5140"    16r513A " <CJK> " 
                           "16r5141"    16r3074 " <CJK> " 
                           "16r5142"    16r0000 " invalid " 
                           "16r5143"    16r3835 " <CJK> " 
                           "16r5144"    16r373B " <CJK> " 
                           "16r5145"    16r3D3C " <CJK> " 
                           "16r5146"    16r437B " <CJK> " 
                           "16r5147"    16r3624 " <CJK> " 
                           "16r5148"    16r4068 " <CJK> " 
                           "16r5149"    16r3877 " <CJK> " 
                           "16r514A"    16r0000 " invalid " 
                           "16r514B"    16r396E " <CJK> " 
                           "16r514C"    16r513C " <CJK> " 
                           "16r514D"    16r4C48 " <CJK> " 
                           "16r514E"    16r4546 " <CJK> " 
                           "16r514F"    16r0000 " invalid " 
                           "16r5150"    16r3B79 " <CJK> " 
                           "16r5151"    16r0000 " invalid " 
                           "16r5152"    16r513B " <CJK> " 
                           "16r5153"    16r0000 " invalid " 
                           "16r5154"    16r513D " <CJK> " 
                           "16r5155"    16r0000 " invalid " 
                           "16r5156"    16r0000 " invalid " 
                           "16r5157"    16r0000 " invalid " 
                           "16r5158"    16r0000 " invalid " 
                           "16r5159"    16r0000 " invalid " 
                           "16r515A"    16r455E " <CJK> " 
                           "16r515B"    16r0000 " invalid " 
                           "16r515C"    16r3375 " <CJK> " 
                           "16r515D"    16r0000 " invalid " 
                           "16r515E"    16r0000 " invalid " 
                           "16r515F"    16r0000 " invalid " 
                           "16r5160"    16r0000 " invalid " 
                           "16r5161"    16r0000 " invalid " 
                           "16r5162"    16r513E " <CJK> " 
                           "16r5163"    16r0000 " invalid " 
                           "16r5164"    16r0000 " invalid " 
                           "16r5165"    16r467E " <CJK> " 
                           "16r5166"    16r0000 " invalid " 
                           "16r5167"    16r0000 " invalid " 
                           "16r5168"    16r4134 " <CJK> " 
                           "16r5169"    16r5140 " <CJK> " 
                           "16r516A"    16r5141 " <CJK> " 
                           "16r516B"    16r482C " <CJK> " 
                           "16r516C"    16r3878 " <CJK> " 
                           "16r516D"    16r4F3B " <CJK> " 
                           "16r516E"    16r5142 " <CJK> " 
                           "16r516F"    16r0000 " invalid " 
                           "16r5170"    16r0000 " invalid " 
                           "16r5171"    16r3626 " <CJK> " 
                           "16r5172"    16r0000 " invalid " 
                           "16r5173"    16r0000 " invalid " 
                           "16r5174"    16r0000 " invalid " 
                           "16r5175"    16r4A3C " <CJK> " 
                           "16r5176"    16r4236 " <CJK> " 
                           "16r5177"    16r3671 " <CJK> " 
                           "16r5178"    16r4535 " <CJK> " 
                           "16r5179"    16r0000 " invalid " 
                           "16r517A"    16r0000 " invalid " 
                           "16r517B"    16r0000 " invalid " 
                           "16r517C"    16r3773 " <CJK> " 
                           "16r517D"    16r0000 " invalid " 
                           "16r517E"    16r0000 " invalid " 
                           "16r517F"    16r0000 " invalid " 
                           "16r5180"    16r5143 " <CJK> " 
                           "16r5181"    16r0000 " invalid " 
                           "16r5182"    16r5144 " <CJK> " 
                           "16r5183"    16r0000 " invalid " 
                           "16r5184"    16r0000 " invalid " 
                           "16r5185"    16r4662 " <CJK> " 
                           "16r5186"    16r315F " <CJK> " 
                           "16r5187"    16r0000 " invalid " 
                           "16r5188"    16r0000 " invalid " 
                           "16r5189"    16r5147 " <CJK> " 
                           "16r518A"    16r3A7D " <CJK> " 
                           "16r518B"    16r0000 " invalid " 
                           "16r518C"    16r5146 " <CJK> " 
                           "16r518D"    16r3A46 " <CJK> " 
                           "16r518E"    16r0000 " invalid " 
                           "16r518F"    16r5148 " <CJK> " 
                           "16r5190"    16r666E " <CJK> " 
                           "16r5191"    16r5149 " <CJK> " 
                           "16r5192"    16r4B41 " <CJK> " 
                           "16r5193"    16r514A " <CJK> " 
                           "16r5194"    16r0000 " invalid " 
                           "16r5195"    16r514B " <CJK> " 
                           "16r5196"    16r514C " <CJK> " 
                           "16r5197"    16r3E69 " <CJK> " 
                           "16r5198"    16r0000 " invalid " 
                           "16r5199"    16r3C4C " <CJK> " 
                           "16r519A"    16r0000 " invalid " 
                           "16r519B"    16r0000 " invalid " 
                           "16r519C"    16r0000 " invalid " 
                           "16r519D"    16r0000 " invalid " 
                           "16r519E"    16r0000 " invalid " 
                           "16r519F"    16r0000 " invalid " 
                           "16r51A0"    16r3427 " <CJK> " 
                           "16r51A1"    16r0000 " invalid " 
                           "16r51A2"    16r514F " <CJK> " 
                           "16r51A3"    16r0000 " invalid " 
                           "16r51A4"    16r514D " <CJK> " 
                           "16r51A5"    16r4C3D " <CJK> " 
                           "16r51A6"    16r514E " <CJK> " 
                           "16r51A7"    16r0000 " invalid " 
                           "16r51A8"    16r495A " <CJK> " 
                           "16r51A9"    16r5150 " <CJK> " 
                           "16r51AA"    16r5151 " <CJK> " 
                           "16r51AB"    16r5152 " <CJK> " 
                           "16r51AC"    16r455F " <CJK> " 
                           "16r51AD"    16r0000 " invalid " 
                           "16r51AE"    16r0000 " invalid " 
                           "16r51AF"    16r0000 " invalid " 
                           "16r51B0"    16r5156 " <CJK> " 
                           "16r51B1"    16r5154 " <CJK> " 
                           "16r51B2"    16r5155 " <CJK> " 
                           "16r51B3"    16r5153 " <CJK> " 
                           "16r51B4"    16r3A63 " <CJK> " 
                           "16r51B5"    16r5157 " <CJK> " 
                           "16r51B6"    16r4C6A " <CJK> " 
                           "16r51B7"    16r4E64 " <CJK> " 
                           "16r51B8"    16r0000 " invalid " 
                           "16r51B9"    16r0000 " invalid " 
                           "16r51BA"    16r0000 " invalid " 
                           "16r51BB"    16r0000 " invalid " 
                           "16r51BC"    16r0000 " invalid " 
                           "16r51BD"    16r5158 " <CJK> " 
                           "16r51BE"    16r0000 " invalid " 
                           "16r51BF"    16r0000 " invalid " 
                           "16r51C0"    16r0000 " invalid " 
                           "16r51C1"    16r0000 " invalid " 
                           "16r51C2"    16r0000 " invalid " 
                           "16r51C3"    16r0000 " invalid " 
                           "16r51C4"    16r4028 " <CJK> " 
                           "16r51C5"    16r5159 " <CJK> " 
                           "16r51C6"    16r3D5A " <CJK> " 
                           "16r51C7"    16r0000 " invalid " 
                           "16r51C8"    16r0000 " invalid " 
                           "16r51C9"    16r515A " <CJK> " 
                           "16r51CA"    16r0000 " invalid " 
                           "16r51CB"    16r437C " <CJK> " 
                           "16r51CC"    16r4E3F " <CJK> " 
                           "16r51CD"    16r4560 " <CJK> " 
                           "16r51CE"    16r0000 " invalid " 
                           "16r51CF"    16r0000 " invalid " 
                           "16r51D0"    16r0000 " invalid " 
                           "16r51D1"    16r0000 " invalid " 
                           "16r51D2"    16r0000 " invalid " 
                           "16r51D3"    16r0000 " invalid " 
                           "16r51D4"    16r0000 " invalid " 
                           "16r51D5"    16r0000 " invalid " 
                           "16r51D6"    16r5245 " <CJK> " 
                           "16r51D7"    16r0000 " invalid " 
                           "16r51D8"    16r0000 " invalid " 
                           "16r51D9"    16r0000 " invalid " 
                           "16r51DA"    16r0000 " invalid " 
                           "16r51DB"    16r515B " <CJK> " 
                           "16r51DC"    16r7425 " <CJK> " 
                           "16r51DD"    16r3645 " <CJK> " 
                           "16r51DE"    16r0000 " invalid " 
                           "16r51DF"    16r0000 " invalid " 
                           "16r51E0"    16r515C " <CJK> " 
                           "16r51E1"    16r4B5E " <CJK> " 
                           "16r51E2"    16r0000 " invalid " 
                           "16r51E3"    16r0000 " invalid " 
                           "16r51E4"    16r0000 " invalid " 
                           "16r51E5"    16r0000 " invalid " 
                           "16r51E6"    16r3D68 " <CJK> " 
                           "16r51E7"    16r427C " <CJK> " 
                           "16r51E8"    16r0000 " invalid " 
                           "16r51E9"    16r515E " <CJK> " 
                           "16r51EA"    16r4664 " <CJK> " 
                           "16r51EB"    16r0000 " invalid " 
                           "16r51EC"    16r0000 " invalid " 
                           "16r51ED"    16r515F " <CJK> " 
                           "16r51EE"    16r0000 " invalid " 
                           "16r51EF"    16r0000 " invalid " 
                           "16r51F0"    16r5160 " <CJK> " 
                           "16r51F1"    16r332E " <CJK> " 
                           "16r51F2"    16r0000 " invalid " 
                           "16r51F3"    16r0000 " invalid " 
                           "16r51F4"    16r0000 " invalid " 
                           "16r51F5"    16r5161 " <CJK> " 
                           "16r51F6"    16r3627 " <CJK> " 
                           "16r51F7"    16r0000 " invalid " 
                           "16r51F8"    16r464C " <CJK> " 
                           "16r51F9"    16r317A " <CJK> " 
                           "16r51FA"    16r3D50 " <CJK> " 
                           "16r51FB"    16r0000 " invalid " 
                           "16r51FC"    16r0000 " invalid " 
                           "16r51FD"    16r4821 " <CJK> " 
                           "16r51FE"    16r5162 " <CJK> " 
                           "16r51FF"    16r0000 " invalid " 
                           "16r5200"    16r4561 " <CJK> " 
                           "16r5201"    16r0000 " invalid " 
                           "16r5202"    16r0000 " invalid " 
                           "16r5203"    16r3F4F " <CJK> " 
                           "16r5204"    16r5163 " <CJK> " 
                           "16r5205"    16r0000 " invalid " 
                           "16r5206"    16r4A2C " <CJK> " 
                           "16r5207"    16r405A " <CJK> " 
                           "16r5208"    16r3422 " <CJK> " 
                           "16r5209"    16r0000 " invalid " 
                           "16r520A"    16r3429 " <CJK> " 
                           "16r520B"    16r5164 " <CJK> " 
                           "16r520C"    16r0000 " invalid " 
                           "16r520D"    16r0000 " invalid " 
                           "16r520E"    16r5166 " <CJK> " 
                           "16r520F"    16r0000 " invalid " 
                           "16r5210"    16r0000 " invalid " 
                           "16r5211"    16r373A " <CJK> " 
                           "16r5212"    16r0000 " invalid " 
                           "16r5213"    16r0000 " invalid " 
                           "16r5214"    16r5165 " <CJK> " 
                           "16r5215"    16r0000 " invalid " 
                           "16r5216"    16r0000 " invalid " 
                           "16r5217"    16r4E73 " <CJK> " 
                           "16r5218"    16r0000 " invalid " 
                           "16r5219"    16r0000 " invalid " 
                           "16r521A"    16r0000 " invalid " 
                           "16r521B"    16r0000 " invalid " 
                           "16r521C"    16r0000 " invalid " 
                           "16r521D"    16r3D69 " <CJK> " 
                           "16r521E"    16r0000 " invalid " 
                           "16r521F"    16r0000 " invalid " 
                           "16r5220"    16r0000 " invalid " 
                           "16r5221"    16r0000 " invalid " 
                           "16r5222"    16r0000 " invalid " 
                           "16r5223"    16r0000 " invalid " 
                           "16r5224"    16r483D " <CJK> " 
                           "16r5225"    16r4A4C " <CJK> " 
                           "16r5226"    16r0000 " invalid " 
                           "16r5227"    16r5167 " <CJK> " 
                           "16r5228"    16r0000 " invalid " 
                           "16r5229"    16r4D78 " <CJK> " 
                           "16r522A"    16r5168 " <CJK> " 
                           "16r522B"    16r0000 " invalid " 
                           "16r522C"    16r0000 " invalid " 
                           "16r522D"    16r0000 " invalid " 
                           "16r522E"    16r5169 " <CJK> " 
                           "16r522F"    16r0000 " invalid " 
                           "16r5230"    16r457E " <CJK> " 
                           "16r5231"    16r0000 " invalid " 
                           "16r5232"    16r0000 " invalid " 
                           "16r5233"    16r516A " <CJK> " 
                           "16r5234"    16r0000 " invalid " 
                           "16r5235"    16r0000 " invalid " 
                           "16r5236"    16r4029 " <CJK> " 
                           "16r5237"    16r3A7E " <CJK> " 
                           "16r5238"    16r3774 " <CJK> " 
                           "16r5239"    16r516B " <CJK> " 
                           "16r523A"    16r3B49 " <CJK> " 
                           "16r523B"    16r396F " <CJK> " 
                           "16r523C"    16r0000 " invalid " 
                           "16r523D"    16r0000 " invalid " 
                           "16r523E"    16r0000 " invalid " 
                           "16r523F"    16r0000 " invalid " 
                           "16r5240"    16r0000 " invalid " 
                           "16r5241"    16r0000 " invalid " 
                           "16r5242"    16r0000 " invalid " 
                           "16r5243"    16r4466 " <CJK> " 
                           "16r5244"    16r516D " <CJK> " 
                           "16r5245"    16r0000 " invalid " 
                           "16r5246"    16r0000 " invalid " 
                           "16r5247"    16r4227 " <CJK> " 
                           "16r5248"    16r0000 " invalid " 
                           "16r5249"    16r0000 " invalid " 
                           "16r524A"    16r3A6F " <CJK> " 
                           "16r524B"    16r516E " <CJK> " 
                           "16r524C"    16r516F " <CJK> " 
                           "16r524D"    16r4130 " <CJK> " 
                           "16r524E"    16r0000 " invalid " 
                           "16r524F"    16r516C " <CJK> " 
                           "16r5250"    16r0000 " invalid " 
                           "16r5251"    16r0000 " invalid " 
                           "16r5252"    16r0000 " invalid " 
                           "16r5253"    16r0000 " invalid " 
                           "16r5254"    16r5171 " <CJK> " 
                           "16r5255"    16r0000 " invalid " 
                           "16r5256"    16r4B36 " <CJK> " 
                           "16r5257"    16r0000 " invalid " 
                           "16r5258"    16r0000 " invalid " 
                           "16r5259"    16r0000 " invalid " 
                           "16r525A"    16r0000 " invalid " 
                           "16r525B"    16r3964 " <CJK> " 
                           "16r525C"    16r0000 " invalid " 
                           "16r525D"    16r0000 " invalid " 
                           "16r525E"    16r5170 " <CJK> " 
                           "16r525F"    16r0000 " invalid " 
                           "16r5260"    16r0000 " invalid " 
                           "16r5261"    16r0000 " invalid " 
                           "16r5262"    16r0000 " invalid " 
                           "16r5263"    16r3775 " <CJK> " 
                           "16r5264"    16r3A5E " <CJK> " 
                           "16r5265"    16r476D " <CJK> " 
                           "16r5266"    16r0000 " invalid " 
                           "16r5267"    16r0000 " invalid " 
                           "16r5268"    16r0000 " invalid " 
                           "16r5269"    16r5174 " <CJK> " 
                           "16r526A"    16r5172 " <CJK> " 
                           "16r526B"    16r0000 " invalid " 
                           "16r526C"    16r0000 " invalid " 
                           "16r526D"    16r0000 " invalid " 
                           "16r526E"    16r0000 " invalid " 
                           "16r526F"    16r497B " <CJK> " 
                           "16r5270"    16r3E6A " <CJK> " 
                           "16r5271"    16r517B " <CJK> " 
                           "16r5272"    16r3364 " <CJK> " 
                           "16r5273"    16r5175 " <CJK> " 
                           "16r5274"    16r5173 " <CJK> " 
                           "16r5275"    16r414F " <CJK> " 
                           "16r5276"    16r0000 " invalid " 
                           "16r5277"    16r0000 " invalid " 
                           "16r5278"    16r0000 " invalid " 
                           "16r5279"    16r0000 " invalid " 
                           "16r527A"    16r0000 " invalid " 
                           "16r527B"    16r0000 " invalid " 
                           "16r527C"    16r0000 " invalid " 
                           "16r527D"    16r5177 " <CJK> " 
                           "16r527E"    16r0000 " invalid " 
                           "16r527F"    16r5176 " <CJK> " 
                           "16r5280"    16r0000 " invalid " 
                           "16r5281"    16r0000 " invalid " 
                           "16r5282"    16r0000 " invalid " 
                           "16r5283"    16r3344 " <CJK> " 
                           "16r5284"    16r0000 " invalid " 
                           "16r5285"    16r0000 " invalid " 
                           "16r5286"    16r0000 " invalid " 
                           "16r5287"    16r3760 " <CJK> " 
                           "16r5288"    16r517C " <CJK> " 
                           "16r5289"    16r4E2D " <CJK> " 
                           "16r528A"    16r0000 " invalid " 
                           "16r528B"    16r0000 " invalid " 
                           "16r528C"    16r0000 " invalid " 
                           "16r528D"    16r5178 " <CJK> " 
                           "16r528E"    16r0000 " invalid " 
                           "16r528F"    16r0000 " invalid " 
                           "16r5290"    16r0000 " invalid " 
                           "16r5291"    16r517D " <CJK> " 
                           "16r5292"    16r517A " <CJK> " 
                           "16r5293"    16r0000 " invalid " 
                           "16r5294"    16r5179 " <CJK> " 
                           "16r5295"    16r0000 " invalid " 
                           "16r5296"    16r0000 " invalid " 
                           "16r5297"    16r0000 " invalid " 
                           "16r5298"    16r0000 " invalid " 
                           "16r5299"    16r0000 " invalid " 
                           "16r529A"    16r0000 " invalid " 
                           "16r529B"    16r4E4F " <CJK> " 
                           "16r529C"    16r0000 " invalid " 
                           "16r529D"    16r0000 " invalid " 
                           "16r529E"    16r0000 " invalid " 
                           "16r529F"    16r3879 " <CJK> " 
                           "16r52A0"    16r3243 " <CJK> " 
                           "16r52A1"    16r0000 " invalid " 
                           "16r52A2"    16r0000 " invalid " 
                           "16r52A3"    16r4E74 " <CJK> " 
                           "16r52A4"    16r0000 " invalid " 
                           "16r52A5"    16r0000 " invalid " 
                           "16r52A6"    16r0000 " invalid " 
                           "16r52A7"    16r0000 " invalid " 
                           "16r52A8"    16r0000 " invalid " 
                           "16r52A9"    16r3D75 " <CJK> " 
                           "16r52AA"    16r4558 " <CJK> " 
                           "16r52AB"    16r3965 " <CJK> " 
                           "16r52AC"    16r5222 " <CJK> " 
                           "16r52AD"    16r5223 " <CJK> " 
                           "16r52AE"    16r0000 " invalid " 
                           "16r52AF"    16r0000 " invalid " 
                           "16r52B0"    16r0000 " invalid " 
                           "16r52B1"    16r4E65 " <CJK> " 
                           "16r52B2"    16r0000 " invalid " 
                           "16r52B3"    16r0000 " invalid " 
                           "16r52B4"    16r4F2B " <CJK> " 
                           "16r52B5"    16r5225 " <CJK> " 
                           "16r52B6"    16r0000 " invalid " 
                           "16r52B7"    16r0000 " invalid " 
                           "16r52B8"    16r0000 " invalid " 
                           "16r52B9"    16r387A " <CJK> " 
                           "16r52BA"    16r0000 " invalid " 
                           "16r52BB"    16r0000 " invalid " 
                           "16r52BC"    16r5224 " <CJK> " 
                           "16r52BD"    16r0000 " invalid " 
                           "16r52BE"    16r332F " <CJK> " 
                           "16r52BF"    16r0000 " invalid " 
                           "16r52C0"    16r0000 " invalid " 
                           "16r52C1"    16r5226 " <CJK> " 
                           "16r52C2"    16r0000 " invalid " 
                           "16r52C3"    16r4B56 " <CJK> " 
                           "16r52C4"    16r0000 " invalid " 
                           "16r52C5"    16r443C " <CJK> " 
                           "16r52C6"    16r0000 " invalid " 
                           "16r52C7"    16r4D26 " <CJK> " 
                           "16r52C8"    16r0000 " invalid " 
                           "16r52C9"    16r4A59 " <CJK> " 
                           "16r52CA"    16r0000 " invalid " 
                           "16r52CB"    16r0000 " invalid " 
                           "16r52CC"    16r0000 " invalid " 
                           "16r52CD"    16r5227 " <CJK> " 
                           "16r52CE"    16r0000 " invalid " 
                           "16r52CF"    16r0000 " invalid " 
                           "16r52D0"    16r0000 " invalid " 
                           "16r52D1"    16r0000 " invalid " 
                           "16r52D2"    16r7055 " <CJK> " 
                           "16r52D3"    16r0000 " invalid " 
                           "16r52D4"    16r0000 " invalid " 
                           "16r52D5"    16r4630 " <CJK> " 
                           "16r52D6"    16r0000 " invalid " 
                           "16r52D7"    16r5228 " <CJK> " 
                           "16r52D8"    16r342A " <CJK> " 
                           "16r52D9"    16r4C33 " <CJK> " 
                           "16r52DA"    16r0000 " invalid " 
                           "16r52DB"    16r0000 " invalid " 
                           "16r52DC"    16r0000 " invalid " 
                           "16r52DD"    16r3E21 " <CJK> " 
                           "16r52DE"    16r5229 " <CJK> " 
                           "16r52DF"    16r4A67 " <CJK> " 
                           "16r52E0"    16r522D " <CJK> " 
                           "16r52E1"    16r0000 " invalid " 
                           "16r52E2"    16r402A " <CJK> " 
                           "16r52E3"    16r522A " <CJK> " 
                           "16r52E4"    16r3650 " <CJK> " 
                           "16r52E5"    16r0000 " invalid " 
                           "16r52E6"    16r522B " <CJK> " 
                           "16r52E7"    16r342B " <CJK> " 
                           "16r52E8"    16r0000 " invalid " 
                           "16r52E9"    16r0000 " invalid " 
                           "16r52EA"    16r0000 " invalid " 
                           "16r52EB"    16r0000 " invalid " 
                           "16r52EC"    16r0000 " invalid " 
                           "16r52ED"    16r0000 " invalid " 
                           "16r52EE"    16r0000 " invalid " 
                           "16r52EF"    16r0000 " invalid " 
                           "16r52F0"    16r0000 " invalid " 
                           "16r52F1"    16r0000 " invalid " 
                           "16r52F2"    16r372E " <CJK> " 
                           "16r52F3"    16r522E " <CJK> " 
                           "16r52F4"    16r0000 " invalid " 
                           "16r52F5"    16r522F " <CJK> " 
                           "16r52F6"    16r0000 " invalid " 
                           "16r52F7"    16r0000 " invalid " 
                           "16r52F8"    16r5230 " <CJK> " 
                           "16r52F9"    16r5231 " <CJK> " 
                           "16r52FA"    16r3C5B " <CJK> " 
                           "16r52FB"    16r0000 " invalid " 
                           "16r52FC"    16r0000 " invalid " 
                           "16r52FD"    16r0000 " invalid " 
                           "16r52FE"    16r387B " <CJK> " 
                           "16r52FF"    16r4C5E " <CJK> " 
                           "16r5300"    16r0000 " invalid " 
                           "16r5301"    16r4C68 " <CJK> " 
                           "16r5302"    16r4677 " <CJK> " 
                           "16r5303"    16r0000 " invalid " 
                           "16r5304"    16r0000 " invalid " 
                           "16r5305"    16r4A71 " <CJK> " 
                           "16r5306"    16r5232 " <CJK> " 
                           "16r5307"    16r0000 " invalid " 
                           "16r5308"    16r5233 " <CJK> " 
                           "16r5309"    16r0000 " invalid " 
                           "16r530A"    16r0000 " invalid " 
                           "16r530B"    16r0000 " invalid " 
                           "16r530C"    16r0000 " invalid " 
                           "16r530D"    16r5235 " <CJK> " 
                           "16r530E"    16r0000 " invalid " 
                           "16r530F"    16r5237 " <CJK> " 
                           "16r5310"    16r5236 " <CJK> " 
                           "16r5311"    16r0000 " invalid " 
                           "16r5312"    16r0000 " invalid " 
                           "16r5313"    16r0000 " invalid " 
                           "16r5314"    16r0000 " invalid " 
                           "16r5315"    16r5238 " <CJK> " 
                           "16r5316"    16r323D " <CJK> " 
                           "16r5317"    16r4B4C " <CJK> " 
                           "16r5318"    16r0000 " invalid " 
                           "16r5319"    16r3A7C " <CJK> " 
                           "16r531A"    16r5239 " <CJK> " 
                           "16r531B"    16r0000 " invalid " 
                           "16r531C"    16r0000 " invalid " 
                           "16r531D"    16r4159 " <CJK> " 
                           "16r531E"    16r0000 " invalid " 
                           "16r531F"    16r0000 " invalid " 
                           "16r5320"    16r3E22 " <CJK> " 
                           "16r5321"    16r3629 " <CJK> " 
                           "16r5322"    16r0000 " invalid " 
                           "16r5323"    16r523A " <CJK> " 
                           "16r5324"    16r0000 " invalid " 
                           "16r5325"    16r0000 " invalid " 
                           "16r5326"    16r0000 " invalid " 
                           "16r5327"    16r0000 " invalid " 
                           "16r5328"    16r0000 " invalid " 
                           "16r5329"    16r0000 " invalid " 
                           "16r532A"    16r485B " <CJK> " 
                           "16r532B"    16r0000 " invalid " 
                           "16r532C"    16r0000 " invalid " 
                           "16r532D"    16r0000 " invalid " 
                           "16r532E"    16r0000 " invalid " 
                           "16r532F"    16r523B " <CJK> " 
                           "16r5330"    16r0000 " invalid " 
                           "16r5331"    16r523C " <CJK> " 
                           "16r5332"    16r0000 " invalid " 
                           "16r5333"    16r523D " <CJK> " 
                           "16r5334"    16r0000 " invalid " 
                           "16r5335"    16r0000 " invalid " 
                           "16r5336"    16r0000 " invalid " 
                           "16r5337"    16r0000 " invalid " 
                           "16r5338"    16r523E " <CJK> " 
                           "16r5339"    16r4924 " <CJK> " 
                           "16r533A"    16r3668 " <CJK> " 
                           "16r533B"    16r3065 " <CJK> " 
                           "16r533C"    16r0000 " invalid " 
                           "16r533D"    16r0000 " invalid " 
                           "16r533E"    16r0000 " invalid " 
                           "16r533F"    16r463F " <CJK> " 
                           "16r5340"    16r523F " <CJK> " 
                           "16r5341"    16r3D3D " <CJK> " 
                           "16r5342"    16r0000 " invalid " 
                           "16r5343"    16r4069 " <CJK> " 
                           "16r5344"    16r0000 " invalid " 
                           "16r5345"    16r5241 " <CJK> " 
                           "16r5346"    16r5240 " <CJK> " 
                           "16r5347"    16r3E23 " <CJK> " 
                           "16r5348"    16r3861 " <CJK> " 
                           "16r5349"    16r5243 " <CJK> " 
                           "16r534A"    16r483E " <CJK> " 
                           "16r534B"    16r0000 " invalid " 
                           "16r534C"    16r0000 " invalid " 
                           "16r534D"    16r5244 " <CJK> " 
                           "16r534E"    16r0000 " invalid " 
                           "16r534F"    16r0000 " invalid " 
                           "16r5350"    16r0000 " invalid " 
                           "16r5351"    16r485C " <CJK> " 
                           "16r5352"    16r4234 " <CJK> " 
                           "16r5353"    16r426E " <CJK> " 
                           "16r5354"    16r3628 " <CJK> " 
                           "16r5355"    16r0000 " invalid " 
                           "16r5356"    16r0000 " invalid " 
                           "16r5357"    16r466E " <CJK> " 
                           "16r5358"    16r4331 " <CJK> " 
                           "16r5359"    16r0000 " invalid " 
                           "16r535A"    16r476E " <CJK> " 
                           "16r535B"    16r0000 " invalid " 
                           "16r535C"    16r4B4E " <CJK> " 
                           "16r535D"    16r0000 " invalid " 
                           "16r535E"    16r5246 " <CJK> " 
                           "16r535F"    16r0000 " invalid " 
                           "16r5360"    16r406A " <CJK> " 
                           "16r5361"    16r0000 " invalid " 
                           "16r5362"    16r0000 " invalid " 
                           "16r5363"    16r0000 " invalid " 
                           "16r5364"    16r0000 " invalid " 
                           "16r5365"    16r0000 " invalid " 
                           "16r5366"    16r3735 " <CJK> " 
                           "16r5367"    16r0000 " invalid " 
                           "16r5368"    16r0000 " invalid " 
                           "16r5369"    16r5247 " <CJK> " 
                           "16r536A"    16r0000 " invalid " 
                           "16r536B"    16r0000 " invalid " 
                           "16r536C"    16r0000 " invalid " 
                           "16r536D"    16r0000 " invalid " 
                           "16r536E"    16r5248 " <CJK> " 
                           "16r536F"    16r312C " <CJK> " 
                           "16r5370"    16r3075 " <CJK> " 
                           "16r5371"    16r346D " <CJK> " 
                           "16r5372"    16r0000 " invalid " 
                           "16r5373"    16r4228 " <CJK> " 
                           "16r5374"    16r3551 " <CJK> " 
                           "16r5375"    16r4D71 " <CJK> " 
                           "16r5376"    16r0000 " invalid " 
                           "16r5377"    16r524B " <CJK> " 
                           "16r5378"    16r3237 " <CJK> " 
                           "16r5379"    16r0000 " invalid " 
                           "16r537A"    16r0000 " invalid " 
                           "16r537B"    16r524A " <CJK> " 
                           "16r537C"    16r0000 " invalid " 
                           "16r537D"    16r0000 " invalid " 
                           "16r537E"    16r0000 " invalid " 
                           "16r537F"    16r362A " <CJK> " 
                           "16r5380"    16r0000 " invalid " 
                           "16r5381"    16r0000 " invalid " 
                           "16r5382"    16r524C " <CJK> " 
                           "16r5383"    16r0000 " invalid " 
                           "16r5384"    16r4C71 " <CJK> " 
                           "16r5385"    16r0000 " invalid " 
                           "16r5386"    16r0000 " invalid " 
                           "16r5387"    16r0000 " invalid " 
                           "16r5388"    16r0000 " invalid " 
                           "16r5389"    16r0000 " invalid " 
                           "16r538A"    16r0000 " invalid " 
                           "16r538B"    16r0000 " invalid " 
                           "16r538C"    16r0000 " invalid " 
                           "16r538D"    16r0000 " invalid " 
                           "16r538E"    16r0000 " invalid " 
                           "16r538F"    16r0000 " invalid " 
                           "16r5390"    16r0000 " invalid " 
                           "16r5391"    16r0000 " invalid " 
                           "16r5392"    16r0000 " invalid " 
                           "16r5393"    16r0000 " invalid " 
                           "16r5394"    16r0000 " invalid " 
                           "16r5395"    16r0000 " invalid " 
                           "16r5396"    16r524D " <CJK> " 
                           "16r5397"    16r0000 " invalid " 
                           "16r5398"    16r4E52 " <CJK> " 
                           "16r5399"    16r0000 " invalid " 
                           "16r539A"    16r387C " <CJK> " 
                           "16r539B"    16r0000 " invalid " 
                           "16r539C"    16r0000 " invalid " 
                           "16r539D"    16r0000 " invalid " 
                           "16r539E"    16r0000 " invalid " 
                           "16r539F"    16r3836 " <CJK> " 
                           "16r53A0"    16r524E " <CJK> " 
                           "16r53A1"    16r0000 " invalid " 
                           "16r53A2"    16r0000 " invalid " 
                           "16r53A3"    16r0000 " invalid " 
                           "16r53A4"    16r0000 " invalid " 
                           "16r53A5"    16r5250 " <CJK> " 
                           "16r53A6"    16r524F " <CJK> " 
                           "16r53A7"    16r0000 " invalid " 
                           "16r53A8"    16r3F5F " <CJK> " 
                           "16r53A9"    16r3139 " <CJK> " 
                           "16r53AA"    16r0000 " invalid " 
                           "16r53AB"    16r0000 " invalid " 
                           "16r53AC"    16r0000 " invalid " 
                           "16r53AD"    16r315E " <CJK> " 
                           "16r53AE"    16r5251 " <CJK> " 
                           "16r53AF"    16r0000 " invalid " 
                           "16r53B0"    16r5252 " <CJK> " 
                           "16r53B1"    16r0000 " invalid " 
                           "16r53B2"    16r0000 " invalid " 
                           "16r53B3"    16r3837 " <CJK> " 
                           "16r53B4"    16r0000 " invalid " 
                           "16r53B5"    16r0000 " invalid " 
                           "16r53B6"    16r5253 " <CJK> " 
                           "16r53B7"    16r0000 " invalid " 
                           "16r53B8"    16r0000 " invalid " 
                           "16r53B9"    16r0000 " invalid " 
                           "16r53BA"    16r0000 " invalid " 
                           "16r53BB"    16r356E " <CJK> " 
                           "16r53BC"    16r0000 " invalid " 
                           "16r53BD"    16r0000 " invalid " 
                           "16r53BE"    16r0000 " invalid " 
                           "16r53BF"    16r0000 " invalid " 
                           "16r53C0"    16r0000 " invalid " 
                           "16r53C1"    16r0000 " invalid " 
                           "16r53C2"    16r3B32 " <CJK> " 
                           "16r53C3"    16r5254 " <CJK> " 
                           "16r53C4"    16r0000 " invalid " 
                           "16r53C5"    16r0000 " invalid " 
                           "16r53C6"    16r0000 " invalid " 
                           "16r53C7"    16r0000 " invalid " 
                           "16r53C8"    16r4B74 " <CJK> " 
                           "16r53C9"    16r3A35 " <CJK> " 
                           "16r53CA"    16r355A " <CJK> " 
                           "16r53CB"    16r4D27 " <CJK> " 
                           "16r53CC"    16r4150 " <CJK> " 
                           "16r53CD"    16r483F " <CJK> " 
                           "16r53CE"    16r3C7D " <CJK> " 
                           "16r53CF"    16r0000 " invalid " 
                           "16r53D0"    16r0000 " invalid " 
                           "16r53D1"    16r0000 " invalid " 
                           "16r53D2"    16r0000 " invalid " 
                           "16r53D3"    16r0000 " invalid " 
                           "16r53D4"    16r3D47 " <CJK> " 
                           "16r53D5"    16r0000 " invalid " 
                           "16r53D6"    16r3C68 " <CJK> " 
                           "16r53D7"    16r3C75 " <CJK> " 
                           "16r53D8"    16r0000 " invalid " 
                           "16r53D9"    16r3D76 " <CJK> " 
                           "16r53DA"    16r0000 " invalid " 
                           "16r53DB"    16r4840 " <CJK> " 
                           "16r53DC"    16r0000 " invalid " 
                           "16r53DD"    16r0000 " invalid " 
                           "16r53DE"    16r0000 " invalid " 
                           "16r53DF"    16r5257 " <CJK> " 
                           "16r53E0"    16r0000 " invalid " 
                           "16r53E1"    16r3143 " <CJK> " 
                           "16r53E2"    16r4151 " <CJK> " 
                           "16r53E3"    16r387D " <CJK> " 
                           "16r53E4"    16r3845 " <CJK> " 
                           "16r53E5"    16r3667 " <CJK> " 
                           "16r53E6"    16r0000 " invalid " 
                           "16r53E7"    16r0000 " invalid " 
                           "16r53E8"    16r525B " <CJK> " 
                           "16r53E9"    16r4321 " <CJK> " 
                           "16r53EA"    16r427E " <CJK> " 
                           "16r53EB"    16r362B " <CJK> " 
                           "16r53EC"    16r3E24 " <CJK> " 
                           "16r53ED"    16r525C " <CJK> " 
                           "16r53EE"    16r525A " <CJK> " 
                           "16r53EF"    16r3244 " <CJK> " 
                           "16r53F0"    16r4266 " <CJK> " 
                           "16r53F1"    16r3C38 " <CJK> " 
                           "16r53F2"    16r3B4B " <CJK> " 
                           "16r53F3"    16r3126 " <CJK> " 
                           "16r53F4"    16r0000 " invalid " 
                           "16r53F5"    16r0000 " invalid " 
                           "16r53F6"    16r3370 " <CJK> " 
                           "16r53F7"    16r3966 " <CJK> " 
                           "16r53F8"    16r3B4A " <CJK> " 
                           "16r53F9"    16r0000 " invalid " 
                           "16r53FA"    16r525D " <CJK> " 
                           "16r53FB"    16r0000 " invalid " 
                           "16r53FC"    16r0000 " invalid " 
                           "16r53FD"    16r0000 " invalid " 
                           "16r53FE"    16r0000 " invalid " 
                           "16r53FF"    16r0000 " invalid " 
                           "16r5400"    16r0000 " invalid " 
                           "16r5401"    16r525E " <CJK> " 
                           "16r5402"    16r0000 " invalid " 
                           "16r5403"    16r3549 " <CJK> " 
                           "16r5404"    16r3346 " <CJK> " 
                           "16r5405"    16r0000 " invalid " 
                           "16r5406"    16r0000 " invalid " 
                           "16r5407"    16r0000 " invalid " 
                           "16r5408"    16r3967 " <CJK> " 
                           "16r5409"    16r3548 " <CJK> " 
                           "16r540A"    16r445F " <CJK> " 
                           "16r540B"    16r3125 " <CJK> " 
                           "16r540C"    16r4631 " <CJK> " 
                           "16r540D"    16r4C3E " <CJK> " 
                           "16r540E"    16r3921 " <CJK> " 
                           "16r540F"    16r4D79 " <CJK> " 
                           "16r5410"    16r4547 " <CJK> " 
                           "16r5411"    16r387E " <CJK> " 
                           "16r5412"    16r0000 " invalid " 
                           "16r5413"    16r0000 " invalid " 
                           "16r5414"    16r0000 " invalid " 
                           "16r5415"    16r0000 " invalid " 
                           "16r5416"    16r0000 " invalid " 
                           "16r5417"    16r0000 " invalid " 
                           "16r5418"    16r0000 " invalid " 
                           "16r5419"    16r0000 " invalid " 
                           "16r541A"    16r0000 " invalid " 
                           "16r541B"    16r372F " <CJK> " 
                           "16r541C"    16r0000 " invalid " 
                           "16r541D"    16r5267 " <CJK> " 
                           "16r541E"    16r0000 " invalid " 
                           "16r541F"    16r3663 " <CJK> " 
                           "16r5420"    16r4B4A " <CJK> " 
                           "16r5421"    16r0000 " invalid " 
                           "16r5422"    16r0000 " invalid " 
                           "16r5423"    16r0000 " invalid " 
                           "16r5424"    16r0000 " invalid " 
                           "16r5425"    16r0000 " invalid " 
                           "16r5426"    16r485D " <CJK> " 
                           "16r5427"    16r0000 " invalid " 
                           "16r5428"    16r0000 " invalid " 
                           "16r5429"    16r5266 " <CJK> " 
                           "16r542A"    16r0000 " invalid " 
                           "16r542B"    16r345E " <CJK> " 
                           "16r542C"    16r5261 " <CJK> " 
                           "16r542D"    16r5262 " <CJK> " 
                           "16r542E"    16r5264 " <CJK> " 
                           "16r542F"    16r0000 " invalid " 
                           "16r5430"    16r0000 " invalid " 
                           "16r5431"    16r0000 " invalid " 
                           "16r5432"    16r0000 " invalid " 
                           "16r5433"    16r0000 " invalid " 
                           "16r5434"    16r0000 " invalid " 
                           "16r5435"    16r0000 " invalid " 
                           "16r5436"    16r5265 " <CJK> " 
                           "16r5437"    16r0000 " invalid " 
                           "16r5438"    16r355B " <CJK> " 
                           "16r5439"    16r3F61 " <CJK> " 
                           "16r543A"    16r0000 " invalid " 
                           "16r543B"    16r4A2D " <CJK> " 
                           "16r543C"    16r5263 " <CJK> " 
                           "16r543D"    16r525F " <CJK> " 
                           "16r543E"    16r3863 " <CJK> " 
                           "16r543F"    16r0000 " invalid " 
                           "16r5440"    16r5260 " <CJK> " 
                           "16r5441"    16r0000 " invalid " 
                           "16r5442"    16r4F24 " <CJK> " 
                           "16r5443"    16r0000 " invalid " 
                           "16r5444"    16r0000 " invalid " 
                           "16r5445"    16r0000 " invalid " 
                           "16r5446"    16r4A72 " <CJK> " 
                           "16r5447"    16r0000 " invalid " 
                           "16r5448"    16r4468 " <CJK> " 
                           "16r5449"    16r3862 " <CJK> " 
                           "16r544A"    16r3970 " <CJK> " 
                           "16r544B"    16r0000 " invalid " 
                           "16r544C"    16r0000 " invalid " 
                           "16r544D"    16r0000 " invalid " 
                           "16r544E"    16r5268 " <CJK> " 
                           "16r544F"    16r0000 " invalid " 
                           "16r5450"    16r0000 " invalid " 
                           "16r5451"    16r465D " <CJK> " 
                           "16r5452"    16r0000 " invalid " 
                           "16r5453"    16r0000 " invalid " 
                           "16r5454"    16r0000 " invalid " 
                           "16r5455"    16r0000 " invalid " 
                           "16r5456"    16r0000 " invalid " 
                           "16r5457"    16r0000 " invalid " 
                           "16r5458"    16r0000 " invalid " 
                           "16r5459"    16r0000 " invalid " 
                           "16r545A"    16r0000 " invalid " 
                           "16r545B"    16r0000 " invalid " 
                           "16r545C"    16r0000 " invalid " 
                           "16r545D"    16r0000 " invalid " 
                           "16r545E"    16r0000 " invalid " 
                           "16r545F"    16r526C " <CJK> " 
                           "16r5460"    16r0000 " invalid " 
                           "16r5461"    16r0000 " invalid " 
                           "16r5462"    16r0000 " invalid " 
                           "16r5463"    16r0000 " invalid " 
                           "16r5464"    16r0000 " invalid " 
                           "16r5465"    16r0000 " invalid " 
                           "16r5466"    16r0000 " invalid " 
                           "16r5467"    16r0000 " invalid " 
                           "16r5468"    16r3C7E " <CJK> " 
                           "16r5469"    16r0000 " invalid " 
                           "16r546A"    16r3C76 " <CJK> " 
                           "16r546B"    16r0000 " invalid " 
                           "16r546C"    16r0000 " invalid " 
                           "16r546D"    16r0000 " invalid " 
                           "16r546E"    16r0000 " invalid " 
                           "16r546F"    16r0000 " invalid " 
                           "16r5470"    16r526F " <CJK> " 
                           "16r5471"    16r526D " <CJK> " 
                           "16r5472"    16r0000 " invalid " 
                           "16r5473"    16r4C23 " <CJK> " 
                           "16r5474"    16r0000 " invalid " 
                           "16r5475"    16r526A " <CJK> " 
                           "16r5476"    16r5273 " <CJK> " 
                           "16r5477"    16r526E " <CJK> " 
                           "16r5478"    16r0000 " invalid " 
                           "16r5479"    16r0000 " invalid " 
                           "16r547A"    16r0000 " invalid " 
                           "16r547B"    16r5271 " <CJK> " 
                           "16r547C"    16r3846 " <CJK> " 
                           "16r547D"    16r4C3F " <CJK> " 
                           "16r547E"    16r0000 " invalid " 
                           "16r547F"    16r0000 " invalid " 
                           "16r5480"    16r5272 " <CJK> " 
                           "16r5481"    16r0000 " invalid " 
                           "16r5482"    16r0000 " invalid " 
                           "16r5483"    16r0000 " invalid " 
                           "16r5484"    16r5274 " <CJK> " 
                           "16r5485"    16r0000 " invalid " 
                           "16r5486"    16r5276 " <CJK> " 
                           "16r5487"    16r0000 " invalid " 
                           "16r5488"    16r0000 " invalid " 
                           "16r5489"    16r0000 " invalid " 
                           "16r548A"    16r0000 " invalid " 
                           "16r548B"    16r3A70 " <CJK> " 
                           "16r548C"    16r4F42 " <CJK> " 
                           "16r548D"    16r0000 " invalid " 
                           "16r548E"    16r526B " <CJK> " 
                           "16r548F"    16r5269 " <CJK> " 
                           "16r5490"    16r5275 " <CJK> " 
                           "16r5491"    16r0000 " invalid " 
                           "16r5492"    16r5270 " <CJK> " 
                           "16r5493"    16r0000 " invalid " 
                           "16r5494"    16r0000 " invalid " 
                           "16r5495"    16r0000 " invalid " 
                           "16r5496"    16r0000 " invalid " 
                           "16r5497"    16r0000 " invalid " 
                           "16r5498"    16r0000 " invalid " 
                           "16r5499"    16r0000 " invalid " 
                           "16r549A"    16r0000 " invalid " 
                           "16r549B"    16r0000 " invalid " 
                           "16r549C"    16r0000 " invalid " 
                           "16r549D"    16r0000 " invalid " 
                           "16r549E"    16r0000 " invalid " 
                           "16r549F"    16r0000 " invalid " 
                           "16r54A0"    16r0000 " invalid " 
                           "16r54A1"    16r0000 " invalid " 
                           "16r54A2"    16r5278 " <CJK> " 
                           "16r54A3"    16r0000 " invalid " 
                           "16r54A4"    16r5323 " <CJK> " 
                           "16r54A5"    16r527A " <CJK> " 
                           "16r54A6"    16r0000 " invalid " 
                           "16r54A7"    16r0000 " invalid " 
                           "16r54A8"    16r527E " <CJK> " 
                           "16r54A9"    16r0000 " invalid " 
                           "16r54AA"    16r0000 " invalid " 
                           "16r54AB"    16r5321 " <CJK> " 
                           "16r54AC"    16r527B " <CJK> " 
                           "16r54AD"    16r0000 " invalid " 
                           "16r54AE"    16r0000 " invalid " 
                           "16r54AF"    16r533E " <CJK> " 
                           "16r54B0"    16r0000 " invalid " 
                           "16r54B1"    16r0000 " invalid " 
                           "16r54B2"    16r3A69 " <CJK> " 
                           "16r54B3"    16r3331 " <CJK> " 
                           "16r54B4"    16r0000 " invalid " 
                           "16r54B5"    16r0000 " invalid " 
                           "16r54B6"    16r0000 " invalid " 
                           "16r54B7"    16r0000 " invalid " 
                           "16r54B8"    16r5279 " <CJK> " 
                           "16r54B9"    16r0000 " invalid " 
                           "16r54BA"    16r0000 " invalid " 
                           "16r54BB"    16r0000 " invalid " 
                           "16r54BC"    16r5325 " <CJK> " 
                           "16r54BD"    16r3076 " <CJK> " 
                           "16r54BE"    16r5324 " <CJK> " 
                           "16r54BF"    16r0000 " invalid " 
                           "16r54C0"    16r3025 " <CJK> " 
                           "16r54C1"    16r494A " <CJK> " 
                           "16r54C2"    16r5322 " <CJK> " 
                           "16r54C3"    16r0000 " invalid " 
                           "16r54C4"    16r527C " <CJK> " 
                           "16r54C5"    16r0000 " invalid " 
                           "16r54C6"    16r0000 " invalid " 
                           "16r54C7"    16r5277 " <CJK> " 
                           "16r54C8"    16r527D " <CJK> " 
                           "16r54C9"    16r3A48 " <CJK> " 
                           "16r54CA"    16r0000 " invalid " 
                           "16r54CB"    16r0000 " invalid " 
                           "16r54CC"    16r0000 " invalid " 
                           "16r54CD"    16r0000 " invalid " 
                           "16r54CE"    16r0000 " invalid " 
                           "16r54CF"    16r0000 " invalid " 
                           "16r54D0"    16r0000 " invalid " 
                           "16r54D1"    16r0000 " invalid " 
                           "16r54D2"    16r0000 " invalid " 
                           "16r54D3"    16r0000 " invalid " 
                           "16r54D4"    16r0000 " invalid " 
                           "16r54D5"    16r0000 " invalid " 
                           "16r54D6"    16r0000 " invalid " 
                           "16r54D7"    16r0000 " invalid " 
                           "16r54D8"    16r5326 " <CJK> " 
                           "16r54D9"    16r0000 " invalid " 
                           "16r54DA"    16r0000 " invalid " 
                           "16r54DB"    16r0000 " invalid " 
                           "16r54DC"    16r0000 " invalid " 
                           "16r54DD"    16r0000 " invalid " 
                           "16r54DE"    16r0000 " invalid " 
                           "16r54DF"    16r0000 " invalid " 
                           "16r54E0"    16r0000 " invalid " 
                           "16r54E1"    16r3077 " <CJK> " 
                           "16r54E2"    16r532F " <CJK> " 
                           "16r54E3"    16r0000 " invalid " 
                           "16r54E4"    16r0000 " invalid " 
                           "16r54E5"    16r5327 " <CJK> " 
                           "16r54E6"    16r5328 " <CJK> " 
                           "16r54E7"    16r0000 " invalid " 
                           "16r54E8"    16r3E25 " <CJK> " 
                           "16r54E9"    16r4B69 " <CJK> " 
                           "16r54EA"    16r0000 " invalid " 
                           "16r54EB"    16r0000 " invalid " 
                           "16r54EC"    16r0000 " invalid " 
                           "16r54ED"    16r532D " <CJK> " 
                           "16r54EE"    16r532C " <CJK> " 
                           "16r54EF"    16r0000 " invalid " 
                           "16r54F0"    16r0000 " invalid " 
                           "16r54F1"    16r0000 " invalid " 
                           "16r54F2"    16r452F " <CJK> " 
                           "16r54F3"    16r0000 " invalid " 
                           "16r54F4"    16r0000 " invalid " 
                           "16r54F5"    16r0000 " invalid " 
                           "16r54F6"    16r0000 " invalid " 
                           "16r54F7"    16r0000 " invalid " 
                           "16r54F8"    16r0000 " invalid " 
                           "16r54F9"    16r0000 " invalid " 
                           "16r54FA"    16r532E " <CJK> " 
                           "16r54FB"    16r0000 " invalid " 
                           "16r54FC"    16r0000 " invalid " 
                           "16r54FD"    16r532B " <CJK> " 
                           "16r54FE"    16r0000 " invalid " 
                           "16r54FF"    16r0000 " invalid " 
                           "16r5500"    16r0000 " invalid " 
                           "16r5501"    16r0000 " invalid " 
                           "16r5502"    16r0000 " invalid " 
                           "16r5503"    16r0000 " invalid " 
                           "16r5504"    16r3134 " <CJK> " 
                           "16r5505"    16r0000 " invalid " 
                           "16r5506"    16r3A36 " <CJK> " 
                           "16r5507"    16r3F30 " <CJK> " 
                           "16r5508"    16r0000 " invalid " 
                           "16r5509"    16r0000 " invalid " 
                           "16r550A"    16r0000 " invalid " 
                           "16r550B"    16r0000 " invalid " 
                           "16r550C"    16r0000 " invalid " 
                           "16r550D"    16r0000 " invalid " 
                           "16r550E"    16r0000 " invalid " 
                           "16r550F"    16r5329 " <CJK> " 
                           "16r5510"    16r4562 " <CJK> " 
                           "16r5511"    16r0000 " invalid " 
                           "16r5512"    16r0000 " invalid " 
                           "16r5513"    16r0000 " invalid " 
                           "16r5514"    16r532A " <CJK> " 
                           "16r5515"    16r0000 " invalid " 
                           "16r5516"    16r3022 " <CJK> " 
                           "16r5517"    16r0000 " invalid " 
                           "16r5518"    16r0000 " invalid " 
                           "16r5519"    16r0000 " invalid " 
                           "16r551A"    16r0000 " invalid " 
                           "16r551B"    16r0000 " invalid " 
                           "16r551C"    16r0000 " invalid " 
                           "16r551D"    16r0000 " invalid " 
                           "16r551E"    16r0000 " invalid " 
                           "16r551F"    16r0000 " invalid " 
                           "16r5520"    16r0000 " invalid " 
                           "16r5521"    16r0000 " invalid " 
                           "16r5522"    16r0000 " invalid " 
                           "16r5523"    16r0000 " invalid " 
                           "16r5524"    16r0000 " invalid " 
                           "16r5525"    16r0000 " invalid " 
                           "16r5526"    16r0000 " invalid " 
                           "16r5527"    16r0000 " invalid " 
                           "16r5528"    16r0000 " invalid " 
                           "16r5529"    16r0000 " invalid " 
                           "16r552A"    16r0000 " invalid " 
                           "16r552B"    16r0000 " invalid " 
                           "16r552C"    16r0000 " invalid " 
                           "16r552D"    16r0000 " invalid " 
                           "16r552E"    16r5334 " <CJK> " 
                           "16r552F"    16r4D23 " <CJK> " 
                           "16r5530"    16r0000 " invalid " 
                           "16r5531"    16r3E27 " <CJK> " 
                           "16r5532"    16r0000 " invalid " 
                           "16r5533"    16r533A " <CJK> " 
                           "16r5534"    16r0000 " invalid " 
                           "16r5535"    16r0000 " invalid " 
                           "16r5536"    16r0000 " invalid " 
                           "16r5537"    16r0000 " invalid " 
                           "16r5538"    16r5339 " <CJK> " 
                           "16r5539"    16r5330 " <CJK> " 
                           "16r553A"    16r0000 " invalid " 
                           "16r553B"    16r0000 " invalid " 
                           "16r553C"    16r0000 " invalid " 
                           "16r553D"    16r0000 " invalid " 
                           "16r553E"    16r4243 " <CJK> " 
                           "16r553F"    16r0000 " invalid " 
                           "16r5540"    16r5331 " <CJK> " 
                           "16r5541"    16r0000 " invalid " 
                           "16r5542"    16r0000 " invalid " 
                           "16r5543"    16r0000 " invalid " 
                           "16r5544"    16r426F " <CJK> " 
                           "16r5545"    16r5336 " <CJK> " 
                           "16r5546"    16r3E26 " <CJK> " 
                           "16r5547"    16r0000 " invalid " 
                           "16r5548"    16r0000 " invalid " 
                           "16r5549"    16r0000 " invalid " 
                           "16r554A"    16r0000 " invalid " 
                           "16r554B"    16r0000 " invalid " 
                           "16r554C"    16r5333 " <CJK> " 
                           "16r554D"    16r0000 " invalid " 
                           "16r554E"    16r0000 " invalid " 
                           "16r554F"    16r4C64 " <CJK> " 
                           "16r5550"    16r0000 " invalid " 
                           "16r5551"    16r0000 " invalid " 
                           "16r5552"    16r0000 " invalid " 
                           "16r5553"    16r373C " <CJK> " 
                           "16r5554"    16r0000 " invalid " 
                           "16r5555"    16r0000 " invalid " 
                           "16r5556"    16r5337 " <CJK> " 
                           "16r5557"    16r5338 " <CJK> " 
                           "16r5558"    16r0000 " invalid " 
                           "16r5559"    16r0000 " invalid " 
                           "16r555A"    16r0000 " invalid " 
                           "16r555B"    16r0000 " invalid " 
                           "16r555C"    16r5335 " <CJK> " 
                           "16r555D"    16r533B " <CJK> " 
                           "16r555E"    16r0000 " invalid " 
                           "16r555F"    16r0000 " invalid " 
                           "16r5560"    16r0000 " invalid " 
                           "16r5561"    16r0000 " invalid " 
                           "16r5562"    16r0000 " invalid " 
                           "16r5563"    16r5332 " <CJK> " 
                           "16r5564"    16r0000 " invalid " 
                           "16r5565"    16r0000 " invalid " 
                           "16r5566"    16r0000 " invalid " 
                           "16r5567"    16r0000 " invalid " 
                           "16r5568"    16r0000 " invalid " 
                           "16r5569"    16r0000 " invalid " 
                           "16r556A"    16r0000 " invalid " 
                           "16r556B"    16r0000 " invalid " 
                           "16r556C"    16r0000 " invalid " 
                           "16r556D"    16r0000 " invalid " 
                           "16r556E"    16r0000 " invalid " 
                           "16r556F"    16r0000 " invalid " 
                           "16r5570"    16r0000 " invalid " 
                           "16r5571"    16r0000 " invalid " 
                           "16r5572"    16r0000 " invalid " 
                           "16r5573"    16r0000 " invalid " 
                           "16r5574"    16r0000 " invalid " 
                           "16r5575"    16r0000 " invalid " 
                           "16r5576"    16r0000 " invalid " 
                           "16r5577"    16r0000 " invalid " 
                           "16r5578"    16r0000 " invalid " 
                           "16r5579"    16r0000 " invalid " 
                           "16r557A"    16r0000 " invalid " 
                           "16r557B"    16r5341 " <CJK> " 
                           "16r557C"    16r5346 " <CJK> " 
                           "16r557D"    16r0000 " invalid " 
                           "16r557E"    16r5342 " <CJK> " 
                           "16r557F"    16r0000 " invalid " 
                           "16r5580"    16r533D " <CJK> " 
                           "16r5581"    16r0000 " invalid " 
                           "16r5582"    16r0000 " invalid " 
                           "16r5583"    16r5347 " <CJK> " 
                           "16r5584"    16r4131 " <CJK> " 
                           "16r5585"    16r0000 " invalid " 
                           "16r5586"    16r0000 " invalid " 
                           "16r5587"    16r5349 " <CJK> " 
                           "16r5588"    16r0000 " invalid " 
                           "16r5589"    16r3922 " <CJK> " 
                           "16r558A"    16r533F " <CJK> " 
                           "16r558B"    16r437D " <CJK> " 
                           "16r558C"    16r0000 " invalid " 
                           "16r558D"    16r0000 " invalid " 
                           "16r558E"    16r0000 " invalid " 
                           "16r558F"    16r0000 " invalid " 
                           "16r5590"    16r0000 " invalid " 
                           "16r5591"    16r0000 " invalid " 
                           "16r5592"    16r0000 " invalid " 
                           "16r5593"    16r0000 " invalid " 
                           "16r5594"    16r0000 " invalid " 
                           "16r5595"    16r0000 " invalid " 
                           "16r5596"    16r0000 " invalid " 
                           "16r5597"    16r0000 " invalid " 
                           "16r5598"    16r5343 " <CJK> " 
                           "16r5599"    16r533C " <CJK> " 
                           "16r559A"    16r342D " <CJK> " 
                           "16r559B"    16r0000 " invalid " 
                           "16r559C"    16r346E " <CJK> " 
                           "16r559D"    16r3365 " <CJK> " 
                           "16r559E"    16r5344 " <CJK> " 
                           "16r559F"    16r5340 " <CJK> " 
                           "16r55A0"    16r0000 " invalid " 
                           "16r55A1"    16r0000 " invalid " 
                           "16r55A2"    16r0000 " invalid " 
                           "16r55A3"    16r0000 " invalid " 
                           "16r55A4"    16r0000 " invalid " 
                           "16r55A5"    16r0000 " invalid " 
                           "16r55A6"    16r0000 " invalid " 
                           "16r55A7"    16r3776 " <CJK> " 
                           "16r55A8"    16r534A " <CJK> " 
                           "16r55A9"    16r5348 " <CJK> " 
                           "16r55AA"    16r4153 " <CJK> " 
                           "16r55AB"    16r354A " <CJK> " 
                           "16r55AC"    16r362C " <CJK> " 
                           "16r55AD"    16r0000 " invalid " 
                           "16r55AE"    16r5345 " <CJK> " 
                           "16r55AF"    16r0000 " invalid " 
                           "16r55B0"    16r3674 " <CJK> " 
                           "16r55B1"    16r0000 " invalid " 
                           "16r55B2"    16r0000 " invalid " 
                           "16r55B3"    16r0000 " invalid " 
                           "16r55B4"    16r0000 " invalid " 
                           "16r55B5"    16r0000 " invalid " 
                           "16r55B6"    16r3144 " <CJK> " 
                           "16r55B7"    16r0000 " invalid " 
                           "16r55B8"    16r0000 " invalid " 
                           "16r55B9"    16r0000 " invalid " 
                           "16r55BA"    16r0000 " invalid " 
                           "16r55BB"    16r0000 " invalid " 
                           "16r55BC"    16r0000 " invalid " 
                           "16r55BD"    16r0000 " invalid " 
                           "16r55BE"    16r0000 " invalid " 
                           "16r55BF"    16r0000 " invalid " 
                           "16r55C0"    16r0000 " invalid " 
                           "16r55C1"    16r0000 " invalid " 
                           "16r55C2"    16r0000 " invalid " 
                           "16r55C3"    16r0000 " invalid " 
                           "16r55C4"    16r534E " <CJK> " 
                           "16r55C5"    16r534C " <CJK> " 
                           "16r55C6"    16r0000 " invalid " 
                           "16r55C7"    16r5427 " <CJK> " 
                           "16r55C8"    16r0000 " invalid " 
                           "16r55C9"    16r0000 " invalid " 
                           "16r55CA"    16r0000 " invalid " 
                           "16r55CB"    16r0000 " invalid " 
                           "16r55CC"    16r0000 " invalid " 
                           "16r55CD"    16r0000 " invalid " 
                           "16r55CE"    16r0000 " invalid " 
                           "16r55CF"    16r0000 " invalid " 
                           "16r55D0"    16r0000 " invalid " 
                           "16r55D1"    16r0000 " invalid " 
                           "16r55D2"    16r0000 " invalid " 
                           "16r55D3"    16r0000 " invalid " 
                           "16r55D4"    16r5351 " <CJK> " 
                           "16r55D5"    16r0000 " invalid " 
                           "16r55D6"    16r0000 " invalid " 
                           "16r55D7"    16r0000 " invalid " 
                           "16r55D8"    16r0000 " invalid " 
                           "16r55D9"    16r0000 " invalid " 
                           "16r55DA"    16r534B " <CJK> " 
                           "16r55DB"    16r0000 " invalid " 
                           "16r55DC"    16r534F " <CJK> " 
                           "16r55DD"    16r0000 " invalid " 
                           "16r55DE"    16r0000 " invalid " 
                           "16r55DF"    16r534D " <CJK> " 
                           "16r55E0"    16r0000 " invalid " 
                           "16r55E1"    16r0000 " invalid " 
                           "16r55E2"    16r0000 " invalid " 
                           "16r55E3"    16r3B4C " <CJK> " 
                           "16r55E4"    16r5350 " <CJK> " 
                           "16r55E5"    16r0000 " invalid " 
                           "16r55E6"    16r0000 " invalid " 
                           "16r55E7"    16r0000 " invalid " 
                           "16r55E8"    16r0000 " invalid " 
                           "16r55E9"    16r0000 " invalid " 
                           "16r55EA"    16r0000 " invalid " 
                           "16r55EB"    16r0000 " invalid " 
                           "16r55EC"    16r0000 " invalid " 
                           "16r55ED"    16r0000 " invalid " 
                           "16r55EE"    16r0000 " invalid " 
                           "16r55EF"    16r0000 " invalid " 
                           "16r55F0"    16r0000 " invalid " 
                           "16r55F1"    16r0000 " invalid " 
                           "16r55F2"    16r0000 " invalid " 
                           "16r55F3"    16r0000 " invalid " 
                           "16r55F4"    16r0000 " invalid " 
                           "16r55F5"    16r0000 " invalid " 
                           "16r55F6"    16r0000 " invalid " 
                           "16r55F7"    16r5353 " <CJK> " 
                           "16r55F8"    16r0000 " invalid " 
                           "16r55F9"    16r5358 " <CJK> " 
                           "16r55FA"    16r0000 " invalid " 
                           "16r55FB"    16r0000 " invalid " 
                           "16r55FC"    16r0000 " invalid " 
                           "16r55FD"    16r5356 " <CJK> " 
                           "16r55FE"    16r5355 " <CJK> " 
                           "16r55FF"    16r0000 " invalid " 
                           "16r5600"    16r0000 " invalid " 
                           "16r5601"    16r0000 " invalid " 
                           "16r5602"    16r0000 " invalid " 
                           "16r5603"    16r0000 " invalid " 
                           "16r5604"    16r0000 " invalid " 
                           "16r5605"    16r0000 " invalid " 
                           "16r5606"    16r4332 " <CJK> " 
                           "16r5607"    16r0000 " invalid " 
                           "16r5608"    16r0000 " invalid " 
                           "16r5609"    16r3245 " <CJK> " 
                           "16r560A"    16r0000 " invalid " 
                           "16r560B"    16r0000 " invalid " 
                           "16r560C"    16r0000 " invalid " 
                           "16r560D"    16r0000 " invalid " 
                           "16r560E"    16r0000 " invalid " 
                           "16r560F"    16r0000 " invalid " 
                           "16r5610"    16r0000 " invalid " 
                           "16r5611"    16r0000 " invalid " 
                           "16r5612"    16r0000 " invalid " 
                           "16r5613"    16r0000 " invalid " 
                           "16r5614"    16r5352 " <CJK> " 
                           "16r5615"    16r0000 " invalid " 
                           "16r5616"    16r5354 " <CJK> " 
                           "16r5617"    16r3E28 " <CJK> " 
                           "16r5618"    16r3133 " <CJK> " 
                           "16r5619"    16r0000 " invalid " 
                           "16r561A"    16r0000 " invalid " 
                           "16r561B"    16r5357 " <CJK> " 
                           "16r561C"    16r0000 " invalid " 
                           "16r561D"    16r0000 " invalid " 
                           "16r561E"    16r0000 " invalid " 
                           "16r561F"    16r0000 " invalid " 
                           "16r5620"    16r0000 " invalid " 
                           "16r5621"    16r0000 " invalid " 
                           "16r5622"    16r0000 " invalid " 
                           "16r5623"    16r0000 " invalid " 
                           "16r5624"    16r0000 " invalid " 
                           "16r5625"    16r0000 " invalid " 
                           "16r5626"    16r0000 " invalid " 
                           "16r5627"    16r0000 " invalid " 
                           "16r5628"    16r0000 " invalid " 
                           "16r5629"    16r325E " <CJK> " 
                           "16r562A"    16r0000 " invalid " 
                           "16r562B"    16r0000 " invalid " 
                           "16r562C"    16r0000 " invalid " 
                           "16r562D"    16r0000 " invalid " 
                           "16r562E"    16r0000 " invalid " 
                           "16r562F"    16r5362 " <CJK> " 
                           "16r5630"    16r0000 " invalid " 
                           "16r5631"    16r3E7C " <CJK> " 
                           "16r5632"    16r535E " <CJK> " 
                           "16r5633"    16r0000 " invalid " 
                           "16r5634"    16r535C " <CJK> " 
                           "16r5635"    16r0000 " invalid " 
                           "16r5636"    16r535D " <CJK> " 
                           "16r5637"    16r0000 " invalid " 
                           "16r5638"    16r535F " <CJK> " 
                           "16r5639"    16r0000 " invalid " 
                           "16r563A"    16r0000 " invalid " 
                           "16r563B"    16r0000 " invalid " 
                           "16r563C"    16r0000 " invalid " 
                           "16r563D"    16r0000 " invalid " 
                           "16r563E"    16r0000 " invalid " 
                           "16r563F"    16r0000 " invalid " 
                           "16r5640"    16r0000 " invalid " 
                           "16r5641"    16r0000 " invalid " 
                           "16r5642"    16r313D " <CJK> " 
                           "16r5643"    16r0000 " invalid " 
                           "16r5644"    16r0000 " invalid " 
                           "16r5645"    16r0000 " invalid " 
                           "16r5646"    16r0000 " invalid " 
                           "16r5647"    16r0000 " invalid " 
                           "16r5648"    16r0000 " invalid " 
                           "16r5649"    16r0000 " invalid " 
                           "16r564A"    16r0000 " invalid " 
                           "16r564B"    16r0000 " invalid " 
                           "16r564C"    16r4139 " <CJK> " 
                           "16r564D"    16r0000 " invalid " 
                           "16r564E"    16r5359 " <CJK> " 
                           "16r564F"    16r0000 " invalid " 
                           "16r5650"    16r535A " <CJK> " 
                           "16r5651"    16r0000 " invalid " 
                           "16r5652"    16r0000 " invalid " 
                           "16r5653"    16r0000 " invalid " 
                           "16r5654"    16r0000 " invalid " 
                           "16r5655"    16r0000 " invalid " 
                           "16r5656"    16r0000 " invalid " 
                           "16r5657"    16r0000 " invalid " 
                           "16r5658"    16r0000 " invalid " 
                           "16r5659"    16r0000 " invalid " 
                           "16r565A"    16r0000 " invalid " 
                           "16r565B"    16r337A " <CJK> " 
                           "16r565C"    16r0000 " invalid " 
                           "16r565D"    16r0000 " invalid " 
                           "16r565E"    16r0000 " invalid " 
                           "16r565F"    16r0000 " invalid " 
                           "16r5660"    16r0000 " invalid " 
                           "16r5661"    16r0000 " invalid " 
                           "16r5662"    16r0000 " invalid " 
                           "16r5663"    16r0000 " invalid " 
                           "16r5664"    16r5361 " <CJK> " 
                           "16r5665"    16r0000 " invalid " 
                           "16r5666"    16r0000 " invalid " 
                           "16r5667"    16r0000 " invalid " 
                           "16r5668"    16r346F " <CJK> " 
                           "16r5669"    16r0000 " invalid " 
                           "16r566A"    16r5364 " <CJK> " 
                           "16r566B"    16r5360 " <CJK> " 
                           "16r566C"    16r5363 " <CJK> " 
                           "16r566D"    16r0000 " invalid " 
                           "16r566E"    16r0000 " invalid " 
                           "16r566F"    16r0000 " invalid " 
                           "16r5670"    16r0000 " invalid " 
                           "16r5671"    16r0000 " invalid " 
                           "16r5672"    16r0000 " invalid " 
                           "16r5673"    16r0000 " invalid " 
                           "16r5674"    16r4A2E " <CJK> " 
                           "16r5675"    16r0000 " invalid " 
                           "16r5676"    16r0000 " invalid " 
                           "16r5677"    16r0000 " invalid " 
                           "16r5678"    16r4655 " <CJK> " 
                           "16r5679"    16r0000 " invalid " 
                           "16r567A"    16r4838 " <CJK> " 
                           "16r567B"    16r0000 " invalid " 
                           "16r567C"    16r0000 " invalid " 
                           "16r567D"    16r0000 " invalid " 
                           "16r567E"    16r0000 " invalid " 
                           "16r567F"    16r0000 " invalid " 
                           "16r5680"    16r5366 " <CJK> " 
                           "16r5681"    16r0000 " invalid " 
                           "16r5682"    16r0000 " invalid " 
                           "16r5683"    16r0000 " invalid " 
                           "16r5684"    16r0000 " invalid " 
                           "16r5685"    16r0000 " invalid " 
                           "16r5686"    16r5365 " <CJK> " 
                           "16r5687"    16r3345 " <CJK> " 
                           "16r5688"    16r0000 " invalid " 
                           "16r5689"    16r0000 " invalid " 
                           "16r568A"    16r5367 " <CJK> " 
                           "16r568B"    16r0000 " invalid " 
                           "16r568C"    16r0000 " invalid " 
                           "16r568D"    16r0000 " invalid " 
                           "16r568E"    16r0000 " invalid " 
                           "16r568F"    16r536A " <CJK> " 
                           "16r5690"    16r0000 " invalid " 
                           "16r5691"    16r0000 " invalid " 
                           "16r5692"    16r0000 " invalid " 
                           "16r5693"    16r0000 " invalid " 
                           "16r5694"    16r5369 " <CJK> " 
                           "16r5695"    16r0000 " invalid " 
                           "16r5696"    16r0000 " invalid " 
                           "16r5697"    16r0000 " invalid " 
                           "16r5698"    16r0000 " invalid " 
                           "16r5699"    16r0000 " invalid " 
                           "16r569A"    16r0000 " invalid " 
                           "16r569B"    16r0000 " invalid " 
                           "16r569C"    16r0000 " invalid " 
                           "16r569D"    16r0000 " invalid " 
                           "16r569E"    16r0000 " invalid " 
                           "16r569F"    16r0000 " invalid " 
                           "16r56A0"    16r5368 " <CJK> " 
                           "16r56A1"    16r0000 " invalid " 
                           "16r56A2"    16r4739 " <CJK> " 
                           "16r56A3"    16r0000 " invalid " 
                           "16r56A4"    16r0000 " invalid " 
                           "16r56A5"    16r536B " <CJK> " 
                           "16r56A6"    16r0000 " invalid " 
                           "16r56A7"    16r0000 " invalid " 
                           "16r56A8"    16r0000 " invalid " 
                           "16r56A9"    16r0000 " invalid " 
                           "16r56AA"    16r0000 " invalid " 
                           "16r56AB"    16r0000 " invalid " 
                           "16r56AC"    16r0000 " invalid " 
                           "16r56AD"    16r0000 " invalid " 
                           "16r56AE"    16r536C " <CJK> " 
                           "16r56AF"    16r0000 " invalid " 
                           "16r56B0"    16r0000 " invalid " 
                           "16r56B1"    16r0000 " invalid " 
                           "16r56B2"    16r0000 " invalid " 
                           "16r56B3"    16r0000 " invalid " 
                           "16r56B4"    16r536E " <CJK> " 
                           "16r56B5"    16r0000 " invalid " 
                           "16r56B6"    16r536D " <CJK> " 
                           "16r56B7"    16r0000 " invalid " 
                           "16r56B8"    16r0000 " invalid " 
                           "16r56B9"    16r0000 " invalid " 
                           "16r56BA"    16r0000 " invalid " 
                           "16r56BB"    16r0000 " invalid " 
                           "16r56BC"    16r5370 " <CJK> " 
                           "16r56BD"    16r0000 " invalid " 
                           "16r56BE"    16r0000 " invalid " 
                           "16r56BF"    16r0000 " invalid " 
                           "16r56C0"    16r5373 " <CJK> " 
                           "16r56C1"    16r5371 " <CJK> " 
                           "16r56C2"    16r536F " <CJK> " 
                           "16r56C3"    16r5372 " <CJK> " 
                           "16r56C4"    16r0000 " invalid " 
                           "16r56C5"    16r0000 " invalid " 
                           "16r56C6"    16r0000 " invalid " 
                           "16r56C7"    16r0000 " invalid " 
                           "16r56C8"    16r5374 " <CJK> " 
                           "16r56C9"    16r0000 " invalid " 
                           "16r56CA"    16r0000 " invalid " 
                           "16r56CB"    16r0000 " invalid " 
                           "16r56CC"    16r0000 " invalid " 
                           "16r56CD"    16r0000 " invalid " 
                           "16r56CE"    16r5375 " <CJK> " 
                           "16r56CF"    16r0000 " invalid " 
                           "16r56D0"    16r0000 " invalid " 
                           "16r56D1"    16r5376 " <CJK> " 
                           "16r56D2"    16r0000 " invalid " 
                           "16r56D3"    16r5377 " <CJK> " 
                           "16r56D4"    16r0000 " invalid " 
                           "16r56D5"    16r0000 " invalid " 
                           "16r56D6"    16r0000 " invalid " 
                           "16r56D7"    16r5378 " <CJK> " 
                           "16r56D8"    16r5145 " <CJK> " 
                           "16r56D9"    16r0000 " invalid " 
                           "16r56DA"    16r3C7C " <CJK> " 
                           "16r56DB"    16r3B4D " <CJK> " 
                           "16r56DC"    16r0000 " invalid " 
                           "16r56DD"    16r0000 " invalid " 
                           "16r56DE"    16r3273 " <CJK> " 
                           "16r56DF"    16r0000 " invalid " 
                           "16r56E0"    16r3078 " <CJK> " 
                           "16r56E1"    16r0000 " invalid " 
                           "16r56E2"    16r0000 " invalid " 
                           "16r56E3"    16r4344 " <CJK> " 
                           "16r56E4"    16r0000 " invalid " 
                           "16r56E5"    16r0000 " invalid " 
                           "16r56E6"    16r0000 " invalid " 
                           "16r56E7"    16r0000 " invalid " 
                           "16r56E8"    16r0000 " invalid " 
                           "16r56E9"    16r0000 " invalid " 
                           "16r56EA"    16r0000 " invalid " 
                           "16r56EB"    16r0000 " invalid " 
                           "16r56EC"    16r0000 " invalid " 
                           "16r56ED"    16r0000 " invalid " 
                           "16r56EE"    16r5379 " <CJK> " 
                           "16r56EF"    16r0000 " invalid " 
                           "16r56F0"    16r3A24 " <CJK> " 
                           "16r56F1"    16r0000 " invalid " 
                           "16r56F2"    16r304F " <CJK> " 
                           "16r56F3"    16r3F5E " <CJK> " 
                           "16r56F4"    16r0000 " invalid " 
                           "16r56F5"    16r0000 " invalid " 
                           "16r56F6"    16r0000 " invalid " 
                           "16r56F7"    16r0000 " invalid " 
                           "16r56F8"    16r0000 " invalid " 
                           "16r56F9"    16r537A " <CJK> " 
                           "16r56FA"    16r3847 " <CJK> " 
                           "16r56FB"    16r0000 " invalid " 
                           "16r56FC"    16r0000 " invalid " 
                           "16r56FD"    16r3971 " <CJK> " 
                           "16r56FE"    16r0000 " invalid " 
                           "16r56FF"    16r537C " <CJK> " 
                           "16r5700"    16r537B " <CJK> " 
                           "16r5701"    16r0000 " invalid " 
                           "16r5702"    16r0000 " invalid " 
                           "16r5703"    16r4A60 " <CJK> " 
                           "16r5704"    16r537D " <CJK> " 
                           "16r5705"    16r0000 " invalid " 
                           "16r5706"    16r0000 " invalid " 
                           "16r5707"    16r0000 " invalid " 
                           "16r5708"    16r5421 " <CJK> " 
                           "16r5709"    16r537E " <CJK> " 
                           "16r570A"    16r0000 " invalid " 
                           "16r570B"    16r5422 " <CJK> " 
                           "16r570C"    16r0000 " invalid " 
                           "16r570D"    16r5423 " <CJK> " 
                           "16r570E"    16r0000 " invalid " 
                           "16r570F"    16r3777 " <CJK> " 
                           "16r5710"    16r0000 " invalid " 
                           "16r5711"    16r0000 " invalid " 
                           "16r5712"    16r3160 " <CJK> " 
                           "16r5713"    16r5424 " <CJK> " 
                           "16r5714"    16r0000 " invalid " 
                           "16r5715"    16r0000 " invalid " 
                           "16r5716"    16r5426 " <CJK> " 
                           "16r5717"    16r0000 " invalid " 
                           "16r5718"    16r5425 " <CJK> " 
                           "16r5719"    16r0000 " invalid " 
                           "16r571A"    16r0000 " invalid " 
                           "16r571B"    16r0000 " invalid " 
                           "16r571C"    16r5428 " <CJK> " 
                           "16r571D"    16r0000 " invalid " 
                           "16r571E"    16r0000 " invalid " 
                           "16r571F"    16r455A " <CJK> " 
                           "16r5720"    16r0000 " invalid " 
                           "16r5721"    16r0000 " invalid " 
                           "16r5722"    16r0000 " invalid " 
                           "16r5723"    16r0000 " invalid " 
                           "16r5724"    16r0000 " invalid " 
                           "16r5725"    16r0000 " invalid " 
                           "16r5726"    16r5429 " <CJK> " 
                           "16r5727"    16r3035 " <CJK> " 
                           "16r5728"    16r3A5F " <CJK> " 
                           "16r5729"    16r0000 " invalid " 
                           "16r572A"    16r0000 " invalid " 
                           "16r572B"    16r0000 " invalid " 
                           "16r572C"    16r0000 " invalid " 
                           "16r572D"    16r373D " <CJK> " 
                           "16r572E"    16r0000 " invalid " 
                           "16r572F"    16r0000 " invalid " 
                           "16r5730"    16r434F " <CJK> " 
                           "16r5731"    16r0000 " invalid " 
                           "16r5732"    16r0000 " invalid " 
                           "16r5733"    16r0000 " invalid " 
                           "16r5734"    16r0000 " invalid " 
                           "16r5735"    16r0000 " invalid " 
                           "16r5736"    16r0000 " invalid " 
                           "16r5737"    16r542A " <CJK> " 
                           "16r5738"    16r542B " <CJK> " 
                           "16r5739"    16r0000 " invalid " 
                           "16r573A"    16r0000 " invalid " 
                           "16r573B"    16r542D " <CJK> " 
                           "16r573C"    16r0000 " invalid " 
                           "16r573D"    16r0000 " invalid " 
                           "16r573E"    16r0000 " invalid " 
                           "16r573F"    16r0000 " invalid " 
                           "16r5740"    16r542E " <CJK> " 
                           "16r5741"    16r0000 " invalid " 
                           "16r5742"    16r3A64 " <CJK> " 
                           "16r5743"    16r0000 " invalid " 
                           "16r5744"    16r0000 " invalid " 
                           "16r5745"    16r0000 " invalid " 
                           "16r5746"    16r0000 " invalid " 
                           "16r5747"    16r3651 " <CJK> " 
                           "16r5748"    16r0000 " invalid " 
                           "16r5749"    16r0000 " invalid " 
                           "16r574A"    16r4B37 " <CJK> " 
                           "16r574B"    16r0000 " invalid " 
                           "16r574C"    16r0000 " invalid " 
                           "16r574D"    16r0000 " invalid " 
                           "16r574E"    16r542C " <CJK> " 
                           "16r574F"    16r542F " <CJK> " 
                           "16r5750"    16r3A41 " <CJK> " 
                           "16r5751"    16r3923 " <CJK> " 
                           "16r5752"    16r0000 " invalid " 
                           "16r5753"    16r0000 " invalid " 
                           "16r5754"    16r0000 " invalid " 
                           "16r5755"    16r0000 " invalid " 
                           "16r5756"    16r0000 " invalid " 
                           "16r5757"    16r0000 " invalid " 
                           "16r5758"    16r0000 " invalid " 
                           "16r5759"    16r0000 " invalid " 
                           "16r575A"    16r0000 " invalid " 
                           "16r575B"    16r0000 " invalid " 
                           "16r575C"    16r0000 " invalid " 
                           "16r575D"    16r0000 " invalid " 
                           "16r575E"    16r0000 " invalid " 
                           "16r575F"    16r0000 " invalid " 
                           "16r5760"    16r0000 " invalid " 
                           "16r5761"    16r5433 " <CJK> " 
                           "16r5762"    16r0000 " invalid " 
                           "16r5763"    16r0000 " invalid " 
                           "16r5764"    16r3A25 " <CJK> " 
                           "16r5765"    16r0000 " invalid " 
                           "16r5766"    16r4333 " <CJK> " 
                           "16r5767"    16r0000 " invalid " 
                           "16r5768"    16r0000 " invalid " 
                           "16r5769"    16r5430 " <CJK> " 
                           "16r576A"    16r445A " <CJK> " 
                           "16r576B"    16r0000 " invalid " 
                           "16r576C"    16r0000 " invalid " 
                           "16r576D"    16r0000 " invalid " 
                           "16r576E"    16r0000 " invalid " 
                           "16r576F"    16r0000 " invalid " 
                           "16r5770"    16r0000 " invalid " 
                           "16r5771"    16r0000 " invalid " 
                           "16r5772"    16r0000 " invalid " 
                           "16r5773"    16r0000 " invalid " 
                           "16r5774"    16r0000 " invalid " 
                           "16r5775"    16r0000 " invalid " 
                           "16r5776"    16r0000 " invalid " 
                           "16r5777"    16r0000 " invalid " 
                           "16r5778"    16r0000 " invalid " 
                           "16r5779"    16r0000 " invalid " 
                           "16r577A"    16r0000 " invalid " 
                           "16r577B"    16r0000 " invalid " 
                           "16r577C"    16r0000 " invalid " 
                           "16r577D"    16r0000 " invalid " 
                           "16r577E"    16r0000 " invalid " 
                           "16r577F"    16r5434 " <CJK> " 
                           "16r5780"    16r0000 " invalid " 
                           "16r5781"    16r0000 " invalid " 
                           "16r5782"    16r3F62 " <CJK> " 
                           "16r5783"    16r0000 " invalid " 
                           "16r5784"    16r0000 " invalid " 
                           "16r5785"    16r0000 " invalid " 
                           "16r5786"    16r0000 " invalid " 
                           "16r5787"    16r0000 " invalid " 
                           "16r5788"    16r5432 " <CJK> " 
                           "16r5789"    16r5435 " <CJK> " 
                           "16r578A"    16r0000 " invalid " 
                           "16r578B"    16r373F " <CJK> " 
                           "16r578C"    16r0000 " invalid " 
                           "16r578D"    16r0000 " invalid " 
                           "16r578E"    16r0000 " invalid " 
                           "16r578F"    16r0000 " invalid " 
                           "16r5790"    16r0000 " invalid " 
                           "16r5791"    16r0000 " invalid " 
                           "16r5792"    16r0000 " invalid " 
                           "16r5793"    16r5436 " <CJK> " 
                           "16r5794"    16r0000 " invalid " 
                           "16r5795"    16r0000 " invalid " 
                           "16r5796"    16r0000 " invalid " 
                           "16r5797"    16r0000 " invalid " 
                           "16r5798"    16r0000 " invalid " 
                           "16r5799"    16r0000 " invalid " 
                           "16r579A"    16r0000 " invalid " 
                           "16r579B"    16r0000 " invalid " 
                           "16r579C"    16r0000 " invalid " 
                           "16r579D"    16r0000 " invalid " 
                           "16r579E"    16r0000 " invalid " 
                           "16r579F"    16r0000 " invalid " 
                           "16r57A0"    16r5437 " <CJK> " 
                           "16r57A1"    16r0000 " invalid " 
                           "16r57A2"    16r3924 " <CJK> " 
                           "16r57A3"    16r3340 " <CJK> " 
                           "16r57A4"    16r5439 " <CJK> " 
                           "16r57A5"    16r0000 " invalid " 
                           "16r57A6"    16r0000 " invalid " 
                           "16r57A7"    16r0000 " invalid " 
                           "16r57A8"    16r0000 " invalid " 
                           "16r57A9"    16r0000 " invalid " 
                           "16r57AA"    16r543A " <CJK> " 
                           "16r57AB"    16r0000 " invalid " 
                           "16r57AC"    16r0000 " invalid " 
                           "16r57AD"    16r0000 " invalid " 
                           "16r57AE"    16r0000 " invalid " 
                           "16r57AF"    16r0000 " invalid " 
                           "16r57B0"    16r543B " <CJK> " 
                           "16r57B1"    16r0000 " invalid " 
                           "16r57B2"    16r0000 " invalid " 
                           "16r57B3"    16r5438 " <CJK> " 
                           "16r57B4"    16r0000 " invalid " 
                           "16r57B5"    16r0000 " invalid " 
                           "16r57B6"    16r0000 " invalid " 
                           "16r57B7"    16r0000 " invalid " 
                           "16r57B8"    16r0000 " invalid " 
                           "16r57B9"    16r0000 " invalid " 
                           "16r57BA"    16r0000 " invalid " 
                           "16r57BB"    16r0000 " invalid " 
                           "16r57BC"    16r0000 " invalid " 
                           "16r57BD"    16r0000 " invalid " 
                           "16r57BE"    16r0000 " invalid " 
                           "16r57BF"    16r0000 " invalid " 
                           "16r57C0"    16r5431 " <CJK> " 
                           "16r57C1"    16r0000 " invalid " 
                           "16r57C2"    16r0000 " invalid " 
                           "16r57C3"    16r543C " <CJK> " 
                           "16r57C4"    16r0000 " invalid " 
                           "16r57C5"    16r0000 " invalid " 
                           "16r57C6"    16r543D " <CJK> " 
                           "16r57C7"    16r0000 " invalid " 
                           "16r57C8"    16r0000 " invalid " 
                           "16r57C9"    16r0000 " invalid " 
                           "16r57CA"    16r0000 " invalid " 
                           "16r57CB"    16r4B64 " <CJK> " 
                           "16r57CC"    16r0000 " invalid " 
                           "16r57CD"    16r0000 " invalid " 
                           "16r57CE"    16r3E6B " <CJK> " 
                           "16r57CF"    16r0000 " invalid " 
                           "16r57D0"    16r0000 " invalid " 
                           "16r57D1"    16r0000 " invalid " 
                           "16r57D2"    16r543F " <CJK> " 
                           "16r57D3"    16r5440 " <CJK> " 
                           "16r57D4"    16r543E " <CJK> " 
                           "16r57D5"    16r0000 " invalid " 
                           "16r57D6"    16r5442 " <CJK> " 
                           "16r57D7"    16r0000 " invalid " 
                           "16r57D8"    16r0000 " invalid " 
                           "16r57D9"    16r0000 " invalid " 
                           "16r57DA"    16r0000 " invalid " 
                           "16r57DB"    16r0000 " invalid " 
                           "16r57DC"    16r4738 " <CJK> " 
                           "16r57DD"    16r0000 " invalid " 
                           "16r57DE"    16r0000 " invalid " 
                           "16r57DF"    16r3068 " <CJK> " 
                           "16r57E0"    16r4956 " <CJK> " 
                           "16r57E1"    16r0000 " invalid " 
                           "16r57E2"    16r0000 " invalid " 
                           "16r57E3"    16r5443 " <CJK> " 
                           "16r57E4"    16r0000 " invalid " 
                           "16r57E5"    16r0000 " invalid " 
                           "16r57E6"    16r0000 " invalid " 
                           "16r57E7"    16r0000 " invalid " 
                           "16r57E8"    16r0000 " invalid " 
                           "16r57E9"    16r0000 " invalid " 
                           "16r57EA"    16r0000 " invalid " 
                           "16r57EB"    16r0000 " invalid " 
                           "16r57EC"    16r0000 " invalid " 
                           "16r57ED"    16r0000 " invalid " 
                           "16r57EE"    16r0000 " invalid " 
                           "16r57EF"    16r0000 " invalid " 
                           "16r57F0"    16r0000 " invalid " 
                           "16r57F1"    16r0000 " invalid " 
                           "16r57F2"    16r0000 " invalid " 
                           "16r57F3"    16r0000 " invalid " 
                           "16r57F4"    16r3E7D " <CJK> " 
                           "16r57F5"    16r0000 " invalid " 
                           "16r57F6"    16r0000 " invalid " 
                           "16r57F7"    16r3C39 " <CJK> " 
                           "16r57F8"    16r0000 " invalid " 
                           "16r57F9"    16r475D " <CJK> " 
                           "16r57FA"    16r3470 " <CJK> " 
                           "16r57FB"    16r0000 " invalid " 
                           "16r57FC"    16r3A6B " <CJK> " 
                           "16r57FD"    16r0000 " invalid " 
                           "16r57FE"    16r0000 " invalid " 
                           "16r57FF"    16r0000 " invalid " 
                           "16r5800"    16r4B59 " <CJK> " 
                           "16r5801"    16r0000 " invalid " 
                           "16r5802"    16r4632 " <CJK> " 
                           "16r5803"    16r0000 " invalid " 
                           "16r5804"    16r0000 " invalid " 
                           "16r5805"    16r3778 " <CJK> " 
                           "16r5806"    16r424F " <CJK> " 
                           "16r5807"    16r0000 " invalid " 
                           "16r5808"    16r0000 " invalid " 
                           "16r5809"    16r0000 " invalid " 
                           "16r580A"    16r5441 " <CJK> " 
                           "16r580B"    16r5444 " <CJK> " 
                           "16r580C"    16r0000 " invalid " 
                           "16r580D"    16r0000 " invalid " 
                           "16r580E"    16r0000 " invalid " 
                           "16r580F"    16r0000 " invalid " 
                           "16r5810"    16r0000 " invalid " 
                           "16r5811"    16r0000 " invalid " 
                           "16r5812"    16r0000 " invalid " 
                           "16r5813"    16r0000 " invalid " 
                           "16r5814"    16r0000 " invalid " 
                           "16r5815"    16r4244 " <CJK> " 
                           "16r5816"    16r0000 " invalid " 
                           "16r5817"    16r0000 " invalid " 
                           "16r5818"    16r0000 " invalid " 
                           "16r5819"    16r5445 " <CJK> " 
                           "16r581A"    16r0000 " invalid " 
                           "16r581B"    16r0000 " invalid " 
                           "16r581C"    16r0000 " invalid " 
                           "16r581D"    16r5446 " <CJK> " 
                           "16r581E"    16r0000 " invalid " 
                           "16r581F"    16r0000 " invalid " 
                           "16r5820"    16r0000 " invalid " 
                           "16r5821"    16r5448 " <CJK> " 
                           "16r5822"    16r0000 " invalid " 
                           "16r5823"    16r0000 " invalid " 
                           "16r5824"    16r4469 " <CJK> " 
                           "16r5825"    16r0000 " invalid " 
                           "16r5826"    16r0000 " invalid " 
                           "16r5827"    16r0000 " invalid " 
                           "16r5828"    16r0000 " invalid " 
                           "16r5829"    16r0000 " invalid " 
                           "16r582A"    16r342E " <CJK> " 
                           "16r582B"    16r0000 " invalid " 
                           "16r582C"    16r0000 " invalid " 
                           "16r582D"    16r0000 " invalid " 
                           "16r582E"    16r0000 " invalid " 
                           "16r582F"    16r7421 " <CJK> " 
                           "16r5830"    16r3161 " <CJK> " 
                           "16r5831"    16r4A73 " <CJK> " 
                           "16r5832"    16r0000 " invalid " 
                           "16r5833"    16r0000 " invalid " 
                           "16r5834"    16r3E6C " <CJK> " 
                           "16r5835"    16r4548 " <CJK> " 
                           "16r5836"    16r0000 " invalid " 
                           "16r5837"    16r0000 " invalid " 
                           "16r5838"    16r0000 " invalid " 
                           "16r5839"    16r0000 " invalid " 
                           "16r583A"    16r3A66 " <CJK> " 
                           "16r583B"    16r0000 " invalid " 
                           "16r583C"    16r0000 " invalid " 
                           "16r583D"    16r544E " <CJK> " 
                           "16r583E"    16r0000 " invalid " 
                           "16r583F"    16r0000 " invalid " 
                           "16r5840"    16r4A3D " <CJK> " 
                           "16r5841"    16r4E5D " <CJK> " 
                           "16r5842"    16r0000 " invalid " 
                           "16r5843"    16r0000 " invalid " 
                           "16r5844"    16r0000 " invalid " 
                           "16r5845"    16r0000 " invalid " 
                           "16r5846"    16r0000 " invalid " 
                           "16r5847"    16r0000 " invalid " 
                           "16r5848"    16r0000 " invalid " 
                           "16r5849"    16r0000 " invalid " 
                           "16r584A"    16r3274 " <CJK> " 
                           "16r584B"    16r544A " <CJK> " 
                           "16r584C"    16r0000 " invalid " 
                           "16r584D"    16r0000 " invalid " 
                           "16r584E"    16r0000 " invalid " 
                           "16r584F"    16r0000 " invalid " 
                           "16r5850"    16r0000 " invalid " 
                           "16r5851"    16r413A " <CJK> " 
                           "16r5852"    16r544D " <CJK> " 
                           "16r5853"    16r0000 " invalid " 
                           "16r5854"    16r4563 " <CJK> " 
                           "16r5855"    16r0000 " invalid " 
                           "16r5856"    16r0000 " invalid " 
                           "16r5857"    16r4549 " <CJK> " 
                           "16r5858"    16r4564 " <CJK> " 
                           "16r5859"    16r4839 " <CJK> " 
                           "16r585A"    16r444D " <CJK> " 
                           "16r585B"    16r0000 " invalid " 
                           "16r585C"    16r0000 " invalid " 
                           "16r585D"    16r0000 " invalid " 
                           "16r585E"    16r3A49 " <CJK> " 
                           "16r585F"    16r0000 " invalid " 
                           "16r5860"    16r0000 " invalid " 
                           "16r5861"    16r0000 " invalid " 
                           "16r5862"    16r5449 " <CJK> " 
                           "16r5863"    16r0000 " invalid " 
                           "16r5864"    16r0000 " invalid " 
                           "16r5865"    16r0000 " invalid " 
                           "16r5866"    16r0000 " invalid " 
                           "16r5867"    16r0000 " invalid " 
                           "16r5868"    16r0000 " invalid " 
                           "16r5869"    16r3176 " <CJK> " 
                           "16r586A"    16r0000 " invalid " 
                           "16r586B"    16r4536 " <CJK> " 
                           "16r586C"    16r0000 " invalid " 
                           "16r586D"    16r0000 " invalid " 
                           "16r586E"    16r0000 " invalid " 
                           "16r586F"    16r0000 " invalid " 
                           "16r5870"    16r544B " <CJK> " 
                           "16r5871"    16r0000 " invalid " 
                           "16r5872"    16r5447 " <CJK> " 
                           "16r5873"    16r0000 " invalid " 
                           "16r5874"    16r0000 " invalid " 
                           "16r5875"    16r3F50 " <CJK> " 
                           "16r5876"    16r0000 " invalid " 
                           "16r5877"    16r0000 " invalid " 
                           "16r5878"    16r0000 " invalid " 
                           "16r5879"    16r544F " <CJK> " 
                           "16r587A"    16r0000 " invalid " 
                           "16r587B"    16r0000 " invalid " 
                           "16r587C"    16r0000 " invalid " 
                           "16r587D"    16r0000 " invalid " 
                           "16r587E"    16r3D4E " <CJK> " 
                           "16r587F"    16r0000 " invalid " 
                           "16r5880"    16r0000 " invalid " 
                           "16r5881"    16r0000 " invalid " 
                           "16r5882"    16r0000 " invalid " 
                           "16r5883"    16r362D " <CJK> " 
                           "16r5884"    16r0000 " invalid " 
                           "16r5885"    16r5450 " <CJK> " 
                           "16r5886"    16r0000 " invalid " 
                           "16r5887"    16r0000 " invalid " 
                           "16r5888"    16r0000 " invalid " 
                           "16r5889"    16r0000 " invalid " 
                           "16r588A"    16r0000 " invalid " 
                           "16r588B"    16r0000 " invalid " 
                           "16r588C"    16r0000 " invalid " 
                           "16r588D"    16r0000 " invalid " 
                           "16r588E"    16r0000 " invalid " 
                           "16r588F"    16r0000 " invalid " 
                           "16r5890"    16r0000 " invalid " 
                           "16r5891"    16r0000 " invalid " 
                           "16r5892"    16r0000 " invalid " 
                           "16r5893"    16r4A68 " <CJK> " 
                           "16r5894"    16r0000 " invalid " 
                           "16r5895"    16r0000 " invalid " 
                           "16r5896"    16r0000 " invalid " 
                           "16r5897"    16r417D " <CJK> " 
                           "16r5898"    16r0000 " invalid " 
                           "16r5899"    16r0000 " invalid " 
                           "16r589A"    16r0000 " invalid " 
                           "16r589B"    16r0000 " invalid " 
                           "16r589C"    16r4446 " <CJK> " 
                           "16r589D"    16r0000 " invalid " 
                           "16r589E"    16r0000 " invalid " 
                           "16r589F"    16r5452 " <CJK> " 
                           "16r58A0"    16r0000 " invalid " 
                           "16r58A1"    16r0000 " invalid " 
                           "16r58A2"    16r0000 " invalid " 
                           "16r58A3"    16r0000 " invalid " 
                           "16r58A4"    16r0000 " invalid " 
                           "16r58A5"    16r0000 " invalid " 
                           "16r58A6"    16r0000 " invalid " 
                           "16r58A7"    16r0000 " invalid " 
                           "16r58A8"    16r4B4F " <CJK> " 
                           "16r58A9"    16r0000 " invalid " 
                           "16r58AA"    16r0000 " invalid " 
                           "16r58AB"    16r5453 " <CJK> " 
                           "16r58AC"    16r0000 " invalid " 
                           "16r58AD"    16r0000 " invalid " 
                           "16r58AE"    16r5458 " <CJK> " 
                           "16r58AF"    16r0000 " invalid " 
                           "16r58B0"    16r0000 " invalid " 
                           "16r58B1"    16r0000 " invalid " 
                           "16r58B2"    16r0000 " invalid " 
                           "16r58B3"    16r4A2F " <CJK> " 
                           "16r58B4"    16r0000 " invalid " 
                           "16r58B5"    16r0000 " invalid " 
                           "16r58B6"    16r0000 " invalid " 
                           "16r58B7"    16r0000 " invalid " 
                           "16r58B8"    16r5457 " <CJK> " 
                           "16r58B9"    16r5451 " <CJK> " 
                           "16r58BA"    16r5454 " <CJK> " 
                           "16r58BB"    16r5456 " <CJK> " 
                           "16r58BC"    16r0000 " invalid " 
                           "16r58BD"    16r0000 " invalid " 
                           "16r58BE"    16r3A26 " <CJK> " 
                           "16r58BF"    16r0000 " invalid " 
                           "16r58C0"    16r0000 " invalid " 
                           "16r58C1"    16r4A49 " <CJK> " 
                           "16r58C2"    16r0000 " invalid " 
                           "16r58C3"    16r0000 " invalid " 
                           "16r58C4"    16r0000 " invalid " 
                           "16r58C5"    16r5459 " <CJK> " 
                           "16r58C6"    16r0000 " invalid " 
                           "16r58C7"    16r4345 " <CJK> " 
                           "16r58C8"    16r0000 " invalid " 
                           "16r58C9"    16r0000 " invalid " 
                           "16r58CA"    16r3275 " <CJK> " 
                           "16r58CB"    16r0000 " invalid " 
                           "16r58CC"    16r3E6D " <CJK> " 
                           "16r58CD"    16r0000 " invalid " 
                           "16r58CE"    16r0000 " invalid " 
                           "16r58CF"    16r0000 " invalid " 
                           "16r58D0"    16r0000 " invalid " 
                           "16r58D1"    16r545B " <CJK> " 
                           "16r58D2"    16r0000 " invalid " 
                           "16r58D3"    16r545A " <CJK> " 
                           "16r58D4"    16r0000 " invalid " 
                           "16r58D5"    16r3968 " <CJK> " 
                           "16r58D6"    16r0000 " invalid " 
                           "16r58D7"    16r545C " <CJK> " 
                           "16r58D8"    16r545E " <CJK> " 
                           "16r58D9"    16r545D " <CJK> " 
                           "16r58DA"    16r0000 " invalid " 
                           "16r58DB"    16r0000 " invalid " 
                           "16r58DC"    16r5460 " <CJK> " 
                           "16r58DD"    16r0000 " invalid " 
                           "16r58DE"    16r5455 " <CJK> " 
                           "16r58DF"    16r5462 " <CJK> " 
                           "16r58E0"    16r0000 " invalid " 
                           "16r58E1"    16r0000 " invalid " 
                           "16r58E2"    16r0000 " invalid " 
                           "16r58E3"    16r0000 " invalid " 
                           "16r58E4"    16r5461 " <CJK> " 
                           "16r58E5"    16r545F " <CJK> " 
                           "16r58E6"    16r0000 " invalid " 
                           "16r58E7"    16r0000 " invalid " 
                           "16r58E8"    16r0000 " invalid " 
                           "16r58E9"    16r0000 " invalid " 
                           "16r58EA"    16r0000 " invalid " 
                           "16r58EB"    16r3B4E " <CJK> " 
                           "16r58EC"    16r3F51 " <CJK> " 
                           "16r58ED"    16r0000 " invalid " 
                           "16r58EE"    16r4154 " <CJK> " 
                           "16r58EF"    16r5463 " <CJK> " 
                           "16r58F0"    16r403C " <CJK> " 
                           "16r58F1"    16r306D " <CJK> " 
                           "16r58F2"    16r4764 " <CJK> " 
                           "16r58F3"    16r0000 " invalid " 
                           "16r58F4"    16r0000 " invalid " 
                           "16r58F5"    16r0000 " invalid " 
                           "16r58F6"    16r0000 " invalid " 
                           "16r58F7"    16r445B " <CJK> " 
                           "16r58F8"    16r0000 " invalid " 
                           "16r58F9"    16r5465 " <CJK> " 
                           "16r58FA"    16r5464 " <CJK> " 
                           "16r58FB"    16r5466 " <CJK> " 
                           "16r58FC"    16r5467 " <CJK> " 
                           "16r58FD"    16r5468 " <CJK> " 
                           "16r58FE"    16r0000 " invalid " 
                           "16r58FF"    16r0000 " invalid " 
                           "16r5900"    16r0000 " invalid " 
                           "16r5901"    16r0000 " invalid " 
                           "16r5902"    16r5469 " <CJK> " 
                           "16r5903"    16r0000 " invalid " 
                           "16r5904"    16r0000 " invalid " 
                           "16r5905"    16r0000 " invalid " 
                           "16r5906"    16r0000 " invalid " 
                           "16r5907"    16r0000 " invalid " 
                           "16r5908"    16r0000 " invalid " 
                           "16r5909"    16r4A51 " <CJK> " 
                           "16r590A"    16r546A " <CJK> " 
                           "16r590B"    16r0000 " invalid " 
                           "16r590C"    16r0000 " invalid " 
                           "16r590D"    16r0000 " invalid " 
                           "16r590E"    16r0000 " invalid " 
                           "16r590F"    16r3246 " <CJK> " 
                           "16r5910"    16r546B " <CJK> " 
                           "16r5911"    16r0000 " invalid " 
                           "16r5912"    16r0000 " invalid " 
                           "16r5913"    16r0000 " invalid " 
                           "16r5914"    16r0000 " invalid " 
                           "16r5915"    16r4D3C " <CJK> " 
                           "16r5916"    16r3330 " <CJK> " 
                           "16r5917"    16r0000 " invalid " 
                           "16r5918"    16r5249 " <CJK> " 
                           "16r5919"    16r3D48 " <CJK> " 
                           "16r591A"    16r423F " <CJK> " 
                           "16r591B"    16r546C " <CJK> " 
                           "16r591C"    16r4C6B " <CJK> " 
                           "16r591D"    16r0000 " invalid " 
                           "16r591E"    16r0000 " invalid " 
                           "16r591F"    16r0000 " invalid " 
                           "16r5920"    16r0000 " invalid " 
                           "16r5921"    16r0000 " invalid " 
                           "16r5922"    16r4C34 " <CJK> " 
                           "16r5923"    16r0000 " invalid " 
                           "16r5924"    16r0000 " invalid " 
                           "16r5925"    16r546E " <CJK> " 
                           "16r5926"    16r0000 " invalid " 
                           "16r5927"    16r4267 " <CJK> " 
                           "16r5928"    16r0000 " invalid " 
                           "16r5929"    16r4537 " <CJK> " 
                           "16r592A"    16r4240 " <CJK> " 
                           "16r592B"    16r4957 " <CJK> " 
                           "16r592C"    16r546F " <CJK> " 
                           "16r592D"    16r5470 " <CJK> " 
                           "16r592E"    16r317B " <CJK> " 
                           "16r592F"    16r0000 " invalid " 
                           "16r5930"    16r0000 " invalid " 
                           "16r5931"    16r3C3A " <CJK> " 
                           "16r5932"    16r5471 " <CJK> " 
                           "16r5933"    16r0000 " invalid " 
                           "16r5934"    16r0000 " invalid " 
                           "16r5935"    16r0000 " invalid " 
                           "16r5936"    16r0000 " invalid " 
                           "16r5937"    16r3050 " <CJK> " 
                           "16r5938"    16r5472 " <CJK> " 
                           "16r5939"    16r0000 " invalid " 
                           "16r593A"    16r0000 " invalid " 
                           "16r593B"    16r0000 " invalid " 
                           "16r593C"    16r0000 " invalid " 
                           "16r593D"    16r0000 " invalid " 
                           "16r593E"    16r5473 " <CJK> " 
                           "16r593F"    16r0000 " invalid " 
                           "16r5940"    16r0000 " invalid " 
                           "16r5941"    16r0000 " invalid " 
                           "16r5942"    16r0000 " invalid " 
                           "16r5943"    16r0000 " invalid " 
                           "16r5944"    16r3162 " <CJK> " 
                           "16r5945"    16r0000 " invalid " 
                           "16r5946"    16r0000 " invalid " 
                           "16r5947"    16r3471 " <CJK> " 
                           "16r5948"    16r4660 " <CJK> " 
                           "16r5949"    16r4A74 " <CJK> " 
                           "16r594A"    16r0000 " invalid " 
                           "16r594B"    16r0000 " invalid " 
                           "16r594C"    16r0000 " invalid " 
                           "16r594D"    16r0000 " invalid " 
                           "16r594E"    16r5477 " <CJK> " 
                           "16r594F"    16r4155 " <CJK> " 
                           "16r5950"    16r5476 " <CJK> " 
                           "16r5951"    16r3740 " <CJK> " 
                           "16r5952"    16r0000 " invalid " 
                           "16r5953"    16r0000 " invalid " 
                           "16r5954"    16r4B5B " <CJK> " 
                           "16r5955"    16r5475 " <CJK> " 
                           "16r5956"    16r0000 " invalid " 
                           "16r5957"    16r4565 " <CJK> " 
                           "16r5958"    16r5479 " <CJK> " 
                           "16r5959"    16r0000 " invalid " 
                           "16r595A"    16r5478 " <CJK> " 
                           "16r595B"    16r0000 " invalid " 
                           "16r595C"    16r0000 " invalid " 
                           "16r595D"    16r0000 " invalid " 
                           "16r595E"    16r0000 " invalid " 
                           "16r595F"    16r0000 " invalid " 
                           "16r5960"    16r547B " <CJK> " 
                           "16r5961"    16r0000 " invalid " 
                           "16r5962"    16r547A " <CJK> " 
                           "16r5963"    16r0000 " invalid " 
                           "16r5964"    16r0000 " invalid " 
                           "16r5965"    16r317C " <CJK> " 
                           "16r5966"    16r0000 " invalid " 
                           "16r5967"    16r547C " <CJK> " 
                           "16r5968"    16r3E29 " <CJK> " 
                           "16r5969"    16r547E " <CJK> " 
                           "16r596A"    16r4325 " <CJK> " 
                           "16r596B"    16r0000 " invalid " 
                           "16r596C"    16r547D " <CJK> " 
                           "16r596D"    16r0000 " invalid " 
                           "16r596E"    16r4A33 " <CJK> " 
                           "16r596F"    16r0000 " invalid " 
                           "16r5970"    16r0000 " invalid " 
                           "16r5971"    16r0000 " invalid " 
                           "16r5972"    16r0000 " invalid " 
                           "16r5973"    16r3D77 " <CJK> " 
                           "16r5974"    16r455B " <CJK> " 
                           "16r5975"    16r0000 " invalid " 
                           "16r5976"    16r0000 " invalid " 
                           "16r5977"    16r0000 " invalid " 
                           "16r5978"    16r5521 " <CJK> " 
                           "16r5979"    16r0000 " invalid " 
                           "16r597A"    16r0000 " invalid " 
                           "16r597B"    16r0000 " invalid " 
                           "16r597C"    16r0000 " invalid " 
                           "16r597D"    16r3925 " <CJK> " 
                           "16r597E"    16r0000 " invalid " 
                           "16r597F"    16r0000 " invalid " 
                           "16r5980"    16r0000 " invalid " 
                           "16r5981"    16r5522 " <CJK> " 
                           "16r5982"    16r4721 " <CJK> " 
                           "16r5983"    16r485E " <CJK> " 
                           "16r5984"    16r4C51 " <CJK> " 
                           "16r5985"    16r0000 " invalid " 
                           "16r5986"    16r0000 " invalid " 
                           "16r5987"    16r0000 " invalid " 
                           "16r5988"    16r0000 " invalid " 
                           "16r5989"    16r0000 " invalid " 
                           "16r598A"    16r4725 " <CJK> " 
                           "16r598B"    16r0000 " invalid " 
                           "16r598C"    16r0000 " invalid " 
                           "16r598D"    16r552B " <CJK> " 
                           "16r598E"    16r0000 " invalid " 
                           "16r598F"    16r0000 " invalid " 
                           "16r5990"    16r0000 " invalid " 
                           "16r5991"    16r0000 " invalid " 
                           "16r5992"    16r0000 " invalid " 
                           "16r5993"    16r3538 " <CJK> " 
                           "16r5994"    16r0000 " invalid " 
                           "16r5995"    16r0000 " invalid " 
                           "16r5996"    16r4D45 " <CJK> " 
                           "16r5997"    16r0000 " invalid " 
                           "16r5998"    16r0000 " invalid " 
                           "16r5999"    16r4C2F " <CJK> " 
                           "16r599A"    16r0000 " invalid " 
                           "16r599B"    16r562C " <CJK> " 
                           "16r599C"    16r0000 " invalid " 
                           "16r599D"    16r5523 " <CJK> " 
                           "16r599E"    16r0000 " invalid " 
                           "16r599F"    16r0000 " invalid " 
                           "16r59A0"    16r0000 " invalid " 
                           "16r59A1"    16r0000 " invalid " 
                           "16r59A2"    16r0000 " invalid " 
                           "16r59A3"    16r5526 " <CJK> " 
                           "16r59A4"    16r0000 " invalid " 
                           "16r59A5"    16r4245 " <CJK> " 
                           "16r59A6"    16r0000 " invalid " 
                           "16r59A7"    16r0000 " invalid " 
                           "16r59A8"    16r4B38 " <CJK> " 
                           "16r59A9"    16r0000 " invalid " 
                           "16r59AA"    16r0000 " invalid " 
                           "16r59AB"    16r0000 " invalid " 
                           "16r59AC"    16r454A " <CJK> " 
                           "16r59AD"    16r0000 " invalid " 
                           "16r59AE"    16r0000 " invalid " 
                           "16r59AF"    16r0000 " invalid " 
                           "16r59B0"    16r0000 " invalid " 
                           "16r59B1"    16r0000 " invalid " 
                           "16r59B2"    16r5527 " <CJK> " 
                           "16r59B3"    16r0000 " invalid " 
                           "16r59B4"    16r0000 " invalid " 
                           "16r59B5"    16r0000 " invalid " 
                           "16r59B6"    16r0000 " invalid " 
                           "16r59B7"    16r0000 " invalid " 
                           "16r59B8"    16r0000 " invalid " 
                           "16r59B9"    16r4B65 " <CJK> " 
                           "16r59BA"    16r0000 " invalid " 
                           "16r59BB"    16r3A4A " <CJK> " 
                           "16r59BC"    16r0000 " invalid " 
                           "16r59BD"    16r0000 " invalid " 
                           "16r59BE"    16r3E2A " <CJK> " 
                           "16r59BF"    16r0000 " invalid " 
                           "16r59C0"    16r0000 " invalid " 
                           "16r59C1"    16r0000 " invalid " 
                           "16r59C2"    16r0000 " invalid " 
                           "16r59C3"    16r0000 " invalid " 
                           "16r59C4"    16r0000 " invalid " 
                           "16r59C5"    16r0000 " invalid " 
                           "16r59C6"    16r5528 " <CJK> " 
                           "16r59C7"    16r0000 " invalid " 
                           "16r59C8"    16r0000 " invalid " 
                           "16r59C9"    16r3B50 " <CJK> " 
                           "16r59CA"    16r0000 " invalid " 
                           "16r59CB"    16r3B4F " <CJK> " 
                           "16r59CC"    16r0000 " invalid " 
                           "16r59CD"    16r0000 " invalid " 
                           "16r59CE"    16r0000 " invalid " 
                           "16r59CF"    16r0000 " invalid " 
                           "16r59D0"    16r3039 " <CJK> " 
                           "16r59D1"    16r3848 " <CJK> " 
                           "16r59D2"    16r0000 " invalid " 
                           "16r59D3"    16r402B " <CJK> " 
                           "16r59D4"    16r3051 " <CJK> " 
                           "16r59D5"    16r0000 " invalid " 
                           "16r59D6"    16r0000 " invalid " 
                           "16r59D7"    16r0000 " invalid " 
                           "16r59D8"    16r0000 " invalid " 
                           "16r59D9"    16r552C " <CJK> " 
                           "16r59DA"    16r552D " <CJK> " 
                           "16r59DB"    16r0000 " invalid " 
                           "16r59DC"    16r552A " <CJK> " 
                           "16r59DD"    16r0000 " invalid " 
                           "16r59DE"    16r0000 " invalid " 
                           "16r59DF"    16r0000 " invalid " 
                           "16r59E0"    16r0000 " invalid " 
                           "16r59E1"    16r0000 " invalid " 
                           "16r59E2"    16r0000 " invalid " 
                           "16r59E3"    16r0000 " invalid " 
                           "16r59E4"    16r0000 " invalid " 
                           "16r59E5"    16r3138 " <CJK> " 
                           "16r59E6"    16r342F " <CJK> " 
                           "16r59E7"    16r0000 " invalid " 
                           "16r59E8"    16r5529 " <CJK> " 
                           "16r59E9"    16r0000 " invalid " 
                           "16r59EA"    16r4C45 " <CJK> " 
                           "16r59EB"    16r4931 " <CJK> " 
                           "16r59EC"    16r0000 " invalid " 
                           "16r59ED"    16r0000 " invalid " 
                           "16r59EE"    16r0000 " invalid " 
                           "16r59EF"    16r0000 " invalid " 
                           "16r59F0"    16r0000 " invalid " 
                           "16r59F1"    16r0000 " invalid " 
                           "16r59F2"    16r0000 " invalid " 
                           "16r59F3"    16r0000 " invalid " 
                           "16r59F4"    16r0000 " invalid " 
                           "16r59F5"    16r0000 " invalid " 
                           "16r59F6"    16r3028 " <CJK> " 
                           "16r59F7"    16r0000 " invalid " 
                           "16r59F8"    16r0000 " invalid " 
                           "16r59F9"    16r0000 " invalid " 
                           "16r59FA"    16r0000 " invalid " 
                           "16r59FB"    16r3079 " <CJK> " 
                           "16r59FC"    16r0000 " invalid " 
                           "16r59FD"    16r0000 " invalid " 
                           "16r59FE"    16r0000 " invalid " 
                           "16r59FF"    16r3B51 " <CJK> " 
                           "16r5A00"    16r0000 " invalid " 
                           "16r5A01"    16r3052 " <CJK> " 
                           "16r5A02"    16r0000 " invalid " 
                           "16r5A03"    16r3023 " <CJK> " 
                           "16r5A04"    16r0000 " invalid " 
                           "16r5A05"    16r0000 " invalid " 
                           "16r5A06"    16r0000 " invalid " 
                           "16r5A07"    16r0000 " invalid " 
                           "16r5A08"    16r0000 " invalid " 
                           "16r5A09"    16r5532 " <CJK> " 
                           "16r5A0A"    16r0000 " invalid " 
                           "16r5A0B"    16r0000 " invalid " 
                           "16r5A0C"    16r0000 " invalid " 
                           "16r5A0D"    16r0000 " invalid " 
                           "16r5A0E"    16r0000 " invalid " 
                           "16r5A0F"    16r0000 " invalid " 
                           "16r5A10"    16r0000 " invalid " 
                           "16r5A11"    16r5530 " <CJK> " 
                           "16r5A12"    16r0000 " invalid " 
                           "16r5A13"    16r0000 " invalid " 
                           "16r5A14"    16r0000 " invalid " 
                           "16r5A15"    16r0000 " invalid " 
                           "16r5A16"    16r0000 " invalid " 
                           "16r5A17"    16r0000 " invalid " 
                           "16r5A18"    16r4C3C " <CJK> " 
                           "16r5A19"    16r0000 " invalid " 
                           "16r5A1A"    16r5533 " <CJK> " 
                           "16r5A1B"    16r0000 " invalid " 
                           "16r5A1C"    16r5531 " <CJK> " 
                           "16r5A1D"    16r0000 " invalid " 
                           "16r5A1E"    16r0000 " invalid " 
                           "16r5A1F"    16r552F " <CJK> " 
                           "16r5A20"    16r3F31 " <CJK> " 
                           "16r5A21"    16r0000 " invalid " 
                           "16r5A22"    16r0000 " invalid " 
                           "16r5A23"    16r0000 " invalid " 
                           "16r5A24"    16r0000 " invalid " 
                           "16r5A25"    16r552E " <CJK> " 
                           "16r5A26"    16r0000 " invalid " 
                           "16r5A27"    16r0000 " invalid " 
                           "16r5A28"    16r0000 " invalid " 
                           "16r5A29"    16r4A5A " <CJK> " 
                           "16r5A2A"    16r0000 " invalid " 
                           "16r5A2B"    16r0000 " invalid " 
                           "16r5A2C"    16r0000 " invalid " 
                           "16r5A2D"    16r0000 " invalid " 
                           "16r5A2E"    16r0000 " invalid " 
                           "16r5A2F"    16r3864 " <CJK> " 
                           "16r5A30"    16r0000 " invalid " 
                           "16r5A31"    16r0000 " invalid " 
                           "16r5A32"    16r0000 " invalid " 
                           "16r5A33"    16r0000 " invalid " 
                           "16r5A34"    16r0000 " invalid " 
                           "16r5A35"    16r5537 " <CJK> " 
                           "16r5A36"    16r5538 " <CJK> " 
                           "16r5A37"    16r0000 " invalid " 
                           "16r5A38"    16r0000 " invalid " 
                           "16r5A39"    16r0000 " invalid " 
                           "16r5A3A"    16r0000 " invalid " 
                           "16r5A3B"    16r0000 " invalid " 
                           "16r5A3C"    16r3E2B " <CJK> " 
                           "16r5A3D"    16r0000 " invalid " 
                           "16r5A3E"    16r0000 " invalid " 
                           "16r5A3F"    16r0000 " invalid " 
                           "16r5A40"    16r5534 " <CJK> " 
                           "16r5A41"    16r4F2C " <CJK> " 
                           "16r5A42"    16r0000 " invalid " 
                           "16r5A43"    16r0000 " invalid " 
                           "16r5A44"    16r0000 " invalid " 
                           "16r5A45"    16r0000 " invalid " 
                           "16r5A46"    16r474C " <CJK> " 
                           "16r5A47"    16r0000 " invalid " 
                           "16r5A48"    16r0000 " invalid " 
                           "16r5A49"    16r5536 " <CJK> " 
                           "16r5A4A"    16r0000 " invalid " 
                           "16r5A4B"    16r0000 " invalid " 
                           "16r5A4C"    16r0000 " invalid " 
                           "16r5A4D"    16r0000 " invalid " 
                           "16r5A4E"    16r0000 " invalid " 
                           "16r5A4F"    16r0000 " invalid " 
                           "16r5A50"    16r0000 " invalid " 
                           "16r5A51"    16r0000 " invalid " 
                           "16r5A52"    16r0000 " invalid " 
                           "16r5A53"    16r0000 " invalid " 
                           "16r5A54"    16r0000 " invalid " 
                           "16r5A55"    16r0000 " invalid " 
                           "16r5A56"    16r0000 " invalid " 
                           "16r5A57"    16r0000 " invalid " 
                           "16r5A58"    16r0000 " invalid " 
                           "16r5A59"    16r0000 " invalid " 
                           "16r5A5A"    16r3A27 " <CJK> " 
                           "16r5A5B"    16r0000 " invalid " 
                           "16r5A5C"    16r0000 " invalid " 
                           "16r5A5D"    16r0000 " invalid " 
                           "16r5A5E"    16r0000 " invalid " 
                           "16r5A5F"    16r0000 " invalid " 
                           "16r5A60"    16r0000 " invalid " 
                           "16r5A61"    16r0000 " invalid " 
                           "16r5A62"    16r5539 " <CJK> " 
                           "16r5A63"    16r0000 " invalid " 
                           "16r5A64"    16r0000 " invalid " 
                           "16r5A65"    16r0000 " invalid " 
                           "16r5A66"    16r4958 " <CJK> " 
                           "16r5A67"    16r0000 " invalid " 
                           "16r5A68"    16r0000 " invalid " 
                           "16r5A69"    16r0000 " invalid " 
                           "16r5A6A"    16r553A " <CJK> " 
                           "16r5A6B"    16r0000 " invalid " 
                           "16r5A6C"    16r5535 " <CJK> " 
                           "16r5A6D"    16r0000 " invalid " 
                           "16r5A6E"    16r0000 " invalid " 
                           "16r5A6F"    16r0000 " invalid " 
                           "16r5A70"    16r0000 " invalid " 
                           "16r5A71"    16r0000 " invalid " 
                           "16r5A72"    16r0000 " invalid " 
                           "16r5A73"    16r0000 " invalid " 
                           "16r5A74"    16r0000 " invalid " 
                           "16r5A75"    16r0000 " invalid " 
                           "16r5A76"    16r0000 " invalid " 
                           "16r5A77"    16r0000 " invalid " 
                           "16r5A78"    16r0000 " invalid " 
                           "16r5A79"    16r0000 " invalid " 
                           "16r5A7A"    16r0000 " invalid " 
                           "16r5A7B"    16r0000 " invalid " 
                           "16r5A7C"    16r0000 " invalid " 
                           "16r5A7D"    16r0000 " invalid " 
                           "16r5A7E"    16r0000 " invalid " 
                           "16r5A7F"    16r4C3B " <CJK> " 
                           "16r5A80"    16r0000 " invalid " 
                           "16r5A81"    16r0000 " invalid " 
                           "16r5A82"    16r0000 " invalid " 
                           "16r5A83"    16r0000 " invalid " 
                           "16r5A84"    16r0000 " invalid " 
                           "16r5A85"    16r0000 " invalid " 
                           "16r5A86"    16r0000 " invalid " 
                           "16r5A87"    16r0000 " invalid " 
                           "16r5A88"    16r0000 " invalid " 
                           "16r5A89"    16r0000 " invalid " 
                           "16r5A8A"    16r0000 " invalid " 
                           "16r5A8B"    16r0000 " invalid " 
                           "16r5A8C"    16r0000 " invalid " 
                           "16r5A8D"    16r0000 " invalid " 
                           "16r5A8E"    16r0000 " invalid " 
                           "16r5A8F"    16r0000 " invalid " 
                           "16r5A90"    16r0000 " invalid " 
                           "16r5A91"    16r0000 " invalid " 
                           "16r5A92"    16r475E " <CJK> " 
                           "16r5A93"    16r0000 " invalid " 
                           "16r5A94"    16r0000 " invalid " 
                           "16r5A95"    16r0000 " invalid " 
                           "16r5A96"    16r0000 " invalid " 
                           "16r5A97"    16r0000 " invalid " 
                           "16r5A98"    16r0000 " invalid " 
                           "16r5A99"    16r0000 " invalid " 
                           "16r5A9A"    16r553B " <CJK> " 
                           "16r5A9B"    16r4932 " <CJK> " 
                           "16r5A9C"    16r0000 " invalid " 
                           "16r5A9D"    16r0000 " invalid " 
                           "16r5A9E"    16r0000 " invalid " 
                           "16r5A9F"    16r0000 " invalid " 
                           "16r5AA0"    16r0000 " invalid " 
                           "16r5AA1"    16r0000 " invalid " 
                           "16r5AA2"    16r0000 " invalid " 
                           "16r5AA3"    16r0000 " invalid " 
                           "16r5AA4"    16r0000 " invalid " 
                           "16r5AA5"    16r0000 " invalid " 
                           "16r5AA6"    16r0000 " invalid " 
                           "16r5AA7"    16r0000 " invalid " 
                           "16r5AA8"    16r0000 " invalid " 
                           "16r5AA9"    16r0000 " invalid " 
                           "16r5AAA"    16r0000 " invalid " 
                           "16r5AAB"    16r0000 " invalid " 
                           "16r5AAC"    16r0000 " invalid " 
                           "16r5AAD"    16r0000 " invalid " 
                           "16r5AAE"    16r0000 " invalid " 
                           "16r5AAF"    16r0000 " invalid " 
                           "16r5AB0"    16r0000 " invalid " 
                           "16r5AB1"    16r0000 " invalid " 
                           "16r5AB2"    16r0000 " invalid " 
                           "16r5AB3"    16r0000 " invalid " 
                           "16r5AB4"    16r0000 " invalid " 
                           "16r5AB5"    16r0000 " invalid " 
                           "16r5AB6"    16r0000 " invalid " 
                           "16r5AB7"    16r0000 " invalid " 
                           "16r5AB8"    16r0000 " invalid " 
                           "16r5AB9"    16r0000 " invalid " 
                           "16r5ABA"    16r0000 " invalid " 
                           "16r5ABB"    16r0000 " invalid " 
                           "16r5ABC"    16r553C " <CJK> " 
                           "16r5ABD"    16r5540 " <CJK> " 
                           "16r5ABE"    16r553D " <CJK> " 
                           "16r5ABF"    16r0000 " invalid " 
                           "16r5AC0"    16r0000 " invalid " 
                           "16r5AC1"    16r3247 " <CJK> " 
                           "16r5AC2"    16r553F " <CJK> " 
                           "16r5AC3"    16r0000 " invalid " 
                           "16r5AC4"    16r0000 " invalid " 
                           "16r5AC5"    16r0000 " invalid " 
                           "16r5AC6"    16r0000 " invalid " 
                           "16r5AC7"    16r0000 " invalid " 
                           "16r5AC8"    16r0000 " invalid " 
                           "16r5AC9"    16r3C3B " <CJK> " 
                           "16r5ACA"    16r0000 " invalid " 
                           "16r5ACB"    16r553E " <CJK> " 
                           "16r5ACC"    16r3779 " <CJK> " 
                           "16r5ACD"    16r0000 " invalid " 
                           "16r5ACE"    16r0000 " invalid " 
                           "16r5ACF"    16r0000 " invalid " 
                           "16r5AD0"    16r554C " <CJK> " 
                           "16r5AD1"    16r0000 " invalid " 
                           "16r5AD2"    16r0000 " invalid " 
                           "16r5AD3"    16r0000 " invalid " 
                           "16r5AD4"    16r0000 " invalid " 
                           "16r5AD5"    16r0000 " invalid " 
                           "16r5AD6"    16r5545 " <CJK> " 
                           "16r5AD7"    16r5542 " <CJK> " 
                           "16r5AD8"    16r0000 " invalid " 
                           "16r5AD9"    16r0000 " invalid " 
                           "16r5ADA"    16r0000 " invalid " 
                           "16r5ADB"    16r0000 " invalid " 
                           "16r5ADC"    16r0000 " invalid " 
                           "16r5ADD"    16r0000 " invalid " 
                           "16r5ADE"    16r0000 " invalid " 
                           "16r5ADF"    16r0000 " invalid " 
                           "16r5AE0"    16r0000 " invalid " 
                           "16r5AE1"    16r4364 " <CJK> " 
                           "16r5AE2"    16r0000 " invalid " 
                           "16r5AE3"    16r5541 " <CJK> " 
                           "16r5AE4"    16r0000 " invalid " 
                           "16r5AE5"    16r0000 " invalid " 
                           "16r5AE6"    16r5543 " <CJK> " 
                           "16r5AE7"    16r0000 " invalid " 
                           "16r5AE8"    16r0000 " invalid " 
                           "16r5AE9"    16r5544 " <CJK> " 
                           "16r5AEA"    16r0000 " invalid " 
                           "16r5AEB"    16r0000 " invalid " 
                           "16r5AEC"    16r0000 " invalid " 
                           "16r5AED"    16r0000 " invalid " 
                           "16r5AEE"    16r0000 " invalid " 
                           "16r5AEF"    16r0000 " invalid " 
                           "16r5AF0"    16r0000 " invalid " 
                           "16r5AF1"    16r0000 " invalid " 
                           "16r5AF2"    16r0000 " invalid " 
                           "16r5AF3"    16r0000 " invalid " 
                           "16r5AF4"    16r0000 " invalid " 
                           "16r5AF5"    16r0000 " invalid " 
                           "16r5AF6"    16r0000 " invalid " 
                           "16r5AF7"    16r0000 " invalid " 
                           "16r5AF8"    16r0000 " invalid " 
                           "16r5AF9"    16r0000 " invalid " 
                           "16r5AFA"    16r5546 " <CJK> " 
                           "16r5AFB"    16r5547 " <CJK> " 
                           "16r5AFC"    16r0000 " invalid " 
                           "16r5AFD"    16r0000 " invalid " 
                           "16r5AFE"    16r0000 " invalid " 
                           "16r5AFF"    16r0000 " invalid " 
                           "16r5B00"    16r0000 " invalid " 
                           "16r5B01"    16r0000 " invalid " 
                           "16r5B02"    16r0000 " invalid " 
                           "16r5B03"    16r0000 " invalid " 
                           "16r5B04"    16r0000 " invalid " 
                           "16r5B05"    16r0000 " invalid " 
                           "16r5B06"    16r0000 " invalid " 
                           "16r5B07"    16r0000 " invalid " 
                           "16r5B08"    16r0000 " invalid " 
                           "16r5B09"    16r3472 " <CJK> " 
                           "16r5B0A"    16r0000 " invalid " 
                           "16r5B0B"    16r5549 " <CJK> " 
                           "16r5B0C"    16r5548 " <CJK> " 
                           "16r5B0D"    16r0000 " invalid " 
                           "16r5B0E"    16r0000 " invalid " 
                           "16r5B0F"    16r0000 " invalid " 
                           "16r5B10"    16r0000 " invalid " 
                           "16r5B11"    16r0000 " invalid " 
                           "16r5B12"    16r0000 " invalid " 
                           "16r5B13"    16r0000 " invalid " 
                           "16r5B14"    16r0000 " invalid " 
                           "16r5B15"    16r0000 " invalid " 
                           "16r5B16"    16r554A " <CJK> " 
                           "16r5B17"    16r0000 " invalid " 
                           "16r5B18"    16r0000 " invalid " 
                           "16r5B19"    16r0000 " invalid " 
                           "16r5B1A"    16r0000 " invalid " 
                           "16r5B1B"    16r0000 " invalid " 
                           "16r5B1C"    16r0000 " invalid " 
                           "16r5B1D"    16r0000 " invalid " 
                           "16r5B1E"    16r0000 " invalid " 
                           "16r5B1F"    16r0000 " invalid " 
                           "16r5B20"    16r0000 " invalid " 
                           "16r5B21"    16r0000 " invalid " 
                           "16r5B22"    16r3E6E " <CJK> " 
                           "16r5B23"    16r0000 " invalid " 
                           "16r5B24"    16r0000 " invalid " 
                           "16r5B25"    16r0000 " invalid " 
                           "16r5B26"    16r0000 " invalid " 
                           "16r5B27"    16r0000 " invalid " 
                           "16r5B28"    16r0000 " invalid " 
                           "16r5B29"    16r0000 " invalid " 
                           "16r5B2A"    16r554D " <CJK> " 
                           "16r5B2B"    16r0000 " invalid " 
                           "16r5B2C"    16r445C " <CJK> " 
                           "16r5B2D"    16r0000 " invalid " 
                           "16r5B2E"    16r0000 " invalid " 
                           "16r5B2F"    16r0000 " invalid " 
                           "16r5B30"    16r3145 " <CJK> " 
                           "16r5B31"    16r0000 " invalid " 
                           "16r5B32"    16r554B " <CJK> " 
                           "16r5B33"    16r0000 " invalid " 
                           "16r5B34"    16r0000 " invalid " 
                           "16r5B35"    16r0000 " invalid " 
                           "16r5B36"    16r554E " <CJK> " 
                           "16r5B37"    16r0000 " invalid " 
                           "16r5B38"    16r0000 " invalid " 
                           "16r5B39"    16r0000 " invalid " 
                           "16r5B3A"    16r0000 " invalid " 
                           "16r5B3B"    16r0000 " invalid " 
                           "16r5B3C"    16r0000 " invalid " 
                           "16r5B3D"    16r0000 " invalid " 
                           "16r5B3E"    16r554F " <CJK> " 
                           "16r5B3F"    16r0000 " invalid " 
                           "16r5B40"    16r5552 " <CJK> " 
                           "16r5B41"    16r0000 " invalid " 
                           "16r5B42"    16r0000 " invalid " 
                           "16r5B43"    16r5550 " <CJK> " 
                           "16r5B44"    16r0000 " invalid " 
                           "16r5B45"    16r5551 " <CJK> " 
                           "16r5B46"    16r0000 " invalid " 
                           "16r5B47"    16r0000 " invalid " 
                           "16r5B48"    16r0000 " invalid " 
                           "16r5B49"    16r0000 " invalid " 
                           "16r5B4A"    16r0000 " invalid " 
                           "16r5B4B"    16r0000 " invalid " 
                           "16r5B4C"    16r0000 " invalid " 
                           "16r5B4D"    16r0000 " invalid " 
                           "16r5B4E"    16r0000 " invalid " 
                           "16r5B4F"    16r0000 " invalid " 
                           "16r5B50"    16r3B52 " <CJK> " 
                           "16r5B51"    16r5553 " <CJK> " 
                           "16r5B52"    16r0000 " invalid " 
                           "16r5B53"    16r0000 " invalid " 
                           "16r5B54"    16r3926 " <CJK> " 
                           "16r5B55"    16r5554 " <CJK> " 
                           "16r5B56"    16r0000 " invalid " 
                           "16r5B57"    16r3B7A " <CJK> " 
                           "16r5B58"    16r4238 " <CJK> " 
                           "16r5B59"    16r0000 " invalid " 
                           "16r5B5A"    16r5555 " <CJK> " 
                           "16r5B5B"    16r5556 " <CJK> " 
                           "16r5B5C"    16r3B5A " <CJK> " 
                           "16r5B5D"    16r3927 " <CJK> " 
                           "16r5B5E"    16r0000 " invalid " 
                           "16r5B5F"    16r4C52 " <CJK> " 
                           "16r5B60"    16r0000 " invalid " 
                           "16r5B61"    16r0000 " invalid " 
                           "16r5B62"    16r0000 " invalid " 
                           "16r5B63"    16r3528 " <CJK> " 
                           "16r5B64"    16r3849 " <CJK> " 
                           "16r5B65"    16r5557 " <CJK> " 
                           "16r5B66"    16r3358 " <CJK> " 
                           "16r5B67"    16r0000 " invalid " 
                           "16r5B68"    16r0000 " invalid " 
                           "16r5B69"    16r5558 " <CJK> " 
                           "16r5B6A"    16r0000 " invalid " 
                           "16r5B6B"    16r4239 " <CJK> " 
                           "16r5B6C"    16r0000 " invalid " 
                           "16r5B6D"    16r0000 " invalid " 
                           "16r5B6E"    16r0000 " invalid " 
                           "16r5B6F"    16r0000 " invalid " 
                           "16r5B70"    16r5559 " <CJK> " 
                           "16r5B71"    16r5623 " <CJK> " 
                           "16r5B72"    16r0000 " invalid " 
                           "16r5B73"    16r555A " <CJK> " 
                           "16r5B74"    16r0000 " invalid " 
                           "16r5B75"    16r555B " <CJK> " 
                           "16r5B76"    16r0000 " invalid " 
                           "16r5B77"    16r0000 " invalid " 
                           "16r5B78"    16r555C " <CJK> " 
                           "16r5B79"    16r0000 " invalid " 
                           "16r5B7A"    16r555E " <CJK> " 
                           "16r5B7B"    16r0000 " invalid " 
                           "16r5B7C"    16r0000 " invalid " 
                           "16r5B7D"    16r0000 " invalid " 
                           "16r5B7E"    16r0000 " invalid " 
                           "16r5B7F"    16r0000 " invalid " 
                           "16r5B80"    16r555F " <CJK> " 
                           "16r5B81"    16r0000 " invalid " 
                           "16r5B82"    16r0000 " invalid " 
                           "16r5B83"    16r5560 " <CJK> " 
                           "16r5B84"    16r0000 " invalid " 
                           "16r5B85"    16r4270 " <CJK> " 
                           "16r5B86"    16r0000 " invalid " 
                           "16r5B87"    16r3127 " <CJK> " 
                           "16r5B88"    16r3C69 " <CJK> " 
                           "16r5B89"    16r3042 " <CJK> " 
                           "16r5B8A"    16r0000 " invalid " 
                           "16r5B8B"    16r4157 " <CJK> " 
                           "16r5B8C"    16r3430 " <CJK> " 
                           "16r5B8D"    16r3C35 " <CJK> " 
                           "16r5B8E"    16r0000 " invalid " 
                           "16r5B8F"    16r3928 " <CJK> " 
                           "16r5B90"    16r0000 " invalid " 
                           "16r5B91"    16r0000 " invalid " 
                           "16r5B92"    16r0000 " invalid " 
                           "16r5B93"    16r0000 " invalid " 
                           "16r5B94"    16r0000 " invalid " 
                           "16r5B95"    16r4566 " <CJK> " 
                           "16r5B96"    16r0000 " invalid " 
                           "16r5B97"    16r3D21 " <CJK> " 
                           "16r5B98"    16r3431 " <CJK> " 
                           "16r5B99"    16r4368 " <CJK> " 
                           "16r5B9A"    16r446A " <CJK> " 
                           "16r5B9B"    16r3038 " <CJK> " 
                           "16r5B9C"    16r3539 " <CJK> " 
                           "16r5B9D"    16r4A75 " <CJK> " 
                           "16r5B9E"    16r0000 " invalid " 
                           "16r5B9F"    16r3C42 " <CJK> " 
                           "16r5BA0"    16r0000 " invalid " 
                           "16r5BA1"    16r0000 " invalid " 
                           "16r5BA2"    16r3552 " <CJK> " 
                           "16r5BA3"    16r406B " <CJK> " 
                           "16r5BA4"    16r3C3C " <CJK> " 
                           "16r5BA5"    16r4D28 " <CJK> " 
                           "16r5BA6"    16r5561 " <CJK> " 
                           "16r5BA7"    16r0000 " invalid " 
                           "16r5BA8"    16r0000 " invalid " 
                           "16r5BA9"    16r0000 " invalid " 
                           "16r5BAA"    16r0000 " invalid " 
                           "16r5BAB"    16r0000 " invalid " 
                           "16r5BAC"    16r0000 " invalid " 
                           "16r5BAD"    16r0000 " invalid " 
                           "16r5BAE"    16r355C " <CJK> " 
                           "16r5BAF"    16r0000 " invalid " 
                           "16r5BB0"    16r3A4B " <CJK> " 
                           "16r5BB1"    16r0000 " invalid " 
                           "16r5BB2"    16r0000 " invalid " 
                           "16r5BB3"    16r3332 " <CJK> " 
                           "16r5BB4"    16r3163 " <CJK> " 
                           "16r5BB5"    16r3E2C " <CJK> " 
                           "16r5BB6"    16r3248 " <CJK> " 
                           "16r5BB7"    16r0000 " invalid " 
                           "16r5BB8"    16r5562 " <CJK> " 
                           "16r5BB9"    16r4D46 " <CJK> " 
                           "16r5BBA"    16r0000 " invalid " 
                           "16r5BBB"    16r0000 " invalid " 
                           "16r5BBC"    16r0000 " invalid " 
                           "16r5BBD"    16r0000 " invalid " 
                           "16r5BBE"    16r0000 " invalid " 
                           "16r5BBF"    16r3D49 " <CJK> " 
                           "16r5BC0"    16r0000 " invalid " 
                           "16r5BC1"    16r0000 " invalid " 
                           "16r5BC2"    16r3C64 " <CJK> " 
                           "16r5BC3"    16r5563 " <CJK> " 
                           "16r5BC4"    16r3473 " <CJK> " 
                           "16r5BC5"    16r4652 " <CJK> " 
                           "16r5BC6"    16r4C29 " <CJK> " 
                           "16r5BC7"    16r5564 " <CJK> " 
                           "16r5BC8"    16r0000 " invalid " 
                           "16r5BC9"    16r5565 " <CJK> " 
                           "16r5BCA"    16r0000 " invalid " 
                           "16r5BCB"    16r0000 " invalid " 
                           "16r5BCC"    16r4959 " <CJK> " 
                           "16r5BCD"    16r0000 " invalid " 
                           "16r5BCE"    16r0000 " invalid " 
                           "16r5BCF"    16r0000 " invalid " 
                           "16r5BD0"    16r5567 " <CJK> " 
                           "16r5BD1"    16r0000 " invalid " 
                           "16r5BD2"    16r3428 " <CJK> " 
                           "16r5BD3"    16r3677 " <CJK> " 
                           "16r5BD4"    16r5566 " <CJK> " 
                           "16r5BD5"    16r0000 " invalid " 
                           "16r5BD6"    16r0000 " invalid " 
                           "16r5BD7"    16r0000 " invalid " 
                           "16r5BD8"    16r0000 " invalid " 
                           "16r5BD9"    16r0000 " invalid " 
                           "16r5BDA"    16r0000 " invalid " 
                           "16r5BDB"    16r3432 " <CJK> " 
                           "16r5BDC"    16r0000 " invalid " 
                           "16r5BDD"    16r3F32 " <CJK> " 
                           "16r5BDE"    16r556B " <CJK> " 
                           "16r5BDF"    16r3B21 " <CJK> " 
                           "16r5BE0"    16r0000 " invalid " 
                           "16r5BE1"    16r3249 " <CJK> " 
                           "16r5BE2"    16r556A " <CJK> " 
                           "16r5BE3"    16r0000 " invalid " 
                           "16r5BE4"    16r5568 " <CJK> " 
                           "16r5BE5"    16r556C " <CJK> " 
                           "16r5BE6"    16r5569 " <CJK> " 
                           "16r5BE7"    16r472B " <CJK> " 
                           "16r5BE8"    16r5C4D " <CJK> " 
                           "16r5BE9"    16r3F33 " <CJK> " 
                           "16r5BEA"    16r0000 " invalid " 
                           "16r5BEB"    16r556D " <CJK> " 
                           "16r5BEC"    16r0000 " invalid " 
                           "16r5BED"    16r0000 " invalid " 
                           "16r5BEE"    16r4E40 " <CJK> " 
                           "16r5BEF"    16r0000 " invalid " 
                           "16r5BF0"    16r556E " <CJK> " 
                           "16r5BF1"    16r0000 " invalid " 
                           "16r5BF2"    16r0000 " invalid " 
                           "16r5BF3"    16r5570 " <CJK> " 
                           "16r5BF4"    16r0000 " invalid " 
                           "16r5BF5"    16r437E " <CJK> " 
                           "16r5BF6"    16r556F " <CJK> " 
                           "16r5BF7"    16r0000 " invalid " 
                           "16r5BF8"    16r4023 " <CJK> " 
                           "16r5BF9"    16r0000 " invalid " 
                           "16r5BFA"    16r3B7B " <CJK> " 
                           "16r5BFB"    16r0000 " invalid " 
                           "16r5BFC"    16r0000 " invalid " 
                           "16r5BFD"    16r0000 " invalid " 
                           "16r5BFE"    16r4250 " <CJK> " 
                           "16r5BFF"    16r3C77 " <CJK> " 
                           "16r5C00"    16r0000 " invalid " 
                           "16r5C01"    16r4975 " <CJK> " 
                           "16r5C02"    16r406C " <CJK> " 
                           "16r5C03"    16r0000 " invalid " 
                           "16r5C04"    16r3C4D " <CJK> " 
                           "16r5C05"    16r5571 " <CJK> " 
                           "16r5C06"    16r3E2D " <CJK> " 
                           "16r5C07"    16r5572 " <CJK> " 
                           "16r5C08"    16r5573 " <CJK> " 
                           "16r5C09"    16r3053 " <CJK> " 
                           "16r5C0A"    16r423A " <CJK> " 
                           "16r5C0B"    16r3F52 " <CJK> " 
                           "16r5C0C"    16r0000 " invalid " 
                           "16r5C0D"    16r5574 " <CJK> " 
                           "16r5C0E"    16r4633 " <CJK> " 
                           "16r5C0F"    16r3E2E " <CJK> " 
                           "16r5C10"    16r0000 " invalid " 
                           "16r5C11"    16r3E2F " <CJK> " 
                           "16r5C12"    16r0000 " invalid " 
                           "16r5C13"    16r5575 " <CJK> " 
                           "16r5C14"    16r0000 " invalid " 
                           "16r5C15"    16r0000 " invalid " 
                           "16r5C16"    16r406D " <CJK> " 
                           "16r5C17"    16r0000 " invalid " 
                           "16r5C18"    16r0000 " invalid " 
                           "16r5C19"    16r0000 " invalid " 
                           "16r5C1A"    16r3E30 " <CJK> " 
                           "16r5C1B"    16r0000 " invalid " 
                           "16r5C1C"    16r0000 " invalid " 
                           "16r5C1D"    16r0000 " invalid " 
                           "16r5C1E"    16r0000 " invalid " 
                           "16r5C1F"    16r0000 " invalid " 
                           "16r5C20"    16r5576 " <CJK> " 
                           "16r5C21"    16r0000 " invalid " 
                           "16r5C22"    16r5577 " <CJK> " 
                           "16r5C23"    16r0000 " invalid " 
                           "16r5C24"    16r4C60 " <CJK> " 
                           "16r5C25"    16r0000 " invalid " 
                           "16r5C26"    16r0000 " invalid " 
                           "16r5C27"    16r0000 " invalid " 
                           "16r5C28"    16r5578 " <CJK> " 
                           "16r5C29"    16r0000 " invalid " 
                           "16r5C2A"    16r0000 " invalid " 
                           "16r5C2B"    16r0000 " invalid " 
                           "16r5C2C"    16r0000 " invalid " 
                           "16r5C2D"    16r3646 " <CJK> " 
                           "16r5C2E"    16r0000 " invalid " 
                           "16r5C2F"    16r0000 " invalid " 
                           "16r5C30"    16r0000 " invalid " 
                           "16r5C31"    16r3D22 " <CJK> " 
                           "16r5C32"    16r0000 " invalid " 
                           "16r5C33"    16r0000 " invalid " 
                           "16r5C34"    16r0000 " invalid " 
                           "16r5C35"    16r0000 " invalid " 
                           "16r5C36"    16r0000 " invalid " 
                           "16r5C37"    16r0000 " invalid " 
                           "16r5C38"    16r5579 " <CJK> " 
                           "16r5C39"    16r557A " <CJK> " 
                           "16r5C3A"    16r3C5C " <CJK> " 
                           "16r5C3B"    16r3F2C " <CJK> " 
                           "16r5C3C"    16r4674 " <CJK> " 
                           "16r5C3D"    16r3F54 " <CJK> " 
                           "16r5C3E"    16r4878 " <CJK> " 
                           "16r5C3F"    16r4722 " <CJK> " 
                           "16r5C40"    16r3649 " <CJK> " 
                           "16r5C41"    16r557B " <CJK> " 
                           "16r5C42"    16r0000 " invalid " 
                           "16r5C43"    16r0000 " invalid " 
                           "16r5C44"    16r0000 " invalid " 
                           "16r5C45"    16r356F " <CJK> " 
                           "16r5C46"    16r557C " <CJK> " 
                           "16r5C47"    16r0000 " invalid " 
                           "16r5C48"    16r367E " <CJK> " 
                           "16r5C49"    16r0000 " invalid " 
                           "16r5C4A"    16r464F " <CJK> " 
                           "16r5C4B"    16r3230 " <CJK> " 
                           "16r5C4C"    16r0000 " invalid " 
                           "16r5C4D"    16r3B53 " <CJK> " 
                           "16r5C4E"    16r557D " <CJK> " 
                           "16r5C4F"    16r5622 " <CJK> " 
                           "16r5C50"    16r5621 " <CJK> " 
                           "16r5C51"    16r367D " <CJK> " 
                           "16r5C52"    16r0000 " invalid " 
                           "16r5C53"    16r557E " <CJK> " 
                           "16r5C54"    16r0000 " invalid " 
                           "16r5C55"    16r4538 " <CJK> " 
                           "16r5C56"    16r0000 " invalid " 
                           "16r5C57"    16r0000 " invalid " 
                           "16r5C58"    16r0000 " invalid " 
                           "16r5C59"    16r0000 " invalid " 
                           "16r5C5A"    16r0000 " invalid " 
                           "16r5C5B"    16r0000 " invalid " 
                           "16r5C5C"    16r0000 " invalid " 
                           "16r5C5D"    16r0000 " invalid " 
                           "16r5C5E"    16r4230 " <CJK> " 
                           "16r5C5F"    16r0000 " invalid " 
                           "16r5C60"    16r454B " <CJK> " 
                           "16r5C61"    16r3C48 " <CJK> " 
                           "16r5C62"    16r0000 " invalid " 
                           "16r5C63"    16r0000 " invalid " 
                           "16r5C64"    16r4158 " <CJK> " 
                           "16r5C65"    16r4D7A " <CJK> " 
                           "16r5C66"    16r0000 " invalid " 
                           "16r5C67"    16r0000 " invalid " 
                           "16r5C68"    16r0000 " invalid " 
                           "16r5C69"    16r0000 " invalid " 
                           "16r5C6A"    16r0000 " invalid " 
                           "16r5C6B"    16r0000 " invalid " 
                           "16r5C6C"    16r5624 " <CJK> " 
                           "16r5C6D"    16r0000 " invalid " 
                           "16r5C6E"    16r5625 " <CJK> " 
                           "16r5C6F"    16r4656 " <CJK> " 
                           "16r5C70"    16r0000 " invalid " 
                           "16r5C71"    16r3B33 " <CJK> " 
                           "16r5C72"    16r0000 " invalid " 
                           "16r5C73"    16r0000 " invalid " 
                           "16r5C74"    16r0000 " invalid " 
                           "16r5C75"    16r0000 " invalid " 
                           "16r5C76"    16r5627 " <CJK> " 
                           "16r5C77"    16r0000 " invalid " 
                           "16r5C78"    16r0000 " invalid " 
                           "16r5C79"    16r5628 " <CJK> " 
                           "16r5C7A"    16r0000 " invalid " 
                           "16r5C7B"    16r0000 " invalid " 
                           "16r5C7C"    16r0000 " invalid " 
                           "16r5C7D"    16r0000 " invalid " 
                           "16r5C7E"    16r0000 " invalid " 
                           "16r5C7F"    16r0000 " invalid " 
                           "16r5C80"    16r0000 " invalid " 
                           "16r5C81"    16r0000 " invalid " 
                           "16r5C82"    16r0000 " invalid " 
                           "16r5C83"    16r0000 " invalid " 
                           "16r5C84"    16r0000 " invalid " 
                           "16r5C85"    16r0000 " invalid " 
                           "16r5C86"    16r0000 " invalid " 
                           "16r5C87"    16r0000 " invalid " 
                           "16r5C88"    16r0000 " invalid " 
                           "16r5C89"    16r0000 " invalid " 
                           "16r5C8A"    16r0000 " invalid " 
                           "16r5C8B"    16r0000 " invalid " 
                           "16r5C8C"    16r5629 " <CJK> " 
                           "16r5C8D"    16r0000 " invalid " 
                           "16r5C8E"    16r0000 " invalid " 
                           "16r5C8F"    16r0000 " invalid " 
                           "16r5C90"    16r3474 " <CJK> " 
                           "16r5C91"    16r562A " <CJK> " 
                           "16r5C92"    16r0000 " invalid " 
                           "16r5C93"    16r0000 " invalid " 
                           "16r5C94"    16r562B " <CJK> " 
                           "16r5C95"    16r0000 " invalid " 
                           "16r5C96"    16r0000 " invalid " 
                           "16r5C97"    16r0000 " invalid " 
                           "16r5C98"    16r0000 " invalid " 
                           "16r5C99"    16r0000 " invalid " 
                           "16r5C9A"    16r0000 " invalid " 
                           "16r5C9B"    16r0000 " invalid " 
                           "16r5C9C"    16r0000 " invalid " 
                           "16r5C9D"    16r0000 " invalid " 
                           "16r5C9E"    16r0000 " invalid " 
                           "16r5C9F"    16r0000 " invalid " 
                           "16r5CA0"    16r0000 " invalid " 
                           "16r5CA1"    16r322C " <CJK> " 
                           "16r5CA2"    16r0000 " invalid " 
                           "16r5CA3"    16r0000 " invalid " 
                           "16r5CA4"    16r0000 " invalid " 
                           "16r5CA5"    16r0000 " invalid " 
                           "16r5CA6"    16r0000 " invalid " 
                           "16r5CA7"    16r0000 " invalid " 
                           "16r5CA8"    16r413B " <CJK> " 
                           "16r5CA9"    16r3464 " <CJK> " 
                           "16r5CAA"    16r0000 " invalid " 
                           "16r5CAB"    16r562D " <CJK> " 
                           "16r5CAC"    16r4C28 " <CJK> " 
                           "16r5CAD"    16r0000 " invalid " 
                           "16r5CAE"    16r0000 " invalid " 
                           "16r5CAF"    16r0000 " invalid " 
                           "16r5CB0"    16r0000 " invalid " 
                           "16r5CB1"    16r4252 " <CJK> " 
                           "16r5CB2"    16r0000 " invalid " 
                           "16r5CB3"    16r3359 " <CJK> " 
                           "16r5CB4"    16r0000 " invalid " 
                           "16r5CB5"    16r0000 " invalid " 
                           "16r5CB6"    16r562F " <CJK> " 
                           "16r5CB7"    16r5631 " <CJK> " 
                           "16r5CB8"    16r345F " <CJK> " 
                           "16r5CB9"    16r0000 " invalid " 
                           "16r5CBA"    16r0000 " invalid " 
                           "16r5CBB"    16r562E " <CJK> " 
                           "16r5CBC"    16r5630 " <CJK> " 
                           "16r5CBD"    16r0000 " invalid " 
                           "16r5CBE"    16r5633 " <CJK> " 
                           "16r5CBF"    16r0000 " invalid " 
                           "16r5CC0"    16r0000 " invalid " 
                           "16r5CC1"    16r0000 " invalid " 
                           "16r5CC2"    16r0000 " invalid " 
                           "16r5CC3"    16r0000 " invalid " 
                           "16r5CC4"    16r0000 " invalid " 
                           "16r5CC5"    16r5632 " <CJK> " 
                           "16r5CC6"    16r0000 " invalid " 
                           "16r5CC7"    16r5634 " <CJK> " 
                           "16r5CC8"    16r0000 " invalid " 
                           "16r5CC9"    16r0000 " invalid " 
                           "16r5CCA"    16r0000 " invalid " 
                           "16r5CCB"    16r0000 " invalid " 
                           "16r5CCC"    16r0000 " invalid " 
                           "16r5CCD"    16r0000 " invalid " 
                           "16r5CCE"    16r0000 " invalid " 
                           "16r5CCF"    16r0000 " invalid " 
                           "16r5CD0"    16r0000 " invalid " 
                           "16r5CD1"    16r0000 " invalid " 
                           "16r5CD2"    16r0000 " invalid " 
                           "16r5CD3"    16r0000 " invalid " 
                           "16r5CD4"    16r0000 " invalid " 
                           "16r5CD5"    16r0000 " invalid " 
                           "16r5CD6"    16r0000 " invalid " 
                           "16r5CD7"    16r0000 " invalid " 
                           "16r5CD8"    16r0000 " invalid " 
                           "16r5CD9"    16r5635 " <CJK> " 
                           "16r5CDA"    16r0000 " invalid " 
                           "16r5CDB"    16r0000 " invalid " 
                           "16r5CDC"    16r0000 " invalid " 
                           "16r5CDD"    16r0000 " invalid " 
                           "16r5CDE"    16r0000 " invalid " 
                           "16r5CDF"    16r0000 " invalid " 
                           "16r5CE0"    16r463D " <CJK> " 
                           "16r5CE1"    16r362E " <CJK> " 
                           "16r5CE2"    16r0000 " invalid " 
                           "16r5CE3"    16r0000 " invalid " 
                           "16r5CE4"    16r0000 " invalid " 
                           "16r5CE5"    16r0000 " invalid " 
                           "16r5CE6"    16r0000 " invalid " 
                           "16r5CE7"    16r0000 " invalid " 
                           "16r5CE8"    16r3265 " <CJK> " 
                           "16r5CE9"    16r5636 " <CJK> " 
                           "16r5CEA"    16r563B " <CJK> " 
                           "16r5CEB"    16r0000 " invalid " 
                           "16r5CEC"    16r0000 " invalid " 
                           "16r5CED"    16r5639 " <CJK> " 
                           "16r5CEE"    16r0000 " invalid " 
                           "16r5CEF"    16r4A77 " <CJK> " 
                           "16r5CF0"    16r4A76 " <CJK> " 
                           "16r5CF1"    16r0000 " invalid " 
                           "16r5CF2"    16r0000 " invalid " 
                           "16r5CF3"    16r0000 " invalid " 
                           "16r5CF4"    16r0000 " invalid " 
                           "16r5CF5"    16r0000 " invalid " 
                           "16r5CF6"    16r4567 " <CJK> " 
                           "16r5CF7"    16r0000 " invalid " 
                           "16r5CF8"    16r0000 " invalid " 
                           "16r5CF9"    16r0000 " invalid " 
                           "16r5CFA"    16r5638 " <CJK> " 
                           "16r5CFB"    16r3D54 " <CJK> " 
                           "16r5CFC"    16r0000 " invalid " 
                           "16r5CFD"    16r5637 " <CJK> " 
                           "16r5CFE"    16r0000 " invalid " 
                           "16r5CFF"    16r0000 " invalid " 
                           "16r5D00"    16r0000 " invalid " 
                           "16r5D01"    16r0000 " invalid " 
                           "16r5D02"    16r0000 " invalid " 
                           "16r5D03"    16r0000 " invalid " 
                           "16r5D04"    16r0000 " invalid " 
                           "16r5D05"    16r0000 " invalid " 
                           "16r5D06"    16r0000 " invalid " 
                           "16r5D07"    16r3F72 " <CJK> " 
                           "16r5D08"    16r0000 " invalid " 
                           "16r5D09"    16r0000 " invalid " 
                           "16r5D0A"    16r0000 " invalid " 
                           "16r5D0B"    16r563C " <CJK> " 
                           "16r5D0C"    16r0000 " invalid " 
                           "16r5D0D"    16r0000 " invalid " 
                           "16r5D0E"    16r3A6A " <CJK> " 
                           "16r5D0F"    16r0000 " invalid " 
                           "16r5D10"    16r0000 " invalid " 
                           "16r5D11"    16r5642 " <CJK> " 
                           "16r5D12"    16r0000 " invalid " 
                           "16r5D13"    16r0000 " invalid " 
                           "16r5D14"    16r5643 " <CJK> " 
                           "16r5D15"    16r563D " <CJK> " 
                           "16r5D16"    16r3333 " <CJK> " 
                           "16r5D17"    16r563E " <CJK> " 
                           "16r5D18"    16r5647 " <CJK> " 
                           "16r5D19"    16r5646 " <CJK> " 
                           "16r5D1A"    16r5645 " <CJK> " 
                           "16r5D1B"    16r5641 " <CJK> " 
                           "16r5D1C"    16r0000 " invalid " 
                           "16r5D1D"    16r0000 " invalid " 
                           "16r5D1E"    16r0000 " invalid " 
                           "16r5D1F"    16r5640 " <CJK> " 
                           "16r5D20"    16r0000 " invalid " 
                           "16r5D21"    16r0000 " invalid " 
                           "16r5D22"    16r5644 " <CJK> " 
                           "16r5D23"    16r0000 " invalid " 
                           "16r5D24"    16r0000 " invalid " 
                           "16r5D25"    16r0000 " invalid " 
                           "16r5D26"    16r0000 " invalid " 
                           "16r5D27"    16r0000 " invalid " 
                           "16r5D28"    16r0000 " invalid " 
                           "16r5D29"    16r4A78 " <CJK> " 
                           "16r5D2A"    16r0000 " invalid " 
                           "16r5D2B"    16r0000 " invalid " 
                           "16r5D2C"    16r0000 " invalid " 
                           "16r5D2D"    16r0000 " invalid " 
                           "16r5D2E"    16r0000 " invalid " 
                           "16r5D2F"    16r0000 " invalid " 
                           "16r5D30"    16r0000 " invalid " 
                           "16r5D31"    16r0000 " invalid " 
                           "16r5D32"    16r0000 " invalid " 
                           "16r5D33"    16r0000 " invalid " 
                           "16r5D34"    16r0000 " invalid " 
                           "16r5D35"    16r0000 " invalid " 
                           "16r5D36"    16r0000 " invalid " 
                           "16r5D37"    16r0000 " invalid " 
                           "16r5D38"    16r0000 " invalid " 
                           "16r5D39"    16r0000 " invalid " 
                           "16r5D3A"    16r0000 " invalid " 
                           "16r5D3B"    16r0000 " invalid " 
                           "16r5D3C"    16r0000 " invalid " 
                           "16r5D3D"    16r0000 " invalid " 
                           "16r5D3E"    16r0000 " invalid " 
                           "16r5D3F"    16r0000 " invalid " 
                           "16r5D40"    16r0000 " invalid " 
                           "16r5D41"    16r0000 " invalid " 
                           "16r5D42"    16r0000 " invalid " 
                           "16r5D43"    16r0000 " invalid " 
                           "16r5D44"    16r0000 " invalid " 
                           "16r5D45"    16r0000 " invalid " 
                           "16r5D46"    16r0000 " invalid " 
                           "16r5D47"    16r0000 " invalid " 
                           "16r5D48"    16r0000 " invalid " 
                           "16r5D49"    16r0000 " invalid " 
                           "16r5D4A"    16r0000 " invalid " 
                           "16r5D4B"    16r564B " <CJK> " 
                           "16r5D4C"    16r5648 " <CJK> " 
                           "16r5D4D"    16r0000 " invalid " 
                           "16r5D4E"    16r564A " <CJK> " 
                           "16r5D4F"    16r0000 " invalid " 
                           "16r5D50"    16r4D72 " <CJK> " 
                           "16r5D51"    16r0000 " invalid " 
                           "16r5D52"    16r5649 " <CJK> " 
                           "16r5D53"    16r0000 " invalid " 
                           "16r5D54"    16r0000 " invalid " 
                           "16r5D55"    16r0000 " invalid " 
                           "16r5D56"    16r0000 " invalid " 
                           "16r5D57"    16r0000 " invalid " 
                           "16r5D58"    16r0000 " invalid " 
                           "16r5D59"    16r0000 " invalid " 
                           "16r5D5A"    16r0000 " invalid " 
                           "16r5D5B"    16r0000 " invalid " 
                           "16r5D5C"    16r563F " <CJK> " 
                           "16r5D5D"    16r0000 " invalid " 
                           "16r5D5E"    16r0000 " invalid " 
                           "16r5D5F"    16r0000 " invalid " 
                           "16r5D60"    16r0000 " invalid " 
                           "16r5D61"    16r0000 " invalid " 
                           "16r5D62"    16r0000 " invalid " 
                           "16r5D63"    16r0000 " invalid " 
                           "16r5D64"    16r0000 " invalid " 
                           "16r5D65"    16r0000 " invalid " 
                           "16r5D66"    16r0000 " invalid " 
                           "16r5D67"    16r0000 " invalid " 
                           "16r5D68"    16r0000 " invalid " 
                           "16r5D69"    16r3F73 " <CJK> " 
                           "16r5D6A"    16r0000 " invalid " 
                           "16r5D6B"    16r0000 " invalid " 
                           "16r5D6C"    16r564C " <CJK> " 
                           "16r5D6D"    16r0000 " invalid " 
                           "16r5D6E"    16r0000 " invalid " 
                           "16r5D6F"    16r3A37 " <CJK> " 
                           "16r5D70"    16r0000 " invalid " 
                           "16r5D71"    16r0000 " invalid " 
                           "16r5D72"    16r0000 " invalid " 
                           "16r5D73"    16r564D " <CJK> " 
                           "16r5D74"    16r0000 " invalid " 
                           "16r5D75"    16r0000 " invalid " 
                           "16r5D76"    16r564E " <CJK> " 
                           "16r5D77"    16r0000 " invalid " 
                           "16r5D78"    16r0000 " invalid " 
                           "16r5D79"    16r0000 " invalid " 
                           "16r5D7A"    16r0000 " invalid " 
                           "16r5D7B"    16r0000 " invalid " 
                           "16r5D7C"    16r0000 " invalid " 
                           "16r5D7D"    16r0000 " invalid " 
                           "16r5D7E"    16r0000 " invalid " 
                           "16r5D7F"    16r0000 " invalid " 
                           "16r5D80"    16r0000 " invalid " 
                           "16r5D81"    16r0000 " invalid " 
                           "16r5D82"    16r5651 " <CJK> " 
                           "16r5D83"    16r0000 " invalid " 
                           "16r5D84"    16r5650 " <CJK> " 
                           "16r5D85"    16r0000 " invalid " 
                           "16r5D86"    16r0000 " invalid " 
                           "16r5D87"    16r564F " <CJK> " 
                           "16r5D88"    16r0000 " invalid " 
                           "16r5D89"    16r0000 " invalid " 
                           "16r5D8A"    16r0000 " invalid " 
                           "16r5D8B"    16r4568 " <CJK> " 
                           "16r5D8C"    16r563A " <CJK> " 
                           "16r5D8D"    16r0000 " invalid " 
                           "16r5D8E"    16r0000 " invalid " 
                           "16r5D8F"    16r0000 " invalid " 
                           "16r5D90"    16r5657 " <CJK> " 
                           "16r5D91"    16r0000 " invalid " 
                           "16r5D92"    16r0000 " invalid " 
                           "16r5D93"    16r0000 " invalid " 
                           "16r5D94"    16r0000 " invalid " 
                           "16r5D95"    16r0000 " invalid " 
                           "16r5D96"    16r0000 " invalid " 
                           "16r5D97"    16r0000 " invalid " 
                           "16r5D98"    16r0000 " invalid " 
                           "16r5D99"    16r0000 " invalid " 
                           "16r5D9A"    16r0000 " invalid " 
                           "16r5D9B"    16r0000 " invalid " 
                           "16r5D9C"    16r0000 " invalid " 
                           "16r5D9D"    16r5653 " <CJK> " 
                           "16r5D9E"    16r0000 " invalid " 
                           "16r5D9F"    16r0000 " invalid " 
                           "16r5DA0"    16r0000 " invalid " 
                           "16r5DA1"    16r0000 " invalid " 
                           "16r5DA2"    16r5652 " <CJK> " 
                           "16r5DA3"    16r0000 " invalid " 
                           "16r5DA4"    16r0000 " invalid " 
                           "16r5DA5"    16r0000 " invalid " 
                           "16r5DA6"    16r0000 " invalid " 
                           "16r5DA7"    16r0000 " invalid " 
                           "16r5DA8"    16r0000 " invalid " 
                           "16r5DA9"    16r0000 " invalid " 
                           "16r5DAA"    16r0000 " invalid " 
                           "16r5DAB"    16r0000 " invalid " 
                           "16r5DAC"    16r5654 " <CJK> " 
                           "16r5DAD"    16r0000 " invalid " 
                           "16r5DAE"    16r5655 " <CJK> " 
                           "16r5DAF"    16r0000 " invalid " 
                           "16r5DB0"    16r0000 " invalid " 
                           "16r5DB1"    16r0000 " invalid " 
                           "16r5DB2"    16r0000 " invalid " 
                           "16r5DB3"    16r0000 " invalid " 
                           "16r5DB4"    16r0000 " invalid " 
                           "16r5DB5"    16r0000 " invalid " 
                           "16r5DB6"    16r0000 " invalid " 
                           "16r5DB7"    16r5658 " <CJK> " 
                           "16r5DB8"    16r0000 " invalid " 
                           "16r5DB9"    16r0000 " invalid " 
                           "16r5DBA"    16r4E66 " <CJK> " 
                           "16r5DBB"    16r0000 " invalid " 
                           "16r5DBC"    16r5659 " <CJK> " 
                           "16r5DBD"    16r5656 " <CJK> " 
                           "16r5DBE"    16r0000 " invalid " 
                           "16r5DBF"    16r0000 " invalid " 
                           "16r5DC0"    16r0000 " invalid " 
                           "16r5DC1"    16r0000 " invalid " 
                           "16r5DC2"    16r0000 " invalid " 
                           "16r5DC3"    16r0000 " invalid " 
                           "16r5DC4"    16r0000 " invalid " 
                           "16r5DC5"    16r0000 " invalid " 
                           "16r5DC6"    16r0000 " invalid " 
                           "16r5DC7"    16r0000 " invalid " 
                           "16r5DC8"    16r0000 " invalid " 
                           "16r5DC9"    16r565A " <CJK> " 
                           "16r5DCA"    16r0000 " invalid " 
                           "16r5DCB"    16r0000 " invalid " 
                           "16r5DCC"    16r3460 " <CJK> " 
                           "16r5DCD"    16r565B " <CJK> " 
                           "16r5DCE"    16r0000 " invalid " 
                           "16r5DCF"    16r0000 " invalid " 
                           "16r5DD0"    16r0000 " invalid " 
                           "16r5DD1"    16r0000 " invalid " 
                           "16r5DD2"    16r565D " <CJK> " 
                           "16r5DD3"    16r565C " <CJK> " 
                           "16r5DD4"    16r0000 " invalid " 
                           "16r5DD5"    16r0000 " invalid " 
                           "16r5DD6"    16r565E " <CJK> " 
                           "16r5DD7"    16r0000 " invalid " 
                           "16r5DD8"    16r0000 " invalid " 
                           "16r5DD9"    16r0000 " invalid " 
                           "16r5DDA"    16r0000 " invalid " 
                           "16r5DDB"    16r565F " <CJK> " 
                           "16r5DDC"    16r0000 " invalid " 
                           "16r5DDD"    16r406E " <CJK> " 
                           "16r5DDE"    16r3D23 " <CJK> " 
                           "16r5DDF"    16r0000 " invalid " 
                           "16r5DE0"    16r0000 " invalid " 
                           "16r5DE1"    16r3D64 " <CJK> " 
                           "16r5DE2"    16r0000 " invalid " 
                           "16r5DE3"    16r4163 " <CJK> " 
                           "16r5DE4"    16r0000 " invalid " 
                           "16r5DE5"    16r3929 " <CJK> " 
                           "16r5DE6"    16r3A38 " <CJK> " 
                           "16r5DE7"    16r392A " <CJK> " 
                           "16r5DE8"    16r3570 " <CJK> " 
                           "16r5DE9"    16r0000 " invalid " 
                           "16r5DEA"    16r0000 " invalid " 
                           "16r5DEB"    16r5660 " <CJK> " 
                           "16r5DEC"    16r0000 " invalid " 
                           "16r5DED"    16r0000 " invalid " 
                           "16r5DEE"    16r3A39 " <CJK> " 
                           "16r5DEF"    16r0000 " invalid " 
                           "16r5DF0"    16r0000 " invalid " 
                           "16r5DF1"    16r384A " <CJK> " 
                           "16r5DF2"    16r5661 " <CJK> " 
                           "16r5DF3"    16r4C26 " <CJK> " 
                           "16r5DF4"    16r4743 " <CJK> " 
                           "16r5DF5"    16r5662 " <CJK> " 
                           "16r5DF6"    16r0000 " invalid " 
                           "16r5DF7"    16r392B " <CJK> " 
                           "16r5DF8"    16r0000 " invalid " 
                           "16r5DF9"    16r0000 " invalid " 
                           "16r5DFA"    16r0000 " invalid " 
                           "16r5DFB"    16r342C " <CJK> " 
                           "16r5DFC"    16r0000 " invalid " 
                           "16r5DFD"    16r4327 " <CJK> " 
                           "16r5DFE"    16r3652 " <CJK> " 
                           "16r5DFF"    16r0000 " invalid " 
                           "16r5E00"    16r0000 " invalid " 
                           "16r5E01"    16r0000 " invalid " 
                           "16r5E02"    16r3B54 " <CJK> " 
                           "16r5E03"    16r495B " <CJK> " 
                           "16r5E04"    16r0000 " invalid " 
                           "16r5E05"    16r0000 " invalid " 
                           "16r5E06"    16r4841 " <CJK> " 
                           "16r5E07"    16r0000 " invalid " 
                           "16r5E08"    16r0000 " invalid " 
                           "16r5E09"    16r0000 " invalid " 
                           "16r5E0A"    16r0000 " invalid " 
                           "16r5E0B"    16r5663 " <CJK> " 
                           "16r5E0C"    16r3475 " <CJK> " 
                           "16r5E0D"    16r0000 " invalid " 
                           "16r5E0E"    16r0000 " invalid " 
                           "16r5E0F"    16r0000 " invalid " 
                           "16r5E10"    16r0000 " invalid " 
                           "16r5E11"    16r5666 " <CJK> " 
                           "16r5E12"    16r0000 " invalid " 
                           "16r5E13"    16r0000 " invalid " 
                           "16r5E14"    16r0000 " invalid " 
                           "16r5E15"    16r0000 " invalid " 
                           "16r5E16"    16r4421 " <CJK> " 
                           "16r5E17"    16r0000 " invalid " 
                           "16r5E18"    16r0000 " invalid " 
                           "16r5E19"    16r5665 " <CJK> " 
                           "16r5E1A"    16r5664 " <CJK> " 
                           "16r5E1B"    16r5667 " <CJK> " 
                           "16r5E1C"    16r0000 " invalid " 
                           "16r5E1D"    16r446B " <CJK> " 
                           "16r5E1E"    16r0000 " invalid " 
                           "16r5E1F"    16r0000 " invalid " 
                           "16r5E20"    16r0000 " invalid " 
                           "16r5E21"    16r0000 " invalid " 
                           "16r5E22"    16r0000 " invalid " 
                           "16r5E23"    16r0000 " invalid " 
                           "16r5E24"    16r0000 " invalid " 
                           "16r5E25"    16r3F63 " <CJK> " 
                           "16r5E26"    16r0000 " invalid " 
                           "16r5E27"    16r0000 " invalid " 
                           "16r5E28"    16r0000 " invalid " 
                           "16r5E29"    16r0000 " invalid " 
                           "16r5E2A"    16r0000 " invalid " 
                           "16r5E2B"    16r3B55 " <CJK> " 
                           "16r5E2C"    16r0000 " invalid " 
                           "16r5E2D"    16r404A " <CJK> " 
                           "16r5E2E"    16r0000 " invalid " 
                           "16r5E2F"    16r4253 " <CJK> " 
                           "16r5E30"    16r3522 " <CJK> " 
                           "16r5E31"    16r0000 " invalid " 
                           "16r5E32"    16r0000 " invalid " 
                           "16r5E33"    16r4422 " <CJK> " 
                           "16r5E34"    16r0000 " invalid " 
                           "16r5E35"    16r0000 " invalid " 
                           "16r5E36"    16r5668 " <CJK> " 
                           "16r5E37"    16r5669 " <CJK> " 
                           "16r5E38"    16r3E6F " <CJK> " 
                           "16r5E39"    16r0000 " invalid " 
                           "16r5E3A"    16r0000 " invalid " 
                           "16r5E3B"    16r0000 " invalid " 
                           "16r5E3C"    16r0000 " invalid " 
                           "16r5E3D"    16r4B39 " <CJK> " 
                           "16r5E3E"    16r0000 " invalid " 
                           "16r5E3F"    16r0000 " invalid " 
                           "16r5E40"    16r566C " <CJK> " 
                           "16r5E41"    16r0000 " invalid " 
                           "16r5E42"    16r0000 " invalid " 
                           "16r5E43"    16r566B " <CJK> " 
                           "16r5E44"    16r566A " <CJK> " 
                           "16r5E45"    16r497D " <CJK> " 
                           "16r5E46"    16r0000 " invalid " 
                           "16r5E47"    16r5673 " <CJK> " 
                           "16r5E48"    16r0000 " invalid " 
                           "16r5E49"    16r0000 " invalid " 
                           "16r5E4A"    16r0000 " invalid " 
                           "16r5E4B"    16r0000 " invalid " 
                           "16r5E4C"    16r4B5A " <CJK> " 
                           "16r5E4D"    16r0000 " invalid " 
                           "16r5E4E"    16r566D " <CJK> " 
                           "16r5E4F"    16r0000 " invalid " 
                           "16r5E50"    16r0000 " invalid " 
                           "16r5E51"    16r0000 " invalid " 
                           "16r5E52"    16r0000 " invalid " 
                           "16r5E53"    16r0000 " invalid " 
                           "16r5E54"    16r566F " <CJK> " 
                           "16r5E55"    16r4B6B " <CJK> " 
                           "16r5E56"    16r0000 " invalid " 
                           "16r5E57"    16r566E " <CJK> " 
                           "16r5E58"    16r0000 " invalid " 
                           "16r5E59"    16r0000 " invalid " 
                           "16r5E5A"    16r0000 " invalid " 
                           "16r5E5B"    16r0000 " invalid " 
                           "16r5E5C"    16r0000 " invalid " 
                           "16r5E5D"    16r0000 " invalid " 
                           "16r5E5E"    16r0000 " invalid " 
                           "16r5E5F"    16r5670 " <CJK> " 
                           "16r5E60"    16r0000 " invalid " 
                           "16r5E61"    16r4828 " <CJK> " 
                           "16r5E62"    16r5671 " <CJK> " 
                           "16r5E63"    16r4A3E " <CJK> " 
                           "16r5E64"    16r5672 " <CJK> " 
                           "16r5E65"    16r0000 " invalid " 
                           "16r5E66"    16r0000 " invalid " 
                           "16r5E67"    16r0000 " invalid " 
                           "16r5E68"    16r0000 " invalid " 
                           "16r5E69"    16r0000 " invalid " 
                           "16r5E6A"    16r0000 " invalid " 
                           "16r5E6B"    16r0000 " invalid " 
                           "16r5E6C"    16r0000 " invalid " 
                           "16r5E6D"    16r0000 " invalid " 
                           "16r5E6E"    16r0000 " invalid " 
                           "16r5E6F"    16r0000 " invalid " 
                           "16r5E70"    16r0000 " invalid " 
                           "16r5E71"    16r0000 " invalid " 
                           "16r5E72"    16r3433 " <CJK> " 
                           "16r5E73"    16r4A3F " <CJK> " 
                           "16r5E74"    16r472F " <CJK> " 
                           "16r5E75"    16r5674 " <CJK> " 
                           "16r5E76"    16r5675 " <CJK> " 
                           "16r5E77"    16r0000 " invalid " 
                           "16r5E78"    16r392C " <CJK> " 
                           "16r5E79"    16r3434 " <CJK> " 
                           "16r5E7A"    16r5676 " <CJK> " 
                           "16r5E7B"    16r3838 " <CJK> " 
                           "16r5E7C"    16r4D44 " <CJK> " 
                           "16r5E7D"    16r4D29 " <CJK> " 
                           "16r5E7E"    16r3476 " <CJK> " 
                           "16r5E7F"    16r5678 " <CJK> " 
                           "16r5E80"    16r0000 " invalid " 
                           "16r5E81"    16r4423 " <CJK> " 
                           "16r5E82"    16r0000 " invalid " 
                           "16r5E83"    16r392D " <CJK> " 
                           "16r5E84"    16r3E31 " <CJK> " 
                           "16r5E85"    16r0000 " invalid " 
                           "16r5E86"    16r0000 " invalid " 
                           "16r5E87"    16r485F " <CJK> " 
                           "16r5E88"    16r0000 " invalid " 
                           "16r5E89"    16r0000 " invalid " 
                           "16r5E8A"    16r3E32 " <CJK> " 
                           "16r5E8B"    16r0000 " invalid " 
                           "16r5E8C"    16r0000 " invalid " 
                           "16r5E8D"    16r0000 " invalid " 
                           "16r5E8E"    16r0000 " invalid " 
                           "16r5E8F"    16r3D78 " <CJK> " 
                           "16r5E90"    16r0000 " invalid " 
                           "16r5E91"    16r0000 " invalid " 
                           "16r5E92"    16r0000 " invalid " 
                           "16r5E93"    16r0000 " invalid " 
                           "16r5E94"    16r0000 " invalid " 
                           "16r5E95"    16r446C " <CJK> " 
                           "16r5E96"    16r4A79 " <CJK> " 
                           "16r5E97"    16r4539 " <CJK> " 
                           "16r5E98"    16r0000 " invalid " 
                           "16r5E99"    16r0000 " invalid " 
                           "16r5E9A"    16r392E " <CJK> " 
                           "16r5E9B"    16r0000 " invalid " 
                           "16r5E9C"    16r495C " <CJK> " 
                           "16r5E9D"    16r0000 " invalid " 
                           "16r5E9E"    16r0000 " invalid " 
                           "16r5E9F"    16r0000 " invalid " 
                           "16r5EA0"    16r5679 " <CJK> " 
                           "16r5EA1"    16r0000 " invalid " 
                           "16r5EA2"    16r0000 " invalid " 
                           "16r5EA3"    16r0000 " invalid " 
                           "16r5EA4"    16r0000 " invalid " 
                           "16r5EA5"    16r0000 " invalid " 
                           "16r5EA6"    16r4559 " <CJK> " 
                           "16r5EA7"    16r3A42 " <CJK> " 
                           "16r5EA8"    16r0000 " invalid " 
                           "16r5EA9"    16r0000 " invalid " 
                           "16r5EAA"    16r0000 " invalid " 
                           "16r5EAB"    16r384B " <CJK> " 
                           "16r5EAC"    16r0000 " invalid " 
                           "16r5EAD"    16r446D " <CJK> " 
                           "16r5EAE"    16r0000 " invalid " 
                           "16r5EAF"    16r0000 " invalid " 
                           "16r5EB0"    16r0000 " invalid " 
                           "16r5EB1"    16r0000 " invalid " 
                           "16r5EB2"    16r0000 " invalid " 
                           "16r5EB3"    16r0000 " invalid " 
                           "16r5EB4"    16r0000 " invalid " 
                           "16r5EB5"    16r3043 " <CJK> " 
                           "16r5EB6"    16r3D6E " <CJK> " 
                           "16r5EB7"    16r392F " <CJK> " 
                           "16r5EB8"    16r4D47 " <CJK> " 
                           "16r5EB9"    16r0000 " invalid " 
                           "16r5EBA"    16r0000 " invalid " 
                           "16r5EBB"    16r0000 " invalid " 
                           "16r5EBC"    16r0000 " invalid " 
                           "16r5EBD"    16r0000 " invalid " 
                           "16r5EBE"    16r0000 " invalid " 
                           "16r5EBF"    16r0000 " invalid " 
                           "16r5EC0"    16r0000 " invalid " 
                           "16r5EC1"    16r567A " <CJK> " 
                           "16r5EC2"    16r567B " <CJK> " 
                           "16r5EC3"    16r4751 " <CJK> " 
                           "16r5EC4"    16r0000 " invalid " 
                           "16r5EC5"    16r0000 " invalid " 
                           "16r5EC6"    16r0000 " invalid " 
                           "16r5EC7"    16r0000 " invalid " 
                           "16r5EC8"    16r567C " <CJK> " 
                           "16r5EC9"    16r4E77 " <CJK> " 
                           "16r5ECA"    16r4F2D " <CJK> " 
                           "16r5ECB"    16r0000 " invalid " 
                           "16r5ECC"    16r0000 " invalid " 
                           "16r5ECD"    16r0000 " invalid " 
                           "16r5ECE"    16r0000 " invalid " 
                           "16r5ECF"    16r567E " <CJK> " 
                           "16r5ED0"    16r567D " <CJK> " 
                           "16r5ED1"    16r0000 " invalid " 
                           "16r5ED2"    16r0000 " invalid " 
                           "16r5ED3"    16r3347 " <CJK> " 
                           "16r5ED4"    16r0000 " invalid " 
                           "16r5ED5"    16r0000 " invalid " 
                           "16r5ED6"    16r5721 " <CJK> " 
                           "16r5ED7"    16r0000 " invalid " 
                           "16r5ED8"    16r0000 " invalid " 
                           "16r5ED9"    16r0000 " invalid " 
                           "16r5EDA"    16r5724 " <CJK> " 
                           "16r5EDB"    16r5725 " <CJK> " 
                           "16r5EDC"    16r0000 " invalid " 
                           "16r5EDD"    16r5723 " <CJK> " 
                           "16r5EDE"    16r0000 " invalid " 
                           "16r5EDF"    16r4940 " <CJK> " 
                           "16r5EE0"    16r3E33 " <CJK> " 
                           "16r5EE1"    16r5727 " <CJK> " 
                           "16r5EE2"    16r5726 " <CJK> " 
                           "16r5EE3"    16r5722 " <CJK> " 
                           "16r5EE4"    16r0000 " invalid " 
                           "16r5EE5"    16r0000 " invalid " 
                           "16r5EE6"    16r0000 " invalid " 
                           "16r5EE7"    16r0000 " invalid " 
                           "16r5EE8"    16r5728 " <CJK> " 
                           "16r5EE9"    16r5729 " <CJK> " 
                           "16r5EEA"    16r0000 " invalid " 
                           "16r5EEB"    16r0000 " invalid " 
                           "16r5EEC"    16r572A " <CJK> " 
                           "16r5EED"    16r0000 " invalid " 
                           "16r5EEE"    16r0000 " invalid " 
                           "16r5EEF"    16r0000 " invalid " 
                           "16r5EF0"    16r572D " <CJK> " 
                           "16r5EF1"    16r572B " <CJK> " 
                           "16r5EF2"    16r0000 " invalid " 
                           "16r5EF3"    16r572C " <CJK> " 
                           "16r5EF4"    16r572E " <CJK> " 
                           "16r5EF5"    16r0000 " invalid " 
                           "16r5EF6"    16r3164 " <CJK> " 
                           "16r5EF7"    16r446E " <CJK> " 
                           "16r5EF8"    16r572F " <CJK> " 
                           "16r5EF9"    16r0000 " invalid " 
                           "16r5EFA"    16r377A " <CJK> " 
                           "16r5EFB"    16r3276 " <CJK> " 
                           "16r5EFC"    16r4736 " <CJK> " 
                           "16r5EFD"    16r0000 " invalid " 
                           "16r5EFE"    16r5730 " <CJK> " 
                           "16r5EFF"    16r467B " <CJK> " 
                           "16r5F00"    16r0000 " invalid " 
                           "16r5F01"    16r4A5B " <CJK> " 
                           "16r5F02"    16r0000 " invalid " 
                           "16r5F03"    16r5731 " <CJK> " 
                           "16r5F04"    16r4F2E " <CJK> " 
                           "16r5F05"    16r0000 " invalid " 
                           "16r5F06"    16r0000 " invalid " 
                           "16r5F07"    16r0000 " invalid " 
                           "16r5F08"    16r0000 " invalid " 
                           "16r5F09"    16r5732 " <CJK> " 
                           "16r5F0A"    16r4A40 " <CJK> " 
                           "16r5F0B"    16r5735 " <CJK> " 
                           "16r5F0C"    16r5021 " <CJK> " 
                           "16r5F0D"    16r5031 " <CJK> " 
                           "16r5F0E"    16r0000 " invalid " 
                           "16r5F0F"    16r3C30 " <CJK> " 
                           "16r5F10"    16r4675 " <CJK> " 
                           "16r5F11"    16r5736 " <CJK> " 
                           "16r5F12"    16r0000 " invalid " 
                           "16r5F13"    16r355D " <CJK> " 
                           "16r5F14"    16r4424 " <CJK> " 
                           "16r5F15"    16r307A " <CJK> " 
                           "16r5F16"    16r5737 " <CJK> " 
                           "16r5F17"    16r4A26 " <CJK> " 
                           "16r5F18"    16r3930 " <CJK> " 
                           "16r5F19"    16r0000 " invalid " 
                           "16r5F1A"    16r0000 " invalid " 
                           "16r5F1B"    16r4350 " <CJK> " 
                           "16r5F1C"    16r0000 " invalid " 
                           "16r5F1D"    16r0000 " invalid " 
                           "16r5F1E"    16r0000 " invalid " 
                           "16r5F1F"    16r446F " <CJK> " 
                           "16r5F20"    16r0000 " invalid " 
                           "16r5F21"    16r0000 " invalid " 
                           "16r5F22"    16r0000 " invalid " 
                           "16r5F23"    16r0000 " invalid " 
                           "16r5F24"    16r0000 " invalid " 
                           "16r5F25"    16r4C6F " <CJK> " 
                           "16r5F26"    16r3839 " <CJK> " 
                           "16r5F27"    16r384C " <CJK> " 
                           "16r5F28"    16r0000 " invalid " 
                           "16r5F29"    16r5738 " <CJK> " 
                           "16r5F2A"    16r0000 " invalid " 
                           "16r5F2B"    16r0000 " invalid " 
                           "16r5F2C"    16r0000 " invalid " 
                           "16r5F2D"    16r5739 " <CJK> " 
                           "16r5F2E"    16r0000 " invalid " 
                           "16r5F2F"    16r573F " <CJK> " 
                           "16r5F30"    16r0000 " invalid " 
                           "16r5F31"    16r3C65 " <CJK> " 
                           "16r5F32"    16r0000 " invalid " 
                           "16r5F33"    16r0000 " invalid " 
                           "16r5F34"    16r0000 " invalid " 
                           "16r5F35"    16r4425 " <CJK> " 
                           "16r5F36"    16r0000 " invalid " 
                           "16r5F37"    16r362F " <CJK> " 
                           "16r5F38"    16r573A " <CJK> " 
                           "16r5F39"    16r0000 " invalid " 
                           "16r5F3A"    16r0000 " invalid " 
                           "16r5F3B"    16r0000 " invalid " 
                           "16r5F3C"    16r492B " <CJK> " 
                           "16r5F3D"    16r0000 " invalid " 
                           "16r5F3E"    16r4346 " <CJK> " 
                           "16r5F3F"    16r0000 " invalid " 
                           "16r5F40"    16r0000 " invalid " 
                           "16r5F41"    16r573B " <CJK> " 
                           "16r5F42"    16r0000 " invalid " 
                           "16r5F43"    16r0000 " invalid " 
                           "16r5F44"    16r0000 " invalid " 
                           "16r5F45"    16r0000 " invalid " 
                           "16r5F46"    16r0000 " invalid " 
                           "16r5F47"    16r0000 " invalid " 
                           "16r5F48"    16r573C " <CJK> " 
                           "16r5F49"    16r0000 " invalid " 
                           "16r5F4A"    16r3630 " <CJK> " 
                           "16r5F4B"    16r0000 " invalid " 
                           "16r5F4C"    16r573D " <CJK> " 
                           "16r5F4D"    16r0000 " invalid " 
                           "16r5F4E"    16r573E " <CJK> " 
                           "16r5F4F"    16r0000 " invalid " 
                           "16r5F50"    16r0000 " invalid " 
                           "16r5F51"    16r5740 " <CJK> " 
                           "16r5F52"    16r0000 " invalid " 
                           "16r5F53"    16r4576 " <CJK> " 
                           "16r5F54"    16r0000 " invalid " 
                           "16r5F55"    16r0000 " invalid " 
                           "16r5F56"    16r5741 " <CJK> " 
                           "16r5F57"    16r5742 " <CJK> " 
                           "16r5F58"    16r0000 " invalid " 
                           "16r5F59"    16r5743 " <CJK> " 
                           "16r5F5A"    16r0000 " invalid " 
                           "16r5F5B"    16r0000 " invalid " 
                           "16r5F5C"    16r5734 " <CJK> " 
                           "16r5F5D"    16r5733 " <CJK> " 
                           "16r5F5E"    16r0000 " invalid " 
                           "16r5F5F"    16r0000 " invalid " 
                           "16r5F60"    16r0000 " invalid " 
                           "16r5F61"    16r5744 " <CJK> " 
                           "16r5F62"    16r3741 " <CJK> " 
                           "16r5F63"    16r0000 " invalid " 
                           "16r5F64"    16r0000 " invalid " 
                           "16r5F65"    16r0000 " invalid " 
                           "16r5F66"    16r4927 " <CJK> " 
                           "16r5F67"    16r0000 " invalid " 
                           "16r5F68"    16r0000 " invalid " 
                           "16r5F69"    16r3A4C " <CJK> " 
                           "16r5F6A"    16r4937 " <CJK> " 
                           "16r5F6B"    16r4426 " <CJK> " 
                           "16r5F6C"    16r494B " <CJK> " 
                           "16r5F6D"    16r5745 " <CJK> " 
                           "16r5F6E"    16r0000 " invalid " 
                           "16r5F6F"    16r0000 " invalid " 
                           "16r5F70"    16r3E34 " <CJK> " 
                           "16r5F71"    16r3146 " <CJK> " 
                           "16r5F72"    16r0000 " invalid " 
                           "16r5F73"    16r5746 " <CJK> " 
                           "16r5F74"    16r0000 " invalid " 
                           "16r5F75"    16r0000 " invalid " 
                           "16r5F76"    16r0000 " invalid " 
                           "16r5F77"    16r5747 " <CJK> " 
                           "16r5F78"    16r0000 " invalid " 
                           "16r5F79"    16r4C72 " <CJK> " 
                           "16r5F7A"    16r0000 " invalid " 
                           "16r5F7B"    16r0000 " invalid " 
                           "16r5F7C"    16r4860 " <CJK> " 
                           "16r5F7D"    16r0000 " invalid " 
                           "16r5F7E"    16r0000 " invalid " 
                           "16r5F7F"    16r574A " <CJK> " 
                           "16r5F80"    16r317D " <CJK> " 
                           "16r5F81"    16r402C " <CJK> " 
                           "16r5F82"    16r5749 " <CJK> " 
                           "16r5F83"    16r5748 " <CJK> " 
                           "16r5F84"    16r3742 " <CJK> " 
                           "16r5F85"    16r4254 " <CJK> " 
                           "16r5F86"    16r0000 " invalid " 
                           "16r5F87"    16r574E " <CJK> " 
                           "16r5F88"    16r574C " <CJK> " 
                           "16r5F89"    16r0000 " invalid " 
                           "16r5F8A"    16r574B " <CJK> " 
                           "16r5F8B"    16r4E27 " <CJK> " 
                           "16r5F8C"    16r3865 " <CJK> " 
                           "16r5F8D"    16r0000 " invalid " 
                           "16r5F8E"    16r0000 " invalid " 
                           "16r5F8F"    16r0000 " invalid " 
                           "16r5F90"    16r3D79 " <CJK> " 
                           "16r5F91"    16r574D " <CJK> " 
                           "16r5F92"    16r454C " <CJK> " 
                           "16r5F93"    16r3D3E " <CJK> " 
                           "16r5F94"    16r0000 " invalid " 
                           "16r5F95"    16r0000 " invalid " 
                           "16r5F96"    16r0000 " invalid " 
                           "16r5F97"    16r4640 " <CJK> " 
                           "16r5F98"    16r5751 " <CJK> " 
                           "16r5F99"    16r5750 " <CJK> " 
                           "16r5F9A"    16r0000 " invalid " 
                           "16r5F9B"    16r0000 " invalid " 
                           "16r5F9C"    16r0000 " invalid " 
                           "16r5F9D"    16r0000 " invalid " 
                           "16r5F9E"    16r574F " <CJK> " 
                           "16r5F9F"    16r0000 " invalid " 
                           "16r5FA0"    16r5752 " <CJK> " 
                           "16r5FA1"    16r3866 " <CJK> " 
                           "16r5FA2"    16r0000 " invalid " 
                           "16r5FA3"    16r0000 " invalid " 
                           "16r5FA4"    16r0000 " invalid " 
                           "16r5FA5"    16r0000 " invalid " 
                           "16r5FA6"    16r0000 " invalid " 
                           "16r5FA7"    16r0000 " invalid " 
                           "16r5FA8"    16r5753 " <CJK> " 
                           "16r5FA9"    16r497C " <CJK> " 
                           "16r5FAA"    16r3D5B " <CJK> " 
                           "16r5FAB"    16r0000 " invalid " 
                           "16r5FAC"    16r0000 " invalid " 
                           "16r5FAD"    16r5754 " <CJK> " 
                           "16r5FAE"    16r4879 " <CJK> " 
                           "16r5FAF"    16r0000 " invalid " 
                           "16r5FB0"    16r0000 " invalid " 
                           "16r5FB1"    16r0000 " invalid " 
                           "16r5FB2"    16r0000 " invalid " 
                           "16r5FB3"    16r4641 " <CJK> " 
                           "16r5FB4"    16r4427 " <CJK> " 
                           "16r5FB5"    16r0000 " invalid " 
                           "16r5FB6"    16r0000 " invalid " 
                           "16r5FB7"    16r0000 " invalid " 
                           "16r5FB8"    16r0000 " invalid " 
                           "16r5FB9"    16r4530 " <CJK> " 
                           "16r5FBA"    16r0000 " invalid " 
                           "16r5FBB"    16r0000 " invalid " 
                           "16r5FBC"    16r5755 " <CJK> " 
                           "16r5FBD"    16r352B " <CJK> " 
                           "16r5FBE"    16r0000 " invalid " 
                           "16r5FBF"    16r0000 " invalid " 
                           "16r5FC0"    16r0000 " invalid " 
                           "16r5FC1"    16r0000 " invalid " 
                           "16r5FC2"    16r0000 " invalid " 
                           "16r5FC3"    16r3F34 " <CJK> " 
                           "16r5FC4"    16r0000 " invalid " 
                           "16r5FC5"    16r492C " <CJK> " 
                           "16r5FC6"    16r0000 " invalid " 
                           "16r5FC7"    16r0000 " invalid " 
                           "16r5FC8"    16r0000 " invalid " 
                           "16r5FC9"    16r0000 " invalid " 
                           "16r5FCA"    16r0000 " invalid " 
                           "16r5FCB"    16r0000 " invalid " 
                           "16r5FCC"    16r3477 " <CJK> " 
                           "16r5FCD"    16r4726 " <CJK> " 
                           "16r5FCE"    16r0000 " invalid " 
                           "16r5FCF"    16r0000 " invalid " 
                           "16r5FD0"    16r0000 " invalid " 
                           "16r5FD1"    16r0000 " invalid " 
                           "16r5FD2"    16r0000 " invalid " 
                           "16r5FD3"    16r0000 " invalid " 
                           "16r5FD4"    16r0000 " invalid " 
                           "16r5FD5"    16r0000 " invalid " 
                           "16r5FD6"    16r5756 " <CJK> " 
                           "16r5FD7"    16r3B56 " <CJK> " 
                           "16r5FD8"    16r4B3A " <CJK> " 
                           "16r5FD9"    16r4B3B " <CJK> " 
                           "16r5FDA"    16r0000 " invalid " 
                           "16r5FDB"    16r0000 " invalid " 
                           "16r5FDC"    16r317E " <CJK> " 
                           "16r5FDD"    16r575B " <CJK> " 
                           "16r5FDE"    16r0000 " invalid " 
                           "16r5FDF"    16r0000 " invalid " 
                           "16r5FE0"    16r4369 " <CJK> " 
                           "16r5FE1"    16r0000 " invalid " 
                           "16r5FE2"    16r0000 " invalid " 
                           "16r5FE3"    16r0000 " invalid " 
                           "16r5FE4"    16r5758 " <CJK> " 
                           "16r5FE5"    16r0000 " invalid " 
                           "16r5FE6"    16r0000 " invalid " 
                           "16r5FE7"    16r0000 " invalid " 
                           "16r5FE8"    16r0000 " invalid " 
                           "16r5FE9"    16r0000 " invalid " 
                           "16r5FEA"    16r0000 " invalid " 
                           "16r5FEB"    16r3277 " <CJK> " 
                           "16r5FEC"    16r0000 " invalid " 
                           "16r5FED"    16r0000 " invalid " 
                           "16r5FEE"    16r0000 " invalid " 
                           "16r5FEF"    16r0000 " invalid " 
                           "16r5FF0"    16r582D " <CJK> " 
                           "16r5FF1"    16r575A " <CJK> " 
                           "16r5FF2"    16r0000 " invalid " 
                           "16r5FF3"    16r0000 " invalid " 
                           "16r5FF4"    16r0000 " invalid " 
                           "16r5FF5"    16r4730 " <CJK> " 
                           "16r5FF6"    16r0000 " invalid " 
                           "16r5FF7"    16r0000 " invalid " 
                           "16r5FF8"    16r5759 " <CJK> " 
                           "16r5FF9"    16r0000 " invalid " 
                           "16r5FFA"    16r0000 " invalid " 
                           "16r5FFB"    16r5757 " <CJK> " 
                           "16r5FFC"    16r0000 " invalid " 
                           "16r5FFD"    16r397A " <CJK> " 
                           "16r5FFE"    16r0000 " invalid " 
                           "16r5FFF"    16r575D " <CJK> " 
                           "16r6000"    16r0000 " invalid " 
                           "16r6001"    16r0000 " invalid " 
                           "16r6002"    16r0000 " invalid " 
                           "16r6003"    16r0000 " invalid " 
                           "16r6004"    16r0000 " invalid " 
                           "16r6005"    16r0000 " invalid " 
                           "16r6006"    16r0000 " invalid " 
                           "16r6007"    16r0000 " invalid " 
                           "16r6008"    16r0000 " invalid " 
                           "16r6009"    16r0000 " invalid " 
                           "16r600A"    16r0000 " invalid " 
                           "16r600B"    16r0000 " invalid " 
                           "16r600C"    16r0000 " invalid " 
                           "16r600D"    16r0000 " invalid " 
                           "16r600E"    16r5763 " <CJK> " 
                           "16r600F"    16r5769 " <CJK> " 
                           "16r6010"    16r5761 " <CJK> " 
                           "16r6011"    16r0000 " invalid " 
                           "16r6012"    16r455C " <CJK> " 
                           "16r6013"    16r0000 " invalid " 
                           "16r6014"    16r0000 " invalid " 
                           "16r6015"    16r5766 " <CJK> " 
                           "16r6016"    16r495D " <CJK> " 
                           "16r6017"    16r0000 " invalid " 
                           "16r6018"    16r0000 " invalid " 
                           "16r6019"    16r5760 " <CJK> " 
                           "16r601A"    16r0000 " invalid " 
                           "16r601B"    16r5765 " <CJK> " 
                           "16r601C"    16r4E67 " <CJK> " 
                           "16r601D"    16r3B57 " <CJK> " 
                           "16r601E"    16r0000 " invalid " 
                           "16r601F"    16r0000 " invalid " 
                           "16r6020"    16r4255 " <CJK> " 
                           "16r6021"    16r575E " <CJK> " 
                           "16r6022"    16r0000 " invalid " 
                           "16r6023"    16r0000 " invalid " 
                           "16r6024"    16r0000 " invalid " 
                           "16r6025"    16r355E " <CJK> " 
                           "16r6026"    16r5768 " <CJK> " 
                           "16r6027"    16r402D " <CJK> " 
                           "16r6028"    16r3165 " <CJK> " 
                           "16r6029"    16r5762 " <CJK> " 
                           "16r602A"    16r3278 " <CJK> " 
                           "16r602B"    16r5767 " <CJK> " 
                           "16r602C"    16r0000 " invalid " 
                           "16r602D"    16r0000 " invalid " 
                           "16r602E"    16r0000 " invalid " 
                           "16r602F"    16r3631 " <CJK> " 
                           "16r6030"    16r0000 " invalid " 
                           "16r6031"    16r5764 " <CJK> " 
                           "16r6032"    16r0000 " invalid " 
                           "16r6033"    16r0000 " invalid " 
                           "16r6034"    16r0000 " invalid " 
                           "16r6035"    16r0000 " invalid " 
                           "16r6036"    16r0000 " invalid " 
                           "16r6037"    16r0000 " invalid " 
                           "16r6038"    16r0000 " invalid " 
                           "16r6039"    16r0000 " invalid " 
                           "16r603A"    16r576A " <CJK> " 
                           "16r603B"    16r0000 " invalid " 
                           "16r603C"    16r0000 " invalid " 
                           "16r603D"    16r0000 " invalid " 
                           "16r603E"    16r0000 " invalid " 
                           "16r603F"    16r0000 " invalid " 
                           "16r6040"    16r0000 " invalid " 
                           "16r6041"    16r576C " <CJK> " 
                           "16r6042"    16r5776 " <CJK> " 
                           "16r6043"    16r5774 " <CJK> " 
                           "16r6044"    16r0000 " invalid " 
                           "16r6045"    16r0000 " invalid " 
                           "16r6046"    16r5771 " <CJK> " 
                           "16r6047"    16r0000 " invalid " 
                           "16r6048"    16r0000 " invalid " 
                           "16r6049"    16r0000 " invalid " 
                           "16r604A"    16r5770 " <CJK> " 
                           "16r604B"    16r4E78 " <CJK> " 
                           "16r604C"    16r0000 " invalid " 
                           "16r604D"    16r5772 " <CJK> " 
                           "16r604E"    16r0000 " invalid " 
                           "16r604F"    16r0000 " invalid " 
                           "16r6050"    16r3632 " <CJK> " 
                           "16r6051"    16r0000 " invalid " 
                           "16r6052"    16r3931 " <CJK> " 
                           "16r6053"    16r0000 " invalid " 
                           "16r6054"    16r0000 " invalid " 
                           "16r6055"    16r3D7A " <CJK> " 
                           "16r6056"    16r0000 " invalid " 
                           "16r6057"    16r0000 " invalid " 
                           "16r6058"    16r0000 " invalid " 
                           "16r6059"    16r5779 " <CJK> " 
                           "16r605A"    16r576B " <CJK> " 
                           "16r605B"    16r0000 " invalid " 
                           "16r605C"    16r0000 " invalid " 
                           "16r605D"    16r0000 " invalid " 
                           "16r605E"    16r0000 " invalid " 
                           "16r605F"    16r576F " <CJK> " 
                           "16r6060"    16r575F " <CJK> " 
                           "16r6061"    16r0000 " invalid " 
                           "16r6062"    16r327A " <CJK> " 
                           "16r6063"    16r5773 " <CJK> " 
                           "16r6064"    16r5775 " <CJK> " 
                           "16r6065"    16r4351 " <CJK> " 
                           "16r6066"    16r0000 " invalid " 
                           "16r6067"    16r0000 " invalid " 
                           "16r6068"    16r3A28 " <CJK> " 
                           "16r6069"    16r3238 " <CJK> " 
                           "16r606A"    16r576D " <CJK> " 
                           "16r606B"    16r5778 " <CJK> " 
                           "16r606C"    16r5777 " <CJK> " 
                           "16r606D"    16r3633 " <CJK> " 
                           "16r606E"    16r0000 " invalid " 
                           "16r606F"    16r4229 " <CJK> " 
                           "16r6070"    16r3366 " <CJK> " 
                           "16r6071"    16r0000 " invalid " 
                           "16r6072"    16r0000 " invalid " 
                           "16r6073"    16r0000 " invalid " 
                           "16r6074"    16r0000 " invalid " 
                           "16r6075"    16r3743 " <CJK> " 
                           "16r6076"    16r0000 " invalid " 
                           "16r6077"    16r576E " <CJK> " 
                           "16r6078"    16r0000 " invalid " 
                           "16r6079"    16r0000 " invalid " 
                           "16r607A"    16r0000 " invalid " 
                           "16r607B"    16r0000 " invalid " 
                           "16r607C"    16r0000 " invalid " 
                           "16r607D"    16r0000 " invalid " 
                           "16r607E"    16r0000 " invalid " 
                           "16r607F"    16r0000 " invalid " 
                           "16r6080"    16r0000 " invalid " 
                           "16r6081"    16r577A " <CJK> " 
                           "16r6082"    16r0000 " invalid " 
                           "16r6083"    16r577D " <CJK> " 
                           "16r6084"    16r5821 " <CJK> " 
                           "16r6085"    16r0000 " invalid " 
                           "16r6086"    16r0000 " invalid " 
                           "16r6087"    16r0000 " invalid " 
                           "16r6088"    16r0000 " invalid " 
                           "16r6089"    16r3C3D " <CJK> " 
                           "16r608A"    16r0000 " invalid " 
                           "16r608B"    16r5827 " <CJK> " 
                           "16r608C"    16r4470 " <CJK> " 
                           "16r608D"    16r577B " <CJK> " 
                           "16r608E"    16r0000 " invalid " 
                           "16r608F"    16r0000 " invalid " 
                           "16r6090"    16r0000 " invalid " 
                           "16r6091"    16r0000 " invalid " 
                           "16r6092"    16r5825 " <CJK> " 
                           "16r6093"    16r0000 " invalid " 
                           "16r6094"    16r3279 " <CJK> " 
                           "16r6095"    16r0000 " invalid " 
                           "16r6096"    16r5823 " <CJK> " 
                           "16r6097"    16r5824 " <CJK> " 
                           "16r6098"    16r0000 " invalid " 
                           "16r6099"    16r0000 " invalid " 
                           "16r609A"    16r577E " <CJK> " 
                           "16r609B"    16r5822 " <CJK> " 
                           "16r609C"    16r0000 " invalid " 
                           "16r609D"    16r0000 " invalid " 
                           "16r609E"    16r0000 " invalid " 
                           "16r609F"    16r3867 " <CJK> " 
                           "16r60A0"    16r4D2A " <CJK> " 
                           "16r60A1"    16r0000 " invalid " 
                           "16r60A2"    16r0000 " invalid " 
                           "16r60A3"    16r3435 " <CJK> " 
                           "16r60A4"    16r0000 " invalid " 
                           "16r60A5"    16r0000 " invalid " 
                           "16r60A6"    16r3159 " <CJK> " 
                           "16r60A7"    16r5826 " <CJK> " 
                           "16r60A8"    16r0000 " invalid " 
                           "16r60A9"    16r473A " <CJK> " 
                           "16r60AA"    16r302D " <CJK> " 
                           "16r60AB"    16r0000 " invalid " 
                           "16r60AC"    16r0000 " invalid " 
                           "16r60AD"    16r0000 " invalid " 
                           "16r60AE"    16r0000 " invalid " 
                           "16r60AF"    16r0000 " invalid " 
                           "16r60B0"    16r0000 " invalid " 
                           "16r60B1"    16r0000 " invalid " 
                           "16r60B2"    16r4861 " <CJK> " 
                           "16r60B3"    16r575C " <CJK> " 
                           "16r60B4"    16r582C " <CJK> " 
                           "16r60B5"    16r5830 " <CJK> " 
                           "16r60B6"    16r4C65 " <CJK> " 
                           "16r60B7"    16r0000 " invalid " 
                           "16r60B8"    16r5829 " <CJK> " 
                           "16r60B9"    16r0000 " invalid " 
                           "16r60BA"    16r0000 " invalid " 
                           "16r60BB"    16r0000 " invalid " 
                           "16r60BC"    16r4569 " <CJK> " 
                           "16r60BD"    16r582E " <CJK> " 
                           "16r60BE"    16r0000 " invalid " 
                           "16r60BF"    16r0000 " invalid " 
                           "16r60C0"    16r0000 " invalid " 
                           "16r60C1"    16r0000 " invalid " 
                           "16r60C2"    16r0000 " invalid " 
                           "16r60C3"    16r0000 " invalid " 
                           "16r60C4"    16r0000 " invalid " 
                           "16r60C5"    16r3E70 " <CJK> " 
                           "16r60C6"    16r582F " <CJK> " 
                           "16r60C7"    16r4657 " <CJK> " 
                           "16r60C8"    16r0000 " invalid " 
                           "16r60C9"    16r0000 " invalid " 
                           "16r60CA"    16r0000 " invalid " 
                           "16r60CB"    16r0000 " invalid " 
                           "16r60CC"    16r0000 " invalid " 
                           "16r60CD"    16r0000 " invalid " 
                           "16r60CE"    16r0000 " invalid " 
                           "16r60CF"    16r0000 " invalid " 
                           "16r60D0"    16r0000 " invalid " 
                           "16r60D1"    16r4F47 " <CJK> " 
                           "16r60D2"    16r0000 " invalid " 
                           "16r60D3"    16r582B " <CJK> " 
                           "16r60D4"    16r0000 " invalid " 
                           "16r60D5"    16r0000 " invalid " 
                           "16r60D6"    16r0000 " invalid " 
                           "16r60D7"    16r0000 " invalid " 
                           "16r60D8"    16r5831 " <CJK> " 
                           "16r60D9"    16r0000 " invalid " 
                           "16r60DA"    16r397B " <CJK> " 
                           "16r60DB"    16r0000 " invalid " 
                           "16r60DC"    16r404B " <CJK> " 
                           "16r60DD"    16r0000 " invalid " 
                           "16r60DE"    16r0000 " invalid " 
                           "16r60DF"    16r3054 " <CJK> " 
                           "16r60E0"    16r582A " <CJK> " 
                           "16r60E1"    16r5828 " <CJK> " 
                           "16r60E2"    16r0000 " invalid " 
                           "16r60E3"    16r415A " <CJK> " 
                           "16r60E4"    16r0000 " invalid " 
                           "16r60E5"    16r0000 " invalid " 
                           "16r60E6"    16r0000 " invalid " 
                           "16r60E7"    16r577C " <CJK> " 
                           "16r60E8"    16r3B34 " <CJK> " 
                           "16r60E9"    16r0000 " invalid " 
                           "16r60EA"    16r0000 " invalid " 
                           "16r60EB"    16r0000 " invalid " 
                           "16r60EC"    16r0000 " invalid " 
                           "16r60ED"    16r0000 " invalid " 
                           "16r60EE"    16r0000 " invalid " 
                           "16r60EF"    16r0000 " invalid " 
                           "16r60F0"    16r4246 " <CJK> " 
                           "16r60F1"    16r583D " <CJK> " 
                           "16r60F2"    16r0000 " invalid " 
                           "16r60F3"    16r415B " <CJK> " 
                           "16r60F4"    16r5838 " <CJK> " 
                           "16r60F5"    16r0000 " invalid " 
                           "16r60F6"    16r5835 " <CJK> " 
                           "16r60F7"    16r5836 " <CJK> " 
                           "16r60F8"    16r0000 " invalid " 
                           "16r60F9"    16r3C66 " <CJK> " 
                           "16r60FA"    16r5839 " <CJK> " 
                           "16r60FB"    16r583C " <CJK> " 
                           "16r60FC"    16r0000 " invalid " 
                           "16r60FD"    16r0000 " invalid " 
                           "16r60FE"    16r0000 " invalid " 
                           "16r60FF"    16r0000 " invalid " 
                           "16r6100"    16r5837 " <CJK> " 
                           "16r6101"    16r3D25 " <CJK> " 
                           "16r6102"    16r0000 " invalid " 
                           "16r6103"    16r583A " <CJK> " 
                           "16r6104"    16r0000 " invalid " 
                           "16r6105"    16r0000 " invalid " 
                           "16r6106"    16r5834 " <CJK> " 
                           "16r6107"    16r0000 " invalid " 
                           "16r6108"    16r4C7C " <CJK> " 
                           "16r6109"    16r4C7B " <CJK> " 
                           "16r610A"    16r0000 " invalid " 
                           "16r610B"    16r0000 " invalid " 
                           "16r610C"    16r0000 " invalid " 
                           "16r610D"    16r583E " <CJK> " 
                           "16r610E"    16r583F " <CJK> " 
                           "16r610F"    16r3055 " <CJK> " 
                           "16r6110"    16r0000 " invalid " 
                           "16r6111"    16r0000 " invalid " 
                           "16r6112"    16r0000 " invalid " 
                           "16r6113"    16r0000 " invalid " 
                           "16r6114"    16r0000 " invalid " 
                           "16r6115"    16r5833 " <CJK> " 
                           "16r6116"    16r0000 " invalid " 
                           "16r6117"    16r0000 " invalid " 
                           "16r6118"    16r0000 " invalid " 
                           "16r6119"    16r0000 " invalid " 
                           "16r611A"    16r3672 " <CJK> " 
                           "16r611B"    16r3026 " <CJK> " 
                           "16r611C"    16r0000 " invalid " 
                           "16r611D"    16r0000 " invalid " 
                           "16r611E"    16r0000 " invalid " 
                           "16r611F"    16r3436 " <CJK> " 
                           "16r6120"    16r0000 " invalid " 
                           "16r6121"    16r583B " <CJK> " 
                           "16r6122"    16r0000 " invalid " 
                           "16r6123"    16r0000 " invalid " 
                           "16r6124"    16r0000 " invalid " 
                           "16r6125"    16r0000 " invalid " 
                           "16r6126"    16r0000 " invalid " 
                           "16r6127"    16r5843 " <CJK> " 
                           "16r6128"    16r5842 " <CJK> " 
                           "16r6129"    16r0000 " invalid " 
                           "16r612A"    16r0000 " invalid " 
                           "16r612B"    16r0000 " invalid " 
                           "16r612C"    16r5847 " <CJK> " 
                           "16r612D"    16r0000 " invalid " 
                           "16r612E"    16r0000 " invalid " 
                           "16r612F"    16r0000 " invalid " 
                           "16r6130"    16r0000 " invalid " 
                           "16r6131"    16r0000 " invalid " 
                           "16r6132"    16r0000 " invalid " 
                           "16r6133"    16r0000 " invalid " 
                           "16r6134"    16r5848 " <CJK> " 
                           "16r6135"    16r0000 " invalid " 
                           "16r6136"    16r0000 " invalid " 
                           "16r6137"    16r0000 " invalid " 
                           "16r6138"    16r0000 " invalid " 
                           "16r6139"    16r0000 " invalid " 
                           "16r613A"    16r0000 " invalid " 
                           "16r613B"    16r0000 " invalid " 
                           "16r613C"    16r5846 " <CJK> " 
                           "16r613D"    16r5849 " <CJK> " 
                           "16r613E"    16r5841 " <CJK> " 
                           "16r613F"    16r5845 " <CJK> " 
                           "16r6140"    16r0000 " invalid " 
                           "16r6141"    16r0000 " invalid " 
                           "16r6142"    16r584A " <CJK> " 
                           "16r6143"    16r0000 " invalid " 
                           "16r6144"    16r584B " <CJK> " 
                           "16r6145"    16r0000 " invalid " 
                           "16r6146"    16r0000 " invalid " 
                           "16r6147"    16r5840 " <CJK> " 
                           "16r6148"    16r3B7C " <CJK> " 
                           "16r6149"    16r0000 " invalid " 
                           "16r614A"    16r5844 " <CJK> " 
                           "16r614B"    16r4256 " <CJK> " 
                           "16r614C"    16r3932 " <CJK> " 
                           "16r614D"    16r5832 " <CJK> " 
                           "16r614E"    16r3F35 " <CJK> " 
                           "16r614F"    16r0000 " invalid " 
                           "16r6150"    16r0000 " invalid " 
                           "16r6151"    16r0000 " invalid " 
                           "16r6152"    16r0000 " invalid " 
                           "16r6153"    16r5858 " <CJK> " 
                           "16r6154"    16r0000 " invalid " 
                           "16r6155"    16r4A69 " <CJK> " 
                           "16r6156"    16r0000 " invalid " 
                           "16r6157"    16r0000 " invalid " 
                           "16r6158"    16r584E " <CJK> " 
                           "16r6159"    16r584F " <CJK> " 
                           "16r615A"    16r5850 " <CJK> " 
                           "16r615B"    16r0000 " invalid " 
                           "16r615C"    16r0000 " invalid " 
                           "16r615D"    16r5857 " <CJK> " 
                           "16r615E"    16r0000 " invalid " 
                           "16r615F"    16r5856 " <CJK> " 
                           "16r6160"    16r0000 " invalid " 
                           "16r6161"    16r0000 " invalid " 
                           "16r6162"    16r4B7D " <CJK> " 
                           "16r6163"    16r3437 " <CJK> " 
                           "16r6164"    16r0000 " invalid " 
                           "16r6165"    16r5854 " <CJK> " 
                           "16r6166"    16r0000 " invalid " 
                           "16r6167"    16r3745 " <CJK> " 
                           "16r6168"    16r3334 " <CJK> " 
                           "16r6169"    16r0000 " invalid " 
                           "16r616A"    16r0000 " invalid " 
                           "16r616B"    16r5851 " <CJK> " 
                           "16r616C"    16r0000 " invalid " 
                           "16r616D"    16r0000 " invalid " 
                           "16r616E"    16r4E38 " <CJK> " 
                           "16r616F"    16r5853 " <CJK> " 
                           "16r6170"    16r3056 " <CJK> " 
                           "16r6171"    16r5855 " <CJK> " 
                           "16r6172"    16r0000 " invalid " 
                           "16r6173"    16r584C " <CJK> " 
                           "16r6174"    16r5852 " <CJK> " 
                           "16r6175"    16r5859 " <CJK> " 
                           "16r6176"    16r3744 " <CJK> " 
                           "16r6177"    16r584D " <CJK> " 
                           "16r6178"    16r0000 " invalid " 
                           "16r6179"    16r0000 " invalid " 
                           "16r617A"    16r0000 " invalid " 
                           "16r617B"    16r0000 " invalid " 
                           "16r617C"    16r0000 " invalid " 
                           "16r617D"    16r0000 " invalid " 
                           "16r617E"    16r4D5D " <CJK> " 
                           "16r617F"    16r0000 " invalid " 
                           "16r6180"    16r0000 " invalid " 
                           "16r6181"    16r0000 " invalid " 
                           "16r6182"    16r4D2B " <CJK> " 
                           "16r6183"    16r0000 " invalid " 
                           "16r6184"    16r0000 " invalid " 
                           "16r6185"    16r0000 " invalid " 
                           "16r6186"    16r0000 " invalid " 
                           "16r6187"    16r585C " <CJK> " 
                           "16r6188"    16r0000 " invalid " 
                           "16r6189"    16r0000 " invalid " 
                           "16r618A"    16r5860 " <CJK> " 
                           "16r618B"    16r0000 " invalid " 
                           "16r618C"    16r0000 " invalid " 
                           "16r618D"    16r0000 " invalid " 
                           "16r618E"    16r417E " <CJK> " 
                           "16r618F"    16r0000 " invalid " 
                           "16r6190"    16r4E79 " <CJK> " 
                           "16r6191"    16r5861 " <CJK> " 
                           "16r6192"    16r0000 " invalid " 
                           "16r6193"    16r0000 " invalid " 
                           "16r6194"    16r585E " <CJK> " 
                           "16r6195"    16r0000 " invalid " 
                           "16r6196"    16r585B " <CJK> " 
                           "16r6197"    16r0000 " invalid " 
                           "16r6198"    16r0000 " invalid " 
                           "16r6199"    16r585A " <CJK> " 
                           "16r619A"    16r585F " <CJK> " 
                           "16r619B"    16r0000 " invalid " 
                           "16r619C"    16r0000 " invalid " 
                           "16r619D"    16r0000 " invalid " 
                           "16r619E"    16r0000 " invalid " 
                           "16r619F"    16r0000 " invalid " 
                           "16r61A0"    16r0000 " invalid " 
                           "16r61A1"    16r0000 " invalid " 
                           "16r61A2"    16r0000 " invalid " 
                           "16r61A3"    16r0000 " invalid " 
                           "16r61A4"    16r4A30 " <CJK> " 
                           "16r61A5"    16r0000 " invalid " 
                           "16r61A6"    16r0000 " invalid " 
                           "16r61A7"    16r4634 " <CJK> " 
                           "16r61A8"    16r0000 " invalid " 
                           "16r61A9"    16r3746 " <CJK> " 
                           "16r61AA"    16r0000 " invalid " 
                           "16r61AB"    16r5862 " <CJK> " 
                           "16r61AC"    16r585D " <CJK> " 
                           "16r61AD"    16r0000 " invalid " 
                           "16r61AE"    16r5863 " <CJK> " 
                           "16r61AF"    16r0000 " invalid " 
                           "16r61B0"    16r0000 " invalid " 
                           "16r61B1"    16r0000 " invalid " 
                           "16r61B2"    16r377B " <CJK> " 
                           "16r61B3"    16r0000 " invalid " 
                           "16r61B4"    16r0000 " invalid " 
                           "16r61B5"    16r0000 " invalid " 
                           "16r61B6"    16r3231 " <CJK> " 
                           "16r61B7"    16r0000 " invalid " 
                           "16r61B8"    16r0000 " invalid " 
                           "16r61B9"    16r0000 " invalid " 
                           "16r61BA"    16r586B " <CJK> " 
                           "16r61BB"    16r0000 " invalid " 
                           "16r61BC"    16r0000 " invalid " 
                           "16r61BD"    16r0000 " invalid " 
                           "16r61BE"    16r3438 " <CJK> " 
                           "16r61BF"    16r0000 " invalid " 
                           "16r61C0"    16r0000 " invalid " 
                           "16r61C1"    16r0000 " invalid " 
                           "16r61C2"    16r0000 " invalid " 
                           "16r61C3"    16r5869 " <CJK> " 
                           "16r61C4"    16r0000 " invalid " 
                           "16r61C5"    16r0000 " invalid " 
                           "16r61C6"    16r586A " <CJK> " 
                           "16r61C7"    16r3A29 " <CJK> " 
                           "16r61C8"    16r5868 " <CJK> " 
                           "16r61C9"    16r5866 " <CJK> " 
                           "16r61CA"    16r5865 " <CJK> " 
                           "16r61CB"    16r586C " <CJK> " 
                           "16r61CC"    16r5864 " <CJK> " 
                           "16r61CD"    16r586E " <CJK> " 
                           "16r61CE"    16r0000 " invalid " 
                           "16r61CF"    16r0000 " invalid " 
                           "16r61D0"    16r327B " <CJK> " 
                           "16r61D1"    16r0000 " invalid " 
                           "16r61D2"    16r0000 " invalid " 
                           "16r61D3"    16r0000 " invalid " 
                           "16r61D4"    16r0000 " invalid " 
                           "16r61D5"    16r0000 " invalid " 
                           "16r61D6"    16r0000 " invalid " 
                           "16r61D7"    16r0000 " invalid " 
                           "16r61D8"    16r0000 " invalid " 
                           "16r61D9"    16r0000 " invalid " 
                           "16r61DA"    16r0000 " invalid " 
                           "16r61DB"    16r0000 " invalid " 
                           "16r61DC"    16r0000 " invalid " 
                           "16r61DD"    16r0000 " invalid " 
                           "16r61DE"    16r0000 " invalid " 
                           "16r61DF"    16r0000 " invalid " 
                           "16r61E0"    16r0000 " invalid " 
                           "16r61E1"    16r0000 " invalid " 
                           "16r61E2"    16r0000 " invalid " 
                           "16r61E3"    16r5870 " <CJK> " 
                           "16r61E4"    16r0000 " invalid " 
                           "16r61E5"    16r0000 " invalid " 
                           "16r61E6"    16r586F " <CJK> " 
                           "16r61E7"    16r0000 " invalid " 
                           "16r61E8"    16r0000 " invalid " 
                           "16r61E9"    16r0000 " invalid " 
                           "16r61EA"    16r0000 " invalid " 
                           "16r61EB"    16r0000 " invalid " 
                           "16r61EC"    16r0000 " invalid " 
                           "16r61ED"    16r0000 " invalid " 
                           "16r61EE"    16r0000 " invalid " 
                           "16r61EF"    16r0000 " invalid " 
                           "16r61F0"    16r0000 " invalid " 
                           "16r61F1"    16r0000 " invalid " 
                           "16r61F2"    16r4428 " <CJK> " 
                           "16r61F3"    16r0000 " invalid " 
                           "16r61F4"    16r5873 " <CJK> " 
                           "16r61F5"    16r0000 " invalid " 
                           "16r61F6"    16r5871 " <CJK> " 
                           "16r61F7"    16r5867 " <CJK> " 
                           "16r61F8"    16r377C " <CJK> " 
                           "16r61F9"    16r0000 " invalid " 
                           "16r61FA"    16r5872 " <CJK> " 
                           "16r61FB"    16r0000 " invalid " 
                           "16r61FC"    16r5876 " <CJK> " 
                           "16r61FD"    16r5875 " <CJK> " 
                           "16r61FE"    16r5877 " <CJK> " 
                           "16r61FF"    16r5874 " <CJK> " 
                           "16r6200"    16r5878 " <CJK> " 
                           "16r6201"    16r0000 " invalid " 
                           "16r6202"    16r0000 " invalid " 
                           "16r6203"    16r0000 " invalid " 
                           "16r6204"    16r0000 " invalid " 
                           "16r6205"    16r0000 " invalid " 
                           "16r6206"    16r0000 " invalid " 
                           "16r6207"    16r0000 " invalid " 
                           "16r6208"    16r5879 " <CJK> " 
                           "16r6209"    16r587A " <CJK> " 
                           "16r620A"    16r4A6A " <CJK> " 
                           "16r620B"    16r0000 " invalid " 
                           "16r620C"    16r587C " <CJK> " 
                           "16r620D"    16r587B " <CJK> " 
                           "16r620E"    16r3D3F " <CJK> " 
                           "16r620F"    16r0000 " invalid " 
                           "16r6210"    16r402E " <CJK> " 
                           "16r6211"    16r3266 " <CJK> " 
                           "16r6212"    16r327C " <CJK> " 
                           "16r6213"    16r0000 " invalid " 
                           "16r6214"    16r587D " <CJK> " 
                           "16r6215"    16r0000 " invalid " 
                           "16r6216"    16r303F " <CJK> " 
                           "16r6217"    16r0000 " invalid " 
                           "16r6218"    16r0000 " invalid " 
                           "16r6219"    16r0000 " invalid " 
                           "16r621A"    16r404C " <CJK> " 
                           "16r621B"    16r587E " <CJK> " 
                           "16r621C"    16r0000 " invalid " 
                           "16r621D"    16r6C43 " <CJK> " 
                           "16r621E"    16r5921 " <CJK> " 
                           "16r621F"    16r3761 " <CJK> " 
                           "16r6220"    16r0000 " invalid " 
                           "16r6221"    16r5922 " <CJK> " 
                           "16r6222"    16r0000 " invalid " 
                           "16r6223"    16r0000 " invalid " 
                           "16r6224"    16r0000 " invalid " 
                           "16r6225"    16r0000 " invalid " 
                           "16r6226"    16r406F " <CJK> " 
                           "16r6227"    16r0000 " invalid " 
                           "16r6228"    16r0000 " invalid " 
                           "16r6229"    16r0000 " invalid " 
                           "16r622A"    16r5923 " <CJK> " 
                           "16r622B"    16r0000 " invalid " 
                           "16r622C"    16r0000 " invalid " 
                           "16r622D"    16r0000 " invalid " 
                           "16r622E"    16r5924 " <CJK> " 
                           "16r622F"    16r353A " <CJK> " 
                           "16r6230"    16r5925 " <CJK> " 
                           "16r6231"    16r0000 " invalid " 
                           "16r6232"    16r5926 " <CJK> " 
                           "16r6233"    16r5927 " <CJK> " 
                           "16r6234"    16r4257 " <CJK> " 
                           "16r6235"    16r0000 " invalid " 
                           "16r6236"    16r0000 " invalid " 
                           "16r6237"    16r0000 " invalid " 
                           "16r6238"    16r384D " <CJK> " 
                           "16r6239"    16r0000 " invalid " 
                           "16r623A"    16r0000 " invalid " 
                           "16r623B"    16r4C61 " <CJK> " 
                           "16r623C"    16r0000 " invalid " 
                           "16r623D"    16r0000 " invalid " 
                           "16r623E"    16r0000 " invalid " 
                           "16r623F"    16r4B3C " <CJK> " 
                           "16r6240"    16r3D6A " <CJK> " 
                           "16r6241"    16r5928 " <CJK> " 
                           "16r6242"    16r0000 " invalid " 
                           "16r6243"    16r0000 " invalid " 
                           "16r6244"    16r0000 " invalid " 
                           "16r6245"    16r0000 " invalid " 
                           "16r6246"    16r0000 " invalid " 
                           "16r6247"    16r4070 " <CJK> " 
                           "16r6248"    16r6E3D " <CJK> " 
                           "16r6249"    16r4862 " <CJK> " 
                           "16r624A"    16r0000 " invalid " 
                           "16r624B"    16r3C6A " <CJK> " 
                           "16r624C"    16r0000 " invalid " 
                           "16r624D"    16r3A4D " <CJK> " 
                           "16r624E"    16r5929 " <CJK> " 
                           "16r624F"    16r0000 " invalid " 
                           "16r6250"    16r0000 " invalid " 
                           "16r6251"    16r0000 " invalid " 
                           "16r6252"    16r0000 " invalid " 
                           "16r6253"    16r4247 " <CJK> " 
                           "16r6254"    16r0000 " invalid " 
                           "16r6255"    16r4A27 " <CJK> " 
                           "16r6256"    16r0000 " invalid " 
                           "16r6257"    16r0000 " invalid " 
                           "16r6258"    16r4271 " <CJK> " 
                           "16r6259"    16r0000 " invalid " 
                           "16r625A"    16r0000 " invalid " 
                           "16r625B"    16r592C " <CJK> " 
                           "16r625C"    16r0000 " invalid " 
                           "16r625D"    16r0000 " invalid " 
                           "16r625E"    16r592A " <CJK> " 
                           "16r625F"    16r0000 " invalid " 
                           "16r6260"    16r592D " <CJK> " 
                           "16r6261"    16r0000 " invalid " 
                           "16r6262"    16r0000 " invalid " 
                           "16r6263"    16r592B " <CJK> " 
                           "16r6264"    16r0000 " invalid " 
                           "16r6265"    16r0000 " invalid " 
                           "16r6266"    16r0000 " invalid " 
                           "16r6267"    16r0000 " invalid " 
                           "16r6268"    16r592E " <CJK> " 
                           "16r6269"    16r0000 " invalid " 
                           "16r626A"    16r0000 " invalid " 
                           "16r626B"    16r0000 " invalid " 
                           "16r626C"    16r0000 " invalid " 
                           "16r626D"    16r0000 " invalid " 
                           "16r626E"    16r4A31 " <CJK> " 
                           "16r626F"    16r0000 " invalid " 
                           "16r6270"    16r0000 " invalid " 
                           "16r6271"    16r3037 " <CJK> " 
                           "16r6272"    16r0000 " invalid " 
                           "16r6273"    16r0000 " invalid " 
                           "16r6274"    16r0000 " invalid " 
                           "16r6275"    16r0000 " invalid " 
                           "16r6276"    16r495E " <CJK> " 
                           "16r6277"    16r0000 " invalid " 
                           "16r6278"    16r0000 " invalid " 
                           "16r6279"    16r4863 " <CJK> " 
                           "16r627A"    16r0000 " invalid " 
                           "16r627B"    16r0000 " invalid " 
                           "16r627C"    16r592F " <CJK> " 
                           "16r627D"    16r0000 " invalid " 
                           "16r627E"    16r5932 " <CJK> " 
                           "16r627F"    16r3E35 " <CJK> " 
                           "16r6280"    16r353B " <CJK> " 
                           "16r6281"    16r0000 " invalid " 
                           "16r6282"    16r5930 " <CJK> " 
                           "16r6283"    16r5937 " <CJK> " 
                           "16r6284"    16r3E36 " <CJK> " 
                           "16r6285"    16r0000 " invalid " 
                           "16r6286"    16r0000 " invalid " 
                           "16r6287"    16r0000 " invalid " 
                           "16r6288"    16r0000 " invalid " 
                           "16r6289"    16r5931 " <CJK> " 
                           "16r628A"    16r4744 " <CJK> " 
                           "16r628B"    16r0000 " invalid " 
                           "16r628C"    16r0000 " invalid " 
                           "16r628D"    16r0000 " invalid " 
                           "16r628E"    16r0000 " invalid " 
                           "16r628F"    16r0000 " invalid " 
                           "16r6290"    16r0000 " invalid " 
                           "16r6291"    16r4D5E " <CJK> " 
                           "16r6292"    16r5933 " <CJK> " 
                           "16r6293"    16r5934 " <CJK> " 
                           "16r6294"    16r5938 " <CJK> " 
                           "16r6295"    16r456A " <CJK> " 
                           "16r6296"    16r5935 " <CJK> " 
                           "16r6297"    16r3933 " <CJK> " 
                           "16r6298"    16r405E " <CJK> " 
                           "16r6299"    16r0000 " invalid " 
                           "16r629A"    16r0000 " invalid " 
                           "16r629B"    16r5946 " <CJK> " 
                           "16r629C"    16r4834 " <CJK> " 
                           "16r629D"    16r0000 " invalid " 
                           "16r629E"    16r4272 " <CJK> " 
                           "16r629F"    16r0000 " invalid " 
                           "16r62A0"    16r0000 " invalid " 
                           "16r62A1"    16r0000 " invalid " 
                           "16r62A2"    16r0000 " invalid " 
                           "16r62A3"    16r0000 " invalid " 
                           "16r62A4"    16r0000 " invalid " 
                           "16r62A5"    16r0000 " invalid " 
                           "16r62A6"    16r0000 " invalid " 
                           "16r62A7"    16r0000 " invalid " 
                           "16r62A8"    16r0000 " invalid " 
                           "16r62A9"    16r0000 " invalid " 
                           "16r62AA"    16r0000 " invalid " 
                           "16r62AB"    16r4864 " <CJK> " 
                           "16r62AC"    16r5A2D " <CJK> " 
                           "16r62AD"    16r0000 " invalid " 
                           "16r62AE"    16r0000 " invalid " 
                           "16r62AF"    16r0000 " invalid " 
                           "16r62B0"    16r0000 " invalid " 
                           "16r62B1"    16r4A7A " <CJK> " 
                           "16r62B2"    16r0000 " invalid " 
                           "16r62B3"    16r0000 " invalid " 
                           "16r62B4"    16r0000 " invalid " 
                           "16r62B5"    16r4471 " <CJK> " 
                           "16r62B6"    16r0000 " invalid " 
                           "16r62B7"    16r0000 " invalid " 
                           "16r62B8"    16r0000 " invalid " 
                           "16r62B9"    16r4B75 " <CJK> " 
                           "16r62BA"    16r0000 " invalid " 
                           "16r62BB"    16r593B " <CJK> " 
                           "16r62BC"    16r3221 " <CJK> " 
                           "16r62BD"    16r436A " <CJK> " 
                           "16r62BE"    16r0000 " invalid " 
                           "16r62BF"    16r0000 " invalid " 
                           "16r62C0"    16r0000 " invalid " 
                           "16r62C1"    16r0000 " invalid " 
                           "16r62C2"    16r5944 " <CJK> " 
                           "16r62C3"    16r0000 " invalid " 
                           "16r62C4"    16r0000 " invalid " 
                           "16r62C5"    16r4334 " <CJK> " 
                           "16r62C6"    16r593E " <CJK> " 
                           "16r62C7"    16r5945 " <CJK> " 
                           "16r62C8"    16r5940 " <CJK> " 
                           "16r62C9"    16r5947 " <CJK> " 
                           "16r62CA"    16r5943 " <CJK> " 
                           "16r62CB"    16r0000 " invalid " 
                           "16r62CC"    16r5942 " <CJK> " 
                           "16r62CD"    16r476F " <CJK> " 
                           "16r62CE"    16r0000 " invalid " 
                           "16r62CF"    16r593C " <CJK> " 
                           "16r62D0"    16r327D " <CJK> " 
                           "16r62D1"    16r593A " <CJK> " 
                           "16r62D2"    16r3571 " <CJK> " 
                           "16r62D3"    16r4273 " <CJK> " 
                           "16r62D4"    16r5936 " <CJK> " 
                           "16r62D5"    16r0000 " invalid " 
                           "16r62D6"    16r0000 " invalid " 
                           "16r62D7"    16r5939 " <CJK> " 
                           "16r62D8"    16r3934 " <CJK> " 
                           "16r62D9"    16r405B " <CJK> " 
                           "16r62DA"    16r0000 " invalid " 
                           "16r62DB"    16r3E37 " <CJK> " 
                           "16r62DC"    16r5941 " <CJK> " 
                           "16r62DD"    16r4752 " <CJK> " 
                           "16r62DE"    16r0000 " invalid " 
                           "16r62DF"    16r0000 " invalid " 
                           "16r62E0"    16r3572 " <CJK> " 
                           "16r62E1"    16r3348 " <CJK> " 
                           "16r62E2"    16r0000 " invalid " 
                           "16r62E3"    16r0000 " invalid " 
                           "16r62E4"    16r0000 " invalid " 
                           "16r62E5"    16r0000 " invalid " 
                           "16r62E6"    16r0000 " invalid " 
                           "16r62E7"    16r0000 " invalid " 
                           "16r62E8"    16r0000 " invalid " 
                           "16r62E9"    16r0000 " invalid " 
                           "16r62EA"    16r0000 " invalid " 
                           "16r62EB"    16r0000 " invalid " 
                           "16r62EC"    16r3367 " <CJK> " 
                           "16r62ED"    16r3F21 " <CJK> " 
                           "16r62EE"    16r5949 " <CJK> " 
                           "16r62EF"    16r594E " <CJK> " 
                           "16r62F0"    16r0000 " invalid " 
                           "16r62F1"    16r594A " <CJK> " 
                           "16r62F2"    16r0000 " invalid " 
                           "16r62F3"    16r377D " <CJK> " 
                           "16r62F4"    16r0000 " invalid " 
                           "16r62F5"    16r594F " <CJK> " 
                           "16r62F6"    16r3B22 " <CJK> " 
                           "16r62F7"    16r3969 " <CJK> " 
                           "16r62F8"    16r0000 " invalid " 
                           "16r62F9"    16r0000 " invalid " 
                           "16r62FA"    16r0000 " invalid " 
                           "16r62FB"    16r0000 " invalid " 
                           "16r62FC"    16r0000 " invalid " 
                           "16r62FD"    16r0000 " invalid " 
                           "16r62FE"    16r3D26 " <CJK> " 
                           "16r62FF"    16r593D " <CJK> " 
                           "16r6300"    16r0000 " invalid " 
                           "16r6301"    16r3B7D " <CJK> " 
                           "16r6302"    16r594C " <CJK> " 
                           "16r6303"    16r0000 " invalid " 
                           "16r6304"    16r0000 " invalid " 
                           "16r6305"    16r0000 " invalid " 
                           "16r6306"    16r0000 " invalid " 
                           "16r6307"    16r3B58 " <CJK> " 
                           "16r6308"    16r594D " <CJK> " 
                           "16r6309"    16r3044 " <CJK> " 
                           "16r630A"    16r0000 " invalid " 
                           "16r630B"    16r0000 " invalid " 
                           "16r630C"    16r5948 " <CJK> " 
                           "16r630D"    16r0000 " invalid " 
                           "16r630E"    16r0000 " invalid " 
                           "16r630F"    16r0000 " invalid " 
                           "16r6310"    16r0000 " invalid " 
                           "16r6311"    16r4429 " <CJK> " 
                           "16r6312"    16r0000 " invalid " 
                           "16r6313"    16r0000 " invalid " 
                           "16r6314"    16r0000 " invalid " 
                           "16r6315"    16r0000 " invalid " 
                           "16r6316"    16r0000 " invalid " 
                           "16r6317"    16r0000 " invalid " 
                           "16r6318"    16r0000 " invalid " 
                           "16r6319"    16r3573 " <CJK> " 
                           "16r631A"    16r0000 " invalid " 
                           "16r631B"    16r0000 " invalid " 
                           "16r631C"    16r0000 " invalid " 
                           "16r631D"    16r0000 " invalid " 
                           "16r631E"    16r0000 " invalid " 
                           "16r631F"    16r3634 " <CJK> " 
                           "16r6320"    16r0000 " invalid " 
                           "16r6321"    16r0000 " invalid " 
                           "16r6322"    16r0000 " invalid " 
                           "16r6323"    16r0000 " invalid " 
                           "16r6324"    16r0000 " invalid " 
                           "16r6325"    16r0000 " invalid " 
                           "16r6326"    16r0000 " invalid " 
                           "16r6327"    16r594B " <CJK> " 
                           "16r6328"    16r3027 " <CJK> " 
                           "16r6329"    16r0000 " invalid " 
                           "16r632A"    16r0000 " invalid " 
                           "16r632B"    16r3A43 " <CJK> " 
                           "16r632C"    16r0000 " invalid " 
                           "16r632D"    16r0000 " invalid " 
                           "16r632E"    16r0000 " invalid " 
                           "16r632F"    16r3F36 " <CJK> " 
                           "16r6330"    16r0000 " invalid " 
                           "16r6331"    16r0000 " invalid " 
                           "16r6332"    16r0000 " invalid " 
                           "16r6333"    16r0000 " invalid " 
                           "16r6334"    16r0000 " invalid " 
                           "16r6335"    16r0000 " invalid " 
                           "16r6336"    16r0000 " invalid " 
                           "16r6337"    16r0000 " invalid " 
                           "16r6338"    16r0000 " invalid " 
                           "16r6339"    16r0000 " invalid " 
                           "16r633A"    16r4472 " <CJK> " 
                           "16r633B"    16r0000 " invalid " 
                           "16r633C"    16r0000 " invalid " 
                           "16r633D"    16r4854 " <CJK> " 
                           "16r633E"    16r5951 " <CJK> " 
                           "16r633F"    16r415E " <CJK> " 
                           "16r6340"    16r0000 " invalid " 
                           "16r6341"    16r0000 " invalid " 
                           "16r6342"    16r0000 " invalid " 
                           "16r6343"    16r0000 " invalid " 
                           "16r6344"    16r0000 " invalid " 
                           "16r6345"    16r0000 " invalid " 
                           "16r6346"    16r0000 " invalid " 
                           "16r6347"    16r0000 " invalid " 
                           "16r6348"    16r0000 " invalid " 
                           "16r6349"    16r422A " <CJK> " 
                           "16r634A"    16r0000 " invalid " 
                           "16r634B"    16r0000 " invalid " 
                           "16r634C"    16r3B2B " <CJK> " 
                           "16r634D"    16r5952 " <CJK> " 
                           "16r634E"    16r0000 " invalid " 
                           "16r634F"    16r5954 " <CJK> " 
                           "16r6350"    16r5950 " <CJK> " 
                           "16r6351"    16r0000 " invalid " 
                           "16r6352"    16r0000 " invalid " 
                           "16r6353"    16r0000 " invalid " 
                           "16r6354"    16r0000 " invalid " 
                           "16r6355"    16r4A61 " <CJK> " 
                           "16r6356"    16r0000 " invalid " 
                           "16r6357"    16r443D " <CJK> " 
                           "16r6358"    16r0000 " invalid " 
                           "16r6359"    16r0000 " invalid " 
                           "16r635A"    16r0000 " invalid " 
                           "16r635B"    16r0000 " invalid " 
                           "16r635C"    16r415C " <CJK> " 
                           "16r635D"    16r0000 " invalid " 
                           "16r635E"    16r0000 " invalid " 
                           "16r635F"    16r0000 " invalid " 
                           "16r6360"    16r0000 " invalid " 
                           "16r6361"    16r0000 " invalid " 
                           "16r6362"    16r0000 " invalid " 
                           "16r6363"    16r0000 " invalid " 
                           "16r6364"    16r0000 " invalid " 
                           "16r6365"    16r0000 " invalid " 
                           "16r6366"    16r0000 " invalid " 
                           "16r6367"    16r4A7B " <CJK> " 
                           "16r6368"    16r3C4E " <CJK> " 
                           "16r6369"    16r5960 " <CJK> " 
                           "16r636A"    16r0000 " invalid " 
                           "16r636B"    16r595F " <CJK> " 
                           "16r636C"    16r0000 " invalid " 
                           "16r636D"    16r0000 " invalid " 
                           "16r636E"    16r3F78 " <CJK> " 
                           "16r636F"    16r0000 " invalid " 
                           "16r6370"    16r0000 " invalid " 
                           "16r6371"    16r0000 " invalid " 
                           "16r6372"    16r377E " <CJK> " 
                           "16r6373"    16r0000 " invalid " 
                           "16r6374"    16r0000 " invalid " 
                           "16r6375"    16r0000 " invalid " 
                           "16r6376"    16r5959 " <CJK> " 
                           "16r6377"    16r3E39 " <CJK> " 
                           "16r6378"    16r0000 " invalid " 
                           "16r6379"    16r0000 " invalid " 
                           "16r637A"    16r4668 " <CJK> " 
                           "16r637B"    16r4731 " <CJK> " 
                           "16r637C"    16r0000 " invalid " 
                           "16r637D"    16r0000 " invalid " 
                           "16r637E"    16r0000 " invalid " 
                           "16r637F"    16r0000 " invalid " 
                           "16r6380"    16r5957 " <CJK> " 
                           "16r6381"    16r0000 " invalid " 
                           "16r6382"    16r0000 " invalid " 
                           "16r6383"    16r415D " <CJK> " 
                           "16r6384"    16r0000 " invalid " 
                           "16r6385"    16r0000 " invalid " 
                           "16r6386"    16r0000 " invalid " 
                           "16r6387"    16r0000 " invalid " 
                           "16r6388"    16r3C78 " <CJK> " 
                           "16r6389"    16r595C " <CJK> " 
                           "16r638A"    16r0000 " invalid " 
                           "16r638B"    16r0000 " invalid " 
                           "16r638C"    16r3E38 " <CJK> " 
                           "16r638D"    16r0000 " invalid " 
                           "16r638E"    16r5956 " <CJK> " 
                           "16r638F"    16r595B " <CJK> " 
                           "16r6390"    16r0000 " invalid " 
                           "16r6391"    16r0000 " invalid " 
                           "16r6392"    16r4753 " <CJK> " 
                           "16r6393"    16r0000 " invalid " 
                           "16r6394"    16r0000 " invalid " 
                           "16r6395"    16r0000 " invalid " 
                           "16r6396"    16r5955 " <CJK> " 
                           "16r6397"    16r0000 " invalid " 
                           "16r6398"    16r3721 " <CJK> " 
                           "16r6399"    16r0000 " invalid " 
                           "16r639A"    16r0000 " invalid " 
                           "16r639B"    16r335D " <CJK> " 
                           "16r639C"    16r0000 " invalid " 
                           "16r639D"    16r0000 " invalid " 
                           "16r639E"    16r0000 " invalid " 
                           "16r639F"    16r595D " <CJK> " 
                           "16r63A0"    16r4E2B " <CJK> " 
                           "16r63A1"    16r3A4E " <CJK> " 
                           "16r63A2"    16r4335 " <CJK> " 
                           "16r63A3"    16r595A " <CJK> " 
                           "16r63A4"    16r0000 " invalid " 
                           "16r63A5"    16r405C " <CJK> " 
                           "16r63A6"    16r0000 " invalid " 
                           "16r63A7"    16r3935 " <CJK> " 
                           "16r63A8"    16r3F64 " <CJK> " 
                           "16r63A9"    16r3166 " <CJK> " 
                           "16r63AA"    16r413C " <CJK> " 
                           "16r63AB"    16r5958 " <CJK> " 
                           "16r63AC"    16r3545 " <CJK> " 
                           "16r63AD"    16r0000 " invalid " 
                           "16r63AE"    16r0000 " invalid " 
                           "16r63AF"    16r0000 " invalid " 
                           "16r63B0"    16r0000 " invalid " 
                           "16r63B1"    16r0000 " invalid " 
                           "16r63B2"    16r3747 " <CJK> " 
                           "16r63B3"    16r0000 " invalid " 
                           "16r63B4"    16r444F " <CJK> " 
                           "16r63B5"    16r595E " <CJK> " 
                           "16r63B6"    16r0000 " invalid " 
                           "16r63B7"    16r0000 " invalid " 
                           "16r63B8"    16r0000 " invalid " 
                           "16r63B9"    16r0000 " invalid " 
                           "16r63BA"    16r0000 " invalid " 
                           "16r63BB"    16r415F " <CJK> " 
                           "16r63BC"    16r0000 " invalid " 
                           "16r63BD"    16r0000 " invalid " 
                           "16r63BE"    16r5961 " <CJK> " 
                           "16r63BF"    16r0000 " invalid " 
                           "16r63C0"    16r5963 " <CJK> " 
                           "16r63C1"    16r0000 " invalid " 
                           "16r63C2"    16r0000 " invalid " 
                           "16r63C3"    16r4237 " <CJK> " 
                           "16r63C4"    16r5969 " <CJK> " 
                           "16r63C5"    16r0000 " invalid " 
                           "16r63C6"    16r5964 " <CJK> " 
                           "16r63C7"    16r0000 " invalid " 
                           "16r63C8"    16r0000 " invalid " 
                           "16r63C9"    16r5966 " <CJK> " 
                           "16r63CA"    16r0000 " invalid " 
                           "16r63CB"    16r0000 " invalid " 
                           "16r63CC"    16r0000 " invalid " 
                           "16r63CD"    16r0000 " invalid " 
                           "16r63CE"    16r0000 " invalid " 
                           "16r63CF"    16r4941 " <CJK> " 
                           "16r63D0"    16r4473 " <CJK> " 
                           "16r63D1"    16r0000 " invalid " 
                           "16r63D2"    16r5967 " <CJK> " 
                           "16r63D3"    16r0000 " invalid " 
                           "16r63D4"    16r0000 " invalid " 
                           "16r63D5"    16r0000 " invalid " 
                           "16r63D6"    16r4D2C " <CJK> " 
                           "16r63D7"    16r0000 " invalid " 
                           "16r63D8"    16r0000 " invalid " 
                           "16r63D9"    16r0000 " invalid " 
                           "16r63DA"    16r4D48 " <CJK> " 
                           "16r63DB"    16r3439 " <CJK> " 
                           "16r63DC"    16r0000 " invalid " 
                           "16r63DD"    16r0000 " invalid " 
                           "16r63DE"    16r0000 " invalid " 
                           "16r63DF"    16r0000 " invalid " 
                           "16r63E0"    16r0000 " invalid " 
                           "16r63E1"    16r302E " <CJK> " 
                           "16r63E2"    16r0000 " invalid " 
                           "16r63E3"    16r5965 " <CJK> " 
                           "16r63E4"    16r0000 " invalid " 
                           "16r63E5"    16r0000 " invalid " 
                           "16r63E6"    16r0000 " invalid " 
                           "16r63E7"    16r0000 " invalid " 
                           "16r63E8"    16r0000 " invalid " 
                           "16r63E9"    16r5962 " <CJK> " 
                           "16r63EA"    16r0000 " invalid " 
                           "16r63EB"    16r0000 " invalid " 
                           "16r63EC"    16r0000 " invalid " 
                           "16r63ED"    16r0000 " invalid " 
                           "16r63EE"    16r3478 " <CJK> " 
                           "16r63EF"    16r0000 " invalid " 
                           "16r63F0"    16r0000 " invalid " 
                           "16r63F1"    16r0000 " invalid " 
                           "16r63F2"    16r0000 " invalid " 
                           "16r63F3"    16r0000 " invalid " 
                           "16r63F4"    16r3167 " <CJK> " 
                           "16r63F5"    16r0000 " invalid " 
                           "16r63F6"    16r5968 " <CJK> " 
                           "16r63F7"    16r0000 " invalid " 
                           "16r63F8"    16r0000 " invalid " 
                           "16r63F9"    16r0000 " invalid " 
                           "16r63FA"    16r4D49 " <CJK> " 
                           "16r63FB"    16r0000 " invalid " 
                           "16r63FC"    16r0000 " invalid " 
                           "16r63FD"    16r0000 " invalid " 
                           "16r63FE"    16r0000 " invalid " 
                           "16r63FF"    16r0000 " invalid " 
                           "16r6400"    16r0000 " invalid " 
                           "16r6401"    16r0000 " invalid " 
                           "16r6402"    16r0000 " invalid " 
                           "16r6403"    16r0000 " invalid " 
                           "16r6404"    16r0000 " invalid " 
                           "16r6405"    16r0000 " invalid " 
                           "16r6406"    16r596C " <CJK> " 
                           "16r6407"    16r0000 " invalid " 
                           "16r6408"    16r0000 " invalid " 
                           "16r6409"    16r0000 " invalid " 
                           "16r640A"    16r0000 " invalid " 
                           "16r640B"    16r0000 " invalid " 
                           "16r640C"    16r0000 " invalid " 
                           "16r640D"    16r423B " <CJK> " 
                           "16r640E"    16r0000 " invalid " 
                           "16r640F"    16r5973 " <CJK> " 
                           "16r6410"    16r0000 " invalid " 
                           "16r6411"    16r0000 " invalid " 
                           "16r6412"    16r0000 " invalid " 
                           "16r6413"    16r596D " <CJK> " 
                           "16r6414"    16r0000 " invalid " 
                           "16r6415"    16r0000 " invalid " 
                           "16r6416"    16r596A " <CJK> " 
                           "16r6417"    16r5971 " <CJK> " 
                           "16r6418"    16r0000 " invalid " 
                           "16r6419"    16r0000 " invalid " 
                           "16r641A"    16r0000 " invalid " 
                           "16r641B"    16r0000 " invalid " 
                           "16r641C"    16r5953 " <CJK> " 
                           "16r641D"    16r0000 " invalid " 
                           "16r641E"    16r0000 " invalid " 
                           "16r641F"    16r0000 " invalid " 
                           "16r6420"    16r0000 " invalid " 
                           "16r6421"    16r0000 " invalid " 
                           "16r6422"    16r0000 " invalid " 
                           "16r6423"    16r0000 " invalid " 
                           "16r6424"    16r0000 " invalid " 
                           "16r6425"    16r0000 " invalid " 
                           "16r6426"    16r596E " <CJK> " 
                           "16r6427"    16r0000 " invalid " 
                           "16r6428"    16r5972 " <CJK> " 
                           "16r6429"    16r0000 " invalid " 
                           "16r642A"    16r0000 " invalid " 
                           "16r642B"    16r0000 " invalid " 
                           "16r642C"    16r4842 " <CJK> " 
                           "16r642D"    16r456B " <CJK> " 
                           "16r642E"    16r0000 " invalid " 
                           "16r642F"    16r0000 " invalid " 
                           "16r6430"    16r0000 " invalid " 
                           "16r6431"    16r0000 " invalid " 
                           "16r6432"    16r0000 " invalid " 
                           "16r6433"    16r0000 " invalid " 
                           "16r6434"    16r596B " <CJK> " 
                           "16r6435"    16r0000 " invalid " 
                           "16r6436"    16r596F " <CJK> " 
                           "16r6437"    16r0000 " invalid " 
                           "16r6438"    16r0000 " invalid " 
                           "16r6439"    16r0000 " invalid " 
                           "16r643A"    16r3748 " <CJK> " 
                           "16r643B"    16r0000 " invalid " 
                           "16r643C"    16r0000 " invalid " 
                           "16r643D"    16r0000 " invalid " 
                           "16r643E"    16r3A71 " <CJK> " 
                           "16r643F"    16r0000 " invalid " 
                           "16r6440"    16r0000 " invalid " 
                           "16r6441"    16r0000 " invalid " 
                           "16r6442"    16r405D " <CJK> " 
                           "16r6443"    16r0000 " invalid " 
                           "16r6444"    16r0000 " invalid " 
                           "16r6445"    16r0000 " invalid " 
                           "16r6446"    16r0000 " invalid " 
                           "16r6447"    16r0000 " invalid " 
                           "16r6448"    16r0000 " invalid " 
                           "16r6449"    16r0000 " invalid " 
                           "16r644A"    16r0000 " invalid " 
                           "16r644B"    16r0000 " invalid " 
                           "16r644C"    16r0000 " invalid " 
                           "16r644D"    16r0000 " invalid " 
                           "16r644E"    16r5977 " <CJK> " 
                           "16r644F"    16r0000 " invalid " 
                           "16r6450"    16r0000 " invalid " 
                           "16r6451"    16r0000 " invalid " 
                           "16r6452"    16r0000 " invalid " 
                           "16r6453"    16r0000 " invalid " 
                           "16r6454"    16r0000 " invalid " 
                           "16r6455"    16r0000 " invalid " 
                           "16r6456"    16r0000 " invalid " 
                           "16r6457"    16r0000 " invalid " 
                           "16r6458"    16r4526 " <CJK> " 
                           "16r6459"    16r0000 " invalid " 
                           "16r645A"    16r0000 " invalid " 
                           "16r645B"    16r0000 " invalid " 
                           "16r645C"    16r0000 " invalid " 
                           "16r645D"    16r0000 " invalid " 
                           "16r645E"    16r0000 " invalid " 
                           "16r645F"    16r0000 " invalid " 
                           "16r6460"    16r0000 " invalid " 
                           "16r6461"    16r0000 " invalid " 
                           "16r6462"    16r0000 " invalid " 
                           "16r6463"    16r0000 " invalid " 
                           "16r6464"    16r0000 " invalid " 
                           "16r6465"    16r0000 " invalid " 
                           "16r6466"    16r0000 " invalid " 
                           "16r6467"    16r5974 " <CJK> " 
                           "16r6468"    16r0000 " invalid " 
                           "16r6469"    16r4B60 " <CJK> " 
                           "16r646A"    16r0000 " invalid " 
                           "16r646B"    16r0000 " invalid " 
                           "16r646C"    16r0000 " invalid " 
                           "16r646D"    16r0000 " invalid " 
                           "16r646E"    16r0000 " invalid " 
                           "16r646F"    16r5975 " <CJK> " 
                           "16r6470"    16r0000 " invalid " 
                           "16r6471"    16r0000 " invalid " 
                           "16r6472"    16r0000 " invalid " 
                           "16r6473"    16r0000 " invalid " 
                           "16r6474"    16r0000 " invalid " 
                           "16r6475"    16r0000 " invalid " 
                           "16r6476"    16r5976 " <CJK> " 
                           "16r6477"    16r0000 " invalid " 
                           "16r6478"    16r4C4E " <CJK> " 
                           "16r6479"    16r0000 " invalid " 
                           "16r647A"    16r4022 " <CJK> " 
                           "16r647B"    16r0000 " invalid " 
                           "16r647C"    16r0000 " invalid " 
                           "16r647D"    16r0000 " invalid " 
                           "16r647E"    16r0000 " invalid " 
                           "16r647F"    16r0000 " invalid " 
                           "16r6480"    16r0000 " invalid " 
                           "16r6481"    16r0000 " invalid " 
                           "16r6482"    16r0000 " invalid " 
                           "16r6483"    16r3762 " <CJK> " 
                           "16r6484"    16r0000 " invalid " 
                           "16r6485"    16r0000 " invalid " 
                           "16r6486"    16r0000 " invalid " 
                           "16r6487"    16r0000 " invalid " 
                           "16r6488"    16r597D " <CJK> " 
                           "16r6489"    16r0000 " invalid " 
                           "16r648A"    16r0000 " invalid " 
                           "16r648B"    16r0000 " invalid " 
                           "16r648C"    16r0000 " invalid " 
                           "16r648D"    16r0000 " invalid " 
                           "16r648E"    16r0000 " invalid " 
                           "16r648F"    16r0000 " invalid " 
                           "16r6490"    16r0000 " invalid " 
                           "16r6491"    16r0000 " invalid " 
                           "16r6492"    16r3B35 " <CJK> " 
                           "16r6493"    16r597A " <CJK> " 
                           "16r6494"    16r0000 " invalid " 
                           "16r6495"    16r5979 " <CJK> " 
                           "16r6496"    16r0000 " invalid " 
                           "16r6497"    16r0000 " invalid " 
                           "16r6498"    16r0000 " invalid " 
                           "16r6499"    16r0000 " invalid " 
                           "16r649A"    16r4732 " <CJK> " 
                           "16r649B"    16r0000 " invalid " 
                           "16r649C"    16r0000 " invalid " 
                           "16r649D"    16r0000 " invalid " 
                           "16r649E"    16r4635 " <CJK> " 
                           "16r649F"    16r0000 " invalid " 
                           "16r64A0"    16r0000 " invalid " 
                           "16r64A1"    16r0000 " invalid " 
                           "16r64A2"    16r0000 " invalid " 
                           "16r64A3"    16r0000 " invalid " 
                           "16r64A4"    16r4531 " <CJK> " 
                           "16r64A5"    16r597B " <CJK> " 
                           "16r64A6"    16r0000 " invalid " 
                           "16r64A7"    16r0000 " invalid " 
                           "16r64A8"    16r0000 " invalid " 
                           "16r64A9"    16r597C " <CJK> " 
                           "16r64AA"    16r0000 " invalid " 
                           "16r64AB"    16r496F " <CJK> " 
                           "16r64AC"    16r0000 " invalid " 
                           "16r64AD"    16r4745 " <CJK> " 
                           "16r64AE"    16r3B23 " <CJK> " 
                           "16r64AF"    16r0000 " invalid " 
                           "16r64B0"    16r4071 " <CJK> " 
                           "16r64B1"    16r0000 " invalid " 
                           "16r64B2"    16r4B50 " <CJK> " 
                           "16r64B3"    16r0000 " invalid " 
                           "16r64B4"    16r0000 " invalid " 
                           "16r64B5"    16r0000 " invalid " 
                           "16r64B6"    16r0000 " invalid " 
                           "16r64B7"    16r0000 " invalid " 
                           "16r64B8"    16r0000 " invalid " 
                           "16r64B9"    16r3349 " <CJK> " 
                           "16r64BA"    16r0000 " invalid " 
                           "16r64BB"    16r5A25 " <CJK> " 
                           "16r64BC"    16r597E " <CJK> " 
                           "16r64BD"    16r0000 " invalid " 
                           "16r64BE"    16r0000 " invalid " 
                           "16r64BF"    16r0000 " invalid " 
                           "16r64C0"    16r0000 " invalid " 
                           "16r64C1"    16r4D4A " <CJK> " 
                           "16r64C2"    16r5A27 " <CJK> " 
                           "16r64C3"    16r0000 " invalid " 
                           "16r64C4"    16r0000 " invalid " 
                           "16r64C5"    16r5A23 " <CJK> " 
                           "16r64C6"    16r0000 " invalid " 
                           "16r64C7"    16r5A24 " <CJK> " 
                           "16r64C8"    16r0000 " invalid " 
                           "16r64C9"    16r0000 " invalid " 
                           "16r64CA"    16r0000 " invalid " 
                           "16r64CB"    16r0000 " invalid " 
                           "16r64CC"    16r0000 " invalid " 
                           "16r64CD"    16r4160 " <CJK> " 
                           "16r64CE"    16r0000 " invalid " 
                           "16r64CF"    16r0000 " invalid " 
                           "16r64D0"    16r0000 " invalid " 
                           "16r64D1"    16r0000 " invalid " 
                           "16r64D2"    16r5A22 " <CJK> " 
                           "16r64D3"    16r0000 " invalid " 
                           "16r64D4"    16r593F " <CJK> " 
                           "16r64D5"    16r0000 " invalid " 
                           "16r64D6"    16r0000 " invalid " 
                           "16r64D7"    16r0000 " invalid " 
                           "16r64D8"    16r5A26 " <CJK> " 
                           "16r64D9"    16r0000 " invalid " 
                           "16r64DA"    16r5A21 " <CJK> " 
                           "16r64DB"    16r0000 " invalid " 
                           "16r64DC"    16r0000 " invalid " 
                           "16r64DD"    16r0000 " invalid " 
                           "16r64DE"    16r0000 " invalid " 
                           "16r64DF"    16r0000 " invalid " 
                           "16r64E0"    16r5A2B " <CJK> " 
                           "16r64E1"    16r5A2C " <CJK> " 
                           "16r64E2"    16r4527 " <CJK> " 
                           "16r64E3"    16r5A2E " <CJK> " 
                           "16r64E4"    16r0000 " invalid " 
                           "16r64E5"    16r0000 " invalid " 
                           "16r64E6"    16r3B24 " <CJK> " 
                           "16r64E7"    16r5A29 " <CJK> " 
                           "16r64E8"    16r0000 " invalid " 
                           "16r64E9"    16r0000 " invalid " 
                           "16r64EA"    16r0000 " invalid " 
                           "16r64EB"    16r0000 " invalid " 
                           "16r64EC"    16r353C " <CJK> " 
                           "16r64ED"    16r0000 " invalid " 
                           "16r64EE"    16r0000 " invalid " 
                           "16r64EF"    16r5A2F " <CJK> " 
                           "16r64F0"    16r0000 " invalid " 
                           "16r64F1"    16r5A28 " <CJK> " 
                           "16r64F2"    16r5A33 " <CJK> " 
                           "16r64F3"    16r0000 " invalid " 
                           "16r64F4"    16r5A32 " <CJK> " 
                           "16r64F5"    16r0000 " invalid " 
                           "16r64F6"    16r5A31 " <CJK> " 
                           "16r64F7"    16r0000 " invalid " 
                           "16r64F8"    16r0000 " invalid " 
                           "16r64F9"    16r0000 " invalid " 
                           "16r64FA"    16r5A34 " <CJK> " 
                           "16r64FB"    16r0000 " invalid " 
                           "16r64FC"    16r0000 " invalid " 
                           "16r64FD"    16r5A36 " <CJK> " 
                           "16r64FE"    16r3E71 " <CJK> " 
                           "16r64FF"    16r0000 " invalid " 
                           "16r6500"    16r5A35 " <CJK> " 
                           "16r6501"    16r0000 " invalid " 
                           "16r6502"    16r0000 " invalid " 
                           "16r6503"    16r0000 " invalid " 
                           "16r6504"    16r0000 " invalid " 
                           "16r6505"    16r5A39 " <CJK> " 
                           "16r6506"    16r0000 " invalid " 
                           "16r6507"    16r0000 " invalid " 
                           "16r6508"    16r0000 " invalid " 
                           "16r6509"    16r0000 " invalid " 
                           "16r650A"    16r0000 " invalid " 
                           "16r650B"    16r0000 " invalid " 
                           "16r650C"    16r0000 " invalid " 
                           "16r650D"    16r0000 " invalid " 
                           "16r650E"    16r0000 " invalid " 
                           "16r650F"    16r0000 " invalid " 
                           "16r6510"    16r0000 " invalid " 
                           "16r6511"    16r0000 " invalid " 
                           "16r6512"    16r0000 " invalid " 
                           "16r6513"    16r0000 " invalid " 
                           "16r6514"    16r0000 " invalid " 
                           "16r6515"    16r0000 " invalid " 
                           "16r6516"    16r0000 " invalid " 
                           "16r6517"    16r0000 " invalid " 
                           "16r6518"    16r5A37 " <CJK> " 
                           "16r6519"    16r0000 " invalid " 
                           "16r651A"    16r0000 " invalid " 
                           "16r651B"    16r0000 " invalid " 
                           "16r651C"    16r5A38 " <CJK> " 
                           "16r651D"    16r5970 " <CJK> " 
                           "16r651E"    16r0000 " invalid " 
                           "16r651F"    16r0000 " invalid " 
                           "16r6520"    16r0000 " invalid " 
                           "16r6521"    16r0000 " invalid " 
                           "16r6522"    16r0000 " invalid " 
                           "16r6523"    16r5A3B " <CJK> " 
                           "16r6524"    16r5A3A " <CJK> " 
                           "16r6525"    16r0000 " invalid " 
                           "16r6526"    16r0000 " invalid " 
                           "16r6527"    16r0000 " invalid " 
                           "16r6528"    16r0000 " invalid " 
                           "16r6529"    16r0000 " invalid " 
                           "16r652A"    16r5978 " <CJK> " 
                           "16r652B"    16r5A3C " <CJK> " 
                           "16r652C"    16r5A30 " <CJK> " 
                           "16r652D"    16r0000 " invalid " 
                           "16r652E"    16r0000 " invalid " 
                           "16r652F"    16r3B59 " <CJK> " 
                           "16r6530"    16r0000 " invalid " 
                           "16r6531"    16r0000 " invalid " 
                           "16r6532"    16r0000 " invalid " 
                           "16r6533"    16r0000 " invalid " 
                           "16r6534"    16r5A3D " <CJK> " 
                           "16r6535"    16r5A3E " <CJK> " 
                           "16r6536"    16r5A40 " <CJK> " 
                           "16r6537"    16r5A3F " <CJK> " 
                           "16r6538"    16r5A41 " <CJK> " 
                           "16r6539"    16r327E " <CJK> " 
                           "16r653A"    16r0000 " invalid " 
                           "16r653B"    16r3936 " <CJK> " 
                           "16r653C"    16r0000 " invalid " 
                           "16r653D"    16r0000 " invalid " 
                           "16r653E"    16r4A7C " <CJK> " 
                           "16r653F"    16r402F " <CJK> " 
                           "16r6540"    16r0000 " invalid " 
                           "16r6541"    16r0000 " invalid " 
                           "16r6542"    16r0000 " invalid " 
                           "16r6543"    16r0000 " invalid " 
                           "16r6544"    16r0000 " invalid " 
                           "16r6545"    16r384E " <CJK> " 
                           "16r6546"    16r0000 " invalid " 
                           "16r6547"    16r0000 " invalid " 
                           "16r6548"    16r5A43 " <CJK> " 
                           "16r6549"    16r0000 " invalid " 
                           "16r654A"    16r0000 " invalid " 
                           "16r654B"    16r0000 " invalid " 
                           "16r654C"    16r0000 " invalid " 
                           "16r654D"    16r5A46 " <CJK> " 
                           "16r654E"    16r0000 " invalid " 
                           "16r654F"    16r4952 " <CJK> " 
                           "16r6550"    16r0000 " invalid " 
                           "16r6551"    16r355F " <CJK> " 
                           "16r6552"    16r0000 " invalid " 
                           "16r6553"    16r0000 " invalid " 
                           "16r6554"    16r0000 " invalid " 
                           "16r6555"    16r5A45 " <CJK> " 
                           "16r6556"    16r5A44 " <CJK> " 
                           "16r6557"    16r4754 " <CJK> " 
                           "16r6558"    16r5A47 " <CJK> " 
                           "16r6559"    16r3635 " <CJK> " 
                           "16r655A"    16r0000 " invalid " 
                           "16r655B"    16r0000 " invalid " 
                           "16r655C"    16r0000 " invalid " 
                           "16r655D"    16r5A49 " <CJK> " 
                           "16r655E"    16r5A48 " <CJK> " 
                           "16r655F"    16r0000 " invalid " 
                           "16r6560"    16r0000 " invalid " 
                           "16r6561"    16r0000 " invalid " 
                           "16r6562"    16r343A " <CJK> " 
                           "16r6563"    16r3B36 " <CJK> " 
                           "16r6564"    16r0000 " invalid " 
                           "16r6565"    16r0000 " invalid " 
                           "16r6566"    16r4658 " <CJK> " 
                           "16r6567"    16r0000 " invalid " 
                           "16r6568"    16r0000 " invalid " 
                           "16r6569"    16r0000 " invalid " 
                           "16r656A"    16r0000 " invalid " 
                           "16r656B"    16r0000 " invalid " 
                           "16r656C"    16r3749 " <CJK> " 
                           "16r656D"    16r0000 " invalid " 
                           "16r656E"    16r0000 " invalid " 
                           "16r656F"    16r0000 " invalid " 
                           "16r6570"    16r3F74 " <CJK> " 
                           "16r6571"    16r0000 " invalid " 
                           "16r6572"    16r5A4A " <CJK> " 
                           "16r6573"    16r0000 " invalid " 
                           "16r6574"    16r4030 " <CJK> " 
                           "16r6575"    16r4528 " <CJK> " 
                           "16r6576"    16r0000 " invalid " 
                           "16r6577"    16r495F " <CJK> " 
                           "16r6578"    16r5A4B " <CJK> " 
                           "16r6579"    16r0000 " invalid " 
                           "16r657A"    16r0000 " invalid " 
                           "16r657B"    16r0000 " invalid " 
                           "16r657C"    16r0000 " invalid " 
                           "16r657D"    16r0000 " invalid " 
                           "16r657E"    16r0000 " invalid " 
                           "16r657F"    16r0000 " invalid " 
                           "16r6580"    16r0000 " invalid " 
                           "16r6581"    16r0000 " invalid " 
                           "16r6582"    16r5A4C " <CJK> " 
                           "16r6583"    16r5A4D " <CJK> " 
                           "16r6584"    16r0000 " invalid " 
                           "16r6585"    16r0000 " invalid " 
                           "16r6586"    16r0000 " invalid " 
                           "16r6587"    16r4A38 " <CJK> " 
                           "16r6588"    16r555D " <CJK> " 
                           "16r6589"    16r4046 " <CJK> " 
                           "16r658A"    16r0000 " invalid " 
                           "16r658B"    16r0000 " invalid " 
                           "16r658C"    16r494C " <CJK> " 
                           "16r658D"    16r0000 " invalid " 
                           "16r658E"    16r3A58 " <CJK> " 
                           "16r658F"    16r0000 " invalid " 
                           "16r6590"    16r4865 " <CJK> " 
                           "16r6591"    16r4843 " <CJK> " 
                           "16r6592"    16r0000 " invalid " 
                           "16r6593"    16r0000 " invalid " 
                           "16r6594"    16r0000 " invalid " 
                           "16r6595"    16r0000 " invalid " 
                           "16r6596"    16r0000 " invalid " 
                           "16r6597"    16r454D " <CJK> " 
                           "16r6598"    16r0000 " invalid " 
                           "16r6599"    16r4E41 " <CJK> " 
                           "16r659A"    16r0000 " invalid " 
                           "16r659B"    16r5A4F " <CJK> " 
                           "16r659C"    16r3C50 " <CJK> " 
                           "16r659D"    16r0000 " invalid " 
                           "16r659E"    16r0000 " invalid " 
                           "16r659F"    16r5A50 " <CJK> " 
                           "16r65A0"    16r0000 " invalid " 
                           "16r65A1"    16r3036 " <CJK> " 
                           "16r65A2"    16r0000 " invalid " 
                           "16r65A3"    16r0000 " invalid " 
                           "16r65A4"    16r3654 " <CJK> " 
                           "16r65A5"    16r404D " <CJK> " 
                           "16r65A6"    16r0000 " invalid " 
                           "16r65A7"    16r4960 " <CJK> " 
                           "16r65A8"    16r0000 " invalid " 
                           "16r65A9"    16r0000 " invalid " 
                           "16r65AA"    16r0000 " invalid " 
                           "16r65AB"    16r5A51 " <CJK> " 
                           "16r65AC"    16r3B42 " <CJK> " 
                           "16r65AD"    16r4347 " <CJK> " 
                           "16r65AE"    16r0000 " invalid " 
                           "16r65AF"    16r3B5B " <CJK> " 
                           "16r65B0"    16r3F37 " <CJK> " 
                           "16r65B1"    16r0000 " invalid " 
                           "16r65B2"    16r0000 " invalid " 
                           "16r65B3"    16r0000 " invalid " 
                           "16r65B4"    16r0000 " invalid " 
                           "16r65B5"    16r0000 " invalid " 
                           "16r65B6"    16r0000 " invalid " 
                           "16r65B7"    16r5A52 " <CJK> " 
                           "16r65B8"    16r0000 " invalid " 
                           "16r65B9"    16r4A7D " <CJK> " 
                           "16r65BA"    16r0000 " invalid " 
                           "16r65BB"    16r0000 " invalid " 
                           "16r65BC"    16r3177 " <CJK> " 
                           "16r65BD"    16r3B5C " <CJK> " 
                           "16r65BE"    16r0000 " invalid " 
                           "16r65BF"    16r0000 " invalid " 
                           "16r65C0"    16r0000 " invalid " 
                           "16r65C1"    16r5A55 " <CJK> " 
                           "16r65C2"    16r0000 " invalid " 
                           "16r65C3"    16r5A53 " <CJK> " 
                           "16r65C4"    16r5A56 " <CJK> " 
                           "16r65C5"    16r4E39 " <CJK> " 
                           "16r65C6"    16r5A54 " <CJK> " 
                           "16r65C7"    16r0000 " invalid " 
                           "16r65C8"    16r0000 " invalid " 
                           "16r65C9"    16r0000 " invalid " 
                           "16r65CA"    16r0000 " invalid " 
                           "16r65CB"    16r407B " <CJK> " 
                           "16r65CC"    16r5A57 " <CJK> " 
                           "16r65CD"    16r0000 " invalid " 
                           "16r65CE"    16r0000 " invalid " 
                           "16r65CF"    16r4232 " <CJK> " 
                           "16r65D0"    16r0000 " invalid " 
                           "16r65D1"    16r0000 " invalid " 
                           "16r65D2"    16r5A58 " <CJK> " 
                           "16r65D3"    16r0000 " invalid " 
                           "16r65D4"    16r0000 " invalid " 
                           "16r65D5"    16r0000 " invalid " 
                           "16r65D6"    16r0000 " invalid " 
                           "16r65D7"    16r347A " <CJK> " 
                           "16r65D8"    16r0000 " invalid " 
                           "16r65D9"    16r5A5A " <CJK> " 
                           "16r65DA"    16r0000 " invalid " 
                           "16r65DB"    16r5A59 " <CJK> " 
                           "16r65DC"    16r0000 " invalid " 
                           "16r65DD"    16r0000 " invalid " 
                           "16r65DE"    16r0000 " invalid " 
                           "16r65DF"    16r0000 " invalid " 
                           "16r65E0"    16r5A5B " <CJK> " 
                           "16r65E1"    16r5A5C " <CJK> " 
                           "16r65E2"    16r347B " <CJK> " 
                           "16r65E3"    16r0000 " invalid " 
                           "16r65E4"    16r0000 " invalid " 
                           "16r65E5"    16r467C " <CJK> " 
                           "16r65E6"    16r4336 " <CJK> " 
                           "16r65E7"    16r356C " <CJK> " 
                           "16r65E8"    16r3B5D " <CJK> " 
                           "16r65E9"    16r4161 " <CJK> " 
                           "16r65EA"    16r0000 " invalid " 
                           "16r65EB"    16r0000 " invalid " 
                           "16r65EC"    16r3D5C " <CJK> " 
                           "16r65ED"    16r3030 " <CJK> " 
                           "16r65EE"    16r0000 " invalid " 
                           "16r65EF"    16r0000 " invalid " 
                           "16r65F0"    16r0000 " invalid " 
                           "16r65F1"    16r5A5D " <CJK> " 
                           "16r65F2"    16r0000 " invalid " 
                           "16r65F3"    16r0000 " invalid " 
                           "16r65F4"    16r0000 " invalid " 
                           "16r65F5"    16r0000 " invalid " 
                           "16r65F6"    16r0000 " invalid " 
                           "16r65F7"    16r0000 " invalid " 
                           "16r65F8"    16r0000 " invalid " 
                           "16r65F9"    16r0000 " invalid " 
                           "16r65FA"    16r3222 " <CJK> " 
                           "16r65FB"    16r5A61 " <CJK> " 
                           "16r65FC"    16r0000 " invalid " 
                           "16r65FD"    16r0000 " invalid " 
                           "16r65FE"    16r0000 " invalid " 
                           "16r65FF"    16r0000 " invalid " 
                           "16r6600"    16r0000 " invalid " 
                           "16r6601"    16r0000 " invalid " 
                           "16r6602"    16r3937 " <CJK> " 
                           "16r6603"    16r5A60 " <CJK> " 
                           "16r6604"    16r0000 " invalid " 
                           "16r6605"    16r0000 " invalid " 
                           "16r6606"    16r3A2B " <CJK> " 
                           "16r6607"    16r3E3A " <CJK> " 
                           "16r6608"    16r0000 " invalid " 
                           "16r6609"    16r0000 " invalid " 
                           "16r660A"    16r5A5F " <CJK> " 
                           "16r660B"    16r0000 " invalid " 
                           "16r660C"    16r3E3B " <CJK> " 
                           "16r660D"    16r0000 " invalid " 
                           "16r660E"    16r4C40 " <CJK> " 
                           "16r660F"    16r3A2A " <CJK> " 
                           "16r6610"    16r0000 " invalid " 
                           "16r6611"    16r0000 " invalid " 
                           "16r6612"    16r0000 " invalid " 
                           "16r6613"    16r3057 " <CJK> " 
                           "16r6614"    16r404E " <CJK> " 
                           "16r6615"    16r0000 " invalid " 
                           "16r6616"    16r0000 " invalid " 
                           "16r6617"    16r0000 " invalid " 
                           "16r6618"    16r0000 " invalid " 
                           "16r6619"    16r0000 " invalid " 
                           "16r661A"    16r0000 " invalid " 
                           "16r661B"    16r0000 " invalid " 
                           "16r661C"    16r5A66 " <CJK> " 
                           "16r661D"    16r0000 " invalid " 
                           "16r661E"    16r0000 " invalid " 
                           "16r661F"    16r4031 " <CJK> " 
                           "16r6620"    16r3147 " <CJK> " 
                           "16r6621"    16r0000 " invalid " 
                           "16r6622"    16r0000 " invalid " 
                           "16r6623"    16r0000 " invalid " 
                           "16r6624"    16r0000 " invalid " 
                           "16r6625"    16r3D55 " <CJK> " 
                           "16r6626"    16r0000 " invalid " 
                           "16r6627"    16r4B66 " <CJK> " 
                           "16r6628"    16r3A72 " <CJK> " 
                           "16r6629"    16r0000 " invalid " 
                           "16r662A"    16r0000 " invalid " 
                           "16r662B"    16r0000 " invalid " 
                           "16r662C"    16r0000 " invalid " 
                           "16r662D"    16r3E3C " <CJK> " 
                           "16r662E"    16r0000 " invalid " 
                           "16r662F"    16r4027 " <CJK> " 
                           "16r6630"    16r0000 " invalid " 
                           "16r6631"    16r0000 " invalid " 
                           "16r6632"    16r0000 " invalid " 
                           "16r6633"    16r0000 " invalid " 
                           "16r6634"    16r5A65 " <CJK> " 
                           "16r6635"    16r5A63 " <CJK> " 
                           "16r6636"    16r5A64 " <CJK> " 
                           "16r6637"    16r0000 " invalid " 
                           "16r6638"    16r0000 " invalid " 
                           "16r6639"    16r0000 " invalid " 
                           "16r663A"    16r0000 " invalid " 
                           "16r663B"    16r0000 " invalid " 
                           "16r663C"    16r436B " <CJK> " 
                           "16r663D"    16r0000 " invalid " 
                           "16r663E"    16r0000 " invalid " 
                           "16r663F"    16r5B26 " <CJK> " 
                           "16r6640"    16r0000 " invalid " 
                           "16r6641"    16r5A6A " <CJK> " 
                           "16r6642"    16r3B7E " <CJK> " 
                           "16r6643"    16r3938 " <CJK> " 
                           "16r6644"    16r5A68 " <CJK> " 
                           "16r6645"    16r0000 " invalid " 
                           "16r6646"    16r0000 " invalid " 
                           "16r6647"    16r0000 " invalid " 
                           "16r6648"    16r0000 " invalid " 
                           "16r6649"    16r5A69 " <CJK> " 
                           "16r664A"    16r0000 " invalid " 
                           "16r664B"    16r3F38 " <CJK> " 
                           "16r664C"    16r0000 " invalid " 
                           "16r664D"    16r0000 " invalid " 
                           "16r664E"    16r0000 " invalid " 
                           "16r664F"    16r5A67 " <CJK> " 
                           "16r6650"    16r0000 " invalid " 
                           "16r6651"    16r0000 " invalid " 
                           "16r6652"    16r3B2F " <CJK> " 
                           "16r6653"    16r0000 " invalid " 
                           "16r6654"    16r0000 " invalid " 
                           "16r6655"    16r0000 " invalid " 
                           "16r6656"    16r0000 " invalid " 
                           "16r6657"    16r0000 " invalid " 
                           "16r6658"    16r0000 " invalid " 
                           "16r6659"    16r0000 " invalid " 
                           "16r665A"    16r0000 " invalid " 
                           "16r665B"    16r0000 " invalid " 
                           "16r665C"    16r0000 " invalid " 
                           "16r665D"    16r5A6C " <CJK> " 
                           "16r665E"    16r5A6B " <CJK> " 
                           "16r665F"    16r5A70 " <CJK> " 
                           "16r6660"    16r0000 " invalid " 
                           "16r6661"    16r0000 " invalid " 
                           "16r6662"    16r5A71 " <CJK> " 
                           "16r6663"    16r0000 " invalid " 
                           "16r6664"    16r5A6D " <CJK> " 
                           "16r6665"    16r0000 " invalid " 
                           "16r6666"    16r3322 " <CJK> " 
                           "16r6667"    16r5A6E " <CJK> " 
                           "16r6668"    16r5A6F " <CJK> " 
                           "16r6669"    16r4855 " <CJK> " 
                           "16r666A"    16r0000 " invalid " 
                           "16r666B"    16r0000 " invalid " 
                           "16r666C"    16r0000 " invalid " 
                           "16r666D"    16r0000 " invalid " 
                           "16r666E"    16r4961 " <CJK> " 
                           "16r666F"    16r374A " <CJK> " 
                           "16r6670"    16r5A72 " <CJK> " 
                           "16r6671"    16r0000 " invalid " 
                           "16r6672"    16r0000 " invalid " 
                           "16r6673"    16r0000 " invalid " 
                           "16r6674"    16r4032 " <CJK> " 
                           "16r6675"    16r0000 " invalid " 
                           "16r6676"    16r3E3D " <CJK> " 
                           "16r6677"    16r0000 " invalid " 
                           "16r6678"    16r0000 " invalid " 
                           "16r6679"    16r0000 " invalid " 
                           "16r667A"    16r4352 " <CJK> " 
                           "16r667B"    16r0000 " invalid " 
                           "16r667C"    16r0000 " invalid " 
                           "16r667D"    16r0000 " invalid " 
                           "16r667E"    16r0000 " invalid " 
                           "16r667F"    16r0000 " invalid " 
                           "16r6680"    16r0000 " invalid " 
                           "16r6681"    16r3647 " <CJK> " 
                           "16r6682"    16r0000 " invalid " 
                           "16r6683"    16r5A73 " <CJK> " 
                           "16r6684"    16r5A77 " <CJK> " 
                           "16r6685"    16r0000 " invalid " 
                           "16r6686"    16r0000 " invalid " 
                           "16r6687"    16r324B " <CJK> " 
                           "16r6688"    16r5A74 " <CJK> " 
                           "16r6689"    16r5A76 " <CJK> " 
                           "16r668A"    16r0000 " invalid " 
                           "16r668B"    16r0000 " invalid " 
                           "16r668C"    16r0000 " invalid " 
                           "16r668D"    16r0000 " invalid " 
                           "16r668E"    16r5A75 " <CJK> " 
                           "16r668F"    16r0000 " invalid " 
                           "16r6690"    16r0000 " invalid " 
                           "16r6691"    16r3D6B " <CJK> " 
                           "16r6692"    16r0000 " invalid " 
                           "16r6693"    16r0000 " invalid " 
                           "16r6694"    16r0000 " invalid " 
                           "16r6695"    16r0000 " invalid " 
                           "16r6696"    16r4348 " <CJK> " 
                           "16r6697"    16r3045 " <CJK> " 
                           "16r6698"    16r5A78 " <CJK> " 
                           "16r6699"    16r0000 " invalid " 
                           "16r669A"    16r0000 " invalid " 
                           "16r669B"    16r0000 " invalid " 
                           "16r669C"    16r0000 " invalid " 
                           "16r669D"    16r5A79 " <CJK> " 
                           "16r669E"    16r0000 " invalid " 
                           "16r669F"    16r0000 " invalid " 
                           "16r66A0"    16r0000 " invalid " 
                           "16r66A1"    16r0000 " invalid " 
                           "16r66A2"    16r442A " <CJK> " 
                           "16r66A3"    16r0000 " invalid " 
                           "16r66A4"    16r0000 " invalid " 
                           "16r66A5"    16r0000 " invalid " 
                           "16r66A6"    16r4E71 " <CJK> " 
                           "16r66A7"    16r0000 " invalid " 
                           "16r66A8"    16r0000 " invalid " 
                           "16r66A9"    16r0000 " invalid " 
                           "16r66AA"    16r0000 " invalid " 
                           "16r66AB"    16r3B43 " <CJK> " 
                           "16r66AC"    16r0000 " invalid " 
                           "16r66AD"    16r0000 " invalid " 
                           "16r66AE"    16r4A6B " <CJK> " 
                           "16r66AF"    16r0000 " invalid " 
                           "16r66B0"    16r0000 " invalid " 
                           "16r66B1"    16r0000 " invalid " 
                           "16r66B2"    16r0000 " invalid " 
                           "16r66B3"    16r0000 " invalid " 
                           "16r66B4"    16r4B3D " <CJK> " 
                           "16r66B5"    16r0000 " invalid " 
                           "16r66B6"    16r0000 " invalid " 
                           "16r66B7"    16r0000 " invalid " 
                           "16r66B8"    16r5B22 " <CJK> " 
                           "16r66B9"    16r5A7B " <CJK> " 
                           "16r66BA"    16r0000 " invalid " 
                           "16r66BB"    16r0000 " invalid " 
                           "16r66BC"    16r5A7E " <CJK> " 
                           "16r66BD"    16r0000 " invalid " 
                           "16r66BE"    16r5A7D " <CJK> " 
                           "16r66BF"    16r0000 " invalid " 
                           "16r66C0"    16r0000 " invalid " 
                           "16r66C1"    16r5A7A " <CJK> " 
                           "16r66C2"    16r0000 " invalid " 
                           "16r66C3"    16r0000 " invalid " 
                           "16r66C4"    16r5B21 " <CJK> " 
                           "16r66C5"    16r0000 " invalid " 
                           "16r66C6"    16r0000 " invalid " 
                           "16r66C7"    16r465E " <CJK> " 
                           "16r66C8"    16r0000 " invalid " 
                           "16r66C9"    16r5A7C " <CJK> " 
                           "16r66CA"    16r0000 " invalid " 
                           "16r66CB"    16r0000 " invalid " 
                           "16r66CC"    16r0000 " invalid " 
                           "16r66CD"    16r0000 " invalid " 
                           "16r66CE"    16r0000 " invalid " 
                           "16r66CF"    16r0000 " invalid " 
                           "16r66D0"    16r0000 " invalid " 
                           "16r66D1"    16r0000 " invalid " 
                           "16r66D2"    16r0000 " invalid " 
                           "16r66D3"    16r0000 " invalid " 
                           "16r66D4"    16r0000 " invalid " 
                           "16r66D5"    16r0000 " invalid " 
                           "16r66D6"    16r5B23 " <CJK> " 
                           "16r66D7"    16r0000 " invalid " 
                           "16r66D8"    16r0000 " invalid " 
                           "16r66D9"    16r3D6C " <CJK> " 
                           "16r66DA"    16r5B24 " <CJK> " 
                           "16r66DB"    16r0000 " invalid " 
                           "16r66DC"    16r4D4B " <CJK> " 
                           "16r66DD"    16r4778 " <CJK> " 
                           "16r66DE"    16r0000 " invalid " 
                           "16r66DF"    16r0000 " invalid " 
                           "16r66E0"    16r5B25 " <CJK> " 
                           "16r66E1"    16r0000 " invalid " 
                           "16r66E2"    16r0000 " invalid " 
                           "16r66E3"    16r0000 " invalid " 
                           "16r66E4"    16r0000 " invalid " 
                           "16r66E5"    16r0000 " invalid " 
                           "16r66E6"    16r5B27 " <CJK> " 
                           "16r66E7"    16r0000 " invalid " 
                           "16r66E8"    16r0000 " invalid " 
                           "16r66E9"    16r5B28 " <CJK> " 
                           "16r66EA"    16r0000 " invalid " 
                           "16r66EB"    16r0000 " invalid " 
                           "16r66EC"    16r0000 " invalid " 
                           "16r66ED"    16r0000 " invalid " 
                           "16r66EE"    16r0000 " invalid " 
                           "16r66EF"    16r0000 " invalid " 
                           "16r66F0"    16r5B29 " <CJK> " 
                           "16r66F1"    16r0000 " invalid " 
                           "16r66F2"    16r364A " <CJK> " 
                           "16r66F3"    16r3148 " <CJK> " 
                           "16r66F4"    16r3939 " <CJK> " 
                           "16r66F5"    16r5B2A " <CJK> " 
                           "16r66F6"    16r0000 " invalid " 
                           "16r66F7"    16r5B2B " <CJK> " 
                           "16r66F8"    16r3D71 " <CJK> " 
                           "16r66F9"    16r4162 " <CJK> " 
                           "16r66FA"    16r0000 " invalid " 
                           "16r66FB"    16r0000 " invalid " 
                           "16r66FC"    16r5258 " <CJK> " 
                           "16r66FD"    16r413E " <CJK> " 
                           "16r66FE"    16r413D " <CJK> " 
                           "16r66FF"    16r4258 " <CJK> " 
                           "16r6700"    16r3A47 " <CJK> " 
                           "16r6701"    16r0000 " invalid " 
                           "16r6702"    16r0000 " invalid " 
                           "16r6703"    16r5072 " <CJK> " 
                           "16r6704"    16r0000 " invalid " 
                           "16r6705"    16r0000 " invalid " 
                           "16r6706"    16r0000 " invalid " 
                           "16r6707"    16r0000 " invalid " 
                           "16r6708"    16r376E " <CJK> " 
                           "16r6709"    16r4D2D " <CJK> " 
                           "16r670A"    16r0000 " invalid " 
                           "16r670B"    16r4A7E " <CJK> " 
                           "16r670C"    16r0000 " invalid " 
                           "16r670D"    16r497E " <CJK> " 
                           "16r670E"    16r0000 " invalid " 
                           "16r670F"    16r5B2C " <CJK> " 
                           "16r6710"    16r0000 " invalid " 
                           "16r6711"    16r0000 " invalid " 
                           "16r6712"    16r0000 " invalid " 
                           "16r6713"    16r0000 " invalid " 
                           "16r6714"    16r3A73 " <CJK> " 
                           "16r6715"    16r443F " <CJK> " 
                           "16r6716"    16r5B2D " <CJK> " 
                           "16r6717"    16r4F2F " <CJK> " 
                           "16r6718"    16r0000 " invalid " 
                           "16r6719"    16r0000 " invalid " 
                           "16r671A"    16r0000 " invalid " 
                           "16r671B"    16r4B3E " <CJK> " 
                           "16r671C"    16r0000 " invalid " 
                           "16r671D"    16r442B " <CJK> " 
                           "16r671E"    16r5B2E " <CJK> " 
                           "16r671F"    16r347C " <CJK> " 
                           "16r6720"    16r0000 " invalid " 
                           "16r6721"    16r0000 " invalid " 
                           "16r6722"    16r0000 " invalid " 
                           "16r6723"    16r0000 " invalid " 
                           "16r6724"    16r0000 " invalid " 
                           "16r6725"    16r0000 " invalid " 
                           "16r6726"    16r5B2F " <CJK> " 
                           "16r6727"    16r5B30 " <CJK> " 
                           "16r6728"    16r4C5A " <CJK> " 
                           "16r6729"    16r0000 " invalid " 
                           "16r672A"    16r4C24 " <CJK> " 
                           "16r672B"    16r4B76 " <CJK> " 
                           "16r672C"    16r4B5C " <CJK> " 
                           "16r672D"    16r3B25 " <CJK> " 
                           "16r672E"    16r5B32 " <CJK> " 
                           "16r672F"    16r0000 " invalid " 
                           "16r6730"    16r0000 " invalid " 
                           "16r6731"    16r3C6B " <CJK> " 
                           "16r6732"    16r0000 " invalid " 
                           "16r6733"    16r0000 " invalid " 
                           "16r6734"    16r4B51 " <CJK> " 
                           "16r6735"    16r0000 " invalid " 
                           "16r6736"    16r5B34 " <CJK> " 
                           "16r6737"    16r5B37 " <CJK> " 
                           "16r6738"    16r5B36 " <CJK> " 
                           "16r6739"    16r0000 " invalid " 
                           "16r673A"    16r3479 " <CJK> " 
                           "16r673B"    16r0000 " invalid " 
                           "16r673C"    16r0000 " invalid " 
                           "16r673D"    16r3560 " <CJK> " 
                           "16r673E"    16r0000 " invalid " 
                           "16r673F"    16r5B33 " <CJK> " 
                           "16r6740"    16r0000 " invalid " 
                           "16r6741"    16r5B35 " <CJK> " 
                           "16r6742"    16r0000 " invalid " 
                           "16r6743"    16r0000 " invalid " 
                           "16r6744"    16r0000 " invalid " 
                           "16r6745"    16r0000 " invalid " 
                           "16r6746"    16r5B38 " <CJK> " 
                           "16r6747"    16r0000 " invalid " 
                           "16r6748"    16r0000 " invalid " 
                           "16r6749"    16r3F79 " <CJK> " 
                           "16r674A"    16r0000 " invalid " 
                           "16r674B"    16r0000 " invalid " 
                           "16r674C"    16r0000 " invalid " 
                           "16r674D"    16r0000 " invalid " 
                           "16r674E"    16r4D7B " <CJK> " 
                           "16r674F"    16r3049 " <CJK> " 
                           "16r6750"    16r3A60 " <CJK> " 
                           "16r6751"    16r423C " <CJK> " 
                           "16r6752"    16r0000 " invalid " 
                           "16r6753"    16r3C5D " <CJK> " 
                           "16r6754"    16r0000 " invalid " 
                           "16r6755"    16r0000 " invalid " 
                           "16r6756"    16r3E73 " <CJK> " 
                           "16r6757"    16r0000 " invalid " 
                           "16r6758"    16r0000 " invalid " 
                           "16r6759"    16r5B3B " <CJK> " 
                           "16r675A"    16r0000 " invalid " 
                           "16r675B"    16r0000 " invalid " 
                           "16r675C"    16r454E " <CJK> " 
                           "16r675D"    16r0000 " invalid " 
                           "16r675E"    16r5B39 " <CJK> " 
                           "16r675F"    16r422B " <CJK> " 
                           "16r6760"    16r5B3A " <CJK> " 
                           "16r6761"    16r3E72 " <CJK> " 
                           "16r6762"    16r4C5D " <CJK> " 
                           "16r6763"    16r5B3C " <CJK> " 
                           "16r6764"    16r5B3D " <CJK> " 
                           "16r6765"    16r4D68 " <CJK> " 
                           "16r6766"    16r0000 " invalid " 
                           "16r6767"    16r0000 " invalid " 
                           "16r6768"    16r0000 " invalid " 
                           "16r6769"    16r0000 " invalid " 
                           "16r676A"    16r5B42 " <CJK> " 
                           "16r676B"    16r0000 " invalid " 
                           "16r676C"    16r0000 " invalid " 
                           "16r676D"    16r393A " <CJK> " 
                           "16r676E"    16r0000 " invalid " 
                           "16r676F"    16r4755 " <CJK> " 
                           "16r6770"    16r5B3F " <CJK> " 
                           "16r6771"    16r456C " <CJK> " 
                           "16r6772"    16r5A5E " <CJK> " 
                           "16r6773"    16r5A62 " <CJK> " 
                           "16r6774"    16r0000 " invalid " 
                           "16r6775"    16r354F " <CJK> " 
                           "16r6776"    16r0000 " invalid " 
                           "16r6777"    16r4747 " <CJK> " 
                           "16r6778"    16r0000 " invalid " 
                           "16r6779"    16r0000 " invalid " 
                           "16r677A"    16r0000 " invalid " 
                           "16r677B"    16r0000 " invalid " 
                           "16r677C"    16r5B41 " <CJK> " 
                           "16r677D"    16r0000 " invalid " 
                           "16r677E"    16r3E3E " <CJK> " 
                           "16r677F"    16r4844 " <CJK> " 
                           "16r6780"    16r0000 " invalid " 
                           "16r6781"    16r0000 " invalid " 
                           "16r6782"    16r0000 " invalid " 
                           "16r6783"    16r0000 " invalid " 
                           "16r6784"    16r0000 " invalid " 
                           "16r6785"    16r5B47 " <CJK> " 
                           "16r6786"    16r0000 " invalid " 
                           "16r6787"    16r487A " <CJK> " 
                           "16r6788"    16r0000 " invalid " 
                           "16r6789"    16r5B3E " <CJK> " 
                           "16r678A"    16r0000 " invalid " 
                           "16r678B"    16r5B44 " <CJK> " 
                           "16r678C"    16r5B43 " <CJK> " 
                           "16r678D"    16r0000 " invalid " 
                           "16r678E"    16r0000 " invalid " 
                           "16r678F"    16r0000 " invalid " 
                           "16r6790"    16r404F " <CJK> " 
                           "16r6791"    16r0000 " invalid " 
                           "16r6792"    16r0000 " invalid " 
                           "16r6793"    16r0000 " invalid " 
                           "16r6794"    16r0000 " invalid " 
                           "16r6795"    16r4B6D " <CJK> " 
                           "16r6796"    16r0000 " invalid " 
                           "16r6797"    16r4E53 " <CJK> " 
                           "16r6798"    16r0000 " invalid " 
                           "16r6799"    16r0000 " invalid " 
                           "16r679A"    16r4B67 " <CJK> " 
                           "16r679B"    16r0000 " invalid " 
                           "16r679C"    16r324C " <CJK> " 
                           "16r679D"    16r3B5E " <CJK> " 
                           "16r679E"    16r0000 " invalid " 
                           "16r679F"    16r0000 " invalid " 
                           "16r67A0"    16r4F48 " <CJK> " 
                           "16r67A1"    16r5B46 " <CJK> " 
                           "16r67A2"    16r3F75 " <CJK> " 
                           "16r67A3"    16r0000 " invalid " 
                           "16r67A4"    16r0000 " invalid " 
                           "16r67A5"    16r0000 " invalid " 
                           "16r67A6"    16r5B45 " <CJK> " 
                           "16r67A7"    16r0000 " invalid " 
                           "16r67A8"    16r0000 " invalid " 
                           "16r67A9"    16r5B40 " <CJK> " 
                           "16r67AA"    16r0000 " invalid " 
                           "16r67AB"    16r0000 " invalid " 
                           "16r67AC"    16r0000 " invalid " 
                           "16r67AD"    16r0000 " invalid " 
                           "16r67AE"    16r0000 " invalid " 
                           "16r67AF"    16r384F " <CJK> " 
                           "16r67B0"    16r0000 " invalid " 
                           "16r67B1"    16r0000 " invalid " 
                           "16r67B2"    16r0000 " invalid " 
                           "16r67B3"    16r5B4C " <CJK> " 
                           "16r67B4"    16r5B4A " <CJK> " 
                           "16r67B5"    16r0000 " invalid " 
                           "16r67B6"    16r324D " <CJK> " 
                           "16r67B7"    16r5B48 " <CJK> " 
                           "16r67B8"    16r5B4E " <CJK> " 
                           "16r67B9"    16r5B54 " <CJK> " 
                           "16r67BA"    16r0000 " invalid " 
                           "16r67BB"    16r0000 " invalid " 
                           "16r67BC"    16r0000 " invalid " 
                           "16r67BD"    16r0000 " invalid " 
                           "16r67BE"    16r0000 " invalid " 
                           "16r67BF"    16r0000 " invalid " 
                           "16r67C0"    16r0000 " invalid " 
                           "16r67C1"    16r4248 " <CJK> " 
                           "16r67C2"    16r0000 " invalid " 
                           "16r67C3"    16r0000 " invalid " 
                           "16r67C4"    16r4A41 " <CJK> " 
                           "16r67C5"    16r0000 " invalid " 
                           "16r67C6"    16r5B56 " <CJK> " 
                           "16r67C7"    16r0000 " invalid " 
                           "16r67C8"    16r0000 " invalid " 
                           "16r67C9"    16r0000 " invalid " 
                           "16r67CA"    16r4922 " <CJK> " 
                           "16r67CB"    16r0000 " invalid " 
                           "16r67CC"    16r0000 " invalid " 
                           "16r67CD"    16r0000 " invalid " 
                           "16r67CE"    16r5B55 " <CJK> " 
                           "16r67CF"    16r4770 " <CJK> " 
                           "16r67D0"    16r4B3F " <CJK> " 
                           "16r67D1"    16r343B " <CJK> " 
                           "16r67D2"    16r0000 " invalid " 
                           "16r67D3"    16r4077 " <CJK> " 
                           "16r67D4"    16r3D40 " <CJK> " 
                           "16r67D5"    16r0000 " invalid " 
                           "16r67D6"    16r0000 " invalid " 
                           "16r67D7"    16r0000 " invalid " 
                           "16r67D8"    16r4453 " <CJK> " 
                           "16r67D9"    16r0000 " invalid " 
                           "16r67DA"    16r4D2E " <CJK> " 
                           "16r67DB"    16r0000 " invalid " 
                           "16r67DC"    16r0000 " invalid " 
                           "16r67DD"    16r5B51 " <CJK> " 
                           "16r67DE"    16r5B50 " <CJK> " 
                           "16r67DF"    16r0000 " invalid " 
                           "16r67E0"    16r0000 " invalid " 
                           "16r67E1"    16r0000 " invalid " 
                           "16r67E2"    16r5B52 " <CJK> " 
                           "16r67E3"    16r0000 " invalid " 
                           "16r67E4"    16r5B4F " <CJK> " 
                           "16r67E5"    16r0000 " invalid " 
                           "16r67E6"    16r0000 " invalid " 
                           "16r67E7"    16r5B57 " <CJK> " 
                           "16r67E8"    16r0000 " invalid " 
                           "16r67E9"    16r5B4D " <CJK> " 
                           "16r67EA"    16r0000 " invalid " 
                           "16r67EB"    16r0000 " invalid " 
                           "16r67EC"    16r5B4B " <CJK> " 
                           "16r67ED"    16r0000 " invalid " 
                           "16r67EE"    16r5B53 " <CJK> " 
                           "16r67EF"    16r5B49 " <CJK> " 
                           "16r67F0"    16r0000 " invalid " 
                           "16r67F1"    16r436C " <CJK> " 
                           "16r67F2"    16r0000 " invalid " 
                           "16r67F3"    16r4C78 " <CJK> " 
                           "16r67F4"    16r3C46 " <CJK> " 
                           "16r67F5"    16r3A74 " <CJK> " 
                           "16r67F6"    16r0000 " invalid " 
                           "16r67F7"    16r0000 " invalid " 
                           "16r67F8"    16r0000 " invalid " 
                           "16r67F9"    16r0000 " invalid " 
                           "16r67FA"    16r0000 " invalid " 
                           "16r67FB"    16r3A3A " <CJK> " 
                           "16r67FC"    16r0000 " invalid " 
                           "16r67FD"    16r0000 " invalid " 
                           "16r67FE"    16r4B6F " <CJK> " 
                           "16r67FF"    16r3341 " <CJK> " 
                           "16r6800"    16r0000 " invalid " 
                           "16r6801"    16r0000 " invalid " 
                           "16r6802"    16r444E " <CJK> " 
                           "16r6803"    16r464A " <CJK> " 
                           "16r6804"    16r3149 " <CJK> " 
                           "16r6805"    16r0000 " invalid " 
                           "16r6806"    16r0000 " invalid " 
                           "16r6807"    16r0000 " invalid " 
                           "16r6808"    16r0000 " invalid " 
                           "16r6809"    16r0000 " invalid " 
                           "16r680A"    16r0000 " invalid " 
                           "16r680B"    16r0000 " invalid " 
                           "16r680C"    16r0000 " invalid " 
                           "16r680D"    16r0000 " invalid " 
                           "16r680E"    16r0000 " invalid " 
                           "16r680F"    16r0000 " invalid " 
                           "16r6810"    16r0000 " invalid " 
                           "16r6811"    16r0000 " invalid " 
                           "16r6812"    16r0000 " invalid " 
                           "16r6813"    16r4072 " <CJK> " 
                           "16r6814"    16r0000 " invalid " 
                           "16r6815"    16r0000 " invalid " 
                           "16r6816"    16r4034 " <CJK> " 
                           "16r6817"    16r372A " <CJK> " 
                           "16r6818"    16r0000 " invalid " 
                           "16r6819"    16r0000 " invalid " 
                           "16r681A"    16r0000 " invalid " 
                           "16r681B"    16r0000 " invalid " 
                           "16r681C"    16r0000 " invalid " 
                           "16r681D"    16r0000 " invalid " 
                           "16r681E"    16r5B59 " <CJK> " 
                           "16r681F"    16r0000 " invalid " 
                           "16r6820"    16r0000 " invalid " 
                           "16r6821"    16r393B " <CJK> " 
                           "16r6822"    16r337C " <CJK> " 
                           "16r6823"    16r0000 " invalid " 
                           "16r6824"    16r0000 " invalid " 
                           "16r6825"    16r0000 " invalid " 
                           "16r6826"    16r0000 " invalid " 
                           "16r6827"    16r0000 " invalid " 
                           "16r6828"    16r0000 " invalid " 
                           "16r6829"    16r5B5B " <CJK> " 
                           "16r682A"    16r3374 " <CJK> " 
                           "16r682B"    16r5B61 " <CJK> " 
                           "16r682C"    16r0000 " invalid " 
                           "16r682D"    16r0000 " invalid " 
                           "16r682E"    16r0000 " invalid " 
                           "16r682F"    16r0000 " invalid " 
                           "16r6830"    16r0000 " invalid " 
                           "16r6831"    16r0000 " invalid " 
                           "16r6832"    16r5B5E " <CJK> " 
                           "16r6833"    16r0000 " invalid " 
                           "16r6834"    16r4073 " <CJK> " 
                           "16r6835"    16r0000 " invalid " 
                           "16r6836"    16r0000 " invalid " 
                           "16r6837"    16r0000 " invalid " 
                           "16r6838"    16r334B " <CJK> " 
                           "16r6839"    16r3A2C " <CJK> " 
                           "16r683A"    16r0000 " invalid " 
                           "16r683B"    16r0000 " invalid " 
                           "16r683C"    16r334A " <CJK> " 
                           "16r683D"    16r3A4F " <CJK> " 
                           "16r683E"    16r0000 " invalid " 
                           "16r683F"    16r0000 " invalid " 
                           "16r6840"    16r5B5C " <CJK> " 
                           "16r6841"    16r3765 " <CJK> " 
                           "16r6842"    16r374B " <CJK> " 
                           "16r6843"    16r456D " <CJK> " 
                           "16r6844"    16r0000 " invalid " 
                           "16r6845"    16r0000 " invalid " 
                           "16r6846"    16r5B5A " <CJK> " 
                           "16r6847"    16r0000 " invalid " 
                           "16r6848"    16r3046 " <CJK> " 
                           "16r6849"    16r0000 " invalid " 
                           "16r684A"    16r0000 " invalid " 
                           "16r684B"    16r0000 " invalid " 
                           "16r684C"    16r0000 " invalid " 
                           "16r684D"    16r5B5D " <CJK> " 
                           "16r684E"    16r5B5F " <CJK> " 
                           "16r684F"    16r0000 " invalid " 
                           "16r6850"    16r364D " <CJK> " 
                           "16r6851"    16r372C " <CJK> " 
                           "16r6852"    16r0000 " invalid " 
                           "16r6853"    16r343C " <CJK> " 
                           "16r6854"    16r354B " <CJK> " 
                           "16r6855"    16r0000 " invalid " 
                           "16r6856"    16r0000 " invalid " 
                           "16r6857"    16r0000 " invalid " 
                           "16r6858"    16r0000 " invalid " 
                           "16r6859"    16r5B62 " <CJK> " 
                           "16r685A"    16r0000 " invalid " 
                           "16r685B"    16r0000 " invalid " 
                           "16r685C"    16r3A79 " <CJK> " 
                           "16r685D"    16r4B71 " <CJK> " 
                           "16r685E"    16r0000 " invalid " 
                           "16r685F"    16r3B37 " <CJK> " 
                           "16r6860"    16r0000 " invalid " 
                           "16r6861"    16r0000 " invalid " 
                           "16r6862"    16r0000 " invalid " 
                           "16r6863"    16r5B63 " <CJK> " 
                           "16r6864"    16r0000 " invalid " 
                           "16r6865"    16r0000 " invalid " 
                           "16r6866"    16r0000 " invalid " 
                           "16r6867"    16r4930 " <CJK> " 
                           "16r6868"    16r0000 " invalid " 
                           "16r6869"    16r0000 " invalid " 
                           "16r686A"    16r0000 " invalid " 
                           "16r686B"    16r0000 " invalid " 
                           "16r686C"    16r0000 " invalid " 
                           "16r686D"    16r0000 " invalid " 
                           "16r686E"    16r0000 " invalid " 
                           "16r686F"    16r0000 " invalid " 
                           "16r6870"    16r0000 " invalid " 
                           "16r6871"    16r0000 " invalid " 
                           "16r6872"    16r0000 " invalid " 
                           "16r6873"    16r0000 " invalid " 
                           "16r6874"    16r5B6F " <CJK> " 
                           "16r6875"    16r0000 " invalid " 
                           "16r6876"    16r3233 " <CJK> " 
                           "16r6877"    16r5B64 " <CJK> " 
                           "16r6878"    16r0000 " invalid " 
                           "16r6879"    16r0000 " invalid " 
                           "16r687A"    16r0000 " invalid " 
                           "16r687B"    16r0000 " invalid " 
                           "16r687C"    16r0000 " invalid " 
                           "16r687D"    16r0000 " invalid " 
                           "16r687E"    16r5B75 " <CJK> " 
                           "16r687F"    16r5B65 " <CJK> " 
                           "16r6880"    16r0000 " invalid " 
                           "16r6881"    16r4E42 " <CJK> " 
                           "16r6882"    16r0000 " invalid " 
                           "16r6883"    16r5B6C " <CJK> " 
                           "16r6884"    16r0000 " invalid " 
                           "16r6885"    16r475F " <CJK> " 
                           "16r6886"    16r0000 " invalid " 
                           "16r6887"    16r0000 " invalid " 
                           "16r6888"    16r0000 " invalid " 
                           "16r6889"    16r0000 " invalid " 
                           "16r688A"    16r0000 " invalid " 
                           "16r688B"    16r0000 " invalid " 
                           "16r688C"    16r0000 " invalid " 
                           "16r688D"    16r5B74 " <CJK> " 
                           "16r688E"    16r0000 " invalid " 
                           "16r688F"    16r5B67 " <CJK> " 
                           "16r6890"    16r0000 " invalid " 
                           "16r6891"    16r0000 " invalid " 
                           "16r6892"    16r0000 " invalid " 
                           "16r6893"    16r3034 " <CJK> " 
                           "16r6894"    16r5B69 " <CJK> " 
                           "16r6895"    16r0000 " invalid " 
                           "16r6896"    16r0000 " invalid " 
                           "16r6897"    16r393C " <CJK> " 
                           "16r6898"    16r0000 " invalid " 
                           "16r6899"    16r0000 " invalid " 
                           "16r689A"    16r0000 " invalid " 
                           "16r689B"    16r5B6B " <CJK> " 
                           "16r689C"    16r0000 " invalid " 
                           "16r689D"    16r5B6A " <CJK> " 
                           "16r689E"    16r0000 " invalid " 
                           "16r689F"    16r5B66 " <CJK> " 
                           "16r68A0"    16r5B71 " <CJK> " 
                           "16r68A1"    16r0000 " invalid " 
                           "16r68A2"    16r3E3F " <CJK> " 
                           "16r68A3"    16r0000 " invalid " 
                           "16r68A4"    16r0000 " invalid " 
                           "16r68A5"    16r0000 " invalid " 
                           "16r68A6"    16r546D " <CJK> " 
                           "16r68A7"    16r3868 " <CJK> " 
                           "16r68A8"    16r4D7C " <CJK> " 
                           "16r68A9"    16r0000 " invalid " 
                           "16r68AA"    16r0000 " invalid " 
                           "16r68AB"    16r0000 " invalid " 
                           "16r68AC"    16r0000 " invalid " 
                           "16r68AD"    16r5B68 " <CJK> " 
                           "16r68AE"    16r0000 " invalid " 
                           "16r68AF"    16r4474 " <CJK> " 
                           "16r68B0"    16r3323 " <CJK> " 
                           "16r68B1"    16r3A2D " <CJK> " 
                           "16r68B2"    16r0000 " invalid " 
                           "16r68B3"    16r5B60 " <CJK> " 
                           "16r68B4"    16r0000 " invalid " 
                           "16r68B5"    16r5B70 " <CJK> " 
                           "16r68B6"    16r3361 " <CJK> " 
                           "16r68B7"    16r0000 " invalid " 
                           "16r68B8"    16r0000 " invalid " 
                           "16r68B9"    16r5B6E " <CJK> " 
                           "16r68BA"    16r5B72 " <CJK> " 
                           "16r68BB"    16r0000 " invalid " 
                           "16r68BC"    16r456E " <CJK> " 
                           "16r68BD"    16r0000 " invalid " 
                           "16r68BE"    16r0000 " invalid " 
                           "16r68BF"    16r0000 " invalid " 
                           "16r68C0"    16r0000 " invalid " 
                           "16r68C1"    16r0000 " invalid " 
                           "16r68C2"    16r0000 " invalid " 
                           "16r68C3"    16r0000 " invalid " 
                           "16r68C4"    16r347E " <CJK> " 
                           "16r68C5"    16r0000 " invalid " 
                           "16r68C6"    16r5C32 " <CJK> " 
                           "16r68C7"    16r0000 " invalid " 
                           "16r68C8"    16r0000 " invalid " 
                           "16r68C9"    16r4C49 " <CJK> " 
                           "16r68CA"    16r5B77 " <CJK> " 
                           "16r68CB"    16r347D " <CJK> " 
                           "16r68CC"    16r0000 " invalid " 
                           "16r68CD"    16r5B7E " <CJK> " 
                           "16r68CE"    16r0000 " invalid " 
                           "16r68CF"    16r0000 " invalid " 
                           "16r68D0"    16r0000 " invalid " 
                           "16r68D1"    16r0000 " invalid " 
                           "16r68D2"    16r4B40 " <CJK> " 
                           "16r68D3"    16r0000 " invalid " 
                           "16r68D4"    16r5C21 " <CJK> " 
                           "16r68D5"    16r5C23 " <CJK> " 
                           "16r68D6"    16r0000 " invalid " 
                           "16r68D7"    16r5C27 " <CJK> " 
                           "16r68D8"    16r5B79 " <CJK> " 
                           "16r68D9"    16r0000 " invalid " 
                           "16r68DA"    16r432A " <CJK> " 
                           "16r68DB"    16r0000 " invalid " 
                           "16r68DC"    16r0000 " invalid " 
                           "16r68DD"    16r0000 " invalid " 
                           "16r68DE"    16r0000 " invalid " 
                           "16r68DF"    16r456F " <CJK> " 
                           "16r68E0"    16r5C2B " <CJK> " 
                           "16r68E1"    16r5B7C " <CJK> " 
                           "16r68E2"    16r0000 " invalid " 
                           "16r68E3"    16r5C28 " <CJK> " 
                           "16r68E4"    16r0000 " invalid " 
                           "16r68E5"    16r0000 " invalid " 
                           "16r68E6"    16r0000 " invalid " 
                           "16r68E7"    16r5C22 " <CJK> " 
                           "16r68E8"    16r0000 " invalid " 
                           "16r68E9"    16r0000 " invalid " 
                           "16r68EA"    16r0000 " invalid " 
                           "16r68EB"    16r0000 " invalid " 
                           "16r68EC"    16r0000 " invalid " 
                           "16r68ED"    16r0000 " invalid " 
                           "16r68EE"    16r3F39 " <CJK> " 
                           "16r68EF"    16r5C2C " <CJK> " 
                           "16r68F0"    16r0000 " invalid " 
                           "16r68F1"    16r0000 " invalid " 
                           "16r68F2"    16r4033 " <CJK> " 
                           "16r68F3"    16r0000 " invalid " 
                           "16r68F4"    16r0000 " invalid " 
                           "16r68F5"    16r0000 " invalid " 
                           "16r68F6"    16r0000 " invalid " 
                           "16r68F7"    16r0000 " invalid " 
                           "16r68F8"    16r0000 " invalid " 
                           "16r68F9"    16r5C2A " <CJK> " 
                           "16r68FA"    16r343D " <CJK> " 
                           "16r68FB"    16r0000 " invalid " 
                           "16r68FC"    16r0000 " invalid " 
                           "16r68FD"    16r0000 " invalid " 
                           "16r68FE"    16r0000 " invalid " 
                           "16r68FF"    16r0000 " invalid " 
                           "16r6900"    16r4F50 " <CJK> " 
                           "16r6901"    16r5B76 " <CJK> " 
                           "16r6902"    16r0000 " invalid " 
                           "16r6903"    16r0000 " invalid " 
                           "16r6904"    16r5C26 " <CJK> " 
                           "16r6905"    16r3058 " <CJK> " 
                           "16r6906"    16r0000 " invalid " 
                           "16r6907"    16r0000 " invalid " 
                           "16r6908"    16r5B78 " <CJK> " 
                           "16r6909"    16r0000 " invalid " 
                           "16r690A"    16r0000 " invalid " 
                           "16r690B"    16r4C3A " <CJK> " 
                           "16r690C"    16r5B7D " <CJK> " 
                           "16r690D"    16r3F22 " <CJK> " 
                           "16r690E"    16r4447 " <CJK> " 
                           "16r690F"    16r5B73 " <CJK> " 
                           "16r6910"    16r0000 " invalid " 
                           "16r6911"    16r0000 " invalid " 
                           "16r6912"    16r5C25 " <CJK> " 
                           "16r6913"    16r0000 " invalid " 
                           "16r6914"    16r0000 " invalid " 
                           "16r6915"    16r0000 " invalid " 
                           "16r6916"    16r0000 " invalid " 
                           "16r6917"    16r0000 " invalid " 
                           "16r6918"    16r0000 " invalid " 
                           "16r6919"    16r3F7A " <CJK> " 
                           "16r691A"    16r5C2F " <CJK> " 
                           "16r691B"    16r3371 " <CJK> " 
                           "16r691C"    16r3821 " <CJK> " 
                           "16r691D"    16r0000 " invalid " 
                           "16r691E"    16r0000 " invalid " 
                           "16r691F"    16r0000 " invalid " 
                           "16r6920"    16r0000 " invalid " 
                           "16r6921"    16r5C31 " <CJK> " 
                           "16r6922"    16r5B7A " <CJK> " 
                           "16r6923"    16r5C30 " <CJK> " 
                           "16r6924"    16r0000 " invalid " 
                           "16r6925"    16r5C29 " <CJK> " 
                           "16r6926"    16r5B7B " <CJK> " 
                           "16r6927"    16r0000 " invalid " 
                           "16r6928"    16r5C2D " <CJK> " 
                           "16r6929"    16r0000 " invalid " 
                           "16r692A"    16r5C2E " <CJK> " 
                           "16r692B"    16r0000 " invalid " 
                           "16r692C"    16r0000 " invalid " 
                           "16r692D"    16r0000 " invalid " 
                           "16r692E"    16r0000 " invalid " 
                           "16r692F"    16r0000 " invalid " 
                           "16r6930"    16r5C3F " <CJK> " 
                           "16r6931"    16r0000 " invalid " 
                           "16r6932"    16r0000 " invalid " 
                           "16r6933"    16r0000 " invalid " 
                           "16r6934"    16r464E " <CJK> " 
                           "16r6935"    16r0000 " invalid " 
                           "16r6936"    16r5C24 " <CJK> " 
                           "16r6937"    16r0000 " invalid " 
                           "16r6938"    16r0000 " invalid " 
                           "16r6939"    16r5C3B " <CJK> " 
                           "16r693A"    16r0000 " invalid " 
                           "16r693B"    16r0000 " invalid " 
                           "16r693C"    16r0000 " invalid " 
                           "16r693D"    16r5C3D " <CJK> " 
                           "16r693E"    16r0000 " invalid " 
                           "16r693F"    16r4458 " <CJK> " 
                           "16r6940"    16r0000 " invalid " 
                           "16r6941"    16r0000 " invalid " 
                           "16r6942"    16r0000 " invalid " 
                           "16r6943"    16r0000 " invalid " 
                           "16r6944"    16r0000 " invalid " 
                           "16r6945"    16r0000 " invalid " 
                           "16r6946"    16r0000 " invalid " 
                           "16r6947"    16r0000 " invalid " 
                           "16r6948"    16r0000 " invalid " 
                           "16r6949"    16r0000 " invalid " 
                           "16r694A"    16r4D4C " <CJK> " 
                           "16r694B"    16r0000 " invalid " 
                           "16r694C"    16r0000 " invalid " 
                           "16r694D"    16r0000 " invalid " 
                           "16r694E"    16r0000 " invalid " 
                           "16r694F"    16r0000 " invalid " 
                           "16r6950"    16r0000 " invalid " 
                           "16r6951"    16r0000 " invalid " 
                           "16r6952"    16r0000 " invalid " 
                           "16r6953"    16r4976 " <CJK> " 
                           "16r6954"    16r5C38 " <CJK> " 
                           "16r6955"    16r424A " <CJK> " 
                           "16r6956"    16r0000 " invalid " 
                           "16r6957"    16r0000 " invalid " 
                           "16r6958"    16r0000 " invalid " 
                           "16r6959"    16r5C3E " <CJK> " 
                           "16r695A"    16r413F " <CJK> " 
                           "16r695B"    16r0000 " invalid " 
                           "16r695C"    16r5C35 " <CJK> " 
                           "16r695D"    16r5C42 " <CJK> " 
                           "16r695E"    16r5C41 " <CJK> " 
                           "16r695F"    16r0000 " invalid " 
                           "16r6960"    16r466F " <CJK> " 
                           "16r6961"    16r5C40 " <CJK> " 
                           "16r6962"    16r466A " <CJK> " 
                           "16r6963"    16r0000 " invalid " 
                           "16r6964"    16r0000 " invalid " 
                           "16r6965"    16r0000 " invalid " 
                           "16r6966"    16r0000 " invalid " 
                           "16r6967"    16r0000 " invalid " 
                           "16r6968"    16r0000 " invalid " 
                           "16r6969"    16r0000 " invalid " 
                           "16r696A"    16r5C44 " <CJK> " 
                           "16r696B"    16r5C37 " <CJK> " 
                           "16r696C"    16r0000 " invalid " 
                           "16r696D"    16r3648 " <CJK> " 
                           "16r696E"    16r5C3A " <CJK> " 
                           "16r696F"    16r3D5D " <CJK> " 
                           "16r6970"    16r0000 " invalid " 
                           "16r6971"    16r0000 " invalid " 
                           "16r6972"    16r0000 " invalid " 
                           "16r6973"    16r4760 " <CJK> " 
                           "16r6974"    16r5C3C " <CJK> " 
                           "16r6975"    16r364B " <CJK> " 
                           "16r6976"    16r0000 " invalid " 
                           "16r6977"    16r5C34 " <CJK> " 
                           "16r6978"    16r5C36 " <CJK> " 
                           "16r6979"    16r5C33 " <CJK> " 
                           "16r697A"    16r0000 " invalid " 
                           "16r697B"    16r0000 " invalid " 
                           "16r697C"    16r4F30 " <CJK> " 
                           "16r697D"    16r335A " <CJK> " 
                           "16r697E"    16r5C39 " <CJK> " 
                           "16r697F"    16r0000 " invalid " 
                           "16r6980"    16r0000 " invalid " 
                           "16r6981"    16r5C43 " <CJK> " 
                           "16r6982"    16r3335 " <CJK> " 
                           "16r6983"    16r0000 " invalid " 
                           "16r6984"    16r0000 " invalid " 
                           "16r6985"    16r0000 " invalid " 
                           "16r6986"    16r0000 " invalid " 
                           "16r6987"    16r0000 " invalid " 
                           "16r6988"    16r0000 " invalid " 
                           "16r6989"    16r0000 " invalid " 
                           "16r698A"    16r3A67 " <CJK> " 
                           "16r698B"    16r0000 " invalid " 
                           "16r698C"    16r0000 " invalid " 
                           "16r698D"    16r0000 " invalid " 
                           "16r698E"    16r315D " <CJK> " 
                           "16r698F"    16r0000 " invalid " 
                           "16r6990"    16r0000 " invalid " 
                           "16r6991"    16r5C54 " <CJK> " 
                           "16r6992"    16r0000 " invalid " 
                           "16r6993"    16r0000 " invalid " 
                           "16r6994"    16r4F31 " <CJK> " 
                           "16r6995"    16r5C57 " <CJK> " 
                           "16r6996"    16r0000 " invalid " 
                           "16r6997"    16r0000 " invalid " 
                           "16r6998"    16r0000 " invalid " 
                           "16r6999"    16r0000 " invalid " 
                           "16r699A"    16r0000 " invalid " 
                           "16r699B"    16r3F3A " <CJK> " 
                           "16r699C"    16r5C56 " <CJK> " 
                           "16r699D"    16r0000 " invalid " 
                           "16r699E"    16r0000 " invalid " 
                           "16r699F"    16r0000 " invalid " 
                           "16r69A0"    16r5C55 " <CJK> " 
                           "16r69A1"    16r0000 " invalid " 
                           "16r69A2"    16r0000 " invalid " 
                           "16r69A3"    16r0000 " invalid " 
                           "16r69A4"    16r0000 " invalid " 
                           "16r69A5"    16r0000 " invalid " 
                           "16r69A6"    16r0000 " invalid " 
                           "16r69A7"    16r5C52 " <CJK> " 
                           "16r69A8"    16r0000 " invalid " 
                           "16r69A9"    16r0000 " invalid " 
                           "16r69AA"    16r0000 " invalid " 
                           "16r69AB"    16r0000 " invalid " 
                           "16r69AC"    16r0000 " invalid " 
                           "16r69AD"    16r0000 " invalid " 
                           "16r69AE"    16r5C46 " <CJK> " 
                           "16r69AF"    16r0000 " invalid " 
                           "16r69B0"    16r0000 " invalid " 
                           "16r69B1"    16r5C63 " <CJK> " 
                           "16r69B2"    16r5C45 " <CJK> " 
                           "16r69B3"    16r0000 " invalid " 
                           "16r69B4"    16r5C58 " <CJK> " 
                           "16r69B5"    16r0000 " invalid " 
                           "16r69B6"    16r0000 " invalid " 
                           "16r69B7"    16r0000 " invalid " 
                           "16r69B8"    16r0000 " invalid " 
                           "16r69B9"    16r0000 " invalid " 
                           "16r69BA"    16r0000 " invalid " 
                           "16r69BB"    16r5C50 " <CJK> " 
                           "16r69BC"    16r0000 " invalid " 
                           "16r69BD"    16r0000 " invalid " 
                           "16r69BE"    16r5C4B " <CJK> " 
                           "16r69BF"    16r5C48 " <CJK> " 
                           "16r69C0"    16r0000 " invalid " 
                           "16r69C1"    16r5C49 " <CJK> " 
                           "16r69C2"    16r0000 " invalid " 
                           "16r69C3"    16r5C51 " <CJK> " 
                           "16r69C4"    16r0000 " invalid " 
                           "16r69C5"    16r0000 " invalid " 
                           "16r69C6"    16r0000 " invalid " 
                           "16r69C7"    16r7422 " <CJK> " 
                           "16r69C8"    16r0000 " invalid " 
                           "16r69C9"    16r0000 " invalid " 
                           "16r69CA"    16r5C4E " <CJK> " 
                           "16r69CB"    16r393D " <CJK> " 
                           "16r69CC"    16r4448 " <CJK> " 
                           "16r69CD"    16r4164 " <CJK> " 
                           "16r69CE"    16r5C4C " <CJK> " 
                           "16r69CF"    16r0000 " invalid " 
                           "16r69D0"    16r5C47 " <CJK> " 
                           "16r69D1"    16r0000 " invalid " 
                           "16r69D2"    16r0000 " invalid " 
                           "16r69D3"    16r5C4A " <CJK> " 
                           "16r69D4"    16r0000 " invalid " 
                           "16r69D5"    16r0000 " invalid " 
                           "16r69D6"    16r0000 " invalid " 
                           "16r69D7"    16r0000 " invalid " 
                           "16r69D8"    16r4D4D " <CJK> " 
                           "16r69D9"    16r4B6A " <CJK> " 
                           "16r69DA"    16r0000 " invalid " 
                           "16r69DB"    16r0000 " invalid " 
                           "16r69DC"    16r0000 " invalid " 
                           "16r69DD"    16r5C4F " <CJK> " 
                           "16r69DE"    16r5C59 " <CJK> " 
                           "16r69DF"    16r0000 " invalid " 
                           "16r69E0"    16r0000 " invalid " 
                           "16r69E1"    16r0000 " invalid " 
                           "16r69E2"    16r0000 " invalid " 
                           "16r69E3"    16r0000 " invalid " 
                           "16r69E4"    16r0000 " invalid " 
                           "16r69E5"    16r0000 " invalid " 
                           "16r69E6"    16r0000 " invalid " 
                           "16r69E7"    16r5C61 " <CJK> " 
                           "16r69E8"    16r5C5A " <CJK> " 
                           "16r69E9"    16r0000 " invalid " 
                           "16r69EA"    16r0000 " invalid " 
                           "16r69EB"    16r5C67 " <CJK> " 
                           "16r69EC"    16r0000 " invalid " 
                           "16r69ED"    16r5C65 " <CJK> " 
                           "16r69EE"    16r0000 " invalid " 
                           "16r69EF"    16r0000 " invalid " 
                           "16r69F0"    16r0000 " invalid " 
                           "16r69F1"    16r0000 " invalid " 
                           "16r69F2"    16r5C60 " <CJK> " 
                           "16r69F3"    16r0000 " invalid " 
                           "16r69F4"    16r0000 " invalid " 
                           "16r69F5"    16r0000 " invalid " 
                           "16r69F6"    16r0000 " invalid " 
                           "16r69F7"    16r0000 " invalid " 
                           "16r69F8"    16r0000 " invalid " 
                           "16r69F9"    16r5C5F " <CJK> " 
                           "16r69FA"    16r0000 " invalid " 
                           "16r69FB"    16r4450 " <CJK> " 
                           "16r69FC"    16r0000 " invalid " 
                           "16r69FD"    16r4165 " <CJK> " 
                           "16r69FE"    16r0000 " invalid " 
                           "16r69FF"    16r5C5D " <CJK> " 
                           "16r6A00"    16r0000 " invalid " 
                           "16r6A01"    16r0000 " invalid " 
                           "16r6A02"    16r5C5B " <CJK> " 
                           "16r6A03"    16r0000 " invalid " 
                           "16r6A04"    16r0000 " invalid " 
                           "16r6A05"    16r5C62 " <CJK> " 
                           "16r6A06"    16r0000 " invalid " 
                           "16r6A07"    16r0000 " invalid " 
                           "16r6A08"    16r0000 " invalid " 
                           "16r6A09"    16r0000 " invalid " 
                           "16r6A0A"    16r5C68 " <CJK> " 
                           "16r6A0B"    16r4875 " <CJK> " 
                           "16r6A0C"    16r5C6E " <CJK> " 
                           "16r6A0D"    16r0000 " invalid " 
                           "16r6A0E"    16r0000 " invalid " 
                           "16r6A0F"    16r0000 " invalid " 
                           "16r6A10"    16r0000 " invalid " 
                           "16r6A11"    16r0000 " invalid " 
                           "16r6A12"    16r5C69 " <CJK> " 
                           "16r6A13"    16r5C6C " <CJK> " 
                           "16r6A14"    16r5C66 " <CJK> " 
                           "16r6A15"    16r0000 " invalid " 
                           "16r6A16"    16r0000 " invalid " 
                           "16r6A17"    16r4374 " <CJK> " 
                           "16r6A18"    16r0000 " invalid " 
                           "16r6A19"    16r4938 " <CJK> " 
                           "16r6A1A"    16r0000 " invalid " 
                           "16r6A1B"    16r5C5C " <CJK> " 
                           "16r6A1C"    16r0000 " invalid " 
                           "16r6A1D"    16r0000 " invalid " 
                           "16r6A1E"    16r5C64 " <CJK> " 
                           "16r6A1F"    16r3E40 " <CJK> " 
                           "16r6A20"    16r0000 " invalid " 
                           "16r6A21"    16r4C4F " <CJK> " 
                           "16r6A22"    16r5C78 " <CJK> " 
                           "16r6A23"    16r5C6B " <CJK> " 
                           "16r6A24"    16r0000 " invalid " 
                           "16r6A25"    16r0000 " invalid " 
                           "16r6A26"    16r0000 " invalid " 
                           "16r6A27"    16r0000 " invalid " 
                           "16r6A28"    16r0000 " invalid " 
                           "16r6A29"    16r3822 " <CJK> " 
                           "16r6A2A"    16r3223 " <CJK> " 
                           "16r6A2B"    16r335F " <CJK> " 
                           "16r6A2C"    16r0000 " invalid " 
                           "16r6A2D"    16r0000 " invalid " 
                           "16r6A2E"    16r5C53 " <CJK> " 
                           "16r6A2F"    16r0000 " invalid " 
                           "16r6A30"    16r0000 " invalid " 
                           "16r6A31"    16r0000 " invalid " 
                           "16r6A32"    16r0000 " invalid " 
                           "16r6A33"    16r0000 " invalid " 
                           "16r6A34"    16r0000 " invalid " 
                           "16r6A35"    16r3E41 " <CJK> " 
                           "16r6A36"    16r5C70 " <CJK> " 
                           "16r6A37"    16r0000 " invalid " 
                           "16r6A38"    16r5C77 " <CJK> " 
                           "16r6A39"    16r3C79 " <CJK> " 
                           "16r6A3A"    16r3372 " <CJK> " 
                           "16r6A3B"    16r0000 " invalid " 
                           "16r6A3C"    16r0000 " invalid " 
                           "16r6A3D"    16r432E " <CJK> " 
                           "16r6A3E"    16r0000 " invalid " 
                           "16r6A3F"    16r0000 " invalid " 
                           "16r6A40"    16r0000 " invalid " 
                           "16r6A41"    16r0000 " invalid " 
                           "16r6A42"    16r0000 " invalid " 
                           "16r6A43"    16r0000 " invalid " 
                           "16r6A44"    16r5C6D " <CJK> " 
                           "16r6A45"    16r0000 " invalid " 
                           "16r6A46"    16r0000 " invalid " 
                           "16r6A47"    16r5C72 " <CJK> " 
                           "16r6A48"    16r5C76 " <CJK> " 
                           "16r6A49"    16r0000 " invalid " 
                           "16r6A4A"    16r0000 " invalid " 
                           "16r6A4B"    16r3636 " <CJK> " 
                           "16r6A4C"    16r0000 " invalid " 
                           "16r6A4D"    16r0000 " invalid " 
                           "16r6A4E"    16r0000 " invalid " 
                           "16r6A4F"    16r0000 " invalid " 
                           "16r6A50"    16r0000 " invalid " 
                           "16r6A51"    16r0000 " invalid " 
                           "16r6A52"    16r0000 " invalid " 
                           "16r6A53"    16r0000 " invalid " 
                           "16r6A54"    16r0000 " invalid " 
                           "16r6A55"    16r0000 " invalid " 
                           "16r6A56"    16r0000 " invalid " 
                           "16r6A57"    16r0000 " invalid " 
                           "16r6A58"    16r354C " <CJK> " 
                           "16r6A59"    16r5C74 " <CJK> " 
                           "16r6A5A"    16r0000 " invalid " 
                           "16r6A5B"    16r0000 " invalid " 
                           "16r6A5C"    16r0000 " invalid " 
                           "16r6A5D"    16r0000 " invalid " 
                           "16r6A5E"    16r0000 " invalid " 
                           "16r6A5F"    16r3521 " <CJK> " 
                           "16r6A60"    16r0000 " invalid " 
                           "16r6A61"    16r464B " <CJK> " 
                           "16r6A62"    16r5C73 " <CJK> " 
                           "16r6A63"    16r0000 " invalid " 
                           "16r6A64"    16r0000 " invalid " 
                           "16r6A65"    16r0000 " invalid " 
                           "16r6A66"    16r5C75 " <CJK> " 
                           "16r6A67"    16r0000 " invalid " 
                           "16r6A68"    16r0000 " invalid " 
                           "16r6A69"    16r0000 " invalid " 
                           "16r6A6A"    16r0000 " invalid " 
                           "16r6A6B"    16r0000 " invalid " 
                           "16r6A6C"    16r0000 " invalid " 
                           "16r6A6D"    16r0000 " invalid " 
                           "16r6A6E"    16r0000 " invalid " 
                           "16r6A6F"    16r0000 " invalid " 
                           "16r6A70"    16r0000 " invalid " 
                           "16r6A71"    16r0000 " invalid " 
                           "16r6A72"    16r5C6F " <CJK> " 
                           "16r6A73"    16r0000 " invalid " 
                           "16r6A74"    16r0000 " invalid " 
                           "16r6A75"    16r0000 " invalid " 
                           "16r6A76"    16r0000 " invalid " 
                           "16r6A77"    16r0000 " invalid " 
                           "16r6A78"    16r5C71 " <CJK> " 
                           "16r6A79"    16r0000 " invalid " 
                           "16r6A7A"    16r0000 " invalid " 
                           "16r6A7B"    16r0000 " invalid " 
                           "16r6A7C"    16r0000 " invalid " 
                           "16r6A7D"    16r0000 " invalid " 
                           "16r6A7E"    16r0000 " invalid " 
                           "16r6A7F"    16r3360 " <CJK> " 
                           "16r6A80"    16r4349 " <CJK> " 
                           "16r6A81"    16r0000 " invalid " 
                           "16r6A82"    16r0000 " invalid " 
                           "16r6A83"    16r0000 " invalid " 
                           "16r6A84"    16r5C7C " <CJK> " 
                           "16r6A85"    16r0000 " invalid " 
                           "16r6A86"    16r0000 " invalid " 
                           "16r6A87"    16r0000 " invalid " 
                           "16r6A88"    16r0000 " invalid " 
                           "16r6A89"    16r0000 " invalid " 
                           "16r6A8A"    16r0000 " invalid " 
                           "16r6A8B"    16r0000 " invalid " 
                           "16r6A8C"    16r0000 " invalid " 
                           "16r6A8D"    16r5C7A " <CJK> " 
                           "16r6A8E"    16r3869 " <CJK> " 
                           "16r6A8F"    16r0000 " invalid " 
                           "16r6A90"    16r5C79 " <CJK> " 
                           "16r6A91"    16r0000 " invalid " 
                           "16r6A92"    16r0000 " invalid " 
                           "16r6A93"    16r0000 " invalid " 
                           "16r6A94"    16r0000 " invalid " 
                           "16r6A95"    16r0000 " invalid " 
                           "16r6A96"    16r0000 " invalid " 
                           "16r6A97"    16r5D21 " <CJK> " 
                           "16r6A98"    16r0000 " invalid " 
                           "16r6A99"    16r0000 " invalid " 
                           "16r6A9A"    16r0000 " invalid " 
                           "16r6A9B"    16r0000 " invalid " 
                           "16r6A9C"    16r5B58 " <CJK> " 
                           "16r6A9D"    16r0000 " invalid " 
                           "16r6A9E"    16r0000 " invalid " 
                           "16r6A9F"    16r0000 " invalid " 
                           "16r6AA0"    16r5C7B " <CJK> " 
                           "16r6AA1"    16r0000 " invalid " 
                           "16r6AA2"    16r5C7D " <CJK> " 
                           "16r6AA3"    16r5C7E " <CJK> " 
                           "16r6AA4"    16r0000 " invalid " 
                           "16r6AA5"    16r0000 " invalid " 
                           "16r6AA6"    16r0000 " invalid " 
                           "16r6AA7"    16r0000 " invalid " 
                           "16r6AA8"    16r0000 " invalid " 
                           "16r6AA9"    16r0000 " invalid " 
                           "16r6AAA"    16r5D2C " <CJK> " 
                           "16r6AAB"    16r0000 " invalid " 
                           "16r6AAC"    16r5D28 " <CJK> " 
                           "16r6AAD"    16r0000 " invalid " 
                           "16r6AAE"    16r5B6D " <CJK> " 
                           "16r6AAF"    16r0000 " invalid " 
                           "16r6AB0"    16r0000 " invalid " 
                           "16r6AB1"    16r0000 " invalid " 
                           "16r6AB2"    16r0000 " invalid " 
                           "16r6AB3"    16r5D27 " <CJK> " 
                           "16r6AB4"    16r0000 " invalid " 
                           "16r6AB5"    16r0000 " invalid " 
                           "16r6AB6"    16r0000 " invalid " 
                           "16r6AB7"    16r0000 " invalid " 
                           "16r6AB8"    16r5D26 " <CJK> " 
                           "16r6AB9"    16r0000 " invalid " 
                           "16r6ABA"    16r0000 " invalid " 
                           "16r6ABB"    16r5D23 " <CJK> " 
                           "16r6ABC"    16r0000 " invalid " 
                           "16r6ABD"    16r0000 " invalid " 
                           "16r6ABE"    16r0000 " invalid " 
                           "16r6ABF"    16r0000 " invalid " 
                           "16r6AC0"    16r0000 " invalid " 
                           "16r6AC1"    16r5C6A " <CJK> " 
                           "16r6AC2"    16r5D25 " <CJK> " 
                           "16r6AC3"    16r5D24 " <CJK> " 
                           "16r6AC4"    16r0000 " invalid " 
                           "16r6AC5"    16r0000 " invalid " 
                           "16r6AC6"    16r0000 " invalid " 
                           "16r6AC7"    16r0000 " invalid " 
                           "16r6AC8"    16r0000 " invalid " 
                           "16r6AC9"    16r0000 " invalid " 
                           "16r6ACA"    16r0000 " invalid " 
                           "16r6ACB"    16r0000 " invalid " 
                           "16r6ACC"    16r0000 " invalid " 
                           "16r6ACD"    16r0000 " invalid " 
                           "16r6ACE"    16r0000 " invalid " 
                           "16r6ACF"    16r0000 " invalid " 
                           "16r6AD0"    16r0000 " invalid " 
                           "16r6AD1"    16r5D2A " <CJK> " 
                           "16r6AD2"    16r0000 " invalid " 
                           "16r6AD3"    16r4F26 " <CJK> " 
                           "16r6AD4"    16r0000 " invalid " 
                           "16r6AD5"    16r0000 " invalid " 
                           "16r6AD6"    16r0000 " invalid " 
                           "16r6AD7"    16r0000 " invalid " 
                           "16r6AD8"    16r0000 " invalid " 
                           "16r6AD9"    16r0000 " invalid " 
                           "16r6ADA"    16r5D2D " <CJK> " 
                           "16r6ADB"    16r367B " <CJK> " 
                           "16r6ADC"    16r0000 " invalid " 
                           "16r6ADD"    16r0000 " invalid " 
                           "16r6ADE"    16r5D29 " <CJK> " 
                           "16r6ADF"    16r5D2B " <CJK> " 
                           "16r6AE0"    16r0000 " invalid " 
                           "16r6AE1"    16r0000 " invalid " 
                           "16r6AE2"    16r0000 " invalid " 
                           "16r6AE3"    16r0000 " invalid " 
                           "16r6AE4"    16r0000 " invalid " 
                           "16r6AE5"    16r0000 " invalid " 
                           "16r6AE6"    16r0000 " invalid " 
                           "16r6AE7"    16r0000 " invalid " 
                           "16r6AE8"    16r4827 " <CJK> " 
                           "16r6AE9"    16r0000 " invalid " 
                           "16r6AEA"    16r5D2E " <CJK> " 
                           "16r6AEB"    16r0000 " invalid " 
                           "16r6AEC"    16r0000 " invalid " 
                           "16r6AED"    16r0000 " invalid " 
                           "16r6AEE"    16r0000 " invalid " 
                           "16r6AEF"    16r0000 " invalid " 
                           "16r6AF0"    16r0000 " invalid " 
                           "16r6AF1"    16r0000 " invalid " 
                           "16r6AF2"    16r0000 " invalid " 
                           "16r6AF3"    16r0000 " invalid " 
                           "16r6AF4"    16r0000 " invalid " 
                           "16r6AF5"    16r0000 " invalid " 
                           "16r6AF6"    16r0000 " invalid " 
                           "16r6AF7"    16r0000 " invalid " 
                           "16r6AF8"    16r0000 " invalid " 
                           "16r6AF9"    16r0000 " invalid " 
                           "16r6AFA"    16r5D32 " <CJK> " 
                           "16r6AFB"    16r5D2F " <CJK> " 
                           "16r6AFC"    16r0000 " invalid " 
                           "16r6AFD"    16r0000 " invalid " 
                           "16r6AFE"    16r0000 " invalid " 
                           "16r6AFF"    16r0000 " invalid " 
                           "16r6B00"    16r0000 " invalid " 
                           "16r6B01"    16r0000 " invalid " 
                           "16r6B02"    16r0000 " invalid " 
                           "16r6B03"    16r0000 " invalid " 
                           "16r6B04"    16r4D73 " <CJK> " 
                           "16r6B05"    16r5D30 " <CJK> " 
                           "16r6B06"    16r0000 " invalid " 
                           "16r6B07"    16r0000 " invalid " 
                           "16r6B08"    16r0000 " invalid " 
                           "16r6B09"    16r0000 " invalid " 
                           "16r6B0A"    16r5C5E " <CJK> " 
                           "16r6B0B"    16r0000 " invalid " 
                           "16r6B0C"    16r0000 " invalid " 
                           "16r6B0D"    16r0000 " invalid " 
                           "16r6B0E"    16r0000 " invalid " 
                           "16r6B0F"    16r0000 " invalid " 
                           "16r6B10"    16r0000 " invalid " 
                           "16r6B11"    16r0000 " invalid " 
                           "16r6B12"    16r5D33 " <CJK> " 
                           "16r6B13"    16r0000 " invalid " 
                           "16r6B14"    16r0000 " invalid " 
                           "16r6B15"    16r0000 " invalid " 
                           "16r6B16"    16r5D34 " <CJK> " 
                           "16r6B17"    16r0000 " invalid " 
                           "16r6B18"    16r0000 " invalid " 
                           "16r6B19"    16r0000 " invalid " 
                           "16r6B1A"    16r0000 " invalid " 
                           "16r6B1B"    16r0000 " invalid " 
                           "16r6B1C"    16r0000 " invalid " 
                           "16r6B1D"    16r3135 " <CJK> " 
                           "16r6B1E"    16r0000 " invalid " 
                           "16r6B1F"    16r5D36 " <CJK> " 
                           "16r6B20"    16r3767 " <CJK> " 
                           "16r6B21"    16r3C21 " <CJK> " 
                           "16r6B22"    16r0000 " invalid " 
                           "16r6B23"    16r3655 " <CJK> " 
                           "16r6B24"    16r0000 " invalid " 
                           "16r6B25"    16r0000 " invalid " 
                           "16r6B26"    16r0000 " invalid " 
                           "16r6B27"    16r3224 " <CJK> " 
                           "16r6B28"    16r0000 " invalid " 
                           "16r6B29"    16r0000 " invalid " 
                           "16r6B2A"    16r0000 " invalid " 
                           "16r6B2B"    16r0000 " invalid " 
                           "16r6B2C"    16r0000 " invalid " 
                           "16r6B2D"    16r0000 " invalid " 
                           "16r6B2E"    16r0000 " invalid " 
                           "16r6B2F"    16r0000 " invalid " 
                           "16r6B30"    16r0000 " invalid " 
                           "16r6B31"    16r0000 " invalid " 
                           "16r6B32"    16r4D5F " <CJK> " 
                           "16r6B33"    16r0000 " invalid " 
                           "16r6B34"    16r0000 " invalid " 
                           "16r6B35"    16r0000 " invalid " 
                           "16r6B36"    16r0000 " invalid " 
                           "16r6B37"    16r5D38 " <CJK> " 
                           "16r6B38"    16r5D37 " <CJK> " 
                           "16r6B39"    16r5D3A " <CJK> " 
                           "16r6B3A"    16r353D " <CJK> " 
                           "16r6B3B"    16r0000 " invalid " 
                           "16r6B3C"    16r0000 " invalid " 
                           "16r6B3D"    16r3656 " <CJK> " 
                           "16r6B3E"    16r343E " <CJK> " 
                           "16r6B3F"    16r0000 " invalid " 
                           "16r6B40"    16r0000 " invalid " 
                           "16r6B41"    16r0000 " invalid " 
                           "16r6B42"    16r0000 " invalid " 
                           "16r6B43"    16r5D3D " <CJK> " 
                           "16r6B44"    16r0000 " invalid " 
                           "16r6B45"    16r0000 " invalid " 
                           "16r6B46"    16r0000 " invalid " 
                           "16r6B47"    16r5D3C " <CJK> " 
                           "16r6B48"    16r0000 " invalid " 
                           "16r6B49"    16r5D3E " <CJK> " 
                           "16r6B4A"    16r0000 " invalid " 
                           "16r6B4B"    16r0000 " invalid " 
                           "16r6B4C"    16r324E " <CJK> " 
                           "16r6B4D"    16r0000 " invalid " 
                           "16r6B4E"    16r4337 " <CJK> " 
                           "16r6B4F"    16r0000 " invalid " 
                           "16r6B50"    16r5D3F " <CJK> " 
                           "16r6B51"    16r0000 " invalid " 
                           "16r6B52"    16r0000 " invalid " 
                           "16r6B53"    16r343F " <CJK> " 
                           "16r6B54"    16r5D41 " <CJK> " 
                           "16r6B55"    16r0000 " invalid " 
                           "16r6B56"    16r0000 " invalid " 
                           "16r6B57"    16r0000 " invalid " 
                           "16r6B58"    16r0000 " invalid " 
                           "16r6B59"    16r5D40 " <CJK> " 
                           "16r6B5A"    16r0000 " invalid " 
                           "16r6B5B"    16r5D42 " <CJK> " 
                           "16r6B5C"    16r0000 " invalid " 
                           "16r6B5D"    16r0000 " invalid " 
                           "16r6B5E"    16r0000 " invalid " 
                           "16r6B5F"    16r5D43 " <CJK> " 
                           "16r6B60"    16r0000 " invalid " 
                           "16r6B61"    16r5D44 " <CJK> " 
                           "16r6B62"    16r3B5F " <CJK> " 
                           "16r6B63"    16r4035 " <CJK> " 
                           "16r6B64"    16r3A21 " <CJK> " 
                           "16r6B65"    16r0000 " invalid " 
                           "16r6B66"    16r4970 " <CJK> " 
                           "16r6B67"    16r0000 " invalid " 
                           "16r6B68"    16r0000 " invalid " 
                           "16r6B69"    16r4A62 " <CJK> " 
                           "16r6B6A"    16r4F44 " <CJK> " 
                           "16r6B6B"    16r0000 " invalid " 
                           "16r6B6C"    16r0000 " invalid " 
                           "16r6B6D"    16r0000 " invalid " 
                           "16r6B6E"    16r0000 " invalid " 
                           "16r6B6F"    16r3B75 " <CJK> " 
                           "16r6B70"    16r0000 " invalid " 
                           "16r6B71"    16r0000 " invalid " 
                           "16r6B72"    16r0000 " invalid " 
                           "16r6B73"    16r3A50 " <CJK> " 
                           "16r6B74"    16r4E72 " <CJK> " 
                           "16r6B75"    16r0000 " invalid " 
                           "16r6B76"    16r0000 " invalid " 
                           "16r6B77"    16r0000 " invalid " 
                           "16r6B78"    16r5D45 " <CJK> " 
                           "16r6B79"    16r5D46 " <CJK> " 
                           "16r6B7A"    16r0000 " invalid " 
                           "16r6B7B"    16r3B60 " <CJK> " 
                           "16r6B7C"    16r0000 " invalid " 
                           "16r6B7D"    16r0000 " invalid " 
                           "16r6B7E"    16r0000 " invalid " 
                           "16r6B7F"    16r5D47 " <CJK> " 
                           "16r6B80"    16r5D48 " <CJK> " 
                           "16r6B81"    16r0000 " invalid " 
                           "16r6B82"    16r0000 " invalid " 
                           "16r6B83"    16r5D4A " <CJK> " 
                           "16r6B84"    16r5D49 " <CJK> " 
                           "16r6B85"    16r0000 " invalid " 
                           "16r6B86"    16r4B58 " <CJK> " 
                           "16r6B87"    16r0000 " invalid " 
                           "16r6B88"    16r0000 " invalid " 
                           "16r6B89"    16r3D5E " <CJK> " 
                           "16r6B8A"    16r3C6C " <CJK> " 
                           "16r6B8B"    16r3B44 " <CJK> " 
                           "16r6B8C"    16r0000 " invalid " 
                           "16r6B8D"    16r5D4B " <CJK> " 
                           "16r6B8E"    16r0000 " invalid " 
                           "16r6B8F"    16r0000 " invalid " 
                           "16r6B90"    16r0000 " invalid " 
                           "16r6B91"    16r0000 " invalid " 
                           "16r6B92"    16r0000 " invalid " 
                           "16r6B93"    16r0000 " invalid " 
                           "16r6B94"    16r0000 " invalid " 
                           "16r6B95"    16r5D4D " <CJK> " 
                           "16r6B96"    16r3F23 " <CJK> " 
                           "16r6B97"    16r0000 " invalid " 
                           "16r6B98"    16r5D4C " <CJK> " 
                           "16r6B99"    16r0000 " invalid " 
                           "16r6B9A"    16r0000 " invalid " 
                           "16r6B9B"    16r0000 " invalid " 
                           "16r6B9C"    16r0000 " invalid " 
                           "16r6B9D"    16r0000 " invalid " 
                           "16r6B9E"    16r5D4E " <CJK> " 
                           "16r6B9F"    16r0000 " invalid " 
                           "16r6BA0"    16r0000 " invalid " 
                           "16r6BA1"    16r0000 " invalid " 
                           "16r6BA2"    16r0000 " invalid " 
                           "16r6BA3"    16r0000 " invalid " 
                           "16r6BA4"    16r5D4F " <CJK> " 
                           "16r6BA5"    16r0000 " invalid " 
                           "16r6BA6"    16r0000 " invalid " 
                           "16r6BA7"    16r0000 " invalid " 
                           "16r6BA8"    16r0000 " invalid " 
                           "16r6BA9"    16r0000 " invalid " 
                           "16r6BAA"    16r5D50 " <CJK> " 
                           "16r6BAB"    16r5D51 " <CJK> " 
                           "16r6BAC"    16r0000 " invalid " 
                           "16r6BAD"    16r0000 " invalid " 
                           "16r6BAE"    16r0000 " invalid " 
                           "16r6BAF"    16r5D52 " <CJK> " 
                           "16r6BB0"    16r0000 " invalid " 
                           "16r6BB1"    16r5D54 " <CJK> " 
                           "16r6BB2"    16r5D53 " <CJK> " 
                           "16r6BB3"    16r5D55 " <CJK> " 
                           "16r6BB4"    16r3225 " <CJK> " 
                           "16r6BB5"    16r434A " <CJK> " 
                           "16r6BB6"    16r0000 " invalid " 
                           "16r6BB7"    16r5D56 " <CJK> " 
                           "16r6BB8"    16r0000 " invalid " 
                           "16r6BB9"    16r0000 " invalid " 
                           "16r6BBA"    16r3B26 " <CJK> " 
                           "16r6BBB"    16r334C " <CJK> " 
                           "16r6BBC"    16r5D57 " <CJK> " 
                           "16r6BBD"    16r0000 " invalid " 
                           "16r6BBE"    16r0000 " invalid " 
                           "16r6BBF"    16r4542 " <CJK> " 
                           "16r6BC0"    16r544C " <CJK> " 
                           "16r6BC1"    16r0000 " invalid " 
                           "16r6BC2"    16r0000 " invalid " 
                           "16r6BC3"    16r0000 " invalid " 
                           "16r6BC4"    16r0000 " invalid " 
                           "16r6BC5"    16r3523 " <CJK> " 
                           "16r6BC6"    16r5D58 " <CJK> " 
                           "16r6BC7"    16r0000 " invalid " 
                           "16r6BC8"    16r0000 " invalid " 
                           "16r6BC9"    16r0000 " invalid " 
                           "16r6BCA"    16r0000 " invalid " 
                           "16r6BCB"    16r5D59 " <CJK> " 
                           "16r6BCC"    16r0000 " invalid " 
                           "16r6BCD"    16r4A6C " <CJK> " 
                           "16r6BCE"    16r4B68 " <CJK> " 
                           "16r6BCF"    16r0000 " invalid " 
                           "16r6BD0"    16r0000 " invalid " 
                           "16r6BD1"    16r0000 " invalid " 
                           "16r6BD2"    16r4647 " <CJK> " 
                           "16r6BD3"    16r5D5A " <CJK> " 
                           "16r6BD4"    16r4866 " <CJK> " 
                           "16r6BD5"    16r0000 " invalid " 
                           "16r6BD6"    16r0000 " invalid " 
                           "16r6BD7"    16r0000 " invalid " 
                           "16r6BD8"    16r487B " <CJK> " 
                           "16r6BD9"    16r0000 " invalid " 
                           "16r6BDA"    16r0000 " invalid " 
                           "16r6BDB"    16r4C53 " <CJK> " 
                           "16r6BDC"    16r0000 " invalid " 
                           "16r6BDD"    16r0000 " invalid " 
                           "16r6BDE"    16r0000 " invalid " 
                           "16r6BDF"    16r5D5B " <CJK> " 
                           "16r6BE0"    16r0000 " invalid " 
                           "16r6BE1"    16r0000 " invalid " 
                           "16r6BE2"    16r0000 " invalid " 
                           "16r6BE3"    16r0000 " invalid " 
                           "16r6BE4"    16r0000 " invalid " 
                           "16r6BE5"    16r0000 " invalid " 
                           "16r6BE6"    16r0000 " invalid " 
                           "16r6BE7"    16r0000 " invalid " 
                           "16r6BE8"    16r0000 " invalid " 
                           "16r6BE9"    16r0000 " invalid " 
                           "16r6BEA"    16r0000 " invalid " 
                           "16r6BEB"    16r5D5D " <CJK> " 
                           "16r6BEC"    16r5D5C " <CJK> " 
                           "16r6BED"    16r0000 " invalid " 
                           "16r6BEE"    16r0000 " invalid " 
                           "16r6BEF"    16r5D5F " <CJK> " 
                           "16r6BF0"    16r0000 " invalid " 
                           "16r6BF1"    16r0000 " invalid " 
                           "16r6BF2"    16r0000 " invalid " 
                           "16r6BF3"    16r5D5E " <CJK> " 
                           "16r6BF4"    16r0000 " invalid " 
                           "16r6BF5"    16r0000 " invalid " 
                           "16r6BF6"    16r0000 " invalid " 
                           "16r6BF7"    16r0000 " invalid " 
                           "16r6BF8"    16r0000 " invalid " 
                           "16r6BF9"    16r0000 " invalid " 
                           "16r6BFA"    16r0000 " invalid " 
                           "16r6BFB"    16r0000 " invalid " 
                           "16r6BFC"    16r0000 " invalid " 
                           "16r6BFD"    16r0000 " invalid " 
                           "16r6BFE"    16r0000 " invalid " 
                           "16r6BFF"    16r0000 " invalid " 
                           "16r6C00"    16r0000 " invalid " 
                           "16r6C01"    16r0000 " invalid " 
                           "16r6C02"    16r0000 " invalid " 
                           "16r6C03"    16r0000 " invalid " 
                           "16r6C04"    16r0000 " invalid " 
                           "16r6C05"    16r0000 " invalid " 
                           "16r6C06"    16r0000 " invalid " 
                           "16r6C07"    16r0000 " invalid " 
                           "16r6C08"    16r5D61 " <CJK> " 
                           "16r6C09"    16r0000 " invalid " 
                           "16r6C0A"    16r0000 " invalid " 
                           "16r6C0B"    16r0000 " invalid " 
                           "16r6C0C"    16r0000 " invalid " 
                           "16r6C0D"    16r0000 " invalid " 
                           "16r6C0E"    16r0000 " invalid " 
                           "16r6C0F"    16r3B61 " <CJK> " 
                           "16r6C10"    16r0000 " invalid " 
                           "16r6C11"    16r4C31 " <CJK> " 
                           "16r6C12"    16r0000 " invalid " 
                           "16r6C13"    16r5D62 " <CJK> " 
                           "16r6C14"    16r5D63 " <CJK> " 
                           "16r6C15"    16r0000 " invalid " 
                           "16r6C16"    16r0000 " invalid " 
                           "16r6C17"    16r3524 " <CJK> " 
                           "16r6C18"    16r0000 " invalid " 
                           "16r6C19"    16r0000 " invalid " 
                           "16r6C1A"    16r0000 " invalid " 
                           "16r6C1B"    16r5D64 " <CJK> " 
                           "16r6C1C"    16r0000 " invalid " 
                           "16r6C1D"    16r0000 " invalid " 
                           "16r6C1E"    16r0000 " invalid " 
                           "16r6C1F"    16r0000 " invalid " 
                           "16r6C20"    16r0000 " invalid " 
                           "16r6C21"    16r0000 " invalid " 
                           "16r6C22"    16r0000 " invalid " 
                           "16r6C23"    16r5D66 " <CJK> " 
                           "16r6C24"    16r5D65 " <CJK> " 
                           "16r6C25"    16r0000 " invalid " 
                           "16r6C26"    16r0000 " invalid " 
                           "16r6C27"    16r0000 " invalid " 
                           "16r6C28"    16r0000 " invalid " 
                           "16r6C29"    16r0000 " invalid " 
                           "16r6C2A"    16r0000 " invalid " 
                           "16r6C2B"    16r0000 " invalid " 
                           "16r6C2C"    16r0000 " invalid " 
                           "16r6C2D"    16r0000 " invalid " 
                           "16r6C2E"    16r0000 " invalid " 
                           "16r6C2F"    16r0000 " invalid " 
                           "16r6C30"    16r0000 " invalid " 
                           "16r6C31"    16r0000 " invalid " 
                           "16r6C32"    16r0000 " invalid " 
                           "16r6C33"    16r0000 " invalid " 
                           "16r6C34"    16r3F65 " <CJK> " 
                           "16r6C35"    16r0000 " invalid " 
                           "16r6C36"    16r0000 " invalid " 
                           "16r6C37"    16r4939 " <CJK> " 
                           "16r6C38"    16r314A " <CJK> " 
                           "16r6C39"    16r0000 " invalid " 
                           "16r6C3A"    16r0000 " invalid " 
                           "16r6C3B"    16r0000 " invalid " 
                           "16r6C3C"    16r0000 " invalid " 
                           "16r6C3D"    16r0000 " invalid " 
                           "16r6C3E"    16r4845 " <CJK> " 
                           "16r6C3F"    16r0000 " invalid " 
                           "16r6C40"    16r4475 " <CJK> " 
                           "16r6C41"    16r3D41 " <CJK> " 
                           "16r6C42"    16r3561 " <CJK> " 
                           "16r6C43"    16r0000 " invalid " 
                           "16r6C44"    16r0000 " invalid " 
                           "16r6C45"    16r0000 " invalid " 
                           "16r6C46"    16r0000 " invalid " 
                           "16r6C47"    16r0000 " invalid " 
                           "16r6C48"    16r0000 " invalid " 
                           "16r6C49"    16r0000 " invalid " 
                           "16r6C4A"    16r0000 " invalid " 
                           "16r6C4B"    16r0000 " invalid " 
                           "16r6C4C"    16r0000 " invalid " 
                           "16r6C4D"    16r0000 " invalid " 
                           "16r6C4E"    16r4846 " <CJK> " 
                           "16r6C4F"    16r0000 " invalid " 
                           "16r6C50"    16r3C2E " <CJK> " 
                           "16r6C51"    16r0000 " invalid " 
                           "16r6C52"    16r0000 " invalid " 
                           "16r6C53"    16r0000 " invalid " 
                           "16r6C54"    16r0000 " invalid " 
                           "16r6C55"    16r5D68 " <CJK> " 
                           "16r6C56"    16r0000 " invalid " 
                           "16r6C57"    16r3440 " <CJK> " 
                           "16r6C58"    16r0000 " invalid " 
                           "16r6C59"    16r0000 " invalid " 
                           "16r6C5A"    16r3178 " <CJK> " 
                           "16r6C5B"    16r0000 " invalid " 
                           "16r6C5C"    16r0000 " invalid " 
                           "16r6C5D"    16r4672 " <CJK> " 
                           "16r6C5E"    16r5D67 " <CJK> " 
                           "16r6C5F"    16r393E " <CJK> " 
                           "16r6C60"    16r4353 " <CJK> " 
                           "16r6C61"    16r0000 " invalid " 
                           "16r6C62"    16r5D69 " <CJK> " 
                           "16r6C63"    16r0000 " invalid " 
                           "16r6C64"    16r0000 " invalid " 
                           "16r6C65"    16r0000 " invalid " 
                           "16r6C66"    16r0000 " invalid " 
                           "16r6C67"    16r0000 " invalid " 
                           "16r6C68"    16r5D71 " <CJK> " 
                           "16r6C69"    16r0000 " invalid " 
                           "16r6C6A"    16r5D6A " <CJK> " 
                           "16r6C6B"    16r0000 " invalid " 
                           "16r6C6C"    16r0000 " invalid " 
                           "16r6C6D"    16r0000 " invalid " 
                           "16r6C6E"    16r0000 " invalid " 
                           "16r6C6F"    16r0000 " invalid " 
                           "16r6C70"    16r4241 " <CJK> " 
                           "16r6C71"    16r0000 " invalid " 
                           "16r6C72"    16r3562 " <CJK> " 
                           "16r6C73"    16r5D72 " <CJK> " 
                           "16r6C74"    16r0000 " invalid " 
                           "16r6C75"    16r0000 " invalid " 
                           "16r6C76"    16r0000 " invalid " 
                           "16r6C77"    16r0000 " invalid " 
                           "16r6C78"    16r0000 " invalid " 
                           "16r6C79"    16r0000 " invalid " 
                           "16r6C7A"    16r3768 " <CJK> " 
                           "16r6C7B"    16r0000 " invalid " 
                           "16r6C7C"    16r0000 " invalid " 
                           "16r6C7D"    16r3525 " <CJK> " 
                           "16r6C7E"    16r5D70 " <CJK> " 
                           "16r6C7F"    16r0000 " invalid " 
                           "16r6C80"    16r0000 " invalid " 
                           "16r6C81"    16r5D6E " <CJK> " 
                           "16r6C82"    16r5D6B " <CJK> " 
                           "16r6C83"    16r4D60 " <CJK> " 
                           "16r6C84"    16r0000 " invalid " 
                           "16r6C85"    16r0000 " invalid " 
                           "16r6C86"    16r0000 " invalid " 
                           "16r6C87"    16r0000 " invalid " 
                           "16r6C88"    16r4440 " <CJK> " 
                           "16r6C89"    16r0000 " invalid " 
                           "16r6C8A"    16r0000 " invalid " 
                           "16r6C8B"    16r0000 " invalid " 
                           "16r6C8C"    16r4659 " <CJK> " 
                           "16r6C8D"    16r5D6C " <CJK> " 
                           "16r6C8E"    16r0000 " invalid " 
                           "16r6C8F"    16r0000 " invalid " 
                           "16r6C90"    16r5D74 " <CJK> " 
                           "16r6C91"    16r0000 " invalid " 
                           "16r6C92"    16r5D73 " <CJK> " 
                           "16r6C93"    16r3723 " <CJK> " 
                           "16r6C94"    16r0000 " invalid " 
                           "16r6C95"    16r0000 " invalid " 
                           "16r6C96"    16r322D " <CJK> " 
                           "16r6C97"    16r0000 " invalid " 
                           "16r6C98"    16r0000 " invalid " 
                           "16r6C99"    16r3A3B " <CJK> " 
                           "16r6C9A"    16r5D6D " <CJK> " 
                           "16r6C9B"    16r5D6F " <CJK> " 
                           "16r6C9C"    16r0000 " invalid " 
                           "16r6C9D"    16r0000 " invalid " 
                           "16r6C9E"    16r0000 " invalid " 
                           "16r6C9F"    16r0000 " invalid " 
                           "16r6CA0"    16r0000 " invalid " 
                           "16r6CA1"    16r4B57 " <CJK> " 
                           "16r6CA2"    16r4274 " <CJK> " 
                           "16r6CA3"    16r0000 " invalid " 
                           "16r6CA4"    16r0000 " invalid " 
                           "16r6CA5"    16r0000 " invalid " 
                           "16r6CA6"    16r0000 " invalid " 
                           "16r6CA7"    16r0000 " invalid " 
                           "16r6CA8"    16r0000 " invalid " 
                           "16r6CA9"    16r0000 " invalid " 
                           "16r6CAA"    16r0000 " invalid " 
                           "16r6CAB"    16r4B77 " <CJK> " 
                           "16r6CAC"    16r0000 " invalid " 
                           "16r6CAD"    16r0000 " invalid " 
                           "16r6CAE"    16r5D7C " <CJK> " 
                           "16r6CAF"    16r0000 " invalid " 
                           "16r6CB0"    16r0000 " invalid " 
                           "16r6CB1"    16r5D7D " <CJK> " 
                           "16r6CB2"    16r0000 " invalid " 
                           "16r6CB3"    16r324F " <CJK> " 
                           "16r6CB4"    16r0000 " invalid " 
                           "16r6CB5"    16r0000 " invalid " 
                           "16r6CB6"    16r0000 " invalid " 
                           "16r6CB7"    16r0000 " invalid " 
                           "16r6CB8"    16r4A28 " <CJK> " 
                           "16r6CB9"    16r4C7D " <CJK> " 
                           "16r6CBA"    16r5E21 " <CJK> " 
                           "16r6CBB"    16r3C23 " <CJK> " 
                           "16r6CBC"    16r3E42 " <CJK> " 
                           "16r6CBD"    16r5D78 " <CJK> " 
                           "16r6CBE"    16r5D7E " <CJK> " 
                           "16r6CBF"    16r3168 " <CJK> " 
                           "16r6CC0"    16r0000 " invalid " 
                           "16r6CC1"    16r3637 " <CJK> " 
                           "16r6CC2"    16r0000 " invalid " 
                           "16r6CC3"    16r0000 " invalid " 
                           "16r6CC4"    16r5D75 " <CJK> " 
                           "16r6CC5"    16r5D7A " <CJK> " 
                           "16r6CC6"    16r0000 " invalid " 
                           "16r6CC7"    16r0000 " invalid " 
                           "16r6CC8"    16r0000 " invalid " 
                           "16r6CC9"    16r4074 " <CJK> " 
                           "16r6CCA"    16r4771 " <CJK> " 
                           "16r6CCB"    16r0000 " invalid " 
                           "16r6CCC"    16r4867 " <CJK> " 
                           "16r6CCD"    16r0000 " invalid " 
                           "16r6CCE"    16r0000 " invalid " 
                           "16r6CCF"    16r0000 " invalid " 
                           "16r6CD0"    16r0000 " invalid " 
                           "16r6CD1"    16r0000 " invalid " 
                           "16r6CD2"    16r0000 " invalid " 
                           "16r6CD3"    16r5D77 " <CJK> " 
                           "16r6CD4"    16r0000 " invalid " 
                           "16r6CD5"    16r4B21 " <CJK> " 
                           "16r6CD6"    16r0000 " invalid " 
                           "16r6CD7"    16r5D79 " <CJK> " 
                           "16r6CD8"    16r0000 " invalid " 
                           "16r6CD9"    16r5E24 " <CJK> " 
                           "16r6CDA"    16r0000 " invalid " 
                           "16r6CDB"    16r5E22 " <CJK> " 
                           "16r6CDC"    16r0000 " invalid " 
                           "16r6CDD"    16r5D7B " <CJK> " 
                           "16r6CDE"    16r0000 " invalid " 
                           "16r6CDF"    16r0000 " invalid " 
                           "16r6CE0"    16r0000 " invalid " 
                           "16r6CE1"    16r4B22 " <CJK> " 
                           "16r6CE2"    16r4748 " <CJK> " 
                           "16r6CE3"    16r3563 " <CJK> " 
                           "16r6CE4"    16r0000 " invalid " 
                           "16r6CE5"    16r4525 " <CJK> " 
                           "16r6CE6"    16r0000 " invalid " 
                           "16r6CE7"    16r0000 " invalid " 
                           "16r6CE8"    16r436D " <CJK> " 
                           "16r6CE9"    16r0000 " invalid " 
                           "16r6CEA"    16r5E25 " <CJK> " 
                           "16r6CEB"    16r0000 " invalid " 
                           "16r6CEC"    16r0000 " invalid " 
                           "16r6CED"    16r0000 " invalid " 
                           "16r6CEE"    16r0000 " invalid " 
                           "16r6CEF"    16r5E23 " <CJK> " 
                           "16r6CF0"    16r4259 " <CJK> " 
                           "16r6CF1"    16r5D76 " <CJK> " 
                           "16r6CF2"    16r0000 " invalid " 
                           "16r6CF3"    16r314B " <CJK> " 
                           "16r6CF4"    16r0000 " invalid " 
                           "16r6CF5"    16r0000 " invalid " 
                           "16r6CF6"    16r0000 " invalid " 
                           "16r6CF7"    16r0000 " invalid " 
                           "16r6CF8"    16r0000 " invalid " 
                           "16r6CF9"    16r0000 " invalid " 
                           "16r6CFA"    16r0000 " invalid " 
                           "16r6CFB"    16r0000 " invalid " 
                           "16r6CFC"    16r0000 " invalid " 
                           "16r6CFD"    16r0000 " invalid " 
                           "16r6CFE"    16r0000 " invalid " 
                           "16r6CFF"    16r0000 " invalid " 
                           "16r6D00"    16r0000 " invalid " 
                           "16r6D01"    16r0000 " invalid " 
                           "16r6D02"    16r0000 " invalid " 
                           "16r6D03"    16r0000 " invalid " 
                           "16r6D04"    16r0000 " invalid " 
                           "16r6D05"    16r0000 " invalid " 
                           "16r6D06"    16r0000 " invalid " 
                           "16r6D07"    16r0000 " invalid " 
                           "16r6D08"    16r0000 " invalid " 
                           "16r6D09"    16r0000 " invalid " 
                           "16r6D0A"    16r0000 " invalid " 
                           "16r6D0B"    16r4D4E " <CJK> " 
                           "16r6D0C"    16r5E30 " <CJK> " 
                           "16r6D0D"    16r0000 " invalid " 
                           "16r6D0E"    16r0000 " invalid " 
                           "16r6D0F"    16r0000 " invalid " 
                           "16r6D10"    16r0000 " invalid " 
                           "16r6D11"    16r0000 " invalid " 
                           "16r6D12"    16r5E2F " <CJK> " 
                           "16r6D13"    16r0000 " invalid " 
                           "16r6D14"    16r0000 " invalid " 
                           "16r6D15"    16r0000 " invalid " 
                           "16r6D16"    16r0000 " invalid " 
                           "16r6D17"    16r4076 " <CJK> " 
                           "16r6D18"    16r0000 " invalid " 
                           "16r6D19"    16r5E2C " <CJK> " 
                           "16r6D1A"    16r0000 " invalid " 
                           "16r6D1B"    16r4D6C " <CJK> " 
                           "16r6D1C"    16r0000 " invalid " 
                           "16r6D1D"    16r0000 " invalid " 
                           "16r6D1E"    16r4636 " <CJK> " 
                           "16r6D1F"    16r5E26 " <CJK> " 
                           "16r6D20"    16r0000 " invalid " 
                           "16r6D21"    16r0000 " invalid " 
                           "16r6D22"    16r0000 " invalid " 
                           "16r6D23"    16r0000 " invalid " 
                           "16r6D24"    16r0000 " invalid " 
                           "16r6D25"    16r4445 " <CJK> " 
                           "16r6D26"    16r0000 " invalid " 
                           "16r6D27"    16r0000 " invalid " 
                           "16r6D28"    16r0000 " invalid " 
                           "16r6D29"    16r314C " <CJK> " 
                           "16r6D2A"    16r393F " <CJK> " 
                           "16r6D2B"    16r5E29 " <CJK> " 
                           "16r6D2C"    16r0000 " invalid " 
                           "16r6D2D"    16r0000 " invalid " 
                           "16r6D2E"    16r0000 " invalid " 
                           "16r6D2F"    16r0000 " invalid " 
                           "16r6D30"    16r0000 " invalid " 
                           "16r6D31"    16r0000 " invalid " 
                           "16r6D32"    16r3D27 " <CJK> " 
                           "16r6D33"    16r5E2E " <CJK> " 
                           "16r6D34"    16r0000 " invalid " 
                           "16r6D35"    16r5E2D " <CJK> " 
                           "16r6D36"    16r5E28 " <CJK> " 
                           "16r6D37"    16r0000 " invalid " 
                           "16r6D38"    16r5E2B " <CJK> " 
                           "16r6D39"    16r0000 " invalid " 
                           "16r6D3A"    16r0000 " invalid " 
                           "16r6D3B"    16r3368 " <CJK> " 
                           "16r6D3C"    16r0000 " invalid " 
                           "16r6D3D"    16r5E2A " <CJK> " 
                           "16r6D3E"    16r4749 " <CJK> " 
                           "16r6D3F"    16r0000 " invalid " 
                           "16r6D40"    16r0000 " invalid " 
                           "16r6D41"    16r4E2E " <CJK> " 
                           "16r6D42"    16r0000 " invalid " 
                           "16r6D43"    16r0000 " invalid " 
                           "16r6D44"    16r3E74 " <CJK> " 
                           "16r6D45"    16r4075 " <CJK> " 
                           "16r6D46"    16r0000 " invalid " 
                           "16r6D47"    16r0000 " invalid " 
                           "16r6D48"    16r0000 " invalid " 
                           "16r6D49"    16r0000 " invalid " 
                           "16r6D4A"    16r0000 " invalid " 
                           "16r6D4B"    16r0000 " invalid " 
                           "16r6D4C"    16r0000 " invalid " 
                           "16r6D4D"    16r0000 " invalid " 
                           "16r6D4E"    16r0000 " invalid " 
                           "16r6D4F"    16r0000 " invalid " 
                           "16r6D50"    16r0000 " invalid " 
                           "16r6D51"    16r0000 " invalid " 
                           "16r6D52"    16r0000 " invalid " 
                           "16r6D53"    16r0000 " invalid " 
                           "16r6D54"    16r0000 " invalid " 
                           "16r6D55"    16r0000 " invalid " 
                           "16r6D56"    16r0000 " invalid " 
                           "16r6D57"    16r0000 " invalid " 
                           "16r6D58"    16r0000 " invalid " 
                           "16r6D59"    16r5E36 " <CJK> " 
                           "16r6D5A"    16r5E34 " <CJK> " 
                           "16r6D5B"    16r0000 " invalid " 
                           "16r6D5C"    16r494D " <CJK> " 
                           "16r6D5D"    16r0000 " invalid " 
                           "16r6D5E"    16r0000 " invalid " 
                           "16r6D5F"    16r0000 " invalid " 
                           "16r6D60"    16r0000 " invalid " 
                           "16r6D61"    16r0000 " invalid " 
                           "16r6D62"    16r0000 " invalid " 
                           "16r6D63"    16r5E31 " <CJK> " 
                           "16r6D64"    16r5E33 " <CJK> " 
                           "16r6D65"    16r0000 " invalid " 
                           "16r6D66"    16r313A " <CJK> " 
                           "16r6D67"    16r0000 " invalid " 
                           "16r6D68"    16r0000 " invalid " 
                           "16r6D69"    16r3940 " <CJK> " 
                           "16r6D6A"    16r4F32 " <CJK> " 
                           "16r6D6B"    16r0000 " invalid " 
                           "16r6D6C"    16r333D " <CJK> " 
                           "16r6D6D"    16r0000 " invalid " 
                           "16r6D6E"    16r4962 " <CJK> " 
                           "16r6D6F"    16r0000 " invalid " 
                           "16r6D70"    16r0000 " invalid " 
                           "16r6D71"    16r0000 " invalid " 
                           "16r6D72"    16r0000 " invalid " 
                           "16r6D73"    16r0000 " invalid " 
                           "16r6D74"    16r4D61 " <CJK> " 
                           "16r6D75"    16r0000 " invalid " 
                           "16r6D76"    16r0000 " invalid " 
                           "16r6D77"    16r3324 " <CJK> " 
                           "16r6D78"    16r3F3B " <CJK> " 
                           "16r6D79"    16r5E35 " <CJK> " 
                           "16r6D7A"    16r0000 " invalid " 
                           "16r6D7B"    16r0000 " invalid " 
                           "16r6D7C"    16r0000 " invalid " 
                           "16r6D7D"    16r0000 " invalid " 
                           "16r6D7E"    16r0000 " invalid " 
                           "16r6D7F"    16r0000 " invalid " 
                           "16r6D80"    16r0000 " invalid " 
                           "16r6D81"    16r0000 " invalid " 
                           "16r6D82"    16r0000 " invalid " 
                           "16r6D83"    16r0000 " invalid " 
                           "16r6D84"    16r0000 " invalid " 
                           "16r6D85"    16r5E3A " <CJK> " 
                           "16r6D86"    16r0000 " invalid " 
                           "16r6D87"    16r0000 " invalid " 
                           "16r6D88"    16r3E43 " <CJK> " 
                           "16r6D89"    16r0000 " invalid " 
                           "16r6D8A"    16r0000 " invalid " 
                           "16r6D8B"    16r0000 " invalid " 
                           "16r6D8C"    16r4D30 " <CJK> " 
                           "16r6D8D"    16r0000 " invalid " 
                           "16r6D8E"    16r5E37 " <CJK> " 
                           "16r6D8F"    16r0000 " invalid " 
                           "16r6D90"    16r0000 " invalid " 
                           "16r6D91"    16r0000 " invalid " 
                           "16r6D92"    16r0000 " invalid " 
                           "16r6D93"    16r5E32 " <CJK> " 
                           "16r6D94"    16r0000 " invalid " 
                           "16r6D95"    16r5E38 " <CJK> " 
                           "16r6D96"    16r0000 " invalid " 
                           "16r6D97"    16r0000 " invalid " 
                           "16r6D98"    16r0000 " invalid " 
                           "16r6D99"    16r4E5E " <CJK> " 
                           "16r6D9A"    16r0000 " invalid " 
                           "16r6D9B"    16r4573 " <CJK> " 
                           "16r6D9C"    16r4642 " <CJK> " 
                           "16r6D9D"    16r0000 " invalid " 
                           "16r6D9E"    16r0000 " invalid " 
                           "16r6D9F"    16r0000 " invalid " 
                           "16r6DA0"    16r0000 " invalid " 
                           "16r6DA1"    16r0000 " invalid " 
                           "16r6DA2"    16r0000 " invalid " 
                           "16r6DA3"    16r0000 " invalid " 
                           "16r6DA4"    16r0000 " invalid " 
                           "16r6DA5"    16r0000 " invalid " 
                           "16r6DA6"    16r0000 " invalid " 
                           "16r6DA7"    16r0000 " invalid " 
                           "16r6DA8"    16r0000 " invalid " 
                           "16r6DA9"    16r0000 " invalid " 
                           "16r6DAA"    16r0000 " invalid " 
                           "16r6DAB"    16r0000 " invalid " 
                           "16r6DAC"    16r0000 " invalid " 
                           "16r6DAD"    16r0000 " invalid " 
                           "16r6DAE"    16r0000 " invalid " 
                           "16r6DAF"    16r3336 " <CJK> " 
                           "16r6DB0"    16r0000 " invalid " 
                           "16r6DB1"    16r0000 " invalid " 
                           "16r6DB2"    16r3155 " <CJK> " 
                           "16r6DB3"    16r0000 " invalid " 
                           "16r6DB4"    16r0000 " invalid " 
                           "16r6DB5"    16r5E3E " <CJK> " 
                           "16r6DB6"    16r0000 " invalid " 
                           "16r6DB7"    16r0000 " invalid " 
                           "16r6DB8"    16r5E41 " <CJK> " 
                           "16r6DB9"    16r0000 " invalid " 
                           "16r6DBA"    16r0000 " invalid " 
                           "16r6DBB"    16r0000 " invalid " 
                           "16r6DBC"    16r4E43 " <CJK> " 
                           "16r6DBD"    16r0000 " invalid " 
                           "16r6DBE"    16r0000 " invalid " 
                           "16r6DBF"    16r0000 " invalid " 
                           "16r6DC0"    16r4D64 " <CJK> " 
                           "16r6DC1"    16r0000 " invalid " 
                           "16r6DC2"    16r0000 " invalid " 
                           "16r6DC3"    16r0000 " invalid " 
                           "16r6DC4"    16r0000 " invalid " 
                           "16r6DC5"    16r5E48 " <CJK> " 
                           "16r6DC6"    16r5E42 " <CJK> " 
                           "16r6DC7"    16r5E3F " <CJK> " 
                           "16r6DC8"    16r0000 " invalid " 
                           "16r6DC9"    16r0000 " invalid " 
                           "16r6DCA"    16r0000 " invalid " 
                           "16r6DCB"    16r4E54 " <CJK> " 
                           "16r6DCC"    16r5E45 " <CJK> " 
                           "16r6DCD"    16r0000 " invalid " 
                           "16r6DCE"    16r0000 " invalid " 
                           "16r6DCF"    16r0000 " invalid " 
                           "16r6DD0"    16r0000 " invalid " 
                           "16r6DD1"    16r3D4A " <CJK> " 
                           "16r6DD2"    16r5E47 " <CJK> " 
                           "16r6DD3"    16r0000 " invalid " 
                           "16r6DD4"    16r0000 " invalid " 
                           "16r6DD5"    16r5E4C " <CJK> " 
                           "16r6DD6"    16r0000 " invalid " 
                           "16r6DD7"    16r0000 " invalid " 
                           "16r6DD8"    16r4571 " <CJK> " 
                           "16r6DD9"    16r5E4A " <CJK> " 
                           "16r6DDA"    16r0000 " invalid " 
                           "16r6DDB"    16r0000 " invalid " 
                           "16r6DDC"    16r0000 " invalid " 
                           "16r6DDD"    16r0000 " invalid " 
                           "16r6DDE"    16r5E44 " <CJK> " 
                           "16r6DDF"    16r0000 " invalid " 
                           "16r6DE0"    16r0000 " invalid " 
                           "16r6DE1"    16r4338 " <CJK> " 
                           "16r6DE2"    16r0000 " invalid " 
                           "16r6DE3"    16r0000 " invalid " 
                           "16r6DE4"    16r5E4B " <CJK> " 
                           "16r6DE5"    16r0000 " invalid " 
                           "16r6DE6"    16r5E40 " <CJK> " 
                           "16r6DE7"    16r0000 " invalid " 
                           "16r6DE8"    16r5E46 " <CJK> " 
                           "16r6DE9"    16r0000 " invalid " 
                           "16r6DEA"    16r5E4D " <CJK> " 
                           "16r6DEB"    16r307C " <CJK> " 
                           "16r6DEC"    16r5E43 " <CJK> " 
                           "16r6DED"    16r0000 " invalid " 
                           "16r6DEE"    16r5E4E " <CJK> " 
                           "16r6DEF"    16r0000 " invalid " 
                           "16r6DF0"    16r0000 " invalid " 
                           "16r6DF1"    16r3F3C " <CJK> " 
                           "16r6DF2"    16r0000 " invalid " 
                           "16r6DF3"    16r3D5F " <CJK> " 
                           "16r6DF4"    16r0000 " invalid " 
                           "16r6DF5"    16r4A25 " <CJK> " 
                           "16r6DF6"    16r0000 " invalid " 
                           "16r6DF7"    16r3A2E " <CJK> " 
                           "16r6DF8"    16r0000 " invalid " 
                           "16r6DF9"    16r5E3B " <CJK> " 
                           "16r6DFA"    16r5E49 " <CJK> " 
                           "16r6DFB"    16r453A " <CJK> " 
                           "16r6DFC"    16r0000 " invalid " 
                           "16r6DFD"    16r0000 " invalid " 
                           "16r6DFE"    16r0000 " invalid " 
                           "16r6DFF"    16r0000 " invalid " 
                           "16r6E00"    16r0000 " invalid " 
                           "16r6E01"    16r0000 " invalid " 
                           "16r6E02"    16r0000 " invalid " 
                           "16r6E03"    16r0000 " invalid " 
                           "16r6E04"    16r0000 " invalid " 
                           "16r6E05"    16r4036 " <CJK> " 
                           "16r6E06"    16r0000 " invalid " 
                           "16r6E07"    16r3369 " <CJK> " 
                           "16r6E08"    16r3A51 " <CJK> " 
                           "16r6E09"    16r3E44 " <CJK> " 
                           "16r6E0A"    16r5E3D " <CJK> " 
                           "16r6E0B"    16r3D42 " <CJK> " 
                           "16r6E0C"    16r0000 " invalid " 
                           "16r6E0D"    16r0000 " invalid " 
                           "16r6E0E"    16r0000 " invalid " 
                           "16r6E0F"    16r0000 " invalid " 
                           "16r6E10"    16r0000 " invalid " 
                           "16r6E11"    16r0000 " invalid " 
                           "16r6E12"    16r0000 " invalid " 
                           "16r6E13"    16r374C " <CJK> " 
                           "16r6E14"    16r0000 " invalid " 
                           "16r6E15"    16r5E3C " <CJK> " 
                           "16r6E16"    16r0000 " invalid " 
                           "16r6E17"    16r0000 " invalid " 
                           "16r6E18"    16r0000 " invalid " 
                           "16r6E19"    16r5E52 " <CJK> " 
                           "16r6E1A"    16r3D6D " <CJK> " 
                           "16r6E1B"    16r383A " <CJK> " 
                           "16r6E1C"    16r0000 " invalid " 
                           "16r6E1D"    16r5E61 " <CJK> " 
                           "16r6E1E"    16r0000 " invalid " 
                           "16r6E1F"    16r5E5B " <CJK> " 
                           "16r6E20"    16r3574 " <CJK> " 
                           "16r6E21"    16r454F " <CJK> " 
                           "16r6E22"    16r0000 " invalid " 
                           "16r6E23"    16r5E56 " <CJK> " 
                           "16r6E24"    16r5E5F " <CJK> " 
                           "16r6E25"    16r302F " <CJK> " 
                           "16r6E26"    16r3132 " <CJK> " 
                           "16r6E27"    16r0000 " invalid " 
                           "16r6E28"    16r0000 " invalid " 
                           "16r6E29"    16r3239 " <CJK> " 
                           "16r6E2A"    16r0000 " invalid " 
                           "16r6E2B"    16r5E58 " <CJK> " 
                           "16r6E2C"    16r422C " <CJK> " 
                           "16r6E2D"    16r5E4F " <CJK> " 
                           "16r6E2E"    16r5E51 " <CJK> " 
                           "16r6E2F"    16r3941 " <CJK> " 
                           "16r6E30"    16r0000 " invalid " 
                           "16r6E31"    16r0000 " invalid " 
                           "16r6E32"    16r0000 " invalid " 
                           "16r6E33"    16r0000 " invalid " 
                           "16r6E34"    16r0000 " invalid " 
                           "16r6E35"    16r0000 " invalid " 
                           "16r6E36"    16r0000 " invalid " 
                           "16r6E37"    16r0000 " invalid " 
                           "16r6E38"    16r5E62 " <CJK> " 
                           "16r6E39"    16r0000 " invalid " 
                           "16r6E3A"    16r5E5D " <CJK> " 
                           "16r6E3B"    16r0000 " invalid " 
                           "16r6E3C"    16r0000 " invalid " 
                           "16r6E3D"    16r0000 " invalid " 
                           "16r6E3E"    16r5E55 " <CJK> " 
                           "16r6E3F"    16r0000 " invalid " 
                           "16r6E40"    16r0000 " invalid " 
                           "16r6E41"    16r0000 " invalid " 
                           "16r6E42"    16r0000 " invalid " 
                           "16r6E43"    16r5E5C " <CJK> " 
                           "16r6E44"    16r0000 " invalid " 
                           "16r6E45"    16r0000 " invalid " 
                           "16r6E46"    16r0000 " invalid " 
                           "16r6E47"    16r0000 " invalid " 
                           "16r6E48"    16r0000 " invalid " 
                           "16r6E49"    16r0000 " invalid " 
                           "16r6E4A"    16r4C2B " <CJK> " 
                           "16r6E4B"    16r0000 " invalid " 
                           "16r6E4C"    16r0000 " invalid " 
                           "16r6E4D"    16r5E5A " <CJK> " 
                           "16r6E4E"    16r5E5E " <CJK> " 
                           "16r6E4F"    16r0000 " invalid " 
                           "16r6E50"    16r0000 " invalid " 
                           "16r6E51"    16r0000 " invalid " 
                           "16r6E52"    16r0000 " invalid " 
                           "16r6E53"    16r0000 " invalid " 
                           "16r6E54"    16r0000 " invalid " 
                           "16r6E55"    16r0000 " invalid " 
                           "16r6E56"    16r3850 " <CJK> " 
                           "16r6E57"    16r0000 " invalid " 
                           "16r6E58"    16r3E45 " <CJK> " 
                           "16r6E59"    16r0000 " invalid " 
                           "16r6E5A"    16r0000 " invalid " 
                           "16r6E5B"    16r4339 " <CJK> " 
                           "16r6E5C"    16r0000 " invalid " 
                           "16r6E5D"    16r0000 " invalid " 
                           "16r6E5E"    16r0000 " invalid " 
                           "16r6E5F"    16r5E54 " <CJK> " 
                           "16r6E60"    16r0000 " invalid " 
                           "16r6E61"    16r0000 " invalid " 
                           "16r6E62"    16r0000 " invalid " 
                           "16r6E63"    16r0000 " invalid " 
                           "16r6E64"    16r0000 " invalid " 
                           "16r6E65"    16r0000 " invalid " 
                           "16r6E66"    16r0000 " invalid " 
                           "16r6E67"    16r4D2F " <CJK> " 
                           "16r6E68"    16r0000 " invalid " 
                           "16r6E69"    16r0000 " invalid " 
                           "16r6E6A"    16r0000 " invalid " 
                           "16r6E6B"    16r5E57 " <CJK> " 
                           "16r6E6C"    16r0000 " invalid " 
                           "16r6E6D"    16r0000 " invalid " 
                           "16r6E6E"    16r5E50 " <CJK> " 
                           "16r6E6F"    16r4572 " <CJK> " 
                           "16r6E70"    16r0000 " invalid " 
                           "16r6E71"    16r0000 " invalid " 
                           "16r6E72"    16r5E53 " <CJK> " 
                           "16r6E73"    16r0000 " invalid " 
                           "16r6E74"    16r0000 " invalid " 
                           "16r6E75"    16r0000 " invalid " 
                           "16r6E76"    16r5E59 " <CJK> " 
                           "16r6E77"    16r0000 " invalid " 
                           "16r6E78"    16r0000 " invalid " 
                           "16r6E79"    16r0000 " invalid " 
                           "16r6E7A"    16r0000 " invalid " 
                           "16r6E7B"    16r0000 " invalid " 
                           "16r6E7C"    16r0000 " invalid " 
                           "16r6E7D"    16r0000 " invalid " 
                           "16r6E7E"    16r4F51 " <CJK> " 
                           "16r6E7F"    16r3C3E " <CJK> " 
                           "16r6E80"    16r4B7E " <CJK> " 
                           "16r6E81"    16r0000 " invalid " 
                           "16r6E82"    16r5E63 " <CJK> " 
                           "16r6E83"    16r0000 " invalid " 
                           "16r6E84"    16r0000 " invalid " 
                           "16r6E85"    16r0000 " invalid " 
                           "16r6E86"    16r0000 " invalid " 
                           "16r6E87"    16r0000 " invalid " 
                           "16r6E88"    16r0000 " invalid " 
                           "16r6E89"    16r0000 " invalid " 
                           "16r6E8A"    16r0000 " invalid " 
                           "16r6E8B"    16r0000 " invalid " 
                           "16r6E8C"    16r482E " <CJK> " 
                           "16r6E8D"    16r0000 " invalid " 
                           "16r6E8E"    16r0000 " invalid " 
                           "16r6E8F"    16r5E6F " <CJK> " 
                           "16r6E90"    16r383B " <CJK> " 
                           "16r6E91"    16r0000 " invalid " 
                           "16r6E92"    16r0000 " invalid " 
                           "16r6E93"    16r0000 " invalid " 
                           "16r6E94"    16r0000 " invalid " 
                           "16r6E95"    16r0000 " invalid " 
                           "16r6E96"    16r3D60 " <CJK> " 
                           "16r6E97"    16r0000 " invalid " 
                           "16r6E98"    16r5E65 " <CJK> " 
                           "16r6E99"    16r0000 " invalid " 
                           "16r6E9A"    16r0000 " invalid " 
                           "16r6E9B"    16r0000 " invalid " 
                           "16r6E9C"    16r4E2F " <CJK> " 
                           "16r6E9D"    16r3942 " <CJK> " 
                           "16r6E9E"    16r0000 " invalid " 
                           "16r6E9F"    16r5E72 " <CJK> " 
                           "16r6EA0"    16r0000 " invalid " 
                           "16r6EA1"    16r0000 " invalid " 
                           "16r6EA2"    16r306E " <CJK> " 
                           "16r6EA3"    16r0000 " invalid " 
                           "16r6EA4"    16r0000 " invalid " 
                           "16r6EA5"    16r5E70 " <CJK> " 
                           "16r6EA6"    16r0000 " invalid " 
                           "16r6EA7"    16r0000 " invalid " 
                           "16r6EA8"    16r0000 " invalid " 
                           "16r6EA9"    16r0000 " invalid " 
                           "16r6EAA"    16r5E64 " <CJK> " 
                           "16r6EAB"    16r0000 " invalid " 
                           "16r6EAC"    16r0000 " invalid " 
                           "16r6EAD"    16r0000 " invalid " 
                           "16r6EAE"    16r0000 " invalid " 
                           "16r6EAF"    16r5E6A " <CJK> " 
                           "16r6EB0"    16r0000 " invalid " 
                           "16r6EB1"    16r0000 " invalid " 
                           "16r6EB2"    16r5E6C " <CJK> " 
                           "16r6EB3"    16r0000 " invalid " 
                           "16r6EB4"    16r0000 " invalid " 
                           "16r6EB5"    16r0000 " invalid " 
                           "16r6EB6"    16r4D4F " <CJK> " 
                           "16r6EB7"    16r5E67 " <CJK> " 
                           "16r6EB8"    16r0000 " invalid " 
                           "16r6EB9"    16r0000 " invalid " 
                           "16r6EBA"    16r452E " <CJK> " 
                           "16r6EBB"    16r0000 " invalid " 
                           "16r6EBC"    16r0000 " invalid " 
                           "16r6EBD"    16r5E69 " <CJK> " 
                           "16r6EBE"    16r0000 " invalid " 
                           "16r6EBF"    16r0000 " invalid " 
                           "16r6EC0"    16r0000 " invalid " 
                           "16r6EC1"    16r0000 " invalid " 
                           "16r6EC2"    16r5E71 " <CJK> " 
                           "16r6EC3"    16r0000 " invalid " 
                           "16r6EC4"    16r5E6B " <CJK> " 
                           "16r6EC5"    16r4C47 " <CJK> " 
                           "16r6EC6"    16r0000 " invalid " 
                           "16r6EC7"    16r0000 " invalid " 
                           "16r6EC8"    16r0000 " invalid " 
                           "16r6EC9"    16r5E66 " <CJK> " 
                           "16r6ECA"    16r0000 " invalid " 
                           "16r6ECB"    16r3C22 " <CJK> " 
                           "16r6ECC"    16r5E7E " <CJK> " 
                           "16r6ECD"    16r0000 " invalid " 
                           "16r6ECE"    16r0000 " invalid " 
                           "16r6ECF"    16r0000 " invalid " 
                           "16r6ED0"    16r0000 " invalid " 
                           "16r6ED1"    16r336A " <CJK> " 
                           "16r6ED2"    16r0000 " invalid " 
                           "16r6ED3"    16r5E68 " <CJK> " 
                           "16r6ED4"    16r5E6D " <CJK> " 
                           "16r6ED5"    16r5E6E " <CJK> " 
                           "16r6ED6"    16r0000 " invalid " 
                           "16r6ED7"    16r0000 " invalid " 
                           "16r6ED8"    16r0000 " invalid " 
                           "16r6ED9"    16r0000 " invalid " 
                           "16r6EDA"    16r0000 " invalid " 
                           "16r6EDB"    16r0000 " invalid " 
                           "16r6EDC"    16r0000 " invalid " 
                           "16r6EDD"    16r426C " <CJK> " 
                           "16r6EDE"    16r425A " <CJK> " 
                           "16r6EDF"    16r0000 " invalid " 
                           "16r6EE0"    16r0000 " invalid " 
                           "16r6EE1"    16r0000 " invalid " 
                           "16r6EE2"    16r0000 " invalid " 
                           "16r6EE3"    16r0000 " invalid " 
                           "16r6EE4"    16r0000 " invalid " 
                           "16r6EE5"    16r0000 " invalid " 
                           "16r6EE6"    16r0000 " invalid " 
                           "16r6EE7"    16r0000 " invalid " 
                           "16r6EE8"    16r0000 " invalid " 
                           "16r6EE9"    16r0000 " invalid " 
                           "16r6EEA"    16r0000 " invalid " 
                           "16r6EEB"    16r0000 " invalid " 
                           "16r6EEC"    16r5E76 " <CJK> " 
                           "16r6EED"    16r0000 " invalid " 
                           "16r6EEE"    16r0000 " invalid " 
                           "16r6EEF"    16r5E7C " <CJK> " 
                           "16r6EF0"    16r0000 " invalid " 
                           "16r6EF1"    16r0000 " invalid " 
                           "16r6EF2"    16r5E7A " <CJK> " 
                           "16r6EF3"    16r0000 " invalid " 
                           "16r6EF4"    16r4529 " <CJK> " 
                           "16r6EF5"    16r0000 " invalid " 
                           "16r6EF6"    16r0000 " invalid " 
                           "16r6EF7"    16r5F23 " <CJK> " 
                           "16r6EF8"    16r5E77 " <CJK> " 
                           "16r6EF9"    16r0000 " invalid " 
                           "16r6EFA"    16r0000 " invalid " 
                           "16r6EFB"    16r0000 " invalid " 
                           "16r6EFC"    16r0000 " invalid " 
                           "16r6EFD"    16r0000 " invalid " 
                           "16r6EFE"    16r5E78 " <CJK> " 
                           "16r6EFF"    16r5E60 " <CJK> " 
                           "16r6F00"    16r0000 " invalid " 
                           "16r6F01"    16r3579 " <CJK> " 
                           "16r6F02"    16r493A " <CJK> " 
                           "16r6F03"    16r0000 " invalid " 
                           "16r6F04"    16r0000 " invalid " 
                           "16r6F05"    16r0000 " invalid " 
                           "16r6F06"    16r3C3F " <CJK> " 
                           "16r6F07"    16r0000 " invalid " 
                           "16r6F08"    16r0000 " invalid " 
                           "16r6F09"    16r3977 " <CJK> " 
                           "16r6F0A"    16r0000 " invalid " 
                           "16r6F0B"    16r0000 " invalid " 
                           "16r6F0C"    16r0000 " invalid " 
                           "16r6F0D"    16r0000 " invalid " 
                           "16r6F0E"    16r0000 " invalid " 
                           "16r6F0F"    16r4F33 " <CJK> " 
                           "16r6F10"    16r0000 " invalid " 
                           "16r6F11"    16r5E74 " <CJK> " 
                           "16r6F12"    16r0000 " invalid " 
                           "16r6F13"    16r5F22 " <CJK> " 
                           "16r6F14"    16r3169 " <CJK> " 
                           "16r6F15"    16r4166 " <CJK> " 
                           "16r6F16"    16r0000 " invalid " 
                           "16r6F17"    16r0000 " invalid " 
                           "16r6F18"    16r0000 " invalid " 
                           "16r6F19"    16r0000 " invalid " 
                           "16r6F1A"    16r0000 " invalid " 
                           "16r6F1B"    16r0000 " invalid " 
                           "16r6F1C"    16r0000 " invalid " 
                           "16r6F1D"    16r0000 " invalid " 
                           "16r6F1E"    16r0000 " invalid " 
                           "16r6F1F"    16r0000 " invalid " 
                           "16r6F20"    16r4779 " <CJK> " 
                           "16r6F21"    16r0000 " invalid " 
                           "16r6F22"    16r3441 " <CJK> " 
                           "16r6F23"    16r4E7A " <CJK> " 
                           "16r6F24"    16r0000 " invalid " 
                           "16r6F25"    16r0000 " invalid " 
                           "16r6F26"    16r0000 " invalid " 
                           "16r6F27"    16r0000 " invalid " 
                           "16r6F28"    16r0000 " invalid " 
                           "16r6F29"    16r0000 " invalid " 
                           "16r6F2A"    16r0000 " invalid " 
                           "16r6F2B"    16r4C21 " <CJK> " 
                           "16r6F2C"    16r4452 " <CJK> " 
                           "16r6F2D"    16r0000 " invalid " 
                           "16r6F2E"    16r0000 " invalid " 
                           "16r6F2F"    16r0000 " invalid " 
                           "16r6F30"    16r0000 " invalid " 
                           "16r6F31"    16r5E7B " <CJK> " 
                           "16r6F32"    16r5E7D " <CJK> " 
                           "16r6F33"    16r0000 " invalid " 
                           "16r6F34"    16r0000 " invalid " 
                           "16r6F35"    16r0000 " invalid " 
                           "16r6F36"    16r0000 " invalid " 
                           "16r6F37"    16r0000 " invalid " 
                           "16r6F38"    16r4132 " <CJK> " 
                           "16r6F39"    16r0000 " invalid " 
                           "16r6F3A"    16r0000 " invalid " 
                           "16r6F3B"    16r0000 " invalid " 
                           "16r6F3C"    16r0000 " invalid " 
                           "16r6F3D"    16r0000 " invalid " 
                           "16r6F3E"    16r5F21 " <CJK> " 
                           "16r6F3F"    16r5E79 " <CJK> " 
                           "16r6F40"    16r0000 " invalid " 
                           "16r6F41"    16r5E73 " <CJK> " 
                           "16r6F42"    16r0000 " invalid " 
                           "16r6F43"    16r0000 " invalid " 
                           "16r6F44"    16r0000 " invalid " 
                           "16r6F45"    16r3443 " <CJK> " 
                           "16r6F46"    16r0000 " invalid " 
                           "16r6F47"    16r0000 " invalid " 
                           "16r6F48"    16r0000 " invalid " 
                           "16r6F49"    16r0000 " invalid " 
                           "16r6F4A"    16r0000 " invalid " 
                           "16r6F4B"    16r0000 " invalid " 
                           "16r6F4C"    16r0000 " invalid " 
                           "16r6F4D"    16r0000 " invalid " 
                           "16r6F4E"    16r0000 " invalid " 
                           "16r6F4F"    16r0000 " invalid " 
                           "16r6F50"    16r0000 " invalid " 
                           "16r6F51"    16r0000 " invalid " 
                           "16r6F52"    16r0000 " invalid " 
                           "16r6F53"    16r0000 " invalid " 
                           "16r6F54"    16r3769 " <CJK> " 
                           "16r6F55"    16r0000 " invalid " 
                           "16r6F56"    16r0000 " invalid " 
                           "16r6F57"    16r0000 " invalid " 
                           "16r6F58"    16r5F2F " <CJK> " 
                           "16r6F59"    16r0000 " invalid " 
                           "16r6F5A"    16r0000 " invalid " 
                           "16r6F5B"    16r5F2A " <CJK> " 
                           "16r6F5C"    16r4078 " <CJK> " 
                           "16r6F5D"    16r0000 " invalid " 
                           "16r6F5E"    16r0000 " invalid " 
                           "16r6F5F"    16r3363 " <CJK> " 
                           "16r6F60"    16r0000 " invalid " 
                           "16r6F61"    16r0000 " invalid " 
                           "16r6F62"    16r0000 " invalid " 
                           "16r6F63"    16r0000 " invalid " 
                           "16r6F64"    16r3D61 " <CJK> " 
                           "16r6F65"    16r0000 " invalid " 
                           "16r6F66"    16r5F33 " <CJK> " 
                           "16r6F67"    16r0000 " invalid " 
                           "16r6F68"    16r0000 " invalid " 
                           "16r6F69"    16r0000 " invalid " 
                           "16r6F6A"    16r0000 " invalid " 
                           "16r6F6B"    16r0000 " invalid " 
                           "16r6F6C"    16r0000 " invalid " 
                           "16r6F6D"    16r5F2C " <CJK> " 
                           "16r6F6E"    16r442C " <CJK> " 
                           "16r6F6F"    16r5F29 " <CJK> " 
                           "16r6F70"    16r4459 " <CJK> " 
                           "16r6F71"    16r0000 " invalid " 
                           "16r6F72"    16r0000 " invalid " 
                           "16r6F73"    16r0000 " invalid " 
                           "16r6F74"    16r5F4C " <CJK> " 
                           "16r6F75"    16r0000 " invalid " 
                           "16r6F76"    16r0000 " invalid " 
                           "16r6F77"    16r0000 " invalid " 
                           "16r6F78"    16r5F26 " <CJK> " 
                           "16r6F79"    16r0000 " invalid " 
                           "16r6F7A"    16r5F25 " <CJK> " 
                           "16r6F7B"    16r0000 " invalid " 
                           "16r6F7C"    16r5F2E " <CJK> " 
                           "16r6F7D"    16r0000 " invalid " 
                           "16r6F7E"    16r0000 " invalid " 
                           "16r6F7F"    16r0000 " invalid " 
                           "16r6F80"    16r5F28 " <CJK> " 
                           "16r6F81"    16r5F27 " <CJK> " 
                           "16r6F82"    16r5F2D " <CJK> " 
                           "16r6F83"    16r0000 " invalid " 
                           "16r6F84"    16r4021 " <CJK> " 
                           "16r6F85"    16r0000 " invalid " 
                           "16r6F86"    16r5F24 " <CJK> " 
                           "16r6F87"    16r0000 " invalid " 
                           "16r6F88"    16r0000 " invalid " 
                           "16r6F89"    16r0000 " invalid " 
                           "16r6F8A"    16r0000 " invalid " 
                           "16r6F8B"    16r0000 " invalid " 
                           "16r6F8C"    16r0000 " invalid " 
                           "16r6F8D"    16r0000 " invalid " 
                           "16r6F8E"    16r5F30 " <CJK> " 
                           "16r6F8F"    16r0000 " invalid " 
                           "16r6F90"    16r0000 " invalid " 
                           "16r6F91"    16r5F31 " <CJK> " 
                           "16r6F92"    16r0000 " invalid " 
                           "16r6F93"    16r0000 " invalid " 
                           "16r6F94"    16r0000 " invalid " 
                           "16r6F95"    16r0000 " invalid " 
                           "16r6F96"    16r0000 " invalid " 
                           "16r6F97"    16r3442 " <CJK> " 
                           "16r6F98"    16r0000 " invalid " 
                           "16r6F99"    16r0000 " invalid " 
                           "16r6F9A"    16r0000 " invalid " 
                           "16r6F9B"    16r0000 " invalid " 
                           "16r6F9C"    16r0000 " invalid " 
                           "16r6F9D"    16r0000 " invalid " 
                           "16r6F9E"    16r0000 " invalid " 
                           "16r6F9F"    16r0000 " invalid " 
                           "16r6FA0"    16r0000 " invalid " 
                           "16r6FA1"    16r5F36 " <CJK> " 
                           "16r6FA2"    16r0000 " invalid " 
                           "16r6FA3"    16r5F35 " <CJK> " 
                           "16r6FA4"    16r5F37 " <CJK> " 
                           "16r6FA5"    16r0000 " invalid " 
                           "16r6FA6"    16r0000 " invalid " 
                           "16r6FA7"    16r0000 " invalid " 
                           "16r6FA8"    16r0000 " invalid " 
                           "16r6FA9"    16r0000 " invalid " 
                           "16r6FAA"    16r5F3A " <CJK> " 
                           "16r6FAB"    16r0000 " invalid " 
                           "16r6FAC"    16r0000 " invalid " 
                           "16r6FAD"    16r0000 " invalid " 
                           "16r6FAE"    16r0000 " invalid " 
                           "16r6FAF"    16r0000 " invalid " 
                           "16r6FB0"    16r0000 " invalid " 
                           "16r6FB1"    16r4543 " <CJK> " 
                           "16r6FB2"    16r0000 " invalid " 
                           "16r6FB3"    16r5F34 " <CJK> " 
                           "16r6FB4"    16r0000 " invalid " 
                           "16r6FB5"    16r0000 " invalid " 
                           "16r6FB6"    16r0000 " invalid " 
                           "16r6FB7"    16r0000 " invalid " 
                           "16r6FB8"    16r0000 " invalid " 
                           "16r6FB9"    16r5F38 " <CJK> " 
                           "16r6FBA"    16r0000 " invalid " 
                           "16r6FBB"    16r0000 " invalid " 
                           "16r6FBC"    16r0000 " invalid " 
                           "16r6FBD"    16r0000 " invalid " 
                           "16r6FBE"    16r0000 " invalid " 
                           "16r6FBF"    16r0000 " invalid " 
                           "16r6FC0"    16r3763 " <CJK> " 
                           "16r6FC1"    16r4279 " <CJK> " 
                           "16r6FC2"    16r5F32 " <CJK> " 
                           "16r6FC3"    16r473B " <CJK> " 
                           "16r6FC4"    16r0000 " invalid " 
                           "16r6FC5"    16r0000 " invalid " 
                           "16r6FC6"    16r5F39 " <CJK> " 
                           "16r6FC7"    16r0000 " invalid " 
                           "16r6FC8"    16r0000 " invalid " 
                           "16r6FC9"    16r0000 " invalid " 
                           "16r6FCA"    16r0000 " invalid " 
                           "16r6FCB"    16r0000 " invalid " 
                           "16r6FCC"    16r0000 " invalid " 
                           "16r6FCD"    16r0000 " invalid " 
                           "16r6FCE"    16r0000 " invalid " 
                           "16r6FCF"    16r0000 " invalid " 
                           "16r6FD0"    16r0000 " invalid " 
                           "16r6FD1"    16r0000 " invalid " 
                           "16r6FD2"    16r0000 " invalid " 
                           "16r6FD3"    16r0000 " invalid " 
                           "16r6FD4"    16r5F3E " <CJK> " 
                           "16r6FD5"    16r5F3C " <CJK> " 
                           "16r6FD6"    16r0000 " invalid " 
                           "16r6FD7"    16r0000 " invalid " 
                           "16r6FD8"    16r5F3F " <CJK> " 
                           "16r6FD9"    16r0000 " invalid " 
                           "16r6FDA"    16r0000 " invalid " 
                           "16r6FDB"    16r5F42 " <CJK> " 
                           "16r6FDC"    16r0000 " invalid " 
                           "16r6FDD"    16r0000 " invalid " 
                           "16r6FDE"    16r0000 " invalid " 
                           "16r6FDF"    16r5F3B " <CJK> " 
                           "16r6FE0"    16r396A " <CJK> " 
                           "16r6FE1"    16r4728 " <CJK> " 
                           "16r6FE2"    16r0000 " invalid " 
                           "16r6FE3"    16r0000 " invalid " 
                           "16r6FE4"    16r5E39 " <CJK> " 
                           "16r6FE5"    16r0000 " invalid " 
                           "16r6FE6"    16r0000 " invalid " 
                           "16r6FE7"    16r0000 " invalid " 
                           "16r6FE8"    16r0000 " invalid " 
                           "16r6FE9"    16r0000 " invalid " 
                           "16r6FEA"    16r0000 " invalid " 
                           "16r6FEB"    16r4D74 " <CJK> " 
                           "16r6FEC"    16r5F3D " <CJK> " 
                           "16r6FED"    16r0000 " invalid " 
                           "16r6FEE"    16r5F41 " <CJK> " 
                           "16r6FEF"    16r4275 " <CJK> " 
                           "16r6FF0"    16r0000 " invalid " 
                           "16r6FF1"    16r5F40 " <CJK> " 
                           "16r6FF2"    16r0000 " invalid " 
                           "16r6FF3"    16r5F2B " <CJK> " 
                           "16r6FF4"    16r0000 " invalid " 
                           "16r6FF5"    16r0000 " invalid " 
                           "16r6FF6"    16r6F69 " <CJK> " 
                           "16r6FF7"    16r0000 " invalid " 
                           "16r6FF8"    16r0000 " invalid " 
                           "16r6FF9"    16r0000 " invalid " 
                           "16r6FFA"    16r5F45 " <CJK> " 
                           "16r6FFB"    16r0000 " invalid " 
                           "16r6FFC"    16r0000 " invalid " 
                           "16r6FFD"    16r0000 " invalid " 
                           "16r6FFE"    16r5F49 " <CJK> " 
                           "16r6FFF"    16r0000 " invalid " 
                           "16r7000"    16r0000 " invalid " 
                           "16r7001"    16r5F47 " <CJK> " 
                           "16r7002"    16r0000 " invalid " 
                           "16r7003"    16r0000 " invalid " 
                           "16r7004"    16r0000 " invalid " 
                           "16r7005"    16r0000 " invalid " 
                           "16r7006"    16r0000 " invalid " 
                           "16r7007"    16r0000 " invalid " 
                           "16r7008"    16r0000 " invalid " 
                           "16r7009"    16r5F43 " <CJK> " 
                           "16r700A"    16r0000 " invalid " 
                           "16r700B"    16r5F44 " <CJK> " 
                           "16r700C"    16r0000 " invalid " 
                           "16r700D"    16r0000 " invalid " 
                           "16r700E"    16r0000 " invalid " 
                           "16r700F"    16r5F48 " <CJK> " 
                           "16r7010"    16r0000 " invalid " 
                           "16r7011"    16r5F46 " <CJK> " 
                           "16r7012"    16r0000 " invalid " 
                           "16r7013"    16r0000 " invalid " 
                           "16r7014"    16r0000 " invalid " 
                           "16r7015"    16r494E " <CJK> " 
                           "16r7016"    16r0000 " invalid " 
                           "16r7017"    16r0000 " invalid " 
                           "16r7018"    16r5F4E " <CJK> " 
                           "16r7019"    16r0000 " invalid " 
                           "16r701A"    16r5F4B " <CJK> " 
                           "16r701B"    16r5F4A " <CJK> " 
                           "16r701C"    16r0000 " invalid " 
                           "16r701D"    16r5F4D " <CJK> " 
                           "16r701E"    16r4654 " <CJK> " 
                           "16r701F"    16r5F4F " <CJK> " 
                           "16r7020"    16r0000 " invalid " 
                           "16r7021"    16r0000 " invalid " 
                           "16r7022"    16r0000 " invalid " 
                           "16r7023"    16r0000 " invalid " 
                           "16r7024"    16r0000 " invalid " 
                           "16r7025"    16r0000 " invalid " 
                           "16r7026"    16r4375 " <CJK> " 
                           "16r7027"    16r426D " <CJK> " 
                           "16r7028"    16r0000 " invalid " 
                           "16r7029"    16r0000 " invalid " 
                           "16r702A"    16r0000 " invalid " 
                           "16r702B"    16r0000 " invalid " 
                           "16r702C"    16r4025 " <CJK> " 
                           "16r702D"    16r0000 " invalid " 
                           "16r702E"    16r0000 " invalid " 
                           "16r702F"    16r0000 " invalid " 
                           "16r7030"    16r5F50 " <CJK> " 
                           "16r7031"    16r0000 " invalid " 
                           "16r7032"    16r5F52 " <CJK> " 
                           "16r7033"    16r0000 " invalid " 
                           "16r7034"    16r0000 " invalid " 
                           "16r7035"    16r0000 " invalid " 
                           "16r7036"    16r0000 " invalid " 
                           "16r7037"    16r0000 " invalid " 
                           "16r7038"    16r0000 " invalid " 
                           "16r7039"    16r0000 " invalid " 
                           "16r703A"    16r0000 " invalid " 
                           "16r703B"    16r0000 " invalid " 
                           "16r703C"    16r0000 " invalid " 
                           "16r703D"    16r0000 " invalid " 
                           "16r703E"    16r5F51 " <CJK> " 
                           "16r703F"    16r0000 " invalid " 
                           "16r7040"    16r0000 " invalid " 
                           "16r7041"    16r0000 " invalid " 
                           "16r7042"    16r0000 " invalid " 
                           "16r7043"    16r0000 " invalid " 
                           "16r7044"    16r0000 " invalid " 
                           "16r7045"    16r0000 " invalid " 
                           "16r7046"    16r0000 " invalid " 
                           "16r7047"    16r0000 " invalid " 
                           "16r7048"    16r0000 " invalid " 
                           "16r7049"    16r0000 " invalid " 
                           "16r704A"    16r0000 " invalid " 
                           "16r704B"    16r0000 " invalid " 
                           "16r704C"    16r5E75 " <CJK> " 
                           "16r704D"    16r0000 " invalid " 
                           "16r704E"    16r0000 " invalid " 
                           "16r704F"    16r0000 " invalid " 
                           "16r7050"    16r0000 " invalid " 
                           "16r7051"    16r5F53 " <CJK> " 
                           "16r7052"    16r0000 " invalid " 
                           "16r7053"    16r0000 " invalid " 
                           "16r7054"    16r0000 " invalid " 
                           "16r7055"    16r0000 " invalid " 
                           "16r7056"    16r0000 " invalid " 
                           "16r7057"    16r0000 " invalid " 
                           "16r7058"    16r4667 " <CJK> " 
                           "16r7059"    16r0000 " invalid " 
                           "16r705A"    16r0000 " invalid " 
                           "16r705B"    16r0000 " invalid " 
                           "16r705C"    16r0000 " invalid " 
                           "16r705D"    16r0000 " invalid " 
                           "16r705E"    16r0000 " invalid " 
                           "16r705F"    16r0000 " invalid " 
                           "16r7060"    16r0000 " invalid " 
                           "16r7061"    16r0000 " invalid " 
                           "16r7062"    16r0000 " invalid " 
                           "16r7063"    16r5F54 " <CJK> " 
                           "16r7064"    16r0000 " invalid " 
                           "16r7065"    16r0000 " invalid " 
                           "16r7066"    16r0000 " invalid " 
                           "16r7067"    16r0000 " invalid " 
                           "16r7068"    16r0000 " invalid " 
                           "16r7069"    16r0000 " invalid " 
                           "16r706A"    16r0000 " invalid " 
                           "16r706B"    16r3250 " <CJK> " 
                           "16r706C"    16r0000 " invalid " 
                           "16r706D"    16r0000 " invalid " 
                           "16r706E"    16r0000 " invalid " 
                           "16r706F"    16r4574 " <CJK> " 
                           "16r7070"    16r3325 " <CJK> " 
                           "16r7071"    16r0000 " invalid " 
                           "16r7072"    16r0000 " invalid " 
                           "16r7073"    16r0000 " invalid " 
                           "16r7074"    16r0000 " invalid " 
                           "16r7075"    16r0000 " invalid " 
                           "16r7076"    16r0000 " invalid " 
                           "16r7077"    16r0000 " invalid " 
                           "16r7078"    16r3564 " <CJK> " 
                           "16r7079"    16r0000 " invalid " 
                           "16r707A"    16r0000 " invalid " 
                           "16r707B"    16r0000 " invalid " 
                           "16r707C"    16r3C5E " <CJK> " 
                           "16r707D"    16r3A52 " <CJK> " 
                           "16r707E"    16r0000 " invalid " 
                           "16r707F"    16r0000 " invalid " 
                           "16r7080"    16r0000 " invalid " 
                           "16r7081"    16r0000 " invalid " 
                           "16r7082"    16r0000 " invalid " 
                           "16r7083"    16r0000 " invalid " 
                           "16r7084"    16r0000 " invalid " 
                           "16r7085"    16r0000 " invalid " 
                           "16r7086"    16r0000 " invalid " 
                           "16r7087"    16r0000 " invalid " 
                           "16r7088"    16r0000 " invalid " 
                           "16r7089"    16r4F27 " <CJK> " 
                           "16r708A"    16r3F66 " <CJK> " 
                           "16r708B"    16r0000 " invalid " 
                           "16r708C"    16r0000 " invalid " 
                           "16r708D"    16r0000 " invalid " 
                           "16r708E"    16r316A " <CJK> " 
                           "16r708F"    16r0000 " invalid " 
                           "16r7090"    16r0000 " invalid " 
                           "16r7091"    16r0000 " invalid " 
                           "16r7092"    16r5F56 " <CJK> " 
                           "16r7093"    16r0000 " invalid " 
                           "16r7094"    16r0000 " invalid " 
                           "16r7095"    16r0000 " invalid " 
                           "16r7096"    16r0000 " invalid " 
                           "16r7097"    16r0000 " invalid " 
                           "16r7098"    16r0000 " invalid " 
                           "16r7099"    16r5F55 " <CJK> " 
                           "16r709A"    16r0000 " invalid " 
                           "16r709B"    16r0000 " invalid " 
                           "16r709C"    16r0000 " invalid " 
                           "16r709D"    16r0000 " invalid " 
                           "16r709E"    16r0000 " invalid " 
                           "16r709F"    16r0000 " invalid " 
                           "16r70A0"    16r0000 " invalid " 
                           "16r70A1"    16r0000 " invalid " 
                           "16r70A2"    16r0000 " invalid " 
                           "16r70A3"    16r0000 " invalid " 
                           "16r70A4"    16r0000 " invalid " 
                           "16r70A5"    16r0000 " invalid " 
                           "16r70A6"    16r0000 " invalid " 
                           "16r70A7"    16r0000 " invalid " 
                           "16r70A8"    16r0000 " invalid " 
                           "16r70A9"    16r0000 " invalid " 
                           "16r70AA"    16r0000 " invalid " 
                           "16r70AB"    16r0000 " invalid " 
                           "16r70AC"    16r5F59 " <CJK> " 
                           "16r70AD"    16r433A " <CJK> " 
                           "16r70AE"    16r5F5C " <CJK> " 
                           "16r70AF"    16r5F57 " <CJK> " 
                           "16r70B0"    16r0000 " invalid " 
                           "16r70B1"    16r0000 " invalid " 
                           "16r70B2"    16r0000 " invalid " 
                           "16r70B3"    16r5F5B " <CJK> " 
                           "16r70B4"    16r0000 " invalid " 
                           "16r70B5"    16r0000 " invalid " 
                           "16r70B6"    16r0000 " invalid " 
                           "16r70B7"    16r0000 " invalid " 
                           "16r70B8"    16r5F5A " <CJK> " 
                           "16r70B9"    16r4540 " <CJK> " 
                           "16r70BA"    16r3059 " <CJK> " 
                           "16r70BB"    16r0000 " invalid " 
                           "16r70BC"    16r0000 " invalid " 
                           "16r70BD"    16r0000 " invalid " 
                           "16r70BE"    16r0000 " invalid " 
                           "16r70BF"    16r0000 " invalid " 
                           "16r70C0"    16r0000 " invalid " 
                           "16r70C1"    16r0000 " invalid " 
                           "16r70C2"    16r0000 " invalid " 
                           "16r70C3"    16r0000 " invalid " 
                           "16r70C4"    16r0000 " invalid " 
                           "16r70C5"    16r0000 " invalid " 
                           "16r70C6"    16r0000 " invalid " 
                           "16r70C7"    16r0000 " invalid " 
                           "16r70C8"    16r4E75 " <CJK> " 
                           "16r70C9"    16r0000 " invalid " 
                           "16r70CA"    16r0000 " invalid " 
                           "16r70CB"    16r5F5E " <CJK> " 
                           "16r70CC"    16r0000 " invalid " 
                           "16r70CD"    16r0000 " invalid " 
                           "16r70CE"    16r0000 " invalid " 
                           "16r70CF"    16r3128 " <CJK> " 
                           "16r70D0"    16r0000 " invalid " 
                           "16r70D1"    16r0000 " invalid " 
                           "16r70D2"    16r0000 " invalid " 
                           "16r70D3"    16r0000 " invalid " 
                           "16r70D4"    16r0000 " invalid " 
                           "16r70D5"    16r0000 " invalid " 
                           "16r70D6"    16r0000 " invalid " 
                           "16r70D7"    16r0000 " invalid " 
                           "16r70D8"    16r0000 " invalid " 
                           "16r70D9"    16r5F60 " <CJK> " 
                           "16r70DA"    16r0000 " invalid " 
                           "16r70DB"    16r0000 " invalid " 
                           "16r70DC"    16r0000 " invalid " 
                           "16r70DD"    16r5F5F " <CJK> " 
                           "16r70DE"    16r0000 " invalid " 
                           "16r70DF"    16r5F5D " <CJK> " 
                           "16r70E0"    16r0000 " invalid " 
                           "16r70E1"    16r0000 " invalid " 
                           "16r70E2"    16r0000 " invalid " 
                           "16r70E3"    16r0000 " invalid " 
                           "16r70E4"    16r0000 " invalid " 
                           "16r70E5"    16r0000 " invalid " 
                           "16r70E6"    16r0000 " invalid " 
                           "16r70E7"    16r0000 " invalid " 
                           "16r70E8"    16r0000 " invalid " 
                           "16r70E9"    16r0000 " invalid " 
                           "16r70EA"    16r0000 " invalid " 
                           "16r70EB"    16r0000 " invalid " 
                           "16r70EC"    16r0000 " invalid " 
                           "16r70ED"    16r0000 " invalid " 
                           "16r70EE"    16r0000 " invalid " 
                           "16r70EF"    16r0000 " invalid " 
                           "16r70F0"    16r0000 " invalid " 
                           "16r70F1"    16r5F58 " <CJK> " 
                           "16r70F2"    16r0000 " invalid " 
                           "16r70F3"    16r0000 " invalid " 
                           "16r70F4"    16r0000 " invalid " 
                           "16r70F5"    16r0000 " invalid " 
                           "16r70F6"    16r0000 " invalid " 
                           "16r70F7"    16r0000 " invalid " 
                           "16r70F8"    16r0000 " invalid " 
                           "16r70F9"    16r4B23 " <CJK> " 
                           "16r70FA"    16r0000 " invalid " 
                           "16r70FB"    16r0000 " invalid " 
                           "16r70FC"    16r0000 " invalid " 
                           "16r70FD"    16r5F62 " <CJK> " 
                           "16r70FE"    16r0000 " invalid " 
                           "16r70FF"    16r0000 " invalid " 
                           "16r7100"    16r0000 " invalid " 
                           "16r7101"    16r0000 " invalid " 
                           "16r7102"    16r0000 " invalid " 
                           "16r7103"    16r0000 " invalid " 
                           "16r7104"    16r0000 " invalid " 
                           "16r7105"    16r0000 " invalid " 
                           "16r7106"    16r0000 " invalid " 
                           "16r7107"    16r0000 " invalid " 
                           "16r7108"    16r0000 " invalid " 
                           "16r7109"    16r5F61 " <CJK> " 
                           "16r710A"    16r0000 " invalid " 
                           "16r710B"    16r0000 " invalid " 
                           "16r710C"    16r0000 " invalid " 
                           "16r710D"    16r0000 " invalid " 
                           "16r710E"    16r0000 " invalid " 
                           "16r710F"    16r0000 " invalid " 
                           "16r7110"    16r0000 " invalid " 
                           "16r7111"    16r0000 " invalid " 
                           "16r7112"    16r0000 " invalid " 
                           "16r7113"    16r0000 " invalid " 
                           "16r7114"    16r316B " <CJK> " 
                           "16r7115"    16r0000 " invalid " 
                           "16r7116"    16r0000 " invalid " 
                           "16r7117"    16r0000 " invalid " 
                           "16r7118"    16r0000 " invalid " 
                           "16r7119"    16r5F64 " <CJK> " 
                           "16r711A"    16r4A32 " <CJK> " 
                           "16r711B"    16r0000 " invalid " 
                           "16r711C"    16r5F63 " <CJK> " 
                           "16r711D"    16r0000 " invalid " 
                           "16r711E"    16r0000 " invalid " 
                           "16r711F"    16r0000 " invalid " 
                           "16r7120"    16r0000 " invalid " 
                           "16r7121"    16r4C35 " <CJK> " 
                           "16r7122"    16r0000 " invalid " 
                           "16r7123"    16r0000 " invalid " 
                           "16r7124"    16r0000 " invalid " 
                           "16r7125"    16r0000 " invalid " 
                           "16r7126"    16r3E47 " <CJK> " 
                           "16r7127"    16r0000 " invalid " 
                           "16r7128"    16r0000 " invalid " 
                           "16r7129"    16r0000 " invalid " 
                           "16r712A"    16r0000 " invalid " 
                           "16r712B"    16r0000 " invalid " 
                           "16r712C"    16r0000 " invalid " 
                           "16r712D"    16r0000 " invalid " 
                           "16r712E"    16r0000 " invalid " 
                           "16r712F"    16r0000 " invalid " 
                           "16r7130"    16r0000 " invalid " 
                           "16r7131"    16r0000 " invalid " 
                           "16r7132"    16r0000 " invalid " 
                           "16r7133"    16r0000 " invalid " 
                           "16r7134"    16r0000 " invalid " 
                           "16r7135"    16r0000 " invalid " 
                           "16r7136"    16r4133 " <CJK> " 
                           "16r7137"    16r0000 " invalid " 
                           "16r7138"    16r0000 " invalid " 
                           "16r7139"    16r0000 " invalid " 
                           "16r713A"    16r0000 " invalid " 
                           "16r713B"    16r0000 " invalid " 
                           "16r713C"    16r3E46 " <CJK> " 
                           "16r713D"    16r0000 " invalid " 
                           "16r713E"    16r0000 " invalid " 
                           "16r713F"    16r0000 " invalid " 
                           "16r7140"    16r0000 " invalid " 
                           "16r7141"    16r0000 " invalid " 
                           "16r7142"    16r0000 " invalid " 
                           "16r7143"    16r0000 " invalid " 
                           "16r7144"    16r0000 " invalid " 
                           "16r7145"    16r0000 " invalid " 
                           "16r7146"    16r0000 " invalid " 
                           "16r7147"    16r0000 " invalid " 
                           "16r7148"    16r0000 " invalid " 
                           "16r7149"    16r4E7B " <CJK> " 
                           "16r714A"    16r0000 " invalid " 
                           "16r714B"    16r0000 " invalid " 
                           "16r714C"    16r5F6A " <CJK> " 
                           "16r714D"    16r0000 " invalid " 
                           "16r714E"    16r4079 " <CJK> " 
                           "16r714F"    16r0000 " invalid " 
                           "16r7150"    16r0000 " invalid " 
                           "16r7151"    16r0000 " invalid " 
                           "16r7152"    16r0000 " invalid " 
                           "16r7153"    16r0000 " invalid " 
                           "16r7154"    16r0000 " invalid " 
                           "16r7155"    16r5F66 " <CJK> " 
                           "16r7156"    16r5F6B " <CJK> " 
                           "16r7157"    16r0000 " invalid " 
                           "16r7158"    16r0000 " invalid " 
                           "16r7159"    16r316C " <CJK> " 
                           "16r715A"    16r0000 " invalid " 
                           "16r715B"    16r0000 " invalid " 
                           "16r715C"    16r0000 " invalid " 
                           "16r715D"    16r0000 " invalid " 
                           "16r715E"    16r0000 " invalid " 
                           "16r715F"    16r0000 " invalid " 
                           "16r7160"    16r0000 " invalid " 
                           "16r7161"    16r0000 " invalid " 
                           "16r7162"    16r5F69 " <CJK> " 
                           "16r7163"    16r0000 " invalid " 
                           "16r7164"    16r4761 " <CJK> " 
                           "16r7165"    16r5F65 " <CJK> " 
                           "16r7166"    16r5F68 " <CJK> " 
                           "16r7167"    16r3E48 " <CJK> " 
                           "16r7168"    16r0000 " invalid " 
                           "16r7169"    16r4851 " <CJK> " 
                           "16r716A"    16r0000 " invalid " 
                           "16r716B"    16r0000 " invalid " 
                           "16r716C"    16r5F6C " <CJK> " 
                           "16r716D"    16r0000 " invalid " 
                           "16r716E"    16r3C51 " <CJK> " 
                           "16r716F"    16r0000 " invalid " 
                           "16r7170"    16r0000 " invalid " 
                           "16r7171"    16r0000 " invalid " 
                           "16r7172"    16r0000 " invalid " 
                           "16r7173"    16r0000 " invalid " 
                           "16r7174"    16r0000 " invalid " 
                           "16r7175"    16r0000 " invalid " 
                           "16r7176"    16r0000 " invalid " 
                           "16r7177"    16r0000 " invalid " 
                           "16r7178"    16r0000 " invalid " 
                           "16r7179"    16r0000 " invalid " 
                           "16r717A"    16r0000 " invalid " 
                           "16r717B"    16r0000 " invalid " 
                           "16r717C"    16r0000 " invalid " 
                           "16r717D"    16r407A " <CJK> " 
                           "16r717E"    16r0000 " invalid " 
                           "16r717F"    16r0000 " invalid " 
                           "16r7180"    16r0000 " invalid " 
                           "16r7181"    16r0000 " invalid " 
                           "16r7182"    16r0000 " invalid " 
                           "16r7183"    16r0000 " invalid " 
                           "16r7184"    16r5F6F " <CJK> " 
                           "16r7185"    16r0000 " invalid " 
                           "16r7186"    16r0000 " invalid " 
                           "16r7187"    16r0000 " invalid " 
                           "16r7188"    16r5F67 " <CJK> " 
                           "16r7189"    16r0000 " invalid " 
                           "16r718A"    16r3727 " <CJK> " 
                           "16r718B"    16r0000 " invalid " 
                           "16r718C"    16r0000 " invalid " 
                           "16r718D"    16r0000 " invalid " 
                           "16r718E"    16r0000 " invalid " 
                           "16r718F"    16r5F6D " <CJK> " 
                           "16r7190"    16r0000 " invalid " 
                           "16r7191"    16r0000 " invalid " 
                           "16r7192"    16r0000 " invalid " 
                           "16r7193"    16r0000 " invalid " 
                           "16r7194"    16r4D50 " <CJK> " 
                           "16r7195"    16r5F70 " <CJK> " 
                           "16r7196"    16r0000 " invalid " 
                           "16r7197"    16r0000 " invalid " 
                           "16r7198"    16r0000 " invalid " 
                           "16r7199"    16r7426 " <CJK> " 
                           "16r719A"    16r0000 " invalid " 
                           "16r719B"    16r0000 " invalid " 
                           "16r719C"    16r0000 " invalid " 
                           "16r719D"    16r0000 " invalid " 
                           "16r719E"    16r0000 " invalid " 
                           "16r719F"    16r3D4F " <CJK> " 
                           "16r71A0"    16r0000 " invalid " 
                           "16r71A1"    16r0000 " invalid " 
                           "16r71A2"    16r0000 " invalid " 
                           "16r71A3"    16r0000 " invalid " 
                           "16r71A4"    16r0000 " invalid " 
                           "16r71A5"    16r0000 " invalid " 
                           "16r71A6"    16r0000 " invalid " 
                           "16r71A7"    16r0000 " invalid " 
                           "16r71A8"    16r5F71 " <CJK> " 
                           "16r71A9"    16r0000 " invalid " 
                           "16r71AA"    16r0000 " invalid " 
                           "16r71AB"    16r0000 " invalid " 
                           "16r71AC"    16r5F72 " <CJK> " 
                           "16r71AD"    16r0000 " invalid " 
                           "16r71AE"    16r0000 " invalid " 
                           "16r71AF"    16r0000 " invalid " 
                           "16r71B0"    16r0000 " invalid " 
                           "16r71B1"    16r472E " <CJK> " 
                           "16r71B2"    16r0000 " invalid " 
                           "16r71B3"    16r0000 " invalid " 
                           "16r71B4"    16r0000 " invalid " 
                           "16r71B5"    16r0000 " invalid " 
                           "16r71B6"    16r0000 " invalid " 
                           "16r71B7"    16r0000 " invalid " 
                           "16r71B8"    16r0000 " invalid " 
                           "16r71B9"    16r5F74 " <CJK> " 
                           "16r71BA"    16r0000 " invalid " 
                           "16r71BB"    16r0000 " invalid " 
                           "16r71BC"    16r0000 " invalid " 
                           "16r71BD"    16r0000 " invalid " 
                           "16r71BE"    16r5F75 " <CJK> " 
                           "16r71BF"    16r0000 " invalid " 
                           "16r71C0"    16r0000 " invalid " 
                           "16r71C1"    16r0000 " invalid " 
                           "16r71C2"    16r0000 " invalid " 
                           "16r71C3"    16r4733 " <CJK> " 
                           "16r71C4"    16r0000 " invalid " 
                           "16r71C5"    16r0000 " invalid " 
                           "16r71C6"    16r0000 " invalid " 
                           "16r71C7"    16r0000 " invalid " 
                           "16r71C8"    16r4575 " <CJK> " 
                           "16r71C9"    16r5F77 " <CJK> " 
                           "16r71CA"    16r0000 " invalid " 
                           "16r71CB"    16r0000 " invalid " 
                           "16r71CC"    16r0000 " invalid " 
                           "16r71CD"    16r0000 " invalid " 
                           "16r71CE"    16r5F79 " <CJK> " 
                           "16r71CF"    16r0000 " invalid " 
                           "16r71D0"    16r4E55 " <CJK> " 
                           "16r71D1"    16r0000 " invalid " 
                           "16r71D2"    16r5F76 " <CJK> " 
                           "16r71D3"    16r0000 " invalid " 
                           "16r71D4"    16r5F78 " <CJK> " 
                           "16r71D5"    16r316D " <CJK> " 
                           "16r71D6"    16r0000 " invalid " 
                           "16r71D7"    16r5F73 " <CJK> " 
                           "16r71D8"    16r0000 " invalid " 
                           "16r71D9"    16r0000 " invalid " 
                           "16r71DA"    16r0000 " invalid " 
                           "16r71DB"    16r0000 " invalid " 
                           "16r71DC"    16r0000 " invalid " 
                           "16r71DD"    16r0000 " invalid " 
                           "16r71DE"    16r0000 " invalid " 
                           "16r71DF"    16r535B " <CJK> " 
                           "16r71E0"    16r5F7A " <CJK> " 
                           "16r71E1"    16r0000 " invalid " 
                           "16r71E2"    16r0000 " invalid " 
                           "16r71E3"    16r0000 " invalid " 
                           "16r71E4"    16r0000 " invalid " 
                           "16r71E5"    16r4167 " <CJK> " 
                           "16r71E6"    16r3B38 " <CJK> " 
                           "16r71E7"    16r5F7C " <CJK> " 
                           "16r71E8"    16r0000 " invalid " 
                           "16r71E9"    16r0000 " invalid " 
                           "16r71EA"    16r0000 " invalid " 
                           "16r71EB"    16r0000 " invalid " 
                           "16r71EC"    16r5F7B " <CJK> " 
                           "16r71ED"    16r3F24 " <CJK> " 
                           "16r71EE"    16r5259 " <CJK> " 
                           "16r71EF"    16r0000 " invalid " 
                           "16r71F0"    16r0000 " invalid " 
                           "16r71F1"    16r0000 " invalid " 
                           "16r71F2"    16r0000 " invalid " 
                           "16r71F3"    16r0000 " invalid " 
                           "16r71F4"    16r0000 " invalid " 
                           "16r71F5"    16r5F7D " <CJK> " 
                           "16r71F6"    16r0000 " invalid " 
                           "16r71F7"    16r0000 " invalid " 
                           "16r71F8"    16r0000 " invalid " 
                           "16r71F9"    16r6021 " <CJK> " 
                           "16r71FA"    16r0000 " invalid " 
                           "16r71FB"    16r5F6E " <CJK> " 
                           "16r71FC"    16r5F7E " <CJK> " 
                           "16r71FD"    16r0000 " invalid " 
                           "16r71FE"    16r0000 " invalid " 
                           "16r71FF"    16r6022 " <CJK> " 
                           "16r7200"    16r0000 " invalid " 
                           "16r7201"    16r0000 " invalid " 
                           "16r7202"    16r0000 " invalid " 
                           "16r7203"    16r0000 " invalid " 
                           "16r7204"    16r0000 " invalid " 
                           "16r7205"    16r0000 " invalid " 
                           "16r7206"    16r477A " <CJK> " 
                           "16r7207"    16r0000 " invalid " 
                           "16r7208"    16r0000 " invalid " 
                           "16r7209"    16r0000 " invalid " 
                           "16r720A"    16r0000 " invalid " 
                           "16r720B"    16r0000 " invalid " 
                           "16r720C"    16r0000 " invalid " 
                           "16r720D"    16r6023 " <CJK> " 
                           "16r720E"    16r0000 " invalid " 
                           "16r720F"    16r0000 " invalid " 
                           "16r7210"    16r6024 " <CJK> " 
                           "16r7211"    16r0000 " invalid " 
                           "16r7212"    16r0000 " invalid " 
                           "16r7213"    16r0000 " invalid " 
                           "16r7214"    16r0000 " invalid " 
                           "16r7215"    16r0000 " invalid " 
                           "16r7216"    16r0000 " invalid " 
                           "16r7217"    16r0000 " invalid " 
                           "16r7218"    16r0000 " invalid " 
                           "16r7219"    16r0000 " invalid " 
                           "16r721A"    16r0000 " invalid " 
                           "16r721B"    16r6025 " <CJK> " 
                           "16r721C"    16r0000 " invalid " 
                           "16r721D"    16r0000 " invalid " 
                           "16r721E"    16r0000 " invalid " 
                           "16r721F"    16r0000 " invalid " 
                           "16r7220"    16r0000 " invalid " 
                           "16r7221"    16r0000 " invalid " 
                           "16r7222"    16r0000 " invalid " 
                           "16r7223"    16r0000 " invalid " 
                           "16r7224"    16r0000 " invalid " 
                           "16r7225"    16r0000 " invalid " 
                           "16r7226"    16r0000 " invalid " 
                           "16r7227"    16r0000 " invalid " 
                           "16r7228"    16r6026 " <CJK> " 
                           "16r7229"    16r0000 " invalid " 
                           "16r722A"    16r445E " <CJK> " 
                           "16r722B"    16r0000 " invalid " 
                           "16r722C"    16r6028 " <CJK> " 
                           "16r722D"    16r6027 " <CJK> " 
                           "16r722E"    16r0000 " invalid " 
                           "16r722F"    16r0000 " invalid " 
                           "16r7230"    16r6029 " <CJK> " 
                           "16r7231"    16r0000 " invalid " 
                           "16r7232"    16r602A " <CJK> " 
                           "16r7233"    16r0000 " invalid " 
                           "16r7234"    16r0000 " invalid " 
                           "16r7235"    16r3C5F " <CJK> " 
                           "16r7236"    16r4963 " <CJK> " 
                           "16r7237"    16r0000 " invalid " 
                           "16r7238"    16r0000 " invalid " 
                           "16r7239"    16r0000 " invalid " 
                           "16r723A"    16r4C6C " <CJK> " 
                           "16r723B"    16r602B " <CJK> " 
                           "16r723C"    16r602C " <CJK> " 
                           "16r723D"    16r4156 " <CJK> " 
                           "16r723E"    16r3C24 " <CJK> " 
                           "16r723F"    16r602D " <CJK> " 
                           "16r7240"    16r602E " <CJK> " 
                           "16r7241"    16r0000 " invalid " 
                           "16r7242"    16r0000 " invalid " 
                           "16r7243"    16r0000 " invalid " 
                           "16r7244"    16r0000 " invalid " 
                           "16r7245"    16r0000 " invalid " 
                           "16r7246"    16r602F " <CJK> " 
                           "16r7247"    16r4A52 " <CJK> " 
                           "16r7248"    16r4847 " <CJK> " 
                           "16r7249"    16r0000 " invalid " 
                           "16r724A"    16r0000 " invalid " 
                           "16r724B"    16r6030 " <CJK> " 
                           "16r724C"    16r4757 " <CJK> " 
                           "16r724D"    16r0000 " invalid " 
                           "16r724E"    16r0000 " invalid " 
                           "16r724F"    16r0000 " invalid " 
                           "16r7250"    16r0000 " invalid " 
                           "16r7251"    16r0000 " invalid " 
                           "16r7252"    16r442D " <CJK> " 
                           "16r7253"    16r0000 " invalid " 
                           "16r7254"    16r0000 " invalid " 
                           "16r7255"    16r0000 " invalid " 
                           "16r7256"    16r0000 " invalid " 
                           "16r7257"    16r0000 " invalid " 
                           "16r7258"    16r6031 " <CJK> " 
                           "16r7259"    16r3267 " <CJK> " 
                           "16r725A"    16r0000 " invalid " 
                           "16r725B"    16r356D " <CJK> " 
                           "16r725C"    16r0000 " invalid " 
                           "16r725D"    16r4C46 " <CJK> " 
                           "16r725E"    16r0000 " invalid " 
                           "16r725F"    16r4C36 " <CJK> " 
                           "16r7260"    16r0000 " invalid " 
                           "16r7261"    16r3234 " <CJK> " 
                           "16r7262"    16r4F34 " <CJK> " 
                           "16r7263"    16r0000 " invalid " 
                           "16r7264"    16r0000 " invalid " 
                           "16r7265"    16r0000 " invalid " 
                           "16r7266"    16r0000 " invalid " 
                           "16r7267"    16r4B52 " <CJK> " 
                           "16r7268"    16r0000 " invalid " 
                           "16r7269"    16r4A2A " <CJK> " 
                           "16r726A"    16r0000 " invalid " 
                           "16r726B"    16r0000 " invalid " 
                           "16r726C"    16r0000 " invalid " 
                           "16r726D"    16r0000 " invalid " 
                           "16r726E"    16r0000 " invalid " 
                           "16r726F"    16r0000 " invalid " 
                           "16r7270"    16r0000 " invalid " 
                           "16r7271"    16r0000 " invalid " 
                           "16r7272"    16r4037 " <CJK> " 
                           "16r7273"    16r0000 " invalid " 
                           "16r7274"    16r6032 " <CJK> " 
                           "16r7275"    16r0000 " invalid " 
                           "16r7276"    16r0000 " invalid " 
                           "16r7277"    16r0000 " invalid " 
                           "16r7278"    16r0000 " invalid " 
                           "16r7279"    16r4643 " <CJK> " 
                           "16r727A"    16r0000 " invalid " 
                           "16r727B"    16r0000 " invalid " 
                           "16r727C"    16r0000 " invalid " 
                           "16r727D"    16r3823 " <CJK> " 
                           "16r727E"    16r6033 " <CJK> " 
                           "16r727F"    16r0000 " invalid " 
                           "16r7280"    16r3A54 " <CJK> " 
                           "16r7281"    16r6035 " <CJK> " 
                           "16r7282"    16r6034 " <CJK> " 
                           "16r7283"    16r0000 " invalid " 
                           "16r7284"    16r0000 " invalid " 
                           "16r7285"    16r0000 " invalid " 
                           "16r7286"    16r0000 " invalid " 
                           "16r7287"    16r6036 " <CJK> " 
                           "16r7288"    16r0000 " invalid " 
                           "16r7289"    16r0000 " invalid " 
                           "16r728A"    16r0000 " invalid " 
                           "16r728B"    16r0000 " invalid " 
                           "16r728C"    16r0000 " invalid " 
                           "16r728D"    16r0000 " invalid " 
                           "16r728E"    16r0000 " invalid " 
                           "16r728F"    16r0000 " invalid " 
                           "16r7290"    16r0000 " invalid " 
                           "16r7291"    16r0000 " invalid " 
                           "16r7292"    16r6037 " <CJK> " 
                           "16r7293"    16r0000 " invalid " 
                           "16r7294"    16r0000 " invalid " 
                           "16r7295"    16r0000 " invalid " 
                           "16r7296"    16r6038 " <CJK> " 
                           "16r7297"    16r0000 " invalid " 
                           "16r7298"    16r0000 " invalid " 
                           "16r7299"    16r0000 " invalid " 
                           "16r729A"    16r0000 " invalid " 
                           "16r729B"    16r0000 " invalid " 
                           "16r729C"    16r0000 " invalid " 
                           "16r729D"    16r0000 " invalid " 
                           "16r729E"    16r0000 " invalid " 
                           "16r729F"    16r0000 " invalid " 
                           "16r72A0"    16r353E " <CJK> " 
                           "16r72A1"    16r0000 " invalid " 
                           "16r72A2"    16r6039 " <CJK> " 
                           "16r72A3"    16r0000 " invalid " 
                           "16r72A4"    16r0000 " invalid " 
                           "16r72A5"    16r0000 " invalid " 
                           "16r72A6"    16r0000 " invalid " 
                           "16r72A7"    16r603A " <CJK> " 
                           "16r72A8"    16r0000 " invalid " 
                           "16r72A9"    16r0000 " invalid " 
                           "16r72AA"    16r0000 " invalid " 
                           "16r72AB"    16r0000 " invalid " 
                           "16r72AC"    16r3824 " <CJK> " 
                           "16r72AD"    16r0000 " invalid " 
                           "16r72AE"    16r0000 " invalid " 
                           "16r72AF"    16r4848 " <CJK> " 
                           "16r72B0"    16r0000 " invalid " 
                           "16r72B1"    16r0000 " invalid " 
                           "16r72B2"    16r603C " <CJK> " 
                           "16r72B3"    16r0000 " invalid " 
                           "16r72B4"    16r0000 " invalid " 
                           "16r72B5"    16r0000 " invalid " 
                           "16r72B6"    16r3E75 " <CJK> " 
                           "16r72B7"    16r0000 " invalid " 
                           "16r72B8"    16r0000 " invalid " 
                           "16r72B9"    16r603B " <CJK> " 
                           "16r72BA"    16r0000 " invalid " 
                           "16r72BB"    16r0000 " invalid " 
                           "16r72BC"    16r0000 " invalid " 
                           "16r72BD"    16r0000 " invalid " 
                           "16r72BE"    16r0000 " invalid " 
                           "16r72BF"    16r0000 " invalid " 
                           "16r72C0"    16r0000 " invalid " 
                           "16r72C1"    16r0000 " invalid " 
                           "16r72C2"    16r3638 " <CJK> " 
                           "16r72C3"    16r603D " <CJK> " 
                           "16r72C4"    16r603F " <CJK> " 
                           "16r72C5"    16r0000 " invalid " 
                           "16r72C6"    16r603E " <CJK> " 
                           "16r72C7"    16r0000 " invalid " 
                           "16r72C8"    16r0000 " invalid " 
                           "16r72C9"    16r0000 " invalid " 
                           "16r72CA"    16r0000 " invalid " 
                           "16r72CB"    16r0000 " invalid " 
                           "16r72CC"    16r0000 " invalid " 
                           "16r72CD"    16r0000 " invalid " 
                           "16r72CE"    16r6040 " <CJK> " 
                           "16r72CF"    16r0000 " invalid " 
                           "16r72D0"    16r3851 " <CJK> " 
                           "16r72D1"    16r0000 " invalid " 
                           "16r72D2"    16r6041 " <CJK> " 
                           "16r72D3"    16r0000 " invalid " 
                           "16r72D4"    16r0000 " invalid " 
                           "16r72D5"    16r0000 " invalid " 
                           "16r72D6"    16r0000 " invalid " 
                           "16r72D7"    16r3669 " <CJK> " 
                           "16r72D8"    16r0000 " invalid " 
                           "16r72D9"    16r4140 " <CJK> " 
                           "16r72DA"    16r0000 " invalid " 
                           "16r72DB"    16r397D " <CJK> " 
                           "16r72DC"    16r0000 " invalid " 
                           "16r72DD"    16r0000 " invalid " 
                           "16r72DE"    16r0000 " invalid " 
                           "16r72DF"    16r0000 " invalid " 
                           "16r72E0"    16r6043 " <CJK> " 
                           "16r72E1"    16r6044 " <CJK> " 
                           "16r72E2"    16r6042 " <CJK> " 
                           "16r72E3"    16r0000 " invalid " 
                           "16r72E4"    16r0000 " invalid " 
                           "16r72E5"    16r0000 " invalid " 
                           "16r72E6"    16r0000 " invalid " 
                           "16r72E7"    16r0000 " invalid " 
                           "16r72E8"    16r0000 " invalid " 
                           "16r72E9"    16r3C6D " <CJK> " 
                           "16r72EA"    16r0000 " invalid " 
                           "16r72EB"    16r0000 " invalid " 
                           "16r72EC"    16r4648 " <CJK> " 
                           "16r72ED"    16r3639 " <CJK> " 
                           "16r72EE"    16r0000 " invalid " 
                           "16r72EF"    16r0000 " invalid " 
                           "16r72F0"    16r0000 " invalid " 
                           "16r72F1"    16r0000 " invalid " 
                           "16r72F2"    16r0000 " invalid " 
                           "16r72F3"    16r0000 " invalid " 
                           "16r72F4"    16r0000 " invalid " 
                           "16r72F5"    16r0000 " invalid " 
                           "16r72F6"    16r0000 " invalid " 
                           "16r72F7"    16r6046 " <CJK> " 
                           "16r72F8"    16r432C " <CJK> " 
                           "16r72F9"    16r6045 " <CJK> " 
                           "16r72FA"    16r0000 " invalid " 
                           "16r72FB"    16r0000 " invalid " 
                           "16r72FC"    16r4F35 " <CJK> " 
                           "16r72FD"    16r4762 " <CJK> " 
                           "16r72FE"    16r0000 " invalid " 
                           "16r72FF"    16r0000 " invalid " 
                           "16r7300"    16r0000 " invalid " 
                           "16r7301"    16r0000 " invalid " 
                           "16r7302"    16r0000 " invalid " 
                           "16r7303"    16r0000 " invalid " 
                           "16r7304"    16r0000 " invalid " 
                           "16r7305"    16r0000 " invalid " 
                           "16r7306"    16r0000 " invalid " 
                           "16r7307"    16r0000 " invalid " 
                           "16r7308"    16r0000 " invalid " 
                           "16r7309"    16r0000 " invalid " 
                           "16r730A"    16r6049 " <CJK> " 
                           "16r730B"    16r0000 " invalid " 
                           "16r730C"    16r0000 " invalid " 
                           "16r730D"    16r0000 " invalid " 
                           "16r730E"    16r0000 " invalid " 
                           "16r730F"    16r0000 " invalid " 
                           "16r7310"    16r0000 " invalid " 
                           "16r7311"    16r0000 " invalid " 
                           "16r7312"    16r0000 " invalid " 
                           "16r7313"    16r0000 " invalid " 
                           "16r7314"    16r0000 " invalid " 
                           "16r7315"    16r0000 " invalid " 
                           "16r7316"    16r604B " <CJK> " 
                           "16r7317"    16r6048 " <CJK> " 
                           "16r7318"    16r0000 " invalid " 
                           "16r7319"    16r0000 " invalid " 
                           "16r731A"    16r0000 " invalid " 
                           "16r731B"    16r4C54 " <CJK> " 
                           "16r731C"    16r604A " <CJK> " 
                           "16r731D"    16r604C " <CJK> " 
                           "16r731E"    16r0000 " invalid " 
                           "16r731F"    16r4E44 " <CJK> " 
                           "16r7320"    16r0000 " invalid " 
                           "16r7321"    16r0000 " invalid " 
                           "16r7322"    16r0000 " invalid " 
                           "16r7323"    16r0000 " invalid " 
                           "16r7324"    16r0000 " invalid " 
                           "16r7325"    16r6050 " <CJK> " 
                           "16r7326"    16r0000 " invalid " 
                           "16r7327"    16r0000 " invalid " 
                           "16r7328"    16r0000 " invalid " 
                           "16r7329"    16r604F " <CJK> " 
                           "16r732A"    16r4376 " <CJK> " 
                           "16r732B"    16r472D " <CJK> " 
                           "16r732C"    16r0000 " invalid " 
                           "16r732D"    16r0000 " invalid " 
                           "16r732E"    16r3825 " <CJK> " 
                           "16r732F"    16r604E " <CJK> " 
                           "16r7330"    16r0000 " invalid " 
                           "16r7331"    16r0000 " invalid " 
                           "16r7332"    16r0000 " invalid " 
                           "16r7333"    16r0000 " invalid " 
                           "16r7334"    16r604D " <CJK> " 
                           "16r7335"    16r0000 " invalid " 
                           "16r7336"    16r4D31 " <CJK> " 
                           "16r7337"    16r4D32 " <CJK> " 
                           "16r7338"    16r0000 " invalid " 
                           "16r7339"    16r0000 " invalid " 
                           "16r733A"    16r0000 " invalid " 
                           "16r733B"    16r0000 " invalid " 
                           "16r733C"    16r0000 " invalid " 
                           "16r733D"    16r0000 " invalid " 
                           "16r733E"    16r6051 " <CJK> " 
                           "16r733F"    16r316E " <CJK> " 
                           "16r7340"    16r0000 " invalid " 
                           "16r7341"    16r0000 " invalid " 
                           "16r7342"    16r0000 " invalid " 
                           "16r7343"    16r0000 " invalid " 
                           "16r7344"    16r3976 " <CJK> " 
                           "16r7345"    16r3B62 " <CJK> " 
                           "16r7346"    16r0000 " invalid " 
                           "16r7347"    16r0000 " invalid " 
                           "16r7348"    16r0000 " invalid " 
                           "16r7349"    16r0000 " invalid " 
                           "16r734A"    16r0000 " invalid " 
                           "16r734B"    16r0000 " invalid " 
                           "16r734C"    16r0000 " invalid " 
                           "16r734D"    16r0000 " invalid " 
                           "16r734E"    16r6052 " <CJK> " 
                           "16r734F"    16r6053 " <CJK> " 
                           "16r7350"    16r0000 " invalid " 
                           "16r7351"    16r0000 " invalid " 
                           "16r7352"    16r0000 " invalid " 
                           "16r7353"    16r0000 " invalid " 
                           "16r7354"    16r0000 " invalid " 
                           "16r7355"    16r0000 " invalid " 
                           "16r7356"    16r0000 " invalid " 
                           "16r7357"    16r6055 " <CJK> " 
                           "16r7358"    16r0000 " invalid " 
                           "16r7359"    16r0000 " invalid " 
                           "16r735A"    16r0000 " invalid " 
                           "16r735B"    16r0000 " invalid " 
                           "16r735C"    16r0000 " invalid " 
                           "16r735D"    16r0000 " invalid " 
                           "16r735E"    16r0000 " invalid " 
                           "16r735F"    16r0000 " invalid " 
                           "16r7360"    16r0000 " invalid " 
                           "16r7361"    16r0000 " invalid " 
                           "16r7362"    16r0000 " invalid " 
                           "16r7363"    16r3D43 " <CJK> " 
                           "16r7364"    16r0000 " invalid " 
                           "16r7365"    16r0000 " invalid " 
                           "16r7366"    16r0000 " invalid " 
                           "16r7367"    16r0000 " invalid " 
                           "16r7368"    16r6057 " <CJK> " 
                           "16r7369"    16r0000 " invalid " 
                           "16r736A"    16r6056 " <CJK> " 
                           "16r736B"    16r0000 " invalid " 
                           "16r736C"    16r0000 " invalid " 
                           "16r736D"    16r0000 " invalid " 
                           "16r736E"    16r0000 " invalid " 
                           "16r736F"    16r0000 " invalid " 
                           "16r7370"    16r6058 " <CJK> " 
                           "16r7371"    16r0000 " invalid " 
                           "16r7372"    16r334D " <CJK> " 
                           "16r7373"    16r0000 " invalid " 
                           "16r7374"    16r0000 " invalid " 
                           "16r7375"    16r605A " <CJK> " 
                           "16r7376"    16r0000 " invalid " 
                           "16r7377"    16r0000 " invalid " 
                           "16r7378"    16r6059 " <CJK> " 
                           "16r7379"    16r0000 " invalid " 
                           "16r737A"    16r605C " <CJK> " 
                           "16r737B"    16r605B " <CJK> " 
                           "16r737C"    16r0000 " invalid " 
                           "16r737D"    16r0000 " invalid " 
                           "16r737E"    16r0000 " invalid " 
                           "16r737F"    16r0000 " invalid " 
                           "16r7380"    16r0000 " invalid " 
                           "16r7381"    16r0000 " invalid " 
                           "16r7382"    16r0000 " invalid " 
                           "16r7383"    16r0000 " invalid " 
                           "16r7384"    16r383C " <CJK> " 
                           "16r7385"    16r0000 " invalid " 
                           "16r7386"    16r0000 " invalid " 
                           "16r7387"    16r4E28 " <CJK> " 
                           "16r7388"    16r0000 " invalid " 
                           "16r7389"    16r364C " <CJK> " 
                           "16r738A"    16r0000 " invalid " 
                           "16r738B"    16r3226 " <CJK> " 
                           "16r738C"    16r0000 " invalid " 
                           "16r738D"    16r0000 " invalid " 
                           "16r738E"    16r0000 " invalid " 
                           "16r738F"    16r0000 " invalid " 
                           "16r7390"    16r0000 " invalid " 
                           "16r7391"    16r0000 " invalid " 
                           "16r7392"    16r0000 " invalid " 
                           "16r7393"    16r0000 " invalid " 
                           "16r7394"    16r0000 " invalid " 
                           "16r7395"    16r0000 " invalid " 
                           "16r7396"    16r366A " <CJK> " 
                           "16r7397"    16r0000 " invalid " 
                           "16r7398"    16r0000 " invalid " 
                           "16r7399"    16r0000 " invalid " 
                           "16r739A"    16r0000 " invalid " 
                           "16r739B"    16r0000 " invalid " 
                           "16r739C"    16r0000 " invalid " 
                           "16r739D"    16r0000 " invalid " 
                           "16r739E"    16r0000 " invalid " 
                           "16r739F"    16r0000 " invalid " 
                           "16r73A0"    16r0000 " invalid " 
                           "16r73A1"    16r0000 " invalid " 
                           "16r73A2"    16r0000 " invalid " 
                           "16r73A3"    16r0000 " invalid " 
                           "16r73A4"    16r0000 " invalid " 
                           "16r73A5"    16r0000 " invalid " 
                           "16r73A6"    16r0000 " invalid " 
                           "16r73A7"    16r0000 " invalid " 
                           "16r73A8"    16r0000 " invalid " 
                           "16r73A9"    16r3461 " <CJK> " 
                           "16r73AA"    16r0000 " invalid " 
                           "16r73AB"    16r0000 " invalid " 
                           "16r73AC"    16r0000 " invalid " 
                           "16r73AD"    16r0000 " invalid " 
                           "16r73AE"    16r0000 " invalid " 
                           "16r73AF"    16r0000 " invalid " 
                           "16r73B0"    16r0000 " invalid " 
                           "16r73B1"    16r0000 " invalid " 
                           "16r73B2"    16r4E68 " <CJK> " 
                           "16r73B3"    16r605E " <CJK> " 
                           "16r73B4"    16r0000 " invalid " 
                           "16r73B5"    16r0000 " invalid " 
                           "16r73B6"    16r0000 " invalid " 
                           "16r73B7"    16r0000 " invalid " 
                           "16r73B8"    16r0000 " invalid " 
                           "16r73B9"    16r0000 " invalid " 
                           "16r73BA"    16r0000 " invalid " 
                           "16r73BB"    16r6060 " <CJK> " 
                           "16r73BC"    16r0000 " invalid " 
                           "16r73BD"    16r0000 " invalid " 
                           "16r73BE"    16r0000 " invalid " 
                           "16r73BF"    16r0000 " invalid " 
                           "16r73C0"    16r6061 " <CJK> " 
                           "16r73C1"    16r0000 " invalid " 
                           "16r73C2"    16r3251 " <CJK> " 
                           "16r73C3"    16r0000 " invalid " 
                           "16r73C4"    16r0000 " invalid " 
                           "16r73C5"    16r0000 " invalid " 
                           "16r73C6"    16r0000 " invalid " 
                           "16r73C7"    16r0000 " invalid " 
                           "16r73C8"    16r605D " <CJK> " 
                           "16r73C9"    16r0000 " invalid " 
                           "16r73CA"    16r3B39 " <CJK> " 
                           "16r73CB"    16r0000 " invalid " 
                           "16r73CC"    16r0000 " invalid " 
                           "16r73CD"    16r4441 " <CJK> " 
                           "16r73CE"    16r605F " <CJK> " 
                           "16r73CF"    16r0000 " invalid " 
                           "16r73D0"    16r0000 " invalid " 
                           "16r73D1"    16r0000 " invalid " 
                           "16r73D2"    16r0000 " invalid " 
                           "16r73D3"    16r0000 " invalid " 
                           "16r73D4"    16r0000 " invalid " 
                           "16r73D5"    16r0000 " invalid " 
                           "16r73D6"    16r0000 " invalid " 
                           "16r73D7"    16r0000 " invalid " 
                           "16r73D8"    16r0000 " invalid " 
                           "16r73D9"    16r0000 " invalid " 
                           "16r73DA"    16r0000 " invalid " 
                           "16r73DB"    16r0000 " invalid " 
                           "16r73DC"    16r0000 " invalid " 
                           "16r73DD"    16r0000 " invalid " 
                           "16r73DE"    16r6064 " <CJK> " 
                           "16r73DF"    16r0000 " invalid " 
                           "16r73E0"    16r3C6E " <CJK> " 
                           "16r73E1"    16r0000 " invalid " 
                           "16r73E2"    16r0000 " invalid " 
                           "16r73E3"    16r0000 " invalid " 
                           "16r73E4"    16r0000 " invalid " 
                           "16r73E5"    16r6062 " <CJK> " 
                           "16r73E6"    16r0000 " invalid " 
                           "16r73E7"    16r0000 " invalid " 
                           "16r73E8"    16r0000 " invalid " 
                           "16r73E9"    16r0000 " invalid " 
                           "16r73EA"    16r373E " <CJK> " 
                           "16r73EB"    16r0000 " invalid " 
                           "16r73EC"    16r0000 " invalid " 
                           "16r73ED"    16r4849 " <CJK> " 
                           "16r73EE"    16r6063 " <CJK> " 
                           "16r73EF"    16r0000 " invalid " 
                           "16r73F0"    16r0000 " invalid " 
                           "16r73F1"    16r607E " <CJK> " 
                           "16r73F2"    16r0000 " invalid " 
                           "16r73F3"    16r0000 " invalid " 
                           "16r73F4"    16r0000 " invalid " 
                           "16r73F5"    16r0000 " invalid " 
                           "16r73F6"    16r0000 " invalid " 
                           "16r73F7"    16r0000 " invalid " 
                           "16r73F8"    16r6069 " <CJK> " 
                           "16r73F9"    16r0000 " invalid " 
                           "16r73FA"    16r0000 " invalid " 
                           "16r73FB"    16r0000 " invalid " 
                           "16r73FC"    16r0000 " invalid " 
                           "16r73FD"    16r0000 " invalid " 
                           "16r73FE"    16r383D " <CJK> " 
                           "16r73FF"    16r0000 " invalid " 
                           "16r7400"    16r0000 " invalid " 
                           "16r7401"    16r0000 " invalid " 
                           "16r7402"    16r0000 " invalid " 
                           "16r7403"    16r3565 " <CJK> " 
                           "16r7404"    16r0000 " invalid " 
                           "16r7405"    16r6066 " <CJK> " 
                           "16r7406"    16r4D7D " <CJK> " 
                           "16r7407"    16r0000 " invalid " 
                           "16r7408"    16r0000 " invalid " 
                           "16r7409"    16r4E30 " <CJK> " 
                           "16r740A"    16r0000 " invalid " 
                           "16r740B"    16r0000 " invalid " 
                           "16r740C"    16r0000 " invalid " 
                           "16r740D"    16r0000 " invalid " 
                           "16r740E"    16r0000 " invalid " 
                           "16r740F"    16r0000 " invalid " 
                           "16r7410"    16r0000 " invalid " 
                           "16r7411"    16r0000 " invalid " 
                           "16r7412"    16r0000 " invalid " 
                           "16r7413"    16r0000 " invalid " 
                           "16r7414"    16r0000 " invalid " 
                           "16r7415"    16r0000 " invalid " 
                           "16r7416"    16r0000 " invalid " 
                           "16r7417"    16r0000 " invalid " 
                           "16r7418"    16r0000 " invalid " 
                           "16r7419"    16r0000 " invalid " 
                           "16r741A"    16r0000 " invalid " 
                           "16r741B"    16r0000 " invalid " 
                           "16r741C"    16r0000 " invalid " 
                           "16r741D"    16r0000 " invalid " 
                           "16r741E"    16r0000 " invalid " 
                           "16r741F"    16r0000 " invalid " 
                           "16r7420"    16r0000 " invalid " 
                           "16r7421"    16r0000 " invalid " 
                           "16r7422"    16r4276 " <CJK> " 
                           "16r7423"    16r0000 " invalid " 
                           "16r7424"    16r0000 " invalid " 
                           "16r7425"    16r6068 " <CJK> " 
                           "16r7426"    16r0000 " invalid " 
                           "16r7427"    16r0000 " invalid " 
                           "16r7428"    16r0000 " invalid " 
                           "16r7429"    16r0000 " invalid " 
                           "16r742A"    16r0000 " invalid " 
                           "16r742B"    16r0000 " invalid " 
                           "16r742C"    16r0000 " invalid " 
                           "16r742D"    16r0000 " invalid " 
                           "16r742E"    16r0000 " invalid " 
                           "16r742F"    16r0000 " invalid " 
                           "16r7430"    16r0000 " invalid " 
                           "16r7431"    16r0000 " invalid " 
                           "16r7432"    16r606A " <CJK> " 
                           "16r7433"    16r4E56 " <CJK> " 
                           "16r7434"    16r3657 " <CJK> " 
                           "16r7435"    16r487C " <CJK> " 
                           "16r7436"    16r474A " <CJK> " 
                           "16r7437"    16r0000 " invalid " 
                           "16r7438"    16r0000 " invalid " 
                           "16r7439"    16r0000 " invalid " 
                           "16r743A"    16r606B " <CJK> " 
                           "16r743B"    16r0000 " invalid " 
                           "16r743C"    16r0000 " invalid " 
                           "16r743D"    16r0000 " invalid " 
                           "16r743E"    16r0000 " invalid " 
                           "16r743F"    16r606D " <CJK> " 
                           "16r7440"    16r0000 " invalid " 
                           "16r7441"    16r6070 " <CJK> " 
                           "16r7442"    16r0000 " invalid " 
                           "16r7443"    16r0000 " invalid " 
                           "16r7444"    16r0000 " invalid " 
                           "16r7445"    16r0000 " invalid " 
                           "16r7446"    16r0000 " invalid " 
                           "16r7447"    16r0000 " invalid " 
                           "16r7448"    16r0000 " invalid " 
                           "16r7449"    16r0000 " invalid " 
                           "16r744A"    16r0000 " invalid " 
                           "16r744B"    16r0000 " invalid " 
                           "16r744C"    16r0000 " invalid " 
                           "16r744D"    16r0000 " invalid " 
                           "16r744E"    16r0000 " invalid " 
                           "16r744F"    16r0000 " invalid " 
                           "16r7450"    16r0000 " invalid " 
                           "16r7451"    16r0000 " invalid " 
                           "16r7452"    16r0000 " invalid " 
                           "16r7453"    16r0000 " invalid " 
                           "16r7454"    16r0000 " invalid " 
                           "16r7455"    16r606C " <CJK> " 
                           "16r7456"    16r0000 " invalid " 
                           "16r7457"    16r0000 " invalid " 
                           "16r7458"    16r0000 " invalid " 
                           "16r7459"    16r606F " <CJK> " 
                           "16r745A"    16r386A " <CJK> " 
                           "16r745B"    16r314D " <CJK> " 
                           "16r745C"    16r6071 " <CJK> " 
                           "16r745D"    16r0000 " invalid " 
                           "16r745E"    16r3F70 " <CJK> " 
                           "16r745F"    16r606E " <CJK> " 
                           "16r7460"    16r4E5C " <CJK> " 
                           "16r7461"    16r0000 " invalid " 
                           "16r7462"    16r0000 " invalid " 
                           "16r7463"    16r6074 " <CJK> " 
                           "16r7464"    16r7424 " <CJK> " 
                           "16r7465"    16r0000 " invalid " 
                           "16r7466"    16r0000 " invalid " 
                           "16r7467"    16r0000 " invalid " 
                           "16r7468"    16r0000 " invalid " 
                           "16r7469"    16r6072 " <CJK> " 
                           "16r746A"    16r6075 " <CJK> " 
                           "16r746B"    16r0000 " invalid " 
                           "16r746C"    16r0000 " invalid " 
                           "16r746D"    16r0000 " invalid " 
                           "16r746E"    16r0000 " invalid " 
                           "16r746F"    16r6067 " <CJK> " 
                           "16r7470"    16r6073 " <CJK> " 
                           "16r7471"    16r0000 " invalid " 
                           "16r7472"    16r0000 " invalid " 
                           "16r7473"    16r3A3C " <CJK> " 
                           "16r7474"    16r0000 " invalid " 
                           "16r7475"    16r0000 " invalid " 
                           "16r7476"    16r6076 " <CJK> " 
                           "16r7477"    16r0000 " invalid " 
                           "16r7478"    16r0000 " invalid " 
                           "16r7479"    16r0000 " invalid " 
                           "16r747A"    16r0000 " invalid " 
                           "16r747B"    16r0000 " invalid " 
                           "16r747C"    16r0000 " invalid " 
                           "16r747D"    16r0000 " invalid " 
                           "16r747E"    16r6077 " <CJK> " 
                           "16r747F"    16r0000 " invalid " 
                           "16r7480"    16r0000 " invalid " 
                           "16r7481"    16r0000 " invalid " 
                           "16r7482"    16r0000 " invalid " 
                           "16r7483"    16r4D7E " <CJK> " 
                           "16r7484"    16r0000 " invalid " 
                           "16r7485"    16r0000 " invalid " 
                           "16r7486"    16r0000 " invalid " 
                           "16r7487"    16r0000 " invalid " 
                           "16r7488"    16r0000 " invalid " 
                           "16r7489"    16r0000 " invalid " 
                           "16r748A"    16r0000 " invalid " 
                           "16r748B"    16r6078 " <CJK> " 
                           "16r748C"    16r0000 " invalid " 
                           "16r748D"    16r0000 " invalid " 
                           "16r748E"    16r0000 " invalid " 
                           "16r748F"    16r0000 " invalid " 
                           "16r7490"    16r0000 " invalid " 
                           "16r7491"    16r0000 " invalid " 
                           "16r7492"    16r0000 " invalid " 
                           "16r7493"    16r0000 " invalid " 
                           "16r7494"    16r0000 " invalid " 
                           "16r7495"    16r0000 " invalid " 
                           "16r7496"    16r0000 " invalid " 
                           "16r7497"    16r0000 " invalid " 
                           "16r7498"    16r0000 " invalid " 
                           "16r7499"    16r0000 " invalid " 
                           "16r749A"    16r0000 " invalid " 
                           "16r749B"    16r0000 " invalid " 
                           "16r749C"    16r0000 " invalid " 
                           "16r749D"    16r0000 " invalid " 
                           "16r749E"    16r6079 " <CJK> " 
                           "16r749F"    16r0000 " invalid " 
                           "16r74A0"    16r0000 " invalid " 
                           "16r74A1"    16r0000 " invalid " 
                           "16r74A2"    16r6065 " <CJK> " 
                           "16r74A3"    16r0000 " invalid " 
                           "16r74A4"    16r0000 " invalid " 
                           "16r74A5"    16r0000 " invalid " 
                           "16r74A6"    16r0000 " invalid " 
                           "16r74A7"    16r607A " <CJK> " 
                           "16r74A8"    16r0000 " invalid " 
                           "16r74A9"    16r0000 " invalid " 
                           "16r74AA"    16r0000 " invalid " 
                           "16r74AB"    16r0000 " invalid " 
                           "16r74AC"    16r0000 " invalid " 
                           "16r74AD"    16r0000 " invalid " 
                           "16r74AE"    16r0000 " invalid " 
                           "16r74AF"    16r0000 " invalid " 
                           "16r74B0"    16r3444 " <CJK> " 
                           "16r74B1"    16r0000 " invalid " 
                           "16r74B2"    16r0000 " invalid " 
                           "16r74B3"    16r0000 " invalid " 
                           "16r74B4"    16r0000 " invalid " 
                           "16r74B5"    16r0000 " invalid " 
                           "16r74B6"    16r0000 " invalid " 
                           "16r74B7"    16r0000 " invalid " 
                           "16r74B8"    16r0000 " invalid " 
                           "16r74B9"    16r0000 " invalid " 
                           "16r74BA"    16r0000 " invalid " 
                           "16r74BB"    16r0000 " invalid " 
                           "16r74BC"    16r0000 " invalid " 
                           "16r74BD"    16r3C25 " <CJK> " 
                           "16r74BE"    16r0000 " invalid " 
                           "16r74BF"    16r0000 " invalid " 
                           "16r74C0"    16r0000 " invalid " 
                           "16r74C1"    16r0000 " invalid " 
                           "16r74C2"    16r0000 " invalid " 
                           "16r74C3"    16r0000 " invalid " 
                           "16r74C4"    16r0000 " invalid " 
                           "16r74C5"    16r0000 " invalid " 
                           "16r74C6"    16r0000 " invalid " 
                           "16r74C7"    16r0000 " invalid " 
                           "16r74C8"    16r0000 " invalid " 
                           "16r74C9"    16r0000 " invalid " 
                           "16r74CA"    16r607B " <CJK> " 
                           "16r74CB"    16r0000 " invalid " 
                           "16r74CC"    16r0000 " invalid " 
                           "16r74CD"    16r0000 " invalid " 
                           "16r74CE"    16r0000 " invalid " 
                           "16r74CF"    16r607C " <CJK> " 
                           "16r74D0"    16r0000 " invalid " 
                           "16r74D1"    16r0000 " invalid " 
                           "16r74D2"    16r0000 " invalid " 
                           "16r74D3"    16r0000 " invalid " 
                           "16r74D4"    16r607D " <CJK> " 
                           "16r74D5"    16r0000 " invalid " 
                           "16r74D6"    16r0000 " invalid " 
                           "16r74D7"    16r0000 " invalid " 
                           "16r74D8"    16r0000 " invalid " 
                           "16r74D9"    16r0000 " invalid " 
                           "16r74DA"    16r0000 " invalid " 
                           "16r74DB"    16r0000 " invalid " 
                           "16r74DC"    16r313B " <CJK> " 
                           "16r74DD"    16r0000 " invalid " 
                           "16r74DE"    16r0000 " invalid " 
                           "16r74DF"    16r0000 " invalid " 
                           "16r74E0"    16r6121 " <CJK> " 
                           "16r74E1"    16r0000 " invalid " 
                           "16r74E2"    16r493B " <CJK> " 
                           "16r74E3"    16r6122 " <CJK> " 
                           "16r74E4"    16r0000 " invalid " 
                           "16r74E5"    16r0000 " invalid " 
                           "16r74E6"    16r3424 " <CJK> " 
                           "16r74E7"    16r6123 " <CJK> " 
                           "16r74E8"    16r0000 " invalid " 
                           "16r74E9"    16r6124 " <CJK> " 
                           "16r74EA"    16r0000 " invalid " 
                           "16r74EB"    16r0000 " invalid " 
                           "16r74EC"    16r0000 " invalid " 
                           "16r74ED"    16r0000 " invalid " 
                           "16r74EE"    16r6125 " <CJK> " 
                           "16r74EF"    16r0000 " invalid " 
                           "16r74F0"    16r6127 " <CJK> " 
                           "16r74F1"    16r6128 " <CJK> " 
                           "16r74F2"    16r6126 " <CJK> " 
                           "16r74F3"    16r0000 " invalid " 
                           "16r74F4"    16r0000 " invalid " 
                           "16r74F5"    16r0000 " invalid " 
                           "16r74F6"    16r4953 " <CJK> " 
                           "16r74F7"    16r612A " <CJK> " 
                           "16r74F8"    16r6129 " <CJK> " 
                           "16r74F9"    16r0000 " invalid " 
                           "16r74FA"    16r0000 " invalid " 
                           "16r74FB"    16r0000 " invalid " 
                           "16r74FC"    16r0000 " invalid " 
                           "16r74FD"    16r0000 " invalid " 
                           "16r74FE"    16r0000 " invalid " 
                           "16r74FF"    16r0000 " invalid " 
                           "16r7500"    16r0000 " invalid " 
                           "16r7501"    16r0000 " invalid " 
                           "16r7502"    16r0000 " invalid " 
                           "16r7503"    16r612C " <CJK> " 
                           "16r7504"    16r612B " <CJK> " 
                           "16r7505"    16r612D " <CJK> " 
                           "16r7506"    16r0000 " invalid " 
                           "16r7507"    16r0000 " invalid " 
                           "16r7508"    16r0000 " invalid " 
                           "16r7509"    16r0000 " invalid " 
                           "16r750A"    16r0000 " invalid " 
                           "16r750B"    16r0000 " invalid " 
                           "16r750C"    16r612E " <CJK> " 
                           "16r750D"    16r6130 " <CJK> " 
                           "16r750E"    16r612F " <CJK> " 
                           "16r750F"    16r0000 " invalid " 
                           "16r7510"    16r0000 " invalid " 
                           "16r7511"    16r3979 " <CJK> " 
                           "16r7512"    16r0000 " invalid " 
                           "16r7513"    16r6132 " <CJK> " 
                           "16r7514"    16r0000 " invalid " 
                           "16r7515"    16r6131 " <CJK> " 
                           "16r7516"    16r0000 " invalid " 
                           "16r7517"    16r0000 " invalid " 
                           "16r7518"    16r3445 " <CJK> " 
                           "16r7519"    16r0000 " invalid " 
                           "16r751A"    16r3F53 " <CJK> " 
                           "16r751B"    16r0000 " invalid " 
                           "16r751C"    16r453C " <CJK> " 
                           "16r751D"    16r0000 " invalid " 
                           "16r751E"    16r6133 " <CJK> " 
                           "16r751F"    16r4038 " <CJK> " 
                           "16r7520"    16r0000 " invalid " 
                           "16r7521"    16r0000 " invalid " 
                           "16r7522"    16r0000 " invalid " 
                           "16r7523"    16r3B3A " <CJK> " 
                           "16r7524"    16r0000 " invalid " 
                           "16r7525"    16r3179 " <CJK> " 
                           "16r7526"    16r6134 " <CJK> " 
                           "16r7527"    16r0000 " invalid " 
                           "16r7528"    16r4D51 " <CJK> " 
                           "16r7529"    16r0000 " invalid " 
                           "16r752A"    16r0000 " invalid " 
                           "16r752B"    16r4A63 " <CJK> " 
                           "16r752C"    16r6135 " <CJK> " 
                           "16r752D"    16r0000 " invalid " 
                           "16r752E"    16r0000 " invalid " 
                           "16r752F"    16r0000 " invalid " 
                           "16r7530"    16r4544 " <CJK> " 
                           "16r7531"    16r4D33 " <CJK> " 
                           "16r7532"    16r3943 " <CJK> " 
                           "16r7533"    16r3F3D " <CJK> " 
                           "16r7534"    16r0000 " invalid " 
                           "16r7535"    16r0000 " invalid " 
                           "16r7536"    16r0000 " invalid " 
                           "16r7537"    16r434B " <CJK> " 
                           "16r7538"    16r5234 " <CJK> " 
                           "16r7539"    16r0000 " invalid " 
                           "16r753A"    16r442E " <CJK> " 
                           "16r753B"    16r3268 " <CJK> " 
                           "16r753C"    16r6136 " <CJK> " 
                           "16r753D"    16r0000 " invalid " 
                           "16r753E"    16r0000 " invalid " 
                           "16r753F"    16r0000 " invalid " 
                           "16r7540"    16r0000 " invalid " 
                           "16r7541"    16r0000 " invalid " 
                           "16r7542"    16r0000 " invalid " 
                           "16r7543"    16r0000 " invalid " 
                           "16r7544"    16r6137 " <CJK> " 
                           "16r7545"    16r0000 " invalid " 
                           "16r7546"    16r613C " <CJK> " 
                           "16r7547"    16r0000 " invalid " 
                           "16r7548"    16r0000 " invalid " 
                           "16r7549"    16r613A " <CJK> " 
                           "16r754A"    16r6139 " <CJK> " 
                           "16r754B"    16r5A42 " <CJK> " 
                           "16r754C"    16r3326 " <CJK> " 
                           "16r754D"    16r6138 " <CJK> " 
                           "16r754E"    16r0000 " invalid " 
                           "16r754F"    16r305A " <CJK> " 
                           "16r7550"    16r0000 " invalid " 
                           "16r7551"    16r482A " <CJK> " 
                           "16r7552"    16r0000 " invalid " 
                           "16r7553"    16r0000 " invalid " 
                           "16r7554"    16r484A " <CJK> " 
                           "16r7555"    16r0000 " invalid " 
                           "16r7556"    16r0000 " invalid " 
                           "16r7557"    16r0000 " invalid " 
                           "16r7558"    16r0000 " invalid " 
                           "16r7559"    16r4E31 " <CJK> " 
                           "16r755A"    16r613D " <CJK> " 
                           "16r755B"    16r613B " <CJK> " 
                           "16r755C"    16r435C " <CJK> " 
                           "16r755D"    16r4026 " <CJK> " 
                           "16r755E"    16r0000 " invalid " 
                           "16r755F"    16r0000 " invalid " 
                           "16r7560"    16r482B " <CJK> " 
                           "16r7561"    16r0000 " invalid " 
                           "16r7562"    16r492D " <CJK> " 
                           "16r7563"    16r0000 " invalid " 
                           "16r7564"    16r613F " <CJK> " 
                           "16r7565"    16r4E2C " <CJK> " 
                           "16r7566"    16r374D " <CJK> " 
                           "16r7567"    16r6140 " <CJK> " 
                           "16r7568"    16r0000 " invalid " 
                           "16r7569"    16r613E " <CJK> " 
                           "16r756A"    16r4856 " <CJK> " 
                           "16r756B"    16r6141 " <CJK> " 
                           "16r756C"    16r0000 " invalid " 
                           "16r756D"    16r6142 " <CJK> " 
                           "16r756E"    16r0000 " invalid " 
                           "16r756F"    16r0000 " invalid " 
                           "16r7570"    16r305B " <CJK> " 
                           "16r7571"    16r0000 " invalid " 
                           "16r7572"    16r0000 " invalid " 
                           "16r7573"    16r3E76 " <CJK> " 
                           "16r7574"    16r6147 " <CJK> " 
                           "16r7575"    16r0000 " invalid " 
                           "16r7576"    16r6144 " <CJK> " 
                           "16r7577"    16r466D " <CJK> " 
                           "16r7578"    16r6143 " <CJK> " 
                           "16r7579"    16r0000 " invalid " 
                           "16r757A"    16r0000 " invalid " 
                           "16r757B"    16r0000 " invalid " 
                           "16r757C"    16r0000 " invalid " 
                           "16r757D"    16r0000 " invalid " 
                           "16r757E"    16r0000 " invalid " 
                           "16r757F"    16r3526 " <CJK> " 
                           "16r7580"    16r0000 " invalid " 
                           "16r7581"    16r0000 " invalid " 
                           "16r7582"    16r614A " <CJK> " 
                           "16r7583"    16r0000 " invalid " 
                           "16r7584"    16r0000 " invalid " 
                           "16r7585"    16r0000 " invalid " 
                           "16r7586"    16r6145 " <CJK> " 
                           "16r7587"    16r6146 " <CJK> " 
                           "16r7588"    16r0000 " invalid " 
                           "16r7589"    16r6149 " <CJK> " 
                           "16r758A"    16r6148 " <CJK> " 
                           "16r758B"    16r4925 " <CJK> " 
                           "16r758C"    16r0000 " invalid " 
                           "16r758D"    16r0000 " invalid " 
                           "16r758E"    16r4142 " <CJK> " 
                           "16r758F"    16r4141 " <CJK> " 
                           "16r7590"    16r0000 " invalid " 
                           "16r7591"    16r353F " <CJK> " 
                           "16r7592"    16r0000 " invalid " 
                           "16r7593"    16r0000 " invalid " 
                           "16r7594"    16r614B " <CJK> " 
                           "16r7595"    16r0000 " invalid " 
                           "16r7596"    16r0000 " invalid " 
                           "16r7597"    16r0000 " invalid " 
                           "16r7598"    16r0000 " invalid " 
                           "16r7599"    16r0000 " invalid " 
                           "16r759A"    16r614C " <CJK> " 
                           "16r759B"    16r0000 " invalid " 
                           "16r759C"    16r0000 " invalid " 
                           "16r759D"    16r614D " <CJK> " 
                           "16r759E"    16r0000 " invalid " 
                           "16r759F"    16r0000 " invalid " 
                           "16r75A0"    16r0000 " invalid " 
                           "16r75A1"    16r0000 " invalid " 
                           "16r75A2"    16r0000 " invalid " 
                           "16r75A3"    16r614F " <CJK> " 
                           "16r75A4"    16r0000 " invalid " 
                           "16r75A5"    16r614E " <CJK> " 
                           "16r75A6"    16r0000 " invalid " 
                           "16r75A7"    16r0000 " invalid " 
                           "16r75A8"    16r0000 " invalid " 
                           "16r75A9"    16r0000 " invalid " 
                           "16r75AA"    16r0000 " invalid " 
                           "16r75AB"    16r3156 " <CJK> " 
                           "16r75AC"    16r0000 " invalid " 
                           "16r75AD"    16r0000 " invalid " 
                           "16r75AE"    16r0000 " invalid " 
                           "16r75AF"    16r0000 " invalid " 
                           "16r75B0"    16r0000 " invalid " 
                           "16r75B1"    16r6157 " <CJK> " 
                           "16r75B2"    16r4868 " <CJK> " 
                           "16r75B3"    16r6151 " <CJK> " 
                           "16r75B4"    16r0000 " invalid " 
                           "16r75B5"    16r6153 " <CJK> " 
                           "16r75B6"    16r0000 " invalid " 
                           "16r75B7"    16r0000 " invalid " 
                           "16r75B8"    16r6155 " <CJK> " 
                           "16r75B9"    16r3F3E " <CJK> " 
                           "16r75BA"    16r0000 " invalid " 
                           "16r75BB"    16r0000 " invalid " 
                           "16r75BC"    16r6156 " <CJK> " 
                           "16r75BD"    16r6154 " <CJK> " 
                           "16r75BE"    16r3C40 " <CJK> " 
                           "16r75BF"    16r0000 " invalid " 
                           "16r75C0"    16r0000 " invalid " 
                           "16r75C1"    16r0000 " invalid " 
                           "16r75C2"    16r6150 " <CJK> " 
                           "16r75C3"    16r6152 " <CJK> " 
                           "16r75C4"    16r0000 " invalid " 
                           "16r75C5"    16r4942 " <CJK> " 
                           "16r75C6"    16r0000 " invalid " 
                           "16r75C7"    16r3E49 " <CJK> " 
                           "16r75C8"    16r0000 " invalid " 
                           "16r75C9"    16r0000 " invalid " 
                           "16r75CA"    16r6159 " <CJK> " 
                           "16r75CB"    16r0000 " invalid " 
                           "16r75CC"    16r0000 " invalid " 
                           "16r75CD"    16r6158 " <CJK> " 
                           "16r75CE"    16r0000 " invalid " 
                           "16r75CF"    16r0000 " invalid " 
                           "16r75D0"    16r0000 " invalid " 
                           "16r75D1"    16r0000 " invalid " 
                           "16r75D2"    16r615A " <CJK> " 
                           "16r75D3"    16r0000 " invalid " 
                           "16r75D4"    16r3C26 " <CJK> " 
                           "16r75D5"    16r3A2F " <CJK> " 
                           "16r75D6"    16r0000 " invalid " 
                           "16r75D7"    16r0000 " invalid " 
                           "16r75D8"    16r4577 " <CJK> " 
                           "16r75D9"    16r615B " <CJK> " 
                           "16r75DA"    16r0000 " invalid " 
                           "16r75DB"    16r444B " <CJK> " 
                           "16r75DC"    16r0000 " invalid " 
                           "16r75DD"    16r0000 " invalid " 
                           "16r75DE"    16r615D " <CJK> " 
                           "16r75DF"    16r0000 " invalid " 
                           "16r75E0"    16r0000 " invalid " 
                           "16r75E1"    16r0000 " invalid " 
                           "16r75E2"    16r4E21 " <CJK> " 
                           "16r75E3"    16r615C " <CJK> " 
                           "16r75E4"    16r0000 " invalid " 
                           "16r75E5"    16r0000 " invalid " 
                           "16r75E6"    16r0000 " invalid " 
                           "16r75E7"    16r0000 " invalid " 
                           "16r75E8"    16r0000 " invalid " 
                           "16r75E9"    16r4169 " <CJK> " 
                           "16r75EA"    16r0000 " invalid " 
                           "16r75EB"    16r0000 " invalid " 
                           "16r75EC"    16r0000 " invalid " 
                           "16r75ED"    16r0000 " invalid " 
                           "16r75EE"    16r0000 " invalid " 
                           "16r75EF"    16r0000 " invalid " 
                           "16r75F0"    16r6162 " <CJK> " 
                           "16r75F1"    16r0000 " invalid " 
                           "16r75F2"    16r6164 " <CJK> " 
                           "16r75F3"    16r6165 " <CJK> " 
                           "16r75F4"    16r4354 " <CJK> " 
                           "16r75F5"    16r0000 " invalid " 
                           "16r75F6"    16r0000 " invalid " 
                           "16r75F7"    16r0000 " invalid " 
                           "16r75F8"    16r0000 " invalid " 
                           "16r75F9"    16r0000 " invalid " 
                           "16r75FA"    16r6163 " <CJK> " 
                           "16r75FB"    16r0000 " invalid " 
                           "16r75FC"    16r6160 " <CJK> " 
                           "16r75FD"    16r0000 " invalid " 
                           "16r75FE"    16r615E " <CJK> " 
                           "16r75FF"    16r615F " <CJK> " 
                           "16r7600"    16r0000 " invalid " 
                           "16r7601"    16r6161 " <CJK> " 
                           "16r7602"    16r0000 " invalid " 
                           "16r7603"    16r0000 " invalid " 
                           "16r7604"    16r0000 " invalid " 
                           "16r7605"    16r0000 " invalid " 
                           "16r7606"    16r0000 " invalid " 
                           "16r7607"    16r0000 " invalid " 
                           "16r7608"    16r0000 " invalid " 
                           "16r7609"    16r6168 " <CJK> " 
                           "16r760A"    16r0000 " invalid " 
                           "16r760B"    16r6166 " <CJK> " 
                           "16r760C"    16r0000 " invalid " 
                           "16r760D"    16r6167 " <CJK> " 
                           "16r760E"    16r0000 " invalid " 
                           "16r760F"    16r0000 " invalid " 
                           "16r7610"    16r0000 " invalid " 
                           "16r7611"    16r0000 " invalid " 
                           "16r7612"    16r0000 " invalid " 
                           "16r7613"    16r0000 " invalid " 
                           "16r7614"    16r0000 " invalid " 
                           "16r7615"    16r0000 " invalid " 
                           "16r7616"    16r0000 " invalid " 
                           "16r7617"    16r0000 " invalid " 
                           "16r7618"    16r0000 " invalid " 
                           "16r7619"    16r0000 " invalid " 
                           "16r761A"    16r0000 " invalid " 
                           "16r761B"    16r0000 " invalid " 
                           "16r761C"    16r0000 " invalid " 
                           "16r761D"    16r0000 " invalid " 
                           "16r761E"    16r0000 " invalid " 
                           "16r761F"    16r6169 " <CJK> " 
                           "16r7620"    16r616B " <CJK> " 
                           "16r7621"    16r616C " <CJK> " 
                           "16r7622"    16r616D " <CJK> " 
                           "16r7623"    16r0000 " invalid " 
                           "16r7624"    16r616E " <CJK> " 
                           "16r7625"    16r0000 " invalid " 
                           "16r7626"    16r0000 " invalid " 
                           "16r7627"    16r616A " <CJK> " 
                           "16r7628"    16r0000 " invalid " 
                           "16r7629"    16r0000 " invalid " 
                           "16r762A"    16r0000 " invalid " 
                           "16r762B"    16r0000 " invalid " 
                           "16r762C"    16r0000 " invalid " 
                           "16r762D"    16r0000 " invalid " 
                           "16r762E"    16r0000 " invalid " 
                           "16r762F"    16r0000 " invalid " 
                           "16r7630"    16r6170 " <CJK> " 
                           "16r7631"    16r0000 " invalid " 
                           "16r7632"    16r0000 " invalid " 
                           "16r7633"    16r0000 " invalid " 
                           "16r7634"    16r616F " <CJK> " 
                           "16r7635"    16r0000 " invalid " 
                           "16r7636"    16r0000 " invalid " 
                           "16r7637"    16r0000 " invalid " 
                           "16r7638"    16r0000 " invalid " 
                           "16r7639"    16r0000 " invalid " 
                           "16r763A"    16r0000 " invalid " 
                           "16r763B"    16r6171 " <CJK> " 
                           "16r763C"    16r0000 " invalid " 
                           "16r763D"    16r0000 " invalid " 
                           "16r763E"    16r0000 " invalid " 
                           "16r763F"    16r0000 " invalid " 
                           "16r7640"    16r0000 " invalid " 
                           "16r7641"    16r0000 " invalid " 
                           "16r7642"    16r4E45 " <CJK> " 
                           "16r7643"    16r0000 " invalid " 
                           "16r7644"    16r0000 " invalid " 
                           "16r7645"    16r0000 " invalid " 
                           "16r7646"    16r6174 " <CJK> " 
                           "16r7647"    16r6172 " <CJK> " 
                           "16r7648"    16r6173 " <CJK> " 
                           "16r7649"    16r0000 " invalid " 
                           "16r764A"    16r0000 " invalid " 
                           "16r764B"    16r0000 " invalid " 
                           "16r764C"    16r3462 " <CJK> " 
                           "16r764D"    16r0000 " invalid " 
                           "16r764E"    16r0000 " invalid " 
                           "16r764F"    16r0000 " invalid " 
                           "16r7650"    16r0000 " invalid " 
                           "16r7651"    16r0000 " invalid " 
                           "16r7652"    16r4C7E " <CJK> " 
                           "16r7653"    16r0000 " invalid " 
                           "16r7654"    16r0000 " invalid " 
                           "16r7655"    16r0000 " invalid " 
                           "16r7656"    16r4A4A " <CJK> " 
                           "16r7657"    16r0000 " invalid " 
                           "16r7658"    16r6176 " <CJK> " 
                           "16r7659"    16r0000 " invalid " 
                           "16r765A"    16r0000 " invalid " 
                           "16r765B"    16r0000 " invalid " 
                           "16r765C"    16r6175 " <CJK> " 
                           "16r765D"    16r0000 " invalid " 
                           "16r765E"    16r0000 " invalid " 
                           "16r765F"    16r0000 " invalid " 
                           "16r7660"    16r0000 " invalid " 
                           "16r7661"    16r6177 " <CJK> " 
                           "16r7662"    16r6178 " <CJK> " 
                           "16r7663"    16r0000 " invalid " 
                           "16r7664"    16r0000 " invalid " 
                           "16r7665"    16r0000 " invalid " 
                           "16r7666"    16r0000 " invalid " 
                           "16r7667"    16r617C " <CJK> " 
                           "16r7668"    16r6179 " <CJK> " 
                           "16r7669"    16r617A " <CJK> " 
                           "16r766A"    16r617B " <CJK> " 
                           "16r766B"    16r0000 " invalid " 
                           "16r766C"    16r617D " <CJK> " 
                           "16r766D"    16r0000 " invalid " 
                           "16r766E"    16r0000 " invalid " 
                           "16r766F"    16r0000 " invalid " 
                           "16r7670"    16r617E " <CJK> " 
                           "16r7671"    16r0000 " invalid " 
                           "16r7672"    16r6221 " <CJK> " 
                           "16r7673"    16r0000 " invalid " 
                           "16r7674"    16r0000 " invalid " 
                           "16r7675"    16r0000 " invalid " 
                           "16r7676"    16r6222 " <CJK> " 
                           "16r7677"    16r0000 " invalid " 
                           "16r7678"    16r6223 " <CJK> " 
                           "16r7679"    16r0000 " invalid " 
                           "16r767A"    16r482F " <CJK> " 
                           "16r767B"    16r4550 " <CJK> " 
                           "16r767C"    16r6224 " <CJK> " 
                           "16r767D"    16r4772 " <CJK> " 
                           "16r767E"    16r4934 " <CJK> " 
                           "16r767F"    16r0000 " invalid " 
                           "16r7680"    16r6225 " <CJK> " 
                           "16r7681"    16r0000 " invalid " 
                           "16r7682"    16r0000 " invalid " 
                           "16r7683"    16r6226 " <CJK> " 
                           "16r7684"    16r452A " <CJK> " 
                           "16r7685"    16r0000 " invalid " 
                           "16r7686"    16r3327 " <CJK> " 
                           "16r7687"    16r3944 " <CJK> " 
                           "16r7688"    16r6227 " <CJK> " 
                           "16r7689"    16r0000 " invalid " 
                           "16r768A"    16r0000 " invalid " 
                           "16r768B"    16r6228 " <CJK> " 
                           "16r768C"    16r0000 " invalid " 
                           "16r768D"    16r0000 " invalid " 
                           "16r768E"    16r6229 " <CJK> " 
                           "16r768F"    16r0000 " invalid " 
                           "16r7690"    16r3B29 " <CJK> " 
                           "16r7691"    16r0000 " invalid " 
                           "16r7692"    16r0000 " invalid " 
                           "16r7693"    16r622B " <CJK> " 
                           "16r7694"    16r0000 " invalid " 
                           "16r7695"    16r0000 " invalid " 
                           "16r7696"    16r622A " <CJK> " 
                           "16r7697"    16r0000 " invalid " 
                           "16r7698"    16r0000 " invalid " 
                           "16r7699"    16r622C " <CJK> " 
                           "16r769A"    16r622D " <CJK> " 
                           "16r769B"    16r0000 " invalid " 
                           "16r769C"    16r0000 " invalid " 
                           "16r769D"    16r0000 " invalid " 
                           "16r769E"    16r0000 " invalid " 
                           "16r769F"    16r0000 " invalid " 
                           "16r76A0"    16r0000 " invalid " 
                           "16r76A1"    16r0000 " invalid " 
                           "16r76A2"    16r0000 " invalid " 
                           "16r76A3"    16r0000 " invalid " 
                           "16r76A4"    16r0000 " invalid " 
                           "16r76A5"    16r0000 " invalid " 
                           "16r76A6"    16r0000 " invalid " 
                           "16r76A7"    16r0000 " invalid " 
                           "16r76A8"    16r0000 " invalid " 
                           "16r76A9"    16r0000 " invalid " 
                           "16r76AA"    16r0000 " invalid " 
                           "16r76AB"    16r0000 " invalid " 
                           "16r76AC"    16r0000 " invalid " 
                           "16r76AD"    16r0000 " invalid " 
                           "16r76AE"    16r4869 " <CJK> " 
                           "16r76AF"    16r0000 " invalid " 
                           "16r76B0"    16r622E " <CJK> " 
                           "16r76B1"    16r0000 " invalid " 
                           "16r76B2"    16r0000 " invalid " 
                           "16r76B3"    16r0000 " invalid " 
                           "16r76B4"    16r622F " <CJK> " 
                           "16r76B5"    16r0000 " invalid " 
                           "16r76B6"    16r0000 " invalid " 
                           "16r76B7"    16r7369 " <CJK> " 
                           "16r76B8"    16r6230 " <CJK> " 
                           "16r76B9"    16r6231 " <CJK> " 
                           "16r76BA"    16r6232 " <CJK> " 
                           "16r76BB"    16r0000 " invalid " 
                           "16r76BC"    16r0000 " invalid " 
                           "16r76BD"    16r0000 " invalid " 
                           "16r76BE"    16r0000 " invalid " 
                           "16r76BF"    16r3B2E " <CJK> " 
                           "16r76C0"    16r0000 " invalid " 
                           "16r76C1"    16r0000 " invalid " 
                           "16r76C2"    16r6233 " <CJK> " 
                           "16r76C3"    16r4756 " <CJK> " 
                           "16r76C4"    16r0000 " invalid " 
                           "16r76C5"    16r0000 " invalid " 
                           "16r76C6"    16r4B5F " <CJK> " 
                           "16r76C7"    16r0000 " invalid " 
                           "16r76C8"    16r314E " <CJK> " 
                           "16r76C9"    16r0000 " invalid " 
                           "16r76CA"    16r3157 " <CJK> " 
                           "16r76CB"    16r0000 " invalid " 
                           "16r76CC"    16r0000 " invalid " 
                           "16r76CD"    16r6234 " <CJK> " 
                           "16r76CE"    16r0000 " invalid " 
                           "16r76CF"    16r0000 " invalid " 
                           "16r76D0"    16r0000 " invalid " 
                           "16r76D1"    16r0000 " invalid " 
                           "16r76D2"    16r6236 " <CJK> " 
                           "16r76D3"    16r0000 " invalid " 
                           "16r76D4"    16r0000 " invalid " 
                           "16r76D5"    16r0000 " invalid " 
                           "16r76D6"    16r6235 " <CJK> " 
                           "16r76D7"    16r4570 " <CJK> " 
                           "16r76D8"    16r0000 " invalid " 
                           "16r76D9"    16r0000 " invalid " 
                           "16r76DA"    16r0000 " invalid " 
                           "16r76DB"    16r4039 " <CJK> " 
                           "16r76DC"    16r5D39 " <CJK> " 
                           "16r76DD"    16r0000 " invalid " 
                           "16r76DE"    16r6237 " <CJK> " 
                           "16r76DF"    16r4C41 " <CJK> " 
                           "16r76E0"    16r0000 " invalid " 
                           "16r76E1"    16r6238 " <CJK> " 
                           "16r76E2"    16r0000 " invalid " 
                           "16r76E3"    16r3446 " <CJK> " 
                           "16r76E4"    16r4857 " <CJK> " 
                           "16r76E5"    16r6239 " <CJK> " 
                           "16r76E6"    16r0000 " invalid " 
                           "16r76E7"    16r623A " <CJK> " 
                           "16r76E8"    16r0000 " invalid " 
                           "16r76E9"    16r0000 " invalid " 
                           "16r76EA"    16r623B " <CJK> " 
                           "16r76EB"    16r0000 " invalid " 
                           "16r76EC"    16r0000 " invalid " 
                           "16r76ED"    16r0000 " invalid " 
                           "16r76EE"    16r4C5C " <CJK> " 
                           "16r76EF"    16r0000 " invalid " 
                           "16r76F0"    16r0000 " invalid " 
                           "16r76F1"    16r0000 " invalid " 
                           "16r76F2"    16r4C55 " <CJK> " 
                           "16r76F3"    16r0000 " invalid " 
                           "16r76F4"    16r443E " <CJK> " 
                           "16r76F5"    16r0000 " invalid " 
                           "16r76F6"    16r0000 " invalid " 
                           "16r76F7"    16r0000 " invalid " 
                           "16r76F8"    16r416A " <CJK> " 
                           "16r76F9"    16r0000 " invalid " 
                           "16r76FA"    16r0000 " invalid " 
                           "16r76FB"    16r623D " <CJK> " 
                           "16r76FC"    16r0000 " invalid " 
                           "16r76FD"    16r0000 " invalid " 
                           "16r76FE"    16r3D62 " <CJK> " 
                           "16r76FF"    16r0000 " invalid " 
                           "16r7700"    16r0000 " invalid " 
                           "16r7701"    16r3E4A " <CJK> " 
                           "16r7702"    16r0000 " invalid " 
                           "16r7703"    16r0000 " invalid " 
                           "16r7704"    16r6240 " <CJK> " 
                           "16r7705"    16r0000 " invalid " 
                           "16r7706"    16r0000 " invalid " 
                           "16r7707"    16r623F " <CJK> " 
                           "16r7708"    16r623E " <CJK> " 
                           "16r7709"    16r487D " <CJK> " 
                           "16r770A"    16r0000 " invalid " 
                           "16r770B"    16r3447 " <CJK> " 
                           "16r770C"    16r3829 " <CJK> " 
                           "16r770D"    16r0000 " invalid " 
                           "16r770E"    16r0000 " invalid " 
                           "16r770F"    16r0000 " invalid " 
                           "16r7710"    16r0000 " invalid " 
                           "16r7711"    16r0000 " invalid " 
                           "16r7712"    16r0000 " invalid " 
                           "16r7713"    16r0000 " invalid " 
                           "16r7714"    16r0000 " invalid " 
                           "16r7715"    16r0000 " invalid " 
                           "16r7716"    16r0000 " invalid " 
                           "16r7717"    16r0000 " invalid " 
                           "16r7718"    16r0000 " invalid " 
                           "16r7719"    16r0000 " invalid " 
                           "16r771A"    16r0000 " invalid " 
                           "16r771B"    16r6246 " <CJK> " 
                           "16r771C"    16r0000 " invalid " 
                           "16r771D"    16r0000 " invalid " 
                           "16r771E"    16r6243 " <CJK> " 
                           "16r771F"    16r3F3F " <CJK> " 
                           "16r7720"    16r4C32 " <CJK> " 
                           "16r7721"    16r0000 " invalid " 
                           "16r7722"    16r0000 " invalid " 
                           "16r7723"    16r0000 " invalid " 
                           "16r7724"    16r6242 " <CJK> " 
                           "16r7725"    16r6244 " <CJK> " 
                           "16r7726"    16r6245 " <CJK> " 
                           "16r7727"    16r0000 " invalid " 
                           "16r7728"    16r0000 " invalid " 
                           "16r7729"    16r6241 " <CJK> " 
                           "16r772A"    16r0000 " invalid " 
                           "16r772B"    16r0000 " invalid " 
                           "16r772C"    16r0000 " invalid " 
                           "16r772D"    16r0000 " invalid " 
                           "16r772E"    16r0000 " invalid " 
                           "16r772F"    16r0000 " invalid " 
                           "16r7730"    16r0000 " invalid " 
                           "16r7731"    16r0000 " invalid " 
                           "16r7732"    16r0000 " invalid " 
                           "16r7733"    16r0000 " invalid " 
                           "16r7734"    16r0000 " invalid " 
                           "16r7735"    16r0000 " invalid " 
                           "16r7736"    16r0000 " invalid " 
                           "16r7737"    16r6247 " <CJK> " 
                           "16r7738"    16r6248 " <CJK> " 
                           "16r7739"    16r0000 " invalid " 
                           "16r773A"    16r442F " <CJK> " 
                           "16r773B"    16r0000 " invalid " 
                           "16r773C"    16r3463 " <CJK> " 
                           "16r773D"    16r0000 " invalid " 
                           "16r773E"    16r0000 " invalid " 
                           "16r773F"    16r0000 " invalid " 
                           "16r7740"    16r4365 " <CJK> " 
                           "16r7741"    16r0000 " invalid " 
                           "16r7742"    16r0000 " invalid " 
                           "16r7743"    16r0000 " invalid " 
                           "16r7744"    16r0000 " invalid " 
                           "16r7745"    16r0000 " invalid " 
                           "16r7746"    16r0000 " invalid " 
                           "16r7747"    16r6249 " <CJK> " 
                           "16r7748"    16r0000 " invalid " 
                           "16r7749"    16r0000 " invalid " 
                           "16r774A"    16r0000 " invalid " 
                           "16r774B"    16r0000 " invalid " 
                           "16r774C"    16r0000 " invalid " 
                           "16r774D"    16r0000 " invalid " 
                           "16r774E"    16r0000 " invalid " 
                           "16r774F"    16r0000 " invalid " 
                           "16r7750"    16r0000 " invalid " 
                           "16r7751"    16r0000 " invalid " 
                           "16r7752"    16r0000 " invalid " 
                           "16r7753"    16r0000 " invalid " 
                           "16r7754"    16r0000 " invalid " 
                           "16r7755"    16r0000 " invalid " 
                           "16r7756"    16r0000 " invalid " 
                           "16r7757"    16r0000 " invalid " 
                           "16r7758"    16r0000 " invalid " 
                           "16r7759"    16r0000 " invalid " 
                           "16r775A"    16r624A " <CJK> " 
                           "16r775B"    16r624D " <CJK> " 
                           "16r775C"    16r0000 " invalid " 
                           "16r775D"    16r0000 " invalid " 
                           "16r775E"    16r0000 " invalid " 
                           "16r775F"    16r0000 " invalid " 
                           "16r7760"    16r0000 " invalid " 
                           "16r7761"    16r3F67 " <CJK> " 
                           "16r7762"    16r0000 " invalid " 
                           "16r7763"    16r4644 " <CJK> " 
                           "16r7764"    16r0000 " invalid " 
                           "16r7765"    16r624E " <CJK> " 
                           "16r7766"    16r4B53 " <CJK> " 
                           "16r7767"    16r0000 " invalid " 
                           "16r7768"    16r624B " <CJK> " 
                           "16r7769"    16r0000 " invalid " 
                           "16r776A"    16r0000 " invalid " 
                           "16r776B"    16r624C " <CJK> " 
                           "16r776C"    16r0000 " invalid " 
                           "16r776D"    16r0000 " invalid " 
                           "16r776E"    16r0000 " invalid " 
                           "16r776F"    16r0000 " invalid " 
                           "16r7770"    16r0000 " invalid " 
                           "16r7771"    16r0000 " invalid " 
                           "16r7772"    16r0000 " invalid " 
                           "16r7773"    16r0000 " invalid " 
                           "16r7774"    16r0000 " invalid " 
                           "16r7775"    16r0000 " invalid " 
                           "16r7776"    16r0000 " invalid " 
                           "16r7777"    16r0000 " invalid " 
                           "16r7778"    16r0000 " invalid " 
                           "16r7779"    16r6251 " <CJK> " 
                           "16r777A"    16r0000 " invalid " 
                           "16r777B"    16r0000 " invalid " 
                           "16r777C"    16r0000 " invalid " 
                           "16r777D"    16r0000 " invalid " 
                           "16r777E"    16r6250 " <CJK> " 
                           "16r777F"    16r624F " <CJK> " 
                           "16r7780"    16r0000 " invalid " 
                           "16r7781"    16r0000 " invalid " 
                           "16r7782"    16r0000 " invalid " 
                           "16r7783"    16r0000 " invalid " 
                           "16r7784"    16r0000 " invalid " 
                           "16r7785"    16r0000 " invalid " 
                           "16r7786"    16r0000 " invalid " 
                           "16r7787"    16r0000 " invalid " 
                           "16r7788"    16r0000 " invalid " 
                           "16r7789"    16r0000 " invalid " 
                           "16r778A"    16r0000 " invalid " 
                           "16r778B"    16r6253 " <CJK> " 
                           "16r778C"    16r0000 " invalid " 
                           "16r778D"    16r0000 " invalid " 
                           "16r778E"    16r6252 " <CJK> " 
                           "16r778F"    16r0000 " invalid " 
                           "16r7790"    16r0000 " invalid " 
                           "16r7791"    16r6254 " <CJK> " 
                           "16r7792"    16r0000 " invalid " 
                           "16r7793"    16r0000 " invalid " 
                           "16r7794"    16r0000 " invalid " 
                           "16r7795"    16r0000 " invalid " 
                           "16r7796"    16r0000 " invalid " 
                           "16r7797"    16r0000 " invalid " 
                           "16r7798"    16r0000 " invalid " 
                           "16r7799"    16r0000 " invalid " 
                           "16r779A"    16r0000 " invalid " 
                           "16r779B"    16r0000 " invalid " 
                           "16r779C"    16r0000 " invalid " 
                           "16r779D"    16r0000 " invalid " 
                           "16r779E"    16r6256 " <CJK> " 
                           "16r779F"    16r0000 " invalid " 
                           "16r77A0"    16r6255 " <CJK> " 
                           "16r77A1"    16r0000 " invalid " 
                           "16r77A2"    16r0000 " invalid " 
                           "16r77A3"    16r0000 " invalid " 
                           "16r77A4"    16r0000 " invalid " 
                           "16r77A5"    16r4A4D " <CJK> " 
                           "16r77A6"    16r0000 " invalid " 
                           "16r77A7"    16r0000 " invalid " 
                           "16r77A8"    16r0000 " invalid " 
                           "16r77A9"    16r0000 " invalid " 
                           "16r77AA"    16r0000 " invalid " 
                           "16r77AB"    16r0000 " invalid " 
                           "16r77AC"    16r3D56 " <CJK> " 
                           "16r77AD"    16r4E46 " <CJK> " 
                           "16r77AE"    16r0000 " invalid " 
                           "16r77AF"    16r0000 " invalid " 
                           "16r77B0"    16r6257 " <CJK> " 
                           "16r77B1"    16r0000 " invalid " 
                           "16r77B2"    16r0000 " invalid " 
                           "16r77B3"    16r4637 " <CJK> " 
                           "16r77B4"    16r0000 " invalid " 
                           "16r77B5"    16r0000 " invalid " 
                           "16r77B6"    16r6258 " <CJK> " 
                           "16r77B7"    16r0000 " invalid " 
                           "16r77B8"    16r0000 " invalid " 
                           "16r77B9"    16r6259 " <CJK> " 
                           "16r77BA"    16r0000 " invalid " 
                           "16r77BB"    16r625D " <CJK> " 
                           "16r77BC"    16r625B " <CJK> " 
                           "16r77BD"    16r625C " <CJK> " 
                           "16r77BE"    16r0000 " invalid " 
                           "16r77BF"    16r625A " <CJK> " 
                           "16r77C0"    16r0000 " invalid " 
                           "16r77C1"    16r0000 " invalid " 
                           "16r77C2"    16r0000 " invalid " 
                           "16r77C3"    16r0000 " invalid " 
                           "16r77C4"    16r0000 " invalid " 
                           "16r77C5"    16r0000 " invalid " 
                           "16r77C6"    16r0000 " invalid " 
                           "16r77C7"    16r625E " <CJK> " 
                           "16r77C8"    16r0000 " invalid " 
                           "16r77C9"    16r0000 " invalid " 
                           "16r77CA"    16r0000 " invalid " 
                           "16r77CB"    16r0000 " invalid " 
                           "16r77CC"    16r0000 " invalid " 
                           "16r77CD"    16r625F " <CJK> " 
                           "16r77CE"    16r0000 " invalid " 
                           "16r77CF"    16r0000 " invalid " 
                           "16r77D0"    16r0000 " invalid " 
                           "16r77D1"    16r0000 " invalid " 
                           "16r77D2"    16r0000 " invalid " 
                           "16r77D3"    16r0000 " invalid " 
                           "16r77D4"    16r0000 " invalid " 
                           "16r77D5"    16r0000 " invalid " 
                           "16r77D6"    16r0000 " invalid " 
                           "16r77D7"    16r6260 " <CJK> " 
                           "16r77D8"    16r0000 " invalid " 
                           "16r77D9"    16r0000 " invalid " 
                           "16r77DA"    16r6261 " <CJK> " 
                           "16r77DB"    16r4C37 " <CJK> " 
                           "16r77DC"    16r6262 " <CJK> " 
                           "16r77DD"    16r0000 " invalid " 
                           "16r77DE"    16r0000 " invalid " 
                           "16r77DF"    16r0000 " invalid " 
                           "16r77E0"    16r0000 " invalid " 
                           "16r77E1"    16r0000 " invalid " 
                           "16r77E2"    16r4C70 " <CJK> " 
                           "16r77E3"    16r6263 " <CJK> " 
                           "16r77E4"    16r0000 " invalid " 
                           "16r77E5"    16r434E " <CJK> " 
                           "16r77E6"    16r0000 " invalid " 
                           "16r77E7"    16r476A " <CJK> " 
                           "16r77E8"    16r0000 " invalid " 
                           "16r77E9"    16r366B " <CJK> " 
                           "16r77EA"    16r0000 " invalid " 
                           "16r77EB"    16r0000 " invalid " 
                           "16r77EC"    16r0000 " invalid " 
                           "16r77ED"    16r433B " <CJK> " 
                           "16r77EE"    16r6264 " <CJK> " 
                           "16r77EF"    16r363A " <CJK> " 
                           "16r77F0"    16r0000 " invalid " 
                           "16r77F1"    16r0000 " invalid " 
                           "16r77F2"    16r0000 " invalid " 
                           "16r77F3"    16r4050 " <CJK> " 
                           "16r77F4"    16r0000 " invalid " 
                           "16r77F5"    16r0000 " invalid " 
                           "16r77F6"    16r0000 " invalid " 
                           "16r77F7"    16r0000 " invalid " 
                           "16r77F8"    16r0000 " invalid " 
                           "16r77F9"    16r0000 " invalid " 
                           "16r77FA"    16r0000 " invalid " 
                           "16r77FB"    16r0000 " invalid " 
                           "16r77FC"    16r6265 " <CJK> " 
                           "16r77FD"    16r0000 " invalid " 
                           "16r77FE"    16r0000 " invalid " 
                           "16r77FF"    16r0000 " invalid " 
                           "16r7800"    16r0000 " invalid " 
                           "16r7801"    16r0000 " invalid " 
                           "16r7802"    16r3A3D " <CJK> " 
                           "16r7803"    16r0000 " invalid " 
                           "16r7804"    16r0000 " invalid " 
                           "16r7805"    16r0000 " invalid " 
                           "16r7806"    16r0000 " invalid " 
                           "16r7807"    16r0000 " invalid " 
                           "16r7808"    16r0000 " invalid " 
                           "16r7809"    16r0000 " invalid " 
                           "16r780A"    16r0000 " invalid " 
                           "16r780B"    16r0000 " invalid " 
                           "16r780C"    16r6266 " <CJK> " 
                           "16r780D"    16r0000 " invalid " 
                           "16r780E"    16r0000 " invalid " 
                           "16r780F"    16r0000 " invalid " 
                           "16r7810"    16r0000 " invalid " 
                           "16r7811"    16r0000 " invalid " 
                           "16r7812"    16r6267 " <CJK> " 
                           "16r7813"    16r0000 " invalid " 
                           "16r7814"    16r3826 " <CJK> " 
                           "16r7815"    16r3A55 " <CJK> " 
                           "16r7816"    16r0000 " invalid " 
                           "16r7817"    16r0000 " invalid " 
                           "16r7818"    16r0000 " invalid " 
                           "16r7819"    16r0000 " invalid " 
                           "16r781A"    16r0000 " invalid " 
                           "16r781B"    16r0000 " invalid " 
                           "16r781C"    16r0000 " invalid " 
                           "16r781D"    16r0000 " invalid " 
                           "16r781E"    16r0000 " invalid " 
                           "16r781F"    16r0000 " invalid " 
                           "16r7820"    16r6269 " <CJK> " 
                           "16r7821"    16r0000 " invalid " 
                           "16r7822"    16r0000 " invalid " 
                           "16r7823"    16r0000 " invalid " 
                           "16r7824"    16r0000 " invalid " 
                           "16r7825"    16r4556 " <CJK> " 
                           "16r7826"    16r3A56 " <CJK> " 
                           "16r7827"    16r354E " <CJK> " 
                           "16r7828"    16r0000 " invalid " 
                           "16r7829"    16r0000 " invalid " 
                           "16r782A"    16r0000 " invalid " 
                           "16r782B"    16r0000 " invalid " 
                           "16r782C"    16r0000 " invalid " 
                           "16r782D"    16r0000 " invalid " 
                           "16r782E"    16r0000 " invalid " 
                           "16r782F"    16r0000 " invalid " 
                           "16r7830"    16r0000 " invalid " 
                           "16r7831"    16r0000 " invalid " 
                           "16r7832"    16r4B24 " <CJK> " 
                           "16r7833"    16r0000 " invalid " 
                           "16r7834"    16r474B " <CJK> " 
                           "16r7835"    16r0000 " invalid " 
                           "16r7836"    16r0000 " invalid " 
                           "16r7837"    16r0000 " invalid " 
                           "16r7838"    16r0000 " invalid " 
                           "16r7839"    16r0000 " invalid " 
                           "16r783A"    16r4557 " <CJK> " 
                           "16r783B"    16r0000 " invalid " 
                           "16r783C"    16r0000 " invalid " 
                           "16r783D"    16r0000 " invalid " 
                           "16r783E"    16r0000 " invalid " 
                           "16r783F"    16r395C " <CJK> " 
                           "16r7840"    16r0000 " invalid " 
                           "16r7841"    16r0000 " invalid " 
                           "16r7842"    16r0000 " invalid " 
                           "16r7843"    16r0000 " invalid " 
                           "16r7844"    16r0000 " invalid " 
                           "16r7845"    16r626B " <CJK> " 
                           "16r7846"    16r0000 " invalid " 
                           "16r7847"    16r0000 " invalid " 
                           "16r7848"    16r0000 " invalid " 
                           "16r7849"    16r0000 " invalid " 
                           "16r784A"    16r0000 " invalid " 
                           "16r784B"    16r0000 " invalid " 
                           "16r784C"    16r0000 " invalid " 
                           "16r784D"    16r0000 " invalid " 
                           "16r784E"    16r0000 " invalid " 
                           "16r784F"    16r0000 " invalid " 
                           "16r7850"    16r0000 " invalid " 
                           "16r7851"    16r0000 " invalid " 
                           "16r7852"    16r0000 " invalid " 
                           "16r7853"    16r0000 " invalid " 
                           "16r7854"    16r0000 " invalid " 
                           "16r7855"    16r0000 " invalid " 
                           "16r7856"    16r0000 " invalid " 
                           "16r7857"    16r0000 " invalid " 
                           "16r7858"    16r0000 " invalid " 
                           "16r7859"    16r0000 " invalid " 
                           "16r785A"    16r0000 " invalid " 
                           "16r785B"    16r0000 " invalid " 
                           "16r785C"    16r0000 " invalid " 
                           "16r785D"    16r3E4B " <CJK> " 
                           "16r785E"    16r0000 " invalid " 
                           "16r785F"    16r0000 " invalid " 
                           "16r7860"    16r0000 " invalid " 
                           "16r7861"    16r0000 " invalid " 
                           "16r7862"    16r0000 " invalid " 
                           "16r7863"    16r0000 " invalid " 
                           "16r7864"    16r0000 " invalid " 
                           "16r7865"    16r0000 " invalid " 
                           "16r7866"    16r0000 " invalid " 
                           "16r7867"    16r0000 " invalid " 
                           "16r7868"    16r0000 " invalid " 
                           "16r7869"    16r0000 " invalid " 
                           "16r786A"    16r0000 " invalid " 
                           "16r786B"    16r4E32 " <CJK> " 
                           "16r786C"    16r3945 " <CJK> " 
                           "16r786D"    16r0000 " invalid " 
                           "16r786E"    16r0000 " invalid " 
                           "16r786F"    16r3827 " <CJK> " 
                           "16r7870"    16r0000 " invalid " 
                           "16r7871"    16r0000 " invalid " 
                           "16r7872"    16r4823 " <CJK> " 
                           "16r7873"    16r0000 " invalid " 
                           "16r7874"    16r626D " <CJK> " 
                           "16r7875"    16r0000 " invalid " 
                           "16r7876"    16r0000 " invalid " 
                           "16r7877"    16r0000 " invalid " 
                           "16r7878"    16r0000 " invalid " 
                           "16r7879"    16r0000 " invalid " 
                           "16r787A"    16r0000 " invalid " 
                           "16r787B"    16r0000 " invalid " 
                           "16r787C"    16r626F " <CJK> " 
                           "16r787D"    16r0000 " invalid " 
                           "16r787E"    16r0000 " invalid " 
                           "16r787F"    16r0000 " invalid " 
                           "16r7880"    16r0000 " invalid " 
                           "16r7881"    16r386B " <CJK> " 
                           "16r7882"    16r0000 " invalid " 
                           "16r7883"    16r0000 " invalid " 
                           "16r7884"    16r0000 " invalid " 
                           "16r7885"    16r0000 " invalid " 
                           "16r7886"    16r626E " <CJK> " 
                           "16r7887"    16r4476 " <CJK> " 
                           "16r7888"    16r0000 " invalid " 
                           "16r7889"    16r0000 " invalid " 
                           "16r788A"    16r0000 " invalid " 
                           "16r788B"    16r0000 " invalid " 
                           "16r788C"    16r6271 " <CJK> " 
                           "16r788D"    16r3337 " <CJK> " 
                           "16r788E"    16r626C " <CJK> " 
                           "16r788F"    16r0000 " invalid " 
                           "16r7890"    16r0000 " invalid " 
                           "16r7891"    16r486A " <CJK> " 
                           "16r7892"    16r0000 " invalid " 
                           "16r7893"    16r3130 " <CJK> " 
                           "16r7894"    16r0000 " invalid " 
                           "16r7895"    16r3A6C " <CJK> " 
                           "16r7896"    16r0000 " invalid " 
                           "16r7897"    16r4F52 " <CJK> " 
                           "16r7898"    16r0000 " invalid " 
                           "16r7899"    16r0000 " invalid " 
                           "16r789A"    16r6270 " <CJK> " 
                           "16r789B"    16r0000 " invalid " 
                           "16r789C"    16r0000 " invalid " 
                           "16r789D"    16r0000 " invalid " 
                           "16r789E"    16r0000 " invalid " 
                           "16r789F"    16r0000 " invalid " 
                           "16r78A0"    16r0000 " invalid " 
                           "16r78A1"    16r0000 " invalid " 
                           "16r78A2"    16r0000 " invalid " 
                           "16r78A3"    16r6272 " <CJK> " 
                           "16r78A4"    16r0000 " invalid " 
                           "16r78A5"    16r0000 " invalid " 
                           "16r78A6"    16r0000 " invalid " 
                           "16r78A7"    16r4A4B " <CJK> " 
                           "16r78A8"    16r0000 " invalid " 
                           "16r78A9"    16r4059 " <CJK> " 
                           "16r78AA"    16r6274 " <CJK> " 
                           "16r78AB"    16r0000 " invalid " 
                           "16r78AC"    16r0000 " invalid " 
                           "16r78AD"    16r0000 " invalid " 
                           "16r78AE"    16r0000 " invalid " 
                           "16r78AF"    16r6275 " <CJK> " 
                           "16r78B0"    16r0000 " invalid " 
                           "16r78B1"    16r0000 " invalid " 
                           "16r78B2"    16r0000 " invalid " 
                           "16r78B3"    16r0000 " invalid " 
                           "16r78B4"    16r0000 " invalid " 
                           "16r78B5"    16r6273 " <CJK> " 
                           "16r78B6"    16r0000 " invalid " 
                           "16r78B7"    16r0000 " invalid " 
                           "16r78B8"    16r0000 " invalid " 
                           "16r78B9"    16r0000 " invalid " 
                           "16r78BA"    16r334E " <CJK> " 
                           "16r78BB"    16r0000 " invalid " 
                           "16r78BC"    16r627B " <CJK> " 
                           "16r78BD"    16r0000 " invalid " 
                           "16r78BE"    16r627A " <CJK> " 
                           "16r78BF"    16r0000 " invalid " 
                           "16r78C0"    16r0000 " invalid " 
                           "16r78C1"    16r3C27 " <CJK> " 
                           "16r78C2"    16r0000 " invalid " 
                           "16r78C3"    16r0000 " invalid " 
                           "16r78C4"    16r0000 " invalid " 
                           "16r78C5"    16r627C " <CJK> " 
                           "16r78C6"    16r6277 " <CJK> " 
                           "16r78C7"    16r0000 " invalid " 
                           "16r78C8"    16r0000 " invalid " 
                           "16r78C9"    16r0000 " invalid " 
                           "16r78CA"    16r627D " <CJK> " 
                           "16r78CB"    16r6278 " <CJK> " 
                           "16r78CC"    16r0000 " invalid " 
                           "16r78CD"    16r0000 " invalid " 
                           "16r78CE"    16r0000 " invalid " 
                           "16r78CF"    16r0000 " invalid " 
                           "16r78D0"    16r4858 " <CJK> " 
                           "16r78D1"    16r6276 " <CJK> " 
                           "16r78D2"    16r0000 " invalid " 
                           "16r78D3"    16r0000 " invalid " 
                           "16r78D4"    16r6279 " <CJK> " 
                           "16r78D5"    16r0000 " invalid " 
                           "16r78D6"    16r0000 " invalid " 
                           "16r78D7"    16r0000 " invalid " 
                           "16r78D8"    16r0000 " invalid " 
                           "16r78D9"    16r0000 " invalid " 
                           "16r78DA"    16r6322 " <CJK> " 
                           "16r78DB"    16r0000 " invalid " 
                           "16r78DC"    16r0000 " invalid " 
                           "16r78DD"    16r0000 " invalid " 
                           "16r78DE"    16r0000 " invalid " 
                           "16r78DF"    16r0000 " invalid " 
                           "16r78E0"    16r0000 " invalid " 
                           "16r78E1"    16r0000 " invalid " 
                           "16r78E2"    16r0000 " invalid " 
                           "16r78E3"    16r0000 " invalid " 
                           "16r78E4"    16r0000 " invalid " 
                           "16r78E5"    16r0000 " invalid " 
                           "16r78E6"    16r0000 " invalid " 
                           "16r78E7"    16r6321 " <CJK> " 
                           "16r78E8"    16r4B61 " <CJK> " 
                           "16r78E9"    16r0000 " invalid " 
                           "16r78EA"    16r0000 " invalid " 
                           "16r78EB"    16r0000 " invalid " 
                           "16r78EC"    16r627E " <CJK> " 
                           "16r78ED"    16r0000 " invalid " 
                           "16r78EE"    16r0000 " invalid " 
                           "16r78EF"    16r306B " <CJK> " 
                           "16r78F0"    16r0000 " invalid " 
                           "16r78F1"    16r0000 " invalid " 
                           "16r78F2"    16r0000 " invalid " 
                           "16r78F3"    16r0000 " invalid " 
                           "16r78F4"    16r6324 " <CJK> " 
                           "16r78F5"    16r0000 " invalid " 
                           "16r78F6"    16r0000 " invalid " 
                           "16r78F7"    16r0000 " invalid " 
                           "16r78F8"    16r0000 " invalid " 
                           "16r78F9"    16r0000 " invalid " 
                           "16r78FA"    16r0000 " invalid " 
                           "16r78FB"    16r0000 " invalid " 
                           "16r78FC"    16r0000 " invalid " 
                           "16r78FD"    16r6323 " <CJK> " 
                           "16r78FE"    16r0000 " invalid " 
                           "16r78FF"    16r0000 " invalid " 
                           "16r7900"    16r0000 " invalid " 
                           "16r7901"    16r3E4C " <CJK> " 
                           "16r7902"    16r0000 " invalid " 
                           "16r7903"    16r0000 " invalid " 
                           "16r7904"    16r0000 " invalid " 
                           "16r7905"    16r0000 " invalid " 
                           "16r7906"    16r0000 " invalid " 
                           "16r7907"    16r6325 " <CJK> " 
                           "16r7908"    16r0000 " invalid " 
                           "16r7909"    16r0000 " invalid " 
                           "16r790A"    16r0000 " invalid " 
                           "16r790B"    16r0000 " invalid " 
                           "16r790C"    16r0000 " invalid " 
                           "16r790D"    16r0000 " invalid " 
                           "16r790E"    16r4143 " <CJK> " 
                           "16r790F"    16r0000 " invalid " 
                           "16r7910"    16r0000 " invalid " 
                           "16r7911"    16r6327 " <CJK> " 
                           "16r7912"    16r6326 " <CJK> " 
                           "16r7913"    16r0000 " invalid " 
                           "16r7914"    16r0000 " invalid " 
                           "16r7915"    16r0000 " invalid " 
                           "16r7916"    16r0000 " invalid " 
                           "16r7917"    16r0000 " invalid " 
                           "16r7918"    16r0000 " invalid " 
                           "16r7919"    16r6328 " <CJK> " 
                           "16r791A"    16r0000 " invalid " 
                           "16r791B"    16r0000 " invalid " 
                           "16r791C"    16r0000 " invalid " 
                           "16r791D"    16r0000 " invalid " 
                           "16r791E"    16r0000 " invalid " 
                           "16r791F"    16r0000 " invalid " 
                           "16r7920"    16r0000 " invalid " 
                           "16r7921"    16r0000 " invalid " 
                           "16r7922"    16r0000 " invalid " 
                           "16r7923"    16r0000 " invalid " 
                           "16r7924"    16r0000 " invalid " 
                           "16r7925"    16r0000 " invalid " 
                           "16r7926"    16r6268 " <CJK> " 
                           "16r7927"    16r0000 " invalid " 
                           "16r7928"    16r0000 " invalid " 
                           "16r7929"    16r0000 " invalid " 
                           "16r792A"    16r626A " <CJK> " 
                           "16r792B"    16r632A " <CJK> " 
                           "16r792C"    16r6329 " <CJK> " 
                           "16r792D"    16r0000 " invalid " 
                           "16r792E"    16r0000 " invalid " 
                           "16r792F"    16r0000 " invalid " 
                           "16r7930"    16r0000 " invalid " 
                           "16r7931"    16r0000 " invalid " 
                           "16r7932"    16r0000 " invalid " 
                           "16r7933"    16r0000 " invalid " 
                           "16r7934"    16r0000 " invalid " 
                           "16r7935"    16r0000 " invalid " 
                           "16r7936"    16r0000 " invalid " 
                           "16r7937"    16r0000 " invalid " 
                           "16r7938"    16r0000 " invalid " 
                           "16r7939"    16r0000 " invalid " 
                           "16r793A"    16r3C28 " <CJK> " 
                           "16r793B"    16r0000 " invalid " 
                           "16r793C"    16r4E69 " <CJK> " 
                           "16r793D"    16r0000 " invalid " 
                           "16r793E"    16r3C52 " <CJK> " 
                           "16r793F"    16r0000 " invalid " 
                           "16r7940"    16r632B " <CJK> " 
                           "16r7941"    16r3737 " <CJK> " 
                           "16r7942"    16r0000 " invalid " 
                           "16r7943"    16r0000 " invalid " 
                           "16r7944"    16r0000 " invalid " 
                           "16r7945"    16r0000 " invalid " 
                           "16r7946"    16r0000 " invalid " 
                           "16r7947"    16r3540 " <CJK> " 
                           "16r7948"    16r3527 " <CJK> " 
                           "16r7949"    16r3B63 " <CJK> " 
                           "16r794A"    16r0000 " invalid " 
                           "16r794B"    16r0000 " invalid " 
                           "16r794C"    16r0000 " invalid " 
                           "16r794D"    16r0000 " invalid " 
                           "16r794E"    16r0000 " invalid " 
                           "16r794F"    16r0000 " invalid " 
                           "16r7950"    16r4D34 " <CJK> " 
                           "16r7951"    16r0000 " invalid " 
                           "16r7952"    16r0000 " invalid " 
                           "16r7953"    16r6331 " <CJK> " 
                           "16r7954"    16r0000 " invalid " 
                           "16r7955"    16r6330 " <CJK> " 
                           "16r7956"    16r4144 " <CJK> " 
                           "16r7957"    16r632D " <CJK> " 
                           "16r7958"    16r0000 " invalid " 
                           "16r7959"    16r0000 " invalid " 
                           "16r795A"    16r632F " <CJK> " 
                           "16r795B"    16r0000 " invalid " 
                           "16r795C"    16r0000 " invalid " 
                           "16r795D"    16r3D4B " <CJK> " 
                           "16r795E"    16r3F40 " <CJK> " 
                           "16r795F"    16r632E " <CJK> " 
                           "16r7960"    16r632C " <CJK> " 
                           "16r7961"    16r0000 " invalid " 
                           "16r7962"    16r472A " <CJK> " 
                           "16r7963"    16r0000 " invalid " 
                           "16r7964"    16r0000 " invalid " 
                           "16r7965"    16r3E4D " <CJK> " 
                           "16r7966"    16r0000 " invalid " 
                           "16r7967"    16r0000 " invalid " 
                           "16r7968"    16r493C " <CJK> " 
                           "16r7969"    16r0000 " invalid " 
                           "16r796A"    16r0000 " invalid " 
                           "16r796B"    16r0000 " invalid " 
                           "16r796C"    16r0000 " invalid " 
                           "16r796D"    16r3A57 " <CJK> " 
                           "16r796E"    16r0000 " invalid " 
                           "16r796F"    16r0000 " invalid " 
                           "16r7970"    16r0000 " invalid " 
                           "16r7971"    16r0000 " invalid " 
                           "16r7972"    16r0000 " invalid " 
                           "16r7973"    16r0000 " invalid " 
                           "16r7974"    16r0000 " invalid " 
                           "16r7975"    16r0000 " invalid " 
                           "16r7976"    16r0000 " invalid " 
                           "16r7977"    16r4578 " <CJK> " 
                           "16r7978"    16r0000 " invalid " 
                           "16r7979"    16r0000 " invalid " 
                           "16r797A"    16r6332 " <CJK> " 
                           "16r797B"    16r0000 " invalid " 
                           "16r797C"    16r0000 " invalid " 
                           "16r797D"    16r0000 " invalid " 
                           "16r797E"    16r0000 " invalid " 
                           "16r797F"    16r6333 " <CJK> " 
                           "16r7980"    16r6349 " <CJK> " 
                           "16r7981"    16r3658 " <CJK> " 
                           "16r7982"    16r0000 " invalid " 
                           "16r7983"    16r0000 " invalid " 
                           "16r7984"    16r4F3D " <CJK> " 
                           "16r7985"    16r4135 " <CJK> " 
                           "16r7986"    16r0000 " invalid " 
                           "16r7987"    16r0000 " invalid " 
                           "16r7988"    16r0000 " invalid " 
                           "16r7989"    16r0000 " invalid " 
                           "16r798A"    16r6334 " <CJK> " 
                           "16r798B"    16r0000 " invalid " 
                           "16r798C"    16r0000 " invalid " 
                           "16r798D"    16r3252 " <CJK> " 
                           "16r798E"    16r4477 " <CJK> " 
                           "16r798F"    16r4A21 " <CJK> " 
                           "16r7990"    16r0000 " invalid " 
                           "16r7991"    16r0000 " invalid " 
                           "16r7992"    16r0000 " invalid " 
                           "16r7993"    16r0000 " invalid " 
                           "16r7994"    16r0000 " invalid " 
                           "16r7995"    16r0000 " invalid " 
                           "16r7996"    16r0000 " invalid " 
                           "16r7997"    16r0000 " invalid " 
                           "16r7998"    16r0000 " invalid " 
                           "16r7999"    16r0000 " invalid " 
                           "16r799A"    16r0000 " invalid " 
                           "16r799B"    16r0000 " invalid " 
                           "16r799C"    16r0000 " invalid " 
                           "16r799D"    16r6335 " <CJK> " 
                           "16r799E"    16r0000 " invalid " 
                           "16r799F"    16r0000 " invalid " 
                           "16r79A0"    16r0000 " invalid " 
                           "16r79A1"    16r0000 " invalid " 
                           "16r79A2"    16r0000 " invalid " 
                           "16r79A3"    16r0000 " invalid " 
                           "16r79A4"    16r0000 " invalid " 
                           "16r79A5"    16r0000 " invalid " 
                           "16r79A6"    16r357A " <CJK> " 
                           "16r79A7"    16r6336 " <CJK> " 
                           "16r79A8"    16r0000 " invalid " 
                           "16r79A9"    16r0000 " invalid " 
                           "16r79AA"    16r6338 " <CJK> " 
                           "16r79AB"    16r0000 " invalid " 
                           "16r79AC"    16r0000 " invalid " 
                           "16r79AD"    16r0000 " invalid " 
                           "16r79AE"    16r6339 " <CJK> " 
                           "16r79AF"    16r0000 " invalid " 
                           "16r79B0"    16r4729 " <CJK> " 
                           "16r79B1"    16r0000 " invalid " 
                           "16r79B2"    16r0000 " invalid " 
                           "16r79B3"    16r633A " <CJK> " 
                           "16r79B4"    16r0000 " invalid " 
                           "16r79B5"    16r0000 " invalid " 
                           "16r79B6"    16r0000 " invalid " 
                           "16r79B7"    16r0000 " invalid " 
                           "16r79B8"    16r0000 " invalid " 
                           "16r79B9"    16r633B " <CJK> " 
                           "16r79BA"    16r633C " <CJK> " 
                           "16r79BB"    16r0000 " invalid " 
                           "16r79BC"    16r0000 " invalid " 
                           "16r79BD"    16r3659 " <CJK> " 
                           "16r79BE"    16r3253 " <CJK> " 
                           "16r79BF"    16r4645 " <CJK> " 
                           "16r79C0"    16r3D28 " <CJK> " 
                           "16r79C1"    16r3B64 " <CJK> " 
                           "16r79C2"    16r0000 " invalid " 
                           "16r79C3"    16r0000 " invalid " 
                           "16r79C4"    16r0000 " invalid " 
                           "16r79C5"    16r0000 " invalid " 
                           "16r79C6"    16r0000 " invalid " 
                           "16r79C7"    16r0000 " invalid " 
                           "16r79C8"    16r0000 " invalid " 
                           "16r79C9"    16r633D " <CJK> " 
                           "16r79CA"    16r0000 " invalid " 
                           "16r79CB"    16r3D29 " <CJK> " 
                           "16r79CC"    16r0000 " invalid " 
                           "16r79CD"    16r0000 " invalid " 
                           "16r79CE"    16r0000 " invalid " 
                           "16r79CF"    16r0000 " invalid " 
                           "16r79D0"    16r0000 " invalid " 
                           "16r79D1"    16r324A " <CJK> " 
                           "16r79D2"    16r4943 " <CJK> " 
                           "16r79D3"    16r0000 " invalid " 
                           "16r79D4"    16r0000 " invalid " 
                           "16r79D5"    16r633E " <CJK> " 
                           "16r79D6"    16r0000 " invalid " 
                           "16r79D7"    16r0000 " invalid " 
                           "16r79D8"    16r486B " <CJK> " 
                           "16r79D9"    16r0000 " invalid " 
                           "16r79DA"    16r0000 " invalid " 
                           "16r79DB"    16r0000 " invalid " 
                           "16r79DC"    16r0000 " invalid " 
                           "16r79DD"    16r0000 " invalid " 
                           "16r79DE"    16r0000 " invalid " 
                           "16r79DF"    16r4145 " <CJK> " 
                           "16r79E0"    16r0000 " invalid " 
                           "16r79E1"    16r6341 " <CJK> " 
                           "16r79E2"    16r0000 " invalid " 
                           "16r79E3"    16r6342 " <CJK> " 
                           "16r79E4"    16r4769 " <CJK> " 
                           "16r79E5"    16r0000 " invalid " 
                           "16r79E6"    16r3F41 " <CJK> " 
                           "16r79E7"    16r633F " <CJK> " 
                           "16r79E8"    16r0000 " invalid " 
                           "16r79E9"    16r4361 " <CJK> " 
                           "16r79EA"    16r0000 " invalid " 
                           "16r79EB"    16r0000 " invalid " 
                           "16r79EC"    16r6340 " <CJK> " 
                           "16r79ED"    16r0000 " invalid " 
                           "16r79EE"    16r0000 " invalid " 
                           "16r79EF"    16r0000 " invalid " 
                           "16r79F0"    16r3E4E " <CJK> " 
                           "16r79F1"    16r0000 " invalid " 
                           "16r79F2"    16r0000 " invalid " 
                           "16r79F3"    16r0000 " invalid " 
                           "16r79F4"    16r0000 " invalid " 
                           "16r79F5"    16r0000 " invalid " 
                           "16r79F6"    16r0000 " invalid " 
                           "16r79F7"    16r0000 " invalid " 
                           "16r79F8"    16r0000 " invalid " 
                           "16r79F9"    16r0000 " invalid " 
                           "16r79FA"    16r0000 " invalid " 
                           "16r79FB"    16r305C " <CJK> " 
                           "16r79FC"    16r0000 " invalid " 
                           "16r79FD"    16r0000 " invalid " 
                           "16r79FE"    16r0000 " invalid " 
                           "16r79FF"    16r0000 " invalid " 
                           "16r7A00"    16r3529 " <CJK> " 
                           "16r7A01"    16r0000 " invalid " 
                           "16r7A02"    16r0000 " invalid " 
                           "16r7A03"    16r0000 " invalid " 
                           "16r7A04"    16r0000 " invalid " 
                           "16r7A05"    16r0000 " invalid " 
                           "16r7A06"    16r0000 " invalid " 
                           "16r7A07"    16r0000 " invalid " 
                           "16r7A08"    16r6343 " <CJK> " 
                           "16r7A09"    16r0000 " invalid " 
                           "16r7A0A"    16r0000 " invalid " 
                           "16r7A0B"    16r4478 " <CJK> " 
                           "16r7A0C"    16r0000 " invalid " 
                           "16r7A0D"    16r6344 " <CJK> " 
                           "16r7A0E"    16r4047 " <CJK> " 
                           "16r7A0F"    16r0000 " invalid " 
                           "16r7A10"    16r0000 " invalid " 
                           "16r7A11"    16r0000 " invalid " 
                           "16r7A12"    16r0000 " invalid " 
                           "16r7A13"    16r0000 " invalid " 
                           "16r7A14"    16r4C2D " <CJK> " 
                           "16r7A15"    16r0000 " invalid " 
                           "16r7A16"    16r0000 " invalid " 
                           "16r7A17"    16r4923 " <CJK> " 
                           "16r7A18"    16r6345 " <CJK> " 
                           "16r7A19"    16r6346 " <CJK> " 
                           "16r7A1A"    16r4355 " <CJK> " 
                           "16r7A1B"    16r0000 " invalid " 
                           "16r7A1C"    16r4E47 " <CJK> " 
                           "16r7A1D"    16r0000 " invalid " 
                           "16r7A1E"    16r0000 " invalid " 
                           "16r7A1F"    16r6348 " <CJK> " 
                           "16r7A20"    16r6347 " <CJK> " 
                           "16r7A21"    16r0000 " invalid " 
                           "16r7A22"    16r0000 " invalid " 
                           "16r7A23"    16r0000 " invalid " 
                           "16r7A24"    16r0000 " invalid " 
                           "16r7A25"    16r0000 " invalid " 
                           "16r7A26"    16r0000 " invalid " 
                           "16r7A27"    16r0000 " invalid " 
                           "16r7A28"    16r0000 " invalid " 
                           "16r7A29"    16r0000 " invalid " 
                           "16r7A2A"    16r0000 " invalid " 
                           "16r7A2B"    16r0000 " invalid " 
                           "16r7A2C"    16r0000 " invalid " 
                           "16r7A2D"    16r0000 " invalid " 
                           "16r7A2E"    16r3C6F " <CJK> " 
                           "16r7A2F"    16r0000 " invalid " 
                           "16r7A30"    16r0000 " invalid " 
                           "16r7A31"    16r634A " <CJK> " 
                           "16r7A32"    16r3070 " <CJK> " 
                           "16r7A33"    16r0000 " invalid " 
                           "16r7A34"    16r0000 " invalid " 
                           "16r7A35"    16r0000 " invalid " 
                           "16r7A36"    16r0000 " invalid " 
                           "16r7A37"    16r634D " <CJK> " 
                           "16r7A38"    16r0000 " invalid " 
                           "16r7A39"    16r0000 " invalid " 
                           "16r7A3A"    16r0000 " invalid " 
                           "16r7A3B"    16r634B " <CJK> " 
                           "16r7A3C"    16r3254 " <CJK> " 
                           "16r7A3D"    16r374E " <CJK> " 
                           "16r7A3E"    16r634C " <CJK> " 
                           "16r7A3F"    16r3946 " <CJK> " 
                           "16r7A40"    16r3972 " <CJK> " 
                           "16r7A41"    16r0000 " invalid " 
                           "16r7A42"    16r4A66 " <CJK> " 
                           "16r7A43"    16r634E " <CJK> " 
                           "16r7A44"    16r0000 " invalid " 
                           "16r7A45"    16r0000 " invalid " 
                           "16r7A46"    16r4B54 " <CJK> " 
                           "16r7A47"    16r0000 " invalid " 
                           "16r7A48"    16r0000 " invalid " 
                           "16r7A49"    16r6350 " <CJK> " 
                           "16r7A4A"    16r0000 " invalid " 
                           "16r7A4B"    16r0000 " invalid " 
                           "16r7A4C"    16r0000 " invalid " 
                           "16r7A4D"    16r4051 " <CJK> " 
                           "16r7A4E"    16r314F " <CJK> " 
                           "16r7A4F"    16r323A " <CJK> " 
                           "16r7A50"    16r302C " <CJK> " 
                           "16r7A51"    16r0000 " invalid " 
                           "16r7A52"    16r0000 " invalid " 
                           "16r7A53"    16r0000 " invalid " 
                           "16r7A54"    16r0000 " invalid " 
                           "16r7A55"    16r0000 " invalid " 
                           "16r7A56"    16r0000 " invalid " 
                           "16r7A57"    16r634F " <CJK> " 
                           "16r7A58"    16r0000 " invalid " 
                           "16r7A59"    16r0000 " invalid " 
                           "16r7A5A"    16r0000 " invalid " 
                           "16r7A5B"    16r0000 " invalid " 
                           "16r7A5C"    16r0000 " invalid " 
                           "16r7A5D"    16r0000 " invalid " 
                           "16r7A5E"    16r0000 " invalid " 
                           "16r7A5F"    16r0000 " invalid " 
                           "16r7A60"    16r0000 " invalid " 
                           "16r7A61"    16r6351 " <CJK> " 
                           "16r7A62"    16r6352 " <CJK> " 
                           "16r7A63"    16r3E77 " <CJK> " 
                           "16r7A64"    16r0000 " invalid " 
                           "16r7A65"    16r0000 " invalid " 
                           "16r7A66"    16r0000 " invalid " 
                           "16r7A67"    16r0000 " invalid " 
                           "16r7A68"    16r0000 " invalid " 
                           "16r7A69"    16r6353 " <CJK> " 
                           "16r7A6A"    16r0000 " invalid " 
                           "16r7A6B"    16r334F " <CJK> " 
                           "16r7A6C"    16r0000 " invalid " 
                           "16r7A6D"    16r0000 " invalid " 
                           "16r7A6E"    16r0000 " invalid " 
                           "16r7A6F"    16r0000 " invalid " 
                           "16r7A70"    16r6355 " <CJK> " 
                           "16r7A71"    16r0000 " invalid " 
                           "16r7A72"    16r0000 " invalid " 
                           "16r7A73"    16r0000 " invalid " 
                           "16r7A74"    16r376A " <CJK> " 
                           "16r7A75"    16r0000 " invalid " 
                           "16r7A76"    16r3566 " <CJK> " 
                           "16r7A77"    16r0000 " invalid " 
                           "16r7A78"    16r0000 " invalid " 
                           "16r7A79"    16r6356 " <CJK> " 
                           "16r7A7A"    16r3675 " <CJK> " 
                           "16r7A7B"    16r0000 " invalid " 
                           "16r7A7C"    16r0000 " invalid " 
                           "16r7A7D"    16r6357 " <CJK> " 
                           "16r7A7E"    16r0000 " invalid " 
                           "16r7A7F"    16r407C " <CJK> " 
                           "16r7A80"    16r0000 " invalid " 
                           "16r7A81"    16r464D " <CJK> " 
                           "16r7A82"    16r0000 " invalid " 
                           "16r7A83"    16r4060 " <CJK> " 
                           "16r7A84"    16r3A75 " <CJK> " 
                           "16r7A85"    16r0000 " invalid " 
                           "16r7A86"    16r0000 " invalid " 
                           "16r7A87"    16r0000 " invalid " 
                           "16r7A88"    16r6358 " <CJK> " 
                           "16r7A89"    16r0000 " invalid " 
                           "16r7A8A"    16r0000 " invalid " 
                           "16r7A8B"    16r0000 " invalid " 
                           "16r7A8C"    16r0000 " invalid " 
                           "16r7A8D"    16r0000 " invalid " 
                           "16r7A8E"    16r0000 " invalid " 
                           "16r7A8F"    16r0000 " invalid " 
                           "16r7A90"    16r0000 " invalid " 
                           "16r7A91"    16r0000 " invalid " 
                           "16r7A92"    16r4362 " <CJK> " 
                           "16r7A93"    16r416B " <CJK> " 
                           "16r7A94"    16r0000 " invalid " 
                           "16r7A95"    16r635A " <CJK> " 
                           "16r7A96"    16r635C " <CJK> " 
                           "16r7A97"    16r6359 " <CJK> " 
                           "16r7A98"    16r635B " <CJK> " 
                           "16r7A99"    16r0000 " invalid " 
                           "16r7A9A"    16r0000 " invalid " 
                           "16r7A9B"    16r0000 " invalid " 
                           "16r7A9C"    16r0000 " invalid " 
                           "16r7A9D"    16r0000 " invalid " 
                           "16r7A9E"    16r0000 " invalid " 
                           "16r7A9F"    16r3722 " <CJK> " 
                           "16r7AA0"    16r0000 " invalid " 
                           "16r7AA1"    16r0000 " invalid " 
                           "16r7AA2"    16r0000 " invalid " 
                           "16r7AA3"    16r0000 " invalid " 
                           "16r7AA4"    16r0000 " invalid " 
                           "16r7AA5"    16r0000 " invalid " 
                           "16r7AA6"    16r0000 " invalid " 
                           "16r7AA7"    16r0000 " invalid " 
                           "16r7AA8"    16r0000 " invalid " 
                           "16r7AA9"    16r635D " <CJK> " 
                           "16r7AAA"    16r3726 " <CJK> " 
                           "16r7AAB"    16r0000 " invalid " 
                           "16r7AAC"    16r0000 " invalid " 
                           "16r7AAD"    16r0000 " invalid " 
                           "16r7AAE"    16r3567 " <CJK> " 
                           "16r7AAF"    16r4D52 " <CJK> " 
                           "16r7AB0"    16r635F " <CJK> " 
                           "16r7AB1"    16r0000 " invalid " 
                           "16r7AB2"    16r0000 " invalid " 
                           "16r7AB3"    16r0000 " invalid " 
                           "16r7AB4"    16r0000 " invalid " 
                           "16r7AB5"    16r0000 " invalid " 
                           "16r7AB6"    16r6360 " <CJK> " 
                           "16r7AB7"    16r0000 " invalid " 
                           "16r7AB8"    16r0000 " invalid " 
                           "16r7AB9"    16r0000 " invalid " 
                           "16r7ABA"    16r312E " <CJK> " 
                           "16r7ABB"    16r0000 " invalid " 
                           "16r7ABC"    16r0000 " invalid " 
                           "16r7ABD"    16r0000 " invalid " 
                           "16r7ABE"    16r0000 " invalid " 
                           "16r7ABF"    16r6363 " <CJK> " 
                           "16r7AC0"    16r0000 " invalid " 
                           "16r7AC1"    16r0000 " invalid " 
                           "16r7AC2"    16r0000 " invalid " 
                           "16r7AC3"    16r3376 " <CJK> " 
                           "16r7AC4"    16r6362 " <CJK> " 
                           "16r7AC5"    16r6361 " <CJK> " 
                           "16r7AC6"    16r0000 " invalid " 
                           "16r7AC7"    16r6365 " <CJK> " 
                           "16r7AC8"    16r635E " <CJK> " 
                           "16r7AC9"    16r0000 " invalid " 
                           "16r7ACA"    16r6366 " <CJK> " 
                           "16r7ACB"    16r4E29 " <CJK> " 
                           "16r7ACC"    16r0000 " invalid " 
                           "16r7ACD"    16r6367 " <CJK> " 
                           "16r7ACE"    16r0000 " invalid " 
                           "16r7ACF"    16r6368 " <CJK> " 
                           "16r7AD0"    16r0000 " invalid " 
                           "16r7AD1"    16r0000 " invalid " 
                           "16r7AD2"    16r5474 " <CJK> " 
                           "16r7AD3"    16r636A " <CJK> " 
                           "16r7AD4"    16r0000 " invalid " 
                           "16r7AD5"    16r6369 " <CJK> " 
                           "16r7AD6"    16r0000 " invalid " 
                           "16r7AD7"    16r0000 " invalid " 
                           "16r7AD8"    16r0000 " invalid " 
                           "16r7AD9"    16r636B " <CJK> " 
                           "16r7ADA"    16r636C " <CJK> " 
                           "16r7ADB"    16r0000 " invalid " 
                           "16r7ADC"    16r4E35 " <CJK> " 
                           "16r7ADD"    16r636D " <CJK> " 
                           "16r7ADE"    16r0000 " invalid " 
                           "16r7ADF"    16r706F " <CJK> " 
                           "16r7AE0"    16r3E4F " <CJK> " 
                           "16r7AE1"    16r636E " <CJK> " 
                           "16r7AE2"    16r636F " <CJK> " 
                           "16r7AE3"    16r3D57 " <CJK> " 
                           "16r7AE4"    16r0000 " invalid " 
                           "16r7AE5"    16r4638 " <CJK> " 
                           "16r7AE6"    16r6370 " <CJK> " 
                           "16r7AE7"    16r0000 " invalid " 
                           "16r7AE8"    16r0000 " invalid " 
                           "16r7AE9"    16r0000 " invalid " 
                           "16r7AEA"    16r4328 " <CJK> " 
                           "16r7AEB"    16r0000 " invalid " 
                           "16r7AEC"    16r0000 " invalid " 
                           "16r7AED"    16r6371 " <CJK> " 
                           "16r7AEE"    16r0000 " invalid " 
                           "16r7AEF"    16r433C " <CJK> " 
                           "16r7AF0"    16r6372 " <CJK> " 
                           "16r7AF1"    16r0000 " invalid " 
                           "16r7AF2"    16r0000 " invalid " 
                           "16r7AF3"    16r0000 " invalid " 
                           "16r7AF4"    16r0000 " invalid " 
                           "16r7AF5"    16r0000 " invalid " 
                           "16r7AF6"    16r3625 " <CJK> " 
                           "16r7AF7"    16r0000 " invalid " 
                           "16r7AF8"    16r513F " <CJK> " 
                           "16r7AF9"    16r435D " <CJK> " 
                           "16r7AFA"    16r3C33 " <CJK> " 
                           "16r7AFB"    16r0000 " invalid " 
                           "16r7AFC"    16r0000 " invalid " 
                           "16r7AFD"    16r0000 " invalid " 
                           "16r7AFE"    16r0000 " invalid " 
                           "16r7AFF"    16r3448 " <CJK> " 
                           "16r7B00"    16r0000 " invalid " 
                           "16r7B01"    16r0000 " invalid " 
                           "16r7B02"    16r6373 " <CJK> " 
                           "16r7B03"    16r0000 " invalid " 
                           "16r7B04"    16r6422 " <CJK> " 
                           "16r7B05"    16r0000 " invalid " 
                           "16r7B06"    16r6376 " <CJK> " 
                           "16r7B07"    16r0000 " invalid " 
                           "16r7B08"    16r3568 " <CJK> " 
                           "16r7B09"    16r0000 " invalid " 
                           "16r7B0A"    16r6375 " <CJK> " 
                           "16r7B0B"    16r6424 " <CJK> " 
                           "16r7B0C"    16r0000 " invalid " 
                           "16r7B0D"    16r0000 " invalid " 
                           "16r7B0E"    16r0000 " invalid " 
                           "16r7B0F"    16r6374 " <CJK> " 
                           "16r7B10"    16r0000 " invalid " 
                           "16r7B11"    16r3E50 " <CJK> " 
                           "16r7B12"    16r0000 " invalid " 
                           "16r7B13"    16r0000 " invalid " 
                           "16r7B14"    16r0000 " invalid " 
                           "16r7B15"    16r0000 " invalid " 
                           "16r7B16"    16r0000 " invalid " 
                           "16r7B17"    16r0000 " invalid " 
                           "16r7B18"    16r6378 " <CJK> " 
                           "16r7B19"    16r6379 " <CJK> " 
                           "16r7B1A"    16r0000 " invalid " 
                           "16r7B1B"    16r452B " <CJK> " 
                           "16r7B1C"    16r0000 " invalid " 
                           "16r7B1D"    16r0000 " invalid " 
                           "16r7B1E"    16r637A " <CJK> " 
                           "16r7B1F"    16r0000 " invalid " 
                           "16r7B20"    16r335E " <CJK> " 
                           "16r7B21"    16r0000 " invalid " 
                           "16r7B22"    16r0000 " invalid " 
                           "16r7B23"    16r0000 " invalid " 
                           "16r7B24"    16r0000 " invalid " 
                           "16r7B25"    16r3F5A " <CJK> " 
                           "16r7B26"    16r4964 " <CJK> " 
                           "16r7B27"    16r0000 " invalid " 
                           "16r7B28"    16r637C " <CJK> " 
                           "16r7B29"    16r0000 " invalid " 
                           "16r7B2A"    16r0000 " invalid " 
                           "16r7B2B"    16r0000 " invalid " 
                           "16r7B2C"    16r4268 " <CJK> " 
                           "16r7B2D"    16r0000 " invalid " 
                           "16r7B2E"    16r0000 " invalid " 
                           "16r7B2F"    16r0000 " invalid " 
                           "16r7B30"    16r0000 " invalid " 
                           "16r7B31"    16r0000 " invalid " 
                           "16r7B32"    16r0000 " invalid " 
                           "16r7B33"    16r6377 " <CJK> " 
                           "16r7B34"    16r0000 " invalid " 
                           "16r7B35"    16r637B " <CJK> " 
                           "16r7B36"    16r637D " <CJK> " 
                           "16r7B37"    16r0000 " invalid " 
                           "16r7B38"    16r0000 " invalid " 
                           "16r7B39"    16r3A7B " <CJK> " 
                           "16r7B3A"    16r0000 " invalid " 
                           "16r7B3B"    16r0000 " invalid " 
                           "16r7B3C"    16r0000 " invalid " 
                           "16r7B3D"    16r0000 " invalid " 
                           "16r7B3E"    16r0000 " invalid " 
                           "16r7B3F"    16r0000 " invalid " 
                           "16r7B40"    16r0000 " invalid " 
                           "16r7B41"    16r0000 " invalid " 
                           "16r7B42"    16r0000 " invalid " 
                           "16r7B43"    16r0000 " invalid " 
                           "16r7B44"    16r0000 " invalid " 
                           "16r7B45"    16r6426 " <CJK> " 
                           "16r7B46"    16r492E " <CJK> " 
                           "16r7B47"    16r0000 " invalid " 
                           "16r7B48"    16r4826 " <CJK> " 
                           "16r7B49"    16r4579 " <CJK> " 
                           "16r7B4A"    16r0000 " invalid " 
                           "16r7B4B"    16r365A " <CJK> " 
                           "16r7B4C"    16r6425 " <CJK> " 
                           "16r7B4D"    16r6423 " <CJK> " 
                           "16r7B4E"    16r0000 " invalid " 
                           "16r7B4F"    16r4835 " <CJK> " 
                           "16r7B50"    16r637E " <CJK> " 
                           "16r7B51"    16r435E " <CJK> " 
                           "16r7B52"    16r457B " <CJK> " 
                           "16r7B53"    16r0000 " invalid " 
                           "16r7B54"    16r457A " <CJK> " 
                           "16r7B55"    16r0000 " invalid " 
                           "16r7B56"    16r3A76 " <CJK> " 
                           "16r7B57"    16r0000 " invalid " 
                           "16r7B58"    16r0000 " invalid " 
                           "16r7B59"    16r0000 " invalid " 
                           "16r7B5A"    16r0000 " invalid " 
                           "16r7B5B"    16r0000 " invalid " 
                           "16r7B5C"    16r0000 " invalid " 
                           "16r7B5D"    16r6438 " <CJK> " 
                           "16r7B5E"    16r0000 " invalid " 
                           "16r7B5F"    16r0000 " invalid " 
                           "16r7B60"    16r0000 " invalid " 
                           "16r7B61"    16r0000 " invalid " 
                           "16r7B62"    16r0000 " invalid " 
                           "16r7B63"    16r0000 " invalid " 
                           "16r7B64"    16r0000 " invalid " 
                           "16r7B65"    16r6428 " <CJK> " 
                           "16r7B66"    16r0000 " invalid " 
                           "16r7B67"    16r642A " <CJK> " 
                           "16r7B68"    16r0000 " invalid " 
                           "16r7B69"    16r0000 " invalid " 
                           "16r7B6A"    16r0000 " invalid " 
                           "16r7B6B"    16r0000 " invalid " 
                           "16r7B6C"    16r642D " <CJK> " 
                           "16r7B6D"    16r0000 " invalid " 
                           "16r7B6E"    16r642E " <CJK> " 
                           "16r7B6F"    16r0000 " invalid " 
                           "16r7B70"    16r642B " <CJK> " 
                           "16r7B71"    16r642C " <CJK> " 
                           "16r7B72"    16r0000 " invalid " 
                           "16r7B73"    16r0000 " invalid " 
                           "16r7B74"    16r6429 " <CJK> " 
                           "16r7B75"    16r6427 " <CJK> " 
                           "16r7B76"    16r0000 " invalid " 
                           "16r7B77"    16r0000 " invalid " 
                           "16r7B78"    16r0000 " invalid " 
                           "16r7B79"    16r0000 " invalid " 
                           "16r7B7A"    16r6421 " <CJK> " 
                           "16r7B7B"    16r0000 " invalid " 
                           "16r7B7C"    16r0000 " invalid " 
                           "16r7B7D"    16r0000 " invalid " 
                           "16r7B7E"    16r0000 " invalid " 
                           "16r7B7F"    16r0000 " invalid " 
                           "16r7B80"    16r0000 " invalid " 
                           "16r7B81"    16r0000 " invalid " 
                           "16r7B82"    16r0000 " invalid " 
                           "16r7B83"    16r0000 " invalid " 
                           "16r7B84"    16r0000 " invalid " 
                           "16r7B85"    16r0000 " invalid " 
                           "16r7B86"    16r4A4F " <CJK> " 
                           "16r7B87"    16r3255 " <CJK> " 
                           "16r7B88"    16r0000 " invalid " 
                           "16r7B89"    16r0000 " invalid " 
                           "16r7B8A"    16r0000 " invalid " 
                           "16r7B8B"    16r6435 " <CJK> " 
                           "16r7B8C"    16r0000 " invalid " 
                           "16r7B8D"    16r6432 " <CJK> " 
                           "16r7B8E"    16r0000 " invalid " 
                           "16r7B8F"    16r6437 " <CJK> " 
                           "16r7B90"    16r0000 " invalid " 
                           "16r7B91"    16r0000 " invalid " 
                           "16r7B92"    16r6436 " <CJK> " 
                           "16r7B93"    16r0000 " invalid " 
                           "16r7B94"    16r4773 " <CJK> " 
                           "16r7B95"    16r4C27 " <CJK> " 
                           "16r7B96"    16r0000 " invalid " 
                           "16r7B97"    16r3B3B " <CJK> " 
                           "16r7B98"    16r6430 " <CJK> " 
                           "16r7B99"    16r6439 " <CJK> " 
                           "16r7B9A"    16r6434 " <CJK> " 
                           "16r7B9B"    16r0000 " invalid " 
                           "16r7B9C"    16r6433 " <CJK> " 
                           "16r7B9D"    16r642F " <CJK> " 
                           "16r7B9E"    16r0000 " invalid " 
                           "16r7B9F"    16r6431 " <CJK> " 
                           "16r7BA0"    16r0000 " invalid " 
                           "16r7BA1"    16r3449 " <CJK> " 
                           "16r7BA2"    16r0000 " invalid " 
                           "16r7BA3"    16r0000 " invalid " 
                           "16r7BA4"    16r0000 " invalid " 
                           "16r7BA5"    16r0000 " invalid " 
                           "16r7BA6"    16r0000 " invalid " 
                           "16r7BA7"    16r0000 " invalid " 
                           "16r7BA8"    16r0000 " invalid " 
                           "16r7BA9"    16r0000 " invalid " 
                           "16r7BAA"    16r433D " <CJK> " 
                           "16r7BAB"    16r0000 " invalid " 
                           "16r7BAC"    16r0000 " invalid " 
                           "16r7BAD"    16r407D " <CJK> " 
                           "16r7BAE"    16r0000 " invalid " 
                           "16r7BAF"    16r0000 " invalid " 
                           "16r7BB0"    16r0000 " invalid " 
                           "16r7BB1"    16r4822 " <CJK> " 
                           "16r7BB2"    16r0000 " invalid " 
                           "16r7BB3"    16r0000 " invalid " 
                           "16r7BB4"    16r643E " <CJK> " 
                           "16r7BB5"    16r0000 " invalid " 
                           "16r7BB6"    16r0000 " invalid " 
                           "16r7BB7"    16r0000 " invalid " 
                           "16r7BB8"    16r4824 " <CJK> " 
                           "16r7BB9"    16r0000 " invalid " 
                           "16r7BBA"    16r0000 " invalid " 
                           "16r7BBB"    16r0000 " invalid " 
                           "16r7BBC"    16r0000 " invalid " 
                           "16r7BBD"    16r0000 " invalid " 
                           "16r7BBE"    16r0000 " invalid " 
                           "16r7BBF"    16r0000 " invalid " 
                           "16r7BC0"    16r4061 " <CJK> " 
                           "16r7BC1"    16r643B " <CJK> " 
                           "16r7BC2"    16r0000 " invalid " 
                           "16r7BC3"    16r0000 " invalid " 
                           "16r7BC4"    16r484F " <CJK> " 
                           "16r7BC5"    16r0000 " invalid " 
                           "16r7BC6"    16r643F " <CJK> " 
                           "16r7BC7"    16r4A53 " <CJK> " 
                           "16r7BC8"    16r0000 " invalid " 
                           "16r7BC9"    16r435B " <CJK> " 
                           "16r7BCA"    16r0000 " invalid " 
                           "16r7BCB"    16r643A " <CJK> " 
                           "16r7BCC"    16r643C " <CJK> " 
                           "16r7BCD"    16r0000 " invalid " 
                           "16r7BCE"    16r0000 " invalid " 
                           "16r7BCF"    16r643D " <CJK> " 
                           "16r7BD0"    16r0000 " invalid " 
                           "16r7BD1"    16r0000 " invalid " 
                           "16r7BD2"    16r0000 " invalid " 
                           "16r7BD3"    16r0000 " invalid " 
                           "16r7BD4"    16r0000 " invalid " 
                           "16r7BD5"    16r0000 " invalid " 
                           "16r7BD6"    16r0000 " invalid " 
                           "16r7BD7"    16r0000 " invalid " 
                           "16r7BD8"    16r0000 " invalid " 
                           "16r7BD9"    16r0000 " invalid " 
                           "16r7BDA"    16r0000 " invalid " 
                           "16r7BDB"    16r0000 " invalid " 
                           "16r7BDC"    16r0000 " invalid " 
                           "16r7BDD"    16r6440 " <CJK> " 
                           "16r7BDE"    16r0000 " invalid " 
                           "16r7BDF"    16r0000 " invalid " 
                           "16r7BE0"    16r3C44 " <CJK> " 
                           "16r7BE1"    16r0000 " invalid " 
                           "16r7BE2"    16r0000 " invalid " 
                           "16r7BE3"    16r0000 " invalid " 
                           "16r7BE4"    16r4646 " <CJK> " 
                           "16r7BE5"    16r6445 " <CJK> " 
                           "16r7BE6"    16r6444 " <CJK> " 
                           "16r7BE7"    16r0000 " invalid " 
                           "16r7BE8"    16r0000 " invalid " 
                           "16r7BE9"    16r6441 " <CJK> " 
                           "16r7BEA"    16r0000 " invalid " 
                           "16r7BEB"    16r0000 " invalid " 
                           "16r7BEC"    16r0000 " invalid " 
                           "16r7BED"    16r4F36 " <CJK> " 
                           "16r7BEE"    16r0000 " invalid " 
                           "16r7BEF"    16r0000 " invalid " 
                           "16r7BF0"    16r0000 " invalid " 
                           "16r7BF1"    16r0000 " invalid " 
                           "16r7BF2"    16r0000 " invalid " 
                           "16r7BF3"    16r644A " <CJK> " 
                           "16r7BF4"    16r0000 " invalid " 
                           "16r7BF5"    16r0000 " invalid " 
                           "16r7BF6"    16r644E " <CJK> " 
                           "16r7BF7"    16r644B " <CJK> " 
                           "16r7BF8"    16r0000 " invalid " 
                           "16r7BF9"    16r0000 " invalid " 
                           "16r7BFA"    16r0000 " invalid " 
                           "16r7BFB"    16r0000 " invalid " 
                           "16r7BFC"    16r0000 " invalid " 
                           "16r7BFD"    16r0000 " invalid " 
                           "16r7BFE"    16r0000 " invalid " 
                           "16r7BFF"    16r0000 " invalid " 
                           "16r7C00"    16r6447 " <CJK> " 
                           "16r7C01"    16r0000 " invalid " 
                           "16r7C02"    16r0000 " invalid " 
                           "16r7C03"    16r0000 " invalid " 
                           "16r7C04"    16r0000 " invalid " 
                           "16r7C05"    16r0000 " invalid " 
                           "16r7C06"    16r0000 " invalid " 
                           "16r7C07"    16r6448 " <CJK> " 
                           "16r7C08"    16r0000 " invalid " 
                           "16r7C09"    16r0000 " invalid " 
                           "16r7C0A"    16r0000 " invalid " 
                           "16r7C0B"    16r0000 " invalid " 
                           "16r7C0C"    16r0000 " invalid " 
                           "16r7C0D"    16r644D " <CJK> " 
                           "16r7C0E"    16r0000 " invalid " 
                           "16r7C0F"    16r0000 " invalid " 
                           "16r7C10"    16r0000 " invalid " 
                           "16r7C11"    16r6442 " <CJK> " 
                           "16r7C12"    16r5255 " <CJK> " 
                           "16r7C13"    16r6449 " <CJK> " 
                           "16r7C14"    16r6443 " <CJK> " 
                           "16r7C15"    16r0000 " invalid " 
                           "16r7C16"    16r0000 " invalid " 
                           "16r7C17"    16r644C " <CJK> " 
                           "16r7C18"    16r0000 " invalid " 
                           "16r7C19"    16r0000 " invalid " 
                           "16r7C1A"    16r0000 " invalid " 
                           "16r7C1B"    16r0000 " invalid " 
                           "16r7C1C"    16r0000 " invalid " 
                           "16r7C1D"    16r0000 " invalid " 
                           "16r7C1E"    16r0000 " invalid " 
                           "16r7C1F"    16r6452 " <CJK> " 
                           "16r7C20"    16r0000 " invalid " 
                           "16r7C21"    16r344A " <CJK> " 
                           "16r7C22"    16r0000 " invalid " 
                           "16r7C23"    16r644F " <CJK> " 
                           "16r7C24"    16r0000 " invalid " 
                           "16r7C25"    16r0000 " invalid " 
                           "16r7C26"    16r0000 " invalid " 
                           "16r7C27"    16r6450 " <CJK> " 
                           "16r7C28"    16r0000 " invalid " 
                           "16r7C29"    16r0000 " invalid " 
                           "16r7C2A"    16r6451 " <CJK> " 
                           "16r7C2B"    16r6454 " <CJK> " 
                           "16r7C2C"    16r0000 " invalid " 
                           "16r7C2D"    16r0000 " invalid " 
                           "16r7C2E"    16r0000 " invalid " 
                           "16r7C2F"    16r0000 " invalid " 
                           "16r7C30"    16r0000 " invalid " 
                           "16r7C31"    16r0000 " invalid " 
                           "16r7C32"    16r0000 " invalid " 
                           "16r7C33"    16r0000 " invalid " 
                           "16r7C34"    16r0000 " invalid " 
                           "16r7C35"    16r0000 " invalid " 
                           "16r7C36"    16r0000 " invalid " 
                           "16r7C37"    16r6453 " <CJK> " 
                           "16r7C38"    16r4876 " <CJK> " 
                           "16r7C39"    16r0000 " invalid " 
                           "16r7C3A"    16r0000 " invalid " 
                           "16r7C3B"    16r0000 " invalid " 
                           "16r7C3C"    16r0000 " invalid " 
                           "16r7C3D"    16r6455 " <CJK> " 
                           "16r7C3E"    16r4E7C " <CJK> " 
                           "16r7C3F"    16r4A6D " <CJK> " 
                           "16r7C40"    16r645A " <CJK> " 
                           "16r7C41"    16r0000 " invalid " 
                           "16r7C42"    16r0000 " invalid " 
                           "16r7C43"    16r6457 " <CJK> " 
                           "16r7C44"    16r0000 " invalid " 
                           "16r7C45"    16r0000 " invalid " 
                           "16r7C46"    16r0000 " invalid " 
                           "16r7C47"    16r0000 " invalid " 
                           "16r7C48"    16r0000 " invalid " 
                           "16r7C49"    16r0000 " invalid " 
                           "16r7C4A"    16r0000 " invalid " 
                           "16r7C4B"    16r0000 " invalid " 
                           "16r7C4C"    16r6456 " <CJK> " 
                           "16r7C4D"    16r4052 " <CJK> " 
                           "16r7C4E"    16r0000 " invalid " 
                           "16r7C4F"    16r6459 " <CJK> " 
                           "16r7C50"    16r645B " <CJK> " 
                           "16r7C51"    16r0000 " invalid " 
                           "16r7C52"    16r0000 " invalid " 
                           "16r7C53"    16r0000 " invalid " 
                           "16r7C54"    16r6458 " <CJK> " 
                           "16r7C55"    16r0000 " invalid " 
                           "16r7C56"    16r645F " <CJK> " 
                           "16r7C57"    16r0000 " invalid " 
                           "16r7C58"    16r645C " <CJK> " 
                           "16r7C59"    16r0000 " invalid " 
                           "16r7C5A"    16r0000 " invalid " 
                           "16r7C5B"    16r0000 " invalid " 
                           "16r7C5C"    16r0000 " invalid " 
                           "16r7C5D"    16r0000 " invalid " 
                           "16r7C5E"    16r0000 " invalid " 
                           "16r7C5F"    16r645D " <CJK> " 
                           "16r7C60"    16r6446 " <CJK> " 
                           "16r7C61"    16r0000 " invalid " 
                           "16r7C62"    16r0000 " invalid " 
                           "16r7C63"    16r0000 " invalid " 
                           "16r7C64"    16r645E " <CJK> " 
                           "16r7C65"    16r6460 " <CJK> " 
                           "16r7C66"    16r0000 " invalid " 
                           "16r7C67"    16r0000 " invalid " 
                           "16r7C68"    16r0000 " invalid " 
                           "16r7C69"    16r0000 " invalid " 
                           "16r7C6A"    16r0000 " invalid " 
                           "16r7C6B"    16r0000 " invalid " 
                           "16r7C6C"    16r6461 " <CJK> " 
                           "16r7C6D"    16r0000 " invalid " 
                           "16r7C6E"    16r0000 " invalid " 
                           "16r7C6F"    16r0000 " invalid " 
                           "16r7C70"    16r0000 " invalid " 
                           "16r7C71"    16r0000 " invalid " 
                           "16r7C72"    16r0000 " invalid " 
                           "16r7C73"    16r4A46 " <CJK> " 
                           "16r7C74"    16r0000 " invalid " 
                           "16r7C75"    16r6462 " <CJK> " 
                           "16r7C76"    16r0000 " invalid " 
                           "16r7C77"    16r0000 " invalid " 
                           "16r7C78"    16r0000 " invalid " 
                           "16r7C79"    16r0000 " invalid " 
                           "16r7C7A"    16r0000 " invalid " 
                           "16r7C7B"    16r0000 " invalid " 
                           "16r7C7C"    16r0000 " invalid " 
                           "16r7C7D"    16r0000 " invalid " 
                           "16r7C7E"    16r4C62 " <CJK> " 
                           "16r7C7F"    16r0000 " invalid " 
                           "16r7C80"    16r0000 " invalid " 
                           "16r7C81"    16r364E " <CJK> " 
                           "16r7C82"    16r3729 " <CJK> " 
                           "16r7C83"    16r6463 " <CJK> " 
                           "16r7C84"    16r0000 " invalid " 
                           "16r7C85"    16r0000 " invalid " 
                           "16r7C86"    16r0000 " invalid " 
                           "16r7C87"    16r0000 " invalid " 
                           "16r7C88"    16r0000 " invalid " 
                           "16r7C89"    16r4A34 " <CJK> " 
                           "16r7C8A"    16r0000 " invalid " 
                           "16r7C8B"    16r3F68 " <CJK> " 
                           "16r7C8C"    16r0000 " invalid " 
                           "16r7C8D"    16r4C30 " <CJK> " 
                           "16r7C8E"    16r0000 " invalid " 
                           "16r7C8F"    16r0000 " invalid " 
                           "16r7C90"    16r6464 " <CJK> " 
                           "16r7C91"    16r0000 " invalid " 
                           "16r7C92"    16r4E33 " <CJK> " 
                           "16r7C93"    16r0000 " invalid " 
                           "16r7C94"    16r0000 " invalid " 
                           "16r7C95"    16r4774 " <CJK> " 
                           "16r7C96"    16r0000 " invalid " 
                           "16r7C97"    16r4146 " <CJK> " 
                           "16r7C98"    16r4734 " <CJK> " 
                           "16r7C99"    16r0000 " invalid " 
                           "16r7C9A"    16r0000 " invalid " 
                           "16r7C9B"    16r3D4D " <CJK> " 
                           "16r7C9C"    16r0000 " invalid " 
                           "16r7C9D"    16r0000 " invalid " 
                           "16r7C9E"    16r0000 " invalid " 
                           "16r7C9F"    16r3040 " <CJK> " 
                           "16r7CA0"    16r0000 " invalid " 
                           "16r7CA1"    16r6469 " <CJK> " 
                           "16r7CA2"    16r6467 " <CJK> " 
                           "16r7CA3"    16r0000 " invalid " 
                           "16r7CA4"    16r6465 " <CJK> " 
                           "16r7CA5"    16r3421 " <CJK> " 
                           "16r7CA6"    16r0000 " invalid " 
                           "16r7CA7"    16r3E51 " <CJK> " 
                           "16r7CA8"    16r646A " <CJK> " 
                           "16r7CA9"    16r0000 " invalid " 
                           "16r7CAA"    16r0000 " invalid " 
                           "16r7CAB"    16r6468 " <CJK> " 
                           "16r7CAC"    16r0000 " invalid " 
                           "16r7CAD"    16r6466 " <CJK> " 
                           "16r7CAE"    16r646E " <CJK> " 
                           "16r7CAF"    16r0000 " invalid " 
                           "16r7CB0"    16r0000 " invalid " 
                           "16r7CB1"    16r646D " <CJK> " 
                           "16r7CB2"    16r646C " <CJK> " 
                           "16r7CB3"    16r646B " <CJK> " 
                           "16r7CB4"    16r0000 " invalid " 
                           "16r7CB5"    16r0000 " invalid " 
                           "16r7CB6"    16r0000 " invalid " 
                           "16r7CB7"    16r0000 " invalid " 
                           "16r7CB8"    16r0000 " invalid " 
                           "16r7CB9"    16r646F " <CJK> " 
                           "16r7CBA"    16r0000 " invalid " 
                           "16r7CBB"    16r0000 " invalid " 
                           "16r7CBC"    16r0000 " invalid " 
                           "16r7CBD"    16r6470 " <CJK> " 
                           "16r7CBE"    16r403A " <CJK> " 
                           "16r7CBF"    16r0000 " invalid " 
                           "16r7CC0"    16r6471 " <CJK> " 
                           "16r7CC1"    16r0000 " invalid " 
                           "16r7CC2"    16r6473 " <CJK> " 
                           "16r7CC3"    16r0000 " invalid " 
                           "16r7CC4"    16r0000 " invalid " 
                           "16r7CC5"    16r6472 " <CJK> " 
                           "16r7CC6"    16r0000 " invalid " 
                           "16r7CC7"    16r0000 " invalid " 
                           "16r7CC8"    16r0000 " invalid " 
                           "16r7CC9"    16r0000 " invalid " 
                           "16r7CCA"    16r3852 " <CJK> " 
                           "16r7CCB"    16r0000 " invalid " 
                           "16r7CCC"    16r0000 " invalid " 
                           "16r7CCD"    16r0000 " invalid " 
                           "16r7CCE"    16r4138 " <CJK> " 
                           "16r7CCF"    16r0000 " invalid " 
                           "16r7CD0"    16r0000 " invalid " 
                           "16r7CD1"    16r0000 " invalid " 
                           "16r7CD2"    16r6475 " <CJK> " 
                           "16r7CD3"    16r0000 " invalid " 
                           "16r7CD4"    16r0000 " invalid " 
                           "16r7CD5"    16r0000 " invalid " 
                           "16r7CD6"    16r457C " <CJK> " 
                           "16r7CD7"    16r0000 " invalid " 
                           "16r7CD8"    16r6474 " <CJK> " 
                           "16r7CD9"    16r0000 " invalid " 
                           "16r7CDA"    16r0000 " invalid " 
                           "16r7CDB"    16r0000 " invalid " 
                           "16r7CDC"    16r6476 " <CJK> " 
                           "16r7CDD"    16r0000 " invalid " 
                           "16r7CDE"    16r4A35 " <CJK> " 
                           "16r7CDF"    16r416C " <CJK> " 
                           "16r7CE0"    16r3947 " <CJK> " 
                           "16r7CE1"    16r0000 " invalid " 
                           "16r7CE2"    16r6477 " <CJK> " 
                           "16r7CE3"    16r0000 " invalid " 
                           "16r7CE4"    16r0000 " invalid " 
                           "16r7CE5"    16r0000 " invalid " 
                           "16r7CE6"    16r0000 " invalid " 
                           "16r7CE7"    16r4E48 " <CJK> " 
                           "16r7CE8"    16r0000 " invalid " 
                           "16r7CE9"    16r0000 " invalid " 
                           "16r7CEA"    16r0000 " invalid " 
                           "16r7CEB"    16r0000 " invalid " 
                           "16r7CEC"    16r0000 " invalid " 
                           "16r7CED"    16r0000 " invalid " 
                           "16r7CEE"    16r0000 " invalid " 
                           "16r7CEF"    16r6479 " <CJK> " 
                           "16r7CF0"    16r0000 " invalid " 
                           "16r7CF1"    16r0000 " invalid " 
                           "16r7CF2"    16r647A " <CJK> " 
                           "16r7CF3"    16r0000 " invalid " 
                           "16r7CF4"    16r647B " <CJK> " 
                           "16r7CF5"    16r0000 " invalid " 
                           "16r7CF6"    16r647C " <CJK> " 
                           "16r7CF7"    16r0000 " invalid " 
                           "16r7CF8"    16r3B65 " <CJK> " 
                           "16r7CF9"    16r0000 " invalid " 
                           "16r7CFA"    16r647D " <CJK> " 
                           "16r7CFB"    16r374F " <CJK> " 
                           "16r7CFC"    16r0000 " invalid " 
                           "16r7CFD"    16r0000 " invalid " 
                           "16r7CFE"    16r356A " <CJK> " 
                           "16r7CFF"    16r0000 " invalid " 
                           "16r7D00"    16r352A " <CJK> " 
                           "16r7D01"    16r0000 " invalid " 
                           "16r7D02"    16r6521 " <CJK> " 
                           "16r7D03"    16r0000 " invalid " 
                           "16r7D04"    16r4C73 " <CJK> " 
                           "16r7D05"    16r3948 " <CJK> " 
                           "16r7D06"    16r647E " <CJK> " 
                           "16r7D07"    16r0000 " invalid " 
                           "16r7D08"    16r0000 " invalid " 
                           "16r7D09"    16r0000 " invalid " 
                           "16r7D0A"    16r6524 " <CJK> " 
                           "16r7D0B"    16r4C66 " <CJK> " 
                           "16r7D0C"    16r0000 " invalid " 
                           "16r7D0D"    16r473C " <CJK> " 
                           "16r7D0E"    16r0000 " invalid " 
                           "16r7D0F"    16r0000 " invalid " 
                           "16r7D10"    16r4933 " <CJK> " 
                           "16r7D11"    16r0000 " invalid " 
                           "16r7D12"    16r0000 " invalid " 
                           "16r7D13"    16r0000 " invalid " 
                           "16r7D14"    16r3D63 " <CJK> " 
                           "16r7D15"    16r6523 " <CJK> " 
                           "16r7D16"    16r0000 " invalid " 
                           "16r7D17"    16r3C53 " <CJK> " 
                           "16r7D18"    16r3949 " <CJK> " 
                           "16r7D19"    16r3B66 " <CJK> " 
                           "16r7D1A"    16r3569 " <CJK> " 
                           "16r7D1B"    16r4A36 " <CJK> " 
                           "16r7D1C"    16r6522 " <CJK> " 
                           "16r7D1D"    16r0000 " invalid " 
                           "16r7D1E"    16r0000 " invalid " 
                           "16r7D1F"    16r0000 " invalid " 
                           "16r7D20"    16r4147 " <CJK> " 
                           "16r7D21"    16r4B42 " <CJK> " 
                           "16r7D22"    16r3A77 " <CJK> " 
                           "16r7D23"    16r0000 " invalid " 
                           "16r7D24"    16r0000 " invalid " 
                           "16r7D25"    16r0000 " invalid " 
                           "16r7D26"    16r0000 " invalid " 
                           "16r7D27"    16r0000 " invalid " 
                           "16r7D28"    16r0000 " invalid " 
                           "16r7D29"    16r0000 " invalid " 
                           "16r7D2A"    16r0000 " invalid " 
                           "16r7D2B"    16r3B67 " <CJK> " 
                           "16r7D2C"    16r445D " <CJK> " 
                           "16r7D2D"    16r0000 " invalid " 
                           "16r7D2E"    16r6527 " <CJK> " 
                           "16r7D2F"    16r4E5F " <CJK> " 
                           "16r7D30"    16r3A59 " <CJK> " 
                           "16r7D31"    16r0000 " invalid " 
                           "16r7D32"    16r6528 " <CJK> " 
                           "16r7D33"    16r3F42 " <CJK> " 
                           "16r7D34"    16r0000 " invalid " 
                           "16r7D35"    16r652A " <CJK> " 
                           "16r7D36"    16r0000 " invalid " 
                           "16r7D37"    16r0000 " invalid " 
                           "16r7D38"    16r0000 " invalid " 
                           "16r7D39"    16r3E52 " <CJK> " 
                           "16r7D3A"    16r3A30 " <CJK> " 
                           "16r7D3B"    16r0000 " invalid " 
                           "16r7D3C"    16r0000 " invalid " 
                           "16r7D3D"    16r0000 " invalid " 
                           "16r7D3E"    16r0000 " invalid " 
                           "16r7D3F"    16r6529 " <CJK> " 
                           "16r7D40"    16r0000 " invalid " 
                           "16r7D41"    16r0000 " invalid " 
                           "16r7D42"    16r3D2A " <CJK> " 
                           "16r7D43"    16r383E " <CJK> " 
                           "16r7D44"    16r4148 " <CJK> " 
                           "16r7D45"    16r6525 " <CJK> " 
                           "16r7D46"    16r652B " <CJK> " 
                           "16r7D47"    16r0000 " invalid " 
                           "16r7D48"    16r0000 " invalid " 
                           "16r7D49"    16r0000 " invalid " 
                           "16r7D4A"    16r0000 " invalid " 
                           "16r7D4B"    16r6526 " <CJK> " 
                           "16r7D4C"    16r3750 " <CJK> " 
                           "16r7D4D"    16r0000 " invalid " 
                           "16r7D4E"    16r652E " <CJK> " 
                           "16r7D4F"    16r6532 " <CJK> " 
                           "16r7D50"    16r376B " <CJK> " 
                           "16r7D51"    16r0000 " invalid " 
                           "16r7D52"    16r0000 " invalid " 
                           "16r7D53"    16r0000 " invalid " 
                           "16r7D54"    16r0000 " invalid " 
                           "16r7D55"    16r0000 " invalid " 
                           "16r7D56"    16r652D " <CJK> " 
                           "16r7D57"    16r0000 " invalid " 
                           "16r7D58"    16r0000 " invalid " 
                           "16r7D59"    16r0000 " invalid " 
                           "16r7D5A"    16r0000 " invalid " 
                           "16r7D5B"    16r6536 " <CJK> " 
                           "16r7D5C"    16r0000 " invalid " 
                           "16r7D5D"    16r0000 " invalid " 
                           "16r7D5E"    16r394A " <CJK> " 
                           "16r7D5F"    16r0000 " invalid " 
                           "16r7D60"    16r0000 " invalid " 
                           "16r7D61"    16r4D6D " <CJK> " 
                           "16r7D62"    16r303C " <CJK> " 
                           "16r7D63"    16r6533 " <CJK> " 
                           "16r7D64"    16r0000 " invalid " 
                           "16r7D65"    16r0000 " invalid " 
                           "16r7D66"    16r356B " <CJK> " 
                           "16r7D67"    16r0000 " invalid " 
                           "16r7D68"    16r6530 " <CJK> " 
                           "16r7D69"    16r0000 " invalid " 
                           "16r7D6A"    16r0000 " invalid " 
                           "16r7D6B"    16r0000 " invalid " 
                           "16r7D6C"    16r0000 " invalid " 
                           "16r7D6D"    16r0000 " invalid " 
                           "16r7D6E"    16r6531 " <CJK> " 
                           "16r7D6F"    16r0000 " invalid " 
                           "16r7D70"    16r0000 " invalid " 
                           "16r7D71"    16r457D " <CJK> " 
                           "16r7D72"    16r652F " <CJK> " 
                           "16r7D73"    16r652C " <CJK> " 
                           "16r7D74"    16r0000 " invalid " 
                           "16r7D75"    16r3328 " <CJK> " 
                           "16r7D76"    16r4064 " <CJK> " 
                           "16r7D77"    16r0000 " invalid " 
                           "16r7D78"    16r0000 " invalid " 
                           "16r7D79"    16r3828 " <CJK> " 
                           "16r7D7A"    16r0000 " invalid " 
                           "16r7D7B"    16r0000 " invalid " 
                           "16r7D7C"    16r0000 " invalid " 
                           "16r7D7D"    16r6538 " <CJK> " 
                           "16r7D7E"    16r0000 " invalid " 
                           "16r7D7F"    16r0000 " invalid " 
                           "16r7D80"    16r0000 " invalid " 
                           "16r7D81"    16r0000 " invalid " 
                           "16r7D82"    16r0000 " invalid " 
                           "16r7D83"    16r0000 " invalid " 
                           "16r7D84"    16r0000 " invalid " 
                           "16r7D85"    16r0000 " invalid " 
                           "16r7D86"    16r0000 " invalid " 
                           "16r7D87"    16r0000 " invalid " 
                           "16r7D88"    16r0000 " invalid " 
                           "16r7D89"    16r6535 " <CJK> " 
                           "16r7D8A"    16r0000 " invalid " 
                           "16r7D8B"    16r0000 " invalid " 
                           "16r7D8C"    16r0000 " invalid " 
                           "16r7D8D"    16r0000 " invalid " 
                           "16r7D8E"    16r0000 " invalid " 
                           "16r7D8F"    16r6537 " <CJK> " 
                           "16r7D90"    16r0000 " invalid " 
                           "16r7D91"    16r0000 " invalid " 
                           "16r7D92"    16r0000 " invalid " 
                           "16r7D93"    16r6534 " <CJK> " 
                           "16r7D94"    16r0000 " invalid " 
                           "16r7D95"    16r0000 " invalid " 
                           "16r7D96"    16r0000 " invalid " 
                           "16r7D97"    16r0000 " invalid " 
                           "16r7D98"    16r0000 " invalid " 
                           "16r7D99"    16r3751 " <CJK> " 
                           "16r7D9A"    16r4233 " <CJK> " 
                           "16r7D9B"    16r6539 " <CJK> " 
                           "16r7D9C"    16r416E " <CJK> " 
                           "16r7D9D"    16r0000 " invalid " 
                           "16r7D9E"    16r0000 " invalid " 
                           "16r7D9F"    16r6546 " <CJK> " 
                           "16r7DA0"    16r0000 " invalid " 
                           "16r7DA1"    16r0000 " invalid " 
                           "16r7DA2"    16r6542 " <CJK> " 
                           "16r7DA3"    16r653C " <CJK> " 
                           "16r7DA4"    16r0000 " invalid " 
                           "16r7DA5"    16r0000 " invalid " 
                           "16r7DA6"    16r0000 " invalid " 
                           "16r7DA7"    16r0000 " invalid " 
                           "16r7DA8"    16r0000 " invalid " 
                           "16r7DA9"    16r0000 " invalid " 
                           "16r7DAA"    16r0000 " invalid " 
                           "16r7DAB"    16r6540 " <CJK> " 
                           "16r7DAC"    16r3C7A " <CJK> " 
                           "16r7DAD"    16r305D " <CJK> " 
                           "16r7DAE"    16r653B " <CJK> " 
                           "16r7DAF"    16r6543 " <CJK> " 
                           "16r7DB0"    16r6547 " <CJK> " 
                           "16r7DB1"    16r394B " <CJK> " 
                           "16r7DB2"    16r4C56 " <CJK> " 
                           "16r7DB3"    16r0000 " invalid " 
                           "16r7DB4"    16r4456 " <CJK> " 
                           "16r7DB5"    16r653D " <CJK> " 
                           "16r7DB6"    16r0000 " invalid " 
                           "16r7DB7"    16r0000 " invalid " 
                           "16r7DB8"    16r6545 " <CJK> " 
                           "16r7DB9"    16r0000 " invalid " 
                           "16r7DBA"    16r653A " <CJK> " 
                           "16r7DBB"    16r433E " <CJK> " 
                           "16r7DBC"    16r0000 " invalid " 
                           "16r7DBD"    16r653F " <CJK> " 
                           "16r7DBE"    16r303D " <CJK> " 
                           "16r7DBF"    16r4C4A " <CJK> " 
                           "16r7DC0"    16r0000 " invalid " 
                           "16r7DC1"    16r0000 " invalid " 
                           "16r7DC2"    16r0000 " invalid " 
                           "16r7DC3"    16r0000 " invalid " 
                           "16r7DC4"    16r0000 " invalid " 
                           "16r7DC5"    16r0000 " invalid " 
                           "16r7DC6"    16r0000 " invalid " 
                           "16r7DC7"    16r653E " <CJK> " 
                           "16r7DC8"    16r0000 " invalid " 
                           "16r7DC9"    16r0000 " invalid " 
                           "16r7DCA"    16r365B " <CJK> " 
                           "16r7DCB"    16r486C " <CJK> " 
                           "16r7DCC"    16r0000 " invalid " 
                           "16r7DCD"    16r0000 " invalid " 
                           "16r7DCE"    16r0000 " invalid " 
                           "16r7DCF"    16r416D " <CJK> " 
                           "16r7DD0"    16r0000 " invalid " 
                           "16r7DD1"    16r4E50 " <CJK> " 
                           "16r7DD2"    16r3D6F " <CJK> " 
                           "16r7DD3"    16r0000 " invalid " 
                           "16r7DD4"    16r0000 " invalid " 
                           "16r7DD5"    16r656E " <CJK> " 
                           "16r7DD6"    16r0000 " invalid " 
                           "16r7DD7"    16r0000 " invalid " 
                           "16r7DD8"    16r6548 " <CJK> " 
                           "16r7DD9"    16r0000 " invalid " 
                           "16r7DDA"    16r407E " <CJK> " 
                           "16r7DDB"    16r0000 " invalid " 
                           "16r7DDC"    16r6544 " <CJK> " 
                           "16r7DDD"    16r6549 " <CJK> " 
                           "16r7DDE"    16r654B " <CJK> " 
                           "16r7DDF"    16r0000 " invalid " 
                           "16r7DE0"    16r4479 " <CJK> " 
                           "16r7DE1"    16r654E " <CJK> " 
                           "16r7DE2"    16r0000 " invalid " 
                           "16r7DE3"    16r0000 " invalid " 
                           "16r7DE4"    16r654A " <CJK> " 
                           "16r7DE5"    16r0000 " invalid " 
                           "16r7DE6"    16r0000 " invalid " 
                           "16r7DE7"    16r0000 " invalid " 
                           "16r7DE8"    16r4A54 " <CJK> " 
                           "16r7DE9"    16r344B " <CJK> " 
                           "16r7DEA"    16r0000 " invalid " 
                           "16r7DEB"    16r0000 " invalid " 
                           "16r7DEC"    16r4C4B " <CJK> " 
                           "16r7DED"    16r0000 " invalid " 
                           "16r7DEE"    16r0000 " invalid " 
                           "16r7DEF"    16r305E " <CJK> " 
                           "16r7DF0"    16r0000 " invalid " 
                           "16r7DF1"    16r0000 " invalid " 
                           "16r7DF2"    16r654D " <CJK> " 
                           "16r7DF3"    16r0000 " invalid " 
                           "16r7DF4"    16r4E7D " <CJK> " 
                           "16r7DF5"    16r0000 " invalid " 
                           "16r7DF6"    16r0000 " invalid " 
                           "16r7DF7"    16r0000 " invalid " 
                           "16r7DF8"    16r0000 " invalid " 
                           "16r7DF9"    16r0000 " invalid " 
                           "16r7DFA"    16r0000 " invalid " 
                           "16r7DFB"    16r654C " <CJK> " 
                           "16r7DFC"    16r0000 " invalid " 
                           "16r7DFD"    16r0000 " invalid " 
                           "16r7DFE"    16r0000 " invalid " 
                           "16r7DFF"    16r0000 " invalid " 
                           "16r7E00"    16r0000 " invalid " 
                           "16r7E01"    16r316F " <CJK> " 
                           "16r7E02"    16r0000 " invalid " 
                           "16r7E03"    16r0000 " invalid " 
                           "16r7E04"    16r466C " <CJK> " 
                           "16r7E05"    16r654F " <CJK> " 
                           "16r7E06"    16r0000 " invalid " 
                           "16r7E07"    16r0000 " invalid " 
                           "16r7E08"    16r0000 " invalid " 
                           "16r7E09"    16r6556 " <CJK> " 
                           "16r7E0A"    16r6550 " <CJK> " 
                           "16r7E0B"    16r6557 " <CJK> " 
                           "16r7E0C"    16r0000 " invalid " 
                           "16r7E0D"    16r0000 " invalid " 
                           "16r7E0E"    16r0000 " invalid " 
                           "16r7E0F"    16r0000 " invalid " 
                           "16r7E10"    16r0000 " invalid " 
                           "16r7E11"    16r0000 " invalid " 
                           "16r7E12"    16r6553 " <CJK> " 
                           "16r7E13"    16r0000 " invalid " 
                           "16r7E14"    16r0000 " invalid " 
                           "16r7E15"    16r0000 " invalid " 
                           "16r7E16"    16r0000 " invalid " 
                           "16r7E17"    16r0000 " invalid " 
                           "16r7E18"    16r0000 " invalid " 
                           "16r7E19"    16r0000 " invalid " 
                           "16r7E1A"    16r0000 " invalid " 
                           "16r7E1B"    16r477B " <CJK> " 
                           "16r7E1C"    16r0000 " invalid " 
                           "16r7E1D"    16r0000 " invalid " 
                           "16r7E1E"    16r3C4A " <CJK> " 
                           "16r7E1F"    16r6555 " <CJK> " 
                           "16r7E20"    16r0000 " invalid " 
                           "16r7E21"    16r6552 " <CJK> " 
                           "16r7E22"    16r6558 " <CJK> " 
                           "16r7E23"    16r6551 " <CJK> " 
                           "16r7E24"    16r0000 " invalid " 
                           "16r7E25"    16r0000 " invalid " 
                           "16r7E26"    16r3D44 " <CJK> " 
                           "16r7E27"    16r0000 " invalid " 
                           "16r7E28"    16r0000 " invalid " 
                           "16r7E29"    16r0000 " invalid " 
                           "16r7E2A"    16r0000 " invalid " 
                           "16r7E2B"    16r4B25 " <CJK> " 
                           "16r7E2C"    16r0000 " invalid " 
                           "16r7E2D"    16r0000 " invalid " 
                           "16r7E2E"    16r3D4C " <CJK> " 
                           "16r7E2F"    16r0000 " invalid " 
                           "16r7E30"    16r0000 " invalid " 
                           "16r7E31"    16r6554 " <CJK> " 
                           "16r7E32"    16r6560 " <CJK> " 
                           "16r7E33"    16r0000 " invalid " 
                           "16r7E34"    16r0000 " invalid " 
                           "16r7E35"    16r655C " <CJK> " 
                           "16r7E36"    16r0000 " invalid " 
                           "16r7E37"    16r655F " <CJK> " 
                           "16r7E38"    16r0000 " invalid " 
                           "16r7E39"    16r655D " <CJK> " 
                           "16r7E3A"    16r6561 " <CJK> " 
                           "16r7E3B"    16r655B " <CJK> " 
                           "16r7E3C"    16r0000 " invalid " 
                           "16r7E3D"    16r6541 " <CJK> " 
                           "16r7E3E"    16r4053 " <CJK> " 
                           "16r7E3F"    16r0000 " invalid " 
                           "16r7E40"    16r0000 " invalid " 
                           "16r7E41"    16r484B " <CJK> " 
                           "16r7E42"    16r0000 " invalid " 
                           "16r7E43"    16r655E " <CJK> " 
                           "16r7E44"    16r0000 " invalid " 
                           "16r7E45"    16r0000 " invalid " 
                           "16r7E46"    16r6559 " <CJK> " 
                           "16r7E47"    16r0000 " invalid " 
                           "16r7E48"    16r0000 " invalid " 
                           "16r7E49"    16r0000 " invalid " 
                           "16r7E4A"    16r4121 " <CJK> " 
                           "16r7E4B"    16r3752 " <CJK> " 
                           "16r7E4C"    16r0000 " invalid " 
                           "16r7E4D"    16r3D2B " <CJK> " 
                           "16r7E4E"    16r0000 " invalid " 
                           "16r7E4F"    16r0000 " invalid " 
                           "16r7E50"    16r0000 " invalid " 
                           "16r7E51"    16r0000 " invalid " 
                           "16r7E52"    16r0000 " invalid " 
                           "16r7E53"    16r0000 " invalid " 
                           "16r7E54"    16r3F25 " <CJK> " 
                           "16r7E55"    16r4136 " <CJK> " 
                           "16r7E56"    16r6564 " <CJK> " 
                           "16r7E57"    16r0000 " invalid " 
                           "16r7E58"    16r0000 " invalid " 
                           "16r7E59"    16r6566 " <CJK> " 
                           "16r7E5A"    16r6567 " <CJK> " 
                           "16r7E5B"    16r0000 " invalid " 
                           "16r7E5C"    16r0000 " invalid " 
                           "16r7E5D"    16r6563 " <CJK> " 
                           "16r7E5E"    16r6565 " <CJK> " 
                           "16r7E5F"    16r0000 " invalid " 
                           "16r7E60"    16r0000 " invalid " 
                           "16r7E61"    16r0000 " invalid " 
                           "16r7E62"    16r0000 " invalid " 
                           "16r7E63"    16r0000 " invalid " 
                           "16r7E64"    16r0000 " invalid " 
                           "16r7E65"    16r0000 " invalid " 
                           "16r7E66"    16r655A " <CJK> " 
                           "16r7E67"    16r6562 " <CJK> " 
                           "16r7E68"    16r0000 " invalid " 
                           "16r7E69"    16r656A " <CJK> " 
                           "16r7E6A"    16r6569 " <CJK> " 
                           "16r7E6B"    16r0000 " invalid " 
                           "16r7E6C"    16r0000 " invalid " 
                           "16r7E6D"    16r4B7A " <CJK> " 
                           "16r7E6E"    16r0000 " invalid " 
                           "16r7E6F"    16r0000 " invalid " 
                           "16r7E70"    16r372B " <CJK> " 
                           "16r7E71"    16r0000 " invalid " 
                           "16r7E72"    16r0000 " invalid " 
                           "16r7E73"    16r0000 " invalid " 
                           "16r7E74"    16r0000 " invalid " 
                           "16r7E75"    16r0000 " invalid " 
                           "16r7E76"    16r0000 " invalid " 
                           "16r7E77"    16r0000 " invalid " 
                           "16r7E78"    16r0000 " invalid " 
                           "16r7E79"    16r6568 " <CJK> " 
                           "16r7E7A"    16r0000 " invalid " 
                           "16r7E7B"    16r656C " <CJK> " 
                           "16r7E7C"    16r656B " <CJK> " 
                           "16r7E7D"    16r656F " <CJK> " 
                           "16r7E7E"    16r0000 " invalid " 
                           "16r7E7F"    16r6571 " <CJK> " 
                           "16r7E80"    16r0000 " invalid " 
                           "16r7E81"    16r0000 " invalid " 
                           "16r7E82"    16r3B3C " <CJK> " 
                           "16r7E83"    16r656D " <CJK> " 
                           "16r7E84"    16r0000 " invalid " 
                           "16r7E85"    16r0000 " invalid " 
                           "16r7E86"    16r0000 " invalid " 
                           "16r7E87"    16r0000 " invalid " 
                           "16r7E88"    16r6572 " <CJK> " 
                           "16r7E89"    16r6573 " <CJK> " 
                           "16r7E8A"    16r0000 " invalid " 
                           "16r7E8B"    16r0000 " invalid " 
                           "16r7E8C"    16r6574 " <CJK> " 
                           "16r7E8D"    16r0000 " invalid " 
                           "16r7E8E"    16r657A " <CJK> " 
                           "16r7E8F"    16r453B " <CJK> " 
                           "16r7E90"    16r6576 " <CJK> " 
                           "16r7E91"    16r0000 " invalid " 
                           "16r7E92"    16r6575 " <CJK> " 
                           "16r7E93"    16r6577 " <CJK> " 
                           "16r7E94"    16r6578 " <CJK> " 
                           "16r7E95"    16r0000 " invalid " 
                           "16r7E96"    16r6579 " <CJK> " 
                           "16r7E97"    16r0000 " invalid " 
                           "16r7E98"    16r0000 " invalid " 
                           "16r7E99"    16r0000 " invalid " 
                           "16r7E9A"    16r0000 " invalid " 
                           "16r7E9B"    16r657B " <CJK> " 
                           "16r7E9C"    16r657C " <CJK> " 
                           ) at:(unicode - 16r4DFF).
                        t == 0 ifFalse:[^ t].
                        ^ self encodingError
                    ] value.
                ].
                unicode <= 16r7F35 ifTrue:[
                    ^ self encodingError.
                ].
                [
                    |t|
                    t := #(
                       "16r7F36"    16r344C " <CJK> " 
                       "16r7F37"    16r0000 " invalid " 
                       "16r7F38"    16r657D " <CJK> " 
                       "16r7F39"    16r0000 " invalid " 
                       "16r7F3A"    16r657E " <CJK> " 
                       "16r7F3B"    16r0000 " invalid " 
                       "16r7F3C"    16r0000 " invalid " 
                       "16r7F3D"    16r0000 " invalid " 
                       "16r7F3E"    16r0000 " invalid " 
                       "16r7F3F"    16r0000 " invalid " 
                       "16r7F40"    16r0000 " invalid " 
                       "16r7F41"    16r0000 " invalid " 
                       "16r7F42"    16r0000 " invalid " 
                       "16r7F43"    16r0000 " invalid " 
                       "16r7F44"    16r0000 " invalid " 
                       "16r7F45"    16r6621 " <CJK> " 
                       "16r7F46"    16r0000 " invalid " 
                       "16r7F47"    16r0000 " invalid " 
                       "16r7F48"    16r0000 " invalid " 
                       "16r7F49"    16r0000 " invalid " 
                       "16r7F4A"    16r0000 " invalid " 
                       "16r7F4B"    16r0000 " invalid " 
                       "16r7F4C"    16r6622 " <CJK> " 
                       "16r7F4D"    16r6623 " <CJK> " 
                       "16r7F4E"    16r6624 " <CJK> " 
                       "16r7F4F"    16r0000 " invalid " 
                       "16r7F50"    16r6625 " <CJK> " 
                       "16r7F51"    16r6626 " <CJK> " 
                       "16r7F52"    16r0000 " invalid " 
                       "16r7F53"    16r0000 " invalid " 
                       "16r7F54"    16r6628 " <CJK> " 
                       "16r7F55"    16r6627 " <CJK> " 
                       "16r7F56"    16r0000 " invalid " 
                       "16r7F57"    16r0000 " invalid " 
                       "16r7F58"    16r6629 " <CJK> " 
                       "16r7F59"    16r0000 " invalid " 
                       "16r7F5A"    16r0000 " invalid " 
                       "16r7F5B"    16r0000 " invalid " 
                       "16r7F5C"    16r0000 " invalid " 
                       "16r7F5D"    16r0000 " invalid " 
                       "16r7F5E"    16r0000 " invalid " 
                       "16r7F5F"    16r662A " <CJK> " 
                       "16r7F60"    16r662B " <CJK> " 
                       "16r7F61"    16r0000 " invalid " 
                       "16r7F62"    16r0000 " invalid " 
                       "16r7F63"    16r0000 " invalid " 
                       "16r7F64"    16r0000 " invalid " 
                       "16r7F65"    16r0000 " invalid " 
                       "16r7F66"    16r0000 " invalid " 
                       "16r7F67"    16r662E " <CJK> " 
                       "16r7F68"    16r662C " <CJK> " 
                       "16r7F69"    16r662D " <CJK> " 
                       "16r7F6A"    16r3A61 " <CJK> " 
                       "16r7F6B"    16r3753 " <CJK> " 
                       "16r7F6C"    16r0000 " invalid " 
                       "16r7F6D"    16r0000 " invalid " 
                       "16r7F6E"    16r4356 " <CJK> " 
                       "16r7F6F"    16r0000 " invalid " 
                       "16r7F70"    16r4833 " <CJK> " 
                       "16r7F71"    16r0000 " invalid " 
                       "16r7F72"    16r3D70 " <CJK> " 
                       "16r7F73"    16r0000 " invalid " 
                       "16r7F74"    16r0000 " invalid " 
                       "16r7F75"    16r474D " <CJK> " 
                       "16r7F76"    16r0000 " invalid " 
                       "16r7F77"    16r486D " <CJK> " 
                       "16r7F78"    16r662F " <CJK> " 
                       "16r7F79"    16r586D " <CJK> " 
                       "16r7F7A"    16r0000 " invalid " 
                       "16r7F7B"    16r0000 " invalid " 
                       "16r7F7C"    16r0000 " invalid " 
                       "16r7F7D"    16r0000 " invalid " 
                       "16r7F7E"    16r0000 " invalid " 
                       "16r7F7F"    16r0000 " invalid " 
                       "16r7F80"    16r0000 " invalid " 
                       "16r7F81"    16r0000 " invalid " 
                       "16r7F82"    16r6630 " <CJK> " 
                       "16r7F83"    16r6632 " <CJK> " 
                       "16r7F84"    16r0000 " invalid " 
                       "16r7F85"    16r4D65 " <CJK> " 
                       "16r7F86"    16r6631 " <CJK> " 
                       "16r7F87"    16r6634 " <CJK> " 
                       "16r7F88"    16r6633 " <CJK> " 
                       "16r7F89"    16r0000 " invalid " 
                       "16r7F8A"    16r4D53 " <CJK> " 
                       "16r7F8B"    16r0000 " invalid " 
                       "16r7F8C"    16r6635 " <CJK> " 
                       "16r7F8D"    16r0000 " invalid " 
                       "16r7F8E"    16r487E " <CJK> " 
                       "16r7F8F"    16r0000 " invalid " 
                       "16r7F90"    16r0000 " invalid " 
                       "16r7F91"    16r0000 " invalid " 
                       "16r7F92"    16r0000 " invalid " 
                       "16r7F93"    16r0000 " invalid " 
                       "16r7F94"    16r6636 " <CJK> " 
                       "16r7F95"    16r0000 " invalid " 
                       "16r7F96"    16r0000 " invalid " 
                       "16r7F97"    16r0000 " invalid " 
                       "16r7F98"    16r0000 " invalid " 
                       "16r7F99"    16r0000 " invalid " 
                       "16r7F9A"    16r6639 " <CJK> " 
                       "16r7F9B"    16r0000 " invalid " 
                       "16r7F9C"    16r0000 " invalid " 
                       "16r7F9D"    16r6638 " <CJK> " 
                       "16r7F9E"    16r6637 " <CJK> " 
                       "16r7F9F"    16r0000 " invalid " 
                       "16r7FA0"    16r0000 " invalid " 
                       "16r7FA1"    16r0000 " invalid " 
                       "16r7FA2"    16r0000 " invalid " 
                       "16r7FA3"    16r663A " <CJK> " 
                       "16r7FA4"    16r3732 " <CJK> " 
                       "16r7FA5"    16r0000 " invalid " 
                       "16r7FA6"    16r0000 " invalid " 
                       "16r7FA7"    16r0000 " invalid " 
                       "16r7FA8"    16r4122 " <CJK> " 
                       "16r7FA9"    16r3541 " <CJK> " 
                       "16r7FAA"    16r0000 " invalid " 
                       "16r7FAB"    16r0000 " invalid " 
                       "16r7FAC"    16r0000 " invalid " 
                       "16r7FAD"    16r0000 " invalid " 
                       "16r7FAE"    16r663E " <CJK> " 
                       "16r7FAF"    16r663B " <CJK> " 
                       "16r7FB0"    16r0000 " invalid " 
                       "16r7FB1"    16r0000 " invalid " 
                       "16r7FB2"    16r663C " <CJK> " 
                       "16r7FB3"    16r0000 " invalid " 
                       "16r7FB4"    16r0000 " invalid " 
                       "16r7FB5"    16r0000 " invalid " 
                       "16r7FB6"    16r663F " <CJK> " 
                       "16r7FB7"    16r0000 " invalid " 
                       "16r7FB8"    16r6640 " <CJK> " 
                       "16r7FB9"    16r663D " <CJK> " 
                       "16r7FBA"    16r0000 " invalid " 
                       "16r7FBB"    16r0000 " invalid " 
                       "16r7FBC"    16r0000 " invalid " 
                       "16r7FBD"    16r3129 " <CJK> " 
                       "16r7FBE"    16r0000 " invalid " 
                       "16r7FBF"    16r0000 " invalid " 
                       "16r7FC0"    16r0000 " invalid " 
                       "16r7FC1"    16r3227 " <CJK> " 
                       "16r7FC2"    16r0000 " invalid " 
                       "16r7FC3"    16r0000 " invalid " 
                       "16r7FC4"    16r0000 " invalid " 
                       "16r7FC5"    16r6642 " <CJK> " 
                       "16r7FC6"    16r6643 " <CJK> " 
                       "16r7FC7"    16r0000 " invalid " 
                       "16r7FC8"    16r0000 " invalid " 
                       "16r7FC9"    16r0000 " invalid " 
                       "16r7FCA"    16r6644 " <CJK> " 
                       "16r7FCB"    16r0000 " invalid " 
                       "16r7FCC"    16r4D62 " <CJK> " 
                       "16r7FCD"    16r0000 " invalid " 
                       "16r7FCE"    16r0000 " invalid " 
                       "16r7FCF"    16r0000 " invalid " 
                       "16r7FD0"    16r0000 " invalid " 
                       "16r7FD1"    16r0000 " invalid " 
                       "16r7FD2"    16r3D2C " <CJK> " 
                       "16r7FD3"    16r0000 " invalid " 
                       "16r7FD4"    16r6646 " <CJK> " 
                       "16r7FD5"    16r6645 " <CJK> " 
                       "16r7FD6"    16r0000 " invalid " 
                       "16r7FD7"    16r0000 " invalid " 
                       "16r7FD8"    16r0000 " invalid " 
                       "16r7FD9"    16r0000 " invalid " 
                       "16r7FDA"    16r0000 " invalid " 
                       "16r7FDB"    16r0000 " invalid " 
                       "16r7FDC"    16r0000 " invalid " 
                       "16r7FDD"    16r0000 " invalid " 
                       "16r7FDE"    16r0000 " invalid " 
                       "16r7FDF"    16r0000 " invalid " 
                       "16r7FE0"    16r3F69 " <CJK> " 
                       "16r7FE1"    16r6647 " <CJK> " 
                       "16r7FE2"    16r0000 " invalid " 
                       "16r7FE3"    16r0000 " invalid " 
                       "16r7FE4"    16r0000 " invalid " 
                       "16r7FE5"    16r0000 " invalid " 
                       "16r7FE6"    16r6648 " <CJK> " 
                       "16r7FE7"    16r0000 " invalid " 
                       "16r7FE8"    16r0000 " invalid " 
                       "16r7FE9"    16r6649 " <CJK> " 
                       "16r7FEA"    16r0000 " invalid " 
                       "16r7FEB"    16r3465 " <CJK> " 
                       "16r7FEC"    16r0000 " invalid " 
                       "16r7FED"    16r0000 " invalid " 
                       "16r7FEE"    16r0000 " invalid " 
                       "16r7FEF"    16r0000 " invalid " 
                       "16r7FF0"    16r344D " <CJK> " 
                       "16r7FF1"    16r0000 " invalid " 
                       "16r7FF2"    16r0000 " invalid " 
                       "16r7FF3"    16r664A " <CJK> " 
                       "16r7FF4"    16r0000 " invalid " 
                       "16r7FF5"    16r0000 " invalid " 
                       "16r7FF6"    16r0000 " invalid " 
                       "16r7FF7"    16r0000 " invalid " 
                       "16r7FF8"    16r0000 " invalid " 
                       "16r7FF9"    16r664B " <CJK> " 
                       "16r7FFA"    16r0000 " invalid " 
                       "16r7FFB"    16r4B5D " <CJK> " 
                       "16r7FFC"    16r4D63 " <CJK> " 
                       "16r7FFD"    16r0000 " invalid " 
                       "16r7FFE"    16r0000 " invalid " 
                       "16r7FFF"    16r0000 " invalid " 
                       "16r8000"    16r4D54 " <CJK> " 
                       "16r8001"    16r4F37 " <CJK> " 
                       "16r8002"    16r0000 " invalid " 
                       "16r8003"    16r394D " <CJK> " 
                       "16r8004"    16r664E " <CJK> " 
                       "16r8005"    16r3C54 " <CJK> " 
                       "16r8006"    16r664D " <CJK> " 
                       "16r8007"    16r0000 " invalid " 
                       "16r8008"    16r0000 " invalid " 
                       "16r8009"    16r0000 " invalid " 
                       "16r800A"    16r0000 " invalid " 
                       "16r800B"    16r664F " <CJK> " 
                       "16r800C"    16r3C29 " <CJK> " 
                       "16r800D"    16r0000 " invalid " 
                       "16r800E"    16r0000 " invalid " 
                       "16r800F"    16r0000 " invalid " 
                       "16r8010"    16r4251 " <CJK> " 
                       "16r8011"    16r0000 " invalid " 
                       "16r8012"    16r6650 " <CJK> " 
                       "16r8013"    16r0000 " invalid " 
                       "16r8014"    16r0000 " invalid " 
                       "16r8015"    16r394C " <CJK> " 
                       "16r8016"    16r0000 " invalid " 
                       "16r8017"    16r4C57 " <CJK> " 
                       "16r8018"    16r6651 " <CJK> " 
                       "16r8019"    16r6652 " <CJK> " 
                       "16r801A"    16r0000 " invalid " 
                       "16r801B"    16r0000 " invalid " 
                       "16r801C"    16r6653 " <CJK> " 
                       "16r801D"    16r0000 " invalid " 
                       "16r801E"    16r0000 " invalid " 
                       "16r801F"    16r0000 " invalid " 
                       "16r8020"    16r0000 " invalid " 
                       "16r8021"    16r6654 " <CJK> " 
                       "16r8022"    16r0000 " invalid " 
                       "16r8023"    16r0000 " invalid " 
                       "16r8024"    16r0000 " invalid " 
                       "16r8025"    16r0000 " invalid " 
                       "16r8026"    16r0000 " invalid " 
                       "16r8027"    16r0000 " invalid " 
                       "16r8028"    16r6655 " <CJK> " 
                       "16r8029"    16r0000 " invalid " 
                       "16r802A"    16r0000 " invalid " 
                       "16r802B"    16r0000 " invalid " 
                       "16r802C"    16r0000 " invalid " 
                       "16r802D"    16r0000 " invalid " 
                       "16r802E"    16r0000 " invalid " 
                       "16r802F"    16r0000 " invalid " 
                       "16r8030"    16r0000 " invalid " 
                       "16r8031"    16r0000 " invalid " 
                       "16r8032"    16r0000 " invalid " 
                       "16r8033"    16r3C2A " <CJK> " 
                       "16r8034"    16r0000 " invalid " 
                       "16r8035"    16r0000 " invalid " 
                       "16r8036"    16r4C6D " <CJK> " 
                       "16r8037"    16r0000 " invalid " 
                       "16r8038"    16r0000 " invalid " 
                       "16r8039"    16r0000 " invalid " 
                       "16r803A"    16r0000 " invalid " 
                       "16r803B"    16r6657 " <CJK> " 
                       "16r803C"    16r0000 " invalid " 
                       "16r803D"    16r433F " <CJK> " 
                       "16r803E"    16r0000 " invalid " 
                       "16r803F"    16r6656 " <CJK> " 
                       "16r8040"    16r0000 " invalid " 
                       "16r8041"    16r0000 " invalid " 
                       "16r8042"    16r0000 " invalid " 
                       "16r8043"    16r0000 " invalid " 
                       "16r8044"    16r0000 " invalid " 
                       "16r8045"    16r0000 " invalid " 
                       "16r8046"    16r6659 " <CJK> " 
                       "16r8047"    16r0000 " invalid " 
                       "16r8048"    16r0000 " invalid " 
                       "16r8049"    16r0000 " invalid " 
                       "16r804A"    16r6658 " <CJK> " 
                       "16r804B"    16r0000 " invalid " 
                       "16r804C"    16r0000 " invalid " 
                       "16r804D"    16r0000 " invalid " 
                       "16r804E"    16r0000 " invalid " 
                       "16r804F"    16r0000 " invalid " 
                       "16r8050"    16r0000 " invalid " 
                       "16r8051"    16r0000 " invalid " 
                       "16r8052"    16r665A " <CJK> " 
                       "16r8053"    16r0000 " invalid " 
                       "16r8054"    16r0000 " invalid " 
                       "16r8055"    16r0000 " invalid " 
                       "16r8056"    16r403B " <CJK> " 
                       "16r8057"    16r0000 " invalid " 
                       "16r8058"    16r665B " <CJK> " 
                       "16r8059"    16r0000 " invalid " 
                       "16r805A"    16r665C " <CJK> " 
                       "16r805B"    16r0000 " invalid " 
                       "16r805C"    16r0000 " invalid " 
                       "16r805D"    16r0000 " invalid " 
                       "16r805E"    16r4A39 " <CJK> " 
                       "16r805F"    16r665D " <CJK> " 
                       "16r8060"    16r0000 " invalid " 
                       "16r8061"    16r416F " <CJK> " 
                       "16r8062"    16r665E " <CJK> " 
                       "16r8063"    16r0000 " invalid " 
                       "16r8064"    16r0000 " invalid " 
                       "16r8065"    16r0000 " invalid " 
                       "16r8066"    16r0000 " invalid " 
                       "16r8067"    16r0000 " invalid " 
                       "16r8068"    16r665F " <CJK> " 
                       "16r8069"    16r0000 " invalid " 
                       "16r806A"    16r0000 " invalid " 
                       "16r806B"    16r0000 " invalid " 
                       "16r806C"    16r0000 " invalid " 
                       "16r806D"    16r0000 " invalid " 
                       "16r806E"    16r0000 " invalid " 
                       "16r806F"    16r4E7E " <CJK> " 
                       "16r8070"    16r6662 " <CJK> " 
                       "16r8071"    16r0000 " invalid " 
                       "16r8072"    16r6661 " <CJK> " 
                       "16r8073"    16r6660 " <CJK> " 
                       "16r8074"    16r4430 " <CJK> " 
                       "16r8075"    16r0000 " invalid " 
                       "16r8076"    16r6663 " <CJK> " 
                       "16r8077"    16r3F26 " <CJK> " 
                       "16r8078"    16r0000 " invalid " 
                       "16r8079"    16r6664 " <CJK> " 
                       "16r807A"    16r0000 " invalid " 
                       "16r807B"    16r0000 " invalid " 
                       "16r807C"    16r0000 " invalid " 
                       "16r807D"    16r6665 " <CJK> " 
                       "16r807E"    16r4F38 " <CJK> " 
                       "16r807F"    16r6666 " <CJK> " 
                       "16r8080"    16r0000 " invalid " 
                       "16r8081"    16r0000 " invalid " 
                       "16r8082"    16r0000 " invalid " 
                       "16r8083"    16r0000 " invalid " 
                       "16r8084"    16r6667 " <CJK> " 
                       "16r8085"    16r6669 " <CJK> " 
                       "16r8086"    16r6668 " <CJK> " 
                       "16r8087"    16r4825 " <CJK> " 
                       "16r8088"    16r0000 " invalid " 
                       "16r8089"    16r4679 " <CJK> " 
                       "16r808A"    16r0000 " invalid " 
                       "16r808B"    16r4F3E " <CJK> " 
                       "16r808C"    16r4829 " <CJK> " 
                       "16r808D"    16r0000 " invalid " 
                       "16r808E"    16r0000 " invalid " 
                       "16r808F"    16r0000 " invalid " 
                       "16r8090"    16r0000 " invalid " 
                       "16r8091"    16r0000 " invalid " 
                       "16r8092"    16r0000 " invalid " 
                       "16r8093"    16r666B " <CJK> " 
                       "16r8094"    16r0000 " invalid " 
                       "16r8095"    16r0000 " invalid " 
                       "16r8096"    16r3E53 " <CJK> " 
                       "16r8097"    16r0000 " invalid " 
                       "16r8098"    16r492A " <CJK> " 
                       "16r8099"    16r0000 " invalid " 
                       "16r809A"    16r666C " <CJK> " 
                       "16r809B"    16r666A " <CJK> " 
                       "16r809C"    16r0000 " invalid " 
                       "16r809D"    16r344E " <CJK> " 
                       "16r809E"    16r0000 " invalid " 
                       "16r809F"    16r0000 " invalid " 
                       "16r80A0"    16r0000 " invalid " 
                       "16r80A1"    16r3854 " <CJK> " 
                       "16r80A2"    16r3B68 " <CJK> " 
                       "16r80A3"    16r0000 " invalid " 
                       "16r80A4"    16r0000 " invalid " 
                       "16r80A5"    16r486E " <CJK> " 
                       "16r80A6"    16r0000 " invalid " 
                       "16r80A7"    16r0000 " invalid " 
                       "16r80A8"    16r0000 " invalid " 
                       "16r80A9"    16r382A " <CJK> " 
                       "16r80AA"    16r4B43 " <CJK> " 
                       "16r80AB"    16r0000 " invalid " 
                       "16r80AC"    16r666F " <CJK> " 
                       "16r80AD"    16r666D " <CJK> " 
                       "16r80AE"    16r0000 " invalid " 
                       "16r80AF"    16r394E " <CJK> " 
                       "16r80B0"    16r0000 " invalid " 
                       "16r80B1"    16r394F " <CJK> " 
                       "16r80B2"    16r3069 " <CJK> " 
                       "16r80B3"    16r0000 " invalid " 
                       "16r80B4"    16r3A68 " <CJK> " 
                       "16r80B5"    16r0000 " invalid " 
                       "16r80B6"    16r0000 " invalid " 
                       "16r80B7"    16r0000 " invalid " 
                       "16r80B8"    16r0000 " invalid " 
                       "16r80B9"    16r0000 " invalid " 
                       "16r80BA"    16r4759 " <CJK> " 
                       "16r80BB"    16r0000 " invalid " 
                       "16r80BC"    16r0000 " invalid " 
                       "16r80BD"    16r0000 " invalid " 
                       "16r80BE"    16r0000 " invalid " 
                       "16r80BF"    16r0000 " invalid " 
                       "16r80C0"    16r0000 " invalid " 
                       "16r80C1"    16r0000 " invalid " 
                       "16r80C2"    16r0000 " invalid " 
                       "16r80C3"    16r305F " <CJK> " 
                       "16r80C4"    16r6674 " <CJK> " 
                       "16r80C5"    16r0000 " invalid " 
                       "16r80C6"    16r4340 " <CJK> " 
                       "16r80C7"    16r0000 " invalid " 
                       "16r80C8"    16r0000 " invalid " 
                       "16r80C9"    16r0000 " invalid " 
                       "16r80CA"    16r0000 " invalid " 
                       "16r80CB"    16r0000 " invalid " 
                       "16r80CC"    16r4758 " <CJK> " 
                       "16r80CD"    16r0000 " invalid " 
                       "16r80CE"    16r425B " <CJK> " 
                       "16r80CF"    16r0000 " invalid " 
                       "16r80D0"    16r0000 " invalid " 
                       "16r80D1"    16r0000 " invalid " 
                       "16r80D2"    16r0000 " invalid " 
                       "16r80D3"    16r0000 " invalid " 
                       "16r80D4"    16r0000 " invalid " 
                       "16r80D5"    16r0000 " invalid " 
                       "16r80D6"    16r6676 " <CJK> " 
                       "16r80D7"    16r0000 " invalid " 
                       "16r80D8"    16r0000 " invalid " 
                       "16r80D9"    16r6672 " <CJK> " 
                       "16r80DA"    16r6675 " <CJK> " 
                       "16r80DB"    16r6670 " <CJK> " 
                       "16r80DC"    16r0000 " invalid " 
                       "16r80DD"    16r6673 " <CJK> " 
                       "16r80DE"    16r4B26 " <CJK> " 
                       "16r80DF"    16r0000 " invalid " 
                       "16r80E0"    16r0000 " invalid " 
                       "16r80E1"    16r3855 " <CJK> " 
                       "16r80E2"    16r0000 " invalid " 
                       "16r80E3"    16r0000 " invalid " 
                       "16r80E4"    16r307D " <CJK> " 
                       "16r80E5"    16r6671 " <CJK> " 
                       "16r80E6"    16r0000 " invalid " 
                       "16r80E7"    16r0000 " invalid " 
                       "16r80E8"    16r0000 " invalid " 
                       "16r80E9"    16r0000 " invalid " 
                       "16r80EA"    16r0000 " invalid " 
                       "16r80EB"    16r0000 " invalid " 
                       "16r80EC"    16r0000 " invalid " 
                       "16r80ED"    16r0000 " invalid " 
                       "16r80EE"    16r0000 " invalid " 
                       "16r80EF"    16r6678 " <CJK> " 
                       "16r80F0"    16r0000 " invalid " 
                       "16r80F1"    16r6679 " <CJK> " 
                       "16r80F2"    16r0000 " invalid " 
                       "16r80F3"    16r0000 " invalid " 
                       "16r80F4"    16r4639 " <CJK> " 
                       "16r80F5"    16r0000 " invalid " 
                       "16r80F6"    16r0000 " invalid " 
                       "16r80F7"    16r0000 " invalid " 
                       "16r80F8"    16r363B " <CJK> " 
                       "16r80F9"    16r0000 " invalid " 
                       "16r80FA"    16r0000 " invalid " 
                       "16r80FB"    16r0000 " invalid " 
                       "16r80FC"    16r6726 " <CJK> " 
                       "16r80FD"    16r473D " <CJK> " 
                       "16r80FE"    16r0000 " invalid " 
                       "16r80FF"    16r0000 " invalid " 
                       "16r8100"    16r0000 " invalid " 
                       "16r8101"    16r0000 " invalid " 
                       "16r8102"    16r3B69 " <CJK> " 
                       "16r8103"    16r0000 " invalid " 
                       "16r8104"    16r0000 " invalid " 
                       "16r8105"    16r363C " <CJK> " 
                       "16r8106"    16r4048 " <CJK> " 
                       "16r8107"    16r4F46 " <CJK> " 
                       "16r8108"    16r4C2E " <CJK> " 
                       "16r8109"    16r6677 " <CJK> " 
                       "16r810A"    16r4054 " <CJK> " 
                       "16r810B"    16r0000 " invalid " 
                       "16r810C"    16r0000 " invalid " 
                       "16r810D"    16r0000 " invalid " 
                       "16r810E"    16r0000 " invalid " 
                       "16r810F"    16r0000 " invalid " 
                       "16r8110"    16r0000 " invalid " 
                       "16r8111"    16r0000 " invalid " 
                       "16r8112"    16r0000 " invalid " 
                       "16r8113"    16r0000 " invalid " 
                       "16r8114"    16r0000 " invalid " 
                       "16r8115"    16r0000 " invalid " 
                       "16r8116"    16r0000 " invalid " 
                       "16r8117"    16r0000 " invalid " 
                       "16r8118"    16r0000 " invalid " 
                       "16r8119"    16r0000 " invalid " 
                       "16r811A"    16r3553 " <CJK> " 
                       "16r811B"    16r667A " <CJK> " 
                       "16r811C"    16r0000 " invalid " 
                       "16r811D"    16r0000 " invalid " 
                       "16r811E"    16r0000 " invalid " 
                       "16r811F"    16r0000 " invalid " 
                       "16r8120"    16r0000 " invalid " 
                       "16r8121"    16r0000 " invalid " 
                       "16r8122"    16r0000 " invalid " 
                       "16r8123"    16r667C " <CJK> " 
                       "16r8124"    16r0000 " invalid " 
                       "16r8125"    16r0000 " invalid " 
                       "16r8126"    16r0000 " invalid " 
                       "16r8127"    16r0000 " invalid " 
                       "16r8128"    16r0000 " invalid " 
                       "16r8129"    16r667B " <CJK> " 
                       "16r812A"    16r0000 " invalid " 
                       "16r812B"    16r0000 " invalid " 
                       "16r812C"    16r0000 " invalid " 
                       "16r812D"    16r0000 " invalid " 
                       "16r812E"    16r0000 " invalid " 
                       "16r812F"    16r667D " <CJK> " 
                       "16r8130"    16r0000 " invalid " 
                       "16r8131"    16r4326 " <CJK> " 
                       "16r8132"    16r0000 " invalid " 
                       "16r8133"    16r473E " <CJK> " 
                       "16r8134"    16r0000 " invalid " 
                       "16r8135"    16r0000 " invalid " 
                       "16r8136"    16r0000 " invalid " 
                       "16r8137"    16r0000 " invalid " 
                       "16r8138"    16r0000 " invalid " 
                       "16r8139"    16r4431 " <CJK> " 
                       "16r813A"    16r0000 " invalid " 
                       "16r813B"    16r0000 " invalid " 
                       "16r813C"    16r0000 " invalid " 
                       "16r813D"    16r0000 " invalid " 
                       "16r813E"    16r6723 " <CJK> " 
                       "16r813F"    16r0000 " invalid " 
                       "16r8140"    16r0000 " invalid " 
                       "16r8141"    16r0000 " invalid " 
                       "16r8142"    16r0000 " invalid " 
                       "16r8143"    16r0000 " invalid " 
                       "16r8144"    16r0000 " invalid " 
                       "16r8145"    16r0000 " invalid " 
                       "16r8146"    16r6722 " <CJK> " 
                       "16r8147"    16r0000 " invalid " 
                       "16r8148"    16r0000 " invalid " 
                       "16r8149"    16r0000 " invalid " 
                       "16r814A"    16r0000 " invalid " 
                       "16r814B"    16r667E " <CJK> " 
                       "16r814C"    16r0000 " invalid " 
                       "16r814D"    16r0000 " invalid " 
                       "16r814E"    16r3F55 " <CJK> " 
                       "16r814F"    16r0000 " invalid " 
                       "16r8150"    16r4965 " <CJK> " 
                       "16r8151"    16r6725 " <CJK> " 
                       "16r8152"    16r0000 " invalid " 
                       "16r8153"    16r6724 " <CJK> " 
                       "16r8154"    16r3950 " <CJK> " 
                       "16r8155"    16r4F53 " <CJK> " 
                       "16r8156"    16r0000 " invalid " 
                       "16r8157"    16r0000 " invalid " 
                       "16r8158"    16r0000 " invalid " 
                       "16r8159"    16r0000 " invalid " 
                       "16r815A"    16r0000 " invalid " 
                       "16r815B"    16r0000 " invalid " 
                       "16r815C"    16r0000 " invalid " 
                       "16r815D"    16r0000 " invalid " 
                       "16r815E"    16r0000 " invalid " 
                       "16r815F"    16r6735 " <CJK> " 
                       "16r8160"    16r0000 " invalid " 
                       "16r8161"    16r0000 " invalid " 
                       "16r8162"    16r0000 " invalid " 
                       "16r8163"    16r0000 " invalid " 
                       "16r8164"    16r0000 " invalid " 
                       "16r8165"    16r6729 " <CJK> " 
                       "16r8166"    16r672A " <CJK> " 
                       "16r8167"    16r0000 " invalid " 
                       "16r8168"    16r0000 " invalid " 
                       "16r8169"    16r0000 " invalid " 
                       "16r816A"    16r0000 " invalid " 
                       "16r816B"    16r3C70 " <CJK> " 
                       "16r816C"    16r0000 " invalid " 
                       "16r816D"    16r0000 " invalid " 
                       "16r816E"    16r6728 " <CJK> " 
                       "16r816F"    16r0000 " invalid " 
                       "16r8170"    16r3978 " <CJK> " 
                       "16r8171"    16r6727 " <CJK> " 
                       "16r8172"    16r0000 " invalid " 
                       "16r8173"    16r0000 " invalid " 
                       "16r8174"    16r672B " <CJK> " 
                       "16r8175"    16r0000 " invalid " 
                       "16r8176"    16r0000 " invalid " 
                       "16r8177"    16r0000 " invalid " 
                       "16r8178"    16r4432 " <CJK> " 
                       "16r8179"    16r4A22 " <CJK> " 
                       "16r817A"    16r4123 " <CJK> " 
                       "16r817B"    16r0000 " invalid " 
                       "16r817C"    16r0000 " invalid " 
                       "16r817D"    16r0000 " invalid " 
                       "16r817E"    16r0000 " invalid " 
                       "16r817F"    16r425C " <CJK> " 
                       "16r8180"    16r672F " <CJK> " 
                       "16r8181"    16r0000 " invalid " 
                       "16r8182"    16r6730 " <CJK> " 
                       "16r8183"    16r672C " <CJK> " 
                       "16r8184"    16r0000 " invalid " 
                       "16r8185"    16r0000 " invalid " 
                       "16r8186"    16r0000 " invalid " 
                       "16r8187"    16r0000 " invalid " 
                       "16r8188"    16r672D " <CJK> " 
                       "16r8189"    16r0000 " invalid " 
                       "16r818A"    16r672E " <CJK> " 
                       "16r818B"    16r0000 " invalid " 
                       "16r818C"    16r0000 " invalid " 
                       "16r818D"    16r0000 " invalid " 
                       "16r818E"    16r0000 " invalid " 
                       "16r818F"    16r3951 " <CJK> " 
                       "16r8190"    16r0000 " invalid " 
                       "16r8191"    16r0000 " invalid " 
                       "16r8192"    16r0000 " invalid " 
                       "16r8193"    16r6736 " <CJK> " 
                       "16r8194"    16r0000 " invalid " 
                       "16r8195"    16r6732 " <CJK> " 
                       "16r8196"    16r0000 " invalid " 
                       "16r8197"    16r0000 " invalid " 
                       "16r8198"    16r0000 " invalid " 
                       "16r8199"    16r0000 " invalid " 
                       "16r819A"    16r4966 " <CJK> " 
                       "16r819B"    16r0000 " invalid " 
                       "16r819C"    16r4B6C " <CJK> " 
                       "16r819D"    16r4928 " <CJK> " 
                       "16r819E"    16r0000 " invalid " 
                       "16r819F"    16r0000 " invalid " 
                       "16r81A0"    16r6731 " <CJK> " 
                       "16r81A1"    16r0000 " invalid " 
                       "16r81A2"    16r0000 " invalid " 
                       "16r81A3"    16r6734 " <CJK> " 
                       "16r81A4"    16r6733 " <CJK> " 
                       "16r81A5"    16r0000 " invalid " 
                       "16r81A6"    16r0000 " invalid " 
                       "16r81A7"    16r0000 " invalid " 
                       "16r81A8"    16r4B44 " <CJK> " 
                       "16r81A9"    16r6737 " <CJK> " 
                       "16r81AA"    16r0000 " invalid " 
                       "16r81AB"    16r0000 " invalid " 
                       "16r81AC"    16r0000 " invalid " 
                       "16r81AD"    16r0000 " invalid " 
                       "16r81AE"    16r0000 " invalid " 
                       "16r81AF"    16r0000 " invalid " 
                       "16r81B0"    16r6738 " <CJK> " 
                       "16r81B1"    16r0000 " invalid " 
                       "16r81B2"    16r0000 " invalid " 
                       "16r81B3"    16r4137 " <CJK> " 
                       "16r81B4"    16r0000 " invalid " 
                       "16r81B5"    16r6739 " <CJK> " 
                       "16r81B6"    16r0000 " invalid " 
                       "16r81B7"    16r0000 " invalid " 
                       "16r81B8"    16r673B " <CJK> " 
                       "16r81B9"    16r0000 " invalid " 
                       "16r81BA"    16r673F " <CJK> " 
                       "16r81BB"    16r0000 " invalid " 
                       "16r81BC"    16r0000 " invalid " 
                       "16r81BD"    16r673C " <CJK> " 
                       "16r81BE"    16r673A " <CJK> " 
                       "16r81BF"    16r473F " <CJK> " 
                       "16r81C0"    16r673D " <CJK> " 
                       "16r81C1"    16r0000 " invalid " 
                       "16r81C2"    16r673E " <CJK> " 
                       "16r81C3"    16r0000 " invalid " 
                       "16r81C4"    16r0000 " invalid " 
                       "16r81C5"    16r0000 " invalid " 
                       "16r81C6"    16r3232 " <CJK> " 
                       "16r81C7"    16r0000 " invalid " 
                       "16r81C8"    16r6745 " <CJK> " 
                       "16r81C9"    16r6740 " <CJK> " 
                       "16r81CA"    16r0000 " invalid " 
                       "16r81CB"    16r0000 " invalid " 
                       "16r81CC"    16r0000 " invalid " 
                       "16r81CD"    16r6741 " <CJK> " 
                       "16r81CE"    16r0000 " invalid " 
                       "16r81CF"    16r0000 " invalid " 
                       "16r81D0"    16r0000 " invalid " 
                       "16r81D1"    16r6742 " <CJK> " 
                       "16r81D2"    16r0000 " invalid " 
                       "16r81D3"    16r4221 " <CJK> " 
                       "16r81D4"    16r0000 " invalid " 
                       "16r81D5"    16r0000 " invalid " 
                       "16r81D6"    16r0000 " invalid " 
                       "16r81D7"    16r0000 " invalid " 
                       "16r81D8"    16r6744 " <CJK> " 
                       "16r81D9"    16r6743 " <CJK> " 
                       "16r81DA"    16r6746 " <CJK> " 
                       "16r81DB"    16r0000 " invalid " 
                       "16r81DC"    16r0000 " invalid " 
                       "16r81DD"    16r0000 " invalid " 
                       "16r81DE"    16r0000 " invalid " 
                       "16r81DF"    16r6747 " <CJK> " 
                       "16r81E0"    16r6748 " <CJK> " 
                       "16r81E1"    16r0000 " invalid " 
                       "16r81E2"    16r0000 " invalid " 
                       "16r81E3"    16r3F43 " <CJK> " 
                       "16r81E4"    16r0000 " invalid " 
                       "16r81E5"    16r3269 " <CJK> " 
                       "16r81E6"    16r0000 " invalid " 
                       "16r81E7"    16r6749 " <CJK> " 
                       "16r81E8"    16r4E57 " <CJK> " 
                       "16r81E9"    16r0000 " invalid " 
                       "16r81EA"    16r3C2B " <CJK> " 
                       "16r81EB"    16r0000 " invalid " 
                       "16r81EC"    16r0000 " invalid " 
                       "16r81ED"    16r3D2D " <CJK> " 
                       "16r81EE"    16r0000 " invalid " 
                       "16r81EF"    16r0000 " invalid " 
                       "16r81F0"    16r0000 " invalid " 
                       "16r81F1"    16r0000 " invalid " 
                       "16r81F2"    16r0000 " invalid " 
                       "16r81F3"    16r3B6A " <CJK> " 
                       "16r81F4"    16r4357 " <CJK> " 
                       "16r81F5"    16r0000 " invalid " 
                       "16r81F6"    16r0000 " invalid " 
                       "16r81F7"    16r0000 " invalid " 
                       "16r81F8"    16r0000 " invalid " 
                       "16r81F9"    16r0000 " invalid " 
                       "16r81FA"    16r674A " <CJK> " 
                       "16r81FB"    16r674B " <CJK> " 
                       "16r81FC"    16r3131 " <CJK> " 
                       "16r81FD"    16r0000 " invalid " 
                       "16r81FE"    16r674C " <CJK> " 
                       "16r81FF"    16r0000 " invalid " 
                       "16r8200"    16r0000 " invalid " 
                       "16r8201"    16r674D " <CJK> " 
                       "16r8202"    16r674E " <CJK> " 
                       "16r8203"    16r0000 " invalid " 
                       "16r8204"    16r0000 " invalid " 
                       "16r8205"    16r674F " <CJK> " 
                       "16r8206"    16r0000 " invalid " 
                       "16r8207"    16r6750 " <CJK> " 
                       "16r8208"    16r363D " <CJK> " 
                       "16r8209"    16r5A2A " <CJK> " 
                       "16r820A"    16r6751 " <CJK> " 
                       "16r820B"    16r0000 " invalid " 
                       "16r820C"    16r4065 " <CJK> " 
                       "16r820D"    16r6752 " <CJK> " 
                       "16r820E"    16r3C4B " <CJK> " 
                       "16r820F"    16r0000 " invalid " 
                       "16r8210"    16r6753 " <CJK> " 
                       "16r8211"    16r0000 " invalid " 
                       "16r8212"    16r5030 " <CJK> " 
                       "16r8213"    16r0000 " invalid " 
                       "16r8214"    16r0000 " invalid " 
                       "16r8215"    16r0000 " invalid " 
                       "16r8216"    16r6754 " <CJK> " 
                       "16r8217"    16r4A5E " <CJK> " 
                       "16r8218"    16r345C " <CJK> " 
                       "16r8219"    16r0000 " invalid " 
                       "16r821A"    16r0000 " invalid " 
                       "16r821B"    16r4124 " <CJK> " 
                       "16r821C"    16r3D58 " <CJK> " 
                       "16r821D"    16r0000 " invalid " 
                       "16r821E"    16r4971 " <CJK> " 
                       "16r821F"    16r3D2E " <CJK> " 
                       "16r8220"    16r0000 " invalid " 
                       "16r8221"    16r0000 " invalid " 
                       "16r8222"    16r0000 " invalid " 
                       "16r8223"    16r0000 " invalid " 
                       "16r8224"    16r0000 " invalid " 
                       "16r8225"    16r0000 " invalid " 
                       "16r8226"    16r0000 " invalid " 
                       "16r8227"    16r0000 " invalid " 
                       "16r8228"    16r0000 " invalid " 
                       "16r8229"    16r6755 " <CJK> " 
                       "16r822A"    16r3952 " <CJK> " 
                       "16r822B"    16r6756 " <CJK> " 
                       "16r822C"    16r484C " <CJK> " 
                       "16r822D"    16r0000 " invalid " 
                       "16r822E"    16r6764 " <CJK> " 
                       "16r822F"    16r0000 " invalid " 
                       "16r8230"    16r0000 " invalid " 
                       "16r8231"    16r0000 " invalid " 
                       "16r8232"    16r0000 " invalid " 
                       "16r8233"    16r6758 " <CJK> " 
                       "16r8234"    16r0000 " invalid " 
                       "16r8235"    16r4249 " <CJK> " 
                       "16r8236"    16r4775 " <CJK> " 
                       "16r8237"    16r383F " <CJK> " 
                       "16r8238"    16r6757 " <CJK> " 
                       "16r8239"    16r4125 " <CJK> " 
                       "16r823A"    16r0000 " invalid " 
                       "16r823B"    16r0000 " invalid " 
                       "16r823C"    16r0000 " invalid " 
                       "16r823D"    16r0000 " invalid " 
                       "16r823E"    16r0000 " invalid " 
                       "16r823F"    16r0000 " invalid " 
                       "16r8240"    16r6759 " <CJK> " 
                       "16r8241"    16r0000 " invalid " 
                       "16r8242"    16r0000 " invalid " 
                       "16r8243"    16r0000 " invalid " 
                       "16r8244"    16r0000 " invalid " 
                       "16r8245"    16r0000 " invalid " 
                       "16r8246"    16r0000 " invalid " 
                       "16r8247"    16r447A " <CJK> " 
                       "16r8248"    16r0000 " invalid " 
                       "16r8249"    16r0000 " invalid " 
                       "16r824A"    16r0000 " invalid " 
                       "16r824B"    16r0000 " invalid " 
                       "16r824C"    16r0000 " invalid " 
                       "16r824D"    16r0000 " invalid " 
                       "16r824E"    16r0000 " invalid " 
                       "16r824F"    16r0000 " invalid " 
                       "16r8250"    16r0000 " invalid " 
                       "16r8251"    16r0000 " invalid " 
                       "16r8252"    16r0000 " invalid " 
                       "16r8253"    16r0000 " invalid " 
                       "16r8254"    16r0000 " invalid " 
                       "16r8255"    16r0000 " invalid " 
                       "16r8256"    16r0000 " invalid " 
                       "16r8257"    16r0000 " invalid " 
                       "16r8258"    16r675B " <CJK> " 
                       "16r8259"    16r675A " <CJK> " 
                       "16r825A"    16r675D " <CJK> " 
                       "16r825B"    16r0000 " invalid " 
                       "16r825C"    16r0000 " invalid " 
                       "16r825D"    16r675C " <CJK> " 
                       "16r825E"    16r0000 " invalid " 
                       "16r825F"    16r675E " <CJK> " 
                       "16r8260"    16r0000 " invalid " 
                       "16r8261"    16r0000 " invalid " 
                       "16r8262"    16r6760 " <CJK> " 
                       "16r8263"    16r0000 " invalid " 
                       "16r8264"    16r675F " <CJK> " 
                       "16r8265"    16r0000 " invalid " 
                       "16r8266"    16r344F " <CJK> " 
                       "16r8267"    16r0000 " invalid " 
                       "16r8268"    16r6761 " <CJK> " 
                       "16r8269"    16r0000 " invalid " 
                       "16r826A"    16r6762 " <CJK> " 
                       "16r826B"    16r6763 " <CJK> " 
                       "16r826C"    16r0000 " invalid " 
                       "16r826D"    16r0000 " invalid " 
                       "16r826E"    16r3A31 " <CJK> " 
                       "16r826F"    16r4E49 " <CJK> " 
                       "16r8270"    16r0000 " invalid " 
                       "16r8271"    16r6765 " <CJK> " 
                       "16r8272"    16r3F27 " <CJK> " 
                       "16r8273"    16r0000 " invalid " 
                       "16r8274"    16r0000 " invalid " 
                       "16r8275"    16r0000 " invalid " 
                       "16r8276"    16r3170 " <CJK> " 
                       "16r8277"    16r6766 " <CJK> " 
                       "16r8278"    16r6767 " <CJK> " 
                       "16r8279"    16r0000 " invalid " 
                       "16r827A"    16r0000 " invalid " 
                       "16r827B"    16r0000 " invalid " 
                       "16r827C"    16r0000 " invalid " 
                       "16r827D"    16r0000 " invalid " 
                       "16r827E"    16r6768 " <CJK> " 
                       "16r827F"    16r0000 " invalid " 
                       "16r8280"    16r0000 " invalid " 
                       "16r8281"    16r0000 " invalid " 
                       "16r8282"    16r0000 " invalid " 
                       "16r8283"    16r0000 " invalid " 
                       "16r8284"    16r0000 " invalid " 
                       "16r8285"    16r0000 " invalid " 
                       "16r8286"    16r0000 " invalid " 
                       "16r8287"    16r0000 " invalid " 
                       "16r8288"    16r0000 " invalid " 
                       "16r8289"    16r0000 " invalid " 
                       "16r828A"    16r0000 " invalid " 
                       "16r828B"    16r3072 " <CJK> " 
                       "16r828C"    16r0000 " invalid " 
                       "16r828D"    16r6769 " <CJK> " 
                       "16r828E"    16r0000 " invalid " 
                       "16r828F"    16r0000 " invalid " 
                       "16r8290"    16r0000 " invalid " 
                       "16r8291"    16r0000 " invalid " 
                       "16r8292"    16r676A " <CJK> " 
                       "16r8293"    16r0000 " invalid " 
                       "16r8294"    16r0000 " invalid " 
                       "16r8295"    16r0000 " invalid " 
                       "16r8296"    16r0000 " invalid " 
                       "16r8297"    16r0000 " invalid " 
                       "16r8298"    16r0000 " invalid " 
                       "16r8299"    16r4967 " <CJK> " 
                       "16r829A"    16r0000 " invalid " 
                       "16r829B"    16r0000 " invalid " 
                       "16r829C"    16r0000 " invalid " 
                       "16r829D"    16r3C47 " <CJK> " 
                       "16r829E"    16r0000 " invalid " 
                       "16r829F"    16r676C " <CJK> " 
                       "16r82A0"    16r0000 " invalid " 
                       "16r82A1"    16r0000 " invalid " 
                       "16r82A2"    16r0000 " invalid " 
                       "16r82A3"    16r0000 " invalid " 
                       "16r82A4"    16r0000 " invalid " 
                       "16r82A5"    16r3329 " <CJK> " 
                       "16r82A6"    16r3032 " <CJK> " 
                       "16r82A7"    16r0000 " invalid " 
                       "16r82A8"    16r0000 " invalid " 
                       "16r82A9"    16r0000 " invalid " 
                       "16r82AA"    16r0000 " invalid " 
                       "16r82AB"    16r676B " <CJK> " 
                       "16r82AC"    16r676E " <CJK> " 
                       "16r82AD"    16r474E " <CJK> " 
                       "16r82AE"    16r0000 " invalid " 
                       "16r82AF"    16r3F44 " <CJK> " 
                       "16r82B0"    16r0000 " invalid " 
                       "16r82B1"    16r3256 " <CJK> " 
                       "16r82B2"    16r0000 " invalid " 
                       "16r82B3"    16r4B27 " <CJK> " 
                       "16r82B4"    16r0000 " invalid " 
                       "16r82B5"    16r0000 " invalid " 
                       "16r82B6"    16r0000 " invalid " 
                       "16r82B7"    16r0000 " invalid " 
                       "16r82B8"    16r375D " <CJK> " 
                       "16r82B9"    16r365C " <CJK> " 
                       "16r82BA"    16r0000 " invalid " 
                       "16r82BB"    16r676D " <CJK> " 
                       "16r82BC"    16r0000 " invalid " 
                       "16r82BD"    16r326A " <CJK> " 
                       "16r82BE"    16r0000 " invalid " 
                       "16r82BF"    16r0000 " invalid " 
                       "16r82C0"    16r0000 " invalid " 
                       "16r82C1"    16r0000 " invalid " 
                       "16r82C2"    16r0000 " invalid " 
                       "16r82C3"    16r0000 " invalid " 
                       "16r82C4"    16r0000 " invalid " 
                       "16r82C5"    16r3423 " <CJK> " 
                       "16r82C6"    16r0000 " invalid " 
                       "16r82C7"    16r0000 " invalid " 
                       "16r82C8"    16r0000 " invalid " 
                       "16r82C9"    16r0000 " invalid " 
                       "16r82CA"    16r0000 " invalid " 
                       "16r82CB"    16r0000 " invalid " 
                       "16r82CC"    16r0000 " invalid " 
                       "16r82CD"    16r0000 " invalid " 
                       "16r82CE"    16r0000 " invalid " 
                       "16r82CF"    16r0000 " invalid " 
                       "16r82D0"    16r0000 " invalid " 
                       "16r82D1"    16r3171 " <CJK> " 
                       "16r82D2"    16r6772 " <CJK> " 
                       "16r82D3"    16r4E6A " <CJK> " 
                       "16r82D4"    16r425D " <CJK> " 
                       "16r82D5"    16r0000 " invalid " 
                       "16r82D6"    16r0000 " invalid " 
                       "16r82D7"    16r4944 " <CJK> " 
                       "16r82D8"    16r0000 " invalid " 
                       "16r82D9"    16r677E " <CJK> " 
                       "16r82DA"    16r0000 " invalid " 
                       "16r82DB"    16r3257 " <CJK> " 
                       "16r82DC"    16r677C " <CJK> " 
                       "16r82DD"    16r0000 " invalid " 
                       "16r82DE"    16r677A " <CJK> " 
                       "16r82DF"    16r6771 " <CJK> " 
                       "16r82E0"    16r0000 " invalid " 
                       "16r82E1"    16r676F " <CJK> " 
                       "16r82E2"    16r0000 " invalid " 
                       "16r82E3"    16r6770 " <CJK> " 
                       "16r82E4"    16r0000 " invalid " 
                       "16r82E5"    16r3C63 " <CJK> " 
                       "16r82E6"    16r366C " <CJK> " 
                       "16r82E7"    16r4377 " <CJK> " 
                       "16r82E8"    16r0000 " invalid " 
                       "16r82E9"    16r0000 " invalid " 
                       "16r82EA"    16r0000 " invalid " 
                       "16r82EB"    16r4651 " <CJK> " 
                       "16r82EC"    16r0000 " invalid " 
                       "16r82ED"    16r0000 " invalid " 
                       "16r82EE"    16r0000 " invalid " 
                       "16r82EF"    16r0000 " invalid " 
                       "16r82F0"    16r0000 " invalid " 
                       "16r82F1"    16r3151 " <CJK> " 
                       "16r82F2"    16r0000 " invalid " 
                       "16r82F3"    16r6774 " <CJK> " 
                       "16r82F4"    16r6773 " <CJK> " 
                       "16r82F5"    16r0000 " invalid " 
                       "16r82F6"    16r0000 " invalid " 
                       "16r82F7"    16r0000 " invalid " 
                       "16r82F8"    16r0000 " invalid " 
                       "16r82F9"    16r6779 " <CJK> " 
                       "16r82FA"    16r6775 " <CJK> " 
                       "16r82FB"    16r6778 " <CJK> " 
                       "16r82FC"    16r0000 " invalid " 
                       "16r82FD"    16r0000 " invalid " 
                       "16r82FE"    16r0000 " invalid " 
                       "16r82FF"    16r0000 " invalid " 
                       "16r8300"    16r0000 " invalid " 
                       "16r8301"    16r0000 " invalid " 
                       "16r8302"    16r4C50 " <CJK> " 
                       "16r8303"    16r6777 " <CJK> " 
                       "16r8304"    16r3258 " <CJK> " 
                       "16r8305"    16r337D " <CJK> " 
                       "16r8306"    16r677B " <CJK> " 
                       "16r8307"    16r0000 " invalid " 
                       "16r8308"    16r0000 " invalid " 
                       "16r8309"    16r677D " <CJK> " 
                       "16r830A"    16r0000 " invalid " 
                       "16r830B"    16r0000 " invalid " 
                       "16r830C"    16r0000 " invalid " 
                       "16r830D"    16r0000 " invalid " 
                       "16r830E"    16r3754 " <CJK> " 
                       "16r830F"    16r0000 " invalid " 
                       "16r8310"    16r0000 " invalid " 
                       "16r8311"    16r0000 " invalid " 
                       "16r8312"    16r0000 " invalid " 
                       "16r8313"    16r0000 " invalid " 
                       "16r8314"    16r0000 " invalid " 
                       "16r8315"    16r0000 " invalid " 
                       "16r8316"    16r6823 " <CJK> " 
                       "16r8317"    16r682C " <CJK> " 
                       "16r8318"    16r682D " <CJK> " 
                       "16r8319"    16r0000 " invalid " 
                       "16r831A"    16r0000 " invalid " 
                       "16r831B"    16r0000 " invalid " 
                       "16r831C"    16r302B " <CJK> " 
                       "16r831D"    16r0000 " invalid " 
                       "16r831E"    16r0000 " invalid " 
                       "16r831F"    16r0000 " invalid " 
                       "16r8320"    16r0000 " invalid " 
                       "16r8321"    16r0000 " invalid " 
                       "16r8322"    16r0000 " invalid " 
                       "16r8323"    16r6834 " <CJK> " 
                       "16r8324"    16r0000 " invalid " 
                       "16r8325"    16r0000 " invalid " 
                       "16r8326"    16r0000 " invalid " 
                       "16r8327"    16r0000 " invalid " 
                       "16r8328"    16r3071 " <CJK> " 
                       "16r8329"    16r0000 " invalid " 
                       "16r832A"    16r0000 " invalid " 
                       "16r832B"    16r682B " <CJK> " 
                       "16r832C"    16r0000 " invalid " 
                       "16r832D"    16r0000 " invalid " 
                       "16r832E"    16r0000 " invalid " 
                       "16r832F"    16r682A " <CJK> " 
                       "16r8330"    16r0000 " invalid " 
                       "16r8331"    16r6825 " <CJK> " 
                       "16r8332"    16r6824 " <CJK> " 
                       "16r8333"    16r0000 " invalid " 
                       "16r8334"    16r6822 " <CJK> " 
                       "16r8335"    16r6821 " <CJK> " 
                       "16r8336"    16r4363 " <CJK> " 
                       "16r8337"    16r0000 " invalid " 
                       "16r8338"    16r427B " <CJK> " 
                       "16r8339"    16r6827 " <CJK> " 
                       "16r833A"    16r0000 " invalid " 
                       "16r833B"    16r0000 " invalid " 
                       "16r833C"    16r0000 " invalid " 
                       "16r833D"    16r0000 " invalid " 
                       "16r833E"    16r0000 " invalid " 
                       "16r833F"    16r0000 " invalid " 
                       "16r8340"    16r6826 " <CJK> " 
                       "16r8341"    16r0000 " invalid " 
                       "16r8342"    16r0000 " invalid " 
                       "16r8343"    16r0000 " invalid " 
                       "16r8344"    16r0000 " invalid " 
                       "16r8345"    16r6829 " <CJK> " 
                       "16r8346"    16r0000 " invalid " 
                       "16r8347"    16r0000 " invalid " 
                       "16r8348"    16r0000 " invalid " 
                       "16r8349"    16r4170 " <CJK> " 
                       "16r834A"    16r3755 " <CJK> " 
                       "16r834B"    16r0000 " invalid " 
                       "16r834C"    16r0000 " invalid " 
                       "16r834D"    16r0000 " invalid " 
                       "16r834E"    16r0000 " invalid " 
                       "16r834F"    16r3141 " <CJK> " 
                       "16r8350"    16r6828 " <CJK> " 
                       "16r8351"    16r0000 " invalid " 
                       "16r8352"    16r3953 " <CJK> " 
                       "16r8353"    16r0000 " invalid " 
                       "16r8354"    16r0000 " invalid " 
                       "16r8355"    16r0000 " invalid " 
                       "16r8356"    16r0000 " invalid " 
                       "16r8357"    16r0000 " invalid " 
                       "16r8358"    16r4171 " <CJK> " 
                       "16r8359"    16r0000 " invalid " 
                       "16r835A"    16r0000 " invalid " 
                       "16r835B"    16r0000 " invalid " 
                       "16r835C"    16r0000 " invalid " 
                       "16r835D"    16r0000 " invalid " 
                       "16r835E"    16r0000 " invalid " 
                       "16r835F"    16r0000 " invalid " 
                       "16r8360"    16r0000 " invalid " 
                       "16r8361"    16r0000 " invalid " 
                       "16r8362"    16r0000 " invalid " 
                       "16r8363"    16r0000 " invalid " 
                       "16r8364"    16r0000 " invalid " 
                       "16r8365"    16r0000 " invalid " 
                       "16r8366"    16r0000 " invalid " 
                       "16r8367"    16r0000 " invalid " 
                       "16r8368"    16r0000 " invalid " 
                       "16r8369"    16r0000 " invalid " 
                       "16r836A"    16r0000 " invalid " 
                       "16r836B"    16r0000 " invalid " 
                       "16r836C"    16r0000 " invalid " 
                       "16r836D"    16r0000 " invalid " 
                       "16r836E"    16r0000 " invalid " 
                       "16r836F"    16r0000 " invalid " 
                       "16r8370"    16r0000 " invalid " 
                       "16r8371"    16r0000 " invalid " 
                       "16r8372"    16r0000 " invalid " 
                       "16r8373"    16r683A " <CJK> " 
                       "16r8374"    16r0000 " invalid " 
                       "16r8375"    16r683B " <CJK> " 
                       "16r8376"    16r0000 " invalid " 
                       "16r8377"    16r3259 " <CJK> " 
                       "16r8378"    16r0000 " invalid " 
                       "16r8379"    16r0000 " invalid " 
                       "16r837A"    16r0000 " invalid " 
                       "16r837B"    16r322E " <CJK> " 
                       "16r837C"    16r6838 " <CJK> " 
                       "16r837D"    16r0000 " invalid " 
                       "16r837E"    16r0000 " invalid " 
                       "16r837F"    16r0000 " invalid " 
                       "16r8380"    16r0000 " invalid " 
                       "16r8381"    16r0000 " invalid " 
                       "16r8382"    16r0000 " invalid " 
                       "16r8383"    16r0000 " invalid " 
                       "16r8384"    16r0000 " invalid " 
                       "16r8385"    16r682E " <CJK> " 
                       "16r8386"    16r0000 " invalid " 
                       "16r8387"    16r6836 " <CJK> " 
                       "16r8388"    16r0000 " invalid " 
                       "16r8389"    16r683D " <CJK> " 
                       "16r838A"    16r6837 " <CJK> " 
                       "16r838B"    16r0000 " invalid " 
                       "16r838C"    16r0000 " invalid " 
                       "16r838D"    16r0000 " invalid " 
                       "16r838E"    16r6835 " <CJK> " 
                       "16r838F"    16r0000 " invalid " 
                       "16r8390"    16r0000 " invalid " 
                       "16r8391"    16r0000 " invalid " 
                       "16r8392"    16r0000 " invalid " 
                       "16r8393"    16r6776 " <CJK> " 
                       "16r8394"    16r0000 " invalid " 
                       "16r8395"    16r0000 " invalid " 
                       "16r8396"    16r6833 " <CJK> " 
                       "16r8397"    16r0000 " invalid " 
                       "16r8398"    16r0000 " invalid " 
                       "16r8399"    16r0000 " invalid " 
                       "16r839A"    16r682F " <CJK> " 
                       "16r839B"    16r0000 " invalid " 
                       "16r839C"    16r0000 " invalid " 
                       "16r839D"    16r0000 " invalid " 
                       "16r839E"    16r3450 " <CJK> " 
                       "16r839F"    16r6831 " <CJK> " 
                       "16r83A0"    16r683C " <CJK> " 
                       "16r83A1"    16r0000 " invalid " 
                       "16r83A2"    16r6832 " <CJK> " 
                       "16r83A3"    16r0000 " invalid " 
                       "16r83A4"    16r0000 " invalid " 
                       "16r83A5"    16r0000 " invalid " 
                       "16r83A6"    16r0000 " invalid " 
                       "16r83A7"    16r0000 " invalid " 
                       "16r83A8"    16r683E " <CJK> " 
                       "16r83A9"    16r0000 " invalid " 
                       "16r83AA"    16r6830 " <CJK> " 
                       "16r83AB"    16r477C " <CJK> " 
                       "16r83AC"    16r0000 " invalid " 
                       "16r83AD"    16r0000 " invalid " 
                       "16r83AE"    16r0000 " invalid " 
                       "16r83AF"    16r0000 " invalid " 
                       "16r83B0"    16r0000 " invalid " 
                       "16r83B1"    16r4D69 " <CJK> " 
                       "16r83B2"    16r0000 " invalid " 
                       "16r83B3"    16r0000 " invalid " 
                       "16r83B4"    16r0000 " invalid " 
                       "16r83B5"    16r6839 " <CJK> " 
                       "16r83B6"    16r0000 " invalid " 
                       "16r83B7"    16r0000 " invalid " 
                       "16r83B8"    16r0000 " invalid " 
                       "16r83B9"    16r0000 " invalid " 
                       "16r83BA"    16r0000 " invalid " 
                       "16r83BB"    16r0000 " invalid " 
                       "16r83BC"    16r0000 " invalid " 
                       "16r83BD"    16r684F " <CJK> " 
                       "16r83BE"    16r0000 " invalid " 
                       "16r83BF"    16r0000 " invalid " 
                       "16r83C0"    16r0000 " invalid " 
                       "16r83C1"    16r6847 " <CJK> " 
                       "16r83C2"    16r0000 " invalid " 
                       "16r83C3"    16r0000 " invalid " 
                       "16r83C4"    16r0000 " invalid " 
                       "16r83C5"    16r3F7B " <CJK> " 
                       "16r83C6"    16r0000 " invalid " 
                       "16r83C7"    16r0000 " invalid " 
                       "16r83C8"    16r0000 " invalid " 
                       "16r83C9"    16r0000 " invalid " 
                       "16r83CA"    16r3546 " <CJK> " 
                       "16r83CB"    16r0000 " invalid " 
                       "16r83CC"    16r365D " <CJK> " 
                       "16r83CD"    16r0000 " invalid " 
                       "16r83CE"    16r6842 " <CJK> " 
                       "16r83CF"    16r0000 " invalid " 
                       "16r83D0"    16r0000 " invalid " 
                       "16r83D1"    16r0000 " invalid " 
                       "16r83D2"    16r0000 " invalid " 
                       "16r83D3"    16r325B " <CJK> " 
                       "16r83D4"    16r0000 " invalid " 
                       "16r83D5"    16r0000 " invalid " 
                       "16r83D6"    16r3E54 " <CJK> " 
                       "16r83D7"    16r0000 " invalid " 
                       "16r83D8"    16r6845 " <CJK> " 
                       "16r83D9"    16r0000 " invalid " 
                       "16r83DA"    16r0000 " invalid " 
                       "16r83DB"    16r0000 " invalid " 
                       "16r83DC"    16r3A5A " <CJK> " 
                       "16r83DD"    16r0000 " invalid " 
                       "16r83DE"    16r0000 " invalid " 
                       "16r83DF"    16r4551 " <CJK> " 
                       "16r83E0"    16r684A " <CJK> " 
                       "16r83E1"    16r0000 " invalid " 
                       "16r83E2"    16r0000 " invalid " 
                       "16r83E3"    16r0000 " invalid " 
                       "16r83E4"    16r0000 " invalid " 
                       "16r83E5"    16r0000 " invalid " 
                       "16r83E6"    16r0000 " invalid " 
                       "16r83E7"    16r0000 " invalid " 
                       "16r83E8"    16r0000 " invalid " 
                       "16r83E9"    16r4A6E " <CJK> " 
                       "16r83EA"    16r0000 " invalid " 
                       "16r83EB"    16r6841 " <CJK> " 
                       "16r83EC"    16r0000 " invalid " 
                       "16r83ED"    16r0000 " invalid " 
                       "16r83EE"    16r0000 " invalid " 
                       "16r83EF"    16r325A " <CJK> " 
                       "16r83F0"    16r3856 " <CJK> " 
                       "16r83F1"    16r4929 " <CJK> " 
                       "16r83F2"    16r684B " <CJK> " 
                       "16r83F3"    16r0000 " invalid " 
                       "16r83F4"    16r683F " <CJK> " 
                       "16r83F5"    16r0000 " invalid " 
                       "16r83F6"    16r0000 " invalid " 
                       "16r83F7"    16r6848 " <CJK> " 
                       "16r83F8"    16r0000 " invalid " 
                       "16r83F9"    16r0000 " invalid " 
                       "16r83FA"    16r0000 " invalid " 
                       "16r83FB"    16r6852 " <CJK> " 
                       "16r83FC"    16r0000 " invalid " 
                       "16r83FD"    16r6843 " <CJK> " 
                       "16r83FE"    16r0000 " invalid " 
                       "16r83FF"    16r0000 " invalid " 
                       "16r8400"    16r0000 " invalid " 
                       "16r8401"    16r0000 " invalid " 
                       "16r8402"    16r0000 " invalid " 
                       "16r8403"    16r6844 " <CJK> " 
                       "16r8404"    16r463A " <CJK> " 
                       "16r8405"    16r0000 " invalid " 
                       "16r8406"    16r0000 " invalid " 
                       "16r8407"    16r6849 " <CJK> " 
                       "16r8408"    16r0000 " invalid " 
                       "16r8409"    16r0000 " invalid " 
                       "16r840A"    16r0000 " invalid " 
                       "16r840B"    16r6846 " <CJK> " 
                       "16r840C"    16r4B28 " <CJK> " 
                       "16r840D"    16r684C " <CJK> " 
                       "16r840E"    16r3060 " <CJK> " 
                       "16r840F"    16r0000 " invalid " 
                       "16r8410"    16r0000 " invalid " 
                       "16r8411"    16r0000 " invalid " 
                       "16r8412"    16r0000 " invalid " 
                       "16r8413"    16r6840 " <CJK> " 
                       "16r8414"    16r0000 " invalid " 
                       "16r8415"    16r0000 " invalid " 
                       "16r8416"    16r0000 " invalid " 
                       "16r8417"    16r0000 " invalid " 
                       "16r8418"    16r0000 " invalid " 
                       "16r8419"    16r0000 " invalid " 
                       "16r841A"    16r0000 " invalid " 
                       "16r841B"    16r0000 " invalid " 
                       "16r841C"    16r0000 " invalid " 
                       "16r841D"    16r0000 " invalid " 
                       "16r841E"    16r0000 " invalid " 
                       "16r841F"    16r0000 " invalid " 
                       "16r8420"    16r684E " <CJK> " 
                       "16r8421"    16r0000 " invalid " 
                       "16r8422"    16r684D " <CJK> " 
                       "16r8423"    16r0000 " invalid " 
                       "16r8424"    16r0000 " invalid " 
                       "16r8425"    16r0000 " invalid " 
                       "16r8426"    16r0000 " invalid " 
                       "16r8427"    16r0000 " invalid " 
                       "16r8428"    16r0000 " invalid " 
                       "16r8429"    16r476B " <CJK> " 
                       "16r842A"    16r6854 " <CJK> " 
                       "16r842B"    16r0000 " invalid " 
                       "16r842C"    16r685F " <CJK> " 
                       "16r842D"    16r0000 " invalid " 
                       "16r842E"    16r0000 " invalid " 
                       "16r842F"    16r0000 " invalid " 
                       "16r8430"    16r0000 " invalid " 
                       "16r8431"    16r337E " <CJK> " 
                       "16r8432"    16r0000 " invalid " 
                       "16r8433"    16r0000 " invalid " 
                       "16r8434"    16r0000 " invalid " 
                       "16r8435"    16r6862 " <CJK> " 
                       "16r8436"    16r0000 " invalid " 
                       "16r8437"    16r0000 " invalid " 
                       "16r8438"    16r6850 " <CJK> " 
                       "16r8439"    16r0000 " invalid " 
                       "16r843A"    16r0000 " invalid " 
                       "16r843B"    16r0000 " invalid " 
                       "16r843C"    16r6855 " <CJK> " 
                       "16r843D"    16r4D6E " <CJK> " 
                       "16r843E"    16r0000 " invalid " 
                       "16r843F"    16r0000 " invalid " 
                       "16r8440"    16r0000 " invalid " 
                       "16r8441"    16r0000 " invalid " 
                       "16r8442"    16r0000 " invalid " 
                       "16r8443"    16r0000 " invalid " 
                       "16r8444"    16r0000 " invalid " 
                       "16r8445"    16r0000 " invalid " 
                       "16r8446"    16r685E " <CJK> " 
                       "16r8447"    16r0000 " invalid " 
                       "16r8448"    16r0000 " invalid " 
                       "16r8449"    16r4D55 " <CJK> " 
                       "16r844A"    16r0000 " invalid " 
                       "16r844B"    16r0000 " invalid " 
                       "16r844C"    16r0000 " invalid " 
                       "16r844D"    16r0000 " invalid " 
                       "16r844E"    16r4E2A " <CJK> " 
                       "16r844F"    16r0000 " invalid " 
                       "16r8450"    16r0000 " invalid " 
                       "16r8451"    16r0000 " invalid " 
                       "16r8452"    16r0000 " invalid " 
                       "16r8453"    16r0000 " invalid " 
                       "16r8454"    16r0000 " invalid " 
                       "16r8455"    16r0000 " invalid " 
                       "16r8456"    16r0000 " invalid " 
                       "16r8457"    16r4378 " <CJK> " 
                       "16r8458"    16r0000 " invalid " 
                       "16r8459"    16r0000 " invalid " 
                       "16r845A"    16r0000 " invalid " 
                       "16r845B"    16r336B " <CJK> " 
                       "16r845C"    16r0000 " invalid " 
                       "16r845D"    16r0000 " invalid " 
                       "16r845E"    16r0000 " invalid " 
                       "16r845F"    16r0000 " invalid " 
                       "16r8460"    16r0000 " invalid " 
                       "16r8461"    16r4972 " <CJK> " 
                       "16r8462"    16r6864 " <CJK> " 
                       "16r8463"    16r4621 " <CJK> " 
                       "16r8464"    16r0000 " invalid " 
                       "16r8465"    16r0000 " invalid " 
                       "16r8466"    16r3031 " <CJK> " 
                       "16r8467"    16r0000 " invalid " 
                       "16r8468"    16r0000 " invalid " 
                       "16r8469"    16r685D " <CJK> " 
                       "16r846A"    16r0000 " invalid " 
                       "16r846B"    16r6859 " <CJK> " 
                       "16r846C"    16r4172 " <CJK> " 
                       "16r846D"    16r6853 " <CJK> " 
                       "16r846E"    16r685B " <CJK> " 
                       "16r846F"    16r6860 " <CJK> " 
                       "16r8470"    16r0000 " invalid " 
                       "16r8471"    16r472C " <CJK> " 
                       "16r8472"    16r0000 " invalid " 
                       "16r8473"    16r0000 " invalid " 
                       "16r8474"    16r0000 " invalid " 
                       "16r8475"    16r302A " <CJK> " 
                       "16r8476"    16r0000 " invalid " 
                       "16r8477"    16r6858 " <CJK> " 
                       "16r8478"    16r0000 " invalid " 
                       "16r8479"    16r6861 " <CJK> " 
                       "16r847A"    16r4978 " <CJK> " 
                       "16r847B"    16r0000 " invalid " 
                       "16r847C"    16r0000 " invalid " 
                       "16r847D"    16r0000 " invalid " 
                       "16r847E"    16r0000 " invalid " 
                       "16r847F"    16r0000 " invalid " 
                       "16r8480"    16r0000 " invalid " 
                       "16r8481"    16r0000 " invalid " 
                       "16r8482"    16r685C " <CJK> " 
                       "16r8483"    16r0000 " invalid " 
                       "16r8484"    16r6857 " <CJK> " 
                       "16r8485"    16r0000 " invalid " 
                       "16r8486"    16r0000 " invalid " 
                       "16r8487"    16r0000 " invalid " 
                       "16r8488"    16r0000 " invalid " 
                       "16r8489"    16r0000 " invalid " 
                       "16r848A"    16r0000 " invalid " 
                       "16r848B"    16r3E55 " <CJK> " 
                       "16r848C"    16r0000 " invalid " 
                       "16r848D"    16r0000 " invalid " 
                       "16r848E"    16r0000 " invalid " 
                       "16r848F"    16r0000 " invalid " 
                       "16r8490"    16r3D2F " <CJK> " 
                       "16r8491"    16r0000 " invalid " 
                       "16r8492"    16r0000 " invalid " 
                       "16r8493"    16r0000 " invalid " 
                       "16r8494"    16r3C2C " <CJK> " 
                       "16r8495"    16r0000 " invalid " 
                       "16r8496"    16r0000 " invalid " 
                       "16r8497"    16r0000 " invalid " 
                       "16r8498"    16r0000 " invalid " 
                       "16r8499"    16r4C58 " <CJK> " 
                       "16r849A"    16r0000 " invalid " 
                       "16r849B"    16r0000 " invalid " 
                       "16r849C"    16r4947 " <CJK> " 
                       "16r849D"    16r0000 " invalid " 
                       "16r849E"    16r0000 " invalid " 
                       "16r849F"    16r6867 " <CJK> " 
                       "16r84A0"    16r0000 " invalid " 
                       "16r84A1"    16r6870 " <CJK> " 
                       "16r84A2"    16r0000 " invalid " 
                       "16r84A3"    16r0000 " invalid " 
                       "16r84A4"    16r0000 " invalid " 
                       "16r84A5"    16r0000 " invalid " 
                       "16r84A6"    16r0000 " invalid " 
                       "16r84A7"    16r0000 " invalid " 
                       "16r84A8"    16r0000 " invalid " 
                       "16r84A9"    16r0000 " invalid " 
                       "16r84AA"    16r0000 " invalid " 
                       "16r84AB"    16r0000 " invalid " 
                       "16r84AC"    16r0000 " invalid " 
                       "16r84AD"    16r685A " <CJK> " 
                       "16r84AE"    16r0000 " invalid " 
                       "16r84AF"    16r0000 " invalid " 
                       "16r84B0"    16r0000 " invalid " 
                       "16r84B1"    16r0000 " invalid " 
                       "16r84B2"    16r3377 " <CJK> " 
                       "16r84B3"    16r0000 " invalid " 
                       "16r84B4"    16r0000 " invalid " 
                       "16r84B5"    16r0000 " invalid " 
                       "16r84B6"    16r0000 " invalid " 
                       "16r84B7"    16r0000 " invalid " 
                       "16r84B8"    16r3E78 " <CJK> " 
                       "16r84B9"    16r6865 " <CJK> " 
                       "16r84BA"    16r0000 " invalid " 
                       "16r84BB"    16r686A " <CJK> " 
                       "16r84BC"    16r4173 " <CJK> " 
                       "16r84BD"    16r0000 " invalid " 
                       "16r84BE"    16r0000 " invalid " 
                       "16r84BF"    16r6866 " <CJK> " 
                       "16r84C0"    16r0000 " invalid " 
                       "16r84C1"    16r686D " <CJK> " 
                       "16r84C2"    16r0000 " invalid " 
                       "16r84C3"    16r0000 " invalid " 
                       "16r84C4"    16r435F " <CJK> " 
                       "16r84C5"    16r0000 " invalid " 
                       "16r84C6"    16r686E " <CJK> " 
                       "16r84C7"    16r0000 " invalid " 
                       "16r84C8"    16r0000 " invalid " 
                       "16r84C9"    16r4D56 " <CJK> " 
                       "16r84CA"    16r6863 " <CJK> " 
                       "16r84CB"    16r3338 " <CJK> " 
                       "16r84CC"    16r0000 " invalid " 
                       "16r84CD"    16r6869 " <CJK> " 
                       "16r84CE"    16r0000 " invalid " 
                       "16r84CF"    16r0000 " invalid " 
                       "16r84D0"    16r686C " <CJK> " 
                       "16r84D1"    16r4C2C " <CJK> " 
                       "16r84D2"    16r0000 " invalid " 
                       "16r84D3"    16r0000 " invalid " 
                       "16r84D4"    16r0000 " invalid " 
                       "16r84D5"    16r0000 " invalid " 
                       "16r84D6"    16r686F " <CJK> " 
                       "16r84D7"    16r0000 " invalid " 
                       "16r84D8"    16r0000 " invalid " 
                       "16r84D9"    16r6868 " <CJK> " 
                       "16r84DA"    16r686B " <CJK> " 
                       "16r84DB"    16r0000 " invalid " 
                       "16r84DC"    16r0000 " invalid " 
                       "16r84DD"    16r0000 " invalid " 
                       "16r84DE"    16r0000 " invalid " 
                       "16r84DF"    16r0000 " invalid " 
                       "16r84E0"    16r0000 " invalid " 
                       "16r84E1"    16r0000 " invalid " 
                       "16r84E2"    16r0000 " invalid " 
                       "16r84E3"    16r0000 " invalid " 
                       "16r84E4"    16r0000 " invalid " 
                       "16r84E5"    16r0000 " invalid " 
                       "16r84E6"    16r0000 " invalid " 
                       "16r84E7"    16r0000 " invalid " 
                       "16r84E8"    16r0000 " invalid " 
                       "16r84E9"    16r0000 " invalid " 
                       "16r84EA"    16r0000 " invalid " 
                       "16r84EB"    16r0000 " invalid " 
                       "16r84EC"    16r4B29 " <CJK> " 
                       "16r84ED"    16r0000 " invalid " 
                       "16r84EE"    16r4F21 " <CJK> " 
                       "16r84EF"    16r0000 " invalid " 
                       "16r84F0"    16r0000 " invalid " 
                       "16r84F1"    16r0000 " invalid " 
                       "16r84F2"    16r0000 " invalid " 
                       "16r84F3"    16r0000 " invalid " 
                       "16r84F4"    16r6873 " <CJK> " 
                       "16r84F5"    16r0000 " invalid " 
                       "16r84F6"    16r0000 " invalid " 
                       "16r84F7"    16r0000 " invalid " 
                       "16r84F8"    16r0000 " invalid " 
                       "16r84F9"    16r0000 " invalid " 
                       "16r84FA"    16r0000 " invalid " 
                       "16r84FB"    16r0000 " invalid " 
                       "16r84FC"    16r687A " <CJK> " 
                       "16r84FD"    16r0000 " invalid " 
                       "16r84FE"    16r0000 " invalid " 
                       "16r84FF"    16r6872 " <CJK> " 
                       "16r8500"    16r3C43 " <CJK> " 
                       "16r8501"    16r0000 " invalid " 
                       "16r8502"    16r0000 " invalid " 
                       "16r8503"    16r0000 " invalid " 
                       "16r8504"    16r0000 " invalid " 
                       "16r8505"    16r0000 " invalid " 
                       "16r8506"    16r6851 " <CJK> " 
                       "16r8507"    16r0000 " invalid " 
                       "16r8508"    16r0000 " invalid " 
                       "16r8509"    16r0000 " invalid " 
                       "16r850A"    16r0000 " invalid " 
                       "16r850B"    16r0000 " invalid " 
                       "16r850C"    16r0000 " invalid " 
                       "16r850D"    16r0000 " invalid " 
                       "16r850E"    16r0000 " invalid " 
                       "16r850F"    16r0000 " invalid " 
                       "16r8510"    16r0000 " invalid " 
                       "16r8511"    16r4A4E " <CJK> " 
                       "16r8512"    16r0000 " invalid " 
                       "16r8513"    16r4C22 " <CJK> " 
                       "16r8514"    16r6879 " <CJK> " 
                       "16r8515"    16r6878 " <CJK> " 
                       "16r8516"    16r0000 " invalid " 
                       "16r8517"    16r6874 " <CJK> " 
                       "16r8518"    16r6875 " <CJK> " 
                       "16r8519"    16r0000 " invalid " 
                       "16r851A"    16r3136 " <CJK> " 
                       "16r851B"    16r0000 " invalid " 
                       "16r851C"    16r0000 " invalid " 
                       "16r851D"    16r0000 " invalid " 
                       "16r851E"    16r0000 " invalid " 
                       "16r851F"    16r6877 " <CJK> " 
                       "16r8520"    16r0000 " invalid " 
                       "16r8521"    16r6871 " <CJK> " 
                       "16r8522"    16r0000 " invalid " 
                       "16r8523"    16r0000 " invalid " 
                       "16r8524"    16r0000 " invalid " 
                       "16r8525"    16r0000 " invalid " 
                       "16r8526"    16r4455 " <CJK> " 
                       "16r8527"    16r0000 " invalid " 
                       "16r8528"    16r0000 " invalid " 
                       "16r8529"    16r0000 " invalid " 
                       "16r852A"    16r0000 " invalid " 
                       "16r852B"    16r0000 " invalid " 
                       "16r852C"    16r6876 " <CJK> " 
                       "16r852D"    16r307E " <CJK> " 
                       "16r852E"    16r0000 " invalid " 
                       "16r852F"    16r0000 " invalid " 
                       "16r8530"    16r0000 " invalid " 
                       "16r8531"    16r0000 " invalid " 
                       "16r8532"    16r0000 " invalid " 
                       "16r8533"    16r0000 " invalid " 
                       "16r8534"    16r0000 " invalid " 
                       "16r8535"    16r4222 " <CJK> " 
                       "16r8536"    16r0000 " invalid " 
                       "16r8537"    16r0000 " invalid " 
                       "16r8538"    16r0000 " invalid " 
                       "16r8539"    16r0000 " invalid " 
                       "16r853A"    16r0000 " invalid " 
                       "16r853B"    16r0000 " invalid " 
                       "16r853C"    16r0000 " invalid " 
                       "16r853D"    16r4A43 " <CJK> " 
                       "16r853E"    16r0000 " invalid " 
                       "16r853F"    16r0000 " invalid " 
                       "16r8540"    16r687B " <CJK> " 
                       "16r8541"    16r6921 " <CJK> " 
                       "16r8542"    16r0000 " invalid " 
                       "16r8543"    16r4859 " <CJK> " 
                       "16r8544"    16r0000 " invalid " 
                       "16r8545"    16r0000 " invalid " 
                       "16r8546"    16r0000 " invalid " 
                       "16r8547"    16r0000 " invalid " 
                       "16r8548"    16r687E " <CJK> " 
                       "16r8549"    16r3E56 " <CJK> " 
                       "16r854A"    16r3C49 " <CJK> " 
                       "16r854B"    16r6923 " <CJK> " 
                       "16r854C"    16r0000 " invalid " 
                       "16r854D"    16r0000 " invalid " 
                       "16r854E"    16r363E " <CJK> " 
                       "16r854F"    16r0000 " invalid " 
                       "16r8550"    16r0000 " invalid " 
                       "16r8551"    16r0000 " invalid " 
                       "16r8552"    16r0000 " invalid " 
                       "16r8553"    16r0000 " invalid " 
                       "16r8554"    16r0000 " invalid " 
                       "16r8555"    16r6924 " <CJK> " 
                       "16r8556"    16r0000 " invalid " 
                       "16r8557"    16r4979 " <CJK> " 
                       "16r8558"    16r687D " <CJK> " 
                       "16r8559"    16r0000 " invalid " 
                       "16r855A"    16r6856 " <CJK> " 
                       "16r855B"    16r0000 " invalid " 
                       "16r855C"    16r0000 " invalid " 
                       "16r855D"    16r0000 " invalid " 
                       "16r855E"    16r0000 " invalid " 
                       "16r855F"    16r0000 " invalid " 
                       "16r8560"    16r0000 " invalid " 
                       "16r8561"    16r0000 " invalid " 
                       "16r8562"    16r0000 " invalid " 
                       "16r8563"    16r687C " <CJK> " 
                       "16r8564"    16r0000 " invalid " 
                       "16r8565"    16r0000 " invalid " 
                       "16r8566"    16r0000 " invalid " 
                       "16r8567"    16r0000 " invalid " 
                       "16r8568"    16r4F4F " <CJK> " 
                       "16r8569"    16r4622 " <CJK> " 
                       "16r856A"    16r4973 " <CJK> " 
                       "16r856B"    16r0000 " invalid " 
                       "16r856C"    16r0000 " invalid " 
                       "16r856D"    16r692B " <CJK> " 
                       "16r856E"    16r0000 " invalid " 
                       "16r856F"    16r0000 " invalid " 
                       "16r8570"    16r0000 " invalid " 
                       "16r8571"    16r0000 " invalid " 
                       "16r8572"    16r0000 " invalid " 
                       "16r8573"    16r0000 " invalid " 
                       "16r8574"    16r0000 " invalid " 
                       "16r8575"    16r0000 " invalid " 
                       "16r8576"    16r0000 " invalid " 
                       "16r8577"    16r6931 " <CJK> " 
                       "16r8578"    16r0000 " invalid " 
                       "16r8579"    16r0000 " invalid " 
                       "16r857A"    16r0000 " invalid " 
                       "16r857B"    16r0000 " invalid " 
                       "16r857C"    16r0000 " invalid " 
                       "16r857D"    16r0000 " invalid " 
                       "16r857E"    16r6932 " <CJK> " 
                       "16r857F"    16r0000 " invalid " 
                       "16r8580"    16r6925 " <CJK> " 
                       "16r8581"    16r0000 " invalid " 
                       "16r8582"    16r0000 " invalid " 
                       "16r8583"    16r0000 " invalid " 
                       "16r8584"    16r4776 " <CJK> " 
                       "16r8585"    16r0000 " invalid " 
                       "16r8586"    16r0000 " invalid " 
                       "16r8587"    16r692F " <CJK> " 
                       "16r8588"    16r6927 " <CJK> " 
                       "16r8589"    16r0000 " invalid " 
                       "16r858A"    16r6929 " <CJK> " 
                       "16r858B"    16r0000 " invalid " 
                       "16r858C"    16r0000 " invalid " 
                       "16r858D"    16r0000 " invalid " 
                       "16r858E"    16r0000 " invalid " 
                       "16r858F"    16r0000 " invalid " 
                       "16r8590"    16r6933 " <CJK> " 
                       "16r8591"    16r6928 " <CJK> " 
                       "16r8592"    16r0000 " invalid " 
                       "16r8593"    16r0000 " invalid " 
                       "16r8594"    16r692C " <CJK> " 
                       "16r8595"    16r0000 " invalid " 
                       "16r8596"    16r0000 " invalid " 
                       "16r8597"    16r3172 " <CJK> " 
                       "16r8598"    16r0000 " invalid " 
                       "16r8599"    16r4665 " <CJK> " 
                       "16r859A"    16r0000 " invalid " 
                       "16r859B"    16r692D " <CJK> " 
                       "16r859C"    16r6930 " <CJK> " 
                       "16r859D"    16r0000 " invalid " 
                       "16r859E"    16r0000 " invalid " 
                       "16r859F"    16r0000 " invalid " 
                       "16r85A0"    16r0000 " invalid " 
                       "16r85A1"    16r0000 " invalid " 
                       "16r85A2"    16r0000 " invalid " 
                       "16r85A3"    16r0000 " invalid " 
                       "16r85A4"    16r6926 " <CJK> " 
                       "16r85A5"    16r0000 " invalid " 
                       "16r85A6"    16r4126 " <CJK> " 
                       "16r85A7"    16r0000 " invalid " 
                       "16r85A8"    16r692A " <CJK> " 
                       "16r85A9"    16r3B27 " <CJK> " 
                       "16r85AA"    16r3F45 " <CJK> " 
                       "16r85AB"    16r3730 " <CJK> " 
                       "16r85AC"    16r4C74 " <CJK> " 
                       "16r85AD"    16r0000 " invalid " 
                       "16r85AE"    16r4C79 " <CJK> " 
                       "16r85AF"    16r3D72 " <CJK> " 
                       "16r85B0"    16r0000 " invalid " 
                       "16r85B1"    16r0000 " invalid " 
                       "16r85B2"    16r0000 " invalid " 
                       "16r85B3"    16r0000 " invalid " 
                       "16r85B4"    16r0000 " invalid " 
                       "16r85B5"    16r0000 " invalid " 
                       "16r85B6"    16r0000 " invalid " 
                       "16r85B7"    16r0000 " invalid " 
                       "16r85B8"    16r0000 " invalid " 
                       "16r85B9"    16r6937 " <CJK> " 
                       "16r85BA"    16r6935 " <CJK> " 
                       "16r85BB"    16r0000 " invalid " 
                       "16r85BC"    16r0000 " invalid " 
                       "16r85BD"    16r0000 " invalid " 
                       "16r85BE"    16r0000 " invalid " 
                       "16r85BF"    16r0000 " invalid " 
                       "16r85C0"    16r0000 " invalid " 
                       "16r85C1"    16r4F4E " <CJK> " 
                       "16r85C2"    16r0000 " invalid " 
                       "16r85C3"    16r0000 " invalid " 
                       "16r85C4"    16r0000 " invalid " 
                       "16r85C5"    16r0000 " invalid " 
                       "16r85C6"    16r0000 " invalid " 
                       "16r85C7"    16r0000 " invalid " 
                       "16r85C8"    16r0000 " invalid " 
                       "16r85C9"    16r6934 " <CJK> " 
                       "16r85CA"    16r0000 " invalid " 
                       "16r85CB"    16r0000 " invalid " 
                       "16r85CC"    16r0000 " invalid " 
                       "16r85CD"    16r4D75 " <CJK> " 
                       "16r85CE"    16r0000 " invalid " 
                       "16r85CF"    16r6936 " <CJK> " 
                       "16r85D0"    16r6938 " <CJK> " 
                       "16r85D1"    16r0000 " invalid " 
                       "16r85D2"    16r0000 " invalid " 
                       "16r85D3"    16r0000 " invalid " 
                       "16r85D4"    16r0000 " invalid " 
                       "16r85D5"    16r6939 " <CJK> " 
                       "16r85D6"    16r0000 " invalid " 
                       "16r85D7"    16r0000 " invalid " 
                       "16r85D8"    16r0000 " invalid " 
                       "16r85D9"    16r0000 " invalid " 
                       "16r85DA"    16r0000 " invalid " 
                       "16r85DB"    16r0000 " invalid " 
                       "16r85DC"    16r693C " <CJK> " 
                       "16r85DD"    16r693A " <CJK> " 
                       "16r85DE"    16r0000 " invalid " 
                       "16r85DF"    16r0000 " invalid " 
                       "16r85E0"    16r0000 " invalid " 
                       "16r85E1"    16r0000 " invalid " 
                       "16r85E2"    16r0000 " invalid " 
                       "16r85E3"    16r0000 " invalid " 
                       "16r85E4"    16r4623 " <CJK> " 
                       "16r85E5"    16r693B " <CJK> " 
                       "16r85E6"    16r0000 " invalid " 
                       "16r85E7"    16r0000 " invalid " 
                       "16r85E8"    16r0000 " invalid " 
                       "16r85E9"    16r484D " <CJK> " 
                       "16r85EA"    16r692E " <CJK> " 
                       "16r85EB"    16r0000 " invalid " 
                       "16r85EC"    16r0000 " invalid " 
                       "16r85ED"    16r0000 " invalid " 
                       "16r85EE"    16r0000 " invalid " 
                       "16r85EF"    16r0000 " invalid " 
                       "16r85F0"    16r0000 " invalid " 
                       "16r85F1"    16r0000 " invalid " 
                       "16r85F2"    16r0000 " invalid " 
                       "16r85F3"    16r0000 " invalid " 
                       "16r85F4"    16r0000 " invalid " 
                       "16r85F5"    16r0000 " invalid " 
                       "16r85F6"    16r0000 " invalid " 
                       "16r85F7"    16r3D73 " <CJK> " 
                       "16r85F8"    16r0000 " invalid " 
                       "16r85F9"    16r693D " <CJK> " 
                       "16r85FA"    16r6942 " <CJK> " 
                       "16r85FB"    16r4174 " <CJK> " 
                       "16r85FC"    16r0000 " invalid " 
                       "16r85FD"    16r0000 " invalid " 
                       "16r85FE"    16r6941 " <CJK> " 
                       "16r85FF"    16r0000 " invalid " 
                       "16r8600"    16r0000 " invalid " 
                       "16r8601"    16r0000 " invalid " 
                       "16r8602"    16r6922 " <CJK> " 
                       "16r8603"    16r0000 " invalid " 
                       "16r8604"    16r0000 " invalid " 
                       "16r8605"    16r0000 " invalid " 
                       "16r8606"    16r6943 " <CJK> " 
                       "16r8607"    16r4149 " <CJK> " 
                       "16r8608"    16r0000 " invalid " 
                       "16r8609"    16r0000 " invalid " 
                       "16r860A"    16r693E " <CJK> " 
                       "16r860B"    16r6940 " <CJK> " 
                       "16r860C"    16r0000 " invalid " 
                       "16r860D"    16r0000 " invalid " 
                       "16r860E"    16r0000 " invalid " 
                       "16r860F"    16r0000 " invalid " 
                       "16r8610"    16r0000 " invalid " 
                       "16r8611"    16r0000 " invalid " 
                       "16r8612"    16r0000 " invalid " 
                       "16r8613"    16r693F " <CJK> " 
                       "16r8614"    16r0000 " invalid " 
                       "16r8615"    16r0000 " invalid " 
                       "16r8616"    16r5D31 " <CJK> " 
                       "16r8617"    16r5D22 " <CJK> " 
                       "16r8618"    16r0000 " invalid " 
                       "16r8619"    16r0000 " invalid " 
                       "16r861A"    16r6945 " <CJK> " 
                       "16r861B"    16r0000 " invalid " 
                       "16r861C"    16r0000 " invalid " 
                       "16r861D"    16r0000 " invalid " 
                       "16r861E"    16r0000 " invalid " 
                       "16r861F"    16r0000 " invalid " 
                       "16r8620"    16r0000 " invalid " 
                       "16r8621"    16r0000 " invalid " 
                       "16r8622"    16r6944 " <CJK> " 
                       "16r8623"    16r0000 " invalid " 
                       "16r8624"    16r0000 " invalid " 
                       "16r8625"    16r0000 " invalid " 
                       "16r8626"    16r0000 " invalid " 
                       "16r8627"    16r0000 " invalid " 
                       "16r8628"    16r0000 " invalid " 
                       "16r8629"    16r0000 " invalid " 
                       "16r862A"    16r0000 " invalid " 
                       "16r862B"    16r0000 " invalid " 
                       "16r862C"    16r0000 " invalid " 
                       "16r862D"    16r4D76 " <CJK> " 
                       "16r862E"    16r0000 " invalid " 
                       "16r862F"    16r623C " <CJK> " 
                       "16r8630"    16r6946 " <CJK> " 
                       "16r8631"    16r0000 " invalid " 
                       "16r8632"    16r0000 " invalid " 
                       "16r8633"    16r0000 " invalid " 
                       "16r8634"    16r0000 " invalid " 
                       "16r8635"    16r0000 " invalid " 
                       "16r8636"    16r0000 " invalid " 
                       "16r8637"    16r0000 " invalid " 
                       "16r8638"    16r0000 " invalid " 
                       "16r8639"    16r0000 " invalid " 
                       "16r863A"    16r0000 " invalid " 
                       "16r863B"    16r0000 " invalid " 
                       "16r863C"    16r0000 " invalid " 
                       "16r863D"    16r0000 " invalid " 
                       "16r863E"    16r0000 " invalid " 
                       "16r863F"    16r6947 " <CJK> " 
                       "16r8640"    16r0000 " invalid " 
                       "16r8641"    16r0000 " invalid " 
                       "16r8642"    16r0000 " invalid " 
                       "16r8643"    16r0000 " invalid " 
                       "16r8644"    16r0000 " invalid " 
                       "16r8645"    16r0000 " invalid " 
                       "16r8646"    16r0000 " invalid " 
                       "16r8647"    16r0000 " invalid " 
                       "16r8648"    16r0000 " invalid " 
                       "16r8649"    16r0000 " invalid " 
                       "16r864A"    16r0000 " invalid " 
                       "16r864B"    16r0000 " invalid " 
                       "16r864C"    16r0000 " invalid " 
                       "16r864D"    16r6948 " <CJK> " 
                       "16r864E"    16r3857 " <CJK> " 
                       "16r864F"    16r0000 " invalid " 
                       "16r8650"    16r3554 " <CJK> " 
                       "16r8651"    16r0000 " invalid " 
                       "16r8652"    16r0000 " invalid " 
                       "16r8653"    16r0000 " invalid " 
                       "16r8654"    16r694A " <CJK> " 
                       "16r8655"    16r515D " <CJK> " 
                       "16r8656"    16r0000 " invalid " 
                       "16r8657"    16r0000 " invalid " 
                       "16r8658"    16r0000 " invalid " 
                       "16r8659"    16r0000 " invalid " 
                       "16r865A"    16r3575 " <CJK> " 
                       "16r865B"    16r0000 " invalid " 
                       "16r865C"    16r4E3A " <CJK> " 
                       "16r865D"    16r0000 " invalid " 
                       "16r865E"    16r3673 " <CJK> " 
                       "16r865F"    16r694B " <CJK> " 
                       "16r8660"    16r0000 " invalid " 
                       "16r8661"    16r0000 " invalid " 
                       "16r8662"    16r0000 " invalid " 
                       "16r8663"    16r0000 " invalid " 
                       "16r8664"    16r0000 " invalid " 
                       "16r8665"    16r0000 " invalid " 
                       "16r8666"    16r0000 " invalid " 
                       "16r8667"    16r694C " <CJK> " 
                       "16r8668"    16r0000 " invalid " 
                       "16r8669"    16r0000 " invalid " 
                       "16r866A"    16r0000 " invalid " 
                       "16r866B"    16r436E " <CJK> " 
                       "16r866C"    16r0000 " invalid " 
                       "16r866D"    16r0000 " invalid " 
                       "16r866E"    16r0000 " invalid " 
                       "16r866F"    16r0000 " invalid " 
                       "16r8670"    16r0000 " invalid " 
                       "16r8671"    16r694D " <CJK> " 
                       "16r8672"    16r0000 " invalid " 
                       "16r8673"    16r0000 " invalid " 
                       "16r8674"    16r0000 " invalid " 
                       "16r8675"    16r0000 " invalid " 
                       "16r8676"    16r0000 " invalid " 
                       "16r8677"    16r0000 " invalid " 
                       "16r8678"    16r0000 " invalid " 
                       "16r8679"    16r467A " <CJK> " 
                       "16r867A"    16r0000 " invalid " 
                       "16r867B"    16r303A " <CJK> " 
                       "16r867C"    16r0000 " invalid " 
                       "16r867D"    16r0000 " invalid " 
                       "16r867E"    16r0000 " invalid " 
                       "16r867F"    16r0000 " invalid " 
                       "16r8680"    16r0000 " invalid " 
                       "16r8681"    16r0000 " invalid " 
                       "16r8682"    16r0000 " invalid " 
                       "16r8683"    16r0000 " invalid " 
                       "16r8684"    16r0000 " invalid " 
                       "16r8685"    16r0000 " invalid " 
                       "16r8686"    16r0000 " invalid " 
                       "16r8687"    16r0000 " invalid " 
                       "16r8688"    16r0000 " invalid " 
                       "16r8689"    16r0000 " invalid " 
                       "16r868A"    16r3263 " <CJK> " 
                       "16r868B"    16r6952 " <CJK> " 
                       "16r868C"    16r6953 " <CJK> " 
                       "16r868D"    16r0000 " invalid " 
                       "16r868E"    16r0000 " invalid " 
                       "16r868F"    16r0000 " invalid " 
                       "16r8690"    16r0000 " invalid " 
                       "16r8691"    16r0000 " invalid " 
                       "16r8692"    16r0000 " invalid " 
                       "16r8693"    16r694E " <CJK> " 
                       "16r8694"    16r0000 " invalid " 
                       "16r8695"    16r3B3D " <CJK> " 
                       "16r8696"    16r0000 " invalid " 
                       "16r8697"    16r0000 " invalid " 
                       "16r8698"    16r0000 " invalid " 
                       "16r8699"    16r0000 " invalid " 
                       "16r869A"    16r0000 " invalid " 
                       "16r869B"    16r0000 " invalid " 
                       "16r869C"    16r0000 " invalid " 
                       "16r869D"    16r0000 " invalid " 
                       "16r869E"    16r0000 " invalid " 
                       "16r869F"    16r0000 " invalid " 
                       "16r86A0"    16r0000 " invalid " 
                       "16r86A1"    16r0000 " invalid " 
                       "16r86A2"    16r0000 " invalid " 
                       "16r86A3"    16r694F " <CJK> " 
                       "16r86A4"    16r4742 " <CJK> " 
                       "16r86A5"    16r0000 " invalid " 
                       "16r86A6"    16r0000 " invalid " 
                       "16r86A7"    16r0000 " invalid " 
                       "16r86A8"    16r0000 " invalid " 
                       "16r86A9"    16r6950 " <CJK> " 
                       "16r86AA"    16r6951 " <CJK> " 
                       "16r86AB"    16r695B " <CJK> " 
                       "16r86AC"    16r0000 " invalid " 
                       "16r86AD"    16r0000 " invalid " 
                       "16r86AE"    16r0000 " invalid " 
                       "16r86AF"    16r6955 " <CJK> " 
                       "16r86B0"    16r6958 " <CJK> " 
                       "16r86B1"    16r0000 " invalid " 
                       "16r86B2"    16r0000 " invalid " 
                       "16r86B3"    16r0000 " invalid " 
                       "16r86B4"    16r0000 " invalid " 
                       "16r86B5"    16r0000 " invalid " 
                       "16r86B6"    16r6954 " <CJK> " 
                       "16r86B7"    16r0000 " invalid " 
                       "16r86B8"    16r0000 " invalid " 
                       "16r86B9"    16r0000 " invalid " 
                       "16r86BA"    16r0000 " invalid " 
                       "16r86BB"    16r0000 " invalid " 
                       "16r86BC"    16r0000 " invalid " 
                       "16r86BD"    16r0000 " invalid " 
                       "16r86BE"    16r0000 " invalid " 
                       "16r86BF"    16r0000 " invalid " 
                       "16r86C0"    16r0000 " invalid " 
                       "16r86C1"    16r0000 " invalid " 
                       "16r86C2"    16r0000 " invalid " 
                       "16r86C3"    16r0000 " invalid " 
                       "16r86C4"    16r6956 " <CJK> " 
                       "16r86C5"    16r0000 " invalid " 
                       "16r86C6"    16r6957 " <CJK> " 
                       "16r86C7"    16r3C58 " <CJK> " 
                       "16r86C8"    16r0000 " invalid " 
                       "16r86C9"    16r6959 " <CJK> " 
                       "16r86CA"    16r0000 " invalid " 
                       "16r86CB"    16r4341 " <CJK> " 
                       "16r86CC"    16r0000 " invalid " 
                       "16r86CD"    16r3756 " <CJK> " 
                       "16r86CE"    16r3342 " <CJK> " 
                       "16r86CF"    16r0000 " invalid " 
                       "16r86D0"    16r0000 " invalid " 
                       "16r86D1"    16r0000 " invalid " 
                       "16r86D2"    16r0000 " invalid " 
                       "16r86D3"    16r0000 " invalid " 
                       "16r86D4"    16r695C " <CJK> " 
                       "16r86D5"    16r0000 " invalid " 
                       "16r86D6"    16r0000 " invalid " 
                       "16r86D7"    16r0000 " invalid " 
                       "16r86D8"    16r0000 " invalid " 
                       "16r86D9"    16r333F " <CJK> " 
                       "16r86DA"    16r0000 " invalid " 
                       "16r86DB"    16r6961 " <CJK> " 
                       "16r86DC"    16r0000 " invalid " 
                       "16r86DD"    16r0000 " invalid " 
                       "16r86DE"    16r695D " <CJK> " 
                       "16r86DF"    16r6960 " <CJK> " 
                       "16r86E0"    16r0000 " invalid " 
                       "16r86E1"    16r0000 " invalid " 
                       "16r86E2"    16r0000 " invalid " 
                       "16r86E3"    16r0000 " invalid " 
                       "16r86E4"    16r483A " <CJK> " 
                       "16r86E5"    16r0000 " invalid " 
                       "16r86E6"    16r0000 " invalid " 
                       "16r86E7"    16r0000 " invalid " 
                       "16r86E8"    16r0000 " invalid " 
                       "16r86E9"    16r695E " <CJK> " 
                       "16r86EA"    16r0000 " invalid " 
                       "16r86EB"    16r0000 " invalid " 
                       "16r86EC"    16r695F " <CJK> " 
                       "16r86ED"    16r4948 " <CJK> " 
                       "16r86EE"    16r485A " <CJK> " 
                       "16r86EF"    16r6962 " <CJK> " 
                       "16r86F0"    16r0000 " invalid " 
                       "16r86F1"    16r0000 " invalid " 
                       "16r86F2"    16r0000 " invalid " 
                       "16r86F3"    16r0000 " invalid " 
                       "16r86F4"    16r0000 " invalid " 
                       "16r86F5"    16r0000 " invalid " 
                       "16r86F6"    16r0000 " invalid " 
                       "16r86F7"    16r0000 " invalid " 
                       "16r86F8"    16r427D " <CJK> " 
                       "16r86F9"    16r696C " <CJK> " 
                       "16r86FA"    16r0000 " invalid " 
                       "16r86FB"    16r6968 " <CJK> " 
                       "16r86FC"    16r0000 " invalid " 
                       "16r86FD"    16r0000 " invalid " 
                       "16r86FE"    16r326B " <CJK> " 
                       "16r86FF"    16r0000 " invalid " 
                       "16r8700"    16r6966 " <CJK> " 
                       "16r8701"    16r0000 " invalid " 
                       "16r8702"    16r4B2A " <CJK> " 
                       "16r8703"    16r6967 " <CJK> " 
                       "16r8704"    16r0000 " invalid " 
                       "16r8705"    16r0000 " invalid " 
                       "16r8706"    16r6964 " <CJK> " 
                       "16r8707"    16r0000 " invalid " 
                       "16r8708"    16r6965 " <CJK> " 
                       "16r8709"    16r696A " <CJK> " 
                       "16r870A"    16r696D " <CJK> " 
                       "16r870B"    16r0000 " invalid " 
                       "16r870C"    16r0000 " invalid " 
                       "16r870D"    16r696B " <CJK> " 
                       "16r870E"    16r0000 " invalid " 
                       "16r870F"    16r0000 " invalid " 
                       "16r8710"    16r0000 " invalid " 
                       "16r8711"    16r6969 " <CJK> " 
                       "16r8712"    16r6963 " <CJK> " 
                       "16r8713"    16r0000 " invalid " 
                       "16r8714"    16r0000 " invalid " 
                       "16r8715"    16r0000 " invalid " 
                       "16r8716"    16r0000 " invalid " 
                       "16r8717"    16r0000 " invalid " 
                       "16r8718"    16r4358 " <CJK> " 
                       "16r8719"    16r0000 " invalid " 
                       "16r871A"    16r6974 " <CJK> " 
                       "16r871B"    16r0000 " invalid " 
                       "16r871C"    16r4C2A " <CJK> " 
                       "16r871D"    16r0000 " invalid " 
                       "16r871E"    16r0000 " invalid " 
                       "16r871F"    16r0000 " invalid " 
                       "16r8720"    16r0000 " invalid " 
                       "16r8721"    16r0000 " invalid " 
                       "16r8722"    16r0000 " invalid " 
                       "16r8723"    16r0000 " invalid " 
                       "16r8724"    16r0000 " invalid " 
                       "16r8725"    16r6972 " <CJK> " 
                       "16r8726"    16r0000 " invalid " 
                       "16r8727"    16r0000 " invalid " 
                       "16r8728"    16r0000 " invalid " 
                       "16r8729"    16r6973 " <CJK> " 
                       "16r872A"    16r0000 " invalid " 
                       "16r872B"    16r0000 " invalid " 
                       "16r872C"    16r0000 " invalid " 
                       "16r872D"    16r0000 " invalid " 
                       "16r872E"    16r0000 " invalid " 
                       "16r872F"    16r0000 " invalid " 
                       "16r8730"    16r0000 " invalid " 
                       "16r8731"    16r0000 " invalid " 
                       "16r8732"    16r0000 " invalid " 
                       "16r8733"    16r0000 " invalid " 
                       "16r8734"    16r696E " <CJK> " 
                       "16r8735"    16r0000 " invalid " 
                       "16r8736"    16r0000 " invalid " 
                       "16r8737"    16r6970 " <CJK> " 
                       "16r8738"    16r0000 " invalid " 
                       "16r8739"    16r0000 " invalid " 
                       "16r873A"    16r0000 " invalid " 
                       "16r873B"    16r6971 " <CJK> " 
                       "16r873C"    16r0000 " invalid " 
                       "16r873D"    16r0000 " invalid " 
                       "16r873E"    16r0000 " invalid " 
                       "16r873F"    16r696F " <CJK> " 
                       "16r8740"    16r0000 " invalid " 
                       "16r8741"    16r0000 " invalid " 
                       "16r8742"    16r0000 " invalid " 
                       "16r8743"    16r0000 " invalid " 
                       "16r8744"    16r0000 " invalid " 
                       "16r8745"    16r0000 " invalid " 
                       "16r8746"    16r0000 " invalid " 
                       "16r8747"    16r0000 " invalid " 
                       "16r8748"    16r0000 " invalid " 
                       "16r8749"    16r4066 " <CJK> " 
                       "16r874A"    16r0000 " invalid " 
                       "16r874B"    16r4F39 " <CJK> " 
                       "16r874C"    16r6978 " <CJK> " 
                       "16r874D"    16r0000 " invalid " 
                       "16r874E"    16r6979 " <CJK> " 
                       "16r874F"    16r0000 " invalid " 
                       "16r8750"    16r0000 " invalid " 
                       "16r8751"    16r0000 " invalid " 
                       "16r8752"    16r0000 " invalid " 
                       "16r8753"    16r6A21 " <CJK> " 
                       "16r8754"    16r0000 " invalid " 
                       "16r8755"    16r3F2A " <CJK> " 
                       "16r8756"    16r0000 " invalid " 
                       "16r8757"    16r697B " <CJK> " 
                       "16r8758"    16r0000 " invalid " 
                       "16r8759"    16r697E " <CJK> " 
                       "16r875A"    16r0000 " invalid " 
                       "16r875B"    16r0000 " invalid " 
                       "16r875C"    16r0000 " invalid " 
                       "16r875D"    16r0000 " invalid " 
                       "16r875E"    16r0000 " invalid " 
                       "16r875F"    16r6976 " <CJK> " 
                       "16r8760"    16r6975 " <CJK> " 
                       "16r8761"    16r0000 " invalid " 
                       "16r8762"    16r0000 " invalid " 
                       "16r8763"    16r6A22 " <CJK> " 
                       "16r8764"    16r0000 " invalid " 
                       "16r8765"    16r0000 " invalid " 
                       "16r8766"    16r325C " <CJK> " 
                       "16r8767"    16r0000 " invalid " 
                       "16r8768"    16r697C " <CJK> " 
                       "16r8769"    16r0000 " invalid " 
                       "16r876A"    16r6A23 " <CJK> " 
                       "16r876B"    16r0000 " invalid " 
                       "16r876C"    16r0000 " invalid " 
                       "16r876D"    16r0000 " invalid " 
                       "16r876E"    16r697D " <CJK> " 
                       "16r876F"    16r0000 " invalid " 
                       "16r8770"    16r0000 " invalid " 
                       "16r8771"    16r0000 " invalid " 
                       "16r8772"    16r0000 " invalid " 
                       "16r8773"    16r0000 " invalid " 
                       "16r8774"    16r697A " <CJK> " 
                       "16r8775"    16r0000 " invalid " 
                       "16r8776"    16r4433 " <CJK> " 
                       "16r8777"    16r0000 " invalid " 
                       "16r8778"    16r6977 " <CJK> " 
                       "16r8779"    16r0000 " invalid " 
                       "16r877A"    16r0000 " invalid " 
                       "16r877B"    16r0000 " invalid " 
                       "16r877C"    16r0000 " invalid " 
                       "16r877D"    16r0000 " invalid " 
                       "16r877E"    16r0000 " invalid " 
                       "16r877F"    16r4768 " <CJK> " 
                       "16r8780"    16r0000 " invalid " 
                       "16r8781"    16r0000 " invalid " 
                       "16r8782"    16r6A27 " <CJK> " 
                       "16r8783"    16r0000 " invalid " 
                       "16r8784"    16r0000 " invalid " 
                       "16r8785"    16r0000 " invalid " 
                       "16r8786"    16r0000 " invalid " 
                       "16r8787"    16r0000 " invalid " 
                       "16r8788"    16r0000 " invalid " 
                       "16r8789"    16r0000 " invalid " 
                       "16r878A"    16r0000 " invalid " 
                       "16r878B"    16r0000 " invalid " 
                       "16r878C"    16r0000 " invalid " 
                       "16r878D"    16r4D3B " <CJK> " 
                       "16r878E"    16r0000 " invalid " 
                       "16r878F"    16r0000 " invalid " 
                       "16r8790"    16r0000 " invalid " 
                       "16r8791"    16r0000 " invalid " 
                       "16r8792"    16r0000 " invalid " 
                       "16r8793"    16r0000 " invalid " 
                       "16r8794"    16r0000 " invalid " 
                       "16r8795"    16r0000 " invalid " 
                       "16r8796"    16r0000 " invalid " 
                       "16r8797"    16r0000 " invalid " 
                       "16r8798"    16r0000 " invalid " 
                       "16r8799"    16r0000 " invalid " 
                       "16r879A"    16r0000 " invalid " 
                       "16r879B"    16r0000 " invalid " 
                       "16r879C"    16r0000 " invalid " 
                       "16r879D"    16r0000 " invalid " 
                       "16r879E"    16r0000 " invalid " 
                       "16r879F"    16r6A26 " <CJK> " 
                       "16r87A0"    16r0000 " invalid " 
                       "16r87A1"    16r0000 " invalid " 
                       "16r87A2"    16r6A25 " <CJK> " 
                       "16r87A3"    16r0000 " invalid " 
                       "16r87A4"    16r0000 " invalid " 
                       "16r87A5"    16r0000 " invalid " 
                       "16r87A6"    16r0000 " invalid " 
                       "16r87A7"    16r0000 " invalid " 
                       "16r87A8"    16r0000 " invalid " 
                       "16r87A9"    16r0000 " invalid " 
                       "16r87AA"    16r0000 " invalid " 
                       "16r87AB"    16r6A2E " <CJK> " 
                       "16r87AC"    16r0000 " invalid " 
                       "16r87AD"    16r0000 " invalid " 
                       "16r87AE"    16r0000 " invalid " 
                       "16r87AF"    16r6A28 " <CJK> " 
                       "16r87B0"    16r0000 " invalid " 
                       "16r87B1"    16r0000 " invalid " 
                       "16r87B2"    16r0000 " invalid " 
                       "16r87B3"    16r6A30 " <CJK> " 
                       "16r87B4"    16r0000 " invalid " 
                       "16r87B5"    16r0000 " invalid " 
                       "16r87B6"    16r0000 " invalid " 
                       "16r87B7"    16r0000 " invalid " 
                       "16r87B8"    16r0000 " invalid " 
                       "16r87B9"    16r0000 " invalid " 
                       "16r87BA"    16r4D66 " <CJK> " 
                       "16r87BB"    16r6A33 " <CJK> " 
                       "16r87BC"    16r0000 " invalid " 
                       "16r87BD"    16r6A2A " <CJK> " 
                       "16r87BE"    16r0000 " invalid " 
                       "16r87BF"    16r0000 " invalid " 
                       "16r87C0"    16r6A2B " <CJK> " 
                       "16r87C1"    16r0000 " invalid " 
                       "16r87C2"    16r0000 " invalid " 
                       "16r87C3"    16r0000 " invalid " 
                       "16r87C4"    16r6A2F " <CJK> " 
                       "16r87C5"    16r0000 " invalid " 
                       "16r87C6"    16r6A32 " <CJK> " 
                       "16r87C7"    16r6A31 " <CJK> " 
                       "16r87C8"    16r0000 " invalid " 
                       "16r87C9"    16r0000 " invalid " 
                       "16r87CA"    16r0000 " invalid " 
                       "16r87CB"    16r6A29 " <CJK> " 
                       "16r87CC"    16r0000 " invalid " 
                       "16r87CD"    16r0000 " invalid " 
                       "16r87CE"    16r0000 " invalid " 
                       "16r87CF"    16r0000 " invalid " 
                       "16r87D0"    16r6A2C " <CJK> " 
                       "16r87D1"    16r0000 " invalid " 
                       "16r87D2"    16r6A3D " <CJK> " 
                       "16r87D3"    16r0000 " invalid " 
                       "16r87D4"    16r0000 " invalid " 
                       "16r87D5"    16r0000 " invalid " 
                       "16r87D6"    16r0000 " invalid " 
                       "16r87D7"    16r0000 " invalid " 
                       "16r87D8"    16r0000 " invalid " 
                       "16r87D9"    16r0000 " invalid " 
                       "16r87DA"    16r0000 " invalid " 
                       "16r87DB"    16r0000 " invalid " 
                       "16r87DC"    16r0000 " invalid " 
                       "16r87DD"    16r0000 " invalid " 
                       "16r87DE"    16r0000 " invalid " 
                       "16r87DF"    16r0000 " invalid " 
                       "16r87E0"    16r6A36 " <CJK> " 
                       "16r87E1"    16r0000 " invalid " 
                       "16r87E2"    16r0000 " invalid " 
                       "16r87E3"    16r0000 " invalid " 
                       "16r87E4"    16r0000 " invalid " 
                       "16r87E5"    16r0000 " invalid " 
                       "16r87E6"    16r0000 " invalid " 
                       "16r87E7"    16r0000 " invalid " 
                       "16r87E8"    16r0000 " invalid " 
                       "16r87E9"    16r0000 " invalid " 
                       "16r87EA"    16r0000 " invalid " 
                       "16r87EB"    16r0000 " invalid " 
                       "16r87EC"    16r0000 " invalid " 
                       "16r87ED"    16r0000 " invalid " 
                       "16r87EE"    16r0000 " invalid " 
                       "16r87EF"    16r6A34 " <CJK> " 
                       "16r87F0"    16r0000 " invalid " 
                       "16r87F1"    16r0000 " invalid " 
                       "16r87F2"    16r6A35 " <CJK> " 
                       "16r87F3"    16r0000 " invalid " 
                       "16r87F4"    16r0000 " invalid " 
                       "16r87F5"    16r0000 " invalid " 
                       "16r87F6"    16r6A3A " <CJK> " 
                       "16r87F7"    16r6A3B " <CJK> " 
                       "16r87F8"    16r0000 " invalid " 
                       "16r87F9"    16r332A " <CJK> " 
                       "16r87FA"    16r0000 " invalid " 
                       "16r87FB"    16r3542 " <CJK> " 
                       "16r87FC"    16r0000 " invalid " 
                       "16r87FD"    16r0000 " invalid " 
                       "16r87FE"    16r6A39 " <CJK> " 
                       "16r87FF"    16r0000 " invalid " 
                       "16r8800"    16r0000 " invalid " 
                       "16r8801"    16r0000 " invalid " 
                       "16r8802"    16r0000 " invalid " 
                       "16r8803"    16r0000 " invalid " 
                       "16r8804"    16r0000 " invalid " 
                       "16r8805"    16r6A24 " <CJK> " 
                       "16r8806"    16r0000 " invalid " 
                       "16r8807"    16r0000 " invalid " 
                       "16r8808"    16r0000 " invalid " 
                       "16r8809"    16r0000 " invalid " 
                       "16r880A"    16r0000 " invalid " 
                       "16r880B"    16r0000 " invalid " 
                       "16r880C"    16r0000 " invalid " 
                       "16r880D"    16r6A38 " <CJK> " 
                       "16r880E"    16r6A3C " <CJK> " 
                       "16r880F"    16r6A37 " <CJK> " 
                       "16r8810"    16r0000 " invalid " 
                       "16r8811"    16r6A3E " <CJK> " 
                       "16r8812"    16r0000 " invalid " 
                       "16r8813"    16r0000 " invalid " 
                       "16r8814"    16r0000 " invalid " 
                       "16r8815"    16r6A40 " <CJK> " 
                       "16r8816"    16r6A3F " <CJK> " 
                       "16r8817"    16r0000 " invalid " 
                       "16r8818"    16r0000 " invalid " 
                       "16r8819"    16r0000 " invalid " 
                       "16r881A"    16r0000 " invalid " 
                       "16r881B"    16r0000 " invalid " 
                       "16r881C"    16r0000 " invalid " 
                       "16r881D"    16r0000 " invalid " 
                       "16r881E"    16r0000 " invalid " 
                       "16r881F"    16r0000 " invalid " 
                       "16r8820"    16r0000 " invalid " 
                       "16r8821"    16r6A42 " <CJK> " 
                       "16r8822"    16r6A41 " <CJK> " 
                       "16r8823"    16r695A " <CJK> " 
                       "16r8824"    16r0000 " invalid " 
                       "16r8825"    16r0000 " invalid " 
                       "16r8826"    16r0000 " invalid " 
                       "16r8827"    16r6A46 " <CJK> " 
                       "16r8828"    16r0000 " invalid " 
                       "16r8829"    16r0000 " invalid " 
                       "16r882A"    16r0000 " invalid " 
                       "16r882B"    16r0000 " invalid " 
                       "16r882C"    16r0000 " invalid " 
                       "16r882D"    16r0000 " invalid " 
                       "16r882E"    16r0000 " invalid " 
                       "16r882F"    16r0000 " invalid " 
                       "16r8830"    16r0000 " invalid " 
                       "16r8831"    16r6A43 " <CJK> " 
                       "16r8832"    16r0000 " invalid " 
                       "16r8833"    16r0000 " invalid " 
                       "16r8834"    16r0000 " invalid " 
                       "16r8835"    16r0000 " invalid " 
                       "16r8836"    16r6A44 " <CJK> " 
                       "16r8837"    16r0000 " invalid " 
                       "16r8838"    16r0000 " invalid " 
                       "16r8839"    16r6A45 " <CJK> " 
                       "16r883A"    16r0000 " invalid " 
                       "16r883B"    16r6A47 " <CJK> " 
                       "16r883C"    16r0000 " invalid " 
                       "16r883D"    16r0000 " invalid " 
                       "16r883E"    16r0000 " invalid " 
                       "16r883F"    16r0000 " invalid " 
                       "16r8840"    16r376C " <CJK> " 
                       "16r8841"    16r0000 " invalid " 
                       "16r8842"    16r6A49 " <CJK> " 
                       "16r8843"    16r0000 " invalid " 
                       "16r8844"    16r6A48 " <CJK> " 
                       "16r8845"    16r0000 " invalid " 
                       "16r8846"    16r3D30 " <CJK> " 
                       "16r8847"    16r0000 " invalid " 
                       "16r8848"    16r0000 " invalid " 
                       "16r8849"    16r0000 " invalid " 
                       "16r884A"    16r0000 " invalid " 
                       "16r884B"    16r0000 " invalid " 
                       "16r884C"    16r3954 " <CJK> " 
                       "16r884D"    16r5E27 " <CJK> " 
                       "16r884E"    16r0000 " invalid " 
                       "16r884F"    16r0000 " invalid " 
                       "16r8850"    16r0000 " invalid " 
                       "16r8851"    16r0000 " invalid " 
                       "16r8852"    16r6A4A " <CJK> " 
                       "16r8853"    16r3D51 " <CJK> " 
                       "16r8854"    16r0000 " invalid " 
                       "16r8855"    16r0000 " invalid " 
                       "16r8856"    16r0000 " invalid " 
                       "16r8857"    16r3339 " <CJK> " 
                       "16r8858"    16r0000 " invalid " 
                       "16r8859"    16r6A4B " <CJK> " 
                       "16r885A"    16r0000 " invalid " 
                       "16r885B"    16r3152 " <CJK> " 
                       "16r885C"    16r0000 " invalid " 
                       "16r885D"    16r3E57 " <CJK> " 
                       "16r885E"    16r6A4C " <CJK> " 
                       "16r885F"    16r0000 " invalid " 
                       "16r8860"    16r0000 " invalid " 
                       "16r8861"    16r3955 " <CJK> " 
                       "16r8862"    16r6A4D " <CJK> " 
                       "16r8863"    16r3061 " <CJK> " 
                       "16r8864"    16r0000 " invalid " 
                       "16r8865"    16r0000 " invalid " 
                       "16r8866"    16r0000 " invalid " 
                       "16r8867"    16r0000 " invalid " 
                       "16r8868"    16r493D " <CJK> " 
                       "16r8869"    16r0000 " invalid " 
                       "16r886A"    16r0000 " invalid " 
                       "16r886B"    16r6A4E " <CJK> " 
                       "16r886C"    16r0000 " invalid " 
                       "16r886D"    16r0000 " invalid " 
                       "16r886E"    16r0000 " invalid " 
                       "16r886F"    16r0000 " invalid " 
                       "16r8870"    16r3F6A " <CJK> " 
                       "16r8871"    16r0000 " invalid " 
                       "16r8872"    16r6A55 " <CJK> " 
                       "16r8873"    16r0000 " invalid " 
                       "16r8874"    16r0000 " invalid " 
                       "16r8875"    16r6A52 " <CJK> " 
                       "16r8876"    16r0000 " invalid " 
                       "16r8877"    16r436F " <CJK> " 
                       "16r8878"    16r0000 " invalid " 
                       "16r8879"    16r0000 " invalid " 
                       "16r887A"    16r0000 " invalid " 
                       "16r887B"    16r0000 " invalid " 
                       "16r887C"    16r0000 " invalid " 
                       "16r887D"    16r6A53 " <CJK> " 
                       "16r887E"    16r6A50 " <CJK> " 
                       "16r887F"    16r365E " <CJK> " 
                       "16r8880"    16r0000 " invalid " 
                       "16r8881"    16r6A4F " <CJK> " 
                       "16r8882"    16r6A56 " <CJK> " 
                       "16r8883"    16r0000 " invalid " 
                       "16r8884"    16r0000 " invalid " 
                       "16r8885"    16r0000 " invalid " 
                       "16r8886"    16r0000 " invalid " 
                       "16r8887"    16r0000 " invalid " 
                       "16r8888"    16r3736 " <CJK> " 
                       "16r8889"    16r0000 " invalid " 
                       "16r888A"    16r0000 " invalid " 
                       "16r888B"    16r425E " <CJK> " 
                       "16r888C"    16r0000 " invalid " 
                       "16r888D"    16r6A5C " <CJK> " 
                       "16r888E"    16r0000 " invalid " 
                       "16r888F"    16r0000 " invalid " 
                       "16r8890"    16r0000 " invalid " 
                       "16r8891"    16r0000 " invalid " 
                       "16r8892"    16r6A58 " <CJK> " 
                       "16r8893"    16r0000 " invalid " 
                       "16r8894"    16r0000 " invalid " 
                       "16r8895"    16r0000 " invalid " 
                       "16r8896"    16r4235 " <CJK> " 
                       "16r8897"    16r6A57 " <CJK> " 
                       "16r8898"    16r0000 " invalid " 
                       "16r8899"    16r6A5A " <CJK> " 
                       "16r889A"    16r0000 " invalid " 
                       "16r889B"    16r0000 " invalid " 
                       "16r889C"    16r0000 " invalid " 
                       "16r889D"    16r0000 " invalid " 
                       "16r889E"    16r6A51 " <CJK> " 
                       "16r889F"    16r0000 " invalid " 
                       "16r88A0"    16r0000 " invalid " 
                       "16r88A1"    16r0000 " invalid " 
                       "16r88A2"    16r6A5B " <CJK> " 
                       "16r88A3"    16r0000 " invalid " 
                       "16r88A4"    16r6A5D " <CJK> " 
                       "16r88A5"    16r0000 " invalid " 
                       "16r88A6"    16r0000 " invalid " 
                       "16r88A7"    16r0000 " invalid " 
                       "16r88A8"    16r0000 " invalid " 
                       "16r88A9"    16r0000 " invalid " 
                       "16r88AA"    16r0000 " invalid " 
                       "16r88AB"    16r486F " <CJK> " 
                       "16r88AC"    16r0000 " invalid " 
                       "16r88AD"    16r0000 " invalid " 
                       "16r88AE"    16r6A59 " <CJK> " 
                       "16r88AF"    16r0000 " invalid " 
                       "16r88B0"    16r6A5E " <CJK> " 
                       "16r88B1"    16r6A60 " <CJK> " 
                       "16r88B2"    16r0000 " invalid " 
                       "16r88B3"    16r0000 " invalid " 
                       "16r88B4"    16r3853 " <CJK> " 
                       "16r88B5"    16r6A54 " <CJK> " 
                       "16r88B6"    16r0000 " invalid " 
                       "16r88B7"    16r3041 " <CJK> " 
                       "16r88B8"    16r0000 " invalid " 
                       "16r88B9"    16r0000 " invalid " 
                       "16r88BA"    16r0000 " invalid " 
                       "16r88BB"    16r0000 " invalid " 
                       "16r88BC"    16r0000 " invalid " 
                       "16r88BD"    16r0000 " invalid " 
                       "16r88BE"    16r0000 " invalid " 
                       "16r88BF"    16r6A5F " <CJK> " 
                       "16r88C0"    16r0000 " invalid " 
                       "16r88C1"    16r3A5B " <CJK> " 
                       "16r88C2"    16r4E76 " <CJK> " 
                       "16r88C3"    16r6A61 " <CJK> " 
                       "16r88C4"    16r6A62 " <CJK> " 
                       "16r88C5"    16r4175 " <CJK> " 
                       "16r88C6"    16r0000 " invalid " 
                       "16r88C7"    16r0000 " invalid " 
                       "16r88C8"    16r0000 " invalid " 
                       "16r88C9"    16r0000 " invalid " 
                       "16r88CA"    16r0000 " invalid " 
                       "16r88CB"    16r0000 " invalid " 
                       "16r88CC"    16r0000 " invalid " 
                       "16r88CD"    16r0000 " invalid " 
                       "16r88CE"    16r0000 " invalid " 
                       "16r88CF"    16r4E22 " <CJK> " 
                       "16r88D0"    16r0000 " invalid " 
                       "16r88D1"    16r0000 " invalid " 
                       "16r88D2"    16r0000 " invalid " 
                       "16r88D3"    16r0000 " invalid " 
                       "16r88D4"    16r6A63 " <CJK> " 
                       "16r88D5"    16r4D35 " <CJK> " 
                       "16r88D6"    16r0000 " invalid " 
                       "16r88D7"    16r0000 " invalid " 
                       "16r88D8"    16r6A64 " <CJK> " 
                       "16r88D9"    16r6A65 " <CJK> " 
                       "16r88DA"    16r0000 " invalid " 
                       "16r88DB"    16r0000 " invalid " 
                       "16r88DC"    16r4A64 " <CJK> " 
                       "16r88DD"    16r6A66 " <CJK> " 
                       "16r88DE"    16r0000 " invalid " 
                       "16r88DF"    16r3A40 " <CJK> " 
                       "16r88E0"    16r0000 " invalid " 
                       "16r88E1"    16r4E23 " <CJK> " 
                       "16r88E2"    16r0000 " invalid " 
                       "16r88E3"    16r0000 " invalid " 
                       "16r88E4"    16r0000 " invalid " 
                       "16r88E5"    16r0000 " invalid " 
                       "16r88E6"    16r0000 " invalid " 
                       "16r88E7"    16r0000 " invalid " 
                       "16r88E8"    16r6A6B " <CJK> " 
                       "16r88E9"    16r0000 " invalid " 
                       "16r88EA"    16r0000 " invalid " 
                       "16r88EB"    16r0000 " invalid " 
                       "16r88EC"    16r0000 " invalid " 
                       "16r88ED"    16r0000 " invalid " 
                       "16r88EE"    16r0000 " invalid " 
                       "16r88EF"    16r0000 " invalid " 
                       "16r88F0"    16r0000 " invalid " 
                       "16r88F1"    16r0000 " invalid " 
                       "16r88F2"    16r6A6C " <CJK> " 
                       "16r88F3"    16r3E58 " <CJK> " 
                       "16r88F4"    16r6A6A " <CJK> " 
                       "16r88F5"    16r0000 " invalid " 
                       "16r88F6"    16r0000 " invalid " 
                       "16r88F7"    16r0000 " invalid " 
                       "16r88F8"    16r4D67 " <CJK> " 
                       "16r88F9"    16r6A67 " <CJK> " 
                       "16r88FA"    16r0000 " invalid " 
                       "16r88FB"    16r0000 " invalid " 
                       "16r88FC"    16r6A69 " <CJK> " 
                       "16r88FD"    16r403D " <CJK> " 
                       "16r88FE"    16r3F7E " <CJK> " 
                       "16r88FF"    16r0000 " invalid " 
                       "16r8900"    16r0000 " invalid " 
                       "16r8901"    16r0000 " invalid " 
                       "16r8902"    16r6A68 " <CJK> " 
                       "16r8903"    16r0000 " invalid " 
                       "16r8904"    16r6A6D " <CJK> " 
                       "16r8905"    16r0000 " invalid " 
                       "16r8906"    16r0000 " invalid " 
                       "16r8907"    16r4A23 " <CJK> " 
                       "16r8908"    16r0000 " invalid " 
                       "16r8909"    16r0000 " invalid " 
                       "16r890A"    16r6A6F " <CJK> " 
                       "16r890B"    16r0000 " invalid " 
                       "16r890C"    16r6A6E " <CJK> " 
                       "16r890D"    16r0000 " invalid " 
                       "16r890E"    16r0000 " invalid " 
                       "16r890F"    16r0000 " invalid " 
                       "16r8910"    16r336C " <CJK> " 
                       "16r8911"    16r0000 " invalid " 
                       "16r8912"    16r4B2B " <CJK> " 
                       "16r8913"    16r6A70 " <CJK> " 
                       "16r8914"    16r0000 " invalid " 
                       "16r8915"    16r0000 " invalid " 
                       "16r8916"    16r0000 " invalid " 
                       "16r8917"    16r0000 " invalid " 
                       "16r8918"    16r0000 " invalid " 
                       "16r8919"    16r0000 " invalid " 
                       "16r891A"    16r0000 " invalid " 
                       "16r891B"    16r0000 " invalid " 
                       "16r891C"    16r0000 " invalid " 
                       "16r891D"    16r6A7C " <CJK> " 
                       "16r891E"    16r6A72 " <CJK> " 
                       "16r891F"    16r0000 " invalid " 
                       "16r8920"    16r0000 " invalid " 
                       "16r8921"    16r0000 " invalid " 
                       "16r8922"    16r0000 " invalid " 
                       "16r8923"    16r0000 " invalid " 
                       "16r8924"    16r0000 " invalid " 
                       "16r8925"    16r6A73 " <CJK> " 
                       "16r8926"    16r0000 " invalid " 
                       "16r8927"    16r0000 " invalid " 
                       "16r8928"    16r0000 " invalid " 
                       "16r8929"    16r0000 " invalid " 
                       "16r892A"    16r6A74 " <CJK> " 
                       "16r892B"    16r6A75 " <CJK> " 
                       "16r892C"    16r0000 " invalid " 
                       "16r892D"    16r0000 " invalid " 
                       "16r892E"    16r0000 " invalid " 
                       "16r892F"    16r0000 " invalid " 
                       "16r8930"    16r0000 " invalid " 
                       "16r8931"    16r0000 " invalid " 
                       "16r8932"    16r0000 " invalid " 
                       "16r8933"    16r0000 " invalid " 
                       "16r8934"    16r0000 " invalid " 
                       "16r8935"    16r0000 " invalid " 
                       "16r8936"    16r6A79 " <CJK> " 
                       "16r8937"    16r0000 " invalid " 
                       "16r8938"    16r6A7A " <CJK> " 
                       "16r8939"    16r0000 " invalid " 
                       "16r893A"    16r0000 " invalid " 
                       "16r893B"    16r6A78 " <CJK> " 
                       "16r893C"    16r0000 " invalid " 
                       "16r893D"    16r0000 " invalid " 
                       "16r893E"    16r0000 " invalid " 
                       "16r893F"    16r0000 " invalid " 
                       "16r8940"    16r0000 " invalid " 
                       "16r8941"    16r6A76 " <CJK> " 
                       "16r8942"    16r0000 " invalid " 
                       "16r8943"    16r6A71 " <CJK> " 
                       "16r8944"    16r6A77 " <CJK> " 
                       "16r8945"    16r0000 " invalid " 
                       "16r8946"    16r0000 " invalid " 
                       "16r8947"    16r0000 " invalid " 
                       "16r8948"    16r0000 " invalid " 
                       "16r8949"    16r0000 " invalid " 
                       "16r894A"    16r0000 " invalid " 
                       "16r894B"    16r0000 " invalid " 
                       "16r894C"    16r6A7B " <CJK> " 
                       "16r894D"    16r7037 " <CJK> " 
                       "16r894E"    16r0000 " invalid " 
                       "16r894F"    16r0000 " invalid " 
                       "16r8950"    16r0000 " invalid " 
                       "16r8951"    16r0000 " invalid " 
                       "16r8952"    16r0000 " invalid " 
                       "16r8953"    16r0000 " invalid " 
                       "16r8954"    16r0000 " invalid " 
                       "16r8955"    16r0000 " invalid " 
                       "16r8956"    16r3228 " <CJK> " 
                       "16r8957"    16r0000 " invalid " 
                       "16r8958"    16r0000 " invalid " 
                       "16r8959"    16r0000 " invalid " 
                       "16r895A"    16r0000 " invalid " 
                       "16r895B"    16r0000 " invalid " 
                       "16r895C"    16r0000 " invalid " 
                       "16r895D"    16r0000 " invalid " 
                       "16r895E"    16r6A7E " <CJK> " 
                       "16r895F"    16r365F " <CJK> " 
                       "16r8960"    16r6A7D " <CJK> " 
                       "16r8961"    16r0000 " invalid " 
                       "16r8962"    16r0000 " invalid " 
                       "16r8963"    16r0000 " invalid " 
                       "16r8964"    16r6B22 " <CJK> " 
                       "16r8965"    16r0000 " invalid " 
                       "16r8966"    16r6B21 " <CJK> " 
                       "16r8967"    16r0000 " invalid " 
                       "16r8968"    16r0000 " invalid " 
                       "16r8969"    16r0000 " invalid " 
                       "16r896A"    16r6B24 " <CJK> " 
                       "16r896B"    16r0000 " invalid " 
                       "16r896C"    16r0000 " invalid " 
                       "16r896D"    16r6B23 " <CJK> " 
                       "16r896E"    16r0000 " invalid " 
                       "16r896F"    16r6B25 " <CJK> " 
                       "16r8970"    16r0000 " invalid " 
                       "16r8971"    16r0000 " invalid " 
                       "16r8972"    16r3D31 " <CJK> " 
                       "16r8973"    16r0000 " invalid " 
                       "16r8974"    16r6B26 " <CJK> " 
                       "16r8975"    16r0000 " invalid " 
                       "16r8976"    16r0000 " invalid " 
                       "16r8977"    16r6B27 " <CJK> " 
                       "16r8978"    16r0000 " invalid " 
                       "16r8979"    16r0000 " invalid " 
                       "16r897A"    16r0000 " invalid " 
                       "16r897B"    16r0000 " invalid " 
                       "16r897C"    16r0000 " invalid " 
                       "16r897D"    16r0000 " invalid " 
                       "16r897E"    16r6B28 " <CJK> " 
                       "16r897F"    16r403E " <CJK> " 
                       "16r8980"    16r0000 " invalid " 
                       "16r8981"    16r4D57 " <CJK> " 
                       "16r8982"    16r0000 " invalid " 
                       "16r8983"    16r6B29 " <CJK> " 
                       "16r8984"    16r0000 " invalid " 
                       "16r8985"    16r0000 " invalid " 
                       "16r8986"    16r4A24 " <CJK> " 
                       "16r8987"    16r4746 " <CJK> " 
                       "16r8988"    16r6B2A " <CJK> " 
                       "16r8989"    16r0000 " invalid " 
                       "16r898A"    16r6B2B " <CJK> " 
                       "16r898B"    16r382B " <CJK> " 
                       "16r898C"    16r0000 " invalid " 
                       "16r898D"    16r0000 " invalid " 
                       "16r898E"    16r0000 " invalid " 
                       "16r898F"    16r352C " <CJK> " 
                       "16r8990"    16r0000 " invalid " 
                       "16r8991"    16r0000 " invalid " 
                       "16r8992"    16r0000 " invalid " 
                       "16r8993"    16r6B2C " <CJK> " 
                       "16r8994"    16r0000 " invalid " 
                       "16r8995"    16r0000 " invalid " 
                       "16r8996"    16r3B6B " <CJK> " 
                       "16r8997"    16r4741 " <CJK> " 
                       "16r8998"    16r6B2D " <CJK> " 
                       "16r8999"    16r0000 " invalid " 
                       "16r899A"    16r3350 " <CJK> " 
                       "16r899B"    16r0000 " invalid " 
                       "16r899C"    16r0000 " invalid " 
                       "16r899D"    16r0000 " invalid " 
                       "16r899E"    16r0000 " invalid " 
                       "16r899F"    16r0000 " invalid " 
                       "16r89A0"    16r0000 " invalid " 
                       "16r89A1"    16r6B2E " <CJK> " 
                       "16r89A2"    16r0000 " invalid " 
                       "16r89A3"    16r0000 " invalid " 
                       "16r89A4"    16r0000 " invalid " 
                       "16r89A5"    16r0000 " invalid " 
                       "16r89A6"    16r6B30 " <CJK> " 
                       "16r89A7"    16r4D77 " <CJK> " 
                       "16r89A8"    16r0000 " invalid " 
                       "16r89A9"    16r6B2F " <CJK> " 
                       "16r89AA"    16r3F46 " <CJK> " 
                       "16r89AB"    16r0000 " invalid " 
                       "16r89AC"    16r6B31 " <CJK> " 
                       "16r89AD"    16r0000 " invalid " 
                       "16r89AE"    16r0000 " invalid " 
                       "16r89AF"    16r6B32 " <CJK> " 
                       "16r89B0"    16r0000 " invalid " 
                       "16r89B1"    16r0000 " invalid " 
                       "16r89B2"    16r6B33 " <CJK> " 
                       "16r89B3"    16r3451 " <CJK> " 
                       "16r89B4"    16r0000 " invalid " 
                       "16r89B5"    16r0000 " invalid " 
                       "16r89B6"    16r0000 " invalid " 
                       "16r89B7"    16r0000 " invalid " 
                       "16r89B8"    16r0000 " invalid " 
                       "16r89B9"    16r0000 " invalid " 
                       "16r89BA"    16r6B34 " <CJK> " 
                       "16r89BB"    16r0000 " invalid " 
                       "16r89BC"    16r0000 " invalid " 
                       "16r89BD"    16r6B35 " <CJK> " 
                       "16r89BE"    16r0000 " invalid " 
                       "16r89BF"    16r6B36 " <CJK> " 
                       "16r89C0"    16r6B37 " <CJK> " 
                       "16r89C1"    16r0000 " invalid " 
                       "16r89C2"    16r0000 " invalid " 
                       "16r89C3"    16r0000 " invalid " 
                       "16r89C4"    16r0000 " invalid " 
                       "16r89C5"    16r0000 " invalid " 
                       "16r89C6"    16r0000 " invalid " 
                       "16r89C7"    16r0000 " invalid " 
                       "16r89C8"    16r0000 " invalid " 
                       "16r89C9"    16r0000 " invalid " 
                       "16r89CA"    16r0000 " invalid " 
                       "16r89CB"    16r0000 " invalid " 
                       "16r89CC"    16r0000 " invalid " 
                       "16r89CD"    16r0000 " invalid " 
                       "16r89CE"    16r0000 " invalid " 
                       "16r89CF"    16r0000 " invalid " 
                       "16r89D0"    16r0000 " invalid " 
                       "16r89D1"    16r0000 " invalid " 
                       "16r89D2"    16r3351 " <CJK> " 
                       "16r89D3"    16r0000 " invalid " 
                       "16r89D4"    16r0000 " invalid " 
                       "16r89D5"    16r0000 " invalid " 
                       "16r89D6"    16r0000 " invalid " 
                       "16r89D7"    16r0000 " invalid " 
                       "16r89D8"    16r0000 " invalid " 
                       "16r89D9"    16r0000 " invalid " 
                       "16r89DA"    16r6B38 " <CJK> " 
                       "16r89DB"    16r0000 " invalid " 
                       "16r89DC"    16r6B39 " <CJK> " 
                       "16r89DD"    16r6B3A " <CJK> " 
                       "16r89DE"    16r0000 " invalid " 
                       "16r89DF"    16r0000 " invalid " 
                       "16r89E0"    16r0000 " invalid " 
                       "16r89E1"    16r0000 " invalid " 
                       "16r89E2"    16r0000 " invalid " 
                       "16r89E3"    16r3272 " <CJK> " 
                       "16r89E4"    16r0000 " invalid " 
                       "16r89E5"    16r0000 " invalid " 
                       "16r89E6"    16r3F28 " <CJK> " 
                       "16r89E7"    16r6B3B " <CJK> " 
                       "16r89E8"    16r0000 " invalid " 
                       "16r89E9"    16r0000 " invalid " 
                       "16r89EA"    16r0000 " invalid " 
                       "16r89EB"    16r0000 " invalid " 
                       "16r89EC"    16r0000 " invalid " 
                       "16r89ED"    16r0000 " invalid " 
                       "16r89EE"    16r0000 " invalid " 
                       "16r89EF"    16r0000 " invalid " 
                       "16r89F0"    16r0000 " invalid " 
                       "16r89F1"    16r0000 " invalid " 
                       "16r89F2"    16r0000 " invalid " 
                       "16r89F3"    16r0000 " invalid " 
                       "16r89F4"    16r6B3C " <CJK> " 
                       "16r89F5"    16r0000 " invalid " 
                       "16r89F6"    16r0000 " invalid " 
                       "16r89F7"    16r0000 " invalid " 
                       "16r89F8"    16r6B3D " <CJK> " 
                       "16r89F9"    16r0000 " invalid " 
                       "16r89FA"    16r0000 " invalid " 
                       "16r89FB"    16r0000 " invalid " 
                       "16r89FC"    16r0000 " invalid " 
                       "16r89FD"    16r0000 " invalid " 
                       "16r89FE"    16r0000 " invalid " 
                       "16r89FF"    16r0000 " invalid " 
                       "16r8A00"    16r3840 " <CJK> " 
                       "16r8A01"    16r0000 " invalid " 
                       "16r8A02"    16r447B " <CJK> " 
                       "16r8A03"    16r6B3E " <CJK> " 
                       "16r8A04"    16r0000 " invalid " 
                       "16r8A05"    16r0000 " invalid " 
                       "16r8A06"    16r0000 " invalid " 
                       "16r8A07"    16r0000 " invalid " 
                       "16r8A08"    16r3757 " <CJK> " 
                       "16r8A09"    16r0000 " invalid " 
                       "16r8A0A"    16r3F56 " <CJK> " 
                       "16r8A0B"    16r0000 " invalid " 
                       "16r8A0C"    16r6B41 " <CJK> " 
                       "16r8A0D"    16r0000 " invalid " 
                       "16r8A0E"    16r4624 " <CJK> " 
                       "16r8A0F"    16r0000 " invalid " 
                       "16r8A10"    16r6B40 " <CJK> " 
                       "16r8A11"    16r0000 " invalid " 
                       "16r8A12"    16r0000 " invalid " 
                       "16r8A13"    16r3731 " <CJK> " 
                       "16r8A14"    16r0000 " invalid " 
                       "16r8A15"    16r0000 " invalid " 
                       "16r8A16"    16r6B3F " <CJK> " 
                       "16r8A17"    16r4277 " <CJK> " 
                       "16r8A18"    16r352D " <CJK> " 
                       "16r8A19"    16r0000 " invalid " 
                       "16r8A1A"    16r0000 " invalid " 
                       "16r8A1B"    16r6B42 " <CJK> " 
                       "16r8A1C"    16r0000 " invalid " 
                       "16r8A1D"    16r6B43 " <CJK> " 
                       "16r8A1E"    16r0000 " invalid " 
                       "16r8A1F"    16r3E59 " <CJK> " 
                       "16r8A20"    16r0000 " invalid " 
                       "16r8A21"    16r0000 " invalid " 
                       "16r8A22"    16r0000 " invalid " 
                       "16r8A23"    16r376D " <CJK> " 
                       "16r8A24"    16r0000 " invalid " 
                       "16r8A25"    16r6B44 " <CJK> " 
                       "16r8A26"    16r0000 " invalid " 
                       "16r8A27"    16r0000 " invalid " 
                       "16r8A28"    16r0000 " invalid " 
                       "16r8A29"    16r0000 " invalid " 
                       "16r8A2A"    16r4B2C " <CJK> " 
                       "16r8A2B"    16r0000 " invalid " 
                       "16r8A2C"    16r0000 " invalid " 
                       "16r8A2D"    16r405F " <CJK> " 
                       "16r8A2E"    16r0000 " invalid " 
                       "16r8A2F"    16r0000 " invalid " 
                       "16r8A30"    16r0000 " invalid " 
                       "16r8A31"    16r3576 " <CJK> " 
                       "16r8A32"    16r0000 " invalid " 
                       "16r8A33"    16r4C75 " <CJK> " 
                       "16r8A34"    16r414A " <CJK> " 
                       "16r8A35"    16r0000 " invalid " 
                       "16r8A36"    16r6B45 " <CJK> " 
                       "16r8A37"    16r0000 " invalid " 
                       "16r8A38"    16r0000 " invalid " 
                       "16r8A39"    16r0000 " invalid " 
                       "16r8A3A"    16r3F47 " <CJK> " 
                       "16r8A3B"    16r4370 " <CJK> " 
                       "16r8A3C"    16r3E5A " <CJK> " 
                       "16r8A3D"    16r0000 " invalid " 
                       "16r8A3E"    16r0000 " invalid " 
                       "16r8A3F"    16r0000 " invalid " 
                       "16r8A40"    16r0000 " invalid " 
                       "16r8A41"    16r6B46 " <CJK> " 
                       "16r8A42"    16r0000 " invalid " 
                       "16r8A43"    16r0000 " invalid " 
                       "16r8A44"    16r0000 " invalid " 
                       "16r8A45"    16r0000 " invalid " 
                       "16r8A46"    16r6B49 " <CJK> " 
                       "16r8A47"    16r0000 " invalid " 
                       "16r8A48"    16r6B4A " <CJK> " 
                       "16r8A49"    16r0000 " invalid " 
                       "16r8A4A"    16r0000 " invalid " 
                       "16r8A4B"    16r0000 " invalid " 
                       "16r8A4C"    16r0000 " invalid " 
                       "16r8A4D"    16r0000 " invalid " 
                       "16r8A4E"    16r0000 " invalid " 
                       "16r8A4F"    16r0000 " invalid " 
                       "16r8A50"    16r3A3E " <CJK> " 
                       "16r8A51"    16r4242 " <CJK> " 
                       "16r8A52"    16r6B48 " <CJK> " 
                       "16r8A53"    16r0000 " invalid " 
                       "16r8A54"    16r3E5B " <CJK> " 
                       "16r8A55"    16r493E " <CJK> " 
                       "16r8A56"    16r0000 " invalid " 
                       "16r8A57"    16r0000 " invalid " 
                       "16r8A58"    16r0000 " invalid " 
                       "16r8A59"    16r0000 " invalid " 
                       "16r8A5A"    16r0000 " invalid " 
                       "16r8A5B"    16r6B47 " <CJK> " 
                       "16r8A5C"    16r0000 " invalid " 
                       "16r8A5D"    16r0000 " invalid " 
                       "16r8A5E"    16r3B6C " <CJK> " 
                       "16r8A5F"    16r0000 " invalid " 
                       "16r8A60"    16r3153 " <CJK> " 
                       "16r8A61"    16r0000 " invalid " 
                       "16r8A62"    16r6B4E " <CJK> " 
                       "16r8A63"    16r3758 " <CJK> " 
                       "16r8A64"    16r0000 " invalid " 
                       "16r8A65"    16r0000 " invalid " 
                       "16r8A66"    16r3B6E " <CJK> " 
                       "16r8A67"    16r0000 " invalid " 
                       "16r8A68"    16r0000 " invalid " 
                       "16r8A69"    16r3B6D " <CJK> " 
                       "16r8A6A"    16r0000 " invalid " 
                       "16r8A6B"    16r4F4D " <CJK> " 
                       "16r8A6C"    16r6B4D " <CJK> " 
                       "16r8A6D"    16r6B4C " <CJK> " 
                       "16r8A6E"    16r4127 " <CJK> " 
                       "16r8A6F"    16r0000 " invalid " 
                       "16r8A70"    16r354D " <CJK> " 
                       "16r8A71"    16r4F43 " <CJK> " 
                       "16r8A72"    16r333A " <CJK> " 
                       "16r8A73"    16r3E5C " <CJK> " 
                       "16r8A74"    16r0000 " invalid " 
                       "16r8A75"    16r0000 " invalid " 
                       "16r8A76"    16r0000 " invalid " 
                       "16r8A77"    16r0000 " invalid " 
                       "16r8A78"    16r0000 " invalid " 
                       "16r8A79"    16r0000 " invalid " 
                       "16r8A7A"    16r0000 " invalid " 
                       "16r8A7B"    16r0000 " invalid " 
                       "16r8A7C"    16r6B4B " <CJK> " 
                       "16r8A7D"    16r0000 " invalid " 
                       "16r8A7E"    16r0000 " invalid " 
                       "16r8A7F"    16r0000 " invalid " 
                       "16r8A80"    16r0000 " invalid " 
                       "16r8A81"    16r0000 " invalid " 
                       "16r8A82"    16r6B50 " <CJK> " 
                       "16r8A83"    16r0000 " invalid " 
                       "16r8A84"    16r6B51 " <CJK> " 
                       "16r8A85"    16r6B4F " <CJK> " 
                       "16r8A86"    16r0000 " invalid " 
                       "16r8A87"    16r3858 " <CJK> " 
                       "16r8A88"    16r0000 " invalid " 
                       "16r8A89"    16r4D40 " <CJK> " 
                       "16r8A8A"    16r0000 " invalid " 
                       "16r8A8B"    16r0000 " invalid " 
                       "16r8A8C"    16r3B6F " <CJK> " 
                       "16r8A8D"    16r4727 " <CJK> " 
                       "16r8A8E"    16r0000 " invalid " 
                       "16r8A8F"    16r0000 " invalid " 
                       "16r8A90"    16r0000 " invalid " 
                       "16r8A91"    16r6B54 " <CJK> " 
                       "16r8A92"    16r0000 " invalid " 
                       "16r8A93"    16r4040 " <CJK> " 
                       "16r8A94"    16r0000 " invalid " 
                       "16r8A95"    16r4342 " <CJK> " 
                       "16r8A96"    16r0000 " invalid " 
                       "16r8A97"    16r0000 " invalid " 
                       "16r8A98"    16r4D36 " <CJK> " 
                       "16r8A99"    16r0000 " invalid " 
                       "16r8A9A"    16r6B57 " <CJK> " 
                       "16r8A9B"    16r0000 " invalid " 
                       "16r8A9C"    16r0000 " invalid " 
                       "16r8A9D"    16r0000 " invalid " 
                       "16r8A9E"    16r386C " <CJK> " 
                       "16r8A9F"    16r0000 " invalid " 
                       "16r8AA0"    16r403F " <CJK> " 
                       "16r8AA1"    16r6B53 " <CJK> " 
                       "16r8AA2"    16r0000 " invalid " 
                       "16r8AA3"    16r6B58 " <CJK> " 
                       "16r8AA4"    16r386D " <CJK> " 
                       "16r8AA5"    16r6B55 " <CJK> " 
                       "16r8AA6"    16r6B56 " <CJK> " 
                       "16r8AA7"    16r0000 " invalid " 
                       "16r8AA8"    16r6B52 " <CJK> " 
                       "16r8AA9"    16r0000 " invalid " 
                       "16r8AAA"    16r0000 " invalid " 
                       "16r8AAB"    16r0000 " invalid " 
                       "16r8AAC"    16r4062 " <CJK> " 
                       "16r8AAD"    16r4649 " <CJK> " 
                       "16r8AAE"    16r0000 " invalid " 
                       "16r8AAF"    16r0000 " invalid " 
                       "16r8AB0"    16r432F " <CJK> " 
                       "16r8AB1"    16r0000 " invalid " 
                       "16r8AB2"    16r325D " <CJK> " 
                       "16r8AB3"    16r0000 " invalid " 
                       "16r8AB4"    16r0000 " invalid " 
                       "16r8AB5"    16r0000 " invalid " 
                       "16r8AB6"    16r0000 " invalid " 
                       "16r8AB7"    16r0000 " invalid " 
                       "16r8AB8"    16r0000 " invalid " 
                       "16r8AB9"    16r4870 " <CJK> " 
                       "16r8ABA"    16r0000 " invalid " 
                       "16r8ABB"    16r0000 " invalid " 
                       "16r8ABC"    16r3543 " <CJK> " 
                       "16r8ABD"    16r0000 " invalid " 
                       "16r8ABE"    16r0000 " invalid " 
                       "16r8ABF"    16r4434 " <CJK> " 
                       "16r8AC0"    16r0000 " invalid " 
                       "16r8AC1"    16r0000 " invalid " 
                       "16r8AC2"    16r6B5B " <CJK> " 
                       "16r8AC3"    16r0000 " invalid " 
                       "16r8AC4"    16r6B59 " <CJK> " 
                       "16r8AC5"    16r0000 " invalid " 
                       "16r8AC6"    16r0000 " invalid " 
                       "16r8AC7"    16r434C " <CJK> " 
                       "16r8AC8"    16r0000 " invalid " 
                       "16r8AC9"    16r0000 " invalid " 
                       "16r8ACA"    16r0000 " invalid " 
                       "16r8ACB"    16r4041 " <CJK> " 
                       "16r8ACC"    16r3452 " <CJK> " 
                       "16r8ACD"    16r6B5A " <CJK> " 
                       "16r8ACE"    16r0000 " invalid " 
                       "16r8ACF"    16r3F5B " <CJK> " 
                       "16r8AD0"    16r0000 " invalid " 
                       "16r8AD1"    16r0000 " invalid " 
                       "16r8AD2"    16r4E4A " <CJK> " 
                       "16r8AD3"    16r0000 " invalid " 
                       "16r8AD4"    16r0000 " invalid " 
                       "16r8AD5"    16r0000 " invalid " 
                       "16r8AD6"    16r4F40 " <CJK> " 
                       "16r8AD7"    16r0000 " invalid " 
                       "16r8AD8"    16r0000 " invalid " 
                       "16r8AD9"    16r0000 " invalid " 
                       "16r8ADA"    16r6B5C " <CJK> " 
                       "16r8ADB"    16r6B67 " <CJK> " 
                       "16r8ADC"    16r4435 " <CJK> " 
                       "16r8ADD"    16r0000 " invalid " 
                       "16r8ADE"    16r6B66 " <CJK> " 
                       "16r8ADF"    16r0000 " invalid " 
                       "16r8AE0"    16r6B63 " <CJK> " 
                       "16r8AE1"    16r6B6B " <CJK> " 
                       "16r8AE2"    16r6B64 " <CJK> " 
                       "16r8AE3"    16r0000 " invalid " 
                       "16r8AE4"    16r6B60 " <CJK> " 
                       "16r8AE5"    16r0000 " invalid " 
                       "16r8AE6"    16r447C " <CJK> " 
                       "16r8AE7"    16r6B5F " <CJK> " 
                       "16r8AE8"    16r0000 " invalid " 
                       "16r8AE9"    16r0000 " invalid " 
                       "16r8AEA"    16r0000 " invalid " 
                       "16r8AEB"    16r6B5D " <CJK> " 
                       "16r8AEC"    16r0000 " invalid " 
                       "16r8AED"    16r4D21 " <CJK> " 
                       "16r8AEE"    16r3B70 " <CJK> " 
                       "16r8AEF"    16r0000 " invalid " 
                       "16r8AF0"    16r0000 " invalid " 
                       "16r8AF1"    16r6B61 " <CJK> " 
                       "16r8AF2"    16r0000 " invalid " 
                       "16r8AF3"    16r6B5E " <CJK> " 
                       "16r8AF4"    16r0000 " invalid " 
                       "16r8AF5"    16r0000 " invalid " 
                       "16r8AF6"    16r0000 " invalid " 
                       "16r8AF7"    16r6B65 " <CJK> " 
                       "16r8AF8"    16r3D74 " <CJK> " 
                       "16r8AF9"    16r0000 " invalid " 
                       "16r8AFA"    16r3841 " <CJK> " 
                       "16r8AFB"    16r0000 " invalid " 
                       "16r8AFC"    16r0000 " invalid " 
                       "16r8AFD"    16r0000 " invalid " 
                       "16r8AFE"    16r427A " <CJK> " 
                       "16r8AFF"    16r0000 " invalid " 
                       "16r8B00"    16r4B45 " <CJK> " 
                       "16r8B01"    16r315A " <CJK> " 
                       "16r8B02"    16r3062 " <CJK> " 
                       "16r8B03"    16r0000 " invalid " 
                       "16r8B04"    16r4625 " <CJK> " 
                       "16r8B05"    16r0000 " invalid " 
                       "16r8B06"    16r0000 " invalid " 
                       "16r8B07"    16r6B69 " <CJK> " 
                       "16r8B08"    16r0000 " invalid " 
                       "16r8B09"    16r0000 " invalid " 
                       "16r8B0A"    16r0000 " invalid " 
                       "16r8B0B"    16r0000 " invalid " 
                       "16r8B0C"    16r6B68 " <CJK> " 
                       "16r8B0D"    16r0000 " invalid " 
                       "16r8B0E"    16r4666 " <CJK> " 
                       "16r8B0F"    16r0000 " invalid " 
                       "16r8B10"    16r6B6D " <CJK> " 
                       "16r8B11"    16r0000 " invalid " 
                       "16r8B12"    16r0000 " invalid " 
                       "16r8B13"    16r0000 " invalid " 
                       "16r8B14"    16r6B62 " <CJK> " 
                       "16r8B15"    16r0000 " invalid " 
                       "16r8B16"    16r6B6C " <CJK> " 
                       "16r8B17"    16r6B6E " <CJK> " 
                       "16r8B18"    16r0000 " invalid " 
                       "16r8B19"    16r382C " <CJK> " 
                       "16r8B1A"    16r6B6A " <CJK> " 
                       "16r8B1B"    16r3956 " <CJK> " 
                       "16r8B1C"    16r0000 " invalid " 
                       "16r8B1D"    16r3C55 " <CJK> " 
                       "16r8B1E"    16r0000 " invalid " 
                       "16r8B1F"    16r0000 " invalid " 
                       "16r8B20"    16r6B6F " <CJK> " 
                       "16r8B21"    16r4D58 " <CJK> " 
                       "16r8B22"    16r0000 " invalid " 
                       "16r8B23"    16r0000 " invalid " 
                       "16r8B24"    16r0000 " invalid " 
                       "16r8B25"    16r0000 " invalid " 
                       "16r8B26"    16r6B72 " <CJK> " 
                       "16r8B27"    16r0000 " invalid " 
                       "16r8B28"    16r6B75 " <CJK> " 
                       "16r8B29"    16r0000 " invalid " 
                       "16r8B2A"    16r0000 " invalid " 
                       "16r8B2B"    16r6B73 " <CJK> " 
                       "16r8B2C"    16r4935 " <CJK> " 
                       "16r8B2D"    16r0000 " invalid " 
                       "16r8B2E"    16r0000 " invalid " 
                       "16r8B2F"    16r0000 " invalid " 
                       "16r8B30"    16r0000 " invalid " 
                       "16r8B31"    16r0000 " invalid " 
                       "16r8B32"    16r0000 " invalid " 
                       "16r8B33"    16r6B70 " <CJK> " 
                       "16r8B34"    16r0000 " invalid " 
                       "16r8B35"    16r0000 " invalid " 
                       "16r8B36"    16r0000 " invalid " 
                       "16r8B37"    16r0000 " invalid " 
                       "16r8B38"    16r0000 " invalid " 
                       "16r8B39"    16r3660 " <CJK> " 
                       "16r8B3A"    16r0000 " invalid " 
                       "16r8B3B"    16r0000 " invalid " 
                       "16r8B3C"    16r0000 " invalid " 
                       "16r8B3D"    16r0000 " invalid " 
                       "16r8B3E"    16r6B74 " <CJK> " 
                       "16r8B3F"    16r0000 " invalid " 
                       "16r8B40"    16r0000 " invalid " 
                       "16r8B41"    16r6B76 " <CJK> " 
                       "16r8B42"    16r0000 " invalid " 
                       "16r8B43"    16r0000 " invalid " 
                       "16r8B44"    16r0000 " invalid " 
                       "16r8B45"    16r0000 " invalid " 
                       "16r8B46"    16r0000 " invalid " 
                       "16r8B47"    16r0000 " invalid " 
                       "16r8B48"    16r0000 " invalid " 
                       "16r8B49"    16r6B7A " <CJK> " 
                       "16r8B4A"    16r0000 " invalid " 
                       "16r8B4B"    16r0000 " invalid " 
                       "16r8B4C"    16r6B77 " <CJK> " 
                       "16r8B4D"    16r0000 " invalid " 
                       "16r8B4E"    16r6B79 " <CJK> " 
                       "16r8B4F"    16r6B78 " <CJK> " 
                       "16r8B50"    16r0000 " invalid " 
                       "16r8B51"    16r0000 " invalid " 
                       "16r8B52"    16r0000 " invalid " 
                       "16r8B53"    16r0000 " invalid " 
                       "16r8B54"    16r0000 " invalid " 
                       "16r8B55"    16r0000 " invalid " 
                       "16r8B56"    16r6B7B " <CJK> " 
                       "16r8B57"    16r0000 " invalid " 
                       "16r8B58"    16r3C31 " <CJK> " 
                       "16r8B59"    16r0000 " invalid " 
                       "16r8B5A"    16r6B7D " <CJK> " 
                       "16r8B5B"    16r6B7C " <CJK> " 
                       "16r8B5C"    16r4968 " <CJK> " 
                       "16r8B5D"    16r0000 " invalid " 
                       "16r8B5E"    16r0000 " invalid " 
                       "16r8B5F"    16r6C21 " <CJK> " 
                       "16r8B60"    16r0000 " invalid " 
                       "16r8B61"    16r0000 " invalid " 
                       "16r8B62"    16r0000 " invalid " 
                       "16r8B63"    16r0000 " invalid " 
                       "16r8B64"    16r0000 " invalid " 
                       "16r8B65"    16r0000 " invalid " 
                       "16r8B66"    16r3759 " <CJK> " 
                       "16r8B67"    16r0000 " invalid " 
                       "16r8B68"    16r0000 " invalid " 
                       "16r8B69"    16r0000 " invalid " 
                       "16r8B6A"    16r0000 " invalid " 
                       "16r8B6B"    16r6B7E " <CJK> " 
                       "16r8B6C"    16r6C22 " <CJK> " 
                       "16r8B6D"    16r0000 " invalid " 
                       "16r8B6E"    16r0000 " invalid " 
                       "16r8B6F"    16r6C23 " <CJK> " 
                       "16r8B70"    16r3544 " <CJK> " 
                       "16r8B71"    16r6641 " <CJK> " 
                       "16r8B72"    16r3E79 " <CJK> " 
                       "16r8B73"    16r0000 " invalid " 
                       "16r8B74"    16r6C24 " <CJK> " 
                       "16r8B75"    16r0000 " invalid " 
                       "16r8B76"    16r0000 " invalid " 
                       "16r8B77"    16r386E " <CJK> " 
                       "16r8B78"    16r0000 " invalid " 
                       "16r8B79"    16r0000 " invalid " 
                       "16r8B7A"    16r0000 " invalid " 
                       "16r8B7B"    16r0000 " invalid " 
                       "16r8B7C"    16r0000 " invalid " 
                       "16r8B7D"    16r6C25 " <CJK> " 
                       "16r8B7E"    16r0000 " invalid " 
                       "16r8B7F"    16r0000 " invalid " 
                       "16r8B80"    16r6C26 " <CJK> " 
                       "16r8B81"    16r0000 " invalid " 
                       "16r8B82"    16r0000 " invalid " 
                       "16r8B83"    16r3B3E " <CJK> " 
                       "16r8B84"    16r0000 " invalid " 
                       "16r8B85"    16r0000 " invalid " 
                       "16r8B86"    16r0000 " invalid " 
                       "16r8B87"    16r0000 " invalid " 
                       "16r8B88"    16r0000 " invalid " 
                       "16r8B89"    16r0000 " invalid " 
                       "16r8B8A"    16r5A4E " <CJK> " 
                       "16r8B8B"    16r0000 " invalid " 
                       "16r8B8C"    16r6C27 " <CJK> " 
                       "16r8B8D"    16r0000 " invalid " 
                       "16r8B8E"    16r6C28 " <CJK> " 
                       "16r8B8F"    16r0000 " invalid " 
                       "16r8B90"    16r3D32 " <CJK> " 
                       "16r8B91"    16r0000 " invalid " 
                       "16r8B92"    16r6C29 " <CJK> " 
                       "16r8B93"    16r6C2A " <CJK> " 
                       "16r8B94"    16r0000 " invalid " 
                       "16r8B95"    16r0000 " invalid " 
                       "16r8B96"    16r6C2B " <CJK> " 
                       "16r8B97"    16r0000 " invalid " 
                       "16r8B98"    16r0000 " invalid " 
                       "16r8B99"    16r6C2C " <CJK> " 
                       "16r8B9A"    16r6C2D " <CJK> " 
                       ) at:(unicode - 16r7F35).
                    t == 0 ifFalse:[^ t].
                    ^ self encodingError
                ] value.
            ].
            unicode <= 16r8C36 ifTrue:[
                ^ self encodingError.
            ].
            unicode <= 16r8D16 ifTrue:[
                [
                    |t|
                    t := #(
                       "16r8C37"    16r432B " <CJK> " 
                       "16r8C38"    16r0000 " invalid " 
                       "16r8C39"    16r0000 " invalid " 
                       "16r8C3A"    16r6C2E " <CJK> " 
                       "16r8C3B"    16r0000 " invalid " 
                       "16r8C3C"    16r0000 " invalid " 
                       "16r8C3D"    16r0000 " invalid " 
                       "16r8C3E"    16r0000 " invalid " 
                       "16r8C3F"    16r6C30 " <CJK> " 
                       "16r8C40"    16r0000 " invalid " 
                       "16r8C41"    16r6C2F " <CJK> " 
                       "16r8C42"    16r0000 " invalid " 
                       "16r8C43"    16r0000 " invalid " 
                       "16r8C44"    16r0000 " invalid " 
                       "16r8C45"    16r0000 " invalid " 
                       "16r8C46"    16r4626 " <CJK> " 
                       "16r8C47"    16r0000 " invalid " 
                       "16r8C48"    16r6C31 " <CJK> " 
                       "16r8C49"    16r0000 " invalid " 
                       "16r8C4A"    16r4B2D " <CJK> " 
                       "16r8C4B"    16r0000 " invalid " 
                       "16r8C4C"    16r6C32 " <CJK> " 
                       "16r8C4D"    16r0000 " invalid " 
                       "16r8C4E"    16r6C33 " <CJK> " 
                       "16r8C4F"    16r0000 " invalid " 
                       "16r8C50"    16r6C34 " <CJK> " 
                       "16r8C51"    16r0000 " invalid " 
                       "16r8C52"    16r0000 " invalid " 
                       "16r8C53"    16r0000 " invalid " 
                       "16r8C54"    16r0000 " invalid " 
                       "16r8C55"    16r6C35 " <CJK> " 
                       "16r8C56"    16r0000 " invalid " 
                       "16r8C57"    16r0000 " invalid " 
                       "16r8C58"    16r0000 " invalid " 
                       "16r8C59"    16r0000 " invalid " 
                       "16r8C5A"    16r465A " <CJK> " 
                       "16r8C5B"    16r0000 " invalid " 
                       "16r8C5C"    16r0000 " invalid " 
                       "16r8C5D"    16r0000 " invalid " 
                       "16r8C5E"    16r0000 " invalid " 
                       "16r8C5F"    16r0000 " invalid " 
                       "16r8C60"    16r0000 " invalid " 
                       "16r8C61"    16r3E5D " <CJK> " 
                       "16r8C62"    16r6C36 " <CJK> " 
                       "16r8C63"    16r0000 " invalid " 
                       "16r8C64"    16r0000 " invalid " 
                       "16r8C65"    16r0000 " invalid " 
                       "16r8C66"    16r0000 " invalid " 
                       "16r8C67"    16r0000 " invalid " 
                       "16r8C68"    16r0000 " invalid " 
                       "16r8C69"    16r0000 " invalid " 
                       "16r8C6A"    16r396B " <CJK> " 
                       "16r8C6B"    16r502E " <CJK> " 
                       "16r8C6C"    16r6C37 " <CJK> " 
                       "16r8C6D"    16r0000 " invalid " 
                       "16r8C6E"    16r0000 " invalid " 
                       "16r8C6F"    16r0000 " invalid " 
                       "16r8C70"    16r0000 " invalid " 
                       "16r8C71"    16r0000 " invalid " 
                       "16r8C72"    16r0000 " invalid " 
                       "16r8C73"    16r0000 " invalid " 
                       "16r8C74"    16r0000 " invalid " 
                       "16r8C75"    16r0000 " invalid " 
                       "16r8C76"    16r0000 " invalid " 
                       "16r8C77"    16r0000 " invalid " 
                       "16r8C78"    16r6C38 " <CJK> " 
                       "16r8C79"    16r493F " <CJK> " 
                       "16r8C7A"    16r6C39 " <CJK> " 
                       "16r8C7B"    16r0000 " invalid " 
                       "16r8C7C"    16r6C41 " <CJK> " 
                       "16r8C7D"    16r0000 " invalid " 
                       "16r8C7E"    16r0000 " invalid " 
                       "16r8C7F"    16r0000 " invalid " 
                       "16r8C80"    16r0000 " invalid " 
                       "16r8C81"    16r0000 " invalid " 
                       "16r8C82"    16r6C3A " <CJK> " 
                       "16r8C83"    16r0000 " invalid " 
                       "16r8C84"    16r0000 " invalid " 
                       "16r8C85"    16r6C3C " <CJK> " 
                       "16r8C86"    16r0000 " invalid " 
                       "16r8C87"    16r0000 " invalid " 
                       "16r8C88"    16r0000 " invalid " 
                       "16r8C89"    16r6C3B " <CJK> " 
                       "16r8C8A"    16r6C3D " <CJK> " 
                       "16r8C8B"    16r0000 " invalid " 
                       "16r8C8C"    16r4B46 " <CJK> " 
                       "16r8C8D"    16r6C3E " <CJK> " 
                       "16r8C8E"    16r6C3F " <CJK> " 
                       "16r8C8F"    16r0000 " invalid " 
                       "16r8C90"    16r0000 " invalid " 
                       "16r8C91"    16r0000 " invalid " 
                       "16r8C92"    16r0000 " invalid " 
                       "16r8C93"    16r0000 " invalid " 
                       "16r8C94"    16r6C40 " <CJK> " 
                       "16r8C95"    16r0000 " invalid " 
                       "16r8C96"    16r0000 " invalid " 
                       "16r8C97"    16r0000 " invalid " 
                       "16r8C98"    16r6C42 " <CJK> " 
                       "16r8C99"    16r0000 " invalid " 
                       "16r8C9A"    16r0000 " invalid " 
                       "16r8C9B"    16r0000 " invalid " 
                       "16r8C9C"    16r0000 " invalid " 
                       "16r8C9D"    16r332D " <CJK> " 
                       "16r8C9E"    16r4467 " <CJK> " 
                       "16r8C9F"    16r0000 " invalid " 
                       "16r8CA0"    16r4969 " <CJK> " 
                       "16r8CA1"    16r3A62 " <CJK> " 
                       "16r8CA2"    16r3957 " <CJK> " 
                       "16r8CA3"    16r0000 " invalid " 
                       "16r8CA4"    16r0000 " invalid " 
                       "16r8CA5"    16r0000 " invalid " 
                       "16r8CA6"    16r0000 " invalid " 
                       "16r8CA7"    16r494F " <CJK> " 
                       "16r8CA8"    16r325F " <CJK> " 
                       "16r8CA9"    16r484E " <CJK> " 
                       "16r8CAA"    16r6C45 " <CJK> " 
                       "16r8CAB"    16r3453 " <CJK> " 
                       "16r8CAC"    16r4055 " <CJK> " 
                       "16r8CAD"    16r6C44 " <CJK> " 
                       "16r8CAE"    16r6C49 " <CJK> " 
                       "16r8CAF"    16r4379 " <CJK> " 
                       "16r8CB0"    16r4C63 " <CJK> " 
                       "16r8CB1"    16r0000 " invalid " 
                       "16r8CB2"    16r6C47 " <CJK> " 
                       "16r8CB3"    16r6C48 " <CJK> " 
                       "16r8CB4"    16r352E " <CJK> " 
                       "16r8CB5"    16r0000 " invalid " 
                       "16r8CB6"    16r6C4A " <CJK> " 
                       "16r8CB7"    16r4763 " <CJK> " 
                       "16r8CB8"    16r425F " <CJK> " 
                       "16r8CB9"    16r0000 " invalid " 
                       "16r8CBA"    16r0000 " invalid " 
                       "16r8CBB"    16r4871 " <CJK> " 
                       "16r8CBC"    16r453D " <CJK> " 
                       "16r8CBD"    16r6C46 " <CJK> " 
                       "16r8CBE"    16r0000 " invalid " 
                       "16r8CBF"    16r4B47 " <CJK> " 
                       "16r8CC0"    16r326C " <CJK> " 
                       "16r8CC1"    16r6C4C " <CJK> " 
                       "16r8CC2"    16r4F28 " <CJK> " 
                       "16r8CC3"    16r4442 " <CJK> " 
                       "16r8CC4"    16r4F45 " <CJK> " 
                       "16r8CC5"    16r0000 " invalid " 
                       "16r8CC6"    16r0000 " invalid " 
                       "16r8CC7"    16r3B71 " <CJK> " 
                       "16r8CC8"    16r6C4B " <CJK> " 
                       "16r8CC9"    16r0000 " invalid " 
                       "16r8CCA"    16r4231 " <CJK> " 
                       "16r8CCB"    16r0000 " invalid " 
                       "16r8CCC"    16r0000 " invalid " 
                       "16r8CCD"    16r6C5C " <CJK> " 
                       "16r8CCE"    16r4128 " <CJK> " 
                       "16r8CCF"    16r0000 " invalid " 
                       "16r8CD0"    16r0000 " invalid " 
                       "16r8CD1"    16r4678 " <CJK> " 
                       "16r8CD2"    16r0000 " invalid " 
                       "16r8CD3"    16r4950 " <CJK> " 
                       "16r8CD4"    16r0000 " invalid " 
                       "16r8CD5"    16r0000 " invalid " 
                       "16r8CD6"    16r0000 " invalid " 
                       "16r8CD7"    16r0000 " invalid " 
                       "16r8CD8"    16r0000 " invalid " 
                       "16r8CD9"    16r0000 " invalid " 
                       "16r8CDA"    16r6C4F " <CJK> " 
                       "16r8CDB"    16r3B3F " <CJK> " 
                       "16r8CDC"    16r3B72 " <CJK> " 
                       "16r8CDD"    16r0000 " invalid " 
                       "16r8CDE"    16r3E5E " <CJK> " 
                       "16r8CDF"    16r0000 " invalid " 
                       "16r8CE0"    16r4765 " <CJK> " 
                       "16r8CE1"    16r0000 " invalid " 
                       "16r8CE2"    16r382D " <CJK> " 
                       "16r8CE3"    16r6C4E " <CJK> " 
                       "16r8CE4"    16r6C4D " <CJK> " 
                       "16r8CE5"    16r0000 " invalid " 
                       "16r8CE6"    16r496A " <CJK> " 
                       "16r8CE7"    16r0000 " invalid " 
                       "16r8CE8"    16r0000 " invalid " 
                       "16r8CE9"    16r0000 " invalid " 
                       "16r8CEA"    16r3C41 " <CJK> " 
                       "16r8CEB"    16r0000 " invalid " 
                       "16r8CEC"    16r0000 " invalid " 
                       "16r8CED"    16r4552 " <CJK> " 
                       "16r8CEE"    16r0000 " invalid " 
                       "16r8CEF"    16r0000 " invalid " 
                       "16r8CF0"    16r0000 " invalid " 
                       "16r8CF1"    16r0000 " invalid " 
                       "16r8CF2"    16r0000 " invalid " 
                       "16r8CF3"    16r0000 " invalid " 
                       "16r8CF4"    16r0000 " invalid " 
                       "16r8CF5"    16r0000 " invalid " 
                       "16r8CF6"    16r0000 " invalid " 
                       "16r8CF7"    16r0000 " invalid " 
                       "16r8CF8"    16r0000 " invalid " 
                       "16r8CF9"    16r0000 " invalid " 
                       "16r8CFA"    16r6C51 " <CJK> " 
                       "16r8CFB"    16r6C52 " <CJK> " 
                       "16r8CFC"    16r3958 " <CJK> " 
                       "16r8CFD"    16r6C50 " <CJK> " 
                       "16r8CFE"    16r0000 " invalid " 
                       "16r8CFF"    16r0000 " invalid " 
                       "16r8D00"    16r0000 " invalid " 
                       "16r8D01"    16r0000 " invalid " 
                       "16r8D02"    16r0000 " invalid " 
                       "16r8D03"    16r0000 " invalid " 
                       "16r8D04"    16r6C53 " <CJK> " 
                       "16r8D05"    16r6C54 " <CJK> " 
                       "16r8D06"    16r0000 " invalid " 
                       "16r8D07"    16r6C56 " <CJK> " 
                       "16r8D08"    16r4223 " <CJK> " 
                       "16r8D09"    16r0000 " invalid " 
                       "16r8D0A"    16r6C55 " <CJK> " 
                       "16r8D0B"    16r3466 " <CJK> " 
                       "16r8D0C"    16r0000 " invalid " 
                       "16r8D0D"    16r6C58 " <CJK> " 
                       "16r8D0E"    16r0000 " invalid " 
                       "16r8D0F"    16r6C57 " <CJK> " 
                       "16r8D10"    16r6C59 " <CJK> " 
                       "16r8D11"    16r0000 " invalid " 
                       "16r8D12"    16r0000 " invalid " 
                       "16r8D13"    16r6C5B " <CJK> " 
                       "16r8D14"    16r6C5D " <CJK> " 
                       "16r8D15"    16r0000 " invalid " 
                       "16r8D16"    16r6C5E " <CJK> " 
                       ) at:(unicode - 16r8C36).
                    t == 0 ifFalse:[^ t].
                    ^ self encodingError
                ] value.
            ].
            unicode <= 16r8D63 ifTrue:[
                ^ self encodingError.
            ].
            unicode <= 16r8F64 ifTrue:[
                [
                    |t|
                    t := #(
                       "16r8D64"    16r4056 " <CJK> " 
                       "16r8D65"    16r0000 " invalid " 
                       "16r8D66"    16r3C4F " <CJK> " 
                       "16r8D67"    16r6C5F " <CJK> " 
                       "16r8D68"    16r0000 " invalid " 
                       "16r8D69"    16r0000 " invalid " 
                       "16r8D6A"    16r0000 " invalid " 
                       "16r8D6B"    16r3352 " <CJK> " 
                       "16r8D6C"    16r0000 " invalid " 
                       "16r8D6D"    16r6C60 " <CJK> " 
                       "16r8D6E"    16r0000 " invalid " 
                       "16r8D6F"    16r0000 " invalid " 
                       "16r8D70"    16r4176 " <CJK> " 
                       "16r8D71"    16r6C61 " <CJK> " 
                       "16r8D72"    16r0000 " invalid " 
                       "16r8D73"    16r6C62 " <CJK> " 
                       "16r8D74"    16r496B " <CJK> " 
                       "16r8D75"    16r0000 " invalid " 
                       "16r8D76"    16r0000 " invalid " 
                       "16r8D77"    16r352F " <CJK> " 
                       "16r8D78"    16r0000 " invalid " 
                       "16r8D79"    16r0000 " invalid " 
                       "16r8D7A"    16r0000 " invalid " 
                       "16r8D7B"    16r0000 " invalid " 
                       "16r8D7C"    16r0000 " invalid " 
                       "16r8D7D"    16r0000 " invalid " 
                       "16r8D7E"    16r0000 " invalid " 
                       "16r8D7F"    16r0000 " invalid " 
                       "16r8D80"    16r0000 " invalid " 
                       "16r8D81"    16r6C63 " <CJK> " 
                       "16r8D82"    16r0000 " invalid " 
                       "16r8D83"    16r0000 " invalid " 
                       "16r8D84"    16r0000 " invalid " 
                       "16r8D85"    16r4436 " <CJK> " 
                       "16r8D86"    16r0000 " invalid " 
                       "16r8D87"    16r0000 " invalid " 
                       "16r8D88"    16r0000 " invalid " 
                       "16r8D89"    16r0000 " invalid " 
                       "16r8D8A"    16r315B " <CJK> " 
                       "16r8D8B"    16r0000 " invalid " 
                       "16r8D8C"    16r0000 " invalid " 
                       "16r8D8D"    16r0000 " invalid " 
                       "16r8D8E"    16r0000 " invalid " 
                       "16r8D8F"    16r0000 " invalid " 
                       "16r8D90"    16r0000 " invalid " 
                       "16r8D91"    16r0000 " invalid " 
                       "16r8D92"    16r0000 " invalid " 
                       "16r8D93"    16r0000 " invalid " 
                       "16r8D94"    16r0000 " invalid " 
                       "16r8D95"    16r0000 " invalid " 
                       "16r8D96"    16r0000 " invalid " 
                       "16r8D97"    16r0000 " invalid " 
                       "16r8D98"    16r0000 " invalid " 
                       "16r8D99"    16r6C64 " <CJK> " 
                       "16r8D9A"    16r0000 " invalid " 
                       "16r8D9B"    16r0000 " invalid " 
                       "16r8D9C"    16r0000 " invalid " 
                       "16r8D9D"    16r0000 " invalid " 
                       "16r8D9E"    16r0000 " invalid " 
                       "16r8D9F"    16r0000 " invalid " 
                       "16r8DA0"    16r0000 " invalid " 
                       "16r8DA1"    16r0000 " invalid " 
                       "16r8DA2"    16r0000 " invalid " 
                       "16r8DA3"    16r3C71 " <CJK> " 
                       "16r8DA4"    16r0000 " invalid " 
                       "16r8DA5"    16r0000 " invalid " 
                       "16r8DA6"    16r0000 " invalid " 
                       "16r8DA7"    16r0000 " invalid " 
                       "16r8DA8"    16r3F76 " <CJK> " 
                       "16r8DA9"    16r0000 " invalid " 
                       "16r8DAA"    16r0000 " invalid " 
                       "16r8DAB"    16r0000 " invalid " 
                       "16r8DAC"    16r0000 " invalid " 
                       "16r8DAD"    16r0000 " invalid " 
                       "16r8DAE"    16r0000 " invalid " 
                       "16r8DAF"    16r0000 " invalid " 
                       "16r8DB0"    16r0000 " invalid " 
                       "16r8DB1"    16r0000 " invalid " 
                       "16r8DB2"    16r0000 " invalid " 
                       "16r8DB3"    16r422D " <CJK> " 
                       "16r8DB4"    16r0000 " invalid " 
                       "16r8DB5"    16r0000 " invalid " 
                       "16r8DB6"    16r0000 " invalid " 
                       "16r8DB7"    16r0000 " invalid " 
                       "16r8DB8"    16r0000 " invalid " 
                       "16r8DB9"    16r0000 " invalid " 
                       "16r8DBA"    16r6C67 " <CJK> " 
                       "16r8DBB"    16r0000 " invalid " 
                       "16r8DBC"    16r0000 " invalid " 
                       "16r8DBD"    16r0000 " invalid " 
                       "16r8DBE"    16r6C66 " <CJK> " 
                       "16r8DBF"    16r0000 " invalid " 
                       "16r8DC0"    16r0000 " invalid " 
                       "16r8DC1"    16r0000 " invalid " 
                       "16r8DC2"    16r6C65 " <CJK> " 
                       "16r8DC3"    16r0000 " invalid " 
                       "16r8DC4"    16r0000 " invalid " 
                       "16r8DC5"    16r0000 " invalid " 
                       "16r8DC6"    16r0000 " invalid " 
                       "16r8DC7"    16r0000 " invalid " 
                       "16r8DC8"    16r0000 " invalid " 
                       "16r8DC9"    16r0000 " invalid " 
                       "16r8DCA"    16r0000 " invalid " 
                       "16r8DCB"    16r6C6D " <CJK> " 
                       "16r8DCC"    16r6C6B " <CJK> " 
                       "16r8DCD"    16r0000 " invalid " 
                       "16r8DCE"    16r0000 " invalid " 
                       "16r8DCF"    16r6C68 " <CJK> " 
                       "16r8DD0"    16r0000 " invalid " 
                       "16r8DD1"    16r0000 " invalid " 
                       "16r8DD2"    16r0000 " invalid " 
                       "16r8DD3"    16r0000 " invalid " 
                       "16r8DD4"    16r0000 " invalid " 
                       "16r8DD5"    16r0000 " invalid " 
                       "16r8DD6"    16r6C6A " <CJK> " 
                       "16r8DD7"    16r0000 " invalid " 
                       "16r8DD8"    16r0000 " invalid " 
                       "16r8DD9"    16r0000 " invalid " 
                       "16r8DDA"    16r6C69 " <CJK> " 
                       "16r8DDB"    16r6C6C " <CJK> " 
                       "16r8DDC"    16r0000 " invalid " 
                       "16r8DDD"    16r3577 " <CJK> " 
                       "16r8DDE"    16r0000 " invalid " 
                       "16r8DDF"    16r6C70 " <CJK> " 
                       "16r8DE0"    16r0000 " invalid " 
                       "16r8DE1"    16r4057 " <CJK> " 
                       "16r8DE2"    16r0000 " invalid " 
                       "16r8DE3"    16r6C71 " <CJK> " 
                       "16r8DE4"    16r0000 " invalid " 
                       "16r8DE5"    16r0000 " invalid " 
                       "16r8DE6"    16r0000 " invalid " 
                       "16r8DE7"    16r0000 " invalid " 
                       "16r8DE8"    16r3859 " <CJK> " 
                       "16r8DE9"    16r0000 " invalid " 
                       "16r8DEA"    16r6C6E " <CJK> " 
                       "16r8DEB"    16r6C6F " <CJK> " 
                       "16r8DEC"    16r0000 " invalid " 
                       "16r8DED"    16r0000 " invalid " 
                       "16r8DEE"    16r0000 " invalid " 
                       "16r8DEF"    16r4F29 " <CJK> " 
                       "16r8DF0"    16r0000 " invalid " 
                       "16r8DF1"    16r0000 " invalid " 
                       "16r8DF2"    16r0000 " invalid " 
                       "16r8DF3"    16r4437 " <CJK> " 
                       "16r8DF4"    16r0000 " invalid " 
                       "16r8DF5"    16r4129 " <CJK> " 
                       "16r8DF6"    16r0000 " invalid " 
                       "16r8DF7"    16r0000 " invalid " 
                       "16r8DF8"    16r0000 " invalid " 
                       "16r8DF9"    16r0000 " invalid " 
                       "16r8DFA"    16r0000 " invalid " 
                       "16r8DFB"    16r0000 " invalid " 
                       "16r8DFC"    16r6C72 " <CJK> " 
                       "16r8DFD"    16r0000 " invalid " 
                       "16r8DFE"    16r0000 " invalid " 
                       "16r8DFF"    16r6C75 " <CJK> " 
                       "16r8E00"    16r0000 " invalid " 
                       "16r8E01"    16r0000 " invalid " 
                       "16r8E02"    16r0000 " invalid " 
                       "16r8E03"    16r0000 " invalid " 
                       "16r8E04"    16r0000 " invalid " 
                       "16r8E05"    16r0000 " invalid " 
                       "16r8E06"    16r0000 " invalid " 
                       "16r8E07"    16r0000 " invalid " 
                       "16r8E08"    16r6C73 " <CJK> " 
                       "16r8E09"    16r6C74 " <CJK> " 
                       "16r8E0A"    16r4D59 " <CJK> " 
                       "16r8E0B"    16r0000 " invalid " 
                       "16r8E0C"    16r0000 " invalid " 
                       "16r8E0D"    16r0000 " invalid " 
                       "16r8E0E"    16r0000 " invalid " 
                       "16r8E0F"    16r4627 " <CJK> " 
                       "16r8E10"    16r6C78 " <CJK> " 
                       "16r8E11"    16r0000 " invalid " 
                       "16r8E12"    16r0000 " invalid " 
                       "16r8E13"    16r0000 " invalid " 
                       "16r8E14"    16r0000 " invalid " 
                       "16r8E15"    16r0000 " invalid " 
                       "16r8E16"    16r0000 " invalid " 
                       "16r8E17"    16r0000 " invalid " 
                       "16r8E18"    16r0000 " invalid " 
                       "16r8E19"    16r0000 " invalid " 
                       "16r8E1A"    16r0000 " invalid " 
                       "16r8E1B"    16r0000 " invalid " 
                       "16r8E1C"    16r0000 " invalid " 
                       "16r8E1D"    16r6C76 " <CJK> " 
                       "16r8E1E"    16r6C77 " <CJK> " 
                       "16r8E1F"    16r6C79 " <CJK> " 
                       "16r8E20"    16r0000 " invalid " 
                       "16r8E21"    16r0000 " invalid " 
                       "16r8E22"    16r0000 " invalid " 
                       "16r8E23"    16r0000 " invalid " 
                       "16r8E24"    16r0000 " invalid " 
                       "16r8E25"    16r0000 " invalid " 
                       "16r8E26"    16r0000 " invalid " 
                       "16r8E27"    16r0000 " invalid " 
                       "16r8E28"    16r0000 " invalid " 
                       "16r8E29"    16r0000 " invalid " 
                       "16r8E2A"    16r6D29 " <CJK> " 
                       "16r8E2B"    16r0000 " invalid " 
                       "16r8E2C"    16r0000 " invalid " 
                       "16r8E2D"    16r0000 " invalid " 
                       "16r8E2E"    16r0000 " invalid " 
                       "16r8E2F"    16r0000 " invalid " 
                       "16r8E30"    16r6C7C " <CJK> " 
                       "16r8E31"    16r0000 " invalid " 
                       "16r8E32"    16r0000 " invalid " 
                       "16r8E33"    16r0000 " invalid " 
                       "16r8E34"    16r6C7D " <CJK> " 
                       "16r8E35"    16r6C7B " <CJK> " 
                       "16r8E36"    16r0000 " invalid " 
                       "16r8E37"    16r0000 " invalid " 
                       "16r8E38"    16r0000 " invalid " 
                       "16r8E39"    16r0000 " invalid " 
                       "16r8E3A"    16r0000 " invalid " 
                       "16r8E3B"    16r0000 " invalid " 
                       "16r8E3C"    16r0000 " invalid " 
                       "16r8E3D"    16r0000 " invalid " 
                       "16r8E3E"    16r0000 " invalid " 
                       "16r8E3F"    16r0000 " invalid " 
                       "16r8E40"    16r0000 " invalid " 
                       "16r8E41"    16r0000 " invalid " 
                       "16r8E42"    16r6C7A " <CJK> " 
                       "16r8E43"    16r0000 " invalid " 
                       "16r8E44"    16r447D " <CJK> " 
                       "16r8E45"    16r0000 " invalid " 
                       "16r8E46"    16r0000 " invalid " 
                       "16r8E47"    16r6D21 " <CJK> " 
                       "16r8E48"    16r6D25 " <CJK> " 
                       "16r8E49"    16r6D22 " <CJK> " 
                       "16r8E4A"    16r6C7E " <CJK> " 
                       "16r8E4B"    16r0000 " invalid " 
                       "16r8E4C"    16r6D23 " <CJK> " 
                       "16r8E4D"    16r0000 " invalid " 
                       "16r8E4E"    16r0000 " invalid " 
                       "16r8E4F"    16r0000 " invalid " 
                       "16r8E50"    16r6D24 " <CJK> " 
                       "16r8E51"    16r0000 " invalid " 
                       "16r8E52"    16r0000 " invalid " 
                       "16r8E53"    16r0000 " invalid " 
                       "16r8E54"    16r0000 " invalid " 
                       "16r8E55"    16r6D2B " <CJK> " 
                       "16r8E56"    16r0000 " invalid " 
                       "16r8E57"    16r0000 " invalid " 
                       "16r8E58"    16r0000 " invalid " 
                       "16r8E59"    16r6D26 " <CJK> " 
                       "16r8E5A"    16r0000 " invalid " 
                       "16r8E5B"    16r0000 " invalid " 
                       "16r8E5C"    16r0000 " invalid " 
                       "16r8E5D"    16r0000 " invalid " 
                       "16r8E5E"    16r0000 " invalid " 
                       "16r8E5F"    16r4058 " <CJK> " 
                       "16r8E60"    16r6D28 " <CJK> " 
                       "16r8E61"    16r0000 " invalid " 
                       "16r8E62"    16r0000 " invalid " 
                       "16r8E63"    16r6D2A " <CJK> " 
                       "16r8E64"    16r6D27 " <CJK> " 
                       "16r8E65"    16r0000 " invalid " 
                       "16r8E66"    16r0000 " invalid " 
                       "16r8E67"    16r0000 " invalid " 
                       "16r8E68"    16r0000 " invalid " 
                       "16r8E69"    16r0000 " invalid " 
                       "16r8E6A"    16r0000 " invalid " 
                       "16r8E6B"    16r0000 " invalid " 
                       "16r8E6C"    16r0000 " invalid " 
                       "16r8E6D"    16r0000 " invalid " 
                       "16r8E6E"    16r0000 " invalid " 
                       "16r8E6F"    16r0000 " invalid " 
                       "16r8E70"    16r0000 " invalid " 
                       "16r8E71"    16r0000 " invalid " 
                       "16r8E72"    16r6D2D " <CJK> " 
                       "16r8E73"    16r0000 " invalid " 
                       "16r8E74"    16r3D33 " <CJK> " 
                       "16r8E75"    16r0000 " invalid " 
                       "16r8E76"    16r6D2C " <CJK> " 
                       "16r8E77"    16r0000 " invalid " 
                       "16r8E78"    16r0000 " invalid " 
                       "16r8E79"    16r0000 " invalid " 
                       "16r8E7A"    16r0000 " invalid " 
                       "16r8E7B"    16r0000 " invalid " 
                       "16r8E7C"    16r6D2E " <CJK> " 
                       "16r8E7D"    16r0000 " invalid " 
                       "16r8E7E"    16r0000 " invalid " 
                       "16r8E7F"    16r0000 " invalid " 
                       "16r8E80"    16r0000 " invalid " 
                       "16r8E81"    16r6D2F " <CJK> " 
                       "16r8E82"    16r0000 " invalid " 
                       "16r8E83"    16r0000 " invalid " 
                       "16r8E84"    16r6D32 " <CJK> " 
                       "16r8E85"    16r6D31 " <CJK> " 
                       "16r8E86"    16r0000 " invalid " 
                       "16r8E87"    16r6D30 " <CJK> " 
                       "16r8E88"    16r0000 " invalid " 
                       "16r8E89"    16r0000 " invalid " 
                       "16r8E8A"    16r6D34 " <CJK> " 
                       "16r8E8B"    16r6D33 " <CJK> " 
                       "16r8E8C"    16r0000 " invalid " 
                       "16r8E8D"    16r4C76 " <CJK> " 
                       "16r8E8E"    16r0000 " invalid " 
                       "16r8E8F"    16r0000 " invalid " 
                       "16r8E90"    16r0000 " invalid " 
                       "16r8E91"    16r6D36 " <CJK> " 
                       "16r8E92"    16r0000 " invalid " 
                       "16r8E93"    16r6D35 " <CJK> " 
                       "16r8E94"    16r6D37 " <CJK> " 
                       "16r8E95"    16r0000 " invalid " 
                       "16r8E96"    16r0000 " invalid " 
                       "16r8E97"    16r0000 " invalid " 
                       "16r8E98"    16r0000 " invalid " 
                       "16r8E99"    16r6D38 " <CJK> " 
                       "16r8E9A"    16r0000 " invalid " 
                       "16r8E9B"    16r0000 " invalid " 
                       "16r8E9C"    16r0000 " invalid " 
                       "16r8E9D"    16r0000 " invalid " 
                       "16r8E9E"    16r0000 " invalid " 
                       "16r8E9F"    16r0000 " invalid " 
                       "16r8EA0"    16r0000 " invalid " 
                       "16r8EA1"    16r6D3A " <CJK> " 
                       "16r8EA2"    16r0000 " invalid " 
                       "16r8EA3"    16r0000 " invalid " 
                       "16r8EA4"    16r0000 " invalid " 
                       "16r8EA5"    16r0000 " invalid " 
                       "16r8EA6"    16r0000 " invalid " 
                       "16r8EA7"    16r0000 " invalid " 
                       "16r8EA8"    16r0000 " invalid " 
                       "16r8EA9"    16r0000 " invalid " 
                       "16r8EAA"    16r6D39 " <CJK> " 
                       "16r8EAB"    16r3F48 " <CJK> " 
                       "16r8EAC"    16r6D3B " <CJK> " 
                       "16r8EAD"    16r0000 " invalid " 
                       "16r8EAE"    16r0000 " invalid " 
                       "16r8EAF"    16r366D " <CJK> " 
                       "16r8EB0"    16r6D3C " <CJK> " 
                       "16r8EB1"    16r6D3E " <CJK> " 
                       "16r8EB2"    16r0000 " invalid " 
                       "16r8EB3"    16r0000 " invalid " 
                       "16r8EB4"    16r0000 " invalid " 
                       "16r8EB5"    16r0000 " invalid " 
                       "16r8EB6"    16r0000 " invalid " 
                       "16r8EB7"    16r0000 " invalid " 
                       "16r8EB8"    16r0000 " invalid " 
                       "16r8EB9"    16r0000 " invalid " 
                       "16r8EBA"    16r0000 " invalid " 
                       "16r8EBB"    16r0000 " invalid " 
                       "16r8EBC"    16r0000 " invalid " 
                       "16r8EBD"    16r0000 " invalid " 
                       "16r8EBE"    16r6D3F " <CJK> " 
                       "16r8EBF"    16r0000 " invalid " 
                       "16r8EC0"    16r0000 " invalid " 
                       "16r8EC1"    16r0000 " invalid " 
                       "16r8EC2"    16r0000 " invalid " 
                       "16r8EC3"    16r0000 " invalid " 
                       "16r8EC4"    16r0000 " invalid " 
                       "16r8EC5"    16r6D40 " <CJK> " 
                       "16r8EC6"    16r6D3D " <CJK> " 
                       "16r8EC7"    16r0000 " invalid " 
                       "16r8EC8"    16r6D41 " <CJK> " 
                       "16r8EC9"    16r0000 " invalid " 
                       "16r8ECA"    16r3C56 " <CJK> " 
                       "16r8ECB"    16r6D42 " <CJK> " 
                       "16r8ECC"    16r3530 " <CJK> " 
                       "16r8ECD"    16r3733 " <CJK> " 
                       "16r8ECE"    16r0000 " invalid " 
                       "16r8ECF"    16r0000 " invalid " 
                       "16r8ED0"    16r0000 " invalid " 
                       "16r8ED1"    16r0000 " invalid " 
                       "16r8ED2"    16r382E " <CJK> " 
                       "16r8ED3"    16r0000 " invalid " 
                       "16r8ED4"    16r0000 " invalid " 
                       "16r8ED5"    16r0000 " invalid " 
                       "16r8ED6"    16r0000 " invalid " 
                       "16r8ED7"    16r0000 " invalid " 
                       "16r8ED8"    16r0000 " invalid " 
                       "16r8ED9"    16r0000 " invalid " 
                       "16r8EDA"    16r0000 " invalid " 
                       "16r8EDB"    16r6D43 " <CJK> " 
                       "16r8EDC"    16r0000 " invalid " 
                       "16r8EDD"    16r0000 " invalid " 
                       "16r8EDE"    16r0000 " invalid " 
                       "16r8EDF"    16r4670 " <CJK> " 
                       "16r8EE0"    16r0000 " invalid " 
                       "16r8EE1"    16r0000 " invalid " 
                       "16r8EE2"    16r453E " <CJK> " 
                       "16r8EE3"    16r6D44 " <CJK> " 
                       "16r8EE4"    16r0000 " invalid " 
                       "16r8EE5"    16r0000 " invalid " 
                       "16r8EE6"    16r0000 " invalid " 
                       "16r8EE7"    16r0000 " invalid " 
                       "16r8EE8"    16r0000 " invalid " 
                       "16r8EE9"    16r0000 " invalid " 
                       "16r8EEA"    16r0000 " invalid " 
                       "16r8EEB"    16r6D47 " <CJK> " 
                       "16r8EEC"    16r0000 " invalid " 
                       "16r8EED"    16r0000 " invalid " 
                       "16r8EEE"    16r0000 " invalid " 
                       "16r8EEF"    16r0000 " invalid " 
                       "16r8EF0"    16r0000 " invalid " 
                       "16r8EF1"    16r0000 " invalid " 
                       "16r8EF2"    16r0000 " invalid " 
                       "16r8EF3"    16r0000 " invalid " 
                       "16r8EF4"    16r0000 " invalid " 
                       "16r8EF5"    16r0000 " invalid " 
                       "16r8EF6"    16r0000 " invalid " 
                       "16r8EF7"    16r0000 " invalid " 
                       "16r8EF8"    16r3C34 " <CJK> " 
                       "16r8EF9"    16r0000 " invalid " 
                       "16r8EFA"    16r0000 " invalid " 
                       "16r8EFB"    16r6D46 " <CJK> " 
                       "16r8EFC"    16r6D45 " <CJK> " 
                       "16r8EFD"    16r375A " <CJK> " 
                       "16r8EFE"    16r6D48 " <CJK> " 
                       "16r8EFF"    16r0000 " invalid " 
                       "16r8F00"    16r0000 " invalid " 
                       "16r8F01"    16r0000 " invalid " 
                       "16r8F02"    16r0000 " invalid " 
                       "16r8F03"    16r3353 " <CJK> " 
                       "16r8F04"    16r0000 " invalid " 
                       "16r8F05"    16r6D4A " <CJK> " 
                       "16r8F06"    16r0000 " invalid " 
                       "16r8F07"    16r0000 " invalid " 
                       "16r8F08"    16r0000 " invalid " 
                       "16r8F09"    16r3A5C " <CJK> " 
                       "16r8F0A"    16r6D49 " <CJK> " 
                       "16r8F0B"    16r0000 " invalid " 
                       "16r8F0C"    16r6D52 " <CJK> " 
                       "16r8F0D"    16r0000 " invalid " 
                       "16r8F0E"    16r0000 " invalid " 
                       "16r8F0F"    16r0000 " invalid " 
                       "16r8F10"    16r0000 " invalid " 
                       "16r8F11"    16r0000 " invalid " 
                       "16r8F12"    16r6D4C " <CJK> " 
                       "16r8F13"    16r6D4E " <CJK> " 
                       "16r8F14"    16r4A65 " <CJK> " 
                       "16r8F15"    16r6D4B " <CJK> " 
                       "16r8F16"    16r0000 " invalid " 
                       "16r8F17"    16r0000 " invalid " 
                       "16r8F18"    16r0000 " invalid " 
                       "16r8F19"    16r6D4D " <CJK> " 
                       "16r8F1A"    16r0000 " invalid " 
                       "16r8F1B"    16r6D51 " <CJK> " 
                       "16r8F1C"    16r6D4F " <CJK> " 
                       "16r8F1D"    16r3531 " <CJK> " 
                       "16r8F1E"    16r0000 " invalid " 
                       "16r8F1F"    16r6D50 " <CJK> " 
                       "16r8F20"    16r0000 " invalid " 
                       "16r8F21"    16r0000 " invalid " 
                       "16r8F22"    16r0000 " invalid " 
                       "16r8F23"    16r0000 " invalid " 
                       "16r8F24"    16r0000 " invalid " 
                       "16r8F25"    16r0000 " invalid " 
                       "16r8F26"    16r6D53 " <CJK> " 
                       "16r8F27"    16r0000 " invalid " 
                       "16r8F28"    16r0000 " invalid " 
                       "16r8F29"    16r475A " <CJK> " 
                       "16r8F2A"    16r4E58 " <CJK> " 
                       "16r8F2B"    16r0000 " invalid " 
                       "16r8F2C"    16r0000 " invalid " 
                       "16r8F2D"    16r0000 " invalid " 
                       "16r8F2E"    16r0000 " invalid " 
                       "16r8F2F"    16r3D34 " <CJK> " 
                       "16r8F30"    16r0000 " invalid " 
                       "16r8F31"    16r0000 " invalid " 
                       "16r8F32"    16r0000 " invalid " 
                       "16r8F33"    16r6D54 " <CJK> " 
                       "16r8F34"    16r0000 " invalid " 
                       "16r8F35"    16r0000 " invalid " 
                       "16r8F36"    16r0000 " invalid " 
                       "16r8F37"    16r0000 " invalid " 
                       "16r8F38"    16r4D22 " <CJK> " 
                       "16r8F39"    16r6D56 " <CJK> " 
                       "16r8F3A"    16r0000 " invalid " 
                       "16r8F3B"    16r6D55 " <CJK> " 
                       "16r8F3C"    16r0000 " invalid " 
                       "16r8F3D"    16r0000 " invalid " 
                       "16r8F3E"    16r6D59 " <CJK> " 
                       "16r8F3F"    16r4D41 " <CJK> " 
                       "16r8F40"    16r0000 " invalid " 
                       "16r8F41"    16r0000 " invalid " 
                       "16r8F42"    16r6D58 " <CJK> " 
                       "16r8F43"    16r0000 " invalid " 
                       "16r8F44"    16r336D " <CJK> " 
                       "16r8F45"    16r6D57 " <CJK> " 
                       "16r8F46"    16r6D5C " <CJK> " 
                       "16r8F47"    16r0000 " invalid " 
                       "16r8F48"    16r0000 " invalid " 
                       "16r8F49"    16r6D5B " <CJK> " 
                       "16r8F4A"    16r0000 " invalid " 
                       "16r8F4B"    16r0000 " invalid " 
                       "16r8F4C"    16r6D5A " <CJK> " 
                       "16r8F4D"    16r4532 " <CJK> " 
                       "16r8F4E"    16r6D5D " <CJK> " 
                       "16r8F4F"    16r0000 " invalid " 
                       "16r8F50"    16r0000 " invalid " 
                       "16r8F51"    16r0000 " invalid " 
                       "16r8F52"    16r0000 " invalid " 
                       "16r8F53"    16r0000 " invalid " 
                       "16r8F54"    16r0000 " invalid " 
                       "16r8F55"    16r0000 " invalid " 
                       "16r8F56"    16r0000 " invalid " 
                       "16r8F57"    16r6D5E " <CJK> " 
                       "16r8F58"    16r0000 " invalid " 
                       "16r8F59"    16r0000 " invalid " 
                       "16r8F5A"    16r0000 " invalid " 
                       "16r8F5B"    16r0000 " invalid " 
                       "16r8F5C"    16r6D5F " <CJK> " 
                       "16r8F5D"    16r0000 " invalid " 
                       "16r8F5E"    16r0000 " invalid " 
                       "16r8F5F"    16r396C " <CJK> " 
                       "16r8F60"    16r0000 " invalid " 
                       "16r8F61"    16r3725 " <CJK> " 
                       "16r8F62"    16r6D60 " <CJK> " 
                       "16r8F63"    16r6D61 " <CJK> " 
                       "16r8F64"    16r6D62 " <CJK> " 
                       ) at:(unicode - 16r8D63).
                    t == 0 ifFalse:[^ t].
                    ^ self encodingError
                ] value.
            ].
            unicode <= 16r8F9A ifTrue:[
                ^ self encodingError.
            ].
            [
                |t|
                t := #(
                   "16r8F9B"    16r3F49 " <CJK> " 
                   "16r8F9C"    16r6D63 " <CJK> " 
                   "16r8F9D"    16r0000 " invalid " 
                   "16r8F9E"    16r3C2D " <CJK> " 
                   "16r8F9F"    16r6D64 " <CJK> " 
                   "16r8FA0"    16r0000 " invalid " 
                   "16r8FA1"    16r0000 " invalid " 
                   "16r8FA2"    16r0000 " invalid " 
                   "16r8FA3"    16r6D65 " <CJK> " 
                   "16r8FA4"    16r0000 " invalid " 
                   "16r8FA5"    16r0000 " invalid " 
                   "16r8FA6"    16r0000 " invalid " 
                   "16r8FA7"    16r5221 " <CJK> " 
                   "16r8FA8"    16r517E " <CJK> " 
                   "16r8FA9"    16r0000 " invalid " 
                   "16r8FAA"    16r0000 " invalid " 
                   "16r8FAB"    16r0000 " invalid " 
                   "16r8FAC"    16r0000 " invalid " 
                   "16r8FAD"    16r6D66 " <CJK> " 
                   "16r8FAE"    16r6570 " <CJK> " 
                   "16r8FAF"    16r6D67 " <CJK> " 
                   "16r8FB0"    16r4324 " <CJK> " 
                   "16r8FB1"    16r3F2B " <CJK> " 
                   "16r8FB2"    16r4740 " <CJK> " 
                   "16r8FB3"    16r0000 " invalid " 
                   "16r8FB4"    16r0000 " invalid " 
                   "16r8FB5"    16r0000 " invalid " 
                   "16r8FB6"    16r0000 " invalid " 
                   "16r8FB7"    16r6D68 " <CJK> " 
                   "16r8FB8"    16r0000 " invalid " 
                   "16r8FB9"    16r0000 " invalid " 
                   "16r8FBA"    16r4A55 " <CJK> " 
                   "16r8FBB"    16r4454 " <CJK> " 
                   "16r8FBC"    16r397E " <CJK> " 
                   "16r8FBD"    16r0000 " invalid " 
                   "16r8FBE"    16r0000 " invalid " 
                   "16r8FBF"    16r4329 " <CJK> " 
                   "16r8FC0"    16r0000 " invalid " 
                   "16r8FC1"    16r0000 " invalid " 
                   "16r8FC2"    16r312A " <CJK> " 
                   "16r8FC3"    16r0000 " invalid " 
                   "16r8FC4"    16r4B78 " <CJK> " 
                   "16r8FC5"    16r3F57 " <CJK> " 
                   "16r8FC6"    16r0000 " invalid " 
                   "16r8FC7"    16r0000 " invalid " 
                   "16r8FC8"    16r0000 " invalid " 
                   "16r8FC9"    16r0000 " invalid " 
                   "16r8FCA"    16r0000 " invalid " 
                   "16r8FCB"    16r0000 " invalid " 
                   "16r8FCC"    16r0000 " invalid " 
                   "16r8FCD"    16r0000 " invalid " 
                   "16r8FCE"    16r375E " <CJK> " 
                   "16r8FCF"    16r0000 " invalid " 
                   "16r8FD0"    16r0000 " invalid " 
                   "16r8FD1"    16r3661 " <CJK> " 
                   "16r8FD2"    16r0000 " invalid " 
                   "16r8FD3"    16r0000 " invalid " 
                   "16r8FD4"    16r4A56 " <CJK> " 
                   "16r8FD5"    16r0000 " invalid " 
                   "16r8FD6"    16r0000 " invalid " 
                   "16r8FD7"    16r0000 " invalid " 
                   "16r8FD8"    16r0000 " invalid " 
                   "16r8FD9"    16r0000 " invalid " 
                   "16r8FDA"    16r6D69 " <CJK> " 
                   "16r8FDB"    16r0000 " invalid " 
                   "16r8FDC"    16r0000 " invalid " 
                   "16r8FDD"    16r0000 " invalid " 
                   "16r8FDE"    16r0000 " invalid " 
                   "16r8FDF"    16r0000 " invalid " 
                   "16r8FE0"    16r0000 " invalid " 
                   "16r8FE1"    16r0000 " invalid " 
                   "16r8FE2"    16r6D6B " <CJK> " 
                   "16r8FE3"    16r0000 " invalid " 
                   "16r8FE4"    16r0000 " invalid " 
                   "16r8FE5"    16r6D6A " <CJK> " 
                   "16r8FE6"    16r3260 " <CJK> " 
                   "16r8FE7"    16r0000 " invalid " 
                   "16r8FE8"    16r0000 " invalid " 
                   "16r8FE9"    16r4676 " <CJK> " 
                   "16r8FEA"    16r6D6C " <CJK> " 
                   "16r8FEB"    16r4777 " <CJK> " 
                   "16r8FEC"    16r0000 " invalid " 
                   "16r8FED"    16r4533 " <CJK> " 
                   "16r8FEE"    16r0000 " invalid " 
                   "16r8FEF"    16r6D6D " <CJK> " 
                   "16r8FF0"    16r3D52 " <CJK> " 
                   "16r8FF1"    16r0000 " invalid " 
                   "16r8FF2"    16r0000 " invalid " 
                   "16r8FF3"    16r0000 " invalid " 
                   "16r8FF4"    16r6D6F " <CJK> " 
                   "16r8FF5"    16r0000 " invalid " 
                   "16r8FF6"    16r0000 " invalid " 
                   "16r8FF7"    16r4C42 " <CJK> " 
                   "16r8FF8"    16r6D7E " <CJK> " 
                   "16r8FF9"    16r6D71 " <CJK> " 
                   "16r8FFA"    16r6D72 " <CJK> " 
                   "16r8FFB"    16r0000 " invalid " 
                   "16r8FFC"    16r0000 " invalid " 
                   "16r8FFD"    16r4449 " <CJK> " 
                   "16r8FFE"    16r0000 " invalid " 
                   "16r8FFF"    16r0000 " invalid " 
                   "16r9000"    16r4260 " <CJK> " 
                   "16r9001"    16r4177 " <CJK> " 
                   "16r9002"    16r0000 " invalid " 
                   "16r9003"    16r4628 " <CJK> " 
                   "16r9004"    16r0000 " invalid " 
                   "16r9005"    16r6D70 " <CJK> " 
                   "16r9006"    16r3555 " <CJK> " 
                   "16r9007"    16r0000 " invalid " 
                   "16r9008"    16r0000 " invalid " 
                   "16r9009"    16r0000 " invalid " 
                   "16r900A"    16r0000 " invalid " 
                   "16r900B"    16r6D79 " <CJK> " 
                   "16r900C"    16r0000 " invalid " 
                   "16r900D"    16r6D76 " <CJK> " 
                   "16r900E"    16r6E25 " <CJK> " 
                   "16r900F"    16r4629 " <CJK> " 
                   "16r9010"    16r4360 " <CJK> " 
                   "16r9011"    16r6D73 " <CJK> " 
                   "16r9012"    16r0000 " invalid " 
                   "16r9013"    16r447E " <CJK> " 
                   "16r9014"    16r4553 " <CJK> " 
                   "16r9015"    16r6D74 " <CJK> " 
                   "16r9016"    16r6D78 " <CJK> " 
                   "16r9017"    16r3F60 " <CJK> " 
                   "16r9018"    16r0000 " invalid " 
                   "16r9019"    16r4767 " <CJK> " 
                   "16r901A"    16r444C " <CJK> " 
                   "16r901B"    16r0000 " invalid " 
                   "16r901C"    16r0000 " invalid " 
                   "16r901D"    16r4042 " <CJK> " 
                   "16r901E"    16r6D77 " <CJK> " 
                   "16r901F"    16r422E " <CJK> " 
                   "16r9020"    16r4224 " <CJK> " 
                   "16r9021"    16r6D75 " <CJK> " 
                   "16r9022"    16r3029 " <CJK> " 
                   "16r9023"    16r4F22 " <CJK> " 
                   "16r9024"    16r0000 " invalid " 
                   "16r9025"    16r0000 " invalid " 
                   "16r9026"    16r0000 " invalid " 
                   "16r9027"    16r6D7A " <CJK> " 
                   "16r9028"    16r0000 " invalid " 
                   "16r9029"    16r0000 " invalid " 
                   "16r902A"    16r0000 " invalid " 
                   "16r902B"    16r0000 " invalid " 
                   "16r902C"    16r0000 " invalid " 
                   "16r902D"    16r0000 " invalid " 
                   "16r902E"    16r4261 " <CJK> " 
                   "16r902F"    16r0000 " invalid " 
                   "16r9030"    16r0000 " invalid " 
                   "16r9031"    16r3D35 " <CJK> " 
                   "16r9032"    16r3F4A " <CJK> " 
                   "16r9033"    16r0000 " invalid " 
                   "16r9034"    16r0000 " invalid " 
                   "16r9035"    16r6D7C " <CJK> " 
                   "16r9036"    16r6D7B " <CJK> " 
                   "16r9037"    16r0000 " invalid " 
                   "16r9038"    16r306F " <CJK> " 
                   "16r9039"    16r6D7D " <CJK> " 
                   "16r903A"    16r0000 " invalid " 
                   "16r903B"    16r0000 " invalid " 
                   "16r903C"    16r492F " <CJK> " 
                   "16r903D"    16r0000 " invalid " 
                   "16r903E"    16r6E27 " <CJK> " 
                   "16r903F"    16r0000 " invalid " 
                   "16r9040"    16r0000 " invalid " 
                   "16r9041"    16r465B " <CJK> " 
                   "16r9042"    16r3F6B " <CJK> " 
                   "16r9043"    16r0000 " invalid " 
                   "16r9044"    16r0000 " invalid " 
                   "16r9045"    16r4359 " <CJK> " 
                   "16r9046"    16r0000 " invalid " 
                   "16r9047"    16r3678 " <CJK> " 
                   "16r9048"    16r0000 " invalid " 
                   "16r9049"    16r6E26 " <CJK> " 
                   "16r904A"    16r4D37 " <CJK> " 
                   "16r904B"    16r313F " <CJK> " 
                   "16r904C"    16r0000 " invalid " 
                   "16r904D"    16r4A57 " <CJK> " 
                   "16r904E"    16r3261 " <CJK> " 
                   "16r904F"    16r6E21 " <CJK> " 
                   "16r9050"    16r6E22 " <CJK> " 
                   "16r9051"    16r6E23 " <CJK> " 
                   "16r9052"    16r6E24 " <CJK> " 
                   "16r9053"    16r463B " <CJK> " 
                   "16r9054"    16r4323 " <CJK> " 
                   "16r9055"    16r3063 " <CJK> " 
                   "16r9056"    16r6E28 " <CJK> " 
                   "16r9057"    16r0000 " invalid " 
                   "16r9058"    16r6E29 " <CJK> " 
                   "16r9059"    16r7423 " <CJK> " 
                   "16r905A"    16r0000 " invalid " 
                   "16r905B"    16r0000 " invalid " 
                   "16r905C"    16r423D " <CJK> " 
                   "16r905D"    16r0000 " invalid " 
                   "16r905E"    16r6E2A " <CJK> " 
                   "16r905F"    16r0000 " invalid " 
                   "16r9060"    16r3173 " <CJK> " 
                   "16r9061"    16r414C " <CJK> " 
                   "16r9062"    16r0000 " invalid " 
                   "16r9063"    16r382F " <CJK> " 
                   "16r9064"    16r0000 " invalid " 
                   "16r9065"    16r4D5A " <CJK> " 
                   "16r9066"    16r0000 " invalid " 
                   "16r9067"    16r0000 " invalid " 
                   "16r9068"    16r6E2B " <CJK> " 
                   "16r9069"    16r452C " <CJK> " 
                   "16r906A"    16r0000 " invalid " 
                   "16r906B"    16r0000 " invalid " 
                   "16r906C"    16r0000 " invalid " 
                   "16r906D"    16r4178 " <CJK> " 
                   "16r906E"    16r3C57 " <CJK> " 
                   "16r906F"    16r6E2C " <CJK> " 
                   "16r9070"    16r0000 " invalid " 
                   "16r9071"    16r0000 " invalid " 
                   "16r9072"    16r6E2F " <CJK> " 
                   "16r9073"    16r0000 " invalid " 
                   "16r9074"    16r0000 " invalid " 
                   "16r9075"    16r3D65 " <CJK> " 
                   "16r9076"    16r6E2D " <CJK> " 
                   "16r9077"    16r412B " <CJK> " 
                   "16r9078"    16r412A " <CJK> " 
                   "16r9079"    16r0000 " invalid " 
                   "16r907A"    16r3064 " <CJK> " 
                   "16r907B"    16r0000 " invalid " 
                   "16r907C"    16r4E4B " <CJK> " 
                   "16r907D"    16r6E31 " <CJK> " 
                   "16r907E"    16r0000 " invalid " 
                   "16r907F"    16r4872 " <CJK> " 
                   "16r9080"    16r6E33 " <CJK> " 
                   "16r9081"    16r6E32 " <CJK> " 
                   "16r9082"    16r6E30 " <CJK> " 
                   "16r9083"    16r6364 " <CJK> " 
                   "16r9084"    16r3454 " <CJK> " 
                   "16r9085"    16r0000 " invalid " 
                   "16r9086"    16r0000 " invalid " 
                   "16r9087"    16r6D6E " <CJK> " 
                   "16r9088"    16r0000 " invalid " 
                   "16r9089"    16r6E35 " <CJK> " 
                   "16r908A"    16r6E34 " <CJK> " 
                   "16r908B"    16r0000 " invalid " 
                   "16r908C"    16r0000 " invalid " 
                   "16r908D"    16r0000 " invalid " 
                   "16r908E"    16r0000 " invalid " 
                   "16r908F"    16r6E36 " <CJK> " 
                   "16r9090"    16r0000 " invalid " 
                   "16r9091"    16r4D38 " <CJK> " 
                   "16r9092"    16r0000 " invalid " 
                   "16r9093"    16r0000 " invalid " 
                   "16r9094"    16r0000 " invalid " 
                   "16r9095"    16r0000 " invalid " 
                   "16r9096"    16r0000 " invalid " 
                   "16r9097"    16r0000 " invalid " 
                   "16r9098"    16r0000 " invalid " 
                   "16r9099"    16r0000 " invalid " 
                   "16r909A"    16r0000 " invalid " 
                   "16r909B"    16r0000 " invalid " 
                   "16r909C"    16r0000 " invalid " 
                   "16r909D"    16r0000 " invalid " 
                   "16r909E"    16r0000 " invalid " 
                   "16r909F"    16r0000 " invalid " 
                   "16r90A0"    16r0000 " invalid " 
                   "16r90A1"    16r0000 " invalid " 
                   "16r90A2"    16r0000 " invalid " 
                   "16r90A3"    16r4661 " <CJK> " 
                   "16r90A4"    16r0000 " invalid " 
                   "16r90A5"    16r0000 " invalid " 
                   "16r90A6"    16r4B2E " <CJK> " 
                   "16r90A7"    16r0000 " invalid " 
                   "16r90A8"    16r6E37 " <CJK> " 
                   "16r90A9"    16r0000 " invalid " 
                   "16r90AA"    16r3C59 " <CJK> " 
                   "16r90AB"    16r0000 " invalid " 
                   "16r90AC"    16r0000 " invalid " 
                   "16r90AD"    16r0000 " invalid " 
                   "16r90AE"    16r0000 " invalid " 
                   "16r90AF"    16r6E38 " <CJK> " 
                   "16r90B0"    16r0000 " invalid " 
                   "16r90B1"    16r6E39 " <CJK> " 
                   "16r90B2"    16r0000 " invalid " 
                   "16r90B3"    16r0000 " invalid " 
                   "16r90B4"    16r0000 " invalid " 
                   "16r90B5"    16r6E3A " <CJK> " 
                   "16r90B6"    16r0000 " invalid " 
                   "16r90B7"    16r0000 " invalid " 
                   "16r90B8"    16r4521 " <CJK> " 
                   "16r90B9"    16r0000 " invalid " 
                   "16r90BA"    16r0000 " invalid " 
                   "16r90BB"    16r0000 " invalid " 
                   "16r90BC"    16r0000 " invalid " 
                   "16r90BD"    16r0000 " invalid " 
                   "16r90BE"    16r0000 " invalid " 
                   "16r90BF"    16r0000 " invalid " 
                   "16r90C0"    16r0000 " invalid " 
                   "16r90C1"    16r306A " <CJK> " 
                   "16r90C2"    16r0000 " invalid " 
                   "16r90C3"    16r0000 " invalid " 
                   "16r90C4"    16r0000 " invalid " 
                   "16r90C5"    16r0000 " invalid " 
                   "16r90C6"    16r0000 " invalid " 
                   "16r90C7"    16r0000 " invalid " 
                   "16r90C8"    16r0000 " invalid " 
                   "16r90C9"    16r0000 " invalid " 
                   "16r90CA"    16r3959 " <CJK> " 
                   "16r90CB"    16r0000 " invalid " 
                   "16r90CC"    16r0000 " invalid " 
                   "16r90CD"    16r0000 " invalid " 
                   "16r90CE"    16r4F3A " <CJK> " 
                   "16r90CF"    16r0000 " invalid " 
                   "16r90D0"    16r0000 " invalid " 
                   "16r90D1"    16r0000 " invalid " 
                   "16r90D2"    16r0000 " invalid " 
                   "16r90D3"    16r0000 " invalid " 
                   "16r90D4"    16r0000 " invalid " 
                   "16r90D5"    16r0000 " invalid " 
                   "16r90D6"    16r0000 " invalid " 
                   "16r90D7"    16r0000 " invalid " 
                   "16r90D8"    16r0000 " invalid " 
                   "16r90D9"    16r0000 " invalid " 
                   "16r90DA"    16r0000 " invalid " 
                   "16r90DB"    16r6E3E " <CJK> " 
                   "16r90DC"    16r0000 " invalid " 
                   "16r90DD"    16r0000 " invalid " 
                   "16r90DE"    16r0000 " invalid " 
                   "16r90DF"    16r0000 " invalid " 
                   "16r90E0"    16r0000 " invalid " 
                   "16r90E1"    16r3734 " <CJK> " 
                   "16r90E2"    16r6E3B " <CJK> " 
                   "16r90E3"    16r0000 " invalid " 
                   "16r90E4"    16r6E3C " <CJK> " 
                   "16r90E5"    16r0000 " invalid " 
                   "16r90E6"    16r0000 " invalid " 
                   "16r90E7"    16r0000 " invalid " 
                   "16r90E8"    16r4974 " <CJK> " 
                   "16r90E9"    16r0000 " invalid " 
                   "16r90EA"    16r0000 " invalid " 
                   "16r90EB"    16r0000 " invalid " 
                   "16r90EC"    16r0000 " invalid " 
                   "16r90ED"    16r3354 " <CJK> " 
                   "16r90EE"    16r0000 " invalid " 
                   "16r90EF"    16r0000 " invalid " 
                   "16r90F0"    16r0000 " invalid " 
                   "16r90F1"    16r0000 " invalid " 
                   "16r90F2"    16r0000 " invalid " 
                   "16r90F3"    16r0000 " invalid " 
                   "16r90F4"    16r0000 " invalid " 
                   "16r90F5"    16r4D39 " <CJK> " 
                   "16r90F6"    16r0000 " invalid " 
                   "16r90F7"    16r363F " <CJK> " 
                   "16r90F8"    16r0000 " invalid " 
                   "16r90F9"    16r0000 " invalid " 
                   "16r90FA"    16r0000 " invalid " 
                   "16r90FB"    16r0000 " invalid " 
                   "16r90FC"    16r0000 " invalid " 
                   "16r90FD"    16r4554 " <CJK> " 
                   "16r90FE"    16r0000 " invalid " 
                   "16r90FF"    16r0000 " invalid " 
                   "16r9100"    16r0000 " invalid " 
                   "16r9101"    16r0000 " invalid " 
                   "16r9102"    16r6E3F " <CJK> " 
                   "16r9103"    16r0000 " invalid " 
                   "16r9104"    16r0000 " invalid " 
                   "16r9105"    16r0000 " invalid " 
                   "16r9106"    16r0000 " invalid " 
                   "16r9107"    16r0000 " invalid " 
                   "16r9108"    16r0000 " invalid " 
                   "16r9109"    16r0000 " invalid " 
                   "16r910A"    16r0000 " invalid " 
                   "16r910B"    16r0000 " invalid " 
                   "16r910C"    16r0000 " invalid " 
                   "16r910D"    16r0000 " invalid " 
                   "16r910E"    16r0000 " invalid " 
                   "16r910F"    16r0000 " invalid " 
                   "16r9110"    16r0000 " invalid " 
                   "16r9111"    16r0000 " invalid " 
                   "16r9112"    16r6E40 " <CJK> " 
                   "16r9113"    16r0000 " invalid " 
                   "16r9114"    16r0000 " invalid " 
                   "16r9115"    16r0000 " invalid " 
                   "16r9116"    16r0000 " invalid " 
                   "16r9117"    16r0000 " invalid " 
                   "16r9118"    16r0000 " invalid " 
                   "16r9119"    16r6E41 " <CJK> " 
                   "16r911A"    16r0000 " invalid " 
                   "16r911B"    16r0000 " invalid " 
                   "16r911C"    16r0000 " invalid " 
                   "16r911D"    16r0000 " invalid " 
                   "16r911E"    16r0000 " invalid " 
                   "16r911F"    16r0000 " invalid " 
                   "16r9120"    16r0000 " invalid " 
                   "16r9121"    16r0000 " invalid " 
                   "16r9122"    16r0000 " invalid " 
                   "16r9123"    16r0000 " invalid " 
                   "16r9124"    16r0000 " invalid " 
                   "16r9125"    16r0000 " invalid " 
                   "16r9126"    16r0000 " invalid " 
                   "16r9127"    16r0000 " invalid " 
                   "16r9128"    16r0000 " invalid " 
                   "16r9129"    16r0000 " invalid " 
                   "16r912A"    16r0000 " invalid " 
                   "16r912B"    16r0000 " invalid " 
                   "16r912C"    16r0000 " invalid " 
                   "16r912D"    16r4522 " <CJK> " 
                   "16r912E"    16r0000 " invalid " 
                   "16r912F"    16r0000 " invalid " 
                   "16r9130"    16r6E43 " <CJK> " 
                   "16r9131"    16r0000 " invalid " 
                   "16r9132"    16r6E42 " <CJK> " 
                   "16r9133"    16r0000 " invalid " 
                   "16r9134"    16r0000 " invalid " 
                   "16r9135"    16r0000 " invalid " 
                   "16r9136"    16r0000 " invalid " 
                   "16r9137"    16r0000 " invalid " 
                   "16r9138"    16r0000 " invalid " 
                   "16r9139"    16r0000 " invalid " 
                   "16r913A"    16r0000 " invalid " 
                   "16r913B"    16r0000 " invalid " 
                   "16r913C"    16r0000 " invalid " 
                   "16r913D"    16r0000 " invalid " 
                   "16r913E"    16r0000 " invalid " 
                   "16r913F"    16r0000 " invalid " 
                   "16r9140"    16r0000 " invalid " 
                   "16r9141"    16r0000 " invalid " 
                   "16r9142"    16r0000 " invalid " 
                   "16r9143"    16r0000 " invalid " 
                   "16r9144"    16r0000 " invalid " 
                   "16r9145"    16r0000 " invalid " 
                   "16r9146"    16r0000 " invalid " 
                   "16r9147"    16r0000 " invalid " 
                   "16r9148"    16r0000 " invalid " 
                   "16r9149"    16r4653 " <CJK> " 
                   "16r914A"    16r6E44 " <CJK> " 
                   "16r914B"    16r3D36 " <CJK> " 
                   "16r914C"    16r3C60 " <CJK> " 
                   "16r914D"    16r475B " <CJK> " 
                   "16r914E"    16r4371 " <CJK> " 
                   "16r914F"    16r0000 " invalid " 
                   "16r9150"    16r0000 " invalid " 
                   "16r9151"    16r0000 " invalid " 
                   "16r9152"    16r3C72 " <CJK> " 
                   "16r9153"    16r0000 " invalid " 
                   "16r9154"    16r3F6C " <CJK> " 
                   "16r9155"    16r0000 " invalid " 
                   "16r9156"    16r6E45 " <CJK> " 
                   "16r9157"    16r0000 " invalid " 
                   "16r9158"    16r6E46 " <CJK> " 
                   "16r9159"    16r0000 " invalid " 
                   "16r915A"    16r0000 " invalid " 
                   "16r915B"    16r0000 " invalid " 
                   "16r915C"    16r0000 " invalid " 
                   "16r915D"    16r0000 " invalid " 
                   "16r915E"    16r0000 " invalid " 
                   "16r915F"    16r0000 " invalid " 
                   "16r9160"    16r0000 " invalid " 
                   "16r9161"    16r0000 " invalid " 
                   "16r9162"    16r3F5D " <CJK> " 
                   "16r9163"    16r6E47 " <CJK> " 
                   "16r9164"    16r0000 " invalid " 
                   "16r9165"    16r6E48 " <CJK> " 
                   "16r9166"    16r0000 " invalid " 
                   "16r9167"    16r0000 " invalid " 
                   "16r9168"    16r0000 " invalid " 
                   "16r9169"    16r6E49 " <CJK> " 
                   "16r916A"    16r4D6F " <CJK> " 
                   "16r916B"    16r0000 " invalid " 
                   "16r916C"    16r3D37 " <CJK> " 
                   "16r916D"    16r0000 " invalid " 
                   "16r916E"    16r0000 " invalid " 
                   "16r916F"    16r0000 " invalid " 
                   "16r9170"    16r0000 " invalid " 
                   "16r9171"    16r0000 " invalid " 
                   "16r9172"    16r6E4B " <CJK> " 
                   "16r9173"    16r6E4A " <CJK> " 
                   "16r9174"    16r0000 " invalid " 
                   "16r9175"    16r395A " <CJK> " 
                   "16r9176"    16r0000 " invalid " 
                   "16r9177"    16r3973 " <CJK> " 
                   "16r9178"    16r3B40 " <CJK> " 
                   "16r9179"    16r0000 " invalid " 
                   "16r917A"    16r0000 " invalid " 
                   "16r917B"    16r0000 " invalid " 
                   "16r917C"    16r0000 " invalid " 
                   "16r917D"    16r0000 " invalid " 
                   "16r917E"    16r0000 " invalid " 
                   "16r917F"    16r0000 " invalid " 
                   "16r9180"    16r0000 " invalid " 
                   "16r9181"    16r0000 " invalid " 
                   "16r9182"    16r6E4E " <CJK> " 
                   "16r9183"    16r0000 " invalid " 
                   "16r9184"    16r0000 " invalid " 
                   "16r9185"    16r0000 " invalid " 
                   "16r9186"    16r0000 " invalid " 
                   "16r9187"    16r3D66 " <CJK> " 
                   "16r9188"    16r0000 " invalid " 
                   "16r9189"    16r6E4D " <CJK> " 
                   "16r918A"    16r0000 " invalid " 
                   "16r918B"    16r6E4C " <CJK> " 
                   "16r918C"    16r0000 " invalid " 
                   "16r918D"    16r4269 " <CJK> " 
                   "16r918E"    16r0000 " invalid " 
                   "16r918F"    16r0000 " invalid " 
                   "16r9190"    16r386F " <CJK> " 
                   "16r9191"    16r0000 " invalid " 
                   "16r9192"    16r4043 " <CJK> " 
                   "16r9193"    16r0000 " invalid " 
                   "16r9194"    16r0000 " invalid " 
                   "16r9195"    16r0000 " invalid " 
                   "16r9196"    16r0000 " invalid " 
                   "16r9197"    16r4830 " <CJK> " 
                   "16r9198"    16r0000 " invalid " 
                   "16r9199"    16r0000 " invalid " 
                   "16r919A"    16r0000 " invalid " 
                   "16r919B"    16r0000 " invalid " 
                   "16r919C"    16r3D39 " <CJK> " 
                   "16r919D"    16r0000 " invalid " 
                   "16r919E"    16r0000 " invalid " 
                   "16r919F"    16r0000 " invalid " 
                   "16r91A0"    16r0000 " invalid " 
                   "16r91A1"    16r0000 " invalid " 
                   "16r91A2"    16r6E4F " <CJK> " 
                   "16r91A3"    16r0000 " invalid " 
                   "16r91A4"    16r3E5F " <CJK> " 
                   "16r91A5"    16r0000 " invalid " 
                   "16r91A6"    16r0000 " invalid " 
                   "16r91A7"    16r0000 " invalid " 
                   "16r91A8"    16r0000 " invalid " 
                   "16r91A9"    16r0000 " invalid " 
                   "16r91AA"    16r6E52 " <CJK> " 
                   "16r91AB"    16r6E50 " <CJK> " 
                   "16r91AC"    16r0000 " invalid " 
                   "16r91AD"    16r0000 " invalid " 
                   "16r91AE"    16r0000 " invalid " 
                   "16r91AF"    16r6E51 " <CJK> " 
                   "16r91B0"    16r0000 " invalid " 
                   "16r91B1"    16r0000 " invalid " 
                   "16r91B2"    16r0000 " invalid " 
                   "16r91B3"    16r0000 " invalid " 
                   "16r91B4"    16r6E54 " <CJK> " 
                   "16r91B5"    16r6E53 " <CJK> " 
                   "16r91B6"    16r0000 " invalid " 
                   "16r91B7"    16r0000 " invalid " 
                   "16r91B8"    16r3E7A " <CJK> " 
                   "16r91B9"    16r0000 " invalid " 
                   "16r91BA"    16r6E55 " <CJK> " 
                   "16r91BB"    16r0000 " invalid " 
                   "16r91BC"    16r0000 " invalid " 
                   "16r91BD"    16r0000 " invalid " 
                   "16r91BE"    16r0000 " invalid " 
                   "16r91BF"    16r0000 " invalid " 
                   "16r91C0"    16r6E56 " <CJK> " 
                   "16r91C1"    16r6E57 " <CJK> " 
                   "16r91C2"    16r0000 " invalid " 
                   "16r91C3"    16r0000 " invalid " 
                   "16r91C4"    16r0000 " invalid " 
                   "16r91C5"    16r0000 " invalid " 
                   "16r91C6"    16r4850 " <CJK> " 
                   "16r91C7"    16r3A53 " <CJK> " 
                   "16r91C8"    16r3C61 " <CJK> " 
                   "16r91C9"    16r6E58 " <CJK> " 
                   "16r91CA"    16r0000 " invalid " 
                   "16r91CB"    16r6E59 " <CJK> " 
                   "16r91CC"    16r4E24 " <CJK> " 
                   "16r91CD"    16r3D45 " <CJK> " 
                   "16r91CE"    16r4C6E " <CJK> " 
                   "16r91CF"    16r4E4C " <CJK> " 
                   "16r91D0"    16r6E5A " <CJK> " 
                   "16r91D1"    16r3662 " <CJK> " 
                   "16r91D2"    16r0000 " invalid " 
                   "16r91D3"    16r0000 " invalid " 
                   "16r91D4"    16r0000 " invalid " 
                   "16r91D5"    16r0000 " invalid " 
                   "16r91D6"    16r6E5B " <CJK> " 
                   "16r91D7"    16r0000 " invalid " 
                   "16r91D8"    16r4523 " <CJK> " 
                   "16r91D9"    16r0000 " invalid " 
                   "16r91DA"    16r0000 " invalid " 
                   "16r91DB"    16r6E5E " <CJK> " 
                   "16r91DC"    16r3378 " <CJK> " 
                   "16r91DD"    16r3F4B " <CJK> " 
                   "16r91DE"    16r0000 " invalid " 
                   "16r91DF"    16r6E5C " <CJK> " 
                   "16r91E0"    16r0000 " invalid " 
                   "16r91E1"    16r6E5D " <CJK> " 
                   "16r91E2"    16r0000 " invalid " 
                   "16r91E3"    16r4460 " <CJK> " 
                   "16r91E4"    16r0000 " invalid " 
                   "16r91E5"    16r0000 " invalid " 
                   "16r91E6"    16r4B55 " <CJK> " 
                   "16r91E7"    16r367C " <CJK> " 
                   "16r91E8"    16r0000 " invalid " 
                   "16r91E9"    16r0000 " invalid " 
                   "16r91EA"    16r0000 " invalid " 
                   "16r91EB"    16r0000 " invalid " 
                   "16r91EC"    16r0000 " invalid " 
                   "16r91ED"    16r0000 " invalid " 
                   "16r91EE"    16r0000 " invalid " 
                   "16r91EF"    16r0000 " invalid " 
                   "16r91F0"    16r0000 " invalid " 
                   "16r91F1"    16r0000 " invalid " 
                   "16r91F2"    16r0000 " invalid " 
                   "16r91F3"    16r0000 " invalid " 
                   "16r91F4"    16r0000 " invalid " 
                   "16r91F5"    16r6E60 " <CJK> " 
                   "16r91F6"    16r6E61 " <CJK> " 
                   "16r91F7"    16r0000 " invalid " 
                   "16r91F8"    16r0000 " invalid " 
                   "16r91F9"    16r0000 " invalid " 
                   "16r91FA"    16r0000 " invalid " 
                   "16r91FB"    16r0000 " invalid " 
                   "16r91FC"    16r6E5F " <CJK> " 
                   "16r91FD"    16r0000 " invalid " 
                   "16r91FE"    16r0000 " invalid " 
                   "16r91FF"    16r6E63 " <CJK> " 
                   "16r9200"    16r0000 " invalid " 
                   "16r9201"    16r0000 " invalid " 
                   "16r9202"    16r0000 " invalid " 
                   "16r9203"    16r0000 " invalid " 
                   "16r9204"    16r0000 " invalid " 
                   "16r9205"    16r0000 " invalid " 
                   "16r9206"    16r0000 " invalid " 
                   "16r9207"    16r0000 " invalid " 
                   "16r9208"    16r0000 " invalid " 
                   "16r9209"    16r0000 " invalid " 
                   "16r920A"    16r0000 " invalid " 
                   "16r920B"    16r0000 " invalid " 
                   "16r920C"    16r0000 " invalid " 
                   "16r920D"    16r465F " <CJK> " 
                   "16r920E"    16r3343 " <CJK> " 
                   "16r920F"    16r0000 " invalid " 
                   "16r9210"    16r0000 " invalid " 
                   "16r9211"    16r6E67 " <CJK> " 
                   "16r9212"    16r0000 " invalid " 
                   "16r9213"    16r0000 " invalid " 
                   "16r9214"    16r6E64 " <CJK> " 
                   "16r9215"    16r6E66 " <CJK> " 
                   "16r9216"    16r0000 " invalid " 
                   "16r9217"    16r0000 " invalid " 
                   "16r9218"    16r0000 " invalid " 
                   "16r9219"    16r0000 " invalid " 
                   "16r921A"    16r0000 " invalid " 
                   "16r921B"    16r0000 " invalid " 
                   "16r921C"    16r0000 " invalid " 
                   "16r921D"    16r0000 " invalid " 
                   "16r921E"    16r6E62 " <CJK> " 
                   "16r921F"    16r0000 " invalid " 
                   "16r9220"    16r0000 " invalid " 
                   "16r9221"    16r0000 " invalid " 
                   "16r9222"    16r0000 " invalid " 
                   "16r9223"    16r0000 " invalid " 
                   "16r9224"    16r0000 " invalid " 
                   "16r9225"    16r0000 " invalid " 
                   "16r9226"    16r0000 " invalid " 
                   "16r9227"    16r0000 " invalid " 
                   "16r9228"    16r0000 " invalid " 
                   "16r9229"    16r6F4F " <CJK> " 
                   "16r922A"    16r0000 " invalid " 
                   "16r922B"    16r0000 " invalid " 
                   "16r922C"    16r6E65 " <CJK> " 
                   "16r922D"    16r0000 " invalid " 
                   "16r922E"    16r0000 " invalid " 
                   "16r922F"    16r0000 " invalid " 
                   "16r9230"    16r0000 " invalid " 
                   "16r9231"    16r0000 " invalid " 
                   "16r9232"    16r0000 " invalid " 
                   "16r9233"    16r0000 " invalid " 
                   "16r9234"    16r4E6B " <CJK> " 
                   "16r9235"    16r0000 " invalid " 
                   "16r9236"    16r0000 " invalid " 
                   "16r9237"    16r385A " <CJK> " 
                   "16r9238"    16r0000 " invalid " 
                   "16r9239"    16r0000 " invalid " 
                   "16r923A"    16r0000 " invalid " 
                   "16r923B"    16r0000 " invalid " 
                   "16r923C"    16r0000 " invalid " 
                   "16r923D"    16r0000 " invalid " 
                   "16r923E"    16r0000 " invalid " 
                   "16r923F"    16r6E6F " <CJK> " 
                   "16r9240"    16r0000 " invalid " 
                   "16r9241"    16r0000 " invalid " 
                   "16r9242"    16r0000 " invalid " 
                   "16r9243"    16r0000 " invalid " 
                   "16r9244"    16r4534 " <CJK> " 
                   "16r9245"    16r6E6A " <CJK> " 
                   "16r9246"    16r0000 " invalid " 
                   "16r9247"    16r0000 " invalid " 
                   "16r9248"    16r6E6D " <CJK> " 
                   "16r9249"    16r6E6B " <CJK> " 
                   "16r924A"    16r0000 " invalid " 
                   "16r924B"    16r6E70 " <CJK> " 
                   "16r924C"    16r0000 " invalid " 
                   "16r924D"    16r0000 " invalid " 
                   "16r924E"    16r0000 " invalid " 
                   "16r924F"    16r0000 " invalid " 
                   "16r9250"    16r6E71 " <CJK> " 
                   "16r9251"    16r0000 " invalid " 
                   "16r9252"    16r0000 " invalid " 
                   "16r9253"    16r0000 " invalid " 
                   "16r9254"    16r0000 " invalid " 
                   "16r9255"    16r0000 " invalid " 
                   "16r9256"    16r0000 " invalid " 
                   "16r9257"    16r6E69 " <CJK> " 
                   "16r9258"    16r0000 " invalid " 
                   "16r9259"    16r0000 " invalid " 
                   "16r925A"    16r6E76 " <CJK> " 
                   "16r925B"    16r3174 " <CJK> " 
                   "16r925C"    16r0000 " invalid " 
                   "16r925D"    16r0000 " invalid " 
                   "16r925E"    16r6E68 " <CJK> " 
                   "16r925F"    16r0000 " invalid " 
                   "16r9260"    16r0000 " invalid " 
                   "16r9261"    16r0000 " invalid " 
                   "16r9262"    16r482D " <CJK> " 
                   "16r9263"    16r0000 " invalid " 
                   "16r9264"    16r6E6C " <CJK> " 
                   "16r9265"    16r0000 " invalid " 
                   "16r9266"    16r3E60 " <CJK> " 
                   "16r9267"    16r0000 " invalid " 
                   "16r9268"    16r0000 " invalid " 
                   "16r9269"    16r0000 " invalid " 
                   "16r926A"    16r0000 " invalid " 
                   "16r926B"    16r0000 " invalid " 
                   "16r926C"    16r0000 " invalid " 
                   "16r926D"    16r0000 " invalid " 
                   "16r926E"    16r0000 " invalid " 
                   "16r926F"    16r0000 " invalid " 
                   "16r9270"    16r0000 " invalid " 
                   "16r9271"    16r395B " <CJK> " 
                   "16r9272"    16r0000 " invalid " 
                   "16r9273"    16r0000 " invalid " 
                   "16r9274"    16r0000 " invalid " 
                   "16r9275"    16r0000 " invalid " 
                   "16r9276"    16r0000 " invalid " 
                   "16r9277"    16r0000 " invalid " 
                   "16r9278"    16r0000 " invalid " 
                   "16r9279"    16r0000 " invalid " 
                   "16r927A"    16r0000 " invalid " 
                   "16r927B"    16r0000 " invalid " 
                   "16r927C"    16r0000 " invalid " 
                   "16r927D"    16r0000 " invalid " 
                   "16r927E"    16r4B48 " <CJK> " 
                   "16r927F"    16r0000 " invalid " 
                   "16r9280"    16r3664 " <CJK> " 
                   "16r9281"    16r0000 " invalid " 
                   "16r9282"    16r0000 " invalid " 
                   "16r9283"    16r3D46 " <CJK> " 
                   "16r9284"    16r0000 " invalid " 
                   "16r9285"    16r463C " <CJK> " 
                   "16r9286"    16r0000 " invalid " 
                   "16r9287"    16r0000 " invalid " 
                   "16r9288"    16r0000 " invalid " 
                   "16r9289"    16r0000 " invalid " 
                   "16r928A"    16r0000 " invalid " 
                   "16r928B"    16r0000 " invalid " 
                   "16r928C"    16r0000 " invalid " 
                   "16r928D"    16r0000 " invalid " 
                   "16r928E"    16r0000 " invalid " 
                   "16r928F"    16r0000 " invalid " 
                   "16r9290"    16r0000 " invalid " 
                   "16r9291"    16r412D " <CJK> " 
                   "16r9292"    16r0000 " invalid " 
                   "16r9293"    16r6E74 " <CJK> " 
                   "16r9294"    16r0000 " invalid " 
                   "16r9295"    16r6E6E " <CJK> " 
                   "16r9296"    16r6E73 " <CJK> " 
                   "16r9297"    16r0000 " invalid " 
                   "16r9298"    16r4C43 " <CJK> " 
                   "16r9299"    16r0000 " invalid " 
                   "16r929A"    16r4438 " <CJK> " 
                   "16r929B"    16r6E75 " <CJK> " 
                   "16r929C"    16r6E72 " <CJK> " 
                   "16r929D"    16r0000 " invalid " 
                   "16r929E"    16r0000 " invalid " 
                   "16r929F"    16r0000 " invalid " 
                   "16r92A0"    16r0000 " invalid " 
                   "16r92A1"    16r0000 " invalid " 
                   "16r92A2"    16r0000 " invalid " 
                   "16r92A3"    16r0000 " invalid " 
                   "16r92A4"    16r0000 " invalid " 
                   "16r92A5"    16r0000 " invalid " 
                   "16r92A6"    16r0000 " invalid " 
                   "16r92A7"    16r0000 " invalid " 
                   "16r92A8"    16r0000 " invalid " 
                   "16r92A9"    16r0000 " invalid " 
                   "16r92AA"    16r0000 " invalid " 
                   "16r92AB"    16r0000 " invalid " 
                   "16r92AC"    16r0000 " invalid " 
                   "16r92AD"    16r412C " <CJK> " 
                   "16r92AE"    16r0000 " invalid " 
                   "16r92AF"    16r0000 " invalid " 
                   "16r92B0"    16r0000 " invalid " 
                   "16r92B1"    16r0000 " invalid " 
                   "16r92B2"    16r0000 " invalid " 
                   "16r92B3"    16r0000 " invalid " 
                   "16r92B4"    16r0000 " invalid " 
                   "16r92B5"    16r0000 " invalid " 
                   "16r92B6"    16r0000 " invalid " 
                   "16r92B7"    16r6E79 " <CJK> " 
                   "16r92B8"    16r0000 " invalid " 
                   "16r92B9"    16r6E78 " <CJK> " 
                   "16r92BA"    16r0000 " invalid " 
                   "16r92BB"    16r0000 " invalid " 
                   "16r92BC"    16r0000 " invalid " 
                   "16r92BD"    16r0000 " invalid " 
                   "16r92BE"    16r0000 " invalid " 
                   "16r92BF"    16r0000 " invalid " 
                   "16r92C0"    16r0000 " invalid " 
                   "16r92C1"    16r0000 " invalid " 
                   "16r92C2"    16r0000 " invalid " 
                   "16r92C3"    16r0000 " invalid " 
                   "16r92C4"    16r0000 " invalid " 
                   "16r92C5"    16r0000 " invalid " 
                   "16r92C6"    16r0000 " invalid " 
                   "16r92C7"    16r0000 " invalid " 
                   "16r92C8"    16r0000 " invalid " 
                   "16r92C9"    16r0000 " invalid " 
                   "16r92CA"    16r0000 " invalid " 
                   "16r92CB"    16r0000 " invalid " 
                   "16r92CC"    16r0000 " invalid " 
                   "16r92CD"    16r0000 " invalid " 
                   "16r92CE"    16r0000 " invalid " 
                   "16r92CF"    16r6E77 " <CJK> " 
                   "16r92D0"    16r0000 " invalid " 
                   "16r92D1"    16r0000 " invalid " 
                   "16r92D2"    16r4B2F " <CJK> " 
                   "16r92D3"    16r0000 " invalid " 
                   "16r92D4"    16r0000 " invalid " 
                   "16r92D5"    16r0000 " invalid " 
                   "16r92D6"    16r0000 " invalid " 
                   "16r92D7"    16r0000 " invalid " 
                   "16r92D8"    16r0000 " invalid " 
                   "16r92D9"    16r0000 " invalid " 
                   "16r92DA"    16r0000 " invalid " 
                   "16r92DB"    16r0000 " invalid " 
                   "16r92DC"    16r0000 " invalid " 
                   "16r92DD"    16r0000 " invalid " 
                   "16r92DE"    16r0000 " invalid " 
                   "16r92DF"    16r0000 " invalid " 
                   "16r92E0"    16r0000 " invalid " 
                   "16r92E1"    16r0000 " invalid " 
                   "16r92E2"    16r0000 " invalid " 
                   "16r92E3"    16r0000 " invalid " 
                   "16r92E4"    16r3D7B " <CJK> " 
                   "16r92E5"    16r0000 " invalid " 
                   "16r92E6"    16r0000 " invalid " 
                   "16r92E7"    16r0000 " invalid " 
                   "16r92E8"    16r0000 " invalid " 
                   "16r92E9"    16r6E7A " <CJK> " 
                   "16r92EA"    16r4A5F " <CJK> " 
                   "16r92EB"    16r0000 " invalid " 
                   "16r92EC"    16r0000 " invalid " 
                   "16r92ED"    16r3154 " <CJK> " 
                   "16r92EE"    16r0000 " invalid " 
                   "16r92EF"    16r0000 " invalid " 
                   "16r92F0"    16r0000 " invalid " 
                   "16r92F1"    16r0000 " invalid " 
                   "16r92F2"    16r4946 " <CJK> " 
                   "16r92F3"    16r4372 " <CJK> " 
                   "16r92F4"    16r0000 " invalid " 
                   "16r92F5"    16r0000 " invalid " 
                   "16r92F6"    16r0000 " invalid " 
                   "16r92F7"    16r0000 " invalid " 
                   "16r92F8"    16r3578 " <CJK> " 
                   "16r92F9"    16r0000 " invalid " 
                   "16r92FA"    16r6E7C " <CJK> " 
                   "16r92FB"    16r0000 " invalid " 
                   "16r92FC"    16r395D " <CJK> " 
                   "16r92FD"    16r0000 " invalid " 
                   "16r92FE"    16r0000 " invalid " 
                   "16r92FF"    16r0000 " invalid " 
                   "16r9300"    16r0000 " invalid " 
                   "16r9301"    16r0000 " invalid " 
                   "16r9302"    16r0000 " invalid " 
                   "16r9303"    16r0000 " invalid " 
                   "16r9304"    16r0000 " invalid " 
                   "16r9305"    16r0000 " invalid " 
                   "16r9306"    16r3B2C " <CJK> " 
                   "16r9307"    16r0000 " invalid " 
                   "16r9308"    16r0000 " invalid " 
                   "16r9309"    16r0000 " invalid " 
                   "16r930A"    16r0000 " invalid " 
                   "16r930B"    16r0000 " invalid " 
                   "16r930C"    16r0000 " invalid " 
                   "16r930D"    16r0000 " invalid " 
                   "16r930E"    16r0000 " invalid " 
                   "16r930F"    16r6E7B " <CJK> " 
                   "16r9310"    16r3F6D " <CJK> " 
                   "16r9311"    16r0000 " invalid " 
                   "16r9312"    16r0000 " invalid " 
                   "16r9313"    16r0000 " invalid " 
                   "16r9314"    16r0000 " invalid " 
                   "16r9315"    16r0000 " invalid " 
                   "16r9316"    16r0000 " invalid " 
                   "16r9317"    16r0000 " invalid " 
                   "16r9318"    16r3F6E " <CJK> " 
                   "16r9319"    16r6F21 " <CJK> " 
                   "16r931A"    16r6F23 " <CJK> " 
                   "16r931B"    16r0000 " invalid " 
                   "16r931C"    16r0000 " invalid " 
                   "16r931D"    16r0000 " invalid " 
                   "16r931E"    16r0000 " invalid " 
                   "16r931F"    16r0000 " invalid " 
                   "16r9320"    16r3E7B " <CJK> " 
                   "16r9321"    16r0000 " invalid " 
                   "16r9322"    16r6F22 " <CJK> " 
                   "16r9323"    16r6F24 " <CJK> " 
                   "16r9324"    16r0000 " invalid " 
                   "16r9325"    16r0000 " invalid " 
                   "16r9326"    16r3653 " <CJK> " 
                   "16r9327"    16r0000 " invalid " 
                   "16r9328"    16r4945 " <CJK> " 
                   "16r9329"    16r0000 " invalid " 
                   "16r932A"    16r0000 " invalid " 
                   "16r932B"    16r3C62 " <CJK> " 
                   "16r932C"    16r4F23 " <CJK> " 
                   "16r932D"    16r0000 " invalid " 
                   "16r932E"    16r6E7E " <CJK> " 
                   "16r932F"    16r3A78 " <CJK> " 
                   "16r9330"    16r0000 " invalid " 
                   "16r9331"    16r0000 " invalid " 
                   "16r9332"    16r4F3F " <CJK> " 
                   "16r9333"    16r0000 " invalid " 
                   "16r9334"    16r0000 " invalid " 
                   "16r9335"    16r6F26 " <CJK> " 
                   "16r9336"    16r0000 " invalid " 
                   "16r9337"    16r0000 " invalid " 
                   "16r9338"    16r0000 " invalid " 
                   "16r9339"    16r0000 " invalid " 
                   "16r933A"    16r6F25 " <CJK> " 
                   "16r933B"    16r6F27 " <CJK> " 
                   "16r933C"    16r0000 " invalid " 
                   "16r933D"    16r0000 " invalid " 
                   "16r933E"    16r0000 " invalid " 
                   "16r933F"    16r0000 " invalid " 
                   "16r9340"    16r0000 " invalid " 
                   "16r9341"    16r0000 " invalid " 
                   "16r9342"    16r0000 " invalid " 
                   "16r9343"    16r0000 " invalid " 
                   "16r9344"    16r6E7D " <CJK> " 
                   "16r9345"    16r0000 " invalid " 
                   "16r9346"    16r0000 " invalid " 
                   "16r9347"    16r0000 " invalid " 
                   "16r9348"    16r0000 " invalid " 
                   "16r9349"    16r0000 " invalid " 
                   "16r934A"    16r0000 " invalid " 
                   "16r934B"    16r4669 " <CJK> " 
                   "16r934C"    16r0000 " invalid " 
                   "16r934D"    16r4555 " <CJK> " 
                   "16r934E"    16r0000 " invalid " 
                   "16r934F"    16r0000 " invalid " 
                   "16r9350"    16r0000 " invalid " 
                   "16r9351"    16r0000 " invalid " 
                   "16r9352"    16r0000 " invalid " 
                   "16r9353"    16r0000 " invalid " 
                   "16r9354"    16r4457 " <CJK> " 
                   "16r9355"    16r0000 " invalid " 
                   "16r9356"    16r6F2C " <CJK> " 
                   "16r9357"    16r0000 " invalid " 
                   "16r9358"    16r0000 " invalid " 
                   "16r9359"    16r0000 " invalid " 
                   "16r935A"    16r0000 " invalid " 
                   "16r935B"    16r4343 " <CJK> " 
                   "16r935C"    16r6F28 " <CJK> " 
                   "16r935D"    16r0000 " invalid " 
                   "16r935E"    16r0000 " invalid " 
                   "16r935F"    16r0000 " invalid " 
                   "16r9360"    16r6F29 " <CJK> " 
                   "16r9361"    16r0000 " invalid " 
                   "16r9362"    16r0000 " invalid " 
                   "16r9363"    16r0000 " invalid " 
                   "16r9364"    16r0000 " invalid " 
                   "16r9365"    16r0000 " invalid " 
                   "16r9366"    16r0000 " invalid " 
                   "16r9367"    16r0000 " invalid " 
                   "16r9368"    16r0000 " invalid " 
                   "16r9369"    16r0000 " invalid " 
                   "16r936A"    16r0000 " invalid " 
                   "16r936B"    16r0000 " invalid " 
                   "16r936C"    16r372D " <CJK> " 
                   "16r936D"    16r0000 " invalid " 
                   "16r936E"    16r6F2B " <CJK> " 
                   "16r936F"    16r0000 " invalid " 
                   "16r9370"    16r0000 " invalid " 
                   "16r9371"    16r0000 " invalid " 
                   "16r9372"    16r0000 " invalid " 
                   "16r9373"    16r0000 " invalid " 
                   "16r9374"    16r0000 " invalid " 
                   "16r9375"    16r3830 " <CJK> " 
                   "16r9376"    16r0000 " invalid " 
                   "16r9377"    16r0000 " invalid " 
                   "16r9378"    16r0000 " invalid " 
                   "16r9379"    16r0000 " invalid " 
                   "16r937A"    16r0000 " invalid " 
                   "16r937B"    16r0000 " invalid " 
                   "16r937C"    16r6F2A " <CJK> " 
                   "16r937D"    16r0000 " invalid " 
                   "16r937E"    16r3E61 " <CJK> " 
                   "16r937F"    16r0000 " invalid " 
                   "16r9380"    16r0000 " invalid " 
                   "16r9381"    16r0000 " invalid " 
                   "16r9382"    16r0000 " invalid " 
                   "16r9383"    16r0000 " invalid " 
                   "16r9384"    16r0000 " invalid " 
                   "16r9385"    16r0000 " invalid " 
                   "16r9386"    16r0000 " invalid " 
                   "16r9387"    16r0000 " invalid " 
                   "16r9388"    16r0000 " invalid " 
                   "16r9389"    16r0000 " invalid " 
                   "16r938A"    16r0000 " invalid " 
                   "16r938B"    16r0000 " invalid " 
                   "16r938C"    16r3379 " <CJK> " 
                   "16r938D"    16r0000 " invalid " 
                   "16r938E"    16r0000 " invalid " 
                   "16r938F"    16r0000 " invalid " 
                   "16r9390"    16r0000 " invalid " 
                   "16r9391"    16r0000 " invalid " 
                   "16r9392"    16r0000 " invalid " 
                   "16r9393"    16r0000 " invalid " 
                   "16r9394"    16r6F30 " <CJK> " 
                   "16r9395"    16r0000 " invalid " 
                   "16r9396"    16r3A3F " <CJK> " 
                   "16r9397"    16r4179 " <CJK> " 
                   "16r9398"    16r0000 " invalid " 
                   "16r9399"    16r0000 " invalid " 
                   "16r939A"    16r444A " <CJK> " 
                   "16r939B"    16r0000 " invalid " 
                   "16r939C"    16r0000 " invalid " 
                   "16r939D"    16r0000 " invalid " 
                   "16r939E"    16r0000 " invalid " 
                   "16r939F"    16r0000 " invalid " 
                   "16r93A0"    16r0000 " invalid " 
                   "16r93A1"    16r0000 " invalid " 
                   "16r93A2"    16r0000 " invalid " 
                   "16r93A3"    16r0000 " invalid " 
                   "16r93A4"    16r0000 " invalid " 
                   "16r93A5"    16r0000 " invalid " 
                   "16r93A6"    16r0000 " invalid " 
                   "16r93A7"    16r333B " <CJK> " 
                   "16r93A8"    16r0000 " invalid " 
                   "16r93A9"    16r0000 " invalid " 
                   "16r93AA"    16r0000 " invalid " 
                   "16r93AB"    16r0000 " invalid " 
                   "16r93AC"    16r6F2E " <CJK> " 
                   "16r93AD"    16r6F2F " <CJK> " 
                   "16r93AE"    16r4443 " <CJK> " 
                   "16r93AF"    16r0000 " invalid " 
                   "16r93B0"    16r6F2D " <CJK> " 
                   "16r93B1"    16r0000 " invalid " 
                   "16r93B2"    16r0000 " invalid " 
                   "16r93B3"    16r0000 " invalid " 
                   "16r93B4"    16r0000 " invalid " 
                   "16r93B5"    16r0000 " invalid " 
                   "16r93B6"    16r0000 " invalid " 
                   "16r93B7"    16r0000 " invalid " 
                   "16r93B8"    16r0000 " invalid " 
                   "16r93B9"    16r6F31 " <CJK> " 
                   "16r93BA"    16r0000 " invalid " 
                   "16r93BB"    16r0000 " invalid " 
                   "16r93BC"    16r0000 " invalid " 
                   "16r93BD"    16r0000 " invalid " 
                   "16r93BE"    16r0000 " invalid " 
                   "16r93BF"    16r0000 " invalid " 
                   "16r93C0"    16r0000 " invalid " 
                   "16r93C1"    16r0000 " invalid " 
                   "16r93C2"    16r0000 " invalid " 
                   "16r93C3"    16r6F37 " <CJK> " 
                   "16r93C4"    16r0000 " invalid " 
                   "16r93C5"    16r0000 " invalid " 
                   "16r93C6"    16r0000 " invalid " 
                   "16r93C7"    16r0000 " invalid " 
                   "16r93C8"    16r6F3A " <CJK> " 
                   "16r93C9"    16r0000 " invalid " 
                   "16r93CA"    16r0000 " invalid " 
                   "16r93CB"    16r0000 " invalid " 
                   "16r93CC"    16r0000 " invalid " 
                   "16r93CD"    16r0000 " invalid " 
                   "16r93CE"    16r0000 " invalid " 
                   "16r93CF"    16r0000 " invalid " 
                   "16r93D0"    16r6F39 " <CJK> " 
                   "16r93D1"    16r452D " <CJK> " 
                   "16r93D2"    16r0000 " invalid " 
                   "16r93D3"    16r0000 " invalid " 
                   "16r93D4"    16r0000 " invalid " 
                   "16r93D5"    16r0000 " invalid " 
                   "16r93D6"    16r6F32 " <CJK> " 
                   "16r93D7"    16r6F33 " <CJK> " 
                   "16r93D8"    16r6F36 " <CJK> " 
                   "16r93D9"    16r0000 " invalid " 
                   "16r93DA"    16r0000 " invalid " 
                   "16r93DB"    16r0000 " invalid " 
                   "16r93DC"    16r0000 " invalid " 
                   "16r93DD"    16r6F38 " <CJK> " 
                   "16r93DE"    16r0000 " invalid " 
                   "16r93DF"    16r0000 " invalid " 
                   "16r93E0"    16r0000 " invalid " 
                   "16r93E1"    16r3640 " <CJK> " 
                   "16r93E2"    16r0000 " invalid " 
                   "16r93E3"    16r0000 " invalid " 
                   "16r93E4"    16r6F3B " <CJK> " 
                   "16r93E5"    16r6F35 " <CJK> " 
                   "16r93E6"    16r0000 " invalid " 
                   "16r93E7"    16r0000 " invalid " 
                   "16r93E8"    16r6F34 " <CJK> " 
                   "16r93E9"    16r0000 " invalid " 
                   "16r93EA"    16r0000 " invalid " 
                   "16r93EB"    16r0000 " invalid " 
                   "16r93EC"    16r0000 " invalid " 
                   "16r93ED"    16r0000 " invalid " 
                   "16r93EE"    16r0000 " invalid " 
                   "16r93EF"    16r0000 " invalid " 
                   "16r93F0"    16r0000 " invalid " 
                   "16r93F1"    16r0000 " invalid " 
                   "16r93F2"    16r0000 " invalid " 
                   "16r93F3"    16r0000 " invalid " 
                   "16r93F4"    16r0000 " invalid " 
                   "16r93F5"    16r0000 " invalid " 
                   "16r93F6"    16r0000 " invalid " 
                   "16r93F7"    16r0000 " invalid " 
                   "16r93F8"    16r0000 " invalid " 
                   "16r93F9"    16r0000 " invalid " 
                   "16r93FA"    16r0000 " invalid " 
                   "16r93FB"    16r0000 " invalid " 
                   "16r93FC"    16r0000 " invalid " 
                   "16r93FD"    16r0000 " invalid " 
                   "16r93FE"    16r0000 " invalid " 
                   "16r93FF"    16r0000 " invalid " 
                   "16r9400"    16r0000 " invalid " 
                   "16r9401"    16r0000 " invalid " 
                   "16r9402"    16r0000 " invalid " 
                   "16r9403"    16r6F3F " <CJK> " 
                   "16r9404"    16r0000 " invalid " 
                   "16r9405"    16r0000 " invalid " 
                   "16r9406"    16r0000 " invalid " 
                   "16r9407"    16r6F40 " <CJK> " 
                   "16r9408"    16r0000 " invalid " 
                   "16r9409"    16r0000 " invalid " 
                   "16r940A"    16r0000 " invalid " 
                   "16r940B"    16r0000 " invalid " 
                   "16r940C"    16r0000 " invalid " 
                   "16r940D"    16r0000 " invalid " 
                   "16r940E"    16r0000 " invalid " 
                   "16r940F"    16r0000 " invalid " 
                   "16r9410"    16r6F41 " <CJK> " 
                   "16r9411"    16r0000 " invalid " 
                   "16r9412"    16r0000 " invalid " 
                   "16r9413"    16r6F3E " <CJK> " 
                   "16r9414"    16r6F3D " <CJK> " 
                   "16r9415"    16r0000 " invalid " 
                   "16r9416"    16r0000 " invalid " 
                   "16r9417"    16r0000 " invalid " 
                   "16r9418"    16r3E62 " <CJK> " 
                   "16r9419"    16r462A " <CJK> " 
                   "16r941A"    16r6F3C " <CJK> " 
                   "16r941B"    16r0000 " invalid " 
                   "16r941C"    16r0000 " invalid " 
                   "16r941D"    16r0000 " invalid " 
                   "16r941E"    16r0000 " invalid " 
                   "16r941F"    16r0000 " invalid " 
                   "16r9420"    16r0000 " invalid " 
                   "16r9421"    16r6F45 " <CJK> " 
                   "16r9422"    16r0000 " invalid " 
                   "16r9423"    16r0000 " invalid " 
                   "16r9424"    16r0000 " invalid " 
                   "16r9425"    16r0000 " invalid " 
                   "16r9426"    16r0000 " invalid " 
                   "16r9427"    16r0000 " invalid " 
                   "16r9428"    16r0000 " invalid " 
                   "16r9429"    16r0000 " invalid " 
                   "16r942A"    16r0000 " invalid " 
                   "16r942B"    16r6F43 " <CJK> " 
                   "16r942C"    16r0000 " invalid " 
                   "16r942D"    16r0000 " invalid " 
                   "16r942E"    16r0000 " invalid " 
                   "16r942F"    16r0000 " invalid " 
                   "16r9430"    16r0000 " invalid " 
                   "16r9431"    16r0000 " invalid " 
                   "16r9432"    16r0000 " invalid " 
                   "16r9433"    16r0000 " invalid " 
                   "16r9434"    16r0000 " invalid " 
                   "16r9435"    16r6F44 " <CJK> " 
                   "16r9436"    16r6F42 " <CJK> " 
                   "16r9437"    16r0000 " invalid " 
                   "16r9438"    16r4278 " <CJK> " 
                   "16r9439"    16r0000 " invalid " 
                   "16r943A"    16r6F46 " <CJK> " 
                   "16r943B"    16r0000 " invalid " 
                   "16r943C"    16r0000 " invalid " 
                   "16r943D"    16r0000 " invalid " 
                   "16r943E"    16r0000 " invalid " 
                   "16r943F"    16r0000 " invalid " 
                   "16r9440"    16r0000 " invalid " 
                   "16r9441"    16r6F47 " <CJK> " 
                   "16r9442"    16r0000 " invalid " 
                   "16r9443"    16r0000 " invalid " 
                   "16r9444"    16r6F49 " <CJK> " 
                   "16r9445"    16r0000 " invalid " 
                   "16r9446"    16r0000 " invalid " 
                   "16r9447"    16r0000 " invalid " 
                   "16r9448"    16r0000 " invalid " 
                   "16r9449"    16r0000 " invalid " 
                   "16r944A"    16r0000 " invalid " 
                   "16r944B"    16r0000 " invalid " 
                   "16r944C"    16r0000 " invalid " 
                   "16r944D"    16r0000 " invalid " 
                   "16r944E"    16r0000 " invalid " 
                   "16r944F"    16r0000 " invalid " 
                   "16r9450"    16r0000 " invalid " 
                   "16r9451"    16r3455 " <CJK> " 
                   "16r9452"    16r6F48 " <CJK> " 
                   "16r9453"    16r4C7A " <CJK> " 
                   "16r9454"    16r0000 " invalid " 
                   "16r9455"    16r0000 " invalid " 
                   "16r9456"    16r0000 " invalid " 
                   "16r9457"    16r0000 " invalid " 
                   "16r9458"    16r0000 " invalid " 
                   "16r9459"    16r0000 " invalid " 
                   "16r945A"    16r6F54 " <CJK> " 
                   "16r945B"    16r6F4A " <CJK> " 
                   "16r945C"    16r0000 " invalid " 
                   "16r945D"    16r0000 " invalid " 
                   "16r945E"    16r6F4D " <CJK> " 
                   "16r945F"    16r0000 " invalid " 
                   "16r9460"    16r6F4B " <CJK> " 
                   "16r9461"    16r0000 " invalid " 
                   "16r9462"    16r6F4C " <CJK> " 
                   "16r9463"    16r0000 " invalid " 
                   "16r9464"    16r0000 " invalid " 
                   "16r9465"    16r0000 " invalid " 
                   "16r9466"    16r0000 " invalid " 
                   "16r9467"    16r0000 " invalid " 
                   "16r9468"    16r0000 " invalid " 
                   "16r9469"    16r0000 " invalid " 
                   "16r946A"    16r6F4E " <CJK> " 
                   "16r946B"    16r0000 " invalid " 
                   "16r946C"    16r0000 " invalid " 
                   "16r946D"    16r0000 " invalid " 
                   "16r946E"    16r0000 " invalid " 
                   "16r946F"    16r0000 " invalid " 
                   "16r9470"    16r6F50 " <CJK> " 
                   "16r9471"    16r0000 " invalid " 
                   "16r9472"    16r0000 " invalid " 
                   "16r9473"    16r0000 " invalid " 
                   "16r9474"    16r0000 " invalid " 
                   "16r9475"    16r6F51 " <CJK> " 
                   "16r9476"    16r0000 " invalid " 
                   "16r9477"    16r6F52 " <CJK> " 
                   "16r9478"    16r0000 " invalid " 
                   "16r9479"    16r0000 " invalid " 
                   "16r947A"    16r0000 " invalid " 
                   "16r947B"    16r0000 " invalid " 
                   "16r947C"    16r6F55 " <CJK> " 
                   "16r947D"    16r6F53 " <CJK> " 
                   "16r947E"    16r6F56 " <CJK> " 
                   "16r947F"    16r6F58 " <CJK> " 
                   "16r9480"    16r0000 " invalid " 
                   "16r9481"    16r6F57 " <CJK> " 
                   ) at:(unicode - 16r8F9A).
                t == 0 ifFalse:[^ t].
                ^ self encodingError
            ] value.
        ].
        unicode <= 16r9576 ifTrue:[
            ^ self encodingError.
        ].
        unicode <= 16r9C78 ifTrue:[
            unicode <= 16r9957 ifTrue:[
                unicode <= 16r95E5 ifTrue:[
                    [
                        |t|
                        t := #(
                           "16r9577"    16r4439 " <CJK> " 
                           "16r9578"    16r0000 " invalid " 
                           "16r9579"    16r0000 " invalid " 
                           "16r957A"    16r0000 " invalid " 
                           "16r957B"    16r0000 " invalid " 
                           "16r957C"    16r0000 " invalid " 
                           "16r957D"    16r0000 " invalid " 
                           "16r957E"    16r0000 " invalid " 
                           "16r957F"    16r0000 " invalid " 
                           "16r9580"    16r4C67 " <CJK> " 
                           "16r9581"    16r0000 " invalid " 
                           "16r9582"    16r6F59 " <CJK> " 
                           "16r9583"    16r412E " <CJK> " 
                           "16r9584"    16r0000 " invalid " 
                           "16r9585"    16r0000 " invalid " 
                           "16r9586"    16r0000 " invalid " 
                           "16r9587"    16r6F5A " <CJK> " 
                           "16r9588"    16r0000 " invalid " 
                           "16r9589"    16r4A44 " <CJK> " 
                           "16r958A"    16r6F5B " <CJK> " 
                           "16r958B"    16r332B " <CJK> " 
                           "16r958C"    16r0000 " invalid " 
                           "16r958D"    16r0000 " invalid " 
                           "16r958E"    16r0000 " invalid " 
                           "16r958F"    16r313C " <CJK> " 
                           "16r9590"    16r0000 " invalid " 
                           "16r9591"    16r3457 " <CJK> " 
                           "16r9592"    16r0000 " invalid " 
                           "16r9593"    16r3456 " <CJK> " 
                           "16r9594"    16r6F5C " <CJK> " 
                           "16r9595"    16r0000 " invalid " 
                           "16r9596"    16r6F5D " <CJK> " 
                           "16r9597"    16r0000 " invalid " 
                           "16r9598"    16r6F5E " <CJK> " 
                           "16r9599"    16r6F5F " <CJK> " 
                           "16r959A"    16r0000 " invalid " 
                           "16r959B"    16r0000 " invalid " 
                           "16r959C"    16r0000 " invalid " 
                           "16r959D"    16r0000 " invalid " 
                           "16r959E"    16r0000 " invalid " 
                           "16r959F"    16r0000 " invalid " 
                           "16r95A0"    16r6F60 " <CJK> " 
                           "16r95A1"    16r0000 " invalid " 
                           "16r95A2"    16r3458 " <CJK> " 
                           "16r95A3"    16r3355 " <CJK> " 
                           "16r95A4"    16r395E " <CJK> " 
                           "16r95A5"    16r4836 " <CJK> " 
                           "16r95A6"    16r0000 " invalid " 
                           "16r95A7"    16r6F62 " <CJK> " 
                           "16r95A8"    16r6F61 " <CJK> " 
                           "16r95A9"    16r0000 " invalid " 
                           "16r95AA"    16r0000 " invalid " 
                           "16r95AB"    16r0000 " invalid " 
                           "16r95AC"    16r0000 " invalid " 
                           "16r95AD"    16r6F63 " <CJK> " 
                           "16r95AE"    16r0000 " invalid " 
                           "16r95AF"    16r0000 " invalid " 
                           "16r95B0"    16r0000 " invalid " 
                           "16r95B1"    16r0000 " invalid " 
                           "16r95B2"    16r315C " <CJK> " 
                           "16r95B3"    16r0000 " invalid " 
                           "16r95B4"    16r0000 " invalid " 
                           "16r95B5"    16r0000 " invalid " 
                           "16r95B6"    16r0000 " invalid " 
                           "16r95B7"    16r0000 " invalid " 
                           "16r95B8"    16r0000 " invalid " 
                           "16r95B9"    16r6F66 " <CJK> " 
                           "16r95BA"    16r0000 " invalid " 
                           "16r95BB"    16r6F65 " <CJK> " 
                           "16r95BC"    16r6F64 " <CJK> " 
                           "16r95BD"    16r0000 " invalid " 
                           "16r95BE"    16r6F67 " <CJK> " 
                           "16r95BF"    16r0000 " invalid " 
                           "16r95C0"    16r0000 " invalid " 
                           "16r95C1"    16r0000 " invalid " 
                           "16r95C2"    16r0000 " invalid " 
                           "16r95C3"    16r6F6A " <CJK> " 
                           "16r95C4"    16r0000 " invalid " 
                           "16r95C5"    16r0000 " invalid " 
                           "16r95C6"    16r0000 " invalid " 
                           "16r95C7"    16r3047 " <CJK> " 
                           "16r95C8"    16r0000 " invalid " 
                           "16r95C9"    16r0000 " invalid " 
                           "16r95CA"    16r6F68 " <CJK> " 
                           "16r95CB"    16r0000 " invalid " 
                           "16r95CC"    16r6F6C " <CJK> " 
                           "16r95CD"    16r6F6B " <CJK> " 
                           "16r95CE"    16r0000 " invalid " 
                           "16r95CF"    16r0000 " invalid " 
                           "16r95D0"    16r0000 " invalid " 
                           "16r95D1"    16r0000 " invalid " 
                           "16r95D2"    16r0000 " invalid " 
                           "16r95D3"    16r0000 " invalid " 
                           "16r95D4"    16r6F6E " <CJK> " 
                           "16r95D5"    16r6F6D " <CJK> " 
                           "16r95D6"    16r6F6F " <CJK> " 
                           "16r95D7"    16r0000 " invalid " 
                           "16r95D8"    16r462E " <CJK> " 
                           "16r95D9"    16r0000 " invalid " 
                           "16r95DA"    16r0000 " invalid " 
                           "16r95DB"    16r0000 " invalid " 
                           "16r95DC"    16r6F70 " <CJK> " 
                           "16r95DD"    16r0000 " invalid " 
                           "16r95DE"    16r0000 " invalid " 
                           "16r95DF"    16r0000 " invalid " 
                           "16r95E0"    16r0000 " invalid " 
                           "16r95E1"    16r6F71 " <CJK> " 
                           "16r95E2"    16r6F73 " <CJK> " 
                           "16r95E3"    16r0000 " invalid " 
                           "16r95E4"    16r0000 " invalid " 
                           "16r95E5"    16r6F72 " <CJK> " 
                           ) at:(unicode - 16r9576).
                        t == 0 ifFalse:[^ t].
                        ^ self encodingError
                    ] value.
                ].
                unicode <= 16r961B ifTrue:[
                    ^ self encodingError.
                ].
                unicode <= 16r9874 ifTrue:[
                    [
                        |t|
                        t := #(
                           "16r961C"    16r496C " <CJK> " 
                           "16r961D"    16r0000 " invalid " 
                           "16r961E"    16r0000 " invalid " 
                           "16r961F"    16r0000 " invalid " 
                           "16r9620"    16r0000 " invalid " 
                           "16r9621"    16r6F74 " <CJK> " 
                           "16r9622"    16r0000 " invalid " 
                           "16r9623"    16r0000 " invalid " 
                           "16r9624"    16r0000 " invalid " 
                           "16r9625"    16r0000 " invalid " 
                           "16r9626"    16r0000 " invalid " 
                           "16r9627"    16r0000 " invalid " 
                           "16r9628"    16r6F75 " <CJK> " 
                           "16r9629"    16r0000 " invalid " 
                           "16r962A"    16r3A65 " <CJK> " 
                           "16r962B"    16r0000 " invalid " 
                           "16r962C"    16r0000 " invalid " 
                           "16r962D"    16r0000 " invalid " 
                           "16r962E"    16r6F76 " <CJK> " 
                           "16r962F"    16r6F77 " <CJK> " 
                           "16r9630"    16r0000 " invalid " 
                           "16r9631"    16r0000 " invalid " 
                           "16r9632"    16r4B49 " <CJK> " 
                           "16r9633"    16r0000 " invalid " 
                           "16r9634"    16r0000 " invalid " 
                           "16r9635"    16r0000 " invalid " 
                           "16r9636"    16r0000 " invalid " 
                           "16r9637"    16r0000 " invalid " 
                           "16r9638"    16r0000 " invalid " 
                           "16r9639"    16r0000 " invalid " 
                           "16r963A"    16r0000 " invalid " 
                           "16r963B"    16r414B " <CJK> " 
                           "16r963C"    16r0000 " invalid " 
                           "16r963D"    16r0000 " invalid " 
                           "16r963E"    16r0000 " invalid " 
                           "16r963F"    16r3024 " <CJK> " 
                           "16r9640"    16r424B " <CJK> " 
                           "16r9641"    16r0000 " invalid " 
                           "16r9642"    16r6F78 " <CJK> " 
                           "16r9643"    16r0000 " invalid " 
                           "16r9644"    16r496D " <CJK> " 
                           "16r9645"    16r0000 " invalid " 
                           "16r9646"    16r0000 " invalid " 
                           "16r9647"    16r0000 " invalid " 
                           "16r9648"    16r0000 " invalid " 
                           "16r9649"    16r0000 " invalid " 
                           "16r964A"    16r0000 " invalid " 
                           "16r964B"    16r6F7B " <CJK> " 
                           "16r964C"    16r6F79 " <CJK> " 
                           "16r964D"    16r395F " <CJK> " 
                           "16r964E"    16r0000 " invalid " 
                           "16r964F"    16r6F7A " <CJK> " 
                           "16r9650"    16r3842 " <CJK> " 
                           "16r9651"    16r0000 " invalid " 
                           "16r9652"    16r0000 " invalid " 
                           "16r9653"    16r0000 " invalid " 
                           "16r9654"    16r0000 " invalid " 
                           "16r9655"    16r0000 " invalid " 
                           "16r9656"    16r0000 " invalid " 
                           "16r9657"    16r0000 " invalid " 
                           "16r9658"    16r0000 " invalid " 
                           "16r9659"    16r0000 " invalid " 
                           "16r965A"    16r0000 " invalid " 
                           "16r965B"    16r4A45 " <CJK> " 
                           "16r965C"    16r6F7D " <CJK> " 
                           "16r965D"    16r7021 " <CJK> " 
                           "16r965E"    16r6F7E " <CJK> " 
                           "16r965F"    16r7022 " <CJK> " 
                           "16r9660"    16r0000 " invalid " 
                           "16r9661"    16r0000 " invalid " 
                           "16r9662"    16r3121 " <CJK> " 
                           "16r9663"    16r3F58 " <CJK> " 
                           "16r9664"    16r3D7C " <CJK> " 
                           "16r9665"    16r3459 " <CJK> " 
                           "16r9666"    16r7023 " <CJK> " 
                           "16r9667"    16r0000 " invalid " 
                           "16r9668"    16r0000 " invalid " 
                           "16r9669"    16r0000 " invalid " 
                           "16r966A"    16r4766 " <CJK> " 
                           "16r966B"    16r0000 " invalid " 
                           "16r966C"    16r7025 " <CJK> " 
                           "16r966D"    16r0000 " invalid " 
                           "16r966E"    16r0000 " invalid " 
                           "16r966F"    16r0000 " invalid " 
                           "16r9670"    16r3122 " <CJK> " 
                           "16r9671"    16r0000 " invalid " 
                           "16r9672"    16r7024 " <CJK> " 
                           "16r9673"    16r4444 " <CJK> " 
                           "16r9674"    16r0000 " invalid " 
                           "16r9675"    16r4E4D " <CJK> " 
                           "16r9676"    16r462B " <CJK> " 
                           "16r9677"    16r6F7C " <CJK> " 
                           "16r9678"    16r4E26 " <CJK> " 
                           "16r9679"    16r0000 " invalid " 
                           "16r967A"    16r3831 " <CJK> " 
                           "16r967B"    16r0000 " invalid " 
                           "16r967C"    16r0000 " invalid " 
                           "16r967D"    16r4D5B " <CJK> " 
                           "16r967E"    16r0000 " invalid " 
                           "16r967F"    16r0000 " invalid " 
                           "16r9680"    16r0000 " invalid " 
                           "16r9681"    16r0000 " invalid " 
                           "16r9682"    16r0000 " invalid " 
                           "16r9683"    16r0000 " invalid " 
                           "16r9684"    16r0000 " invalid " 
                           "16r9685"    16r3679 " <CJK> " 
                           "16r9686"    16r4E34 " <CJK> " 
                           "16r9687"    16r0000 " invalid " 
                           "16r9688"    16r3728 " <CJK> " 
                           "16r9689"    16r0000 " invalid " 
                           "16r968A"    16r4262 " <CJK> " 
                           "16r968B"    16r6721 " <CJK> " 
                           "16r968C"    16r0000 " invalid " 
                           "16r968D"    16r7026 " <CJK> " 
                           "16r968E"    16r332C " <CJK> " 
                           "16r968F"    16r3F6F " <CJK> " 
                           "16r9690"    16r0000 " invalid " 
                           "16r9691"    16r0000 " invalid " 
                           "16r9692"    16r0000 " invalid " 
                           "16r9693"    16r0000 " invalid " 
                           "16r9694"    16r3356 " <CJK> " 
                           "16r9695"    16r7028 " <CJK> " 
                           "16r9696"    16r0000 " invalid " 
                           "16r9697"    16r7029 " <CJK> " 
                           "16r9698"    16r7027 " <CJK> " 
                           "16r9699"    16r3764 " <CJK> " 
                           "16r969A"    16r0000 " invalid " 
                           "16r969B"    16r3A5D " <CJK> " 
                           "16r969C"    16r3E63 " <CJK> " 
                           "16r969D"    16r0000 " invalid " 
                           "16r969E"    16r0000 " invalid " 
                           "16r969F"    16r0000 " invalid " 
                           "16r96A0"    16r3123 " <CJK> " 
                           "16r96A1"    16r0000 " invalid " 
                           "16r96A2"    16r0000 " invalid " 
                           "16r96A3"    16r4E59 " <CJK> " 
                           "16r96A4"    16r0000 " invalid " 
                           "16r96A5"    16r0000 " invalid " 
                           "16r96A6"    16r0000 " invalid " 
                           "16r96A7"    16r702B " <CJK> " 
                           "16r96A8"    16r6E2E " <CJK> " 
                           "16r96A9"    16r0000 " invalid " 
                           "16r96AA"    16r702A " <CJK> " 
                           "16r96AB"    16r0000 " invalid " 
                           "16r96AC"    16r0000 " invalid " 
                           "16r96AD"    16r0000 " invalid " 
                           "16r96AE"    16r0000 " invalid " 
                           "16r96AF"    16r0000 " invalid " 
                           "16r96B0"    16r702E " <CJK> " 
                           "16r96B1"    16r702C " <CJK> " 
                           "16r96B2"    16r702D " <CJK> " 
                           "16r96B3"    16r0000 " invalid " 
                           "16r96B4"    16r702F " <CJK> " 
                           "16r96B5"    16r0000 " invalid " 
                           "16r96B6"    16r7030 " <CJK> " 
                           "16r96B7"    16r4E6C " <CJK> " 
                           "16r96B8"    16r7031 " <CJK> " 
                           "16r96B9"    16r7032 " <CJK> " 
                           "16r96BA"    16r0000 " invalid " 
                           "16r96BB"    16r4049 " <CJK> " 
                           "16r96BC"    16r483B " <CJK> " 
                           "16r96BD"    16r0000 " invalid " 
                           "16r96BE"    16r0000 " invalid " 
                           "16r96BF"    16r0000 " invalid " 
                           "16r96C0"    16r3F7D " <CJK> " 
                           "16r96C1"    16r3467 " <CJK> " 
                           "16r96C2"    16r0000 " invalid " 
                           "16r96C3"    16r0000 " invalid " 
                           "16r96C4"    16r4D3A " <CJK> " 
                           "16r96C5"    16r326D " <CJK> " 
                           "16r96C6"    16r3D38 " <CJK> " 
                           "16r96C7"    16r385B " <CJK> " 
                           "16r96C8"    16r0000 " invalid " 
                           "16r96C9"    16r7035 " <CJK> " 
                           "16r96CA"    16r0000 " invalid " 
                           "16r96CB"    16r7034 " <CJK> " 
                           "16r96CC"    16r3B73 " <CJK> " 
                           "16r96CD"    16r7036 " <CJK> " 
                           "16r96CE"    16r7033 " <CJK> " 
                           "16r96CF"    16r0000 " invalid " 
                           "16r96D0"    16r0000 " invalid " 
                           "16r96D1"    16r3B28 " <CJK> " 
                           "16r96D2"    16r0000 " invalid " 
                           "16r96D3"    16r0000 " invalid " 
                           "16r96D4"    16r0000 " invalid " 
                           "16r96D5"    16r703A " <CJK> " 
                           "16r96D6"    16r6A2D " <CJK> " 
                           "16r96D7"    16r0000 " invalid " 
                           "16r96D8"    16r0000 " invalid " 
                           "16r96D9"    16r5256 " <CJK> " 
                           "16r96DA"    16r0000 " invalid " 
                           "16r96DB"    16r3F77 " <CJK> " 
                           "16r96DC"    16r7038 " <CJK> " 
                           "16r96DD"    16r0000 " invalid " 
                           "16r96DE"    16r0000 " invalid " 
                           "16r96DF"    16r0000 " invalid " 
                           "16r96E0"    16r0000 " invalid " 
                           "16r96E1"    16r0000 " invalid " 
                           "16r96E2"    16r4E25 " <CJK> " 
                           "16r96E3"    16r4671 " <CJK> " 
                           "16r96E4"    16r0000 " invalid " 
                           "16r96E5"    16r0000 " invalid " 
                           "16r96E6"    16r0000 " invalid " 
                           "16r96E7"    16r0000 " invalid " 
                           "16r96E8"    16r312B " <CJK> " 
                           "16r96E9"    16r0000 " invalid " 
                           "16r96EA"    16r4063 " <CJK> " 
                           "16r96EB"    16r3C36 " <CJK> " 
                           "16r96EC"    16r0000 " invalid " 
                           "16r96ED"    16r0000 " invalid " 
                           "16r96EE"    16r0000 " invalid " 
                           "16r96EF"    16r0000 " invalid " 
                           "16r96F0"    16r4A37 " <CJK> " 
                           "16r96F1"    16r0000 " invalid " 
                           "16r96F2"    16r3140 " <CJK> " 
                           "16r96F3"    16r0000 " invalid " 
                           "16r96F4"    16r0000 " invalid " 
                           "16r96F5"    16r0000 " invalid " 
                           "16r96F6"    16r4E6D " <CJK> " 
                           "16r96F7"    16r4D6B " <CJK> " 
                           "16r96F8"    16r0000 " invalid " 
                           "16r96F9"    16r703B " <CJK> " 
                           "16r96FA"    16r0000 " invalid " 
                           "16r96FB"    16r4545 " <CJK> " 
                           "16r96FC"    16r0000 " invalid " 
                           "16r96FD"    16r0000 " invalid " 
                           "16r96FE"    16r0000 " invalid " 
                           "16r96FF"    16r0000 " invalid " 
                           "16r9700"    16r3C7B " <CJK> " 
                           "16r9701"    16r0000 " invalid " 
                           "16r9702"    16r0000 " invalid " 
                           "16r9703"    16r0000 " invalid " 
                           "16r9704"    16r703C " <CJK> " 
                           "16r9705"    16r0000 " invalid " 
                           "16r9706"    16r703D " <CJK> " 
                           "16r9707"    16r3F4C " <CJK> " 
                           "16r9708"    16r703E " <CJK> " 
                           "16r9709"    16r0000 " invalid " 
                           "16r970A"    16r4E6E " <CJK> " 
                           "16r970B"    16r0000 " invalid " 
                           "16r970C"    16r0000 " invalid " 
                           "16r970D"    16r7039 " <CJK> " 
                           "16r970E"    16r7040 " <CJK> " 
                           "16r970F"    16r7042 " <CJK> " 
                           "16r9710"    16r0000 " invalid " 
                           "16r9711"    16r7041 " <CJK> " 
                           "16r9712"    16r0000 " invalid " 
                           "16r9713"    16r703F " <CJK> " 
                           "16r9714"    16r0000 " invalid " 
                           "16r9715"    16r0000 " invalid " 
                           "16r9716"    16r7043 " <CJK> " 
                           "16r9717"    16r0000 " invalid " 
                           "16r9718"    16r0000 " invalid " 
                           "16r9719"    16r7044 " <CJK> " 
                           "16r971A"    16r0000 " invalid " 
                           "16r971B"    16r0000 " invalid " 
                           "16r971C"    16r417A " <CJK> " 
                           "16r971D"    16r0000 " invalid " 
                           "16r971E"    16r3262 " <CJK> " 
                           "16r971F"    16r0000 " invalid " 
                           "16r9720"    16r0000 " invalid " 
                           "16r9721"    16r0000 " invalid " 
                           "16r9722"    16r0000 " invalid " 
                           "16r9723"    16r0000 " invalid " 
                           "16r9724"    16r7045 " <CJK> " 
                           "16r9725"    16r0000 " invalid " 
                           "16r9726"    16r0000 " invalid " 
                           "16r9727"    16r4C38 " <CJK> " 
                           "16r9728"    16r0000 " invalid " 
                           "16r9729"    16r0000 " invalid " 
                           "16r972A"    16r7046 " <CJK> " 
                           "16r972B"    16r0000 " invalid " 
                           "16r972C"    16r0000 " invalid " 
                           "16r972D"    16r0000 " invalid " 
                           "16r972E"    16r0000 " invalid " 
                           "16r972F"    16r0000 " invalid " 
                           "16r9730"    16r7047 " <CJK> " 
                           "16r9731"    16r0000 " invalid " 
                           "16r9732"    16r4F2A " <CJK> " 
                           "16r9733"    16r0000 " invalid " 
                           "16r9734"    16r0000 " invalid " 
                           "16r9735"    16r0000 " invalid " 
                           "16r9736"    16r0000 " invalid " 
                           "16r9737"    16r0000 " invalid " 
                           "16r9738"    16r5B31 " <CJK> " 
                           "16r9739"    16r7048 " <CJK> " 
                           "16r973A"    16r0000 " invalid " 
                           "16r973B"    16r0000 " invalid " 
                           "16r973C"    16r0000 " invalid " 
                           "16r973D"    16r7049 " <CJK> " 
                           "16r973E"    16r704A " <CJK> " 
                           "16r973F"    16r0000 " invalid " 
                           "16r9740"    16r0000 " invalid " 
                           "16r9741"    16r0000 " invalid " 
                           "16r9742"    16r704E " <CJK> " 
                           "16r9743"    16r0000 " invalid " 
                           "16r9744"    16r704B " <CJK> " 
                           "16r9745"    16r0000 " invalid " 
                           "16r9746"    16r704C " <CJK> " 
                           "16r9747"    16r0000 " invalid " 
                           "16r9748"    16r704D " <CJK> " 
                           "16r9749"    16r704F " <CJK> " 
                           "16r974A"    16r0000 " invalid " 
                           "16r974B"    16r0000 " invalid " 
                           "16r974C"    16r0000 " invalid " 
                           "16r974D"    16r0000 " invalid " 
                           "16r974E"    16r0000 " invalid " 
                           "16r974F"    16r0000 " invalid " 
                           "16r9750"    16r0000 " invalid " 
                           "16r9751"    16r0000 " invalid " 
                           "16r9752"    16r4044 " <CJK> " 
                           "16r9753"    16r0000 " invalid " 
                           "16r9754"    16r0000 " invalid " 
                           "16r9755"    16r0000 " invalid " 
                           "16r9756"    16r4C77 " <CJK> " 
                           "16r9757"    16r0000 " invalid " 
                           "16r9758"    16r0000 " invalid " 
                           "16r9759"    16r4045 " <CJK> " 
                           "16r975A"    16r0000 " invalid " 
                           "16r975B"    16r0000 " invalid " 
                           "16r975C"    16r7050 " <CJK> " 
                           "16r975D"    16r0000 " invalid " 
                           "16r975E"    16r4873 " <CJK> " 
                           "16r975F"    16r0000 " invalid " 
                           "16r9760"    16r7051 " <CJK> " 
                           "16r9761"    16r7353 " <CJK> " 
                           "16r9762"    16r4C4C " <CJK> " 
                           "16r9763"    16r0000 " invalid " 
                           "16r9764"    16r7052 " <CJK> " 
                           "16r9765"    16r0000 " invalid " 
                           "16r9766"    16r7053 " <CJK> " 
                           "16r9767"    16r0000 " invalid " 
                           "16r9768"    16r7054 " <CJK> " 
                           "16r9769"    16r3357 " <CJK> " 
                           "16r976A"    16r0000 " invalid " 
                           "16r976B"    16r7056 " <CJK> " 
                           "16r976C"    16r0000 " invalid " 
                           "16r976D"    16r3F59 " <CJK> " 
                           "16r976E"    16r0000 " invalid " 
                           "16r976F"    16r0000 " invalid " 
                           "16r9770"    16r0000 " invalid " 
                           "16r9771"    16r7057 " <CJK> " 
                           "16r9772"    16r0000 " invalid " 
                           "16r9773"    16r0000 " invalid " 
                           "16r9774"    16r3724 " <CJK> " 
                           "16r9775"    16r0000 " invalid " 
                           "16r9776"    16r0000 " invalid " 
                           "16r9777"    16r0000 " invalid " 
                           "16r9778"    16r0000 " invalid " 
                           "16r9779"    16r7058 " <CJK> " 
                           "16r977A"    16r705C " <CJK> " 
                           "16r977B"    16r0000 " invalid " 
                           "16r977C"    16r705A " <CJK> " 
                           "16r977D"    16r0000 " invalid " 
                           "16r977E"    16r0000 " invalid " 
                           "16r977F"    16r0000 " invalid " 
                           "16r9780"    16r0000 " invalid " 
                           "16r9781"    16r705B " <CJK> " 
                           "16r9782"    16r0000 " invalid " 
                           "16r9783"    16r0000 " invalid " 
                           "16r9784"    16r3373 " <CJK> " 
                           "16r9785"    16r7059 " <CJK> " 
                           "16r9786"    16r705D " <CJK> " 
                           "16r9787"    16r0000 " invalid " 
                           "16r9788"    16r0000 " invalid " 
                           "16r9789"    16r0000 " invalid " 
                           "16r978A"    16r0000 " invalid " 
                           "16r978B"    16r705E " <CJK> " 
                           "16r978C"    16r0000 " invalid " 
                           "16r978D"    16r3048 " <CJK> " 
                           "16r978E"    16r0000 " invalid " 
                           "16r978F"    16r705F " <CJK> " 
                           "16r9790"    16r7060 " <CJK> " 
                           "16r9791"    16r0000 " invalid " 
                           "16r9792"    16r0000 " invalid " 
                           "16r9793"    16r0000 " invalid " 
                           "16r9794"    16r0000 " invalid " 
                           "16r9795"    16r0000 " invalid " 
                           "16r9796"    16r0000 " invalid " 
                           "16r9797"    16r0000 " invalid " 
                           "16r9798"    16r3E64 " <CJK> " 
                           "16r9799"    16r0000 " invalid " 
                           "16r979A"    16r0000 " invalid " 
                           "16r979B"    16r0000 " invalid " 
                           "16r979C"    16r7061 " <CJK> " 
                           "16r979D"    16r0000 " invalid " 
                           "16r979E"    16r0000 " invalid " 
                           "16r979F"    16r0000 " invalid " 
                           "16r97A0"    16r3547 " <CJK> " 
                           "16r97A1"    16r0000 " invalid " 
                           "16r97A2"    16r0000 " invalid " 
                           "16r97A3"    16r7064 " <CJK> " 
                           "16r97A4"    16r0000 " invalid " 
                           "16r97A5"    16r0000 " invalid " 
                           "16r97A6"    16r7063 " <CJK> " 
                           "16r97A7"    16r0000 " invalid " 
                           "16r97A8"    16r7062 " <CJK> " 
                           "16r97A9"    16r0000 " invalid " 
                           "16r97AA"    16r0000 " invalid " 
                           "16r97AB"    16r6B71 " <CJK> " 
                           "16r97AC"    16r0000 " invalid " 
                           "16r97AD"    16r4A5C " <CJK> " 
                           "16r97AE"    16r0000 " invalid " 
                           "16r97AF"    16r0000 " invalid " 
                           "16r97B0"    16r0000 " invalid " 
                           "16r97B1"    16r0000 " invalid " 
                           "16r97B2"    16r0000 " invalid " 
                           "16r97B3"    16r7065 " <CJK> " 
                           "16r97B4"    16r7066 " <CJK> " 
                           "16r97B5"    16r0000 " invalid " 
                           "16r97B6"    16r0000 " invalid " 
                           "16r97B7"    16r0000 " invalid " 
                           "16r97B8"    16r0000 " invalid " 
                           "16r97B9"    16r0000 " invalid " 
                           "16r97BA"    16r0000 " invalid " 
                           "16r97BB"    16r0000 " invalid " 
                           "16r97BC"    16r0000 " invalid " 
                           "16r97BD"    16r0000 " invalid " 
                           "16r97BE"    16r0000 " invalid " 
                           "16r97BF"    16r0000 " invalid " 
                           "16r97C0"    16r0000 " invalid " 
                           "16r97C1"    16r0000 " invalid " 
                           "16r97C2"    16r0000 " invalid " 
                           "16r97C3"    16r7067 " <CJK> " 
                           "16r97C4"    16r0000 " invalid " 
                           "16r97C5"    16r0000 " invalid " 
                           "16r97C6"    16r7068 " <CJK> " 
                           "16r97C7"    16r0000 " invalid " 
                           "16r97C8"    16r7069 " <CJK> " 
                           "16r97C9"    16r0000 " invalid " 
                           "16r97CA"    16r0000 " invalid " 
                           "16r97CB"    16r706A " <CJK> " 
                           "16r97CC"    16r0000 " invalid " 
                           "16r97CD"    16r0000 " invalid " 
                           "16r97CE"    16r0000 " invalid " 
                           "16r97CF"    16r0000 " invalid " 
                           "16r97D0"    16r0000 " invalid " 
                           "16r97D1"    16r0000 " invalid " 
                           "16r97D2"    16r0000 " invalid " 
                           "16r97D3"    16r345A " <CJK> " 
                           "16r97D4"    16r0000 " invalid " 
                           "16r97D5"    16r0000 " invalid " 
                           "16r97D6"    16r0000 " invalid " 
                           "16r97D7"    16r0000 " invalid " 
                           "16r97D8"    16r0000 " invalid " 
                           "16r97D9"    16r0000 " invalid " 
                           "16r97DA"    16r0000 " invalid " 
                           "16r97DB"    16r0000 " invalid " 
                           "16r97DC"    16r706B " <CJK> " 
                           "16r97DD"    16r0000 " invalid " 
                           "16r97DE"    16r0000 " invalid " 
                           "16r97DF"    16r0000 " invalid " 
                           "16r97E0"    16r0000 " invalid " 
                           "16r97E1"    16r0000 " invalid " 
                           "16r97E2"    16r0000 " invalid " 
                           "16r97E3"    16r0000 " invalid " 
                           "16r97E4"    16r0000 " invalid " 
                           "16r97E5"    16r0000 " invalid " 
                           "16r97E6"    16r0000 " invalid " 
                           "16r97E7"    16r0000 " invalid " 
                           "16r97E8"    16r0000 " invalid " 
                           "16r97E9"    16r0000 " invalid " 
                           "16r97EA"    16r0000 " invalid " 
                           "16r97EB"    16r0000 " invalid " 
                           "16r97EC"    16r0000 " invalid " 
                           "16r97ED"    16r706C " <CJK> " 
                           "16r97EE"    16r4723 " <CJK> " 
                           "16r97EF"    16r0000 " invalid " 
                           "16r97F0"    16r0000 " invalid " 
                           "16r97F1"    16r0000 " invalid " 
                           "16r97F2"    16r706E " <CJK> " 
                           "16r97F3"    16r323B " <CJK> " 
                           "16r97F4"    16r0000 " invalid " 
                           "16r97F5"    16r7071 " <CJK> " 
                           "16r97F6"    16r7070 " <CJK> " 
                           "16r97F7"    16r0000 " invalid " 
                           "16r97F8"    16r0000 " invalid " 
                           "16r97F9"    16r0000 " invalid " 
                           "16r97FA"    16r0000 " invalid " 
                           "16r97FB"    16r3124 " <CJK> " 
                           "16r97FC"    16r0000 " invalid " 
                           "16r97FD"    16r0000 " invalid " 
                           "16r97FE"    16r0000 " invalid " 
                           "16r97FF"    16r3641 " <CJK> " 
                           "16r9800"    16r0000 " invalid " 
                           "16r9801"    16r4A47 " <CJK> " 
                           "16r9802"    16r443A " <CJK> " 
                           "16r9803"    16r3A22 " <CJK> " 
                           "16r9804"    16r0000 " invalid " 
                           "16r9805"    16r3960 " <CJK> " 
                           "16r9806"    16r3D67 " <CJK> " 
                           "16r9807"    16r0000 " invalid " 
                           "16r9808"    16r3F5C " <CJK> " 
                           "16r9809"    16r0000 " invalid " 
                           "16r980A"    16r0000 " invalid " 
                           "16r980B"    16r0000 " invalid " 
                           "16r980C"    16r7073 " <CJK> " 
                           "16r980D"    16r0000 " invalid " 
                           "16r980E"    16r0000 " invalid " 
                           "16r980F"    16r7072 " <CJK> " 
                           "16r9810"    16r4D42 " <CJK> " 
                           "16r9811"    16r3468 " <CJK> " 
                           "16r9812"    16r4852 " <CJK> " 
                           "16r9813"    16r465C " <CJK> " 
                           "16r9814"    16r0000 " invalid " 
                           "16r9815"    16r0000 " invalid " 
                           "16r9816"    16r0000 " invalid " 
                           "16r9817"    16r3F7C " <CJK> " 
                           "16r9818"    16r4E4E " <CJK> " 
                           "16r9819"    16r0000 " invalid " 
                           "16r981A"    16r375B " <CJK> " 
                           "16r981B"    16r0000 " invalid " 
                           "16r981C"    16r0000 " invalid " 
                           "16r981D"    16r0000 " invalid " 
                           "16r981E"    16r0000 " invalid " 
                           "16r981F"    16r0000 " invalid " 
                           "16r9820"    16r0000 " invalid " 
                           "16r9821"    16r7076 " <CJK> " 
                           "16r9822"    16r0000 " invalid " 
                           "16r9823"    16r0000 " invalid " 
                           "16r9824"    16r7075 " <CJK> " 
                           "16r9825"    16r0000 " invalid " 
                           "16r9826"    16r0000 " invalid " 
                           "16r9827"    16r0000 " invalid " 
                           "16r9828"    16r0000 " invalid " 
                           "16r9829"    16r0000 " invalid " 
                           "16r982A"    16r0000 " invalid " 
                           "16r982B"    16r0000 " invalid " 
                           "16r982C"    16r4B4B " <CJK> " 
                           "16r982D"    16r462C " <CJK> " 
                           "16r982E"    16r0000 " invalid " 
                           "16r982F"    16r0000 " invalid " 
                           "16r9830"    16r0000 " invalid " 
                           "16r9831"    16r0000 " invalid " 
                           "16r9832"    16r0000 " invalid " 
                           "16r9833"    16r0000 " invalid " 
                           "16r9834"    16r3150 " <CJK> " 
                           "16r9835"    16r0000 " invalid " 
                           "16r9836"    16r0000 " invalid " 
                           "16r9837"    16r7077 " <CJK> " 
                           "16r9838"    16r7074 " <CJK> " 
                           "16r9839"    16r0000 " invalid " 
                           "16r983A"    16r0000 " invalid " 
                           "16r983B"    16r4951 " <CJK> " 
                           "16r983C"    16r4D6A " <CJK> " 
                           "16r983D"    16r7078 " <CJK> " 
                           "16r983E"    16r0000 " invalid " 
                           "16r983F"    16r0000 " invalid " 
                           "16r9840"    16r0000 " invalid " 
                           "16r9841"    16r0000 " invalid " 
                           "16r9842"    16r0000 " invalid " 
                           "16r9843"    16r0000 " invalid " 
                           "16r9844"    16r0000 " invalid " 
                           "16r9845"    16r0000 " invalid " 
                           "16r9846"    16r7079 " <CJK> " 
                           "16r9847"    16r0000 " invalid " 
                           "16r9848"    16r0000 " invalid " 
                           "16r9849"    16r0000 " invalid " 
                           "16r984A"    16r0000 " invalid " 
                           "16r984B"    16r707B " <CJK> " 
                           "16r984C"    16r426A " <CJK> " 
                           "16r984D"    16r335B " <CJK> " 
                           "16r984E"    16r335C " <CJK> " 
                           "16r984F"    16r707A " <CJK> " 
                           "16r9850"    16r0000 " invalid " 
                           "16r9851"    16r0000 " invalid " 
                           "16r9852"    16r0000 " invalid " 
                           "16r9853"    16r0000 " invalid " 
                           "16r9854"    16r3469 " <CJK> " 
                           "16r9855"    16r3832 " <CJK> " 
                           "16r9856"    16r0000 " invalid " 
                           "16r9857"    16r0000 " invalid " 
                           "16r9858"    16r346A " <CJK> " 
                           "16r9859"    16r0000 " invalid " 
                           "16r985A"    16r0000 " invalid " 
                           "16r985B"    16r453F " <CJK> " 
                           "16r985C"    16r0000 " invalid " 
                           "16r985D"    16r0000 " invalid " 
                           "16r985E"    16r4E60 " <CJK> " 
                           "16r985F"    16r0000 " invalid " 
                           "16r9860"    16r0000 " invalid " 
                           "16r9861"    16r0000 " invalid " 
                           "16r9862"    16r0000 " invalid " 
                           "16r9863"    16r0000 " invalid " 
                           "16r9864"    16r0000 " invalid " 
                           "16r9865"    16r0000 " invalid " 
                           "16r9866"    16r0000 " invalid " 
                           "16r9867"    16r385C " <CJK> " 
                           "16r9868"    16r0000 " invalid " 
                           "16r9869"    16r0000 " invalid " 
                           "16r986A"    16r0000 " invalid " 
                           "16r986B"    16r707C " <CJK> " 
                           "16r986C"    16r0000 " invalid " 
                           "16r986D"    16r0000 " invalid " 
                           "16r986E"    16r0000 " invalid " 
                           "16r986F"    16r707D " <CJK> " 
                           "16r9870"    16r707E " <CJK> " 
                           "16r9871"    16r7121 " <CJK> " 
                           "16r9872"    16r0000 " invalid " 
                           "16r9873"    16r7123 " <CJK> " 
                           "16r9874"    16r7122 " <CJK> " 
                           ) at:(unicode - 16r961B).
                        t == 0 ifFalse:[^ t].
                        ^ self encodingError
                    ] value.
                ].
                unicode <= 16r98A7 ifTrue:[
                    ^ self encodingError.
                ].
                [
                    |t|
                    t := #(
                       "16r98A8"    16r4977 " <CJK> " 
                       "16r98A9"    16r0000 " invalid " 
                       "16r98AA"    16r7124 " <CJK> " 
                       "16r98AB"    16r0000 " invalid " 
                       "16r98AC"    16r0000 " invalid " 
                       "16r98AD"    16r0000 " invalid " 
                       "16r98AE"    16r0000 " invalid " 
                       "16r98AF"    16r7125 " <CJK> " 
                       "16r98B0"    16r0000 " invalid " 
                       "16r98B1"    16r7126 " <CJK> " 
                       "16r98B2"    16r0000 " invalid " 
                       "16r98B3"    16r0000 " invalid " 
                       "16r98B4"    16r0000 " invalid " 
                       "16r98B5"    16r0000 " invalid " 
                       "16r98B6"    16r7127 " <CJK> " 
                       "16r98B7"    16r0000 " invalid " 
                       "16r98B8"    16r0000 " invalid " 
                       "16r98B9"    16r0000 " invalid " 
                       "16r98BA"    16r0000 " invalid " 
                       "16r98BB"    16r0000 " invalid " 
                       "16r98BC"    16r0000 " invalid " 
                       "16r98BD"    16r0000 " invalid " 
                       "16r98BE"    16r0000 " invalid " 
                       "16r98BF"    16r0000 " invalid " 
                       "16r98C0"    16r0000 " invalid " 
                       "16r98C1"    16r0000 " invalid " 
                       "16r98C2"    16r0000 " invalid " 
                       "16r98C3"    16r7129 " <CJK> " 
                       "16r98C4"    16r7128 " <CJK> " 
                       "16r98C5"    16r0000 " invalid " 
                       "16r98C6"    16r712A " <CJK> " 
                       "16r98C7"    16r0000 " invalid " 
                       "16r98C8"    16r0000 " invalid " 
                       "16r98C9"    16r0000 " invalid " 
                       "16r98CA"    16r0000 " invalid " 
                       "16r98CB"    16r0000 " invalid " 
                       "16r98CC"    16r0000 " invalid " 
                       "16r98CD"    16r0000 " invalid " 
                       "16r98CE"    16r0000 " invalid " 
                       "16r98CF"    16r0000 " invalid " 
                       "16r98D0"    16r0000 " invalid " 
                       "16r98D1"    16r0000 " invalid " 
                       "16r98D2"    16r0000 " invalid " 
                       "16r98D3"    16r0000 " invalid " 
                       "16r98D4"    16r0000 " invalid " 
                       "16r98D5"    16r0000 " invalid " 
                       "16r98D6"    16r0000 " invalid " 
                       "16r98D7"    16r0000 " invalid " 
                       "16r98D8"    16r0000 " invalid " 
                       "16r98D9"    16r0000 " invalid " 
                       "16r98DA"    16r0000 " invalid " 
                       "16r98DB"    16r4874 " <CJK> " 
                       "16r98DC"    16r664C " <CJK> " 
                       "16r98DD"    16r0000 " invalid " 
                       "16r98DE"    16r0000 " invalid " 
                       "16r98DF"    16r3F29 " <CJK> " 
                       "16r98E0"    16r0000 " invalid " 
                       "16r98E1"    16r0000 " invalid " 
                       "16r98E2"    16r3532 " <CJK> " 
                       "16r98E3"    16r0000 " invalid " 
                       "16r98E4"    16r0000 " invalid " 
                       "16r98E5"    16r0000 " invalid " 
                       "16r98E6"    16r0000 " invalid " 
                       "16r98E7"    16r0000 " invalid " 
                       "16r98E8"    16r0000 " invalid " 
                       "16r98E9"    16r712B " <CJK> " 
                       "16r98EA"    16r0000 " invalid " 
                       "16r98EB"    16r712C " <CJK> " 
                       "16r98EC"    16r0000 " invalid " 
                       "16r98ED"    16r522C " <CJK> " 
                       "16r98EE"    16r5D3B " <CJK> " 
                       "16r98EF"    16r4853 " <CJK> " 
                       "16r98F0"    16r0000 " invalid " 
                       "16r98F1"    16r0000 " invalid " 
                       "16r98F2"    16r307B " <CJK> " 
                       "16r98F3"    16r0000 " invalid " 
                       "16r98F4"    16r303B " <CJK> " 
                       "16r98F5"    16r0000 " invalid " 
                       "16r98F6"    16r0000 " invalid " 
                       "16r98F7"    16r0000 " invalid " 
                       "16r98F8"    16r0000 " invalid " 
                       "16r98F9"    16r0000 " invalid " 
                       "16r98FA"    16r0000 " invalid " 
                       "16r98FB"    16r0000 " invalid " 
                       "16r98FC"    16r3B74 " <CJK> " 
                       "16r98FD"    16r4B30 " <CJK> " 
                       "16r98FE"    16r3E7E " <CJK> " 
                       "16r98FF"    16r0000 " invalid " 
                       "16r9900"    16r0000 " invalid " 
                       "16r9901"    16r0000 " invalid " 
                       "16r9902"    16r0000 " invalid " 
                       "16r9903"    16r712D " <CJK> " 
                       "16r9904"    16r0000 " invalid " 
                       "16r9905"    16r4C5F " <CJK> " 
                       "16r9906"    16r0000 " invalid " 
                       "16r9907"    16r0000 " invalid " 
                       "16r9908"    16r0000 " invalid " 
                       "16r9909"    16r712E " <CJK> " 
                       "16r990A"    16r4D5C " <CJK> " 
                       "16r990B"    16r0000 " invalid " 
                       "16r990C"    16r3142 " <CJK> " 
                       "16r990D"    16r0000 " invalid " 
                       "16r990E"    16r0000 " invalid " 
                       "16r990F"    16r0000 " invalid " 
                       "16r9910"    16r3B41 " <CJK> " 
                       "16r9911"    16r0000 " invalid " 
                       "16r9912"    16r712F " <CJK> " 
                       "16r9913"    16r326E " <CJK> " 
                       "16r9914"    16r7130 " <CJK> " 
                       "16r9915"    16r0000 " invalid " 
                       "16r9916"    16r0000 " invalid " 
                       "16r9917"    16r0000 " invalid " 
                       "16r9918"    16r7131 " <CJK> " 
                       "16r9919"    16r0000 " invalid " 
                       "16r991A"    16r0000 " invalid " 
                       "16r991B"    16r0000 " invalid " 
                       "16r991C"    16r0000 " invalid " 
                       "16r991D"    16r7133 " <CJK> " 
                       "16r991E"    16r7134 " <CJK> " 
                       "16r991F"    16r0000 " invalid " 
                       "16r9920"    16r7136 " <CJK> " 
                       "16r9921"    16r7132 " <CJK> " 
                       "16r9922"    16r0000 " invalid " 
                       "16r9923"    16r0000 " invalid " 
                       "16r9924"    16r7135 " <CJK> " 
                       "16r9925"    16r0000 " invalid " 
                       "16r9926"    16r0000 " invalid " 
                       "16r9927"    16r0000 " invalid " 
                       "16r9928"    16r345B " <CJK> " 
                       "16r9929"    16r0000 " invalid " 
                       "16r992A"    16r0000 " invalid " 
                       "16r992B"    16r0000 " invalid " 
                       "16r992C"    16r7137 " <CJK> " 
                       "16r992D"    16r0000 " invalid " 
                       "16r992E"    16r7138 " <CJK> " 
                       "16r992F"    16r0000 " invalid " 
                       "16r9930"    16r0000 " invalid " 
                       "16r9931"    16r0000 " invalid " 
                       "16r9932"    16r0000 " invalid " 
                       "16r9933"    16r0000 " invalid " 
                       "16r9934"    16r0000 " invalid " 
                       "16r9935"    16r0000 " invalid " 
                       "16r9936"    16r0000 " invalid " 
                       "16r9937"    16r0000 " invalid " 
                       "16r9938"    16r0000 " invalid " 
                       "16r9939"    16r0000 " invalid " 
                       "16r993A"    16r0000 " invalid " 
                       "16r993B"    16r0000 " invalid " 
                       "16r993C"    16r0000 " invalid " 
                       "16r993D"    16r7139 " <CJK> " 
                       "16r993E"    16r713A " <CJK> " 
                       "16r993F"    16r0000 " invalid " 
                       "16r9940"    16r0000 " invalid " 
                       "16r9941"    16r0000 " invalid " 
                       "16r9942"    16r713B " <CJK> " 
                       "16r9943"    16r0000 " invalid " 
                       "16r9944"    16r0000 " invalid " 
                       "16r9945"    16r713D " <CJK> " 
                       "16r9946"    16r0000 " invalid " 
                       "16r9947"    16r0000 " invalid " 
                       "16r9948"    16r0000 " invalid " 
                       "16r9949"    16r713C " <CJK> " 
                       "16r994A"    16r0000 " invalid " 
                       "16r994B"    16r713F " <CJK> " 
                       "16r994C"    16r7142 " <CJK> " 
                       "16r994D"    16r0000 " invalid " 
                       "16r994E"    16r0000 " invalid " 
                       "16r994F"    16r0000 " invalid " 
                       "16r9950"    16r713E " <CJK> " 
                       "16r9951"    16r7140 " <CJK> " 
                       "16r9952"    16r7141 " <CJK> " 
                       "16r9953"    16r0000 " invalid " 
                       "16r9954"    16r0000 " invalid " 
                       "16r9955"    16r7143 " <CJK> " 
                       "16r9956"    16r0000 " invalid " 
                       "16r9957"    16r3642 " <CJK> " 
                       ) at:(unicode - 16r98A7).
                    t == 0 ifFalse:[^ t].
                    ^ self encodingError
                ] value.
            ].
            unicode <= 16r9995 ifTrue:[
                ^ self encodingError.
            ].
            unicode <= 16r9A6B ifTrue:[
                [
                    |t|
                    t := #(
                       "16r9996"    16r3C73 " <CJK> " 
                       "16r9997"    16r7144 " <CJK> " 
                       "16r9998"    16r7145 " <CJK> " 
                       "16r9999"    16r3961 " <CJK> " 
                       "16r999A"    16r0000 " invalid " 
                       "16r999B"    16r0000 " invalid " 
                       "16r999C"    16r0000 " invalid " 
                       "16r999D"    16r0000 " invalid " 
                       "16r999E"    16r0000 " invalid " 
                       "16r999F"    16r0000 " invalid " 
                       "16r99A0"    16r0000 " invalid " 
                       "16r99A1"    16r0000 " invalid " 
                       "16r99A2"    16r0000 " invalid " 
                       "16r99A3"    16r0000 " invalid " 
                       "16r99A4"    16r0000 " invalid " 
                       "16r99A5"    16r7146 " <CJK> " 
                       "16r99A6"    16r0000 " invalid " 
                       "16r99A7"    16r0000 " invalid " 
                       "16r99A8"    16r333E " <CJK> " 
                       "16r99A9"    16r0000 " invalid " 
                       "16r99AA"    16r0000 " invalid " 
                       "16r99AB"    16r0000 " invalid " 
                       "16r99AC"    16r474F " <CJK> " 
                       "16r99AD"    16r7147 " <CJK> " 
                       "16r99AE"    16r7148 " <CJK> " 
                       "16r99AF"    16r0000 " invalid " 
                       "16r99B0"    16r0000 " invalid " 
                       "16r99B1"    16r0000 " invalid " 
                       "16r99B2"    16r0000 " invalid " 
                       "16r99B3"    16r435A " <CJK> " 
                       "16r99B4"    16r466B " <CJK> " 
                       "16r99B5"    16r0000 " invalid " 
                       "16r99B6"    16r0000 " invalid " 
                       "16r99B7"    16r0000 " invalid " 
                       "16r99B8"    16r0000 " invalid " 
                       "16r99B9"    16r0000 " invalid " 
                       "16r99BA"    16r0000 " invalid " 
                       "16r99BB"    16r0000 " invalid " 
                       "16r99BC"    16r7149 " <CJK> " 
                       "16r99BD"    16r0000 " invalid " 
                       "16r99BE"    16r0000 " invalid " 
                       "16r99BF"    16r0000 " invalid " 
                       "16r99C0"    16r0000 " invalid " 
                       "16r99C1"    16r477D " <CJK> " 
                       "16r99C2"    16r0000 " invalid " 
                       "16r99C3"    16r0000 " invalid " 
                       "16r99C4"    16r424C " <CJK> " 
                       "16r99C5"    16r3158 " <CJK> " 
                       "16r99C6"    16r366E " <CJK> " 
                       "16r99C7"    16r0000 " invalid " 
                       "16r99C8"    16r366F " <CJK> " 
                       "16r99C9"    16r0000 " invalid " 
                       "16r99CA"    16r0000 " invalid " 
                       "16r99CB"    16r0000 " invalid " 
                       "16r99CC"    16r0000 " invalid " 
                       "16r99CD"    16r0000 " invalid " 
                       "16r99CE"    16r0000 " invalid " 
                       "16r99CF"    16r0000 " invalid " 
                       "16r99D0"    16r4373 " <CJK> " 
                       "16r99D1"    16r714E " <CJK> " 
                       "16r99D2"    16r3670 " <CJK> " 
                       "16r99D3"    16r0000 " invalid " 
                       "16r99D4"    16r0000 " invalid " 
                       "16r99D5"    16r326F " <CJK> " 
                       "16r99D6"    16r0000 " invalid " 
                       "16r99D7"    16r0000 " invalid " 
                       "16r99D8"    16r714D " <CJK> " 
                       "16r99D9"    16r0000 " invalid " 
                       "16r99DA"    16r0000 " invalid " 
                       "16r99DB"    16r714B " <CJK> " 
                       "16r99DC"    16r0000 " invalid " 
                       "16r99DD"    16r714C " <CJK> " 
                       "16r99DE"    16r0000 " invalid " 
                       "16r99DF"    16r714A " <CJK> " 
                       "16r99E0"    16r0000 " invalid " 
                       "16r99E1"    16r0000 " invalid " 
                       "16r99E2"    16r7158 " <CJK> " 
                       "16r99E3"    16r0000 " invalid " 
                       "16r99E4"    16r0000 " invalid " 
                       "16r99E5"    16r0000 " invalid " 
                       "16r99E6"    16r0000 " invalid " 
                       "16r99E7"    16r0000 " invalid " 
                       "16r99E8"    16r0000 " invalid " 
                       "16r99E9"    16r0000 " invalid " 
                       "16r99EA"    16r0000 " invalid " 
                       "16r99EB"    16r0000 " invalid " 
                       "16r99EC"    16r0000 " invalid " 
                       "16r99ED"    16r714F " <CJK> " 
                       "16r99EE"    16r7150 " <CJK> " 
                       "16r99EF"    16r0000 " invalid " 
                       "16r99F0"    16r0000 " invalid " 
                       "16r99F1"    16r7151 " <CJK> " 
                       "16r99F2"    16r7152 " <CJK> " 
                       "16r99F3"    16r0000 " invalid " 
                       "16r99F4"    16r0000 " invalid " 
                       "16r99F5"    16r0000 " invalid " 
                       "16r99F6"    16r0000 " invalid " 
                       "16r99F7"    16r0000 " invalid " 
                       "16r99F8"    16r7154 " <CJK> " 
                       "16r99F9"    16r0000 " invalid " 
                       "16r99FA"    16r0000 " invalid " 
                       "16r99FB"    16r7153 " <CJK> " 
                       "16r99FC"    16r0000 " invalid " 
                       "16r99FD"    16r0000 " invalid " 
                       "16r99FE"    16r0000 " invalid " 
                       "16r99FF"    16r3D59 " <CJK> " 
                       "16r9A00"    16r0000 " invalid " 
                       "16r9A01"    16r7155 " <CJK> " 
                       "16r9A02"    16r0000 " invalid " 
                       "16r9A03"    16r0000 " invalid " 
                       "16r9A04"    16r0000 " invalid " 
                       "16r9A05"    16r7157 " <CJK> " 
                       "16r9A06"    16r0000 " invalid " 
                       "16r9A07"    16r0000 " invalid " 
                       "16r9A08"    16r0000 " invalid " 
                       "16r9A09"    16r0000 " invalid " 
                       "16r9A0A"    16r0000 " invalid " 
                       "16r9A0B"    16r0000 " invalid " 
                       "16r9A0C"    16r0000 " invalid " 
                       "16r9A0D"    16r0000 " invalid " 
                       "16r9A0E"    16r3533 " <CJK> " 
                       "16r9A0F"    16r7156 " <CJK> " 
                       "16r9A10"    16r0000 " invalid " 
                       "16r9A11"    16r0000 " invalid " 
                       "16r9A12"    16r417B " <CJK> " 
                       "16r9A13"    16r3833 " <CJK> " 
                       "16r9A14"    16r0000 " invalid " 
                       "16r9A15"    16r0000 " invalid " 
                       "16r9A16"    16r0000 " invalid " 
                       "16r9A17"    16r0000 " invalid " 
                       "16r9A18"    16r0000 " invalid " 
                       "16r9A19"    16r7159 " <CJK> " 
                       "16r9A1A"    16r0000 " invalid " 
                       "16r9A1B"    16r0000 " invalid " 
                       "16r9A1C"    16r0000 " invalid " 
                       "16r9A1D"    16r0000 " invalid " 
                       "16r9A1E"    16r0000 " invalid " 
                       "16r9A1F"    16r0000 " invalid " 
                       "16r9A20"    16r0000 " invalid " 
                       "16r9A21"    16r0000 " invalid " 
                       "16r9A22"    16r0000 " invalid " 
                       "16r9A23"    16r0000 " invalid " 
                       "16r9A24"    16r0000 " invalid " 
                       "16r9A25"    16r0000 " invalid " 
                       "16r9A26"    16r0000 " invalid " 
                       "16r9A27"    16r0000 " invalid " 
                       "16r9A28"    16r424D " <CJK> " 
                       "16r9A29"    16r0000 " invalid " 
                       "16r9A2A"    16r0000 " invalid " 
                       "16r9A2B"    16r715A " <CJK> " 
                       "16r9A2C"    16r0000 " invalid " 
                       "16r9A2D"    16r0000 " invalid " 
                       "16r9A2E"    16r0000 " invalid " 
                       "16r9A2F"    16r0000 " invalid " 
                       "16r9A30"    16r462D " <CJK> " 
                       "16r9A31"    16r0000 " invalid " 
                       "16r9A32"    16r0000 " invalid " 
                       "16r9A33"    16r0000 " invalid " 
                       "16r9A34"    16r0000 " invalid " 
                       "16r9A35"    16r0000 " invalid " 
                       "16r9A36"    16r0000 " invalid " 
                       "16r9A37"    16r715B " <CJK> " 
                       "16r9A38"    16r0000 " invalid " 
                       "16r9A39"    16r0000 " invalid " 
                       "16r9A3A"    16r0000 " invalid " 
                       "16r9A3B"    16r0000 " invalid " 
                       "16r9A3C"    16r0000 " invalid " 
                       "16r9A3D"    16r0000 " invalid " 
                       "16r9A3E"    16r7160 " <CJK> " 
                       "16r9A3F"    16r0000 " invalid " 
                       "16r9A40"    16r715E " <CJK> " 
                       "16r9A41"    16r0000 " invalid " 
                       "16r9A42"    16r715D " <CJK> " 
                       "16r9A43"    16r715F " <CJK> " 
                       "16r9A44"    16r0000 " invalid " 
                       "16r9A45"    16r715C " <CJK> " 
                       "16r9A46"    16r0000 " invalid " 
                       "16r9A47"    16r0000 " invalid " 
                       "16r9A48"    16r0000 " invalid " 
                       "16r9A49"    16r0000 " invalid " 
                       "16r9A4A"    16r0000 " invalid " 
                       "16r9A4B"    16r0000 " invalid " 
                       "16r9A4C"    16r0000 " invalid " 
                       "16r9A4D"    16r7162 " <CJK> " 
                       "16r9A4E"    16r0000 " invalid " 
                       "16r9A4F"    16r0000 " invalid " 
                       "16r9A50"    16r0000 " invalid " 
                       "16r9A51"    16r0000 " invalid " 
                       "16r9A52"    16r0000 " invalid " 
                       "16r9A53"    16r0000 " invalid " 
                       "16r9A54"    16r0000 " invalid " 
                       "16r9A55"    16r7161 " <CJK> " 
                       "16r9A56"    16r0000 " invalid " 
                       "16r9A57"    16r7164 " <CJK> " 
                       "16r9A58"    16r0000 " invalid " 
                       "16r9A59"    16r0000 " invalid " 
                       "16r9A5A"    16r3643 " <CJK> " 
                       "16r9A5B"    16r7163 " <CJK> " 
                       "16r9A5C"    16r0000 " invalid " 
                       "16r9A5D"    16r0000 " invalid " 
                       "16r9A5E"    16r0000 " invalid " 
                       "16r9A5F"    16r7165 " <CJK> " 
                       "16r9A60"    16r0000 " invalid " 
                       "16r9A61"    16r0000 " invalid " 
                       "16r9A62"    16r7166 " <CJK> " 
                       "16r9A63"    16r0000 " invalid " 
                       "16r9A64"    16r7168 " <CJK> " 
                       "16r9A65"    16r7167 " <CJK> " 
                       "16r9A66"    16r0000 " invalid " 
                       "16r9A67"    16r0000 " invalid " 
                       "16r9A68"    16r0000 " invalid " 
                       "16r9A69"    16r7169 " <CJK> " 
                       "16r9A6A"    16r716B " <CJK> " 
                       "16r9A6B"    16r716A " <CJK> " 
                       ) at:(unicode - 16r9995).
                    t == 0 ifFalse:[^ t].
                    ^ self encodingError
                ] value.
            ].
            unicode <= 16r9AA7 ifTrue:[
                ^ self encodingError.
            ].
            [
                |t|
                t := #(
                   "16r9AA8"    16r397C " <CJK> " 
                   "16r9AA9"    16r0000 " invalid " 
                   "16r9AAA"    16r0000 " invalid " 
                   "16r9AAB"    16r0000 " invalid " 
                   "16r9AAC"    16r0000 " invalid " 
                   "16r9AAD"    16r716C " <CJK> " 
                   "16r9AAE"    16r0000 " invalid " 
                   "16r9AAF"    16r0000 " invalid " 
                   "16r9AB0"    16r716D " <CJK> " 
                   "16r9AB1"    16r0000 " invalid " 
                   "16r9AB2"    16r0000 " invalid " 
                   "16r9AB3"    16r0000 " invalid " 
                   "16r9AB4"    16r0000 " invalid " 
                   "16r9AB5"    16r0000 " invalid " 
                   "16r9AB6"    16r0000 " invalid " 
                   "16r9AB7"    16r0000 " invalid " 
                   "16r9AB8"    16r333C " <CJK> " 
                   "16r9AB9"    16r0000 " invalid " 
                   "16r9ABA"    16r0000 " invalid " 
                   "16r9ABB"    16r0000 " invalid " 
                   "16r9ABC"    16r716E " <CJK> " 
                   "16r9ABD"    16r0000 " invalid " 
                   "16r9ABE"    16r0000 " invalid " 
                   "16r9ABF"    16r0000 " invalid " 
                   "16r9AC0"    16r716F " <CJK> " 
                   "16r9AC1"    16r0000 " invalid " 
                   "16r9AC2"    16r0000 " invalid " 
                   "16r9AC3"    16r0000 " invalid " 
                   "16r9AC4"    16r3F71 " <CJK> " 
                   "16r9AC5"    16r0000 " invalid " 
                   "16r9AC6"    16r0000 " invalid " 
                   "16r9AC7"    16r0000 " invalid " 
                   "16r9AC8"    16r0000 " invalid " 
                   "16r9AC9"    16r0000 " invalid " 
                   "16r9ACA"    16r0000 " invalid " 
                   "16r9ACB"    16r0000 " invalid " 
                   "16r9ACC"    16r0000 " invalid " 
                   "16r9ACD"    16r0000 " invalid " 
                   "16r9ACE"    16r0000 " invalid " 
                   "16r9ACF"    16r7170 " <CJK> " 
                   "16r9AD0"    16r0000 " invalid " 
                   "16r9AD1"    16r7171 " <CJK> " 
                   "16r9AD2"    16r0000 " invalid " 
                   "16r9AD3"    16r7172 " <CJK> " 
                   "16r9AD4"    16r7173 " <CJK> " 
                   "16r9AD5"    16r0000 " invalid " 
                   "16r9AD6"    16r0000 " invalid " 
                   "16r9AD7"    16r0000 " invalid " 
                   "16r9AD8"    16r3962 " <CJK> " 
                   "16r9AD9"    16r0000 " invalid " 
                   "16r9ADA"    16r0000 " invalid " 
                   "16r9ADB"    16r0000 " invalid " 
                   "16r9ADC"    16r0000 " invalid " 
                   "16r9ADD"    16r0000 " invalid " 
                   "16r9ADE"    16r7174 " <CJK> " 
                   "16r9ADF"    16r7175 " <CJK> " 
                   "16r9AE0"    16r0000 " invalid " 
                   "16r9AE1"    16r0000 " invalid " 
                   "16r9AE2"    16r7176 " <CJK> " 
                   "16r9AE3"    16r7177 " <CJK> " 
                   "16r9AE4"    16r0000 " invalid " 
                   "16r9AE5"    16r0000 " invalid " 
                   "16r9AE6"    16r7178 " <CJK> " 
                   "16r9AE7"    16r0000 " invalid " 
                   "16r9AE8"    16r0000 " invalid " 
                   "16r9AE9"    16r0000 " invalid " 
                   "16r9AEA"    16r4831 " <CJK> " 
                   "16r9AEB"    16r717A " <CJK> " 
                   "16r9AEC"    16r0000 " invalid " 
                   "16r9AED"    16r4926 " <CJK> " 
                   "16r9AEE"    16r717B " <CJK> " 
                   "16r9AEF"    16r7179 " <CJK> " 
                   "16r9AF0"    16r0000 " invalid " 
                   "16r9AF1"    16r717D " <CJK> " 
                   "16r9AF2"    16r0000 " invalid " 
                   "16r9AF3"    16r0000 " invalid " 
                   "16r9AF4"    16r717C " <CJK> " 
                   "16r9AF5"    16r0000 " invalid " 
                   "16r9AF6"    16r0000 " invalid " 
                   "16r9AF7"    16r717E " <CJK> " 
                   "16r9AF8"    16r0000 " invalid " 
                   "16r9AF9"    16r0000 " invalid " 
                   "16r9AFA"    16r0000 " invalid " 
                   "16r9AFB"    16r7221 " <CJK> " 
                   "16r9AFC"    16r0000 " invalid " 
                   "16r9AFD"    16r0000 " invalid " 
                   "16r9AFE"    16r0000 " invalid " 
                   "16r9AFF"    16r0000 " invalid " 
                   "16r9B00"    16r0000 " invalid " 
                   "16r9B01"    16r0000 " invalid " 
                   "16r9B02"    16r0000 " invalid " 
                   "16r9B03"    16r0000 " invalid " 
                   "16r9B04"    16r0000 " invalid " 
                   "16r9B05"    16r0000 " invalid " 
                   "16r9B06"    16r7222 " <CJK> " 
                   "16r9B07"    16r0000 " invalid " 
                   "16r9B08"    16r0000 " invalid " 
                   "16r9B09"    16r0000 " invalid " 
                   "16r9B0A"    16r0000 " invalid " 
                   "16r9B0B"    16r0000 " invalid " 
                   "16r9B0C"    16r0000 " invalid " 
                   "16r9B0D"    16r0000 " invalid " 
                   "16r9B0E"    16r0000 " invalid " 
                   "16r9B0F"    16r0000 " invalid " 
                   "16r9B10"    16r0000 " invalid " 
                   "16r9B11"    16r0000 " invalid " 
                   "16r9B12"    16r0000 " invalid " 
                   "16r9B13"    16r0000 " invalid " 
                   "16r9B14"    16r0000 " invalid " 
                   "16r9B15"    16r0000 " invalid " 
                   "16r9B16"    16r0000 " invalid " 
                   "16r9B17"    16r0000 " invalid " 
                   "16r9B18"    16r7223 " <CJK> " 
                   "16r9B19"    16r0000 " invalid " 
                   "16r9B1A"    16r7224 " <CJK> " 
                   "16r9B1B"    16r0000 " invalid " 
                   "16r9B1C"    16r0000 " invalid " 
                   "16r9B1D"    16r0000 " invalid " 
                   "16r9B1E"    16r0000 " invalid " 
                   "16r9B1F"    16r7225 " <CJK> " 
                   "16r9B20"    16r0000 " invalid " 
                   "16r9B21"    16r0000 " invalid " 
                   "16r9B22"    16r7226 " <CJK> " 
                   "16r9B23"    16r7227 " <CJK> " 
                   "16r9B24"    16r0000 " invalid " 
                   "16r9B25"    16r7228 " <CJK> " 
                   "16r9B26"    16r0000 " invalid " 
                   "16r9B27"    16r7229 " <CJK> " 
                   "16r9B28"    16r722A " <CJK> " 
                   "16r9B29"    16r722B " <CJK> " 
                   "16r9B2A"    16r722C " <CJK> " 
                   "16r9B2B"    16r0000 " invalid " 
                   "16r9B2C"    16r0000 " invalid " 
                   "16r9B2D"    16r0000 " invalid " 
                   "16r9B2E"    16r722D " <CJK> " 
                   "16r9B2F"    16r722E " <CJK> " 
                   "16r9B30"    16r0000 " invalid " 
                   "16r9B31"    16r5D35 " <CJK> " 
                   "16r9B32"    16r722F " <CJK> " 
                   "16r9B33"    16r0000 " invalid " 
                   "16r9B34"    16r0000 " invalid " 
                   "16r9B35"    16r0000 " invalid " 
                   "16r9B36"    16r0000 " invalid " 
                   "16r9B37"    16r0000 " invalid " 
                   "16r9B38"    16r0000 " invalid " 
                   "16r9B39"    16r0000 " invalid " 
                   "16r9B3A"    16r0000 " invalid " 
                   "16r9B3B"    16r6478 " <CJK> " 
                   "16r9B3C"    16r3534 " <CJK> " 
                   "16r9B3D"    16r0000 " invalid " 
                   "16r9B3E"    16r0000 " invalid " 
                   "16r9B3F"    16r0000 " invalid " 
                   "16r9B40"    16r0000 " invalid " 
                   "16r9B41"    16r3321 " <CJK> " 
                   "16r9B42"    16r3A32 " <CJK> " 
                   "16r9B43"    16r7231 " <CJK> " 
                   "16r9B44"    16r7230 " <CJK> " 
                   "16r9B45"    16r4C25 " <CJK> " 
                   "16r9B46"    16r0000 " invalid " 
                   "16r9B47"    16r0000 " invalid " 
                   "16r9B48"    16r0000 " invalid " 
                   "16r9B49"    16r0000 " invalid " 
                   "16r9B4A"    16r0000 " invalid " 
                   "16r9B4B"    16r0000 " invalid " 
                   "16r9B4C"    16r0000 " invalid " 
                   "16r9B4D"    16r7233 " <CJK> " 
                   "16r9B4E"    16r7234 " <CJK> " 
                   "16r9B4F"    16r7232 " <CJK> " 
                   "16r9B50"    16r0000 " invalid " 
                   "16r9B51"    16r7235 " <CJK> " 
                   "16r9B52"    16r0000 " invalid " 
                   "16r9B53"    16r0000 " invalid " 
                   "16r9B54"    16r4B62 " <CJK> " 
                   "16r9B55"    16r0000 " invalid " 
                   "16r9B56"    16r0000 " invalid " 
                   "16r9B57"    16r0000 " invalid " 
                   "16r9B58"    16r7236 " <CJK> " 
                   "16r9B59"    16r0000 " invalid " 
                   "16r9B5A"    16r357B " <CJK> " 
                   "16r9B5B"    16r0000 " invalid " 
                   "16r9B5C"    16r0000 " invalid " 
                   "16r9B5D"    16r0000 " invalid " 
                   "16r9B5E"    16r0000 " invalid " 
                   "16r9B5F"    16r0000 " invalid " 
                   "16r9B60"    16r0000 " invalid " 
                   "16r9B61"    16r0000 " invalid " 
                   "16r9B62"    16r0000 " invalid " 
                   "16r9B63"    16r0000 " invalid " 
                   "16r9B64"    16r0000 " invalid " 
                   "16r9B65"    16r0000 " invalid " 
                   "16r9B66"    16r0000 " invalid " 
                   "16r9B67"    16r0000 " invalid " 
                   "16r9B68"    16r0000 " invalid " 
                   "16r9B69"    16r0000 " invalid " 
                   "16r9B6A"    16r0000 " invalid " 
                   "16r9B6B"    16r0000 " invalid " 
                   "16r9B6C"    16r0000 " invalid " 
                   "16r9B6D"    16r0000 " invalid " 
                   "16r9B6E"    16r0000 " invalid " 
                   "16r9B6F"    16r4F25 " <CJK> " 
                   "16r9B70"    16r0000 " invalid " 
                   "16r9B71"    16r0000 " invalid " 
                   "16r9B72"    16r0000 " invalid " 
                   "16r9B73"    16r0000 " invalid " 
                   "16r9B74"    16r7237 " <CJK> " 
                   "16r9B75"    16r0000 " invalid " 
                   "16r9B76"    16r0000 " invalid " 
                   "16r9B77"    16r0000 " invalid " 
                   "16r9B78"    16r0000 " invalid " 
                   "16r9B79"    16r0000 " invalid " 
                   "16r9B7A"    16r0000 " invalid " 
                   "16r9B7B"    16r0000 " invalid " 
                   "16r9B7C"    16r0000 " invalid " 
                   "16r9B7D"    16r0000 " invalid " 
                   "16r9B7E"    16r0000 " invalid " 
                   "16r9B7F"    16r0000 " invalid " 
                   "16r9B80"    16r0000 " invalid " 
                   "16r9B81"    16r0000 " invalid " 
                   "16r9B82"    16r0000 " invalid " 
                   "16r9B83"    16r7239 " <CJK> " 
                   "16r9B84"    16r0000 " invalid " 
                   "16r9B85"    16r0000 " invalid " 
                   "16r9B86"    16r0000 " invalid " 
                   "16r9B87"    16r0000 " invalid " 
                   "16r9B88"    16r0000 " invalid " 
                   "16r9B89"    16r0000 " invalid " 
                   "16r9B8A"    16r0000 " invalid " 
                   "16r9B8B"    16r0000 " invalid " 
                   "16r9B8C"    16r0000 " invalid " 
                   "16r9B8D"    16r0000 " invalid " 
                   "16r9B8E"    16r303E " <CJK> " 
                   "16r9B8F"    16r0000 " invalid " 
                   "16r9B90"    16r0000 " invalid " 
                   "16r9B91"    16r723A " <CJK> " 
                   "16r9B92"    16r4A2B " <CJK> " 
                   "16r9B93"    16r7238 " <CJK> " 
                   "16r9B94"    16r0000 " invalid " 
                   "16r9B95"    16r0000 " invalid " 
                   "16r9B96"    16r723B " <CJK> " 
                   "16r9B97"    16r723C " <CJK> " 
                   "16r9B98"    16r0000 " invalid " 
                   "16r9B99"    16r0000 " invalid " 
                   "16r9B9A"    16r0000 " invalid " 
                   "16r9B9B"    16r0000 " invalid " 
                   "16r9B9C"    16r0000 " invalid " 
                   "16r9B9D"    16r0000 " invalid " 
                   "16r9B9E"    16r0000 " invalid " 
                   "16r9B9F"    16r723D " <CJK> " 
                   "16r9BA0"    16r723E " <CJK> " 
                   "16r9BA1"    16r0000 " invalid " 
                   "16r9BA2"    16r0000 " invalid " 
                   "16r9BA3"    16r0000 " invalid " 
                   "16r9BA4"    16r0000 " invalid " 
                   "16r9BA5"    16r0000 " invalid " 
                   "16r9BA6"    16r0000 " invalid " 
                   "16r9BA7"    16r0000 " invalid " 
                   "16r9BA8"    16r723F " <CJK> " 
                   "16r9BA9"    16r0000 " invalid " 
                   "16r9BAA"    16r4B6E " <CJK> " 
                   "16r9BAB"    16r3B2D " <CJK> " 
                   "16r9BAC"    16r0000 " invalid " 
                   "16r9BAD"    16r3A7A " <CJK> " 
                   "16r9BAE"    16r412F " <CJK> " 
                   "16r9BAF"    16r0000 " invalid " 
                   "16r9BB0"    16r0000 " invalid " 
                   "16r9BB1"    16r0000 " invalid " 
                   "16r9BB2"    16r0000 " invalid " 
                   "16r9BB3"    16r0000 " invalid " 
                   "16r9BB4"    16r7240 " <CJK> " 
                   "16r9BB5"    16r0000 " invalid " 
                   "16r9BB6"    16r0000 " invalid " 
                   "16r9BB7"    16r0000 " invalid " 
                   "16r9BB8"    16r0000 " invalid " 
                   "16r9BB9"    16r7243 " <CJK> " 
                   "16r9BBA"    16r0000 " invalid " 
                   "16r9BBB"    16r0000 " invalid " 
                   "16r9BBC"    16r0000 " invalid " 
                   "16r9BBD"    16r0000 " invalid " 
                   "16r9BBE"    16r0000 " invalid " 
                   "16r9BBF"    16r0000 " invalid " 
                   "16r9BC0"    16r7241 " <CJK> " 
                   "16r9BC1"    16r0000 " invalid " 
                   "16r9BC2"    16r0000 " invalid " 
                   "16r9BC3"    16r0000 " invalid " 
                   "16r9BC4"    16r0000 " invalid " 
                   "16r9BC5"    16r0000 " invalid " 
                   "16r9BC6"    16r7244 " <CJK> " 
                   "16r9BC7"    16r0000 " invalid " 
                   "16r9BC8"    16r0000 " invalid " 
                   "16r9BC9"    16r3871 " <CJK> " 
                   "16r9BCA"    16r7242 " <CJK> " 
                   "16r9BCB"    16r0000 " invalid " 
                   "16r9BCC"    16r0000 " invalid " 
                   "16r9BCD"    16r0000 " invalid " 
                   "16r9BCE"    16r0000 " invalid " 
                   "16r9BCF"    16r7245 " <CJK> " 
                   "16r9BD0"    16r0000 " invalid " 
                   "16r9BD1"    16r7246 " <CJK> " 
                   "16r9BD2"    16r7247 " <CJK> " 
                   "16r9BD3"    16r0000 " invalid " 
                   "16r9BD4"    16r724B " <CJK> " 
                   "16r9BD5"    16r0000 " invalid " 
                   "16r9BD6"    16r3B2A " <CJK> " 
                   "16r9BD7"    16r0000 " invalid " 
                   "16r9BD8"    16r0000 " invalid " 
                   "16r9BD9"    16r0000 " invalid " 
                   "16r9BDA"    16r0000 " invalid " 
                   "16r9BDB"    16r4264 " <CJK> " 
                   "16r9BDC"    16r0000 " invalid " 
                   "16r9BDD"    16r0000 " invalid " 
                   "16r9BDE"    16r0000 " invalid " 
                   "16r9BDF"    16r0000 " invalid " 
                   "16r9BE0"    16r0000 " invalid " 
                   "16r9BE1"    16r724C " <CJK> " 
                   "16r9BE2"    16r7249 " <CJK> " 
                   "16r9BE3"    16r7248 " <CJK> " 
                   "16r9BE4"    16r724A " <CJK> " 
                   "16r9BE5"    16r0000 " invalid " 
                   "16r9BE6"    16r0000 " invalid " 
                   "16r9BE7"    16r0000 " invalid " 
                   "16r9BE8"    16r375F " <CJK> " 
                   "16r9BE9"    16r0000 " invalid " 
                   "16r9BEA"    16r0000 " invalid " 
                   "16r9BEB"    16r0000 " invalid " 
                   "16r9BEC"    16r0000 " invalid " 
                   "16r9BED"    16r0000 " invalid " 
                   "16r9BEE"    16r0000 " invalid " 
                   "16r9BEF"    16r0000 " invalid " 
                   "16r9BF0"    16r7250 " <CJK> " 
                   "16r9BF1"    16r724F " <CJK> " 
                   "16r9BF2"    16r724E " <CJK> " 
                   "16r9BF3"    16r0000 " invalid " 
                   "16r9BF4"    16r0000 " invalid " 
                   "16r9BF5"    16r3033 " <CJK> " 
                   "16r9BF6"    16r0000 " invalid " 
                   "16r9BF7"    16r0000 " invalid " 
                   "16r9BF8"    16r0000 " invalid " 
                   "16r9BF9"    16r0000 " invalid " 
                   "16r9BFA"    16r0000 " invalid " 
                   "16r9BFB"    16r0000 " invalid " 
                   "16r9BFC"    16r0000 " invalid " 
                   "16r9BFD"    16r0000 " invalid " 
                   "16r9BFE"    16r0000 " invalid " 
                   "16r9BFF"    16r0000 " invalid " 
                   "16r9C00"    16r0000 " invalid " 
                   "16r9C01"    16r0000 " invalid " 
                   "16r9C02"    16r0000 " invalid " 
                   "16r9C03"    16r0000 " invalid " 
                   "16r9C04"    16r725A " <CJK> " 
                   "16r9C05"    16r0000 " invalid " 
                   "16r9C06"    16r7256 " <CJK> " 
                   "16r9C07"    16r0000 " invalid " 
                   "16r9C08"    16r7257 " <CJK> " 
                   "16r9C09"    16r7253 " <CJK> " 
                   "16r9C0A"    16r7259 " <CJK> " 
                   "16r9C0B"    16r0000 " invalid " 
                   "16r9C0C"    16r7255 " <CJK> " 
                   "16r9C0D"    16r3362 " <CJK> " 
                   "16r9C0E"    16r0000 " invalid " 
                   "16r9C0F"    16r0000 " invalid " 
                   "16r9C10"    16r4F4C " <CJK> " 
                   "16r9C11"    16r0000 " invalid " 
                   "16r9C12"    16r7258 " <CJK> " 
                   "16r9C13"    16r7254 " <CJK> " 
                   "16r9C14"    16r7252 " <CJK> " 
                   "16r9C15"    16r7251 " <CJK> " 
                   "16r9C16"    16r0000 " invalid " 
                   "16r9C17"    16r0000 " invalid " 
                   "16r9C18"    16r0000 " invalid " 
                   "16r9C19"    16r0000 " invalid " 
                   "16r9C1A"    16r0000 " invalid " 
                   "16r9C1B"    16r725C " <CJK> " 
                   "16r9C1C"    16r0000 " invalid " 
                   "16r9C1D"    16r0000 " invalid " 
                   "16r9C1E"    16r0000 " invalid " 
                   "16r9C1F"    16r0000 " invalid " 
                   "16r9C20"    16r0000 " invalid " 
                   "16r9C21"    16r725F " <CJK> " 
                   "16r9C22"    16r0000 " invalid " 
                   "16r9C23"    16r0000 " invalid " 
                   "16r9C24"    16r725E " <CJK> " 
                   "16r9C25"    16r725D " <CJK> " 
                   "16r9C26"    16r0000 " invalid " 
                   "16r9C27"    16r0000 " invalid " 
                   "16r9C28"    16r0000 " invalid " 
                   "16r9C29"    16r0000 " invalid " 
                   "16r9C2A"    16r0000 " invalid " 
                   "16r9C2B"    16r0000 " invalid " 
                   "16r9C2C"    16r0000 " invalid " 
                   "16r9C2D"    16r4949 " <CJK> " 
                   "16r9C2E"    16r725B " <CJK> " 
                   "16r9C2F"    16r3073 " <CJK> " 
                   "16r9C30"    16r7260 " <CJK> " 
                   "16r9C31"    16r0000 " invalid " 
                   "16r9C32"    16r7262 " <CJK> " 
                   "16r9C33"    16r0000 " invalid " 
                   "16r9C34"    16r0000 " invalid " 
                   "16r9C35"    16r0000 " invalid " 
                   "16r9C36"    16r0000 " invalid " 
                   "16r9C37"    16r0000 " invalid " 
                   "16r9C38"    16r0000 " invalid " 
                   "16r9C39"    16r336F " <CJK> " 
                   "16r9C3A"    16r724D " <CJK> " 
                   "16r9C3B"    16r3137 " <CJK> " 
                   "16r9C3C"    16r0000 " invalid " 
                   "16r9C3D"    16r0000 " invalid " 
                   "16r9C3E"    16r7264 " <CJK> " 
                   "16r9C3F"    16r0000 " invalid " 
                   "16r9C40"    16r0000 " invalid " 
                   "16r9C41"    16r0000 " invalid " 
                   "16r9C42"    16r0000 " invalid " 
                   "16r9C43"    16r0000 " invalid " 
                   "16r9C44"    16r0000 " invalid " 
                   "16r9C45"    16r0000 " invalid " 
                   "16r9C46"    16r7263 " <CJK> " 
                   "16r9C47"    16r7261 " <CJK> " 
                   "16r9C48"    16r432D " <CJK> " 
                   "16r9C49"    16r0000 " invalid " 
                   "16r9C4A"    16r0000 " invalid " 
                   "16r9C4B"    16r0000 " invalid " 
                   "16r9C4C"    16r0000 " invalid " 
                   "16r9C4D"    16r0000 " invalid " 
                   "16r9C4E"    16r0000 " invalid " 
                   "16r9C4F"    16r0000 " invalid " 
                   "16r9C50"    16r0000 " invalid " 
                   "16r9C51"    16r0000 " invalid " 
                   "16r9C52"    16r4B70 " <CJK> " 
                   "16r9C53"    16r0000 " invalid " 
                   "16r9C54"    16r0000 " invalid " 
                   "16r9C55"    16r0000 " invalid " 
                   "16r9C56"    16r0000 " invalid " 
                   "16r9C57"    16r4E5A " <CJK> " 
                   "16r9C58"    16r0000 " invalid " 
                   "16r9C59"    16r0000 " invalid " 
                   "16r9C5A"    16r7265 " <CJK> " 
                   "16r9C5B"    16r0000 " invalid " 
                   "16r9C5C"    16r0000 " invalid " 
                   "16r9C5D"    16r0000 " invalid " 
                   "16r9C5E"    16r0000 " invalid " 
                   "16r9C5F"    16r0000 " invalid " 
                   "16r9C60"    16r7266 " <CJK> " 
                   "16r9C61"    16r0000 " invalid " 
                   "16r9C62"    16r0000 " invalid " 
                   "16r9C63"    16r0000 " invalid " 
                   "16r9C64"    16r0000 " invalid " 
                   "16r9C65"    16r0000 " invalid " 
                   "16r9C66"    16r0000 " invalid " 
                   "16r9C67"    16r7267 " <CJK> " 
                   "16r9C68"    16r0000 " invalid " 
                   "16r9C69"    16r0000 " invalid " 
                   "16r9C6A"    16r0000 " invalid " 
                   "16r9C6B"    16r0000 " invalid " 
                   "16r9C6C"    16r0000 " invalid " 
                   "16r9C6D"    16r0000 " invalid " 
                   "16r9C6E"    16r0000 " invalid " 
                   "16r9C6F"    16r0000 " invalid " 
                   "16r9C70"    16r0000 " invalid " 
                   "16r9C71"    16r0000 " invalid " 
                   "16r9C72"    16r0000 " invalid " 
                   "16r9C73"    16r0000 " invalid " 
                   "16r9C74"    16r0000 " invalid " 
                   "16r9C75"    16r0000 " invalid " 
                   "16r9C76"    16r7268 " <CJK> " 
                   "16r9C77"    16r0000 " invalid " 
                   "16r9C78"    16r7269 " <CJK> " 
                   ) at:(unicode - 16r9AA7).
                t == 0 ifFalse:[^ t].
                ^ self encodingError
            ] value.
        ].
        unicode <= 16r9CE4 ifTrue:[
            ^ self encodingError.
        ].
        unicode <= 16r9E1E ifTrue:[
            [
                |t|
                t := #(
                   "16r9CE5"    16r443B " <CJK> " 
                   "16r9CE6"    16r0000 " invalid " 
                   "16r9CE7"    16r726A " <CJK> " 
                   "16r9CE8"    16r0000 " invalid " 
                   "16r9CE9"    16r4837 " <CJK> " 
                   "16r9CEA"    16r0000 " invalid " 
                   "16r9CEB"    16r726F " <CJK> " 
                   "16r9CEC"    16r726B " <CJK> " 
                   "16r9CED"    16r0000 " invalid " 
                   "16r9CEE"    16r0000 " invalid " 
                   "16r9CEF"    16r0000 " invalid " 
                   "16r9CF0"    16r726C " <CJK> " 
                   "16r9CF1"    16r0000 " invalid " 
                   "16r9CF2"    16r0000 " invalid " 
                   "16r9CF3"    16r4B31 " <CJK> " 
                   "16r9CF4"    16r4C44 " <CJK> " 
                   "16r9CF5"    16r0000 " invalid " 
                   "16r9CF6"    16r4650 " <CJK> " 
                   "16r9CF7"    16r0000 " invalid " 
                   "16r9CF8"    16r0000 " invalid " 
                   "16r9CF9"    16r0000 " invalid " 
                   "16r9CFA"    16r0000 " invalid " 
                   "16r9CFB"    16r0000 " invalid " 
                   "16r9CFC"    16r0000 " invalid " 
                   "16r9CFD"    16r0000 " invalid " 
                   "16r9CFE"    16r0000 " invalid " 
                   "16r9CFF"    16r0000 " invalid " 
                   "16r9D00"    16r0000 " invalid " 
                   "16r9D01"    16r0000 " invalid " 
                   "16r9D02"    16r0000 " invalid " 
                   "16r9D03"    16r7270 " <CJK> " 
                   "16r9D04"    16r0000 " invalid " 
                   "16r9D05"    16r0000 " invalid " 
                   "16r9D06"    16r7271 " <CJK> " 
                   "16r9D07"    16r463E " <CJK> " 
                   "16r9D08"    16r726E " <CJK> " 
                   "16r9D09"    16r726D " <CJK> " 
                   "16r9D0A"    16r0000 " invalid " 
                   "16r9D0B"    16r0000 " invalid " 
                   "16r9D0C"    16r0000 " invalid " 
                   "16r9D0D"    16r0000 " invalid " 
                   "16r9D0E"    16r322A " <CJK> " 
                   "16r9D0F"    16r0000 " invalid " 
                   "16r9D10"    16r0000 " invalid " 
                   "16r9D11"    16r0000 " invalid " 
                   "16r9D12"    16r7279 " <CJK> " 
                   "16r9D13"    16r0000 " invalid " 
                   "16r9D14"    16r0000 " invalid " 
                   "16r9D15"    16r7278 " <CJK> " 
                   "16r9D16"    16r0000 " invalid " 
                   "16r9D17"    16r0000 " invalid " 
                   "16r9D18"    16r0000 " invalid " 
                   "16r9D19"    16r0000 " invalid " 
                   "16r9D1A"    16r0000 " invalid " 
                   "16r9D1B"    16r3175 " <CJK> " 
                   "16r9D1C"    16r0000 " invalid " 
                   "16r9D1D"    16r0000 " invalid " 
                   "16r9D1E"    16r0000 " invalid " 
                   "16r9D1F"    16r7276 " <CJK> " 
                   "16r9D20"    16r0000 " invalid " 
                   "16r9D21"    16r0000 " invalid " 
                   "16r9D22"    16r0000 " invalid " 
                   "16r9D23"    16r7275 " <CJK> " 
                   "16r9D24"    16r0000 " invalid " 
                   "16r9D25"    16r0000 " invalid " 
                   "16r9D26"    16r7273 " <CJK> " 
                   "16r9D27"    16r0000 " invalid " 
                   "16r9D28"    16r337B " <CJK> " 
                   "16r9D29"    16r0000 " invalid " 
                   "16r9D2A"    16r7272 " <CJK> " 
                   "16r9D2B"    16r3C32 " <CJK> " 
                   "16r9D2C"    16r3229 " <CJK> " 
                   "16r9D2D"    16r0000 " invalid " 
                   "16r9D2E"    16r0000 " invalid " 
                   "16r9D2F"    16r0000 " invalid " 
                   "16r9D30"    16r0000 " invalid " 
                   "16r9D31"    16r0000 " invalid " 
                   "16r9D32"    16r0000 " invalid " 
                   "16r9D33"    16r0000 " invalid " 
                   "16r9D34"    16r0000 " invalid " 
                   "16r9D35"    16r0000 " invalid " 
                   "16r9D36"    16r0000 " invalid " 
                   "16r9D37"    16r0000 " invalid " 
                   "16r9D38"    16r0000 " invalid " 
                   "16r9D39"    16r0000 " invalid " 
                   "16r9D3A"    16r0000 " invalid " 
                   "16r9D3B"    16r3963 " <CJK> " 
                   "16r9D3C"    16r0000 " invalid " 
                   "16r9D3D"    16r0000 " invalid " 
                   "16r9D3E"    16r727C " <CJK> " 
                   "16r9D3F"    16r727B " <CJK> " 
                   "16r9D40"    16r0000 " invalid " 
                   "16r9D41"    16r727A " <CJK> " 
                   "16r9D42"    16r0000 " invalid " 
                   "16r9D43"    16r0000 " invalid " 
                   "16r9D44"    16r7277 " <CJK> " 
                   "16r9D45"    16r0000 " invalid " 
                   "16r9D46"    16r727D " <CJK> " 
                   "16r9D47"    16r0000 " invalid " 
                   "16r9D48"    16r727E " <CJK> " 
                   "16r9D49"    16r0000 " invalid " 
                   "16r9D4A"    16r0000 " invalid " 
                   "16r9D4B"    16r0000 " invalid " 
                   "16r9D4C"    16r0000 " invalid " 
                   "16r9D4D"    16r0000 " invalid " 
                   "16r9D4E"    16r0000 " invalid " 
                   "16r9D4F"    16r0000 " invalid " 
                   "16r9D50"    16r7325 " <CJK> " 
                   "16r9D51"    16r7324 " <CJK> " 
                   "16r9D52"    16r0000 " invalid " 
                   "16r9D53"    16r0000 " invalid " 
                   "16r9D54"    16r0000 " invalid " 
                   "16r9D55"    16r0000 " invalid " 
                   "16r9D56"    16r0000 " invalid " 
                   "16r9D57"    16r0000 " invalid " 
                   "16r9D58"    16r0000 " invalid " 
                   "16r9D59"    16r7326 " <CJK> " 
                   "16r9D5A"    16r0000 " invalid " 
                   "16r9D5B"    16r0000 " invalid " 
                   "16r9D5C"    16r312D " <CJK> " 
                   "16r9D5D"    16r7321 " <CJK> " 
                   "16r9D5E"    16r7322 " <CJK> " 
                   "16r9D5F"    16r0000 " invalid " 
                   "16r9D60"    16r3974 " <CJK> " 
                   "16r9D61"    16r4C39 " <CJK> " 
                   "16r9D62"    16r0000 " invalid " 
                   "16r9D63"    16r0000 " invalid " 
                   "16r9D64"    16r7323 " <CJK> " 
                   "16r9D65"    16r0000 " invalid " 
                   "16r9D66"    16r0000 " invalid " 
                   "16r9D67"    16r0000 " invalid " 
                   "16r9D68"    16r0000 " invalid " 
                   "16r9D69"    16r0000 " invalid " 
                   "16r9D6A"    16r0000 " invalid " 
                   "16r9D6B"    16r0000 " invalid " 
                   "16r9D6C"    16r4B32 " <CJK> " 
                   "16r9D6D"    16r0000 " invalid " 
                   "16r9D6E"    16r0000 " invalid " 
                   "16r9D6F"    16r732B " <CJK> " 
                   "16r9D70"    16r0000 " invalid " 
                   "16r9D71"    16r0000 " invalid " 
                   "16r9D72"    16r7327 " <CJK> " 
                   "16r9D73"    16r0000 " invalid " 
                   "16r9D74"    16r0000 " invalid " 
                   "16r9D75"    16r0000 " invalid " 
                   "16r9D76"    16r0000 " invalid " 
                   "16r9D77"    16r0000 " invalid " 
                   "16r9D78"    16r0000 " invalid " 
                   "16r9D79"    16r0000 " invalid " 
                   "16r9D7A"    16r732C " <CJK> " 
                   "16r9D7B"    16r0000 " invalid " 
                   "16r9D7C"    16r0000 " invalid " 
                   "16r9D7D"    16r0000 " invalid " 
                   "16r9D7E"    16r0000 " invalid " 
                   "16r9D7F"    16r0000 " invalid " 
                   "16r9D80"    16r0000 " invalid " 
                   "16r9D81"    16r0000 " invalid " 
                   "16r9D82"    16r0000 " invalid " 
                   "16r9D83"    16r0000 " invalid " 
                   "16r9D84"    16r0000 " invalid " 
                   "16r9D85"    16r0000 " invalid " 
                   "16r9D86"    16r0000 " invalid " 
                   "16r9D87"    16r7329 " <CJK> " 
                   "16r9D88"    16r0000 " invalid " 
                   "16r9D89"    16r7328 " <CJK> " 
                   "16r9D8A"    16r0000 " invalid " 
                   "16r9D8B"    16r0000 " invalid " 
                   "16r9D8C"    16r0000 " invalid " 
                   "16r9D8D"    16r0000 " invalid " 
                   "16r9D8E"    16r0000 " invalid " 
                   "16r9D8F"    16r375C " <CJK> " 
                   "16r9D90"    16r0000 " invalid " 
                   "16r9D91"    16r0000 " invalid " 
                   "16r9D92"    16r0000 " invalid " 
                   "16r9D93"    16r0000 " invalid " 
                   "16r9D94"    16r0000 " invalid " 
                   "16r9D95"    16r0000 " invalid " 
                   "16r9D96"    16r0000 " invalid " 
                   "16r9D97"    16r0000 " invalid " 
                   "16r9D98"    16r0000 " invalid " 
                   "16r9D99"    16r0000 " invalid " 
                   "16r9D9A"    16r732D " <CJK> " 
                   "16r9D9B"    16r0000 " invalid " 
                   "16r9D9C"    16r0000 " invalid " 
                   "16r9D9D"    16r0000 " invalid " 
                   "16r9D9E"    16r0000 " invalid " 
                   "16r9D9F"    16r0000 " invalid " 
                   "16r9DA0"    16r0000 " invalid " 
                   "16r9DA1"    16r0000 " invalid " 
                   "16r9DA2"    16r0000 " invalid " 
                   "16r9DA3"    16r0000 " invalid " 
                   "16r9DA4"    16r732E " <CJK> " 
                   "16r9DA5"    16r0000 " invalid " 
                   "16r9DA6"    16r0000 " invalid " 
                   "16r9DA7"    16r0000 " invalid " 
                   "16r9DA8"    16r0000 " invalid " 
                   "16r9DA9"    16r732F " <CJK> " 
                   "16r9DAA"    16r0000 " invalid " 
                   "16r9DAB"    16r732A " <CJK> " 
                   "16r9DAC"    16r0000 " invalid " 
                   "16r9DAD"    16r0000 " invalid " 
                   "16r9DAE"    16r0000 " invalid " 
                   "16r9DAF"    16r7274 " <CJK> " 
                   "16r9DB0"    16r0000 " invalid " 
                   "16r9DB1"    16r0000 " invalid " 
                   "16r9DB2"    16r7330 " <CJK> " 
                   "16r9DB3"    16r0000 " invalid " 
                   "16r9DB4"    16r4461 " <CJK> " 
                   "16r9DB5"    16r0000 " invalid " 
                   "16r9DB6"    16r0000 " invalid " 
                   "16r9DB7"    16r0000 " invalid " 
                   "16r9DB8"    16r7334 " <CJK> " 
                   "16r9DB9"    16r0000 " invalid " 
                   "16r9DBA"    16r7335 " <CJK> " 
                   "16r9DBB"    16r7333 " <CJK> " 
                   "16r9DBC"    16r0000 " invalid " 
                   "16r9DBD"    16r0000 " invalid " 
                   "16r9DBE"    16r0000 " invalid " 
                   "16r9DBF"    16r0000 " invalid " 
                   "16r9DC0"    16r0000 " invalid " 
                   "16r9DC1"    16r7332 " <CJK> " 
                   "16r9DC2"    16r7338 " <CJK> " 
                   "16r9DC3"    16r0000 " invalid " 
                   "16r9DC4"    16r7331 " <CJK> " 
                   "16r9DC5"    16r0000 " invalid " 
                   "16r9DC6"    16r7336 " <CJK> " 
                   "16r9DC7"    16r0000 " invalid " 
                   "16r9DC8"    16r0000 " invalid " 
                   "16r9DC9"    16r0000 " invalid " 
                   "16r9DCA"    16r0000 " invalid " 
                   "16r9DCB"    16r0000 " invalid " 
                   "16r9DCC"    16r0000 " invalid " 
                   "16r9DCD"    16r0000 " invalid " 
                   "16r9DCE"    16r0000 " invalid " 
                   "16r9DCF"    16r7337 " <CJK> " 
                   "16r9DD0"    16r0000 " invalid " 
                   "16r9DD1"    16r0000 " invalid " 
                   "16r9DD2"    16r0000 " invalid " 
                   "16r9DD3"    16r733A " <CJK> " 
                   "16r9DD4"    16r0000 " invalid " 
                   "16r9DD5"    16r0000 " invalid " 
                   "16r9DD6"    16r0000 " invalid " 
                   "16r9DD7"    16r0000 " invalid " 
                   "16r9DD8"    16r0000 " invalid " 
                   "16r9DD9"    16r7339 " <CJK> " 
                   "16r9DDA"    16r0000 " invalid " 
                   "16r9DDB"    16r0000 " invalid " 
                   "16r9DDC"    16r0000 " invalid " 
                   "16r9DDD"    16r0000 " invalid " 
                   "16r9DDE"    16r0000 " invalid " 
                   "16r9DDF"    16r0000 " invalid " 
                   "16r9DE0"    16r0000 " invalid " 
                   "16r9DE1"    16r0000 " invalid " 
                   "16r9DE2"    16r0000 " invalid " 
                   "16r9DE3"    16r0000 " invalid " 
                   "16r9DE4"    16r0000 " invalid " 
                   "16r9DE5"    16r0000 " invalid " 
                   "16r9DE6"    16r733C " <CJK> " 
                   "16r9DE7"    16r0000 " invalid " 
                   "16r9DE8"    16r0000 " invalid " 
                   "16r9DE9"    16r0000 " invalid " 
                   "16r9DEA"    16r0000 " invalid " 
                   "16r9DEB"    16r0000 " invalid " 
                   "16r9DEC"    16r0000 " invalid " 
                   "16r9DED"    16r733D " <CJK> " 
                   "16r9DEE"    16r0000 " invalid " 
                   "16r9DEF"    16r733E " <CJK> " 
                   "16r9DF0"    16r0000 " invalid " 
                   "16r9DF1"    16r0000 " invalid " 
                   "16r9DF2"    16r4F49 " <CJK> " 
                   "16r9DF3"    16r0000 " invalid " 
                   "16r9DF4"    16r0000 " invalid " 
                   "16r9DF5"    16r0000 " invalid " 
                   "16r9DF6"    16r0000 " invalid " 
                   "16r9DF7"    16r0000 " invalid " 
                   "16r9DF8"    16r733B " <CJK> " 
                   "16r9DF9"    16r426B " <CJK> " 
                   "16r9DFA"    16r3A6D " <CJK> " 
                   "16r9DFB"    16r0000 " invalid " 
                   "16r9DFC"    16r0000 " invalid " 
                   "16r9DFD"    16r733F " <CJK> " 
                   "16r9DFE"    16r0000 " invalid " 
                   "16r9DFF"    16r0000 " invalid " 
                   "16r9E00"    16r0000 " invalid " 
                   "16r9E01"    16r0000 " invalid " 
                   "16r9E02"    16r0000 " invalid " 
                   "16r9E03"    16r0000 " invalid " 
                   "16r9E04"    16r0000 " invalid " 
                   "16r9E05"    16r0000 " invalid " 
                   "16r9E06"    16r0000 " invalid " 
                   "16r9E07"    16r0000 " invalid " 
                   "16r9E08"    16r0000 " invalid " 
                   "16r9E09"    16r0000 " invalid " 
                   "16r9E0A"    16r0000 " invalid " 
                   "16r9E0B"    16r0000 " invalid " 
                   "16r9E0C"    16r0000 " invalid " 
                   "16r9E0D"    16r0000 " invalid " 
                   "16r9E0E"    16r0000 " invalid " 
                   "16r9E0F"    16r0000 " invalid " 
                   "16r9E10"    16r0000 " invalid " 
                   "16r9E11"    16r0000 " invalid " 
                   "16r9E12"    16r0000 " invalid " 
                   "16r9E13"    16r0000 " invalid " 
                   "16r9E14"    16r0000 " invalid " 
                   "16r9E15"    16r0000 " invalid " 
                   "16r9E16"    16r0000 " invalid " 
                   "16r9E17"    16r0000 " invalid " 
                   "16r9E18"    16r0000 " invalid " 
                   "16r9E19"    16r0000 " invalid " 
                   "16r9E1A"    16r7340 " <CJK> " 
                   "16r9E1B"    16r7341 " <CJK> " 
                   "16r9E1C"    16r0000 " invalid " 
                   "16r9E1D"    16r0000 " invalid " 
                   "16r9E1E"    16r7342 " <CJK> " 
                   ) at:(unicode - 16r9CE4).
                t == 0 ifFalse:[^ t].
                ^ self encodingError
            ] value.
        ].
        unicode <= 16r9E74 ifTrue:[
            ^ self encodingError.
        ].
        [
            |t|
            t := #(
               "16r9E75"    16r7343 " <CJK> " 
               "16r9E76"    16r0000 " invalid " 
               "16r9E77"    16r0000 " invalid " 
               "16r9E78"    16r3834 " <CJK> " 
               "16r9E79"    16r7344 " <CJK> " 
               "16r9E7A"    16r0000 " invalid " 
               "16r9E7B"    16r0000 " invalid " 
               "16r9E7C"    16r0000 " invalid " 
               "16r9E7D"    16r7345 " <CJK> " 
               "16r9E7E"    16r0000 " invalid " 
               "16r9E7F"    16r3C2F " <CJK> " 
               "16r9E80"    16r0000 " invalid " 
               "16r9E81"    16r7346 " <CJK> " 
               "16r9E82"    16r0000 " invalid " 
               "16r9E83"    16r0000 " invalid " 
               "16r9E84"    16r0000 " invalid " 
               "16r9E85"    16r0000 " invalid " 
               "16r9E86"    16r0000 " invalid " 
               "16r9E87"    16r0000 " invalid " 
               "16r9E88"    16r7347 " <CJK> " 
               "16r9E89"    16r0000 " invalid " 
               "16r9E8A"    16r0000 " invalid " 
               "16r9E8B"    16r7348 " <CJK> " 
               "16r9E8C"    16r7349 " <CJK> " 
               "16r9E8D"    16r0000 " invalid " 
               "16r9E8E"    16r0000 " invalid " 
               "16r9E8F"    16r0000 " invalid " 
               "16r9E90"    16r0000 " invalid " 
               "16r9E91"    16r734C " <CJK> " 
               "16r9E92"    16r734A " <CJK> " 
               "16r9E93"    16r4F3C " <CJK> " 
               "16r9E94"    16r0000 " invalid " 
               "16r9E95"    16r734B " <CJK> " 
               "16r9E96"    16r0000 " invalid " 
               "16r9E97"    16r4E6F " <CJK> " 
               "16r9E98"    16r0000 " invalid " 
               "16r9E99"    16r0000 " invalid " 
               "16r9E9A"    16r0000 " invalid " 
               "16r9E9B"    16r0000 " invalid " 
               "16r9E9C"    16r0000 " invalid " 
               "16r9E9D"    16r734D " <CJK> " 
               "16r9E9E"    16r0000 " invalid " 
               "16r9E9F"    16r4E5B " <CJK> " 
               "16r9EA0"    16r0000 " invalid " 
               "16r9EA1"    16r0000 " invalid " 
               "16r9EA2"    16r0000 " invalid " 
               "16r9EA3"    16r0000 " invalid " 
               "16r9EA4"    16r0000 " invalid " 
               "16r9EA5"    16r734E " <CJK> " 
               "16r9EA6"    16r477E " <CJK> " 
               "16r9EA7"    16r0000 " invalid " 
               "16r9EA8"    16r0000 " invalid " 
               "16r9EA9"    16r734F " <CJK> " 
               "16r9EAA"    16r7351 " <CJK> " 
               "16r9EAB"    16r0000 " invalid " 
               "16r9EAC"    16r0000 " invalid " 
               "16r9EAD"    16r7352 " <CJK> " 
               "16r9EAE"    16r0000 " invalid " 
               "16r9EAF"    16r0000 " invalid " 
               "16r9EB0"    16r0000 " invalid " 
               "16r9EB1"    16r0000 " invalid " 
               "16r9EB2"    16r0000 " invalid " 
               "16r9EB3"    16r0000 " invalid " 
               "16r9EB4"    16r0000 " invalid " 
               "16r9EB5"    16r0000 " invalid " 
               "16r9EB6"    16r0000 " invalid " 
               "16r9EB7"    16r0000 " invalid " 
               "16r9EB8"    16r7350 " <CJK> " 
               "16r9EB9"    16r396D " <CJK> " 
               "16r9EBA"    16r4C4D " <CJK> " 
               "16r9EBB"    16r4B63 " <CJK> " 
               "16r9EBC"    16r5677 " <CJK> " 
               "16r9EBD"    16r0000 " invalid " 
               "16r9EBE"    16r5D60 " <CJK> " 
               "16r9EBF"    16r4B7B " <CJK> " 
               "16r9EC0"    16r0000 " invalid " 
               "16r9EC1"    16r0000 " invalid " 
               "16r9EC2"    16r0000 " invalid " 
               "16r9EC3"    16r0000 " invalid " 
               "16r9EC4"    16r322B " <CJK> " 
               "16r9EC5"    16r0000 " invalid " 
               "16r9EC6"    16r0000 " invalid " 
               "16r9EC7"    16r0000 " invalid " 
               "16r9EC8"    16r0000 " invalid " 
               "16r9EC9"    16r0000 " invalid " 
               "16r9ECA"    16r0000 " invalid " 
               "16r9ECB"    16r0000 " invalid " 
               "16r9ECC"    16r7354 " <CJK> " 
               "16r9ECD"    16r3550 " <CJK> " 
               "16r9ECE"    16r7355 " <CJK> " 
               "16r9ECF"    16r7356 " <CJK> " 
               "16r9ED0"    16r7357 " <CJK> " 
               "16r9ED1"    16r0000 " invalid " 
               "16r9ED2"    16r3975 " <CJK> " 
               "16r9ED3"    16r0000 " invalid " 
               "16r9ED4"    16r7358 " <CJK> " 
               "16r9ED5"    16r0000 " invalid " 
               "16r9ED6"    16r0000 " invalid " 
               "16r9ED7"    16r0000 " invalid " 
               "16r9ED8"    16r6054 " <CJK> " 
               "16r9ED9"    16r4C5B " <CJK> " 
               "16r9EDA"    16r0000 " invalid " 
               "16r9EDB"    16r4263 " <CJK> " 
               "16r9EDC"    16r7359 " <CJK> " 
               "16r9EDD"    16r735B " <CJK> " 
               "16r9EDE"    16r735A " <CJK> " 
               "16r9EDF"    16r0000 " invalid " 
               "16r9EE0"    16r735C " <CJK> " 
               "16r9EE1"    16r0000 " invalid " 
               "16r9EE2"    16r0000 " invalid " 
               "16r9EE3"    16r0000 " invalid " 
               "16r9EE4"    16r0000 " invalid " 
               "16r9EE5"    16r735D " <CJK> " 
               "16r9EE6"    16r0000 " invalid " 
               "16r9EE7"    16r0000 " invalid " 
               "16r9EE8"    16r735E " <CJK> " 
               "16r9EE9"    16r0000 " invalid " 
               "16r9EEA"    16r0000 " invalid " 
               "16r9EEB"    16r0000 " invalid " 
               "16r9EEC"    16r0000 " invalid " 
               "16r9EED"    16r0000 " invalid " 
               "16r9EEE"    16r0000 " invalid " 
               "16r9EEF"    16r735F " <CJK> " 
               "16r9EF0"    16r0000 " invalid " 
               "16r9EF1"    16r0000 " invalid " 
               "16r9EF2"    16r0000 " invalid " 
               "16r9EF3"    16r0000 " invalid " 
               "16r9EF4"    16r7360 " <CJK> " 
               "16r9EF5"    16r0000 " invalid " 
               "16r9EF6"    16r7361 " <CJK> " 
               "16r9EF7"    16r7362 " <CJK> " 
               "16r9EF8"    16r0000 " invalid " 
               "16r9EF9"    16r7363 " <CJK> " 
               "16r9EFA"    16r0000 " invalid " 
               "16r9EFB"    16r7364 " <CJK> " 
               "16r9EFC"    16r7365 " <CJK> " 
               "16r9EFD"    16r7366 " <CJK> " 
               "16r9EFE"    16r0000 " invalid " 
               "16r9EFF"    16r0000 " invalid " 
               "16r9F00"    16r0000 " invalid " 
               "16r9F01"    16r0000 " invalid " 
               "16r9F02"    16r0000 " invalid " 
               "16r9F03"    16r0000 " invalid " 
               "16r9F04"    16r0000 " invalid " 
               "16r9F05"    16r0000 " invalid " 
               "16r9F06"    16r0000 " invalid " 
               "16r9F07"    16r7367 " <CJK> " 
               "16r9F08"    16r7368 " <CJK> " 
               "16r9F09"    16r0000 " invalid " 
               "16r9F0A"    16r0000 " invalid " 
               "16r9F0B"    16r0000 " invalid " 
               "16r9F0C"    16r0000 " invalid " 
               "16r9F0D"    16r0000 " invalid " 
               "16r9F0E"    16r4524 " <CJK> " 
               "16r9F0F"    16r0000 " invalid " 
               "16r9F10"    16r0000 " invalid " 
               "16r9F11"    16r0000 " invalid " 
               "16r9F12"    16r0000 " invalid " 
               "16r9F13"    16r385D " <CJK> " 
               "16r9F14"    16r0000 " invalid " 
               "16r9F15"    16r736A " <CJK> " 
               "16r9F16"    16r0000 " invalid " 
               "16r9F17"    16r0000 " invalid " 
               "16r9F18"    16r0000 " invalid " 
               "16r9F19"    16r0000 " invalid " 
               "16r9F1A"    16r0000 " invalid " 
               "16r9F1B"    16r0000 " invalid " 
               "16r9F1C"    16r0000 " invalid " 
               "16r9F1D"    16r0000 " invalid " 
               "16r9F1E"    16r0000 " invalid " 
               "16r9F1F"    16r0000 " invalid " 
               "16r9F20"    16r414D " <CJK> " 
               "16r9F21"    16r736B " <CJK> " 
               "16r9F22"    16r0000 " invalid " 
               "16r9F23"    16r0000 " invalid " 
               "16r9F24"    16r0000 " invalid " 
               "16r9F25"    16r0000 " invalid " 
               "16r9F26"    16r0000 " invalid " 
               "16r9F27"    16r0000 " invalid " 
               "16r9F28"    16r0000 " invalid " 
               "16r9F29"    16r0000 " invalid " 
               "16r9F2A"    16r0000 " invalid " 
               "16r9F2B"    16r0000 " invalid " 
               "16r9F2C"    16r736C " <CJK> " 
               "16r9F2D"    16r0000 " invalid " 
               "16r9F2E"    16r0000 " invalid " 
               "16r9F2F"    16r0000 " invalid " 
               "16r9F30"    16r0000 " invalid " 
               "16r9F31"    16r0000 " invalid " 
               "16r9F32"    16r0000 " invalid " 
               "16r9F33"    16r0000 " invalid " 
               "16r9F34"    16r0000 " invalid " 
               "16r9F35"    16r0000 " invalid " 
               "16r9F36"    16r0000 " invalid " 
               "16r9F37"    16r0000 " invalid " 
               "16r9F38"    16r0000 " invalid " 
               "16r9F39"    16r0000 " invalid " 
               "16r9F3A"    16r0000 " invalid " 
               "16r9F3B"    16r4921 " <CJK> " 
               "16r9F3C"    16r0000 " invalid " 
               "16r9F3D"    16r0000 " invalid " 
               "16r9F3E"    16r736D " <CJK> " 
               "16r9F3F"    16r0000 " invalid " 
               "16r9F40"    16r0000 " invalid " 
               "16r9F41"    16r0000 " invalid " 
               "16r9F42"    16r0000 " invalid " 
               "16r9F43"    16r0000 " invalid " 
               "16r9F44"    16r0000 " invalid " 
               "16r9F45"    16r0000 " invalid " 
               "16r9F46"    16r0000 " invalid " 
               "16r9F47"    16r0000 " invalid " 
               "16r9F48"    16r0000 " invalid " 
               "16r9F49"    16r0000 " invalid " 
               "16r9F4A"    16r736E " <CJK> " 
               "16r9F4B"    16r6337 " <CJK> " 
               "16r9F4C"    16r0000 " invalid " 
               "16r9F4D"    16r0000 " invalid " 
               "16r9F4E"    16r6C5A " <CJK> " 
               "16r9F4F"    16r706D " <CJK> " 
               "16r9F50"    16r0000 " invalid " 
               "16r9F51"    16r0000 " invalid " 
               "16r9F52"    16r736F " <CJK> " 
               "16r9F53"    16r0000 " invalid " 
               "16r9F54"    16r7370 " <CJK> " 
               "16r9F55"    16r0000 " invalid " 
               "16r9F56"    16r0000 " invalid " 
               "16r9F57"    16r0000 " invalid " 
               "16r9F58"    16r0000 " invalid " 
               "16r9F59"    16r0000 " invalid " 
               "16r9F5A"    16r0000 " invalid " 
               "16r9F5B"    16r0000 " invalid " 
               "16r9F5C"    16r0000 " invalid " 
               "16r9F5D"    16r0000 " invalid " 
               "16r9F5E"    16r0000 " invalid " 
               "16r9F5F"    16r7372 " <CJK> " 
               "16r9F60"    16r7373 " <CJK> " 
               "16r9F61"    16r7374 " <CJK> " 
               "16r9F62"    16r4E70 " <CJK> " 
               "16r9F63"    16r7371 " <CJK> " 
               "16r9F64"    16r0000 " invalid " 
               "16r9F65"    16r0000 " invalid " 
               "16r9F66"    16r7375 " <CJK> " 
               "16r9F67"    16r7376 " <CJK> " 
               "16r9F68"    16r0000 " invalid " 
               "16r9F69"    16r0000 " invalid " 
               "16r9F6A"    16r7378 " <CJK> " 
               "16r9F6B"    16r0000 " invalid " 
               "16r9F6C"    16r7377 " <CJK> " 
               "16r9F6D"    16r0000 " invalid " 
               "16r9F6E"    16r0000 " invalid " 
               "16r9F6F"    16r0000 " invalid " 
               "16r9F70"    16r0000 " invalid " 
               "16r9F71"    16r0000 " invalid " 
               "16r9F72"    16r737A " <CJK> " 
               "16r9F73"    16r0000 " invalid " 
               "16r9F74"    16r0000 " invalid " 
               "16r9F75"    16r0000 " invalid " 
               "16r9F76"    16r737B " <CJK> " 
               "16r9F77"    16r7379 " <CJK> " 
               "16r9F78"    16r0000 " invalid " 
               "16r9F79"    16r0000 " invalid " 
               "16r9F7A"    16r0000 " invalid " 
               "16r9F7B"    16r0000 " invalid " 
               "16r9F7C"    16r0000 " invalid " 
               "16r9F7D"    16r0000 " invalid " 
               "16r9F7E"    16r0000 " invalid " 
               "16r9F7F"    16r0000 " invalid " 
               "16r9F80"    16r0000 " invalid " 
               "16r9F81"    16r0000 " invalid " 
               "16r9F82"    16r0000 " invalid " 
               "16r9F83"    16r0000 " invalid " 
               "16r9F84"    16r0000 " invalid " 
               "16r9F85"    16r0000 " invalid " 
               "16r9F86"    16r0000 " invalid " 
               "16r9F87"    16r0000 " invalid " 
               "16r9F88"    16r0000 " invalid " 
               "16r9F89"    16r0000 " invalid " 
               "16r9F8A"    16r0000 " invalid " 
               "16r9F8B"    16r0000 " invalid " 
               "16r9F8C"    16r0000 " invalid " 
               "16r9F8D"    16r4E36 " <CJK> " 
               "16r9F8E"    16r0000 " invalid " 
               "16r9F8F"    16r0000 " invalid " 
               "16r9F90"    16r0000 " invalid " 
               "16r9F91"    16r0000 " invalid " 
               "16r9F92"    16r0000 " invalid " 
               "16r9F93"    16r0000 " invalid " 
               "16r9F94"    16r0000 " invalid " 
               "16r9F95"    16r737C " <CJK> " 
               "16r9F96"    16r0000 " invalid " 
               "16r9F97"    16r0000 " invalid " 
               "16r9F98"    16r0000 " invalid " 
               "16r9F99"    16r0000 " invalid " 
               "16r9F9A"    16r0000 " invalid " 
               "16r9F9B"    16r0000 " invalid " 
               "16r9F9C"    16r737D " <CJK> " 
               "16r9F9D"    16r6354 " <CJK> " 
               "16r9F9E"    16r0000 " invalid " 
               "16r9F9F"    16r0000 " invalid " 
               "16r9FA0"    16r737E " <CJK> " 
               ) at:(unicode - 16r9E74).
            t == 0 ifFalse:[^ t].
            ^ self encodingError
        ] value.
    ].
    unicode <= 16rFF00 ifTrue:[
        ^ self encodingError.
    ].
    unicode <= 16rFF5D ifTrue:[
        [
            |t|
            t := #(
               "16rFF01"    16r212A " FULLWIDTH EXCLAMATION MARK " 
               "16rFF02"    16r0000 " invalid " 
               "16rFF03"    16r2174 " FULLWIDTH NUMBER SIGN " 
               "16rFF04"    16r2170 " FULLWIDTH DOLLAR SIGN " 
               "16rFF05"    16r2173 " FULLWIDTH PERCENT SIGN " 
               "16rFF06"    16r2175 " FULLWIDTH AMPERSAND " 
               "16rFF07"    16r0000 " invalid " 
               "16rFF08"    16r214A " FULLWIDTH LEFT PARENTHESIS " 
               "16rFF09"    16r214B " FULLWIDTH RIGHT PARENTHESIS " 
               "16rFF0A"    16r2176 " FULLWIDTH ASTERISK " 
               "16rFF0B"    16r215C " FULLWIDTH PLUS SIGN " 
               "16rFF0C"    16r2124 " FULLWIDTH COMMA " 
               "16rFF0D"    16r0000 " invalid " 
               "16rFF0E"    16r2125 " FULLWIDTH FULL STOP " 
               "16rFF0F"    16r213F " FULLWIDTH SOLIDUS " 
               "16rFF10"    16r2330 " FULLWIDTH DIGIT ZERO " 
               "16rFF11"    16r2331 " FULLWIDTH DIGIT ONE " 
               "16rFF12"    16r2332 " FULLWIDTH DIGIT TWO " 
               "16rFF13"    16r2333 " FULLWIDTH DIGIT THREE " 
               "16rFF14"    16r2334 " FULLWIDTH DIGIT FOUR " 
               "16rFF15"    16r2335 " FULLWIDTH DIGIT FIVE " 
               "16rFF16"    16r2336 " FULLWIDTH DIGIT SIX " 
               "16rFF17"    16r2337 " FULLWIDTH DIGIT SEVEN " 
               "16rFF18"    16r2338 " FULLWIDTH DIGIT EIGHT " 
               "16rFF19"    16r2339 " FULLWIDTH DIGIT NINE " 
               "16rFF1A"    16r2127 " FULLWIDTH COLON " 
               "16rFF1B"    16r2128 " FULLWIDTH SEMICOLON " 
               "16rFF1C"    16r2163 " FULLWIDTH LESS-THAN SIGN " 
               "16rFF1D"    16r2161 " FULLWIDTH EQUALS SIGN " 
               "16rFF1E"    16r2164 " FULLWIDTH GREATER-THAN SIGN " 
               "16rFF1F"    16r2129 " FULLWIDTH QUESTION MARK " 
               "16rFF20"    16r2177 " FULLWIDTH COMMERCIAL AT " 
               "16rFF21"    16r2341 " FULLWIDTH LATIN CAPITAL LETTER A " 
               "16rFF22"    16r2342 " FULLWIDTH LATIN CAPITAL LETTER B " 
               "16rFF23"    16r2343 " FULLWIDTH LATIN CAPITAL LETTER C " 
               "16rFF24"    16r2344 " FULLWIDTH LATIN CAPITAL LETTER D " 
               "16rFF25"    16r2345 " FULLWIDTH LATIN CAPITAL LETTER E " 
               "16rFF26"    16r2346 " FULLWIDTH LATIN CAPITAL LETTER F " 
               "16rFF27"    16r2347 " FULLWIDTH LATIN CAPITAL LETTER G " 
               "16rFF28"    16r2348 " FULLWIDTH LATIN CAPITAL LETTER H " 
               "16rFF29"    16r2349 " FULLWIDTH LATIN CAPITAL LETTER I " 
               "16rFF2A"    16r234A " FULLWIDTH LATIN CAPITAL LETTER J " 
               "16rFF2B"    16r234B " FULLWIDTH LATIN CAPITAL LETTER K " 
               "16rFF2C"    16r234C " FULLWIDTH LATIN CAPITAL LETTER L " 
               "16rFF2D"    16r234D " FULLWIDTH LATIN CAPITAL LETTER M " 
               "16rFF2E"    16r234E " FULLWIDTH LATIN CAPITAL LETTER N " 
               "16rFF2F"    16r234F " FULLWIDTH LATIN CAPITAL LETTER O " 
               "16rFF30"    16r2350 " FULLWIDTH LATIN CAPITAL LETTER P " 
               "16rFF31"    16r2351 " FULLWIDTH LATIN CAPITAL LETTER Q " 
               "16rFF32"    16r2352 " FULLWIDTH LATIN CAPITAL LETTER R " 
               "16rFF33"    16r2353 " FULLWIDTH LATIN CAPITAL LETTER S " 
               "16rFF34"    16r2354 " FULLWIDTH LATIN CAPITAL LETTER T " 
               "16rFF35"    16r2355 " FULLWIDTH LATIN CAPITAL LETTER U " 
               "16rFF36"    16r2356 " FULLWIDTH LATIN CAPITAL LETTER V " 
               "16rFF37"    16r2357 " FULLWIDTH LATIN CAPITAL LETTER W " 
               "16rFF38"    16r2358 " FULLWIDTH LATIN CAPITAL LETTER X " 
               "16rFF39"    16r2359 " FULLWIDTH LATIN CAPITAL LETTER Y " 
               "16rFF3A"    16r235A " FULLWIDTH LATIN CAPITAL LETTER Z " 
               "16rFF3B"    16r214E " FULLWIDTH LEFT SQUARE BRACKET " 
               "16rFF3C"    16r0000 " invalid " 
               "16rFF3D"    16r214F " FULLWIDTH RIGHT SQUARE BRACKET " 
               "16rFF3E"    16r2130 " FULLWIDTH CIRCUMFLEX ACCENT " 
               "16rFF3F"    16r2132 " FULLWIDTH LOW LINE " 
               "16rFF40"    16r212E " FULLWIDTH GRAVE ACCENT " 
               "16rFF41"    16r2361 " FULLWIDTH LATIN SMALL LETTER A " 
               "16rFF42"    16r2362 " FULLWIDTH LATIN SMALL LETTER B " 
               "16rFF43"    16r2363 " FULLWIDTH LATIN SMALL LETTER C " 
               "16rFF44"    16r2364 " FULLWIDTH LATIN SMALL LETTER D " 
               "16rFF45"    16r2365 " FULLWIDTH LATIN SMALL LETTER E " 
               "16rFF46"    16r2366 " FULLWIDTH LATIN SMALL LETTER F " 
               "16rFF47"    16r2367 " FULLWIDTH LATIN SMALL LETTER G " 
               "16rFF48"    16r2368 " FULLWIDTH LATIN SMALL LETTER H " 
               "16rFF49"    16r2369 " FULLWIDTH LATIN SMALL LETTER I " 
               "16rFF4A"    16r236A " FULLWIDTH LATIN SMALL LETTER J " 
               "16rFF4B"    16r236B " FULLWIDTH LATIN SMALL LETTER K " 
               "16rFF4C"    16r236C " FULLWIDTH LATIN SMALL LETTER L " 
               "16rFF4D"    16r236D " FULLWIDTH LATIN SMALL LETTER M " 
               "16rFF4E"    16r236E " FULLWIDTH LATIN SMALL LETTER N " 
               "16rFF4F"    16r236F " FULLWIDTH LATIN SMALL LETTER O " 
               "16rFF50"    16r2370 " FULLWIDTH LATIN SMALL LETTER P " 
               "16rFF51"    16r2371 " FULLWIDTH LATIN SMALL LETTER Q " 
               "16rFF52"    16r2372 " FULLWIDTH LATIN SMALL LETTER R " 
               "16rFF53"    16r2373 " FULLWIDTH LATIN SMALL LETTER S " 
               "16rFF54"    16r2374 " FULLWIDTH LATIN SMALL LETTER T " 
               "16rFF55"    16r2375 " FULLWIDTH LATIN SMALL LETTER U " 
               "16rFF56"    16r2376 " FULLWIDTH LATIN SMALL LETTER V " 
               "16rFF57"    16r2377 " FULLWIDTH LATIN SMALL LETTER W " 
               "16rFF58"    16r2378 " FULLWIDTH LATIN SMALL LETTER X " 
               "16rFF59"    16r2379 " FULLWIDTH LATIN SMALL LETTER Y " 
               "16rFF5A"    16r237A " FULLWIDTH LATIN SMALL LETTER Z " 
               "16rFF5B"    16r2150 " FULLWIDTH LEFT CURLY BRACKET " 
               "16rFF5C"    16r2143 " FULLWIDTH VERTICAL LINE " 
               "16rFF5D"    16r2151 " FULLWIDTH RIGHT CURLY BRACKET " 
               ) at:(unicode - 16rFF00).
            t == 0 ifFalse:[^ t].
            ^ self encodingError
        ] value.
    ].
    unicode <= 16rFFE2 ifTrue:[
        ^ self encodingError.
    ].
    [
        |t|
        t := #(
           "16rFFE3"    16r2131 " FULLWIDTH MACRON " 
           "16rFFE4"    16r0000 " invalid " 
           "16rFFE5"    16r216F " FULLWIDTH YEN SIGN " 
           ) at:(unicode - 16rFFE2).
        t == 0 ifFalse:[^ t].
        ^ self encodingError
    ] value.
! !

!CharacterEncoder::JIS0208 methodsFor:'private'!

newString:size
    ^ JISEncodedString new:size
! !

!CharacterEncoder::JIS0208_to_JIS7 class methodsFor:'constants'!

jis7KanjiEscapeSequence
    "return the escape sequence used to switch to kanji in jis7 encoded strings.
     This happens to be the same as ISO2022-JP's escape sequence."

    Jis7KanjiEscapeSequence isNil ifTrue:[
	Jis7KanjiEscapeSequence := Character esc asString , '$B'.
    ].
    ^ Jis7KanjiEscapeSequence.

    "Created: 26.2.1996 / 17:38:08 / cg"
    "Modified: 30.6.1997 / 16:03:16 / cg"
!

jis7KanjiOldEscapeSequence
    "return the escape sequence used to switch to kanji in some old jis7 encoded strings."

    Jis7KanjiOldEscapeSequence isNil ifTrue:[
        Jis7KanjiOldEscapeSequence := Character esc asString , '$@'..
    ].
    ^ Jis7KanjiOldEscapeSequence.
!

jis7RomanEscapeSequence
    "return the escape sequence used to switch to roman in jis7 encoded strings"

    Jis7RomanEscapeSequence isNil ifTrue:[
	Jis7RomanEscapeSequence := Character esc asString , '(J'.
    ].
    ^ Jis7RomanEscapeSequence.

    "Created: 26.2.1996 / 17:38:08 / cg"
    "Modified: 30.6.1997 / 16:03:16 / cg"
!

jisISO2022EscapeSequence
    "return the escape sequence used to switch to kanji in iso2022 encoded strings"

    JisISO2022EscapeSequence isNil ifTrue:[
        JisISO2022EscapeSequence := Character esc asString , '&@' , Character esc asString , '$B'.
    ].
    ^ JisISO2022EscapeSequence.
! !

!CharacterEncoder::JIS0208_to_JIS7 class methodsFor:'documentation'!

examples
"
  Encoding (jis0208 to jis-7)
     |t|

     t := JIS0208_to_JIS7 decodeString:'hello'.
     JIS0208_to_JIS7 encodeString:t. 



 Decoding (jis-7 to jis0208):

     JIS0208_to_JIS7 decodeString:'hello'  

 ending with a crippled escape:

     |s|
     s := 'hello' copyWith:Character esc.
     JIS0208_to_JIS7 decodeString:s

     |s|
     s := 'hello' copyWith:Character esc.
     s := s copyWith:$A.
     JIS0208_to_JIS7 decodeString:s

     |s|
     s := 'hello' copyWith:Character esc.
     s := s copyWith:$$.
     JIS0208_to_JIS7 decodeString:s

     |s|
     s := 'hello' copyWith:Character esc.
     s := s copyWith:$$.
     s := s copyWith:$A.
     JIS0208_to_JIS7 decodeString:s

 ending with a KANJI-in,  but no more chars:

     |s|
     s := 'hello' copyWith:Character esc.
     s := s copyWith:$$.
     s := s copyWith:$B.
     JIS0208_to_JIS7 decodeString:s

 ending with a KANJI-in, followed by $3 (KO):

     |s|
     s := 'hello' copyWith:Character esc.
     s := s copyWith:$$.
     s := s copyWith:$B.
     s := s , '$3'.
     JIS0208_to_JIS7 decodeString:s

 ending with a KANJI-in, followed by $3$l$OF| (KO RE HA NI):

     |s|
     s := 'hello' copyWith:Character esc.
     s := s copyWith:$$.
     s := s copyWith:$B.
     s := s , '$3$l$OF|'.
     JIS0208_to_JIS7 decodeString:s

 a KO in between:

     |s|
     s := 'hello' copyWith:Character esc.
     s := s copyWith:$$.
     s := s copyWith:$B.
     s := s , '$3'.
     s := s copyWith:Character esc.
     s := s copyWith:$(.
     s := s copyWith:$B.
     s := s , 'hello'.
     JIS0208_to_JIS7 decodeString:s

 I dont know what that means ;-):

     |s t l|
     s := 'kterm ' copyWith:Character esc.
     s := s copyWith:$$.
     s := s copyWith:$B.
     s := s , '$N4A;zC<Kv%(%_%e%l!!<%?'.
     s := s copyWith:Character esc.
     s := s copyWith:$(.
     s := s copyWith:$B.
     s := s , ' kterm'.
     t := JIS0208_to_JIS7 decodeString:s.

     l := Label new.
     l label:t.
     l font:(Font family:'k14' face:nil style:nil size:nil).
     l font:(Font family:'gothic' size:17).
     l font:(Font family:'mincho' size:23).
     l realize
"
! !

!CharacterEncoder::JIS0208_to_JIS7 class methodsFor:'queries'!

nameOfDecodedCode
    "I encode jis0208 into jis7 and vice versa"

    ^ #'jis0208'
!

nameOfEncoding
    "I encode jis0208 into jis7 and vice versa"

    ^ #'jis7'
!

namesOfEncoding
    "I encode jis0208 into jis7 and vice versa"

    ^ #( 'jis7' 'jis-7' 'x-jis7' 'x-iso2022-jp' 'iso2022-jp')
! !

!CharacterEncoder::JIS0208_to_JIS7 methodsFor:'encoding & decoding'!

decode:aCode
    self shouldNotImplement "/ no single byte conversion possible
!

decodeString:aString
    "given a string in JIS7 encoding,
     return a new string containing the same characters, in JIS0208 encoding.
     The argument is interpreted as a JIS7 or ISO2022-JP encoded singleByte string.
     There are various JIS encodings around (New-JIS, Old-JIS, NEC-JIS and ISO2022);
     this one understands New-JIS, ISO2022 and treats Old-JIS just the same.
     This conversion is only needed to convert strings as read from some external file.

     If you work a lot with jis7 encoded textFiles, 
     this is a first-class candidate for a primitive."

    |newString 
     sz         "{ Class: SmallInteger }"
     dstIdx     "{ Class: SmallInteger }"
     start      "{ Class: SmallInteger }"
     stop       "{ Class: SmallInteger }"
     n1 n2 n3  
     b1         "{ Class: SmallInteger }"
     b2         "{ Class: SmallInteger }"
     val        "{ Class: SmallInteger }"
     singleBytes katakana c|

    sz := aString size.
    newString := JISEncodedString new:sz.
    sz ~~ 0 ifTrue:[
	dstIdx := 1.
	start := 1.
	singleBytes := true.
	katakana := false.

	[true] whileTrue:[
	    "/
	    "/ scan for next escape"
	    "/
	    stop := aString indexOf:(Character esc) startingAt:start.
	    stop == 0 ifTrue:[
		stop := sz + 1.
	    ] ifFalse:[
		(stop + 2) > sz ifTrue:[
		    stop := sz + 1.
		]
	    ].
	    singleBytes ifTrue:[
		start to:(stop - 1) do:[:i |
		    c := aString at:i.
		    newString at:dstIdx put:c.
		    dstIdx := dstIdx + 1.
		].
	    ] ifFalse:[
		start to:(stop - 2) by:2 do:[:i |
		    b1 := (aString at:i) asciiValue.
		    b2 := (aString at:i+1) asciiValue.
		    val := (b1 bitShift:8) bitOr:b2.
		    newString at:dstIdx put:(Character value:val).
		    dstIdx := dstIdx + 1.
		]
	    ].

	    stop > sz ifTrue:[
		^ newString copyFrom:1 to:dstIdx - 1.
	    ].
	    start := stop.

	    "/
	    "/ found an escape (at start) 
	    "/ - check for KI (<ESC> '$' 'B') or OLD-JIS-KI (<ESC> '$' '@')
	    "/ and KO(ASCII) (<ESC> '(' 'B') or KO(ROMAN) (<ESC> '(' 'J')
	    "/
	    n1 := aString at:start.
	    n2 := aString at:(start + 1).
	    n3 := aString at:(start + 2).
	    katakana := false.

	    (n2 == $$ and:[n3 == $B ]) ifTrue:[
		singleBytes := false.
	    ] ifFalse:[
		(n2 == $$ and:[n3 == $@ ]) ifTrue:[
		    singleBytes := false.
		] ifFalse:[
		    (n2 == $( and:[n3 == $B ]) ifTrue:[
			singleBytes := true.
		    ] ifFalse:[
			(n2 == $( and:[n3 == $J ]) ifTrue:[
			    singleBytes := true.
			] ifFalse:[
			    (n2 == $( and:[n3 == $I ]) ifTrue:[
				singleBytes := true.
				katakana := true.
			    ] ifFalse:[
				singleBytes ifTrue:[
				    newString at:dstIdx put:n1.
				    newString at:(dstIdx + 1) put:n2.
				    newString at:(dstIdx + 2) put:n3.
				    dstIdx := dstIdx + 3.
				] ifFalse:[
				    DecodingFailedError 
					    raiseWith:aString
					    errorString:'JIS7 decoding failed (not JIS7 encoded ?)'.
				    newString at:dstIdx put:n1.
				    newString at:(dstIdx + 1) put:n2.
				    newString at:(dstIdx + 2) put:n3.
				    dstIdx := dstIdx + 3.
				]
			    ]
			]
		    ]
		]
	    ].
	    start := start + 3.
	    start > sz ifTrue:[
		^ newString copyFrom:1 to:dstIdx-1.
	    ]
	]
    ].
    ^ newString
!

encode:aCode
    self shouldNotImplement "/ no single byte conversion possible
!

encodeString:aJISString
    "return a new string with aJISStrings characters as JIS7 encoded 7bit string,
     The receiver must be a JIS encoded character string.
     The resulting string is only useful to be stored on some external file,
     not for being used inside ST/X.

     If you work a lot with jis7 encoded textFiles, 
     this is a first-class candidate for a primitive."

    |sz "{ Class:SmallInteger }"
     b1 "{ Class:SmallInteger }"
     val romans out inSingleByteMode c kanji roman val2|

    inSingleByteMode := true.
    kanji := self class jis7KanjiEscapeSequence.
    roman := self class jis7RomanEscapeSequence.

    romans := CharacterEncoder::JIS0208 romanTable.

    sz := aJISString size.
    sz == 0 ifTrue:[^ ''].

    out := WriteStream on:(String new:(sz * 2)).

    1 to:sz do:[:srcIndex |
	c := aJISString at:srcIndex.
	b1 := c asciiValue.
	b1 < 33 ifTrue:[
	    "/ a control character
	    inSingleByteMode ifFalse:[
		out nextPutAll:roman.
		inSingleByteMode := true
	    ].
	    out nextPut:c.
	] ifFalse:[
	    "/ check for a roman character
	    "/ the two numbers below are romanTable min and romanTable max
	    (b1 between:16r2121 and:16r2573) ifTrue:[
		val := romans indexOf:b1.
		val2 := val - 1 + 32.
		(val ~~ 0 and:[val2 <= 16r7F]) ifTrue:[
		    inSingleByteMode ifFalse:[
			out nextPutAll:roman.
			inSingleByteMode := true
		    ].
		    out nextPut:(Character value:val2)
		] ifFalse:[
		    inSingleByteMode ifTrue:[
			out nextPutAll:kanji.
			inSingleByteMode := false
		    ].
		    out nextPut:(Character value:(b1 bitShift:-8)).
		    out nextPut:(Character value:(b1 bitAnd:16rFF)).
		].
	    ] ifFalse:[
		b1 <= 255 ifTrue:[
		    "/ mhmh - unrepresentable roman (national chars)
"/                    b1 >= 160 ifTrue:[
"/                        ('no rep for ' , b1 printString) printNL.
"/                    ].
		    "/ there are non-japanese characters in there...
		    "/ assume that is OK (leave as is) ...
"/                    EncodingFailedError
"/                        raiseWith:aJISString
"/                        errorString:'JIS7 encoding failed (contains 8-bit characters ?)'.

		    inSingleByteMode ifFalse:[
			out nextPutAll:roman.
			inSingleByteMode := true
		    ].
		    out nextPut:c
		] ifFalse:[
		    inSingleByteMode ifTrue:[
			out nextPutAll:kanji.
			inSingleByteMode := false
		    ].
		    out nextPut:(Character value:(b1 bitShift:-8)).
		    out nextPut:(Character value:(b1 bitAnd:16rFF)).
		]
	    ]
	].
    ].
    inSingleByteMode ifFalse:[
	out nextPutAll:roman.
    ].
    ^ out contents

    "simple:

     JIS0208_to_JIS7 encodeString:(JISEncodedString encodeRomans:'hello')
    "
! !

!CharacterEncoder::JIS0212 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'OBSOLETE/EASTASIA/JIS/JIS0212.TXT'
! !

!CharacterEncoder::JIS0212 class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'jis0212' )
! !

!CharacterEncoder::JOHAB class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'OBSOLETE/EASTASIA/KSC/JOHAB.TXT'
! !

!CharacterEncoder::JOHAB class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'johab' )
! !

!CharacterEncoder::KOI8_R class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/MISC/KOI8-R.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT

#
#       Name:             KOI8-R (RFC1489) to Unicode
#       Unicode version:  3.0
#       Table version:    1.0
#       Table format:     Format A
#       Date:             18 August 1999
#       Authors:          Helmut Richter <richter@lrz.de>
#
#       Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.
#
#       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
#       No claims are made as to fitness for any particular purpose.  No
#       warranties of any kind are expressed or implied.  The recipient
#       agrees to determine applicability of information provided.  If this
#       file has been provided on optical media by Unicode, Inc., the sole
#       remedy for any claim will be exchange of defective media within 90
#       days of receipt.
#
#       Unicode, Inc. hereby grants the right to freely use the information
#       supplied in this file in the creation of products supporting the
#       Unicode Standard, and to make copies of this file in any form for
#       internal or external distribution as long as this notice remains
#       attached.
#
#       General notes:
#
#       This table contains the data the Unicode Consortium has on how
#       KOI8-R characters map into Unicode. The underlying document is the
#       mapping described in RFC 1489. No statements are made as to whether
#       this mapping is the same as the mapping defined as 'Code Page 878'
#       with some vendors.
#
#       Format:  Three tab-separated columns
#                Column #1 is the KOI8-R code (in hex as 0xXX)
#                Column #2 is the Unicode (in hex as 0xXXXX)
#                Column #3 the Unicode name (follows a comment sign, '#')
#
#       The entries are in KOI8-R order.
#
#       Version history
#       1.0 version: created.
#
#       Any comments or problems, contact <errata@unicode.org>
#       Please note that <errata@unicode.org> is an archival address;
#       notices will be checked, but do not expect an immediate response.
#
0x00    0x0000  #       NULL
0x01    0x0001  #       START OF HEADING
0x02    0x0002  #       START OF TEXT
0x03    0x0003  #       END OF TEXT
0x04    0x0004  #       END OF TRANSMISSION
0x05    0x0005  #       ENQUIRY
0x06    0x0006  #       ACKNOWLEDGE
0x07    0x0007  #       BELL
0x08    0x0008  #       BACKSPACE
0x09    0x0009  #       HORIZONTAL TABULATION
0x0A    0x000A  #       LINE FEED
0x0B    0x000B  #       VERTICAL TABULATION
0x0C    0x000C  #       FORM FEED
0x0D    0x000D  #       CARRIAGE RETURN
0x0E    0x000E  #       SHIFT OUT
0x0F    0x000F  #       SHIFT IN
0x10    0x0010  #       DATA LINK ESCAPE
0x11    0x0011  #       DEVICE CONTROL ONE
0x12    0x0012  #       DEVICE CONTROL TWO
0x13    0x0013  #       DEVICE CONTROL THREE
0x14    0x0014  #       DEVICE CONTROL FOUR
0x15    0x0015  #       NEGATIVE ACKNOWLEDGE
0x16    0x0016  #       SYNCHRONOUS IDLE
0x17    0x0017  #       END OF TRANSMISSION BLOCK
0x18    0x0018  #       CANCEL
0x19    0x0019  #       END OF MEDIUM
0x1A    0x001A  #       SUBSTITUTE
0x1B    0x001B  #       ESCAPE
0x1C    0x001C  #       FILE SEPARATOR
0x1D    0x001D  #       GROUP SEPARATOR
0x1E    0x001E  #       RECORD SEPARATOR
0x1F    0x001F  #       UNIT SEPARATOR
0x20    0x0020  #       SPACE
0x21    0x0021  #       EXCLAMATION MARK
0x22    0x0022  #       QUOTATION MARK
0x23    0x0023  #       NUMBER SIGN
0x24    0x0024  #       DOLLAR SIGN
0x25    0x0025  #       PERCENT SIGN
0x26    0x0026  #       AMPERSAND
0x27    0x0027  #       APOSTROPHE
0x28    0x0028  #       LEFT PARENTHESIS
0x29    0x0029  #       RIGHT PARENTHESIS
0x2A    0x002A  #       ASTERISK
0x2B    0x002B  #       PLUS SIGN
0x2C    0x002C  #       COMMA
0x2D    0x002D  #       HYPHEN-MINUS
0x2E    0x002E  #       FULL STOP
0x2F    0x002F  #       SOLIDUS
0x30    0x0030  #       DIGIT ZERO
0x31    0x0031  #       DIGIT ONE
0x32    0x0032  #       DIGIT TWO
0x33    0x0033  #       DIGIT THREE
0x34    0x0034  #       DIGIT FOUR
0x35    0x0035  #       DIGIT FIVE
0x36    0x0036  #       DIGIT SIX
0x37    0x0037  #       DIGIT SEVEN
0x38    0x0038  #       DIGIT EIGHT
0x39    0x0039  #       DIGIT NINE
0x3A    0x003A  #       COLON
0x3B    0x003B  #       SEMICOLON
0x3C    0x003C  #       LESS-THAN SIGN
0x3D    0x003D  #       EQUALS SIGN
0x3E    0x003E  #       GREATER-THAN SIGN
0x3F    0x003F  #       QUESTION MARK
0x40    0x0040  #       COMMERCIAL AT
0x41    0x0041  #       LATIN CAPITAL LETTER A
0x42    0x0042  #       LATIN CAPITAL LETTER B
0x43    0x0043  #       LATIN CAPITAL LETTER C
0x44    0x0044  #       LATIN CAPITAL LETTER D
0x45    0x0045  #       LATIN CAPITAL LETTER E
0x46    0x0046  #       LATIN CAPITAL LETTER F
0x47    0x0047  #       LATIN CAPITAL LETTER G
0x48    0x0048  #       LATIN CAPITAL LETTER H
0x49    0x0049  #       LATIN CAPITAL LETTER I
0x4A    0x004A  #       LATIN CAPITAL LETTER J
0x4B    0x004B  #       LATIN CAPITAL LETTER K
0x4C    0x004C  #       LATIN CAPITAL LETTER L
0x4D    0x004D  #       LATIN CAPITAL LETTER M
0x4E    0x004E  #       LATIN CAPITAL LETTER N
0x4F    0x004F  #       LATIN CAPITAL LETTER O
0x50    0x0050  #       LATIN CAPITAL LETTER P
0x51    0x0051  #       LATIN CAPITAL LETTER Q
0x52    0x0052  #       LATIN CAPITAL LETTER R
0x53    0x0053  #       LATIN CAPITAL LETTER S
0x54    0x0054  #       LATIN CAPITAL LETTER T
0x55    0x0055  #       LATIN CAPITAL LETTER U
0x56    0x0056  #       LATIN CAPITAL LETTER V
0x57    0x0057  #       LATIN CAPITAL LETTER W
0x58    0x0058  #       LATIN CAPITAL LETTER X
0x59    0x0059  #       LATIN CAPITAL LETTER Y
0x5A    0x005A  #       LATIN CAPITAL LETTER Z
0x5B    0x005B  #       LEFT SQUARE BRACKET
0x5C    0x005C  #       REVERSE SOLIDUS
0x5D    0x005D  #       RIGHT SQUARE BRACKET
0x5E    0x005E  #       CIRCUMFLEX ACCENT
0x5F    0x005F  #       LOW LINE
0x60    0x0060  #       GRAVE ACCENT
0x61    0x0061  #       LATIN SMALL LETTER A
0x62    0x0062  #       LATIN SMALL LETTER B
0x63    0x0063  #       LATIN SMALL LETTER C
0x64    0x0064  #       LATIN SMALL LETTER D
0x65    0x0065  #       LATIN SMALL LETTER E
0x66    0x0066  #       LATIN SMALL LETTER F
0x67    0x0067  #       LATIN SMALL LETTER G
0x68    0x0068  #       LATIN SMALL LETTER H
0x69    0x0069  #       LATIN SMALL LETTER I
0x6A    0x006A  #       LATIN SMALL LETTER J
0x6B    0x006B  #       LATIN SMALL LETTER K
0x6C    0x006C  #       LATIN SMALL LETTER L
0x6D    0x006D  #       LATIN SMALL LETTER M
0x6E    0x006E  #       LATIN SMALL LETTER N
0x6F    0x006F  #       LATIN SMALL LETTER O
0x70    0x0070  #       LATIN SMALL LETTER P
0x71    0x0071  #       LATIN SMALL LETTER Q
0x72    0x0072  #       LATIN SMALL LETTER R
0x73    0x0073  #       LATIN SMALL LETTER S
0x74    0x0074  #       LATIN SMALL LETTER T
0x75    0x0075  #       LATIN SMALL LETTER U
0x76    0x0076  #       LATIN SMALL LETTER V
0x77    0x0077  #       LATIN SMALL LETTER W
0x78    0x0078  #       LATIN SMALL LETTER X
0x79    0x0079  #       LATIN SMALL LETTER Y
0x7A    0x007A  #       LATIN SMALL LETTER Z
0x7B    0x007B  #       LEFT CURLY BRACKET
0x7C    0x007C  #       VERTICAL LINE
0x7D    0x007D  #       RIGHT CURLY BRACKET
0x7E    0x007E  #       TILDE
0x7F    0x007F  #       DELETE
0x80    0x2500  #       BOX DRAWINGS LIGHT HORIZONTAL
0x81    0x2502  #       BOX DRAWINGS LIGHT VERTICAL
0x82    0x250C  #       BOX DRAWINGS LIGHT DOWN AND RIGHT
0x83    0x2510  #       BOX DRAWINGS LIGHT DOWN AND LEFT
0x84    0x2514  #       BOX DRAWINGS LIGHT UP AND RIGHT
0x85    0x2518  #       BOX DRAWINGS LIGHT UP AND LEFT
0x86    0x251C  #       BOX DRAWINGS LIGHT VERTICAL AND RIGHT
0x87    0x2524  #       BOX DRAWINGS LIGHT VERTICAL AND LEFT
0x88    0x252C  #       BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
0x89    0x2534  #       BOX DRAWINGS LIGHT UP AND HORIZONTAL
0x8A    0x253C  #       BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
0x8B    0x2580  #       UPPER HALF BLOCK
0x8C    0x2584  #       LOWER HALF BLOCK
0x8D    0x2588  #       FULL BLOCK
0x8E    0x258C  #       LEFT HALF BLOCK
0x8F    0x2590  #       RIGHT HALF BLOCK
0x90    0x2591  #       LIGHT SHADE
0x91    0x2592  #       MEDIUM SHADE
0x92    0x2593  #       DARK SHADE
0x93    0x2320  #       TOP HALF INTEGRAL
0x94    0x25A0  #       BLACK SQUARE
0x95    0x2219  #       BULLET OPERATOR
0x96    0x221A  #       SQUARE ROOT
0x97    0x2248  #       ALMOST EQUAL TO
0x98    0x2264  #       LESS-THAN OR EQUAL TO
0x99    0x2265  #       GREATER-THAN OR EQUAL TO
0x9A    0x00A0  #       NO-BREAK SPACE
0x9B    0x2321  #       BOTTOM HALF INTEGRAL
0x9C    0x00B0  #       DEGREE SIGN
0x9D    0x00B2  #       SUPERSCRIPT TWO
0x9E    0x00B7  #       MIDDLE DOT
0x9F    0x00F7  #       DIVISION SIGN
0xA0    0x2550  #       BOX DRAWINGS DOUBLE HORIZONTAL
0xA1    0x2551  #       BOX DRAWINGS DOUBLE VERTICAL
0xA2    0x2552  #       BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
0xA3    0x0451  #       CYRILLIC SMALL LETTER IO
0xA4    0x2553  #       BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
0xA5    0x2554  #       BOX DRAWINGS DOUBLE DOWN AND RIGHT
0xA6    0x2555  #       BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
0xA7    0x2556  #       BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
0xA8    0x2557  #       BOX DRAWINGS DOUBLE DOWN AND LEFT
0xA9    0x2558  #       BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
0xAA    0x2559  #       BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
0xAB    0x255A  #       BOX DRAWINGS DOUBLE UP AND RIGHT
0xAC    0x255B  #       BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
0xAD    0x255C  #       BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
0xAE    0x255D  #       BOX DRAWINGS DOUBLE UP AND LEFT
0xAF    0x255E  #       BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
0xB0    0x255F  #       BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
0xB1    0x2560  #       BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
0xB2    0x2561  #       BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
0xB3    0x0401  #       CYRILLIC CAPITAL LETTER IO
0xB4    0x2562  #       BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
0xB5    0x2563  #       BOX DRAWINGS DOUBLE VERTICAL AND LEFT
0xB6    0x2564  #       BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
0xB7    0x2565  #       BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
0xB8    0x2566  #       BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
0xB9    0x2567  #       BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
0xBA    0x2568  #       BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
0xBB    0x2569  #       BOX DRAWINGS DOUBLE UP AND HORIZONTAL
0xBC    0x256A  #       BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
0xBD    0x256B  #       BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
0xBE    0x256C  #       BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
0xBF    0x00A9  #       COPYRIGHT SIGN
0xC0    0x044E  #       CYRILLIC SMALL LETTER YU
0xC1    0x0430  #       CYRILLIC SMALL LETTER A
0xC2    0x0431  #       CYRILLIC SMALL LETTER BE
0xC3    0x0446  #       CYRILLIC SMALL LETTER TSE
0xC4    0x0434  #       CYRILLIC SMALL LETTER DE
0xC5    0x0435  #       CYRILLIC SMALL LETTER IE
0xC6    0x0444  #       CYRILLIC SMALL LETTER EF
0xC7    0x0433  #       CYRILLIC SMALL LETTER GHE
0xC8    0x0445  #       CYRILLIC SMALL LETTER HA
0xC9    0x0438  #       CYRILLIC SMALL LETTER I
0xCA    0x0439  #       CYRILLIC SMALL LETTER SHORT I
0xCB    0x043A  #       CYRILLIC SMALL LETTER KA
0xCC    0x043B  #       CYRILLIC SMALL LETTER EL
0xCD    0x043C  #       CYRILLIC SMALL LETTER EM
0xCE    0x043D  #       CYRILLIC SMALL LETTER EN
0xCF    0x043E  #       CYRILLIC SMALL LETTER O
0xD0    0x043F  #       CYRILLIC SMALL LETTER PE
0xD1    0x044F  #       CYRILLIC SMALL LETTER YA
0xD2    0x0440  #       CYRILLIC SMALL LETTER ER
0xD3    0x0441  #       CYRILLIC SMALL LETTER ES
0xD4    0x0442  #       CYRILLIC SMALL LETTER TE
0xD5    0x0443  #       CYRILLIC SMALL LETTER U
0xD6    0x0436  #       CYRILLIC SMALL LETTER ZHE
0xD7    0x0432  #       CYRILLIC SMALL LETTER VE
0xD8    0x044C  #       CYRILLIC SMALL LETTER SOFT SIGN
0xD9    0x044B  #       CYRILLIC SMALL LETTER YERU
0xDA    0x0437  #       CYRILLIC SMALL LETTER ZE
0xDB    0x0448  #       CYRILLIC SMALL LETTER SHA
0xDC    0x044D  #       CYRILLIC SMALL LETTER E
0xDD    0x0449  #       CYRILLIC SMALL LETTER SHCHA
0xDE    0x0447  #       CYRILLIC SMALL LETTER CHE
0xDF    0x044A  #       CYRILLIC SMALL LETTER HARD SIGN
0xE0    0x042E  #       CYRILLIC CAPITAL LETTER YU
0xE1    0x0410  #       CYRILLIC CAPITAL LETTER A
0xE2    0x0411  #       CYRILLIC CAPITAL LETTER BE
0xE3    0x0426  #       CYRILLIC CAPITAL LETTER TSE
0xE4    0x0414  #       CYRILLIC CAPITAL LETTER DE
0xE5    0x0415  #       CYRILLIC CAPITAL LETTER IE
0xE6    0x0424  #       CYRILLIC CAPITAL LETTER EF
0xE7    0x0413  #       CYRILLIC CAPITAL LETTER GHE
0xE8    0x0425  #       CYRILLIC CAPITAL LETTER HA
0xE9    0x0418  #       CYRILLIC CAPITAL LETTER I
0xEA    0x0419  #       CYRILLIC CAPITAL LETTER SHORT I
0xEB    0x041A  #       CYRILLIC CAPITAL LETTER KA
0xEC    0x041B  #       CYRILLIC CAPITAL LETTER EL
0xED    0x041C  #       CYRILLIC CAPITAL LETTER EM
0xEE    0x041D  #       CYRILLIC CAPITAL LETTER EN
0xEF    0x041E  #       CYRILLIC CAPITAL LETTER O
0xF0    0x041F  #       CYRILLIC CAPITAL LETTER PE
0xF1    0x042F  #       CYRILLIC CAPITAL LETTER YA
0xF2    0x0420  #       CYRILLIC CAPITAL LETTER ER
0xF3    0x0421  #       CYRILLIC CAPITAL LETTER ES
0xF4    0x0422  #       CYRILLIC CAPITAL LETTER TE
0xF5    0x0423  #       CYRILLIC CAPITAL LETTER U
0xF6    0x0416  #       CYRILLIC CAPITAL LETTER ZHE
0xF7    0x0412  #       CYRILLIC CAPITAL LETTER VE
0xF8    0x042C  #       CYRILLIC CAPITAL LETTER SOFT SIGN
0xF9    0x042B  #       CYRILLIC CAPITAL LETTER YERU
0xFA    0x0417  #       CYRILLIC CAPITAL LETTER ZE
0xFB    0x0428  #       CYRILLIC CAPITAL LETTER SHA
0xFC    0x042D  #       CYRILLIC CAPITAL LETTER E
0xFD    0x0429  #       CYRILLIC CAPITAL LETTER SHCHA
0xFE    0x0427  #       CYRILLIC CAPITAL LETTER CHE
0xFF    0x042A  #       CYRILLIC CAPITAL LETTER HARD SIGN

"
! !

!CharacterEncoder::KOI8_R class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'koi8-r' )
!

userFriendlyNameOfEncoding
    ^ 'Cyrillic'
! !

!CharacterEncoder::KOI8_R methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16r7F ifTrue:[ ^ code ].
    code > 16rFF ifTrue:[
	^ self decodingError.
    ].
    ^ #(
       "16r0080"    16r2500 " BOX DRAWINGS LIGHT HORIZONTAL " 
       "16r0081"    16r2502 " BOX DRAWINGS LIGHT VERTICAL " 
       "16r0082"    16r250C " BOX DRAWINGS LIGHT DOWN AND RIGHT " 
       "16r0083"    16r2510 " BOX DRAWINGS LIGHT DOWN AND LEFT " 
       "16r0084"    16r2514 " BOX DRAWINGS LIGHT UP AND RIGHT " 
       "16r0085"    16r2518 " BOX DRAWINGS LIGHT UP AND LEFT " 
       "16r0086"    16r251C " BOX DRAWINGS LIGHT VERTICAL AND RIGHT " 
       "16r0087"    16r2524 " BOX DRAWINGS LIGHT VERTICAL AND LEFT " 
       "16r0088"    16r252C " BOX DRAWINGS LIGHT DOWN AND HORIZONTAL " 
       "16r0089"    16r2534 " BOX DRAWINGS LIGHT UP AND HORIZONTAL " 
       "16r008A"    16r253C " BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL " 
       "16r008B"    16r2580 " UPPER HALF BLOCK " 
       "16r008C"    16r2584 " LOWER HALF BLOCK " 
       "16r008D"    16r2588 " FULL BLOCK " 
       "16r008E"    16r258C " LEFT HALF BLOCK " 
       "16r008F"    16r2590 " RIGHT HALF BLOCK " 
       "16r0090"    16r2591 " LIGHT SHADE " 
       "16r0091"    16r2592 " MEDIUM SHADE " 
       "16r0092"    16r2593 " DARK SHADE " 
       "16r0093"    16r2320 " TOP HALF INTEGRAL " 
       "16r0094"    16r25A0 " BLACK SQUARE " 
       "16r0095"    16r2219 " BULLET OPERATOR " 
       "16r0096"    16r221A " SQUARE ROOT " 
       "16r0097"    16r2248 " ALMOST EQUAL TO " 
       "16r0098"    16r2264 " LESS-THAN OR EQUAL TO " 
       "16r0099"    16r2265 " GREATER-THAN OR EQUAL TO " 
       "16r009A"    16r00A0 " NO-BREAK SPACE " 
       "16r009B"    16r2321 " BOTTOM HALF INTEGRAL " 
       "16r009C"    16r00B0 " DEGREE SIGN " 
       "16r009D"    16r00B2 " SUPERSCRIPT TWO " 
       "16r009E"    16r00B7 " MIDDLE DOT " 
       "16r009F"    16r00F7 " DIVISION SIGN " 
       "16r00A0"    16r2550 " BOX DRAWINGS DOUBLE HORIZONTAL " 
       "16r00A1"    16r2551 " BOX DRAWINGS DOUBLE VERTICAL " 
       "16r00A2"    16r2552 " BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE " 
       "16r00A3"    16r0451 " CYRILLIC SMALL LETTER IO " 
       "16r00A4"    16r2553 " BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE " 
       "16r00A5"    16r2554 " BOX DRAWINGS DOUBLE DOWN AND RIGHT " 
       "16r00A6"    16r2555 " BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE " 
       "16r00A7"    16r2556 " BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE " 
       "16r00A8"    16r2557 " BOX DRAWINGS DOUBLE DOWN AND LEFT " 
       "16r00A9"    16r2558 " BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE " 
       "16r00AA"    16r2559 " BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE " 
       "16r00AB"    16r255A " BOX DRAWINGS DOUBLE UP AND RIGHT " 
       "16r00AC"    16r255B " BOX DRAWINGS UP SINGLE AND LEFT DOUBLE " 
       "16r00AD"    16r255C " BOX DRAWINGS UP DOUBLE AND LEFT SINGLE " 
       "16r00AE"    16r255D " BOX DRAWINGS DOUBLE UP AND LEFT " 
       "16r00AF"    16r255E " BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE " 
       "16r00B0"    16r255F " BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE " 
       "16r00B1"    16r2560 " BOX DRAWINGS DOUBLE VERTICAL AND RIGHT " 
       "16r00B2"    16r2561 " BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE " 
       "16r00B3"    16r0401 " CYRILLIC CAPITAL LETTER IO " 
       "16r00B4"    16r2562 " BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE " 
       "16r00B5"    16r2563 " BOX DRAWINGS DOUBLE VERTICAL AND LEFT " 
       "16r00B6"    16r2564 " BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE " 
       "16r00B7"    16r2565 " BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE " 
       "16r00B8"    16r2566 " BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL " 
       "16r00B9"    16r2567 " BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE " 
       "16r00BA"    16r2568 " BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE " 
       "16r00BB"    16r2569 " BOX DRAWINGS DOUBLE UP AND HORIZONTAL " 
       "16r00BC"    16r256A " BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE " 
       "16r00BD"    16r256B " BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE " 
       "16r00BE"    16r256C " BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL " 
       "16r00BF"    16r00A9 " COPYRIGHT SIGN " 
       "16r00C0"    16r044E " CYRILLIC SMALL LETTER YU " 
       "16r00C1"    16r0430 " CYRILLIC SMALL LETTER A " 
       "16r00C2"    16r0431 " CYRILLIC SMALL LETTER BE " 
       "16r00C3"    16r0446 " CYRILLIC SMALL LETTER TSE " 
       "16r00C4"    16r0434 " CYRILLIC SMALL LETTER DE " 
       "16r00C5"    16r0435 " CYRILLIC SMALL LETTER IE " 
       "16r00C6"    16r0444 " CYRILLIC SMALL LETTER EF " 
       "16r00C7"    16r0433 " CYRILLIC SMALL LETTER GHE " 
       "16r00C8"    16r0445 " CYRILLIC SMALL LETTER HA " 
       "16r00C9"    16r0438 " CYRILLIC SMALL LETTER I " 
       "16r00CA"    16r0439 " CYRILLIC SMALL LETTER SHORT I " 
       "16r00CB"    16r043A " CYRILLIC SMALL LETTER KA " 
       "16r00CC"    16r043B " CYRILLIC SMALL LETTER EL " 
       "16r00CD"    16r043C " CYRILLIC SMALL LETTER EM " 
       "16r00CE"    16r043D " CYRILLIC SMALL LETTER EN " 
       "16r00CF"    16r043E " CYRILLIC SMALL LETTER O " 
       "16r00D0"    16r043F " CYRILLIC SMALL LETTER PE " 
       "16r00D1"    16r044F " CYRILLIC SMALL LETTER YA " 
       "16r00D2"    16r0440 " CYRILLIC SMALL LETTER ER " 
       "16r00D3"    16r0441 " CYRILLIC SMALL LETTER ES " 
       "16r00D4"    16r0442 " CYRILLIC SMALL LETTER TE " 
       "16r00D5"    16r0443 " CYRILLIC SMALL LETTER U " 
       "16r00D6"    16r0436 " CYRILLIC SMALL LETTER ZHE " 
       "16r00D7"    16r0432 " CYRILLIC SMALL LETTER VE " 
       "16r00D8"    16r044C " CYRILLIC SMALL LETTER SOFT SIGN " 
       "16r00D9"    16r044B " CYRILLIC SMALL LETTER YERU " 
       "16r00DA"    16r0437 " CYRILLIC SMALL LETTER ZE " 
       "16r00DB"    16r0448 " CYRILLIC SMALL LETTER SHA " 
       "16r00DC"    16r044D " CYRILLIC SMALL LETTER E " 
       "16r00DD"    16r0449 " CYRILLIC SMALL LETTER SHCHA " 
       "16r00DE"    16r0447 " CYRILLIC SMALL LETTER CHE " 
       "16r00DF"    16r044A " CYRILLIC SMALL LETTER HARD SIGN " 
       "16r00E0"    16r042E " CYRILLIC CAPITAL LETTER YU " 
       "16r00E1"    16r0410 " CYRILLIC CAPITAL LETTER A " 
       "16r00E2"    16r0411 " CYRILLIC CAPITAL LETTER BE " 
       "16r00E3"    16r0426 " CYRILLIC CAPITAL LETTER TSE " 
       "16r00E4"    16r0414 " CYRILLIC CAPITAL LETTER DE " 
       "16r00E5"    16r0415 " CYRILLIC CAPITAL LETTER IE " 
       "16r00E6"    16r0424 " CYRILLIC CAPITAL LETTER EF " 
       "16r00E7"    16r0413 " CYRILLIC CAPITAL LETTER GHE " 
       "16r00E8"    16r0425 " CYRILLIC CAPITAL LETTER HA " 
       "16r00E9"    16r0418 " CYRILLIC CAPITAL LETTER I " 
       "16r00EA"    16r0419 " CYRILLIC CAPITAL LETTER SHORT I " 
       "16r00EB"    16r041A " CYRILLIC CAPITAL LETTER KA " 
       "16r00EC"    16r041B " CYRILLIC CAPITAL LETTER EL " 
       "16r00ED"    16r041C " CYRILLIC CAPITAL LETTER EM " 
       "16r00EE"    16r041D " CYRILLIC CAPITAL LETTER EN " 
       "16r00EF"    16r041E " CYRILLIC CAPITAL LETTER O " 
       "16r00F0"    16r041F " CYRILLIC CAPITAL LETTER PE " 
       "16r00F1"    16r042F " CYRILLIC CAPITAL LETTER YA " 
       "16r00F2"    16r0420 " CYRILLIC CAPITAL LETTER ER " 
       "16r00F3"    16r0421 " CYRILLIC CAPITAL LETTER ES " 
       "16r00F4"    16r0422 " CYRILLIC CAPITAL LETTER TE " 
       "16r00F5"    16r0423 " CYRILLIC CAPITAL LETTER U " 
       "16r00F6"    16r0416 " CYRILLIC CAPITAL LETTER ZHE " 
       "16r00F7"    16r0412 " CYRILLIC CAPITAL LETTER VE " 
       "16r00F8"    16r042C " CYRILLIC CAPITAL LETTER SOFT SIGN " 
       "16r00F9"    16r042B " CYRILLIC CAPITAL LETTER YERU " 
       "16r00FA"    16r0417 " CYRILLIC CAPITAL LETTER ZE " 
       "16r00FB"    16r0428 " CYRILLIC CAPITAL LETTER SHA " 
       "16r00FC"    16r042D " CYRILLIC CAPITAL LETTER E " 
       "16r00FD"    16r0429 " CYRILLIC CAPITAL LETTER SHCHA " 
       "16r00FE"    16r0427 " CYRILLIC CAPITAL LETTER CHE " 
       "16r00FF"    16r042A " CYRILLIC CAPITAL LETTER HARD SIGN " 
       ) at:(code - 16r7F).
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16r7F ifTrue:[ ^ unicode ].
    unicode > 16r25A0 ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r9F ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r451 ifTrue:[
	unicode <= 16rF7 ifTrue:[
	    unicode <= 16rB7 ifTrue:[
		[
		    |t|
		    t := #[
		       "16r00A0"    16r9A " NO-BREAK SPACE " 
		       "16r00A1"    16r00 " invalid " 
		       "16r00A2"    16r00 " invalid " 
		       "16r00A3"    16r00 " invalid " 
		       "16r00A4"    16r00 " invalid " 
		       "16r00A5"    16r00 " invalid " 
		       "16r00A6"    16r00 " invalid " 
		       "16r00A7"    16r00 " invalid " 
		       "16r00A8"    16r00 " invalid " 
		       "16r00A9"    16rBF " COPYRIGHT SIGN " 
		       "16r00AA"    16r00 " invalid " 
		       "16r00AB"    16r00 " invalid " 
		       "16r00AC"    16r00 " invalid " 
		       "16r00AD"    16r00 " invalid " 
		       "16r00AE"    16r00 " invalid " 
		       "16r00AF"    16r00 " invalid " 
		       "16r00B0"    16r9C " DEGREE SIGN " 
		       "16r00B1"    16r00 " invalid " 
		       "16r00B2"    16r9D " SUPERSCRIPT TWO " 
		       "16r00B3"    16r00 " invalid " 
		       "16r00B4"    16r00 " invalid " 
		       "16r00B5"    16r00 " invalid " 
		       "16r00B6"    16r00 " invalid " 
		       "16r00B7"    16r9E " MIDDLE DOT " 
		       ] at:(unicode - 16r9F).
		    t == 0 ifFalse:[^ t].
		    ^ self encodingError
		] value.
	    ].
	    unicode <= 16rF6 ifTrue:[
		^ self encodingError.
	    ].
	    ^  "16r00F7" 16r009F " DIVISION SIGN " 
	].
	unicode <= 16r400 ifTrue:[
	    ^ self encodingError.
	].
	[
	    |t|
	    t := #[
	       "16r0401"    16rB3 " CYRILLIC CAPITAL LETTER IO " 
	       "16r0402"    16r00 " invalid " 
	       "16r0403"    16r00 " invalid " 
	       "16r0404"    16r00 " invalid " 
	       "16r0405"    16r00 " invalid " 
	       "16r0406"    16r00 " invalid " 
	       "16r0407"    16r00 " invalid " 
	       "16r0408"    16r00 " invalid " 
	       "16r0409"    16r00 " invalid " 
	       "16r040A"    16r00 " invalid " 
	       "16r040B"    16r00 " invalid " 
	       "16r040C"    16r00 " invalid " 
	       "16r040D"    16r00 " invalid " 
	       "16r040E"    16r00 " invalid " 
	       "16r040F"    16r00 " invalid " 
	       "16r0410"    16rE1 " CYRILLIC CAPITAL LETTER A " 
	       "16r0411"    16rE2 " CYRILLIC CAPITAL LETTER BE " 
	       "16r0412"    16rF7 " CYRILLIC CAPITAL LETTER VE " 
	       "16r0413"    16rE7 " CYRILLIC CAPITAL LETTER GHE " 
	       "16r0414"    16rE4 " CYRILLIC CAPITAL LETTER DE " 
	       "16r0415"    16rE5 " CYRILLIC CAPITAL LETTER IE " 
	       "16r0416"    16rF6 " CYRILLIC CAPITAL LETTER ZHE " 
	       "16r0417"    16rFA " CYRILLIC CAPITAL LETTER ZE " 
	       "16r0418"    16rE9 " CYRILLIC CAPITAL LETTER I " 
	       "16r0419"    16rEA " CYRILLIC CAPITAL LETTER SHORT I " 
	       "16r041A"    16rEB " CYRILLIC CAPITAL LETTER KA " 
	       "16r041B"    16rEC " CYRILLIC CAPITAL LETTER EL " 
	       "16r041C"    16rED " CYRILLIC CAPITAL LETTER EM " 
	       "16r041D"    16rEE " CYRILLIC CAPITAL LETTER EN " 
	       "16r041E"    16rEF " CYRILLIC CAPITAL LETTER O " 
	       "16r041F"    16rF0 " CYRILLIC CAPITAL LETTER PE " 
	       "16r0420"    16rF2 " CYRILLIC CAPITAL LETTER ER " 
	       "16r0421"    16rF3 " CYRILLIC CAPITAL LETTER ES " 
	       "16r0422"    16rF4 " CYRILLIC CAPITAL LETTER TE " 
	       "16r0423"    16rF5 " CYRILLIC CAPITAL LETTER U " 
	       "16r0424"    16rE6 " CYRILLIC CAPITAL LETTER EF " 
	       "16r0425"    16rE8 " CYRILLIC CAPITAL LETTER HA " 
	       "16r0426"    16rE3 " CYRILLIC CAPITAL LETTER TSE " 
	       "16r0427"    16rFE " CYRILLIC CAPITAL LETTER CHE " 
	       "16r0428"    16rFB " CYRILLIC CAPITAL LETTER SHA " 
	       "16r0429"    16rFD " CYRILLIC CAPITAL LETTER SHCHA " 
	       "16r042A"    16rFF " CYRILLIC CAPITAL LETTER HARD SIGN " 
	       "16r042B"    16rF9 " CYRILLIC CAPITAL LETTER YERU " 
	       "16r042C"    16rF8 " CYRILLIC CAPITAL LETTER SOFT SIGN " 
	       "16r042D"    16rFC " CYRILLIC CAPITAL LETTER E " 
	       "16r042E"    16rE0 " CYRILLIC CAPITAL LETTER YU " 
	       "16r042F"    16rF1 " CYRILLIC CAPITAL LETTER YA " 
	       "16r0430"    16rC1 " CYRILLIC SMALL LETTER A " 
	       "16r0431"    16rC2 " CYRILLIC SMALL LETTER BE " 
	       "16r0432"    16rD7 " CYRILLIC SMALL LETTER VE " 
	       "16r0433"    16rC7 " CYRILLIC SMALL LETTER GHE " 
	       "16r0434"    16rC4 " CYRILLIC SMALL LETTER DE " 
	       "16r0435"    16rC5 " CYRILLIC SMALL LETTER IE " 
	       "16r0436"    16rD6 " CYRILLIC SMALL LETTER ZHE " 
	       "16r0437"    16rDA " CYRILLIC SMALL LETTER ZE " 
	       "16r0438"    16rC9 " CYRILLIC SMALL LETTER I " 
	       "16r0439"    16rCA " CYRILLIC SMALL LETTER SHORT I " 
	       "16r043A"    16rCB " CYRILLIC SMALL LETTER KA " 
	       "16r043B"    16rCC " CYRILLIC SMALL LETTER EL " 
	       "16r043C"    16rCD " CYRILLIC SMALL LETTER EM " 
	       "16r043D"    16rCE " CYRILLIC SMALL LETTER EN " 
	       "16r043E"    16rCF " CYRILLIC SMALL LETTER O " 
	       "16r043F"    16rD0 " CYRILLIC SMALL LETTER PE " 
	       "16r0440"    16rD2 " CYRILLIC SMALL LETTER ER " 
	       "16r0441"    16rD3 " CYRILLIC SMALL LETTER ES " 
	       "16r0442"    16rD4 " CYRILLIC SMALL LETTER TE " 
	       "16r0443"    16rD5 " CYRILLIC SMALL LETTER U " 
	       "16r0444"    16rC6 " CYRILLIC SMALL LETTER EF " 
	       "16r0445"    16rC8 " CYRILLIC SMALL LETTER HA " 
	       "16r0446"    16rC3 " CYRILLIC SMALL LETTER TSE " 
	       "16r0447"    16rDE " CYRILLIC SMALL LETTER CHE " 
	       "16r0448"    16rDB " CYRILLIC SMALL LETTER SHA " 
	       "16r0449"    16rDD " CYRILLIC SMALL LETTER SHCHA " 
	       "16r044A"    16rDF " CYRILLIC SMALL LETTER HARD SIGN " 
	       "16r044B"    16rD9 " CYRILLIC SMALL LETTER YERU " 
	       "16r044C"    16rD8 " CYRILLIC SMALL LETTER SOFT SIGN " 
	       "16r044D"    16rDC " CYRILLIC SMALL LETTER E " 
	       "16r044E"    16rC0 " CYRILLIC SMALL LETTER YU " 
	       "16r044F"    16rD1 " CYRILLIC SMALL LETTER YA " 
	       "16r0450"    16r00 " invalid " 
	       "16r0451"    16rA3 " CYRILLIC SMALL LETTER IO " 
	       ] at:(unicode - 16r400).
	    t == 0 ifFalse:[^ t].
	    ^ self encodingError
	] value.
    ].
    unicode <= 16r2218 ifTrue:[
	^ self encodingError.
    ].
    unicode <= 16r2321 ifTrue:[
	unicode <= 16r2265 ifTrue:[
	    unicode <= 16r221A ifTrue:[
		^ #[
		   "16r2219"    16r95 " BULLET OPERATOR " 
		   "16r221A"    16r96 " SQUARE ROOT " 
		   ] at:(unicode - 16r2218).
	    ].
	    unicode <= 16r2247 ifTrue:[
		^ self encodingError.
	    ].
	    unicode == 16r2248 ifTrue:[
		^  "16r2248" 16r0097 " ALMOST EQUAL TO " 
	    ].
	    unicode <= 16r2263 ifTrue:[
		^ self encodingError.
	    ].
	    ^ #[
	       "16r2264"    16r98 " LESS-THAN OR EQUAL TO " 
	       "16r2265"    16r99 " GREATER-THAN OR EQUAL TO " 
	       ] at:(unicode - 16r2263).
	].
	unicode <= 16r231F ifTrue:[
	    ^ self encodingError.
	].
	^ #[
	   "16r2320"    16r93 " TOP HALF INTEGRAL " 
	   "16r2321"    16r9B " BOTTOM HALF INTEGRAL " 
	   ] at:(unicode - 16r231F).
    ].
    unicode <= 16r24FF ifTrue:[
	^ self encodingError.
    ].
    [
	|t|
	t := #[
	   "16r2500"    16r80 " BOX DRAWINGS LIGHT HORIZONTAL " 
	   "16r2501"    16r00 " invalid " 
	   "16r2502"    16r81 " BOX DRAWINGS LIGHT VERTICAL " 
	   "16r2503"    16r00 " invalid " 
	   "16r2504"    16r00 " invalid " 
	   "16r2505"    16r00 " invalid " 
	   "16r2506"    16r00 " invalid " 
	   "16r2507"    16r00 " invalid " 
	   "16r2508"    16r00 " invalid " 
	   "16r2509"    16r00 " invalid " 
	   "16r250A"    16r00 " invalid " 
	   "16r250B"    16r00 " invalid " 
	   "16r250C"    16r82 " BOX DRAWINGS LIGHT DOWN AND RIGHT " 
	   "16r250D"    16r00 " invalid " 
	   "16r250E"    16r00 " invalid " 
	   "16r250F"    16r00 " invalid " 
	   "16r2510"    16r83 " BOX DRAWINGS LIGHT DOWN AND LEFT " 
	   "16r2511"    16r00 " invalid " 
	   "16r2512"    16r00 " invalid " 
	   "16r2513"    16r00 " invalid " 
	   "16r2514"    16r84 " BOX DRAWINGS LIGHT UP AND RIGHT " 
	   "16r2515"    16r00 " invalid " 
	   "16r2516"    16r00 " invalid " 
	   "16r2517"    16r00 " invalid " 
	   "16r2518"    16r85 " BOX DRAWINGS LIGHT UP AND LEFT " 
	   "16r2519"    16r00 " invalid " 
	   "16r251A"    16r00 " invalid " 
	   "16r251B"    16r00 " invalid " 
	   "16r251C"    16r86 " BOX DRAWINGS LIGHT VERTICAL AND RIGHT " 
	   "16r251D"    16r00 " invalid " 
	   "16r251E"    16r00 " invalid " 
	   "16r251F"    16r00 " invalid " 
	   "16r2520"    16r00 " invalid " 
	   "16r2521"    16r00 " invalid " 
	   "16r2522"    16r00 " invalid " 
	   "16r2523"    16r00 " invalid " 
	   "16r2524"    16r87 " BOX DRAWINGS LIGHT VERTICAL AND LEFT " 
	   "16r2525"    16r00 " invalid " 
	   "16r2526"    16r00 " invalid " 
	   "16r2527"    16r00 " invalid " 
	   "16r2528"    16r00 " invalid " 
	   "16r2529"    16r00 " invalid " 
	   "16r252A"    16r00 " invalid " 
	   "16r252B"    16r00 " invalid " 
	   "16r252C"    16r88 " BOX DRAWINGS LIGHT DOWN AND HORIZONTAL " 
	   "16r252D"    16r00 " invalid " 
	   "16r252E"    16r00 " invalid " 
	   "16r252F"    16r00 " invalid " 
	   "16r2530"    16r00 " invalid " 
	   "16r2531"    16r00 " invalid " 
	   "16r2532"    16r00 " invalid " 
	   "16r2533"    16r00 " invalid " 
	   "16r2534"    16r89 " BOX DRAWINGS LIGHT UP AND HORIZONTAL " 
	   "16r2535"    16r00 " invalid " 
	   "16r2536"    16r00 " invalid " 
	   "16r2537"    16r00 " invalid " 
	   "16r2538"    16r00 " invalid " 
	   "16r2539"    16r00 " invalid " 
	   "16r253A"    16r00 " invalid " 
	   "16r253B"    16r00 " invalid " 
	   "16r253C"    16r8A " BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL " 
	   "16r253D"    16r00 " invalid " 
	   "16r253E"    16r00 " invalid " 
	   "16r253F"    16r00 " invalid " 
	   "16r2540"    16r00 " invalid " 
	   "16r2541"    16r00 " invalid " 
	   "16r2542"    16r00 " invalid " 
	   "16r2543"    16r00 " invalid " 
	   "16r2544"    16r00 " invalid " 
	   "16r2545"    16r00 " invalid " 
	   "16r2546"    16r00 " invalid " 
	   "16r2547"    16r00 " invalid " 
	   "16r2548"    16r00 " invalid " 
	   "16r2549"    16r00 " invalid " 
	   "16r254A"    16r00 " invalid " 
	   "16r254B"    16r00 " invalid " 
	   "16r254C"    16r00 " invalid " 
	   "16r254D"    16r00 " invalid " 
	   "16r254E"    16r00 " invalid " 
	   "16r254F"    16r00 " invalid " 
	   "16r2550"    16rA0 " BOX DRAWINGS DOUBLE HORIZONTAL " 
	   "16r2551"    16rA1 " BOX DRAWINGS DOUBLE VERTICAL " 
	   "16r2552"    16rA2 " BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE " 
	   "16r2553"    16rA4 " BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE " 
	   "16r2554"    16rA5 " BOX DRAWINGS DOUBLE DOWN AND RIGHT " 
	   "16r2555"    16rA6 " BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE " 
	   "16r2556"    16rA7 " BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE " 
	   "16r2557"    16rA8 " BOX DRAWINGS DOUBLE DOWN AND LEFT " 
	   "16r2558"    16rA9 " BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE " 
	   "16r2559"    16rAA " BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE " 
	   "16r255A"    16rAB " BOX DRAWINGS DOUBLE UP AND RIGHT " 
	   "16r255B"    16rAC " BOX DRAWINGS UP SINGLE AND LEFT DOUBLE " 
	   "16r255C"    16rAD " BOX DRAWINGS UP DOUBLE AND LEFT SINGLE " 
	   "16r255D"    16rAE " BOX DRAWINGS DOUBLE UP AND LEFT " 
	   "16r255E"    16rAF " BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE " 
	   "16r255F"    16rB0 " BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE " 
	   "16r2560"    16rB1 " BOX DRAWINGS DOUBLE VERTICAL AND RIGHT " 
	   "16r2561"    16rB2 " BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE " 
	   "16r2562"    16rB4 " BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE " 
	   "16r2563"    16rB5 " BOX DRAWINGS DOUBLE VERTICAL AND LEFT " 
	   "16r2564"    16rB6 " BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE " 
	   "16r2565"    16rB7 " BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE " 
	   "16r2566"    16rB8 " BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL " 
	   "16r2567"    16rB9 " BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE " 
	   "16r2568"    16rBA " BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE " 
	   "16r2569"    16rBB " BOX DRAWINGS DOUBLE UP AND HORIZONTAL " 
	   "16r256A"    16rBC " BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE " 
	   "16r256B"    16rBD " BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE " 
	   "16r256C"    16rBE " BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL " 
	   "16r256D"    16r00 " invalid " 
	   "16r256E"    16r00 " invalid " 
	   "16r256F"    16r00 " invalid " 
	   "16r2570"    16r00 " invalid " 
	   "16r2571"    16r00 " invalid " 
	   "16r2572"    16r00 " invalid " 
	   "16r2573"    16r00 " invalid " 
	   "16r2574"    16r00 " invalid " 
	   "16r2575"    16r00 " invalid " 
	   "16r2576"    16r00 " invalid " 
	   "16r2577"    16r00 " invalid " 
	   "16r2578"    16r00 " invalid " 
	   "16r2579"    16r00 " invalid " 
	   "16r257A"    16r00 " invalid " 
	   "16r257B"    16r00 " invalid " 
	   "16r257C"    16r00 " invalid " 
	   "16r257D"    16r00 " invalid " 
	   "16r257E"    16r00 " invalid " 
	   "16r257F"    16r00 " invalid " 
	   "16r2580"    16r8B " UPPER HALF BLOCK " 
	   "16r2581"    16r00 " invalid " 
	   "16r2582"    16r00 " invalid " 
	   "16r2583"    16r00 " invalid " 
	   "16r2584"    16r8C " LOWER HALF BLOCK " 
	   "16r2585"    16r00 " invalid " 
	   "16r2586"    16r00 " invalid " 
	   "16r2587"    16r00 " invalid " 
	   "16r2588"    16r8D " FULL BLOCK " 
	   "16r2589"    16r00 " invalid " 
	   "16r258A"    16r00 " invalid " 
	   "16r258B"    16r00 " invalid " 
	   "16r258C"    16r8E " LEFT HALF BLOCK " 
	   "16r258D"    16r00 " invalid " 
	   "16r258E"    16r00 " invalid " 
	   "16r258F"    16r00 " invalid " 
	   "16r2590"    16r8F " RIGHT HALF BLOCK " 
	   "16r2591"    16r90 " LIGHT SHADE " 
	   "16r2592"    16r91 " MEDIUM SHADE " 
	   "16r2593"    16r92 " DARK SHADE " 
	   "16r2594"    16r00 " invalid " 
	   "16r2595"    16r00 " invalid " 
	   "16r2596"    16r00 " invalid " 
	   "16r2597"    16r00 " invalid " 
	   "16r2598"    16r00 " invalid " 
	   "16r2599"    16r00 " invalid " 
	   "16r259A"    16r00 " invalid " 
	   "16r259B"    16r00 " invalid " 
	   "16r259C"    16r00 " invalid " 
	   "16r259D"    16r00 " invalid " 
	   "16r259E"    16r00 " invalid " 
	   "16r259F"    16r00 " invalid " 
	   "16r25A0"    16r94 " BLACK SQUARE " 
	   ] at:(unicode - 16r24FF).
	t == 0 ifFalse:[^ t].
	^ self encodingError
    ] value.
! !

!CharacterEncoder::KOI8_U class methodsFor:'mapping'!

mapFileURL2_relativePathName
    ^ 'KOI8-U'
!

mapping
"
# From: http://std.dkuug.dk/i18n/charmaps/KOI8-U

<code_set_name> KOI8-U
<comment_char> %
<escape_char> /
% version: 1.0
% repertoiremap: mnemonic,ds
%  source: RFC 2319

%  Mibenum: 2088

%  source: http://www.net.ua/KOI8-U/

CHARMAP
<NU>                   /x00   <U0000> NULL (NUL)
<SH>                   /x01   <U0001> START OF HEADING (SOH)
<SX>                   /x02   <U0002> START OF TEXT (STX)
<EX>                   /x03   <U0003> END OF TEXT (ETX)
<ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
<EQ>                   /x05   <U0005> ENQUIRY (ENQ)
<AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
<BL>                   /x07   <U0007> BELL (BEL)
<BS>                   /x08   <U0008> BACKSPACE (BS)
<HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
<LF>                   /x0A   <U000A> LINE FEED (LF)
<VT>                   /x0B   <U000B> LINE TABULATION (VT)
<FF>                   /x0C   <U000C> FORM FEED (FF)
<CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
<SO>                   /x0E   <U000E> SHIFT OUT (SO)
<SI>                   /x0F   <U000F> SHIFT IN (SI)
<DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
<D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
<D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
<D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
<D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CN>                   /x18   <U0018> CANCEL (CAN)
<EM>                   /x19   <U0019> END OF MEDIUM (EM)
<SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
<EC>                   /x1B   <U001B> ESCAPE (ESC)
<FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
<GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
<RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
<US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
<SP>                   /x20   <U0020> SPACE
<!!>                    /x21   <U0021> EXCLAMATION MARK
<'>                    /x22   <U0022> QUOTATION MARK
<Nb>                   /x23   <U0023> NUMBER SIGN
<DO>                   /x24   <U0024> DOLLAR SIGN
<%>                    /x25   <U0025> PERCENT SIGN
<&>                    /x26   <U0026> AMPERSAND
<'>                    /x27   <U0027> APOSTROPHE
<(>                    /x28   <U0028> LEFT PARENTHESIS
<)>                    /x29   <U0029> RIGHT PARENTHESIS
<*>                    /x2A   <U002A> ASTERISK
<+>                    /x2B   <U002B> PLUS SIGN
<,>                    /x2C   <U002C> COMMA
<->                    /x2D   <U002D> HYPHEN-MINUS
<.>                    /x2E   <U002E> FULL STOP
<//>                   /x2F   <U002F> SOLIDUS
<0>                    /x30   <U0030> DIGIT ZERO
<1>                    /x31   <U0031> DIGIT ONE
<2>                    /x32   <U0032> DIGIT TWO
<3>                    /x33   <U0033> DIGIT THREE
<4>                    /x34   <U0034> DIGIT FOUR
<5>                    /x35   <U0035> DIGIT FIVE
<6>                    /x36   <U0036> DIGIT SIX
<7>                    /x37   <U0037> DIGIT SEVEN
<8>                    /x38   <U0038> DIGIT EIGHT
<9>                    /x39   <U0039> DIGIT NINE
<:>                    /x3A   <U003A> COLON
<;>                    /x3B   <U003B> SEMICOLON
<<>                    /x3C   <U003C> LESS-THAN SIGN
<=>                    /x3D   <U003D> EQUALS SIGN
</>>                   /x3E   <U003E> GREATER-THAN SIGN
<?>                    /x3F   <U003F> QUESTION MARK
<At>                   /x40   <U0040> COMMERCIAL AT
<A>                    /x41   <U0041> LATIN CAPITAL LETTER A
<B>                    /x42   <U0042> LATIN CAPITAL LETTER B
<C>                    /x43   <U0043> LATIN CAPITAL LETTER C
<D>                    /x44   <U0044> LATIN CAPITAL LETTER D
<E>                    /x45   <U0045> LATIN CAPITAL LETTER E
<F>                    /x46   <U0046> LATIN CAPITAL LETTER F
<G>                    /x47   <U0047> LATIN CAPITAL LETTER G
<H>                    /x48   <U0048> LATIN CAPITAL LETTER H
<I>                    /x49   <U0049> LATIN CAPITAL LETTER I
<J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
<K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
<L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
<M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
<N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
<O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
<P>                    /x50   <U0050> LATIN CAPITAL LETTER P
<Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
<R>                    /x52   <U0052> LATIN CAPITAL LETTER R
<S>                    /x53   <U0053> LATIN CAPITAL LETTER S
<T>                    /x54   <U0054> LATIN CAPITAL LETTER T
<U>                    /x55   <U0055> LATIN CAPITAL LETTER U
<V>                    /x56   <U0056> LATIN CAPITAL LETTER V
<W>                    /x57   <U0057> LATIN CAPITAL LETTER W
<X>                    /x58   <U0058> LATIN CAPITAL LETTER X
<Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
<Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
<<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
<////>                 /x5C   <U005C> REVERSE SOLIDUS
<)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
<'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
<_>                    /x5F   <U005F> LOW LINE
<'!!>                   /x60   <U0060> GRAVE ACCENT
<a>                    /x61   <U0061> LATIN SMALL LETTER A
<b>                    /x62   <U0062> LATIN SMALL LETTER B
<c>                    /x63   <U0063> LATIN SMALL LETTER C
<d>                    /x64   <U0064> LATIN SMALL LETTER D
<e>                    /x65   <U0065> LATIN SMALL LETTER E
<f>                    /x66   <U0066> LATIN SMALL LETTER F
<g>                    /x67   <U0067> LATIN SMALL LETTER G
<h>                    /x68   <U0068> LATIN SMALL LETTER H
<i>                    /x69   <U0069> LATIN SMALL LETTER I
<j>                    /x6A   <U006A> LATIN SMALL LETTER J
<k>                    /x6B   <U006B> LATIN SMALL LETTER K
<l>                    /x6C   <U006C> LATIN SMALL LETTER L
<m>                    /x6D   <U006D> LATIN SMALL LETTER M
<n>                    /x6E   <U006E> LATIN SMALL LETTER N
<o>                    /x6F   <U006F> LATIN SMALL LETTER O
<p>                    /x70   <U0070> LATIN SMALL LETTER P
<q>                    /x71   <U0071> LATIN SMALL LETTER Q
<r>                    /x72   <U0072> LATIN SMALL LETTER R
<s>                    /x73   <U0073> LATIN SMALL LETTER S
<t>                    /x74   <U0074> LATIN SMALL LETTER T
<u>                    /x75   <U0075> LATIN SMALL LETTER U
<v>                    /x76   <U0076> LATIN SMALL LETTER V
<w>                    /x77   <U0077> LATIN SMALL LETTER W
<x>                    /x78   <U0078> LATIN SMALL LETTER X
<y>                    /x79   <U0079> LATIN SMALL LETTER Y
<z>                    /x7A   <U007A> LATIN SMALL LETTER Z
<(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
<!!!!>                   /x7C   <U007C> VERTICAL LINE
<!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
<'?>                   /x7E   <U007E> TILDE
<DT>                   /x7F   <U007F> DELETE (DEL)
<hh>                   /x80   <U2500> BOX DRAWINGS LIGHT HORIZONTAL
<vv>                   /x81   <U2502> BOX DRAWINGS LIGHT VERTICAL
<dr>                   /x82   <U250C> BOX DRAWINGS LIGHT DOWN AND RIGHT
<dl>                   /x83   <U2510> BOX DRAWINGS LIGHT DOWN AND LEFT
<ur>                   /x84   <U2514> BOX DRAWINGS LIGHT UP AND RIGHT
<ul>                   /x85   <U2518> BOX DRAWINGS LIGHT UP AND LEFT
<vr>                   /x86   <U251C> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
<vl>                   /x87   <U2524> BOX DRAWINGS LIGHT VERTICAL AND LEFT
<dh>                   /x88   <U252C> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
<uh>                   /x89   <U2534> BOX DRAWINGS LIGHT UP AND HORIZONTAL
<vh>                   /x8A   <U253C> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
<TB>                   /x8B   <U2580> UPPER HALF BLOCK
<LB>                   /x8C   <U2584> LOWER HALF BLOCK
<FB>                   /x8D   <U2588> FULL BLOCK
<lB>                   /x8E   <U258C> LEFT HALF BLOCK
<RB>                   /x8F   <U2590> RIGHT HALF BLOCK
<.S>                   /x90   <U2591> LIGHT SHADE
<:S>                   /x91   <U2592> MEDIUM SHADE
<?S>                   /x92   <U2593> DARK SHADE
<Iu>                   /x93   <U2320> TOP HALF INTEGRAL
<fS>                   /x94   <U25A0> BLACK SQUARE
<Sb>                   /x95   <U2219> BULLET OPERATOR
<RT>                   /x96   <U221A> SQUARE ROOT
<?2>                   /x97   <U2248> ALMOST EQUAL TO
<=<>                   /x98   <U2264> LESS-THAN OR EQUAL TO
</>=>                  /x99   <U2265> GREATER-THAN OR EQUAL TO
<NS>                   /x9A   <U00A0> NO-BREAK SPACE
<Il>                   /x9B   <U2321> BOTTOM HALF INTEGRAL
<DG>                   /x9C   <U00B0> DEGREE SIGN
<2S>                   /x9D   <U00B2> SUPERSCRIPT TWO
<.M>                   /x9E   <U00B7> MIDDLE DOT
<-:>                   /x9F   <U00F7> DIVISION SIGN
<HH>                   /xA0   <U2550> BOX DRAWINGS DOUBLE HORIZONTAL
<VV>                   /xA1   <U2551> BOX DRAWINGS DOUBLE VERTICAL
<dR>                   /xA2   <U2552> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
<io>                   /xA3   <U0451> CYRILLIC SMALL LETTER IO
<ie>                   /xA4   <U0454> CYRILLIC SMALL LETTER UKRAINIAN IE
<DR>                   /xA5   <U2554> BOX DRAWINGS DOUBLE DOWN AND RIGHT
<ii>                   /xA6   <U0456> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
<yi>                   /xA7   <U0457> CYRILLIC SMALL LETTER YI (Ukrainian)
<LD>                   /xA8   <U2557> BOX DRAWINGS DOUBLE DOWN AND LEFT
<uR>                   /xA9   <U2558> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
<Ur>                   /xAA   <U2559> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
<UR>                   /xAB   <U255A> BOX DRAWINGS DOUBLE UP AND RIGHT
<uL>                   /xAC   <U255B> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
<g3>                   /xAD   <U0491> CYRILLIC SMALL LETTER GHE WITH UPTURN
<UL>                   /xAE   <U255D> BOX DRAWINGS DOUBLE UP AND LEFT
<vR>                   /xAF   <U255E> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
<Vr>                   /xB0   <U255F> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
<VR>                   /xB1   <U2560> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
<vL>                   /xB2   <U2561> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
<IO>                   /xB3   <U0401> CYRILLIC CAPITAL LETTER IO
<IE>                   /xB4   <U0404> CYRILLIC CAPITAL LETTER UKRAINIAN IE
<VL>                   /xB5   <U2563> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
<II>                   /xB6   <U0406> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
<YI>                   /xB7   <U0407> CYRILLIC CAPITAL LETTER YI (Ukrainian)
<DH>                   /xB8   <U2566> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
<uH>                   /xB9   <U2567> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
<Uh>                   /xBA   <U2568> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
<UH>                   /xBB   <U2569> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
<vH>                   /xBC   <U256A> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
<G3>                   /xBD   <U0490> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
<VH>                   /xBE   <U256C> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
<Co>                   /xBF   <U00A9> COPYRIGHT SIGN
<ju>                   /xC0   <U044E> CYRILLIC SMALL LETTER YU
<a=>                   /xC1   <U0430> CYRILLIC SMALL LETTER A
<b=>                   /xC2   <U0431> CYRILLIC SMALL LETTER BE
<c=>                   /xC3   <U0446> CYRILLIC SMALL LETTER TSE
<d=>                   /xC4   <U0434> CYRILLIC SMALL LETTER DE
<e=>                   /xC5   <U0435> CYRILLIC SMALL LETTER IE
<f=>                   /xC6   <U0444> CYRILLIC SMALL LETTER EF
<g=>                   /xC7   <U0433> CYRILLIC SMALL LETTER GHE
<h=>                   /xC8   <U0445> CYRILLIC SMALL LETTER HA
<i=>                   /xC9   <U0438> CYRILLIC SMALL LETTER I
<j=>                   /xCA   <U0439> CYRILLIC SMALL LETTER SHORT I
<k=>                   /xCB   <U043A> CYRILLIC SMALL LETTER KA
<l=>                   /xCC   <U043B> CYRILLIC SMALL LETTER EL
<m=>                   /xCD   <U043C> CYRILLIC SMALL LETTER EM
<n=>                   /xCE   <U043D> CYRILLIC SMALL LETTER EN
<o=>                   /xCF   <U043E> CYRILLIC SMALL LETTER O
<p=>                   /xD0   <U043F> CYRILLIC SMALL LETTER PE
<ja>                   /xD1   <U044F> CYRILLIC SMALL LETTER YA
<r=>                   /xD2   <U0440> CYRILLIC SMALL LETTER ER
<s=>                   /xD3   <U0441> CYRILLIC SMALL LETTER ES
<t=>                   /xD4   <U0442> CYRILLIC SMALL LETTER TE
<u=>                   /xD5   <U0443> CYRILLIC SMALL LETTER U
<z%>                   /xD6   <U0436> CYRILLIC SMALL LETTER ZHE
<v=>                   /xD7   <U0432> CYRILLIC SMALL LETTER VE
<%'>                   /xD8   <U044C> CYRILLIC SMALL LETTER SOFT SIGN
<y=>                   /xD9   <U044B> CYRILLIC SMALL LETTER YERU
<z=>                   /xDA   <U0437> CYRILLIC SMALL LETTER ZE
<s%>                   /xDB   <U0448> CYRILLIC SMALL LETTER SHA
<je>                   /xDC   <U044D> CYRILLIC SMALL LETTER E
<sc>                   /xDD   <U0449> CYRILLIC SMALL LETTER SHCHA
<c%>                   /xDE   <U0447> CYRILLIC SMALL LETTER CHE
<='>                   /xDF   <U044A> CYRILLIC SMALL LETTER HARD SIGN
<JU>                   /xE0   <U042E> CYRILLIC CAPITAL LETTER YU
<A=>                   /xE1   <U0410> CYRILLIC CAPITAL LETTER A
<B=>                   /xE2   <U0411> CYRILLIC CAPITAL LETTER BE
<C=>                   /xE3   <U0426> CYRILLIC CAPITAL LETTER TSE
<D=>                   /xE4   <U0414> CYRILLIC CAPITAL LETTER DE
<E=>                   /xE5   <U0415> CYRILLIC CAPITAL LETTER IE
<F=>                   /xE6   <U0424> CYRILLIC CAPITAL LETTER EF
<G=>                   /xE7   <U0413> CYRILLIC CAPITAL LETTER GHE
<H=>                   /xE8   <U0425> CYRILLIC CAPITAL LETTER HA
<I=>                   /xE9   <U0418> CYRILLIC CAPITAL LETTER I
<J=>                   /xEA   <U0419> CYRILLIC CAPITAL LETTER SHORT I
<K=>                   /xEB   <U041A> CYRILLIC CAPITAL LETTER KA
<L=>                   /xEC   <U041B> CYRILLIC CAPITAL LETTER EL
<M=>                   /xED   <U041C> CYRILLIC CAPITAL LETTER EM
<N=>                   /xEE   <U041D> CYRILLIC CAPITAL LETTER EN
<O=>                   /xEF   <U041E> CYRILLIC CAPITAL LETTER O
<P=>                   /xF0   <U041F> CYRILLIC CAPITAL LETTER PE
<JA>                   /xF1   <U042F> CYRILLIC CAPITAL LETTER YA
<R=>                   /xF2   <U0420> CYRILLIC CAPITAL LETTER ER
<S=>                   /xF3   <U0421> CYRILLIC CAPITAL LETTER ES
<T=>                   /xF4   <U0422> CYRILLIC CAPITAL LETTER TE
<U=>                   /xF5   <U0423> CYRILLIC CAPITAL LETTER U
<Z%>                   /xF6   <U0416> CYRILLIC CAPITAL LETTER ZHE
<V=>                   /xF7   <U0412> CYRILLIC CAPITAL LETTER VE
<%'>                   /xF8   <U042C> CYRILLIC CAPITAL LETTER SOFT SIGN
<Y=>                   /xF9   <U042B> CYRILLIC CAPITAL LETTER YERU
<Z=>                   /xFA   <U0417> CYRILLIC CAPITAL LETTER ZE
<S%>                   /xFB   <U0428> CYRILLIC CAPITAL LETTER SHA
<JE>                   /xFC   <U042D> CYRILLIC CAPITAL LETTER E
<Sc>                   /xFD   <U0429> CYRILLIC CAPITAL LETTER SHCHA
<C%>                   /xFE   <U0427> CYRILLIC CAPITAL LETTER CHE
<='>                   /xFF   <U042A> CYRILLIC CAPITAL LETTER HARD SIGN
<NUL>                  /x00   <U0000> NUL
<SOH>                  /x01   <U0001> START OF HEADING (SOH)
<STX>                  /x02   <U0002> START OF TEXT (STX)
<ETX>                  /x03   <U0003> END OF TEXT (ETX)
<EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
<ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
<ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
<alert>                /x07   <U0007> BELL (BEL)
<BEL>                  /x07   <U0007> BELL (BEL)
<backspace>            /x08   <U0008> BACKSPACE (BS)
<tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
<newline>              /x0A   <U000A> LINE FEED (LF)
<vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
<form-feed>            /x0C   <U000C> FORM FEED (FF)
<carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
<DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
<DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
<DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
<DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
<DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CAN>                  /x18   <U0018> CANCEL (CAN)
<SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
<ESC>                  /x1B   <U001B> ESCAPE (ESC)
<IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
<IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
<intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
<IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
<IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
<DEL>                  /x7F   <U007F> DELETE (DEL)
<space>                /x20   <U0020> SPACE
<exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
<quotation-mark>       /x22   <U0022> QUOTATION MARK
<number-sign>          /x23   <U0023> NUMBER SIGN
<dollar-sign>          /x24   <U0024> DOLLAR SIGN
<percent-sign>         /x25   <U0025> PERCENT SIGN
<ampersand>            /x26   <U0026> AMPERSAND
<apostrophe>           /x27   <U0027> APOSTROPHE
<left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
<right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
<asterisk>             /x2A   <U002A> ASTERISK
<plus-sign>            /x2B   <U002B> PLUS SIGN
<comma>                /x2C   <U002C> COMMA
<hyphen>               /x2D   <U002D> HYPHEN-MINUS
<hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
<period>               /x2E   <U002E> FULL STOP
<full-stop>            /x2E   <U002E> FULL STOP
<slash>                /x2F   <U002F> SOLIDUS
<solidus>              /x2F   <U002F> SOLIDUS
<zero>                 /x30   <U0030> DIGIT ZERO
<one>                  /x31   <U0031> DIGIT ONE
<two>                  /x32   <U0032> DIGIT TWO
<three>                /x33   <U0033> DIGIT THREE
<four>                 /x34   <U0034> DIGIT FOUR
<five>                 /x35   <U0035> DIGIT FIVE
<six>                  /x36   <U0036> DIGIT SIX
<seven>                /x37   <U0037> DIGIT SEVEN
<eight>                /x38   <U0038> DIGIT EIGHT
<nine>                 /x39   <U0039> DIGIT NINE
<colon>                /x3A   <U003A> COLON
<semicolon>            /x3B   <U003B> SEMICOLON
<less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
<equals-sign>          /x3D   <U003D> EQUALS SIGN
<greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
<question-mark>        /x3F   <U003F> QUESTION MARK
<commercial-at>        /x40   <U0040> COMMERCIAL AT
<left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
<backslash>            /x5C   <U005C> REVERSE SOLIDUS
<reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
<right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
<circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
<circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
<underscore>           /x5F   <U005F> LOW LINE
<low-line>             /x5F   <U005F> LOW LINE
<grave-accent>         /x60   <U0060> GRAVE ACCENT
<left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
<left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
<vertical-line>        /x7C   <U007C> VERTICAL LINE
<right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
<right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
<tilde>                /x7E   <U007E> TILDE
END CHARMAP

"
! !

!CharacterEncoder::KOI8_U class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'koi8-u' )
! !

!CharacterEncoder::KOI8_U methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16rA3 ifTrue:[
	^ super decode:codeArg.
    ].
    code > 16rBD ifTrue:[
	^ super decode:codeArg.
    ].
    ^ #(
       "16r00A4"    16r0454 " CYRILLIC SMALL LETTER UKRAINIAN IE " 
       "16r00A5"    16r2554 " BOX DRAWINGS DOUBLE DOWN AND RIGHT " 
       "16r00A6"    16r0456 " CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I " 
       "16r00A7"    16r0457 " CYRILLIC SMALL LETTER YI (Ukrainian) " 
       "16r00A8"    16r2557 " BOX DRAWINGS DOUBLE DOWN AND LEFT " 
       "16r00A9"    16r2558 " BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE " 
       "16r00AA"    16r2559 " BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE " 
       "16r00AB"    16r255A " BOX DRAWINGS DOUBLE UP AND RIGHT " 
       "16r00AC"    16r255B " BOX DRAWINGS UP SINGLE AND LEFT DOUBLE " 
       "16r00AD"    16r0491 " CYRILLIC SMALL LETTER GHE WITH UPTURN " 
       "16r00AE"    16r255D " BOX DRAWINGS DOUBLE UP AND LEFT " 
       "16r00AF"    16r255E " BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE " 
       "16r00B0"    16r255F " BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE " 
       "16r00B1"    16r2560 " BOX DRAWINGS DOUBLE VERTICAL AND RIGHT " 
       "16r00B2"    16r2561 " BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE " 
       "16r00B3"    16r0401 " CYRILLIC CAPITAL LETTER IO " 
       "16r00B4"    16r0404 " CYRILLIC CAPITAL LETTER UKRAINIAN IE " 
       "16r00B5"    16r2563 " BOX DRAWINGS DOUBLE VERTICAL AND LEFT " 
       "16r00B6"    16r0406 " CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I " 
       "16r00B7"    16r0407 " CYRILLIC CAPITAL LETTER YI (Ukrainian) " 
       "16r00B8"    16r2566 " BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL " 
       "16r00B9"    16r2567 " BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE " 
       "16r00BA"    16r2568 " BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE " 
       "16r00BB"    16r2569 " BOX DRAWINGS DOUBLE UP AND HORIZONTAL " 
       "16r00BC"    16r256A " BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE " 
       "16r00BD"    16r0490 " CYRILLIC CAPITAL LETTER GHE WITH UPTURN " 
       ) at:(code - 16rA3).
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16r403 ifTrue:[
	^ super encode:unicodeArg.
    ].
    unicode > 16r256B ifTrue:[
	^ super encode:unicodeArg.
    ].
    unicode <= 16r491 ifTrue:[
	unicode <= 16r457 ifTrue:[
	    [
		|t|
		t := #[
		   "16r0404"    16rB4 " CYRILLIC CAPITAL LETTER UKRAINIAN IE " 
		   "16r0405"    16r00 " invalid " 
		   "16r0406"    16rB6 " CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I " 
		   "16r0407"    16rB7 " CYRILLIC CAPITAL LETTER YI (Ukrainian) " 
		   "16r0408"    16r00 " invalid " 
		   "16r0409"    16r00 " invalid " 
		   "16r040A"    16r00 " invalid " 
		   "16r040B"    16r00 " invalid " 
		   "16r040C"    16r00 " invalid " 
		   "16r040D"    16r00 " invalid " 
		   "16r040E"    16r00 " invalid " 
		   "16r040F"    16r00 " invalid " 
		   "16r0410"    16rE1 " CYRILLIC CAPITAL LETTER A " 
		   "16r0411"    16rE2 " CYRILLIC CAPITAL LETTER BE " 
		   "16r0412"    16rF7 " CYRILLIC CAPITAL LETTER VE " 
		   "16r0413"    16rE7 " CYRILLIC CAPITAL LETTER GHE " 
		   "16r0414"    16rE4 " CYRILLIC CAPITAL LETTER DE " 
		   "16r0415"    16rE5 " CYRILLIC CAPITAL LETTER IE " 
		   "16r0416"    16rF6 " CYRILLIC CAPITAL LETTER ZHE " 
		   "16r0417"    16rFA " CYRILLIC CAPITAL LETTER ZE " 
		   "16r0418"    16rE9 " CYRILLIC CAPITAL LETTER I " 
		   "16r0419"    16rEA " CYRILLIC CAPITAL LETTER SHORT I " 
		   "16r041A"    16rEB " CYRILLIC CAPITAL LETTER KA " 
		   "16r041B"    16rEC " CYRILLIC CAPITAL LETTER EL " 
		   "16r041C"    16rED " CYRILLIC CAPITAL LETTER EM " 
		   "16r041D"    16rEE " CYRILLIC CAPITAL LETTER EN " 
		   "16r041E"    16rEF " CYRILLIC CAPITAL LETTER O " 
		   "16r041F"    16rF0 " CYRILLIC CAPITAL LETTER PE " 
		   "16r0420"    16rF2 " CYRILLIC CAPITAL LETTER ER " 
		   "16r0421"    16rF3 " CYRILLIC CAPITAL LETTER ES " 
		   "16r0422"    16rF4 " CYRILLIC CAPITAL LETTER TE " 
		   "16r0423"    16rF5 " CYRILLIC CAPITAL LETTER U " 
		   "16r0424"    16rE6 " CYRILLIC CAPITAL LETTER EF " 
		   "16r0425"    16rE8 " CYRILLIC CAPITAL LETTER HA " 
		   "16r0426"    16rE3 " CYRILLIC CAPITAL LETTER TSE " 
		   "16r0427"    16rFE " CYRILLIC CAPITAL LETTER CHE " 
		   "16r0428"    16rFB " CYRILLIC CAPITAL LETTER SHA " 
		   "16r0429"    16rFD " CYRILLIC CAPITAL LETTER SHCHA " 
		   "16r042A"    16rFF " CYRILLIC CAPITAL LETTER HARD SIGN " 
		   "16r042B"    16rF9 " CYRILLIC CAPITAL LETTER YERU " 
		   "16r042C"    16rF8 " CYRILLIC CAPITAL LETTER SOFT SIGN " 
		   "16r042D"    16rFC " CYRILLIC CAPITAL LETTER E " 
		   "16r042E"    16rE0 " CYRILLIC CAPITAL LETTER YU " 
		   "16r042F"    16rF1 " CYRILLIC CAPITAL LETTER YA " 
		   "16r0430"    16rC1 " CYRILLIC SMALL LETTER A " 
		   "16r0431"    16rC2 " CYRILLIC SMALL LETTER BE " 
		   "16r0432"    16rD7 " CYRILLIC SMALL LETTER VE " 
		   "16r0433"    16rC7 " CYRILLIC SMALL LETTER GHE " 
		   "16r0434"    16rC4 " CYRILLIC SMALL LETTER DE " 
		   "16r0435"    16rC5 " CYRILLIC SMALL LETTER IE " 
		   "16r0436"    16rD6 " CYRILLIC SMALL LETTER ZHE " 
		   "16r0437"    16rDA " CYRILLIC SMALL LETTER ZE " 
		   "16r0438"    16rC9 " CYRILLIC SMALL LETTER I " 
		   "16r0439"    16rCA " CYRILLIC SMALL LETTER SHORT I " 
		   "16r043A"    16rCB " CYRILLIC SMALL LETTER KA " 
		   "16r043B"    16rCC " CYRILLIC SMALL LETTER EL " 
		   "16r043C"    16rCD " CYRILLIC SMALL LETTER EM " 
		   "16r043D"    16rCE " CYRILLIC SMALL LETTER EN " 
		   "16r043E"    16rCF " CYRILLIC SMALL LETTER O " 
		   "16r043F"    16rD0 " CYRILLIC SMALL LETTER PE " 
		   "16r0440"    16rD2 " CYRILLIC SMALL LETTER ER " 
		   "16r0441"    16rD3 " CYRILLIC SMALL LETTER ES " 
		   "16r0442"    16rD4 " CYRILLIC SMALL LETTER TE " 
		   "16r0443"    16rD5 " CYRILLIC SMALL LETTER U " 
		   "16r0444"    16rC6 " CYRILLIC SMALL LETTER EF " 
		   "16r0445"    16rC8 " CYRILLIC SMALL LETTER HA " 
		   "16r0446"    16rC3 " CYRILLIC SMALL LETTER TSE " 
		   "16r0447"    16rDE " CYRILLIC SMALL LETTER CHE " 
		   "16r0448"    16rDB " CYRILLIC SMALL LETTER SHA " 
		   "16r0449"    16rDD " CYRILLIC SMALL LETTER SHCHA " 
		   "16r044A"    16rDF " CYRILLIC SMALL LETTER HARD SIGN " 
		   "16r044B"    16rD9 " CYRILLIC SMALL LETTER YERU " 
		   "16r044C"    16rD8 " CYRILLIC SMALL LETTER SOFT SIGN " 
		   "16r044D"    16rDC " CYRILLIC SMALL LETTER E " 
		   "16r044E"    16rC0 " CYRILLIC SMALL LETTER YU " 
		   "16r044F"    16rD1 " CYRILLIC SMALL LETTER YA " 
		   "16r0450"    16r00 " invalid " 
		   "16r0451"    16rA3 " CYRILLIC SMALL LETTER IO " 
		   "16r0452"    16r00 " invalid " 
		   "16r0453"    16r00 " invalid " 
		   "16r0454"    16rA4 " CYRILLIC SMALL LETTER UKRAINIAN IE " 
		   "16r0455"    16r00 " invalid " 
		   "16r0456"    16rA6 " CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I " 
		   "16r0457"    16rA7 " CYRILLIC SMALL LETTER YI (Ukrainian) " 
		   ] at:(unicode - 16r403).
		t == 0 ifFalse:[^ t].
		^ self decodingError.
	    ] value.
	].
	unicode <= 16r48F ifTrue:[
	    ^ self decodingError.
	].
	^ #[
	   "16r0490"    16rBD " CYRILLIC CAPITAL LETTER GHE WITH UPTURN " 
	   "16r0491"    16rAD " CYRILLIC SMALL LETTER GHE WITH UPTURN " 
	   ] at:(unicode - 16r48F).
    ].
    unicode <= 16r2218 ifTrue:[
	^ self decodingError.
    ].
    unicode <= 16r2321 ifTrue:[
	unicode <= 16r2265 ifTrue:[
	    unicode <= 16r221A ifTrue:[
		^ #[
		   "16r2219"    16r95 " BULLET OPERATOR " 
		   "16r221A"    16r96 " SQUARE ROOT " 
		   ] at:(unicode - 16r2218).
	    ].
	    unicode <= 16r2247 ifTrue:[
		^ self decodingError.
	    ].
	    unicode == 16r2248 ifTrue:[
		^  "16r2248" 16r0097 " ALMOST EQUAL TO " 
	    ].
	    unicode <= 16r2263 ifTrue:[
		^ self decodingError.
	    ].
	    ^ #[
	       "16r2264"    16r98 " LESS-THAN OR EQUAL TO " 
	       "16r2265"    16r99 " GREATER-THAN OR EQUAL TO " 
	       ] at:(unicode - 16r2263).
	].
	unicode <= 16r231F ifTrue:[
	    ^ self decodingError.
	].
	^ #[
	   "16r2320"    16r93 " TOP HALF INTEGRAL " 
	   "16r2321"    16r9B " BOTTOM HALF INTEGRAL " 
	   ] at:(unicode - 16r231F).
    ].
    unicode <= 16r24FF ifTrue:[
	^ self decodingError.
    ].
    [
	|t|
	t := #[
	   "16r2500"    16r80 " BOX DRAWINGS LIGHT HORIZONTAL " 
	   "16r2501"    16r00 " invalid " 
	   "16r2502"    16r81 " BOX DRAWINGS LIGHT VERTICAL " 
	   "16r2503"    16r00 " invalid " 
	   "16r2504"    16r00 " invalid " 
	   "16r2505"    16r00 " invalid " 
	   "16r2506"    16r00 " invalid " 
	   "16r2507"    16r00 " invalid " 
	   "16r2508"    16r00 " invalid " 
	   "16r2509"    16r00 " invalid " 
	   "16r250A"    16r00 " invalid " 
	   "16r250B"    16r00 " invalid " 
	   "16r250C"    16r82 " BOX DRAWINGS LIGHT DOWN AND RIGHT " 
	   "16r250D"    16r00 " invalid " 
	   "16r250E"    16r00 " invalid " 
	   "16r250F"    16r00 " invalid " 
	   "16r2510"    16r83 " BOX DRAWINGS LIGHT DOWN AND LEFT " 
	   "16r2511"    16r00 " invalid " 
	   "16r2512"    16r00 " invalid " 
	   "16r2513"    16r00 " invalid " 
	   "16r2514"    16r84 " BOX DRAWINGS LIGHT UP AND RIGHT " 
	   "16r2515"    16r00 " invalid " 
	   "16r2516"    16r00 " invalid " 
	   "16r2517"    16r00 " invalid " 
	   "16r2518"    16r85 " BOX DRAWINGS LIGHT UP AND LEFT " 
	   "16r2519"    16r00 " invalid " 
	   "16r251A"    16r00 " invalid " 
	   "16r251B"    16r00 " invalid " 
	   "16r251C"    16r86 " BOX DRAWINGS LIGHT VERTICAL AND RIGHT " 
	   "16r251D"    16r00 " invalid " 
	   "16r251E"    16r00 " invalid " 
	   "16r251F"    16r00 " invalid " 
	   "16r2520"    16r00 " invalid " 
	   "16r2521"    16r00 " invalid " 
	   "16r2522"    16r00 " invalid " 
	   "16r2523"    16r00 " invalid " 
	   "16r2524"    16r87 " BOX DRAWINGS LIGHT VERTICAL AND LEFT " 
	   "16r2525"    16r00 " invalid " 
	   "16r2526"    16r00 " invalid " 
	   "16r2527"    16r00 " invalid " 
	   "16r2528"    16r00 " invalid " 
	   "16r2529"    16r00 " invalid " 
	   "16r252A"    16r00 " invalid " 
	   "16r252B"    16r00 " invalid " 
	   "16r252C"    16r88 " BOX DRAWINGS LIGHT DOWN AND HORIZONTAL " 
	   "16r252D"    16r00 " invalid " 
	   "16r252E"    16r00 " invalid " 
	   "16r252F"    16r00 " invalid " 
	   "16r2530"    16r00 " invalid " 
	   "16r2531"    16r00 " invalid " 
	   "16r2532"    16r00 " invalid " 
	   "16r2533"    16r00 " invalid " 
	   "16r2534"    16r89 " BOX DRAWINGS LIGHT UP AND HORIZONTAL " 
	   "16r2535"    16r00 " invalid " 
	   "16r2536"    16r00 " invalid " 
	   "16r2537"    16r00 " invalid " 
	   "16r2538"    16r00 " invalid " 
	   "16r2539"    16r00 " invalid " 
	   "16r253A"    16r00 " invalid " 
	   "16r253B"    16r00 " invalid " 
	   "16r253C"    16r8A " BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL " 
	   "16r253D"    16r00 " invalid " 
	   "16r253E"    16r00 " invalid " 
	   "16r253F"    16r00 " invalid " 
	   "16r2540"    16r00 " invalid " 
	   "16r2541"    16r00 " invalid " 
	   "16r2542"    16r00 " invalid " 
	   "16r2543"    16r00 " invalid " 
	   "16r2544"    16r00 " invalid " 
	   "16r2545"    16r00 " invalid " 
	   "16r2546"    16r00 " invalid " 
	   "16r2547"    16r00 " invalid " 
	   "16r2548"    16r00 " invalid " 
	   "16r2549"    16r00 " invalid " 
	   "16r254A"    16r00 " invalid " 
	   "16r254B"    16r00 " invalid " 
	   "16r254C"    16r00 " invalid " 
	   "16r254D"    16r00 " invalid " 
	   "16r254E"    16r00 " invalid " 
	   "16r254F"    16r00 " invalid " 
	   "16r2550"    16rA0 " BOX DRAWINGS DOUBLE HORIZONTAL " 
	   "16r2551"    16rA1 " BOX DRAWINGS DOUBLE VERTICAL " 
	   "16r2552"    16rA2 " BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE " 
	   "16r2553"    16r00 " invalid " 
	   "16r2554"    16rA5 " BOX DRAWINGS DOUBLE DOWN AND RIGHT " 
	   "16r2555"    16r00 " invalid " 
	   "16r2556"    16r00 " invalid " 
	   "16r2557"    16rA8 " BOX DRAWINGS DOUBLE DOWN AND LEFT " 
	   "16r2558"    16rA9 " BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE " 
	   "16r2559"    16rAA " BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE " 
	   "16r255A"    16rAB " BOX DRAWINGS DOUBLE UP AND RIGHT " 
	   "16r255B"    16rAC " BOX DRAWINGS UP SINGLE AND LEFT DOUBLE " 
	   "16r255C"    16r00 " invalid " 
	   "16r255D"    16rAE " BOX DRAWINGS DOUBLE UP AND LEFT " 
	   "16r255E"    16rAF " BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE " 
	   "16r255F"    16rB0 " BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE " 
	   "16r2560"    16rB1 " BOX DRAWINGS DOUBLE VERTICAL AND RIGHT " 
	   "16r2561"    16rB2 " BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE " 
	   "16r2562"    16r00 " invalid " 
	   "16r2563"    16rB5 " BOX DRAWINGS DOUBLE VERTICAL AND LEFT " 
	   "16r2564"    16r00 " invalid " 
	   "16r2565"    16r00 " invalid " 
	   "16r2566"    16rB8 " BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL " 
	   "16r2567"    16rB9 " BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE " 
	   "16r2568"    16rBA " BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE " 
	   "16r2569"    16rBB " BOX DRAWINGS DOUBLE UP AND HORIZONTAL " 
	   "16r256A"    16rBC " BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE " 
	   "16r256B"    16r00 " invalid " 
	   ] at:(unicode - 16r24FF).
	t == 0 ifFalse:[^ t].
	^ self decodingError.
    ] value.
! !

!CharacterEncoder::KSC5601 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'OBSOLETE/EASTASIA/KSC/KSC5601.TXT'
! !

!CharacterEncoder::KSC5601 class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'ksc5601' )
! !

!CharacterEncoder::MAC_Arabic class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/ARABIC.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ARABIC.TXT

#=======================================================================
#   File name:  ARABIC.TXT
#
#   Contents:   Map (external version) from Mac OS Arabic
#               character set to Unicode 2.1 through Unicode 3.2.
#
#   Copyright:  (c) 1994-2002 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#      b3,c1 2002-Dec-19    Add comments about character display and
#                           direction overrides. Update URLs, notes.
#                           Matches internal utom<b4>.
#       b02  1999-Sep-22    Update contact e-mail address. Matches
#                           internal utom<b1>, ufrm<b1>, and Text
#                           Encoding Converter version 1.5.
#       n10  1998-Feb-05    Show required Unicode character
#                           directionality in a different way. Matches
#                           internal utom<n4>, ufrm<n21>, and Text
#                           Encoding Converter version 1.3. Update
#                           header comments; include information on
#                           loose mapping of digits.
#       n07  1997-Jul-17    Update to match internal utom<n2>, ufrm<n17>:
#                           Change standard mapping for 0xC0 from U+066D
#                           to U+274A. Add direction overrides to
#                           mappings for 0x25, 0x2C, 0x3B, 0x3F. Add
#                           information on variants.
#       n03  1995-Apr-18    First version (after fixing some typos).
#                           Matches internal ufrm<n11>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, 'Macintosh' can be used to refer to
#   Macintosh computers and 'Unicode' can be used to refer to the
#   Unicode standard.
#
#   Apple makes no warranty or representation, either express or
#   implied, with respect to these tables, their quality, accuracy, or
#   fitness for a particular purpose. In no event will Apple be liable
#   for direct, indirect, special, incidental, or consequential damages 
#   resulting from any defect or inaccuracy in this document or the
#   accompanying tables.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file 'README.TXT'.
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Arabic code (in hex as 0xNN).
#     Column #2 is the corresponding Unicode (in hex as 0xNNNN),
#       possibly preceded by a tag indicating required directionality
#       (i.e. <LR>+0xNNNN or <RL>+0xNNNN).
#     Column #3 is a comment containing the Unicode name.
#
#   The entries are in Mac OS Arabic code order.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Roman character set uses the standard control characters at
#   0x00-0x1F and 0x7F.
#
# Notes on Mac OS Arabic:
# -----------------------
#
#   1. General
#
#   The Mac OS Arabic character set is intended to cover Arabic as
#   used in North Africa, the Arabian peninsula, and the Levant. It
#   also contains several characters needed for Urdu and/or Farsi.
#
#   The Mac OS Arabic character set is essentially a superset of ISO
#   8859-6. The 8859-6 code points that are interpreted differently
#   in the Mac OS Arabic set are as follows:
#    0xA0 is NO-BREAK SPACE in 8859-6 and right-left SPACE in Mac OS
#         Arabic; NO-BREAK is 0x81 in Mac OS Arabic.
#    0xA4 is CURRENCY SIGN in 8859-6 and right-left DOLLAR SIGN in
#         Mac OS Arabic.
#    0xAD is SOFT HYPHEN in 8859-6 and right-left HYPHEN-MINUS in
#         Mac OS Arabic.
#   ISO 8859-6 specifies that codes 0x30-0x39 can be rendered either
#   with European digit shapes or Arabic digit shapes. This is also
#   true in Mac OS Arabic, which determines from context which digit
#   shapes to use (see below).
#
#   The Mac OS Arabic character set uses the C1 controls area and other
#   code points which are undefined in ISO 8859-6 for additional
#   graphic characters: additional Arabic letters for Farsi and Urdu,
#   some accented Roman letters for European languages (such as French),
#   and duplicates of some of the punctuation, symbols, and digits in
#   the ASCII block. The duplicate punctuation, symbol, and digit
#   characters have right-left directionality, while the ASCII versions
#   have left-right directionality. See the next section for more
#   information on this.
#
#   Mac OS Arabic characters 0xEB-0xF2 are non-spacing/combining marks.
#
#   2. Directional characters and roundtrip fidelity
#
#   The Mac OS Arabic character set was developed in 1986-1987. At that
#   time the bidirectional line layout algorithm used in the Mac OS
#   Arabic system was fairly simple; it used only a few direction
#   classes (instead of the 19 now used in the Unicode bidirectional
#   algorithm). In order to permit users to handle some tricky layout
#   problems, certain punctuation and symbol characters were encoded
#   twice, one with a left-right direction attribute and the other with
#   a right-left direction attribute.
#
#   For example, plus sign is encoded at 0x2B with a left-right
#   attribute, and at 0xAB with a right-left attribute. However, there
#   is only one PLUS SIGN character in Unicode. This leads to some
#   interesting problems when mapping between Mac OS Arabic and Unicode;
#   see below.
#
#   A related problem is that even when a particular character is
#   encoded only once in Mac OS Arabic, it may have a different
#   direction attribute than the corresponding Unicode character.
#
#   For example, the Mac OS Arabic character at 0x93 is HORIZONTAL
#   ELLIPSIS with strong right-left direction. However, the Unicode
#   character HORIZONTAL ELLIPSIS has direction class neutral.
#
#   3. Behavior of ASCII-range numbers in WorldScript
#
#   Mac OS Arabic also has two sets of digit codes.
#
#   The digits at 0x30-0x39 may be displayed using either European
#   digit forms or Arabic digit forms, depending on context. If there
#   is a 'strong European' character such as a Latin letter on either
#   side of a sequence consisting of digits 0x30-0x39 and possibly comma
#   0x2C or period 0x2E, then the characters will be displayed using
#   European forms (This will happen even if there are neutral characters
#   between the digits and the strong European character). Otherwise, the
#   digits will be displayed using Arabic forms, the comma will be
#   displayed as Arabic thousands separator, and the period as Arabic
#   decimal separator. In any case, 0x2C, 0x2E, and 0x30-0x39 are always
#   left-right.
#
#   The digits at 0xB0-0xB9 are always displayed using Arabic digit
#   shapes, and moreover, these digits always have strong right-left
#   directionality. These are mainly intended for special layout
#   purposes such as part numbers, etc.
#
#   4. Font variants
#
#   The table in this file gives the Unicode mappings for the standard
#   Mac OS Arabic encoding. This encoding is supported by the Cairo font
#   (the system font for Arabic), and is the encoding supported by the
#   text processing utilities. However, the other Arabic fonts actually
#   implement slightly different encodings; this mainly affects the code
#   points 0xAA and 0xC0. For these code points the standard Mac OS
#   Arabic encoding has the following mappings:
#     0xAA -> <RL>+0x002A ASTERISK, right-left
#     0xC0 -> <RL>+0x274A EIGHT TEARDROP-SPOKED PROPELLER ASTERISK,
#                         right-left
#   This mapping of 0xAA is consistent with the normal convention for
#   Mac OS Arabic and Hebrew that the right-left duplicates have codes
#   that are equal to the ASCII code of the left-right character plus
#   0x80. However, in all of the other fonts, 0xAA is MULTIPLY SIGN, and
#   right-left ASTERISK may be at a different code point. The other
#   variants are described below.
#
#   The TrueType variant is used for most of the Arabic TrueType fonts:
#   Baghdad, Geeza, Kufi, Nadeem.  It differs from the standard variant
#   in the following way:
#     0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
#     0xC0 -> <RL>+0x002A ASTERISK, right-left
#
#   The Thuluth variant is used for the Arabic Postscript-only fonts:
#   Thuluth and Thuluth bold. It differs from the standard variant in
#   the following way:
#     0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
#     0xC0 -> 0x066D ARABIC FIVE POINTED STAR
#
#   The AlBayan variant is used for the Arabic TrueType font Al Bayan.
#   It differs from the standard variant in the following way:
#     0x81 -> no mapping (glyph just has authorship information, etc.)
#     0xA3 -> 0xFDFA ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
#     0xA4 -> 0xFDF2 ARABIC LIGATURE ALLAH ISOLATED FORM
#     0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
#     0xDC -> <RL>+0x25CF BLACK CIRCLE, right-left
#     0xFC -> <RL>+0x25A0 BLACK SQUARE, right-left
#
# Unicode mapping issues and notes:
# ---------------------------------
#
#   1. Matching the direction of Mac OS Arabic characters
#
#   When Mac OS Arabic encodes a character twice but with different
#   direction attributes for the two code points - as in the case of
#   plus sign mentioned above - we need a way to map both Mac OS Arabic
#   code points to Unicode and back again without loss of information.
#   With the plus sign, for example, mapping one of the Mac OS Arabic
#   characters to a code in the Unicode corporate use zone is
#   undesirable, since both of the plus sign characters are likely to
#   be used in text that is interchanged.
#
#   The problem is solved with the use of direction override characters
#   and direction-dependent mappings. When mapping from Mac OS Arabic
#   to Unicode, we use direction overrides as necessary to force the
#   direction of the resulting Unicode characters.
#
#   The required direction is indicated by a direction tag in the
#   mappings. A tag of <LR> means the corresponding Unicode character
#   must have a strong left-right context, and a tag of <RL> indicates
#   a right-left context.
#
#   For example, the mapping of 0x2B is given as <LR>+0x002B; the
#   mapping of 0xAB is given as <RL>+0x002B. If we map an isolated
#   instance of 0x2B to Unicode, it should be mapped as follows (LRO
#   indicates LEFT-RIGHT OVERRIDE, PDF indicates POP DIRECTION
#   FORMATTING):
#
#     0x2B ->  0x202D (LRO) + 0x002B (PLUS SIGN) + 0x202C (PDF)
#
#   When mapping several characters in a row that require direction
#   forcing, the overrides need only be used at the beginning and end.
#   For example:
#
#     0x24 0x20 0x28 0x29 -> 0x202D 0x0024 0x0020 0x0028 0x0029 0x202C
#
#   If neutral characters that require direction forcing are already
#   between strong-direction characters with matching directionality,
#   then direction overrides need not be used. Direction overrides are
#   always needed to map the right-left digits at 0xB0-0xB9.
#
#   When mapping from Unicode to Mac OS Arabic, the Unicode
#   bidirectional algorithm should be used to determine resolved
#   direction of the Unicode characters. The mapping from Unicode to
#   Mac OS Arabic can then be disambiguated by the use of the resolved
#   direction:
#
#     Unicode 0x002B -> Mac OS Arabic 0x2B (if L) or 0xAB (if R)
#
#   However, this also means the direction override characters should
#   be discarded when mapping from Unicode to Mac OS Arabic (after
#   they have been used to determine resolved direction), since the
#   direction override information is carried by the code point itself.
#
#   Even when direction overrides are not needed for roundtrip
#   fidelity, they are sometimes used when mapping Mac OS Arabic
#   characters to Unicode in order to achieve similar text layout with
#   the resulting Unicode text. For example, the single Mac OS Arabic
#   ellipsis character has direction class right-left,and there is no
#   left-right version. However, the Unicode HORIZONTAL ELLIPSIS
#   character has direction class neutral (which means it may end up
#   with a resolved direction of left-right if surrounded by left-right
#   characters). When mapping the Mac OS Arabic ellipsis to Unicode, it
#   is surrounded with a direction override to help preserve proper
#   text layout. The resolved direction is not needed or used when
#   mapping the Unicode HORIZONTAL ELLIPSIS back to Mac OS Arabic.
#
#   2. Mapping the Mac OS Arabic digits
#
#   The main table below contains mappings that should be used when
#   strict round-trip fidelity is required. However, for numeric
#   values, the mappings in that table will produce Unicode characters
#   that may appear different than the Mac OS Arabic text displayed on
#   a Mac OS system using WorldScript. This is because WorldScript
#   uses context-dependent display for the 0x30-0x39 digits.
#
#   If roundtrip fidelity is not required, then the following
#   alternate mappings should be used when a sequence of 0x30-0x39
#   digits - possibly including 0x2C and 0x2E - occurs in an Arabic
#   context (that is, when the first 'strong' character on either side
#   of the digit sequence is Arabic, or there is no strong character):
#
#     0x2C      0x066C  # ARABIC THOUSANDS SEPARATOR
#     0x2E      0x066B  # ARABIC DECIMAL SEPARATOR
#     0x30      0x0660  # ARABIC-INDIC DIGIT ZERO
#     0x31      0x0661  # ARABIC-INDIC DIGIT ONE
#     0x32      0x0662  # ARABIC-INDIC DIGIT TWO
#     0x33      0x0663  # ARABIC-INDIC DIGIT THREE
#     0x34      0x0664  # ARABIC-INDIC DIGIT FOUR
#     0x35      0x0665  # ARABIC-INDIC DIGIT FIVE
#     0x36      0x0666  # ARABIC-INDIC DIGIT SIX
#     0x37      0x0667  # ARABIC-INDIC DIGIT SEVEN
#     0x38      0x0668  # ARABIC-INDIC DIGIT EIGHT
#     0x39      0x0669  # ARABIC-INDIC DIGIT NINE
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version n03 to version n07:
#
#   - Change mapping for 0xC0 from U+066D to U+274A.
#
#   - Add direction overrides (required directionality) to mappings
#     for 0x25, 0x2C, 0x3B, 0x3F.
#
##################

0x20    <LR>+0x0020     # SPACE, left-right
0x21    <LR>+0x0021     # EXCLAMATION MARK, left-right
0x22    <LR>+0x0022     # QUOTATION MARK, left-right
0x23    <LR>+0x0023     # NUMBER SIGN, left-right
0x24    <LR>+0x0024     # DOLLAR SIGN, left-right
0x25    <LR>+0x0025     # PERCENT SIGN, left-right
0x26    <LR>+0x0026     # AMPERSAND, left-right
0x27    <LR>+0x0027     # APOSTROPHE, left-right
0x28    <LR>+0x0028     # LEFT PARENTHESIS, left-right
0x29    <LR>+0x0029     # RIGHT PARENTHESIS, left-right
0x2A    <LR>+0x002A     # ASTERISK, left-right
0x2B    <LR>+0x002B     # PLUS SIGN, left-right
0x2C    <LR>+0x002C     # COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
0x2D    <LR>+0x002D     # HYPHEN-MINUS, left-right
0x2E    <LR>+0x002E     # FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
0x2F    <LR>+0x002F     # SOLIDUS, left-right
0x30    0x0030  # DIGIT ZERO;  in Arabic-script context, displayed as 0x0660 ARABIC-INDIC DIGIT ZERO
0x31    0x0031  # DIGIT ONE;   in Arabic-script context, displayed as 0x0661 ARABIC-INDIC DIGIT ONE
0x32    0x0032  # DIGIT TWO;   in Arabic-script context, displayed as 0x0662 ARABIC-INDIC DIGIT TWO
0x33    0x0033  # DIGIT THREE; in Arabic-script context, displayed as 0x0663 ARABIC-INDIC DIGIT THREE
0x34    0x0034  # DIGIT FOUR;  in Arabic-script context, displayed as 0x0664 ARABIC-INDIC DIGIT FOUR
0x35    0x0035  # DIGIT FIVE;  in Arabic-script context, displayed as 0x0665 ARABIC-INDIC DIGIT FIVE
0x36    0x0036  # DIGIT SIX;   in Arabic-script context, displayed as 0x0666 ARABIC-INDIC DIGIT SIX
0x37    0x0037  # DIGIT SEVEN; in Arabic-script context, displayed as 0x0667 ARABIC-INDIC DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT; in Arabic-script context, displayed as 0x0668 ARABIC-INDIC DIGIT EIGHT
0x39    0x0039  # DIGIT NINE;  in Arabic-script context, displayed as 0x0669 ARABIC-INDIC DIGIT NINE
0x3A    <LR>+0x003A     # COLON, left-right
0x3B    <LR>+0x003B     # SEMICOLON, left-right
0x3C    <LR>+0x003C     # LESS-THAN SIGN, left-right
0x3D    <LR>+0x003D     # EQUALS SIGN, left-right
0x3E    <LR>+0x003E     # GREATER-THAN SIGN, left-right
0x3F    <LR>+0x003F     # QUESTION MARK, left-right
0x40    0x0040  # COMMERCIAL AT
0x41    0x0041  # LATIN CAPITAL LETTER A
0x42    0x0042  # LATIN CAPITAL LETTER B
0x43    0x0043  # LATIN CAPITAL LETTER C
0x44    0x0044  # LATIN CAPITAL LETTER D
0x45    0x0045  # LATIN CAPITAL LETTER E
0x46    0x0046  # LATIN CAPITAL LETTER F
0x47    0x0047  # LATIN CAPITAL LETTER G
0x48    0x0048  # LATIN CAPITAL LETTER H
0x49    0x0049  # LATIN CAPITAL LETTER I
0x4A    0x004A  # LATIN CAPITAL LETTER J
0x4B    0x004B  # LATIN CAPITAL LETTER K
0x4C    0x004C  # LATIN CAPITAL LETTER L
0x4D    0x004D  # LATIN CAPITAL LETTER M
0x4E    0x004E  # LATIN CAPITAL LETTER N
0x4F    0x004F  # LATIN CAPITAL LETTER O
0x50    0x0050  # LATIN CAPITAL LETTER P
0x51    0x0051  # LATIN CAPITAL LETTER Q
0x52    0x0052  # LATIN CAPITAL LETTER R
0x53    0x0053  # LATIN CAPITAL LETTER S
0x54    0x0054  # LATIN CAPITAL LETTER T
0x55    0x0055  # LATIN CAPITAL LETTER U
0x56    0x0056  # LATIN CAPITAL LETTER V
0x57    0x0057  # LATIN CAPITAL LETTER W
0x58    0x0058  # LATIN CAPITAL LETTER X
0x59    0x0059  # LATIN CAPITAL LETTER Y
0x5A    0x005A  # LATIN CAPITAL LETTER Z
0x5B    <LR>+0x005B     # LEFT SQUARE BRACKET, left-right
0x5C    <LR>+0x005C     # REVERSE SOLIDUS, left-right
0x5D    <LR>+0x005D     # RIGHT SQUARE BRACKET, left-right
0x5E    <LR>+0x005E     # CIRCUMFLEX ACCENT, left-right
0x5F    <LR>+0x005F     # LOW LINE, left-right
0x60    0x0060  # GRAVE ACCENT
0x61    0x0061  # LATIN SMALL LETTER A
0x62    0x0062  # LATIN SMALL LETTER B
0x63    0x0063  # LATIN SMALL LETTER C
0x64    0x0064  # LATIN SMALL LETTER D
0x65    0x0065  # LATIN SMALL LETTER E
0x66    0x0066  # LATIN SMALL LETTER F
0x67    0x0067  # LATIN SMALL LETTER G
0x68    0x0068  # LATIN SMALL LETTER H
0x69    0x0069  # LATIN SMALL LETTER I
0x6A    0x006A  # LATIN SMALL LETTER J
0x6B    0x006B  # LATIN SMALL LETTER K
0x6C    0x006C  # LATIN SMALL LETTER L
0x6D    0x006D  # LATIN SMALL LETTER M
0x6E    0x006E  # LATIN SMALL LETTER N
0x6F    0x006F  # LATIN SMALL LETTER O
0x70    0x0070  # LATIN SMALL LETTER P
0x71    0x0071  # LATIN SMALL LETTER Q
0x72    0x0072  # LATIN SMALL LETTER R
0x73    0x0073  # LATIN SMALL LETTER S
0x74    0x0074  # LATIN SMALL LETTER T
0x75    0x0075  # LATIN SMALL LETTER U
0x76    0x0076  # LATIN SMALL LETTER V
0x77    0x0077  # LATIN SMALL LETTER W
0x78    0x0078  # LATIN SMALL LETTER X
0x79    0x0079  # LATIN SMALL LETTER Y
0x7A    0x007A  # LATIN SMALL LETTER Z
0x7B    <LR>+0x007B     # LEFT CURLY BRACKET, left-right
0x7C    <LR>+0x007C     # VERTICAL LINE, left-right
0x7D    <LR>+0x007D     # RIGHT CURLY BRACKET, left-right
0x7E    0x007E  # TILDE
#
0x80    0x00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81    <RL>+0x00A0     # NO-BREAK SPACE, right-left
0x82    0x00C7  # LATIN CAPITAL LETTER C WITH CEDILLA
0x83    0x00C9  # LATIN CAPITAL LETTER E WITH ACUTE
0x84    0x00D1  # LATIN CAPITAL LETTER N WITH TILDE
0x85    0x00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86    0x00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87    0x00E1  # LATIN SMALL LETTER A WITH ACUTE
0x88    0x00E0  # LATIN SMALL LETTER A WITH GRAVE
0x89    0x00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A    0x00E4  # LATIN SMALL LETTER A WITH DIAERESIS
0x8B    0x06BA  # ARABIC LETTER NOON GHUNNA
0x8C    <RL>+0x00AB     # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
0x8D    0x00E7  # LATIN SMALL LETTER C WITH CEDILLA
0x8E    0x00E9  # LATIN SMALL LETTER E WITH ACUTE
0x8F    0x00E8  # LATIN SMALL LETTER E WITH GRAVE
0x90    0x00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91    0x00EB  # LATIN SMALL LETTER E WITH DIAERESIS
0x92    0x00ED  # LATIN SMALL LETTER I WITH ACUTE
0x93    <RL>+0x2026     # HORIZONTAL ELLIPSIS, right-left
0x94    0x00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95    0x00EF  # LATIN SMALL LETTER I WITH DIAERESIS
0x96    0x00F1  # LATIN SMALL LETTER N WITH TILDE
0x97    0x00F3  # LATIN SMALL LETTER O WITH ACUTE
0x98    <RL>+0x00BB     # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
0x99    0x00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A    0x00F6  # LATIN SMALL LETTER O WITH DIAERESIS
0x9B    <RL>+0x00F7     # DIVISION SIGN, right-left
0x9C    0x00FA  # LATIN SMALL LETTER U WITH ACUTE
0x9D    0x00F9  # LATIN SMALL LETTER U WITH GRAVE
0x9E    0x00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F    0x00FC  # LATIN SMALL LETTER U WITH DIAERESIS
0xA0    <RL>+0x0020     # SPACE, right-left
0xA1    <RL>+0x0021     # EXCLAMATION MARK, right-left
0xA2    <RL>+0x0022     # QUOTATION MARK, right-left
0xA3    <RL>+0x0023     # NUMBER SIGN, right-left
0xA4    <RL>+0x0024     # DOLLAR SIGN, right-left
0xA5    0x066A  # ARABIC PERCENT SIGN
0xA6    <RL>+0x0026     # AMPERSAND, right-left
0xA7    <RL>+0x0027     # APOSTROPHE, right-left
0xA8    <RL>+0x0028     # LEFT PARENTHESIS, right-left
0xA9    <RL>+0x0029     # RIGHT PARENTHESIS, right-left
0xAA    <RL>+0x002A     # ASTERISK, right-left
0xAB    <RL>+0x002B     # PLUS SIGN, right-left
0xAC    0x060C  # ARABIC COMMA
0xAD    <RL>+0x002D     # HYPHEN-MINUS, right-left
0xAE    <RL>+0x002E     # FULL STOP, right-left
0xAF    <RL>+0x002F     # SOLIDUS, right-left
0xB0    <RL>+0x0660     # ARABIC-INDIC DIGIT ZERO, right-left (need override)
0xB1    <RL>+0x0661     # ARABIC-INDIC DIGIT ONE, right-left (need override)
0xB2    <RL>+0x0662     # ARABIC-INDIC DIGIT TWO, right-left (need override)
0xB3    <RL>+0x0663     # ARABIC-INDIC DIGIT THREE, right-left (need override)
0xB4    <RL>+0x0664     # ARABIC-INDIC DIGIT FOUR, right-left (need override)
0xB5    <RL>+0x0665     # ARABIC-INDIC DIGIT FIVE, right-left (need override)
0xB6    <RL>+0x0666     # ARABIC-INDIC DIGIT SIX, right-left (need override)
0xB7    <RL>+0x0667     # ARABIC-INDIC DIGIT SEVEN, right-left (need override)
0xB8    <RL>+0x0668     # ARABIC-INDIC DIGIT EIGHT, right-left (need override)
0xB9    <RL>+0x0669     # ARABIC-INDIC DIGIT NINE, right-left (need override)
0xBA    <RL>+0x003A     # COLON, right-left
0xBB    0x061B  # ARABIC SEMICOLON
0xBC    <RL>+0x003C     # LESS-THAN SIGN, right-left
0xBD    <RL>+0x003D     # EQUALS SIGN, right-left
0xBE    <RL>+0x003E     # GREATER-THAN SIGN, right-left
0xBF    0x061F  # ARABIC QUESTION MARK
0xC0    <RL>+0x274A     # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
0xC1    0x0621  # ARABIC LETTER HAMZA
0xC2    0x0622  # ARABIC LETTER ALEF WITH MADDA ABOVE
0xC3    0x0623  # ARABIC LETTER ALEF WITH HAMZA ABOVE
0xC4    0x0624  # ARABIC LETTER WAW WITH HAMZA ABOVE
0xC5    0x0625  # ARABIC LETTER ALEF WITH HAMZA BELOW
0xC6    0x0626  # ARABIC LETTER YEH WITH HAMZA ABOVE
0xC7    0x0627  # ARABIC LETTER ALEF
0xC8    0x0628  # ARABIC LETTER BEH
0xC9    0x0629  # ARABIC LETTER TEH MARBUTA
0xCA    0x062A  # ARABIC LETTER TEH
0xCB    0x062B  # ARABIC LETTER THEH
0xCC    0x062C  # ARABIC LETTER JEEM
0xCD    0x062D  # ARABIC LETTER HAH
0xCE    0x062E  # ARABIC LETTER KHAH
0xCF    0x062F  # ARABIC LETTER DAL
0xD0    0x0630  # ARABIC LETTER THAL
0xD1    0x0631  # ARABIC LETTER REH
0xD2    0x0632  # ARABIC LETTER ZAIN
0xD3    0x0633  # ARABIC LETTER SEEN
0xD4    0x0634  # ARABIC LETTER SHEEN
0xD5    0x0635  # ARABIC LETTER SAD
0xD6    0x0636  # ARABIC LETTER DAD
0xD7    0x0637  # ARABIC LETTER TAH
0xD8    0x0638  # ARABIC LETTER ZAH
0xD9    0x0639  # ARABIC LETTER AIN
0xDA    0x063A  # ARABIC LETTER GHAIN
0xDB    <RL>+0x005B     # LEFT SQUARE BRACKET, right-left
0xDC    <RL>+0x005C     # REVERSE SOLIDUS, right-left
0xDD    <RL>+0x005D     # RIGHT SQUARE BRACKET, right-left
0xDE    <RL>+0x005E     # CIRCUMFLEX ACCENT, right-left
0xDF    <RL>+0x005F     # LOW LINE, right-left
0xE0    0x0640  # ARABIC TATWEEL
0xE1    0x0641  # ARABIC LETTER FEH
0xE2    0x0642  # ARABIC LETTER QAF
0xE3    0x0643  # ARABIC LETTER KAF
0xE4    0x0644  # ARABIC LETTER LAM
0xE5    0x0645  # ARABIC LETTER MEEM
0xE6    0x0646  # ARABIC LETTER NOON
0xE7    0x0647  # ARABIC LETTER HEH
0xE8    0x0648  # ARABIC LETTER WAW
0xE9    0x0649  # ARABIC LETTER ALEF MAKSURA
0xEA    0x064A  # ARABIC LETTER YEH
0xEB    0x064B  # ARABIC FATHATAN
0xEC    0x064C  # ARABIC DAMMATAN
0xED    0x064D  # ARABIC KASRATAN
0xEE    0x064E  # ARABIC FATHA
0xEF    0x064F  # ARABIC DAMMA
0xF0    0x0650  # ARABIC KASRA
0xF1    0x0651  # ARABIC SHADDA
0xF2    0x0652  # ARABIC SUKUN
0xF3    0x067E  # ARABIC LETTER PEH
0xF4    0x0679  # ARABIC LETTER TTEH
0xF5    0x0686  # ARABIC LETTER TCHEH
0xF6    0x06D5  # ARABIC LETTER AE
0xF7    0x06A4  # ARABIC LETTER VEH
0xF8    0x06AF  # ARABIC LETTER GAF
0xF9    0x0688  # ARABIC LETTER DDAL
0xFA    0x0691  # ARABIC LETTER RREH
0xFB    <RL>+0x007B     # LEFT CURLY BRACKET, right-left
0xFC    <RL>+0x007C     # VERTICAL LINE, right-left
0xFD    <RL>+0x007D     # RIGHT CURLY BRACKET, right-left
0xFE    0x0698  # ARABIC LETTER JEH
0xFF    0x06D2  # ARABIC LETTER YEH BARREE

"
! !

!CharacterEncoder::MAC_Arabic class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-arabic' )
! !

!CharacterEncoder::MAC_CentralEuropean class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/CENTEURO.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/CENTEURO.TXT

#=======================================================================
#   File name:  CENTEURO.TXT
#
#   Contents:   Map (external version) from Mac OS Central European
#               character set to Unicode 2.1 through Unicode 3.2.
#
#   Copyright:  (c) 1995-2002 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#      b3,c1 2002-Dec-19    Update URLs. Matches internal utom<b1>.
#       b02  1999-Sep-22    Update contact e-mail address. Matches
#                           internal utom<b1>, ufrm<b1>, and Text
#                           Encoding Converter version 1.5.
#       n05  1998-Feb-05    Update header comments to new format; no
#                           mapping changes. Matches internal utom<n3>,
#                           ufrm<n13>, and Text Encoding Converter
#                           version 1.3.
#       n03  1995-Apr-15    First version (after fixing some typos).
#                           Matches internal ufrm<n5>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, 'Macintosh' can be used to refer to
#   Macintosh computers and 'Unicode' can be used to refer to the
#   Unicode standard.
#
#   Apple makes no warranty or representation, either express or
#   implied, with respect to these tables, their quality, accuracy, or
#   fitness for a particular purpose. In no event will Apple be liable
#   for direct, indirect, special, incidental, or consequential damages 
#   resulting from any defect or inaccuracy in this document or the
#   accompanying tables.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file 'README.TXT'.
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Central European code (in hex as 0xNN)
#     Column #2 is the corresponding Unicode (in hex as 0xNNNN)
#     Column #3 is a comment containing the Unicode name
#
#   The entries are in Mac OS Central European code order.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Central European character set uses the standard control
#   characters at 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Central European:
# ---------------------------------
#
#   This character set is intended to cover the following languages:
#
#   Polish, Czech, Slovak, Hungarian, Estonian, Latvian, Lithuanian
#
#   These are written in Latin script, but using a different set of
#   of accented characters than Mac OS Roman. The Mac OS Central
#   European character set also includes a number of characters
#   needed for the Mac OS user interface and localization (e.g.
#   ellipsis, bullet, copyright sign), several typographic
#   punctuation symbols, math symbols, etc. However, it has a
#   smaller set of punctuation and symbols than Mac OS Roman. All of
#   the characters in Mac OS Central European that are also in the
#   Mac OS Roman character set are at the same code point in both
#   character sets; this improves application compatibility.
#
#   Note: This does not have the same letter repertoire as ISO
#   8859-2 (Latin-2); each has some accented letters that the other
#   does not have.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# Details of mapping changes in each version:
# -------------------------------------------
#
##################

0x20    0x0020  # SPACE
0x21    0x0021  # EXCLAMATION MARK
0x22    0x0022  # QUOTATION MARK
0x23    0x0023  # NUMBER SIGN
0x24    0x0024  # DOLLAR SIGN
0x25    0x0025  # PERCENT SIGN
0x26    0x0026  # AMPERSAND
0x27    0x0027  # APOSTROPHE
0x28    0x0028  # LEFT PARENTHESIS
0x29    0x0029  # RIGHT PARENTHESIS
0x2A    0x002A  # ASTERISK
0x2B    0x002B  # PLUS SIGN
0x2C    0x002C  # COMMA
0x2D    0x002D  # HYPHEN-MINUS
0x2E    0x002E  # FULL STOP
0x2F    0x002F  # SOLIDUS
0x30    0x0030  # DIGIT ZERO
0x31    0x0031  # DIGIT ONE
0x32    0x0032  # DIGIT TWO
0x33    0x0033  # DIGIT THREE
0x34    0x0034  # DIGIT FOUR
0x35    0x0035  # DIGIT FIVE
0x36    0x0036  # DIGIT SIX
0x37    0x0037  # DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT
0x39    0x0039  # DIGIT NINE
0x3A    0x003A  # COLON
0x3B    0x003B  # SEMICOLON
0x3C    0x003C  # LESS-THAN SIGN
0x3D    0x003D  # EQUALS SIGN
0x3E    0x003E  # GREATER-THAN SIGN
0x3F    0x003F  # QUESTION MARK
0x40    0x0040  # COMMERCIAL AT
0x41    0x0041  # LATIN CAPITAL LETTER A
0x42    0x0042  # LATIN CAPITAL LETTER B
0x43    0x0043  # LATIN CAPITAL LETTER C
0x44    0x0044  # LATIN CAPITAL LETTER D
0x45    0x0045  # LATIN CAPITAL LETTER E
0x46    0x0046  # LATIN CAPITAL LETTER F
0x47    0x0047  # LATIN CAPITAL LETTER G
0x48    0x0048  # LATIN CAPITAL LETTER H
0x49    0x0049  # LATIN CAPITAL LETTER I
0x4A    0x004A  # LATIN CAPITAL LETTER J
0x4B    0x004B  # LATIN CAPITAL LETTER K
0x4C    0x004C  # LATIN CAPITAL LETTER L
0x4D    0x004D  # LATIN CAPITAL LETTER M
0x4E    0x004E  # LATIN CAPITAL LETTER N
0x4F    0x004F  # LATIN CAPITAL LETTER O
0x50    0x0050  # LATIN CAPITAL LETTER P
0x51    0x0051  # LATIN CAPITAL LETTER Q
0x52    0x0052  # LATIN CAPITAL LETTER R
0x53    0x0053  # LATIN CAPITAL LETTER S
0x54    0x0054  # LATIN CAPITAL LETTER T
0x55    0x0055  # LATIN CAPITAL LETTER U
0x56    0x0056  # LATIN CAPITAL LETTER V
0x57    0x0057  # LATIN CAPITAL LETTER W
0x58    0x0058  # LATIN CAPITAL LETTER X
0x59    0x0059  # LATIN CAPITAL LETTER Y
0x5A    0x005A  # LATIN CAPITAL LETTER Z
0x5B    0x005B  # LEFT SQUARE BRACKET
0x5C    0x005C  # REVERSE SOLIDUS
0x5D    0x005D  # RIGHT SQUARE BRACKET
0x5E    0x005E  # CIRCUMFLEX ACCENT
0x5F    0x005F  # LOW LINE
0x60    0x0060  # GRAVE ACCENT
0x61    0x0061  # LATIN SMALL LETTER A
0x62    0x0062  # LATIN SMALL LETTER B
0x63    0x0063  # LATIN SMALL LETTER C
0x64    0x0064  # LATIN SMALL LETTER D
0x65    0x0065  # LATIN SMALL LETTER E
0x66    0x0066  # LATIN SMALL LETTER F
0x67    0x0067  # LATIN SMALL LETTER G
0x68    0x0068  # LATIN SMALL LETTER H
0x69    0x0069  # LATIN SMALL LETTER I
0x6A    0x006A  # LATIN SMALL LETTER J
0x6B    0x006B  # LATIN SMALL LETTER K
0x6C    0x006C  # LATIN SMALL LETTER L
0x6D    0x006D  # LATIN SMALL LETTER M
0x6E    0x006E  # LATIN SMALL LETTER N
0x6F    0x006F  # LATIN SMALL LETTER O
0x70    0x0070  # LATIN SMALL LETTER P
0x71    0x0071  # LATIN SMALL LETTER Q
0x72    0x0072  # LATIN SMALL LETTER R
0x73    0x0073  # LATIN SMALL LETTER S
0x74    0x0074  # LATIN SMALL LETTER T
0x75    0x0075  # LATIN SMALL LETTER U
0x76    0x0076  # LATIN SMALL LETTER V
0x77    0x0077  # LATIN SMALL LETTER W
0x78    0x0078  # LATIN SMALL LETTER X
0x79    0x0079  # LATIN SMALL LETTER Y
0x7A    0x007A  # LATIN SMALL LETTER Z
0x7B    0x007B  # LEFT CURLY BRACKET
0x7C    0x007C  # VERTICAL LINE
0x7D    0x007D  # RIGHT CURLY BRACKET
0x7E    0x007E  # TILDE
#
0x80    0x00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81    0x0100  # LATIN CAPITAL LETTER A WITH MACRON
0x82    0x0101  # LATIN SMALL LETTER A WITH MACRON
0x83    0x00C9  # LATIN CAPITAL LETTER E WITH ACUTE
0x84    0x0104  # LATIN CAPITAL LETTER A WITH OGONEK
0x85    0x00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86    0x00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87    0x00E1  # LATIN SMALL LETTER A WITH ACUTE
0x88    0x0105  # LATIN SMALL LETTER A WITH OGONEK
0x89    0x010C  # LATIN CAPITAL LETTER C WITH CARON
0x8A    0x00E4  # LATIN SMALL LETTER A WITH DIAERESIS
0x8B    0x010D  # LATIN SMALL LETTER C WITH CARON
0x8C    0x0106  # LATIN CAPITAL LETTER C WITH ACUTE
0x8D    0x0107  # LATIN SMALL LETTER C WITH ACUTE
0x8E    0x00E9  # LATIN SMALL LETTER E WITH ACUTE
0x8F    0x0179  # LATIN CAPITAL LETTER Z WITH ACUTE
0x90    0x017A  # LATIN SMALL LETTER Z WITH ACUTE
0x91    0x010E  # LATIN CAPITAL LETTER D WITH CARON
0x92    0x00ED  # LATIN SMALL LETTER I WITH ACUTE
0x93    0x010F  # LATIN SMALL LETTER D WITH CARON
0x94    0x0112  # LATIN CAPITAL LETTER E WITH MACRON
0x95    0x0113  # LATIN SMALL LETTER E WITH MACRON
0x96    0x0116  # LATIN CAPITAL LETTER E WITH DOT ABOVE
0x97    0x00F3  # LATIN SMALL LETTER O WITH ACUTE
0x98    0x0117  # LATIN SMALL LETTER E WITH DOT ABOVE
0x99    0x00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A    0x00F6  # LATIN SMALL LETTER O WITH DIAERESIS
0x9B    0x00F5  # LATIN SMALL LETTER O WITH TILDE
0x9C    0x00FA  # LATIN SMALL LETTER U WITH ACUTE
0x9D    0x011A  # LATIN CAPITAL LETTER E WITH CARON
0x9E    0x011B  # LATIN SMALL LETTER E WITH CARON
0x9F    0x00FC  # LATIN SMALL LETTER U WITH DIAERESIS
0xA0    0x2020  # DAGGER
0xA1    0x00B0  # DEGREE SIGN
0xA2    0x0118  # LATIN CAPITAL LETTER E WITH OGONEK
0xA3    0x00A3  # POUND SIGN
0xA4    0x00A7  # SECTION SIGN
0xA5    0x2022  # BULLET
0xA6    0x00B6  # PILCROW SIGN
0xA7    0x00DF  # LATIN SMALL LETTER SHARP S
0xA8    0x00AE  # REGISTERED SIGN
0xA9    0x00A9  # COPYRIGHT SIGN
0xAA    0x2122  # TRADE MARK SIGN
0xAB    0x0119  # LATIN SMALL LETTER E WITH OGONEK
0xAC    0x00A8  # DIAERESIS
0xAD    0x2260  # NOT EQUAL TO
0xAE    0x0123  # LATIN SMALL LETTER G WITH CEDILLA
0xAF    0x012E  # LATIN CAPITAL LETTER I WITH OGONEK
0xB0    0x012F  # LATIN SMALL LETTER I WITH OGONEK
0xB1    0x012A  # LATIN CAPITAL LETTER I WITH MACRON
0xB2    0x2264  # LESS-THAN OR EQUAL TO
0xB3    0x2265  # GREATER-THAN OR EQUAL TO
0xB4    0x012B  # LATIN SMALL LETTER I WITH MACRON
0xB5    0x0136  # LATIN CAPITAL LETTER K WITH CEDILLA
0xB6    0x2202  # PARTIAL DIFFERENTIAL
0xB7    0x2211  # N-ARY SUMMATION
0xB8    0x0142  # LATIN SMALL LETTER L WITH STROKE
0xB9    0x013B  # LATIN CAPITAL LETTER L WITH CEDILLA
0xBA    0x013C  # LATIN SMALL LETTER L WITH CEDILLA
0xBB    0x013D  # LATIN CAPITAL LETTER L WITH CARON
0xBC    0x013E  # LATIN SMALL LETTER L WITH CARON
0xBD    0x0139  # LATIN CAPITAL LETTER L WITH ACUTE
0xBE    0x013A  # LATIN SMALL LETTER L WITH ACUTE
0xBF    0x0145  # LATIN CAPITAL LETTER N WITH CEDILLA
0xC0    0x0146  # LATIN SMALL LETTER N WITH CEDILLA
0xC1    0x0143  # LATIN CAPITAL LETTER N WITH ACUTE
0xC2    0x00AC  # NOT SIGN
0xC3    0x221A  # SQUARE ROOT
0xC4    0x0144  # LATIN SMALL LETTER N WITH ACUTE
0xC5    0x0147  # LATIN CAPITAL LETTER N WITH CARON
0xC6    0x2206  # INCREMENT
0xC7    0x00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8    0x00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC9    0x2026  # HORIZONTAL ELLIPSIS
0xCA    0x00A0  # NO-BREAK SPACE
0xCB    0x0148  # LATIN SMALL LETTER N WITH CARON
0xCC    0x0150  # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
0xCD    0x00D5  # LATIN CAPITAL LETTER O WITH TILDE
0xCE    0x0151  # LATIN SMALL LETTER O WITH DOUBLE ACUTE
0xCF    0x014C  # LATIN CAPITAL LETTER O WITH MACRON
0xD0    0x2013  # EN DASH
0xD1    0x2014  # EM DASH
0xD2    0x201C  # LEFT DOUBLE QUOTATION MARK
0xD3    0x201D  # RIGHT DOUBLE QUOTATION MARK
0xD4    0x2018  # LEFT SINGLE QUOTATION MARK
0xD5    0x2019  # RIGHT SINGLE QUOTATION MARK
0xD6    0x00F7  # DIVISION SIGN
0xD7    0x25CA  # LOZENGE
0xD8    0x014D  # LATIN SMALL LETTER O WITH MACRON
0xD9    0x0154  # LATIN CAPITAL LETTER R WITH ACUTE
0xDA    0x0155  # LATIN SMALL LETTER R WITH ACUTE
0xDB    0x0158  # LATIN CAPITAL LETTER R WITH CARON
0xDC    0x2039  # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
0xDD    0x203A  # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
0xDE    0x0159  # LATIN SMALL LETTER R WITH CARON
0xDF    0x0156  # LATIN CAPITAL LETTER R WITH CEDILLA
0xE0    0x0157  # LATIN SMALL LETTER R WITH CEDILLA
0xE1    0x0160  # LATIN CAPITAL LETTER S WITH CARON
0xE2    0x201A  # SINGLE LOW-9 QUOTATION MARK
0xE3    0x201E  # DOUBLE LOW-9 QUOTATION MARK
0xE4    0x0161  # LATIN SMALL LETTER S WITH CARON
0xE5    0x015A  # LATIN CAPITAL LETTER S WITH ACUTE
0xE6    0x015B  # LATIN SMALL LETTER S WITH ACUTE
0xE7    0x00C1  # LATIN CAPITAL LETTER A WITH ACUTE
0xE8    0x0164  # LATIN CAPITAL LETTER T WITH CARON
0xE9    0x0165  # LATIN SMALL LETTER T WITH CARON
0xEA    0x00CD  # LATIN CAPITAL LETTER I WITH ACUTE
0xEB    0x017D  # LATIN CAPITAL LETTER Z WITH CARON
0xEC    0x017E  # LATIN SMALL LETTER Z WITH CARON
0xED    0x016A  # LATIN CAPITAL LETTER U WITH MACRON
0xEE    0x00D3  # LATIN CAPITAL LETTER O WITH ACUTE
0xEF    0x00D4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xF0    0x016B  # LATIN SMALL LETTER U WITH MACRON
0xF1    0x016E  # LATIN CAPITAL LETTER U WITH RING ABOVE
0xF2    0x00DA  # LATIN CAPITAL LETTER U WITH ACUTE
0xF3    0x016F  # LATIN SMALL LETTER U WITH RING ABOVE
0xF4    0x0170  # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
0xF5    0x0171  # LATIN SMALL LETTER U WITH DOUBLE ACUTE
0xF6    0x0172  # LATIN CAPITAL LETTER U WITH OGONEK
0xF7    0x0173  # LATIN SMALL LETTER U WITH OGONEK
0xF8    0x00DD  # LATIN CAPITAL LETTER Y WITH ACUTE
0xF9    0x00FD  # LATIN SMALL LETTER Y WITH ACUTE
0xFA    0x0137  # LATIN SMALL LETTER K WITH CEDILLA
0xFB    0x017B  # LATIN CAPITAL LETTER Z WITH DOT ABOVE
0xFC    0x0141  # LATIN CAPITAL LETTER L WITH STROKE
0xFD    0x017C  # LATIN SMALL LETTER Z WITH DOT ABOVE
0xFE    0x0122  # LATIN CAPITAL LETTER G WITH CEDILLA
0xFF    0x02C7  # CARON

"
! !

!CharacterEncoder::MAC_CentralEuropean class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-centraleuropean' )
! !

!CharacterEncoder::MAC_Croatian class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/CROATIAN.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/CROATIAN.TXT

#=======================================================================
#   File name:  CROATIAN.TXT
#
#   Contents:   Map (external version) from Mac OS Croatian
#               character set to Unicode 2.1 through Unicode 3.2
#
#   Copyright:  (c) 1995-2002 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#      b3,c1 2002-Dec-19    Update URLs, notes. Matches internal
#                           utom<b3>.
#       b02  1999-Sep-22    Encoding changed for Mac OS 8.5; change
#                           mapping of 0xDB from CURRENCY SIGN to EURO
#                           SIGN. Update contact e-mail address. Matches
#                           internal utom<b2>, ufrm<b2>, and Text
#                           Encoding Converter version 1.5.
#       n07  1998-Feb-05    Minor update to header comments
#       n05  1997-Dec-14    Update to match internal utom<5>, ufrm<16>:
#                           Change standard mapping for 0xBD from U+2126
#                           to its canonical decomposition, U+03A9.
#       n03  1995-Apr-15    First version (after fixing some typos).
#                           Matches internal ufrm<6>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, 'Macintosh' can be used to refer to
#   Macintosh computers and 'Unicode' can be used to refer to the
#   Unicode standard.
#
#   Apple makes no warranty or representation, either express or
#   implied, with respect to these tables, their quality, accuracy, or
#   fitness for a particular purpose. In no event will Apple be liable
#   for direct, indirect, special, incidental, or consequential damages 
#   resulting from any defect or inaccuracy in this document or the
#   accompanying tables.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file 'README.TXT'.
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Croatian code (in hex as 0xNN)
#     Column #2 is the corresponding Unicode (in hex as 0xNNNN)
#     Column #3 is a comment containing the Unicode name
#
#   The entries are in Mac OS Croatian code order.
#
#   One of these mappings requires the use of a corporate character.
#   See the file 'CORPCHAR.TXT' and notes below.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Roman character set uses the standard control characters at
#   0x00-0x1F and 0x7F.
#
# Notes on Mac OS Croatian:
# -------------------------
#
#       Mac OS Croatian is used for Croatian and Slovene.
#
#   The Mac OS Croatian encoding shares the script code smRoman
#   (0) with the standard Mac OS Roman encoding. To determine if
#   the Croatian encoding is being used, you must check if the
#   system region code is 68, verCroatia (or 25, verYugoCroatian,
#   only used in older systems).
#
#   This character set is a variant of standard Mac OS Roman
#   encoding, adding five accented letter case pairs to handle
#   Croatian. It has 20 code point differences from standard
#   Mac OS Roman, but only 10 differences in repertoire.
#
#   Before Mac OS 8.5, code point 0xDB was CURRENCY SIGN, and was
#   mapped to U+00A4. In Mac OS 8.5 and later versions, code point
#   0xDB is changed to EURO SIGN and maps to U+20AC; the standard
#   Apple fonts are updated for Mac OS 8.5 to reflect this. There is
#   a 'currency sign' variant of the Mac OS Croatian encoding that
#   still maps 0xDB to U+00A4; this can be used for older fonts.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
#   The following corporate zone Unicode character is used in this
#   mapping:
#
#     0xF8FF  Apple logo
#
#   NOTE: The graphic image associated with the Apple logo character
#   is not authorized for use without permission of Apple, and
#   unauthorized use might constitute trademark infringement.
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version n07 to version b02:
#
#   - Encoding changed for Mac OS 8.5; change mapping of 0xDB from
#   CURRENCY SIGN (U+00A4) to  EURO SIGN (U+20AC).
#
#   Changes from version n03 to version n05:
#
#   - Change mapping of 0xBD from U+2126 to its canonical
#     decomposition, U+03A9.
#
##################

0x20    0x0020  # SPACE
0x21    0x0021  # EXCLAMATION MARK
0x22    0x0022  # QUOTATION MARK
0x23    0x0023  # NUMBER SIGN
0x24    0x0024  # DOLLAR SIGN
0x25    0x0025  # PERCENT SIGN
0x26    0x0026  # AMPERSAND
0x27    0x0027  # APOSTROPHE
0x28    0x0028  # LEFT PARENTHESIS
0x29    0x0029  # RIGHT PARENTHESIS
0x2A    0x002A  # ASTERISK
0x2B    0x002B  # PLUS SIGN
0x2C    0x002C  # COMMA
0x2D    0x002D  # HYPHEN-MINUS
0x2E    0x002E  # FULL STOP
0x2F    0x002F  # SOLIDUS
0x30    0x0030  # DIGIT ZERO
0x31    0x0031  # DIGIT ONE
0x32    0x0032  # DIGIT TWO
0x33    0x0033  # DIGIT THREE
0x34    0x0034  # DIGIT FOUR
0x35    0x0035  # DIGIT FIVE
0x36    0x0036  # DIGIT SIX
0x37    0x0037  # DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT
0x39    0x0039  # DIGIT NINE
0x3A    0x003A  # COLON
0x3B    0x003B  # SEMICOLON
0x3C    0x003C  # LESS-THAN SIGN
0x3D    0x003D  # EQUALS SIGN
0x3E    0x003E  # GREATER-THAN SIGN
0x3F    0x003F  # QUESTION MARK
0x40    0x0040  # COMMERCIAL AT
0x41    0x0041  # LATIN CAPITAL LETTER A
0x42    0x0042  # LATIN CAPITAL LETTER B
0x43    0x0043  # LATIN CAPITAL LETTER C
0x44    0x0044  # LATIN CAPITAL LETTER D
0x45    0x0045  # LATIN CAPITAL LETTER E
0x46    0x0046  # LATIN CAPITAL LETTER F
0x47    0x0047  # LATIN CAPITAL LETTER G
0x48    0x0048  # LATIN CAPITAL LETTER H
0x49    0x0049  # LATIN CAPITAL LETTER I
0x4A    0x004A  # LATIN CAPITAL LETTER J
0x4B    0x004B  # LATIN CAPITAL LETTER K
0x4C    0x004C  # LATIN CAPITAL LETTER L
0x4D    0x004D  # LATIN CAPITAL LETTER M
0x4E    0x004E  # LATIN CAPITAL LETTER N
0x4F    0x004F  # LATIN CAPITAL LETTER O
0x50    0x0050  # LATIN CAPITAL LETTER P
0x51    0x0051  # LATIN CAPITAL LETTER Q
0x52    0x0052  # LATIN CAPITAL LETTER R
0x53    0x0053  # LATIN CAPITAL LETTER S
0x54    0x0054  # LATIN CAPITAL LETTER T
0x55    0x0055  # LATIN CAPITAL LETTER U
0x56    0x0056  # LATIN CAPITAL LETTER V
0x57    0x0057  # LATIN CAPITAL LETTER W
0x58    0x0058  # LATIN CAPITAL LETTER X
0x59    0x0059  # LATIN CAPITAL LETTER Y
0x5A    0x005A  # LATIN CAPITAL LETTER Z
0x5B    0x005B  # LEFT SQUARE BRACKET
0x5C    0x005C  # REVERSE SOLIDUS
0x5D    0x005D  # RIGHT SQUARE BRACKET
0x5E    0x005E  # CIRCUMFLEX ACCENT
0x5F    0x005F  # LOW LINE
0x60    0x0060  # GRAVE ACCENT
0x61    0x0061  # LATIN SMALL LETTER A
0x62    0x0062  # LATIN SMALL LETTER B
0x63    0x0063  # LATIN SMALL LETTER C
0x64    0x0064  # LATIN SMALL LETTER D
0x65    0x0065  # LATIN SMALL LETTER E
0x66    0x0066  # LATIN SMALL LETTER F
0x67    0x0067  # LATIN SMALL LETTER G
0x68    0x0068  # LATIN SMALL LETTER H
0x69    0x0069  # LATIN SMALL LETTER I
0x6A    0x006A  # LATIN SMALL LETTER J
0x6B    0x006B  # LATIN SMALL LETTER K
0x6C    0x006C  # LATIN SMALL LETTER L
0x6D    0x006D  # LATIN SMALL LETTER M
0x6E    0x006E  # LATIN SMALL LETTER N
0x6F    0x006F  # LATIN SMALL LETTER O
0x70    0x0070  # LATIN SMALL LETTER P
0x71    0x0071  # LATIN SMALL LETTER Q
0x72    0x0072  # LATIN SMALL LETTER R
0x73    0x0073  # LATIN SMALL LETTER S
0x74    0x0074  # LATIN SMALL LETTER T
0x75    0x0075  # LATIN SMALL LETTER U
0x76    0x0076  # LATIN SMALL LETTER V
0x77    0x0077  # LATIN SMALL LETTER W
0x78    0x0078  # LATIN SMALL LETTER X
0x79    0x0079  # LATIN SMALL LETTER Y
0x7A    0x007A  # LATIN SMALL LETTER Z
0x7B    0x007B  # LEFT CURLY BRACKET
0x7C    0x007C  # VERTICAL LINE
0x7D    0x007D  # RIGHT CURLY BRACKET
0x7E    0x007E  # TILDE
#
0x80    0x00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81    0x00C5  # LATIN CAPITAL LETTER A WITH RING ABOVE
0x82    0x00C7  # LATIN CAPITAL LETTER C WITH CEDILLA
0x83    0x00C9  # LATIN CAPITAL LETTER E WITH ACUTE
0x84    0x00D1  # LATIN CAPITAL LETTER N WITH TILDE
0x85    0x00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86    0x00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87    0x00E1  # LATIN SMALL LETTER A WITH ACUTE
0x88    0x00E0  # LATIN SMALL LETTER A WITH GRAVE
0x89    0x00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A    0x00E4  # LATIN SMALL LETTER A WITH DIAERESIS
0x8B    0x00E3  # LATIN SMALL LETTER A WITH TILDE
0x8C    0x00E5  # LATIN SMALL LETTER A WITH RING ABOVE
0x8D    0x00E7  # LATIN SMALL LETTER C WITH CEDILLA
0x8E    0x00E9  # LATIN SMALL LETTER E WITH ACUTE
0x8F    0x00E8  # LATIN SMALL LETTER E WITH GRAVE
0x90    0x00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91    0x00EB  # LATIN SMALL LETTER E WITH DIAERESIS
0x92    0x00ED  # LATIN SMALL LETTER I WITH ACUTE
0x93    0x00EC  # LATIN SMALL LETTER I WITH GRAVE
0x94    0x00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95    0x00EF  # LATIN SMALL LETTER I WITH DIAERESIS
0x96    0x00F1  # LATIN SMALL LETTER N WITH TILDE
0x97    0x00F3  # LATIN SMALL LETTER O WITH ACUTE
0x98    0x00F2  # LATIN SMALL LETTER O WITH GRAVE
0x99    0x00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A    0x00F6  # LATIN SMALL LETTER O WITH DIAERESIS
0x9B    0x00F5  # LATIN SMALL LETTER O WITH TILDE
0x9C    0x00FA  # LATIN SMALL LETTER U WITH ACUTE
0x9D    0x00F9  # LATIN SMALL LETTER U WITH GRAVE
0x9E    0x00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F    0x00FC  # LATIN SMALL LETTER U WITH DIAERESIS
0xA0    0x2020  # DAGGER
0xA1    0x00B0  # DEGREE SIGN
0xA2    0x00A2  # CENT SIGN
0xA3    0x00A3  # POUND SIGN
0xA4    0x00A7  # SECTION SIGN
0xA5    0x2022  # BULLET
0xA6    0x00B6  # PILCROW SIGN
0xA7    0x00DF  # LATIN SMALL LETTER SHARP S
0xA8    0x00AE  # REGISTERED SIGN
0xA9    0x0160  # LATIN CAPITAL LETTER S WITH CARON
0xAA    0x2122  # TRADE MARK SIGN
0xAB    0x00B4  # ACUTE ACCENT
0xAC    0x00A8  # DIAERESIS
0xAD    0x2260  # NOT EQUAL TO
0xAE    0x017D  # LATIN CAPITAL LETTER Z WITH CARON
0xAF    0x00D8  # LATIN CAPITAL LETTER O WITH STROKE
0xB0    0x221E  # INFINITY
0xB1    0x00B1  # PLUS-MINUS SIGN
0xB2    0x2264  # LESS-THAN OR EQUAL TO
0xB3    0x2265  # GREATER-THAN OR EQUAL TO
0xB4    0x2206  # INCREMENT
0xB5    0x00B5  # MICRO SIGN
0xB6    0x2202  # PARTIAL DIFFERENTIAL
0xB7    0x2211  # N-ARY SUMMATION
0xB8    0x220F  # N-ARY PRODUCT
0xB9    0x0161  # LATIN SMALL LETTER S WITH CARON
0xBA    0x222B  # INTEGRAL
0xBB    0x00AA  # FEMININE ORDINAL INDICATOR
0xBC    0x00BA  # MASCULINE ORDINAL INDICATOR
0xBD    0x03A9  # GREEK CAPITAL LETTER OMEGA
0xBE    0x017E  # LATIN SMALL LETTER Z WITH CARON
0xBF    0x00F8  # LATIN SMALL LETTER O WITH STROKE
0xC0    0x00BF  # INVERTED QUESTION MARK
0xC1    0x00A1  # INVERTED EXCLAMATION MARK
0xC2    0x00AC  # NOT SIGN
0xC3    0x221A  # SQUARE ROOT
0xC4    0x0192  # LATIN SMALL LETTER F WITH HOOK
0xC5    0x2248  # ALMOST EQUAL TO
0xC6    0x0106  # LATIN CAPITAL LETTER C WITH ACUTE
0xC7    0x00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8    0x010C  # LATIN CAPITAL LETTER C WITH CARON
0xC9    0x2026  # HORIZONTAL ELLIPSIS
0xCA    0x00A0  # NO-BREAK SPACE
0xCB    0x00C0  # LATIN CAPITAL LETTER A WITH GRAVE
0xCC    0x00C3  # LATIN CAPITAL LETTER A WITH TILDE
0xCD    0x00D5  # LATIN CAPITAL LETTER O WITH TILDE
0xCE    0x0152  # LATIN CAPITAL LIGATURE OE
0xCF    0x0153  # LATIN SMALL LIGATURE OE
0xD0    0x0110  # LATIN CAPITAL LETTER D WITH STROKE
0xD1    0x2014  # EM DASH
0xD2    0x201C  # LEFT DOUBLE QUOTATION MARK
0xD3    0x201D  # RIGHT DOUBLE QUOTATION MARK
0xD4    0x2018  # LEFT SINGLE QUOTATION MARK
0xD5    0x2019  # RIGHT SINGLE QUOTATION MARK
0xD6    0x00F7  # DIVISION SIGN
0xD7    0x25CA  # LOZENGE
0xD8    0xF8FF  # Apple logo
0xD9    0x00A9  # COPYRIGHT SIGN
0xDA    0x2044  # FRACTION SLASH
0xDB    0x20AC  # EURO SIGN
0xDC    0x2039  # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
0xDD    0x203A  # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
0xDE    0x00C6  # LATIN CAPITAL LETTER AE
0xDF    0x00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xE0    0x2013  # EN DASH
0xE1    0x00B7  # MIDDLE DOT
0xE2    0x201A  # SINGLE LOW-9 QUOTATION MARK
0xE3    0x201E  # DOUBLE LOW-9 QUOTATION MARK
0xE4    0x2030  # PER MILLE SIGN
0xE5    0x00C2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xE6    0x0107  # LATIN SMALL LETTER C WITH ACUTE
0xE7    0x00C1  # LATIN CAPITAL LETTER A WITH ACUTE
0xE8    0x010D  # LATIN SMALL LETTER C WITH CARON
0xE9    0x00C8  # LATIN CAPITAL LETTER E WITH GRAVE
0xEA    0x00CD  # LATIN CAPITAL LETTER I WITH ACUTE
0xEB    0x00CE  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xEC    0x00CF  # LATIN CAPITAL LETTER I WITH DIAERESIS
0xED    0x00CC  # LATIN CAPITAL LETTER I WITH GRAVE
0xEE    0x00D3  # LATIN CAPITAL LETTER O WITH ACUTE
0xEF    0x00D4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xF0    0x0111  # LATIN SMALL LETTER D WITH STROKE
0xF1    0x00D2  # LATIN CAPITAL LETTER O WITH GRAVE
0xF2    0x00DA  # LATIN CAPITAL LETTER U WITH ACUTE
0xF3    0x00DB  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xF4    0x00D9  # LATIN CAPITAL LETTER U WITH GRAVE
0xF5    0x0131  # LATIN SMALL LETTER DOTLESS I
0xF6    0x02C6  # MODIFIER LETTER CIRCUMFLEX ACCENT
0xF7    0x02DC  # SMALL TILDE
0xF8    0x00AF  # MACRON
0xF9    0x03C0  # GREEK SMALL LETTER PI
0xFA    0x00CB  # LATIN CAPITAL LETTER E WITH DIAERESIS
0xFB    0x02DA  # RING ABOVE
0xFC    0x00B8  # CEDILLA
0xFD    0x00CA  # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xFE    0x00E6  # LATIN SMALL LETTER AE
0xFF    0x02C7  # CARON

"
! !

!CharacterEncoder::MAC_Croatian class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-croatian' )
! !

!CharacterEncoder::MAC_Cyrillic class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/CYRILLIC.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/CYRILLIC.TXT

#=======================================================================
#   File name:  CYRILLIC.TXT
#
#   Contents:   Map (external version) from Mac OS Cyrillic
#               character set to Unicode 2.1 through Unicode 3.2
#
#   Copyright:  (c) 1995-2002 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#      b3,c1 2002-Dec-19    Update URLs, notes. Matches internal
#                           utom<b2>.
#       b02  1999-Sep-22    Encoding changed for Mac OS 9.0 to merge
#                           with Mac OS Ukrainian and support EURO SIGN;
#                           Change mappings for 0xA2, 0xB6, and 0xFF.
#                           Update contact e-mail address. Matches
#                           internal utom<b2>, ufrm<b2>, and Text
#                           Encoding Converter version 1.5.
#       n05  1998-Feb-05    Update header comments to new format; no
#                           mapping changes.  Matches internal utom<n3>,
#                           ufrm<n13>, and Text Encoding Converter
#                           version 1.3.
#       n03  1995-Apr-15    First version (after fixing some typos).
#                           Matches internal ufrm<n5>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, 'Macintosh' can be used to refer to
#   Macintosh computers and 'Unicode' can be used to refer to the
#   Unicode standard.
#
#   Apple makes no warranty or representation, either express or
#   implied, with respect to these tables, their quality, accuracy, or
#   fitness for a particular purpose. In no event will Apple be liable
#   for direct, indirect, special, incidental, or consequential damages 
#   resulting from any defect or inaccuracy in this document or the
#   accompanying tables.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file 'README.TXT'.
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Cyrillic code (in hex as 0xNN)
#     Column #2 is the corresponding Unicode (in hex as 0xNNNN)
#     Column #3 is a comment containing the Unicode name
#
#   The entries are in Mac OS Cyrillic code order.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Cyrillic character set uses the standard control characters
#   at 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Cyrillic:
# -------------------------
#
#   This is the 'Euro sign' version of Mac Cyrillic for Mac OS 9.0 and
#   later. Before Mac OS 9.0, there were two separate Slavic Cyrillic
#   encodings:
#
#   1. The Cyrillic currency sign variant (used for localized Russian
#      and Bulgarian systems), which had the following:
#           0xA2  U+00A2 CENT SIGN
#           0xB6  U+2202 PARTIAL DIFFERENTIAL
#           0xFF  U+00A4 CURRENCY SIGN
#
#   2. The Ukrainian currency sign variant (used for localized Ukrainian
#      systems and the pre-9.0 Cyrillic Language Kit), which had the
#      following:
#           0xA2  U+0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN
#           0xB6  U+0491 CYRILLIC SMALL LETTER GHE WITH UPTURN
#           0xFF  U+00A4 CURRENCY SIGN
#
#   This new Cyrillic Euro sign version is based on the old Ukrainian
#   currency sign variant, with 0xFF changed to be EURO SIGN.
#
#   The Mac OS Cyrillic encoding includes the Cyrillic letter repertoire
#   of ISO 8859-5 (although not at the same code points). This covers
#   most of the Slavic languages written in Cyrillic script.
#
#   The Mac OS Cyrillic encoding also includes a number of characters
#   needed for the Mac OS user interface and localization (e.g.
#   ellipsis, bullet, copyright sign). All of the characters in Mac OS
#   Cyrillic that are also in the Mac OS Roman encoding are at the
#   same code point in both; this improves application compatibility.
#
#   Note: There is a common Ukrainian glyph variation in which the glyph
#   for CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I may or may not
#   have a dot above.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version n05 to version b02:
#
#   - Encoding changed for Mac OS 9.0 to merge with Mac OS Ukrainian and
#   support EURO SIGN. 0xA2 changed from U+00A2 to U+0490; 0xB6 changed
#   from U+2202 to U+0491; 0xFF changed from U+00A4 to U+20AC.
#
##################

0x20    0x0020  # SPACE
0x21    0x0021  # EXCLAMATION MARK
0x22    0x0022  # QUOTATION MARK
0x23    0x0023  # NUMBER SIGN
0x24    0x0024  # DOLLAR SIGN
0x25    0x0025  # PERCENT SIGN
0x26    0x0026  # AMPERSAND
0x27    0x0027  # APOSTROPHE
0x28    0x0028  # LEFT PARENTHESIS
0x29    0x0029  # RIGHT PARENTHESIS
0x2A    0x002A  # ASTERISK
0x2B    0x002B  # PLUS SIGN
0x2C    0x002C  # COMMA
0x2D    0x002D  # HYPHEN-MINUS
0x2E    0x002E  # FULL STOP
0x2F    0x002F  # SOLIDUS
0x30    0x0030  # DIGIT ZERO
0x31    0x0031  # DIGIT ONE
0x32    0x0032  # DIGIT TWO
0x33    0x0033  # DIGIT THREE
0x34    0x0034  # DIGIT FOUR
0x35    0x0035  # DIGIT FIVE
0x36    0x0036  # DIGIT SIX
0x37    0x0037  # DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT
0x39    0x0039  # DIGIT NINE
0x3A    0x003A  # COLON
0x3B    0x003B  # SEMICOLON
0x3C    0x003C  # LESS-THAN SIGN
0x3D    0x003D  # EQUALS SIGN
0x3E    0x003E  # GREATER-THAN SIGN
0x3F    0x003F  # QUESTION MARK
0x40    0x0040  # COMMERCIAL AT
0x41    0x0041  # LATIN CAPITAL LETTER A
0x42    0x0042  # LATIN CAPITAL LETTER B
0x43    0x0043  # LATIN CAPITAL LETTER C
0x44    0x0044  # LATIN CAPITAL LETTER D
0x45    0x0045  # LATIN CAPITAL LETTER E
0x46    0x0046  # LATIN CAPITAL LETTER F
0x47    0x0047  # LATIN CAPITAL LETTER G
0x48    0x0048  # LATIN CAPITAL LETTER H
0x49    0x0049  # LATIN CAPITAL LETTER I
0x4A    0x004A  # LATIN CAPITAL LETTER J
0x4B    0x004B  # LATIN CAPITAL LETTER K
0x4C    0x004C  # LATIN CAPITAL LETTER L
0x4D    0x004D  # LATIN CAPITAL LETTER M
0x4E    0x004E  # LATIN CAPITAL LETTER N
0x4F    0x004F  # LATIN CAPITAL LETTER O
0x50    0x0050  # LATIN CAPITAL LETTER P
0x51    0x0051  # LATIN CAPITAL LETTER Q
0x52    0x0052  # LATIN CAPITAL LETTER R
0x53    0x0053  # LATIN CAPITAL LETTER S
0x54    0x0054  # LATIN CAPITAL LETTER T
0x55    0x0055  # LATIN CAPITAL LETTER U
0x56    0x0056  # LATIN CAPITAL LETTER V
0x57    0x0057  # LATIN CAPITAL LETTER W
0x58    0x0058  # LATIN CAPITAL LETTER X
0x59    0x0059  # LATIN CAPITAL LETTER Y
0x5A    0x005A  # LATIN CAPITAL LETTER Z
0x5B    0x005B  # LEFT SQUARE BRACKET
0x5C    0x005C  # REVERSE SOLIDUS
0x5D    0x005D  # RIGHT SQUARE BRACKET
0x5E    0x005E  # CIRCUMFLEX ACCENT
0x5F    0x005F  # LOW LINE
0x60    0x0060  # GRAVE ACCENT
0x61    0x0061  # LATIN SMALL LETTER A
0x62    0x0062  # LATIN SMALL LETTER B
0x63    0x0063  # LATIN SMALL LETTER C
0x64    0x0064  # LATIN SMALL LETTER D
0x65    0x0065  # LATIN SMALL LETTER E
0x66    0x0066  # LATIN SMALL LETTER F
0x67    0x0067  # LATIN SMALL LETTER G
0x68    0x0068  # LATIN SMALL LETTER H
0x69    0x0069  # LATIN SMALL LETTER I
0x6A    0x006A  # LATIN SMALL LETTER J
0x6B    0x006B  # LATIN SMALL LETTER K
0x6C    0x006C  # LATIN SMALL LETTER L
0x6D    0x006D  # LATIN SMALL LETTER M
0x6E    0x006E  # LATIN SMALL LETTER N
0x6F    0x006F  # LATIN SMALL LETTER O
0x70    0x0070  # LATIN SMALL LETTER P
0x71    0x0071  # LATIN SMALL LETTER Q
0x72    0x0072  # LATIN SMALL LETTER R
0x73    0x0073  # LATIN SMALL LETTER S
0x74    0x0074  # LATIN SMALL LETTER T
0x75    0x0075  # LATIN SMALL LETTER U
0x76    0x0076  # LATIN SMALL LETTER V
0x77    0x0077  # LATIN SMALL LETTER W
0x78    0x0078  # LATIN SMALL LETTER X
0x79    0x0079  # LATIN SMALL LETTER Y
0x7A    0x007A  # LATIN SMALL LETTER Z
0x7B    0x007B  # LEFT CURLY BRACKET
0x7C    0x007C  # VERTICAL LINE
0x7D    0x007D  # RIGHT CURLY BRACKET
0x7E    0x007E  # TILDE
#
0x80    0x0410  # CYRILLIC CAPITAL LETTER A
0x81    0x0411  # CYRILLIC CAPITAL LETTER BE
0x82    0x0412  # CYRILLIC CAPITAL LETTER VE
0x83    0x0413  # CYRILLIC CAPITAL LETTER GHE
0x84    0x0414  # CYRILLIC CAPITAL LETTER DE
0x85    0x0415  # CYRILLIC CAPITAL LETTER IE
0x86    0x0416  # CYRILLIC CAPITAL LETTER ZHE
0x87    0x0417  # CYRILLIC CAPITAL LETTER ZE
0x88    0x0418  # CYRILLIC CAPITAL LETTER I
0x89    0x0419  # CYRILLIC CAPITAL LETTER SHORT I
0x8A    0x041A  # CYRILLIC CAPITAL LETTER KA
0x8B    0x041B  # CYRILLIC CAPITAL LETTER EL
0x8C    0x041C  # CYRILLIC CAPITAL LETTER EM
0x8D    0x041D  # CYRILLIC CAPITAL LETTER EN
0x8E    0x041E  # CYRILLIC CAPITAL LETTER O
0x8F    0x041F  # CYRILLIC CAPITAL LETTER PE
0x90    0x0420  # CYRILLIC CAPITAL LETTER ER
0x91    0x0421  # CYRILLIC CAPITAL LETTER ES
0x92    0x0422  # CYRILLIC CAPITAL LETTER TE
0x93    0x0423  # CYRILLIC CAPITAL LETTER U
0x94    0x0424  # CYRILLIC CAPITAL LETTER EF
0x95    0x0425  # CYRILLIC CAPITAL LETTER HA
0x96    0x0426  # CYRILLIC CAPITAL LETTER TSE
0x97    0x0427  # CYRILLIC CAPITAL LETTER CHE
0x98    0x0428  # CYRILLIC CAPITAL LETTER SHA
0x99    0x0429  # CYRILLIC CAPITAL LETTER SHCHA
0x9A    0x042A  # CYRILLIC CAPITAL LETTER HARD SIGN
0x9B    0x042B  # CYRILLIC CAPITAL LETTER YERU
0x9C    0x042C  # CYRILLIC CAPITAL LETTER SOFT SIGN
0x9D    0x042D  # CYRILLIC CAPITAL LETTER E
0x9E    0x042E  # CYRILLIC CAPITAL LETTER YU
0x9F    0x042F  # CYRILLIC CAPITAL LETTER YA
0xA0    0x2020  # DAGGER
0xA1    0x00B0  # DEGREE SIGN
0xA2    0x0490  # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
0xA3    0x00A3  # POUND SIGN
0xA4    0x00A7  # SECTION SIGN
0xA5    0x2022  # BULLET
0xA6    0x00B6  # PILCROW SIGN
0xA7    0x0406  # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
0xA8    0x00AE  # REGISTERED SIGN
0xA9    0x00A9  # COPYRIGHT SIGN
0xAA    0x2122  # TRADE MARK SIGN
0xAB    0x0402  # CYRILLIC CAPITAL LETTER DJE
0xAC    0x0452  # CYRILLIC SMALL LETTER DJE
0xAD    0x2260  # NOT EQUAL TO
0xAE    0x0403  # CYRILLIC CAPITAL LETTER GJE
0xAF    0x0453  # CYRILLIC SMALL LETTER GJE
0xB0    0x221E  # INFINITY
0xB1    0x00B1  # PLUS-MINUS SIGN
0xB2    0x2264  # LESS-THAN OR EQUAL TO
0xB3    0x2265  # GREATER-THAN OR EQUAL TO
0xB4    0x0456  # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
0xB5    0x00B5  # MICRO SIGN
0xB6    0x0491  # CYRILLIC SMALL LETTER GHE WITH UPTURN
0xB7    0x0408  # CYRILLIC CAPITAL LETTER JE
0xB8    0x0404  # CYRILLIC CAPITAL LETTER UKRAINIAN IE
0xB9    0x0454  # CYRILLIC SMALL LETTER UKRAINIAN IE
0xBA    0x0407  # CYRILLIC CAPITAL LETTER YI
0xBB    0x0457  # CYRILLIC SMALL LETTER YI
0xBC    0x0409  # CYRILLIC CAPITAL LETTER LJE
0xBD    0x0459  # CYRILLIC SMALL LETTER LJE
0xBE    0x040A  # CYRILLIC CAPITAL LETTER NJE
0xBF    0x045A  # CYRILLIC SMALL LETTER NJE
0xC0    0x0458  # CYRILLIC SMALL LETTER JE
0xC1    0x0405  # CYRILLIC CAPITAL LETTER DZE
0xC2    0x00AC  # NOT SIGN
0xC3    0x221A  # SQUARE ROOT
0xC4    0x0192  # LATIN SMALL LETTER F WITH HOOK
0xC5    0x2248  # ALMOST EQUAL TO
0xC6    0x2206  # INCREMENT
0xC7    0x00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8    0x00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC9    0x2026  # HORIZONTAL ELLIPSIS
0xCA    0x00A0  # NO-BREAK SPACE
0xCB    0x040B  # CYRILLIC CAPITAL LETTER TSHE
0xCC    0x045B  # CYRILLIC SMALL LETTER TSHE
0xCD    0x040C  # CYRILLIC CAPITAL LETTER KJE
0xCE    0x045C  # CYRILLIC SMALL LETTER KJE
0xCF    0x0455  # CYRILLIC SMALL LETTER DZE
0xD0    0x2013  # EN DASH
0xD1    0x2014  # EM DASH
0xD2    0x201C  # LEFT DOUBLE QUOTATION MARK
0xD3    0x201D  # RIGHT DOUBLE QUOTATION MARK
0xD4    0x2018  # LEFT SINGLE QUOTATION MARK
0xD5    0x2019  # RIGHT SINGLE QUOTATION MARK
0xD6    0x00F7  # DIVISION SIGN
0xD7    0x201E  # DOUBLE LOW-9 QUOTATION MARK
0xD8    0x040E  # CYRILLIC CAPITAL LETTER SHORT U
0xD9    0x045E  # CYRILLIC SMALL LETTER SHORT U
0xDA    0x040F  # CYRILLIC CAPITAL LETTER DZHE
0xDB    0x045F  # CYRILLIC SMALL LETTER DZHE
0xDC    0x2116  # NUMERO SIGN
0xDD    0x0401  # CYRILLIC CAPITAL LETTER IO
0xDE    0x0451  # CYRILLIC SMALL LETTER IO
0xDF    0x044F  # CYRILLIC SMALL LETTER YA
0xE0    0x0430  # CYRILLIC SMALL LETTER A
0xE1    0x0431  # CYRILLIC SMALL LETTER BE
0xE2    0x0432  # CYRILLIC SMALL LETTER VE
0xE3    0x0433  # CYRILLIC SMALL LETTER GHE
0xE4    0x0434  # CYRILLIC SMALL LETTER DE
0xE5    0x0435  # CYRILLIC SMALL LETTER IE
0xE6    0x0436  # CYRILLIC SMALL LETTER ZHE
0xE7    0x0437  # CYRILLIC SMALL LETTER ZE
0xE8    0x0438  # CYRILLIC SMALL LETTER I
0xE9    0x0439  # CYRILLIC SMALL LETTER SHORT I
0xEA    0x043A  # CYRILLIC SMALL LETTER KA
0xEB    0x043B  # CYRILLIC SMALL LETTER EL
0xEC    0x043C  # CYRILLIC SMALL LETTER EM
0xED    0x043D  # CYRILLIC SMALL LETTER EN
0xEE    0x043E  # CYRILLIC SMALL LETTER O
0xEF    0x043F  # CYRILLIC SMALL LETTER PE
0xF0    0x0440  # CYRILLIC SMALL LETTER ER
0xF1    0x0441  # CYRILLIC SMALL LETTER ES
0xF2    0x0442  # CYRILLIC SMALL LETTER TE
0xF3    0x0443  # CYRILLIC SMALL LETTER U
0xF4    0x0444  # CYRILLIC SMALL LETTER EF
0xF5    0x0445  # CYRILLIC SMALL LETTER HA
0xF6    0x0446  # CYRILLIC SMALL LETTER TSE
0xF7    0x0447  # CYRILLIC SMALL LETTER CHE
0xF8    0x0448  # CYRILLIC SMALL LETTER SHA
0xF9    0x0449  # CYRILLIC SMALL LETTER SHCHA
0xFA    0x044A  # CYRILLIC SMALL LETTER HARD SIGN
0xFB    0x044B  # CYRILLIC SMALL LETTER YERU
0xFC    0x044C  # CYRILLIC SMALL LETTER SOFT SIGN
0xFD    0x044D  # CYRILLIC SMALL LETTER E
0xFE    0x044E  # CYRILLIC SMALL LETTER YU
0xFF    0x20AC  # EURO SIGN

"
! !

!CharacterEncoder::MAC_Cyrillic class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-cyrillic' )
! !

!CharacterEncoder::MAC_Dingbats class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/DINGBATS.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/DINGBATS.TXT

#=======================================================================
#   File name:  DINGBATS.TXT
#
#   Contents:   Map (external version) from Mac OS Dingbats
#               character set to Unicode 3.2
#
#   Copyright:  (c) 1994-2002 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#      b3,c1 2002-Dec-19    Update mappings for 0x80-0x8D to use new
#                                                       Unicode 3.2 characters. Update URLs, notes.
#                           Matches internal utom<b2>.
#       b02  1999-Sep-22    Update contact e-mail address. Matches
#                           internal utom<b1>, ufrm<b1>, and Text
#                           Encoding Converter version 1.5.
#       n05  1998-Feb-05    Update to match internal utom<n4>, ufrm<n14>,
#                           and Text Encoding Converter version 1.3:
#                           Change all mappings to single corporate-zone
#                           Unicodes to either use standard Unicodes
#                           or standard Unicodes plus transcoding hints;
#                           see details below. Also update header
#                           comments to new format.
#       n03  1995-Apr-15    First version (after fixing some typos).
#                           Matches internal ufrm<n4>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, 'Macintosh' can be used to refer to
#   Macintosh computers and 'Unicode' can be used to refer to the
#   Unicode standard.
#
#   Apple makes no warranty or representation, either express or
#   implied, with respect to these tables, their quality, accuracy, or
#   fitness for a particular purpose. In no event will Apple be liable
#   for direct, indirect, special, incidental, or consequential damages 
#   resulting from any defect or inaccuracy in this document or the
#   accompanying tables.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file 'README.TXT'.
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Dingbats code (in hex as 0xNN)
#     Column #2 is the corresponding Unicode or Unicode sequence
#       (in hex as 0xNNNN or 0xNNNN+0xNNNN).
#     Column #3 is a comment containing the Unicode name.
#       In some cases an additional comment follows the Unicode name.
#
#   The entries are in Mac OS Dingbats code order.
#
#   Some of these mappings require the use of corporate characters.
#   See the file 'CORPCHAR.TXT' and notes below.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Dingbats character set uses the standard control characters
#   at 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Dingbats:
# -------------------------
#
#   The Mac OS Dingbats encoding shares the script code smRoman
#   (0) with the standard Mac OS Roman encoding. To determine if
#   the Dingbats encoding is being used, you must check if the
#   font name is 'Zapf Dingbats'.
#
#   The layout of the Dingbats character set is identical to or
#   a superset of the layout of the Adobe Zapf Dingbats encoding
#   vector.
#
#   The following code points are unused, and are not shown here:
#   0x8E-0xA0, 0xF0, 0xFF.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version b02 to version b03/c01:
#
#   - The mappings for the following Mac OS Dingbats characters
#   were changed to use standard Unicode characters added for
#   Unicode 3.2: 0x80-0x8D.
#
#   Changes from version n03 to version n05:
#
#   - The mappings for the following Mac OS Dingbats characters
#   were changed from single corporate-zone Unicode characters
#   to standard Unicode characters:
#   0x80-0x81, 0x84-0x87, 0x8A-0x8D.
#
#   - The mappings for the following Mac OS Dingbats characters
#   were changed from single corporate-zone Unicode characters
#   to combinations of a standard Unicode and a transcoding hint:
#   0x82-0x83, 0x88-0x89.
#
##################

0x20    0x0020  # SPACE
0x21    0x2701  # UPPER BLADE SCISSORS
0x22    0x2702  # BLACK SCISSORS
0x23    0x2703  # LOWER BLADE SCISSORS
0x24    0x2704  # WHITE SCISSORS
0x25    0x260E  # BLACK TELEPHONE
0x26    0x2706  # TELEPHONE LOCATION SIGN
0x27    0x2707  # TAPE DRIVE
0x28    0x2708  # AIRPLANE
0x29    0x2709  # ENVELOPE
0x2A    0x261B  # BLACK RIGHT POINTING INDEX
0x2B    0x261E  # WHITE RIGHT POINTING INDEX
0x2C    0x270C  # VICTORY HAND
0x2D    0x270D  # WRITING HAND
0x2E    0x270E  # LOWER RIGHT PENCIL
0x2F    0x270F  # PENCIL
0x30    0x2710  # UPPER RIGHT PENCIL
0x31    0x2711  # WHITE NIB
0x32    0x2712  # BLACK NIB
0x33    0x2713  # CHECK MARK
0x34    0x2714  # HEAVY CHECK MARK
0x35    0x2715  # MULTIPLICATION X
0x36    0x2716  # HEAVY MULTIPLICATION X
0x37    0x2717  # BALLOT X
0x38    0x2718  # HEAVY BALLOT X
0x39    0x2719  # OUTLINED GREEK CROSS
0x3A    0x271A  # HEAVY GREEK CROSS
0x3B    0x271B  # OPEN CENTRE CROSS
0x3C    0x271C  # HEAVY OPEN CENTRE CROSS
0x3D    0x271D  # LATIN CROSS
0x3E    0x271E  # SHADOWED WHITE LATIN CROSS
0x3F    0x271F  # OUTLINED LATIN CROSS
0x40    0x2720  # MALTESE CROSS
0x41    0x2721  # STAR OF DAVID
0x42    0x2722  # FOUR TEARDROP-SPOKED ASTERISK
0x43    0x2723  # FOUR BALLOON-SPOKED ASTERISK
0x44    0x2724  # HEAVY FOUR BALLOON-SPOKED ASTERISK
0x45    0x2725  # FOUR CLUB-SPOKED ASTERISK
0x46    0x2726  # BLACK FOUR POINTED STAR
0x47    0x2727  # WHITE FOUR POINTED STAR
0x48    0x2605  # BLACK STAR
0x49    0x2729  # STRESS OUTLINED WHITE STAR
0x4A    0x272A  # CIRCLED WHITE STAR
0x4B    0x272B  # OPEN CENTRE BLACK STAR
0x4C    0x272C  # BLACK CENTRE WHITE STAR
0x4D    0x272D  # OUTLINED BLACK STAR
0x4E    0x272E  # HEAVY OUTLINED BLACK STAR
0x4F    0x272F  # PINWHEEL STAR
0x50    0x2730  # SHADOWED WHITE STAR
0x51    0x2731  # HEAVY ASTERISK
0x52    0x2732  # OPEN CENTRE ASTERISK
0x53    0x2733  # EIGHT SPOKED ASTERISK
0x54    0x2734  # EIGHT POINTED BLACK STAR
0x55    0x2735  # EIGHT POINTED PINWHEEL STAR
0x56    0x2736  # SIX POINTED BLACK STAR
0x57    0x2737  # EIGHT POINTED RECTILINEAR BLACK STAR
0x58    0x2738  # HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
0x59    0x2739  # TWELVE POINTED BLACK STAR
0x5A    0x273A  # SIXTEEN POINTED ASTERISK
0x5B    0x273B  # TEARDROP-SPOKED ASTERISK
0x5C    0x273C  # OPEN CENTRE TEARDROP-SPOKED ASTERISK
0x5D    0x273D  # HEAVY TEARDROP-SPOKED ASTERISK
0x5E    0x273E  # SIX PETALLED BLACK AND WHITE FLORETTE
0x5F    0x273F  # BLACK FLORETTE
0x60    0x2740  # WHITE FLORETTE
0x61    0x2741  # EIGHT PETALLED OUTLINED BLACK FLORETTE
0x62    0x2742  # CIRCLED OPEN CENTRE EIGHT POINTED STAR
0x63    0x2743  # HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
0x64    0x2744  # SNOWFLAKE
0x65    0x2745  # TIGHT TRIFOLIATE SNOWFLAKE
0x66    0x2746  # HEAVY CHEVRON SNOWFLAKE
0x67    0x2747  # SPARKLE
0x68    0x2748  # HEAVY SPARKLE
0x69    0x2749  # BALLOON-SPOKED ASTERISK
0x6A    0x274A  # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
0x6B    0x274B  # HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
0x6C    0x25CF  # BLACK CIRCLE
0x6D    0x274D  # SHADOWED WHITE CIRCLE
0x6E    0x25A0  # BLACK SQUARE
0x6F    0x274F  # LOWER RIGHT DROP-SHADOWED WHITE SQUARE
0x70    0x2750  # UPPER RIGHT DROP-SHADOWED WHITE SQUARE
0x71    0x2751  # LOWER RIGHT SHADOWED WHITE SQUARE
0x72    0x2752  # UPPER RIGHT SHADOWED WHITE SQUARE
0x73    0x25B2  # BLACK UP-POINTING TRIANGLE
0x74    0x25BC  # BLACK DOWN-POINTING TRIANGLE
0x75    0x25C6  # BLACK DIAMOND
0x76    0x2756  # BLACK DIAMOND MINUS WHITE X
0x77    0x25D7  # RIGHT HALF BLACK CIRCLE
0x78    0x2758  # LIGHT VERTICAL BAR
0x79    0x2759  # MEDIUM VERTICAL BAR
0x7A    0x275A  # HEAVY VERTICAL BAR
0x7B    0x275B  # HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
0x7C    0x275C  # HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
0x7D    0x275D  # HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
0x7E    0x275E  # HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
#
0x80    0x2768  # MEDIUM LEFT PARENTHESIS ORNAMENT # for Unicode 3.2 and later
0x81    0x2769  # MEDIUM RIGHT PARENTHESIS ORNAMENT # for Unicode 3.2 and later
0x82    0x276A  # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT # for Unicode 3.2 and later
0x83    0x276B  # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT # for Unicode 3.2 and later
0x84    0x276C  # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT # for Unicode 3.2 and later
0x85    0x276D  # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT # for Unicode 3.2 and later
0x86    0x276E  # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT # for Unicode 3.2 and later
0x87    0x276F  # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT # for Unicode 3.2 and later
0x88    0x2770  # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT # for Unicode 3.2 and later
0x89    0x2771  # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT # for Unicode 3.2 and later
0x8A    0x2772  # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT # for Unicode 3.2 and later
0x8B    0x2773  # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT # for Unicode 3.2 and later
0x8C    0x2774  # MEDIUM LEFT CURLY BRACKET ORNAMENT # for Unicode 3.2 and later
0x8D    0x2775  # MEDIUM RIGHT CURLY BRACKET ORNAMENT # for Unicode 3.2 and later
#
0xA1    0x2761  # CURVED STEM PARAGRAPH SIGN ORNAMENT
0xA2    0x2762  # HEAVY EXCLAMATION MARK ORNAMENT
0xA3    0x2763  # HEAVY HEART EXCLAMATION MARK ORNAMENT
0xA4    0x2764  # HEAVY BLACK HEART
0xA5    0x2765  # ROTATED HEAVY BLACK HEART BULLET
0xA6    0x2766  # FLORAL HEART
0xA7    0x2767  # ROTATED FLORAL HEART BULLET
0xA8    0x2663  # BLACK CLUB SUIT
0xA9    0x2666  # BLACK DIAMOND SUIT
0xAA    0x2665  # BLACK HEART SUIT
0xAB    0x2660  # BLACK SPADE SUIT
0xAC    0x2460  # CIRCLED DIGIT ONE
0xAD    0x2461  # CIRCLED DIGIT TWO
0xAE    0x2462  # CIRCLED DIGIT THREE
0xAF    0x2463  # CIRCLED DIGIT FOUR
0xB0    0x2464  # CIRCLED DIGIT FIVE
0xB1    0x2465  # CIRCLED DIGIT SIX
0xB2    0x2466  # CIRCLED DIGIT SEVEN
0xB3    0x2467  # CIRCLED DIGIT EIGHT
0xB4    0x2468  # CIRCLED DIGIT NINE
0xB5    0x2469  # CIRCLED NUMBER TEN
0xB6    0x2776  # DINGBAT NEGATIVE CIRCLED DIGIT ONE
0xB7    0x2777  # DINGBAT NEGATIVE CIRCLED DIGIT TWO
0xB8    0x2778  # DINGBAT NEGATIVE CIRCLED DIGIT THREE
0xB9    0x2779  # DINGBAT NEGATIVE CIRCLED DIGIT FOUR
0xBA    0x277A  # DINGBAT NEGATIVE CIRCLED DIGIT FIVE
0xBB    0x277B  # DINGBAT NEGATIVE CIRCLED DIGIT SIX
0xBC    0x277C  # DINGBAT NEGATIVE CIRCLED DIGIT SEVEN
0xBD    0x277D  # DINGBAT NEGATIVE CIRCLED DIGIT EIGHT
0xBE    0x277E  # DINGBAT NEGATIVE CIRCLED DIGIT NINE
0xBF    0x277F  # DINGBAT NEGATIVE CIRCLED NUMBER TEN
0xC0    0x2780  # DINGBAT CIRCLED SANS-SERIF DIGIT ONE
0xC1    0x2781  # DINGBAT CIRCLED SANS-SERIF DIGIT TWO
0xC2    0x2782  # DINGBAT CIRCLED SANS-SERIF DIGIT THREE
0xC3    0x2783  # DINGBAT CIRCLED SANS-SERIF DIGIT FOUR
0xC4    0x2784  # DINGBAT CIRCLED SANS-SERIF DIGIT FIVE
0xC5    0x2785  # DINGBAT CIRCLED SANS-SERIF DIGIT SIX
0xC6    0x2786  # DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN
0xC7    0x2787  # DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT
0xC8    0x2788  # DINGBAT CIRCLED SANS-SERIF DIGIT NINE
0xC9    0x2789  # DINGBAT CIRCLED SANS-SERIF NUMBER TEN
0xCA    0x278A  # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE
0xCB    0x278B  # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO
0xCC    0x278C  # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE
0xCD    0x278D  # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR
0xCE    0x278E  # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE
0xCF    0x278F  # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX
0xD0    0x2790  # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN
0xD1    0x2791  # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
0xD2    0x2792  # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
0xD3    0x2793  # DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
0xD4    0x2794  # HEAVY WIDE-HEADED RIGHTWARDS ARROW
0xD5    0x2192  # RIGHTWARDS ARROW
0xD6    0x2194  # LEFT RIGHT ARROW
0xD7    0x2195  # UP DOWN ARROW
0xD8    0x2798  # HEAVY SOUTH EAST ARROW
0xD9    0x2799  # HEAVY RIGHTWARDS ARROW
0xDA    0x279A  # HEAVY NORTH EAST ARROW
0xDB    0x279B  # DRAFTING POINT RIGHTWARDS ARROW
0xDC    0x279C  # HEAVY ROUND-TIPPED RIGHTWARDS ARROW
0xDD    0x279D  # TRIANGLE-HEADED RIGHTWARDS ARROW
0xDE    0x279E  # HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW
0xDF    0x279F  # DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
0xE0    0x27A0  # HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
0xE1    0x27A1  # BLACK RIGHTWARDS ARROW
0xE2    0x27A2  # THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
0xE3    0x27A3  # THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
0xE4    0x27A4  # BLACK RIGHTWARDS ARROWHEAD
0xE5    0x27A5  # HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
0xE6    0x27A6  # HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
0xE7    0x27A7  # SQUAT BLACK RIGHTWARDS ARROW
0xE8    0x27A8  # HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
0xE9    0x27A9  # RIGHT-SHADED WHITE RIGHTWARDS ARROW
0xEA    0x27AA  # LEFT-SHADED WHITE RIGHTWARDS ARROW
0xEB    0x27AB  # BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
0xEC    0x27AC  # FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
0xED    0x27AD  # HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
0xEE    0x27AE  # HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
0xEF    0x27AF  # NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
#
0xF1    0x27B1  # NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
0xF2    0x27B2  # CIRCLED HEAVY WHITE RIGHTWARDS ARROW
0xF3    0x27B3  # WHITE-FEATHERED RIGHTWARDS ARROW
0xF4    0x27B4  # BLACK-FEATHERED SOUTH EAST ARROW
0xF5    0x27B5  # BLACK-FEATHERED RIGHTWARDS ARROW
0xF6    0x27B6  # BLACK-FEATHERED NORTH EAST ARROW
0xF7    0x27B7  # HEAVY BLACK-FEATHERED SOUTH EAST ARROW
0xF8    0x27B8  # HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
0xF9    0x27B9  # HEAVY BLACK-FEATHERED NORTH EAST ARROW
0xFA    0x27BA  # TEARDROP-BARBED RIGHTWARDS ARROW
0xFB    0x27BB  # HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW
0xFC    0x27BC  # WEDGE-TAILED RIGHTWARDS ARROW
0xFD    0x27BD  # HEAVY WEDGE-TAILED RIGHTWARDS ARROW
0xFE    0x27BE  # OPEN-OUTLINED RIGHTWARDS ARROW

"
! !

!CharacterEncoder::MAC_Dingbats class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-dingbats' )
! !

!CharacterEncoder::MAC_Farsi class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/FARSI.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/FARSI.TXT

#=======================================================================
#   File name:  FARSI.TXT
#
#   Contents:   Map (external version) from Mac OS Farsi
#               character set to Unicode 2.1 through Unicode 3.2.
#
#   Copyright:  (c) 1997-2002 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#      b3,c1 2002-Dec-19    Add comments about character display and
#                           direction overrides. Update URLs, notes.
#                           Matches internal utom<b3>.
#       b02  1999-Sep-22    Update contact e-mail address. Matches
#                           internal utom<b1>, ufrm<b1>, and Text
#                           Encoding Converter version 1.5.
#       n04  1998-Feb-05    Show required Unicode character
#                           directionality in a different way. Matches
#                           internal utom<n3>, ufrm<n9>, and Text
#                           Encoding Converter version 1.3. Update
#                           header comments; include information on
#                           loose mapping of digits, and changes to
#                           mapping for the TrueType variant.
#       n01  1997-Jul-17    First version. Matches internal utom<n1>,
#                           ufrm<n2>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, 'Macintosh' can be used to refer to
#   Macintosh computers and 'Unicode' can be used to refer to the
#   Unicode standard.
#
#   Apple makes no warranty or representation, either express or
#   implied, with respect to these tables, their quality, accuracy, or
#   fitness for a particular purpose. In no event will Apple be liable
#   for direct, indirect, special, incidental, or consequential damages 
#   resulting from any defect or inaccuracy in this document or the
#   accompanying tables.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file 'README.TXT'.
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Farsi code (in hex as 0xNN)
#     Column #2 is the corresponding Unicode (in hex as 0xNNNN),
#       possibly preceded by a tag indicating required directionality
#       (i.e. <LR>+0xNNNN or <RL>+0xNNNN).
#     Column #3 is a comment containing the Unicode name.
#
#   The entries are in Mac OS Farsi code order.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Roman character set uses the standard control characters at
#   0x00-0x1F and 0x7F.
#
# Notes on Mac OS Farsi:
# ----------------------
#
#   1. General
#
#   The Mac OS Farsi character set is based on the Mac OS Arabic
#   character set. The main difference is in the right-to-left digits
#   0xB0-0xB9: For Mac OS Arabic these correspond to right-left
#   versions of the Unicode ARABIC-INDIC DIGITs 0660-0669; for
#   Mac OS Farsi these correspond to right-left versions of the
#   Unicode EXTENDED ARABIC-INDIC DIGITs 06F0-06F9. The other
#   difference is in the nature of the font variants.
#
#   For more information, see the comments in the mapping table for
#   Mac OS Arabic.
#
#   Mac OS Farsi characters 0xEB-0xF2 are non-spacing/combining marks.
#
#   2. Directional characters and roundtrip fidelity
#
#   The Mac OS Arabic character set (on which Mac OS Farsi is based)
#   was developed in 1986-1987. At that time the bidirectional line
#   layout algorithm used in the Mac OS Arabic system was fairly simple;
#   it used only a few direction classes (instead of the 19 now used in
#   the Unicode bidirectional algorithm). In order to permit users to
#   handle some tricky layout problems, certain punctuation and symbol
#   characters were encoded twice, one with a left-right direction
#   attribute and the other with a right-left direction attribute. This
#   is the case in Mac OS Farsi too.
#
#   For example, plus sign is encoded at 0x2B with a left-right
#   attribute, and at 0xAB with a right-left attribute. However, there
#   is only one PLUS SIGN character in Unicode. This leads to some
#   interesting problems when mapping between Mac OS Farsi and Unicode;
#   see below.
#
#   A related problem is that even when a particular character is
#   encoded only once in Mac OS Farsi, it may have a different
#   direction attribute than the corresponding Unicode character.
#
#   For example, the Mac OS Farsi character at 0x93 is HORIZONTAL
#   ELLIPSIS with strong right-left direction. However, the Unicode
#   character HORIZONTAL ELLIPSIS has direction class neutral.
#
#   3. Behavior of ASCII-range numbers in WorldScript
#
#   Mac OS Farsi also has two sets of digit codes.

#   The digits at 0x30-0x39 may be displayed using either European
#   digit forms or Persian digit forms, depending on context. If there
#   is a 'strong European' character such as a Latin letter on either
#   side of a sequence consisting of digits 0x30-0x39 and possibly comma
#   0x2C or period 0x2E, then the characters will be displayed using
#   European forms (This will happen even if there are neutral characters
#   between the digits and the strong European character). Otherwise, the
#   digits will be displayed using Persian forms, the comma will be
#   displayed as Arabic thousands separator, and the period as Arabic
#   decimal separator. In any case, 0x2C, 0x2E, and 0x30-0x39 are always
#   left-right.
#
#   The digits at 0xB0-0xB9 are always displayed using Persian digit
#   shapes, and moreover, these digits always have strong right-left
#   directionality. These are mainly intended for special layout
#   purposes such as part numbers, etc.
#
#   4. Font variants
#
#   The table in this file gives the Unicode mappings for the standard
#   Mac OS Farsi encoding. This encoding is supported by the Tehran font
#   (the system font for Farsi), and is the encoding supported by the
#   text processing utilities. However, the other Farsi fonts actually
#   implement a somewhat different encoding; this affects nine code
#   points including 0xAA and 0xC0 (which are also affected by font
#   variants in Mac OS Arabic). For these nine code points the standard
#   Mac OS Farsi encoding has the following mappings:
#       0x8B -> 0x06BA ARABIC LETTER NOON GHUNNA (Urdu)
#       0xA4 -> <RL>+0x0024 DOLLAR SIGN, right-left
#       0xAA -> <RL>+0x002A ASTERISK, right-left
#       0xC0 -> <RL>+0x274A EIGHT TEARDROP-SPOKED PROPELLER ASTERISK,
#               right-left
#       0xF4 -> 0x0679 ARABIC LETTER TTEH (Urdu)
#       0xF7 -> 0x06A4 ARABIC LETTER VEH (for transliteration)
#       0xF9 -> 0x0688 ARABIC LETTER DDAL (Urdu)
#       0xFA -> 0x0691 ARABIC LETTER RREH (Urdu)
#       0xFF -> 0x06D2 ARABIC LETTER YEH BARREE (Urdu)
#
#   The TrueType variant is used for the Farsi TrueType fonts: Ashfahan,
#   Amir, Kamran, Mashad, NadeemFarsi. It differs from the standard
#   variant in the following ways:
#       0x8B -> 0xF882 Arabic ligature 'peace on him' (corporate char.)
#       0xA4 -> 0xFDFC RIAL SIGN (added in Unicode 3.2)
#       0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
#       0xC0 -> <RL>+0x002A ASTERISK, right-left
#       0xF4 -> <RL>+0x00B0 DEGREE SIGN, right-left
#       0xF7 -> 0xFDFA ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
#       0xF9 -> <RL>+0x25CF BLACK CIRCLE, right-left
#       0xFA -> <RL>+0x25A0 BLACK SQUARE, right-left
#       0xFF -> <RL>+0x25B2 BLACK UP-POINTING TRIANGLE, right-left
#
# Unicode mapping issues and notes:
# ---------------------------------
#
#   1. Matching the direction of Mac OS Farsi characters
#
#   When Mac OS Farsi encodes a character twice but with different
#   direction attributes for the two code points - as in the case of
#   plus sign mentioned above - we need a way to map both Mac OS Farsi
#   code points to Unicode and back again without loss of information.
#   With the plus sign, for example, mapping one of the Mac OS Farsi
#   characters to a code in the Unicode corporate use zone is
#   undesirable, since both of the plus sign characters are likely to
#   be used in text that is interchanged.
#
#   The problem is solved with the use of direction override characters
#   and direction-dependent mappings. When mapping from Mac OS Farsi
#   to Unicode, we use direction overrides as necessary to force the
#   direction of the resulting Unicode characters.
#
#   The required direction is indicated by a direction tag in the
#   mappings. A tag of <LR> means the corresponding Unicode character
#   must have a strong left-right context, and a tag of <RL> indicates
#   a right-left context.
#
#   For example, the mapping of 0x2B is given as <LR>+0x002B; the
#   mapping of 0xAB is given as <RL>+0x002B. If we map an isolated
#   instance of 0x2B to Unicode, it should be mapped as follows (LRO
#   indicates LEFT-RIGHT OVERRIDE, PDF indicates POP DIRECTION
#   FORMATTING):
#
#     0x2B ->  0x202D (LRO) + 0x002B (PLUS SIGN) + 0x202C (PDF)
#
#   When mapping several characters in a row that require direction
#   forcing, the overrides need only be used at the beginning and end.
#   For example:
#
#     0x24 0x20 0x28 0x29 -> 0x202D 0x0024 0x0020 0x0028 0x0029 0x202C
#
#   If neutral characters that require direction forcing are already
#   between strong-direction characters with matching directionality,
#   then direction overrides need not be used. Direction overrides are
#   always needed to map the right-left digits at 0xB0-0xB9.
#
#   When mapping from Unicode to Mac OS Farsi, the Unicode
#   bidirectional algorithm should be used to determine resolved
#   direction of the Unicode characters. The mapping from Unicode to
#   Mac OS Farsi can then be disambiguated by the use of the resolved
#   direction:
#
#     Unicode 0x002B -> Mac OS Farsi 0x2B (if L) or 0xAB (if R)
#
#   However, this also means the direction override characters should
#   be discarded when mapping from Unicode to Mac OS Farsi (after
#   they have been used to determine resolved direction), since the
#   direction override information is carried by the code point itself.
#
#   Even when direction overrides are not needed for roundtrip
#   fidelity, they are sometimes used when mapping Mac OS Farsi
#   characters to Unicode in order to achieve similar text layout with
#   the resulting Unicode text. For example, the single Mac OS Farsi
#   ellipsis character has direction class right-left,and there is no
#   left-right version. However, the Unicode HORIZONTAL ELLIPSIS
#   character has direction class neutral (which means it may end up
#   with a resolved direction of left-right if surrounded by left-right
#   characters). When mapping the Mac OS Farsi ellipsis to Unicode, it
#   is surrounded with a direction override to help preserve proper
#   text layout. The resolved direction is not needed or used when
#   mapping the Unicode HORIZONTAL ELLIPSIS back to Mac OS Farsi.
#
#   2. Mapping the Mac OS Farsi digits
#
#   The main table below contains mappings that should be used when
#   strict round-trip fidelity is required. However, for numeric
#   values, the mappings in that table will produce Unicode characters
#   that may appear different than the Mac OS Farsi text displayed on
#   a Mac OS system using WorldScript. This is because WorldScript
#   uses context-dependent display for the 0x30-0x39 digits.
#
#   If roundtrip fidelity is not required, then the following
#   alternate mappings should be used when a sequence of 0x30-0x39
#   digits - possibly including 0x2C and 0x2E - occurs in an Arabic
#   context (that is, when the first 'strong' character on either side
#   of the digit sequence is Arabic, or there is no strong character):
#
#     0x2C      0x066C  # ARABIC THOUSANDS SEPARATOR
#     0x2E      0x066B  # ARABIC DECIMAL SEPARATOR
#     0x30      0x06F0  # EXTENDED ARABIC-INDIC DIGIT ZERO
#     0x31      0x06F1  # EXTENDED ARABIC-INDIC DIGIT ONE
#     0x32      0x06F2  # EXTENDED ARABIC-INDIC DIGIT TWO
#     0x33      0x06F3  # EXTENDED ARABIC-INDIC DIGIT THREE
#     0x34      0x06F4  # EXTENDED ARABIC-INDIC DIGIT FOUR
#     0x35      0x06F5  # EXTENDED ARABIC-INDIC DIGIT FIVE
#     0x36      0x06F6  # EXTENDED ARABIC-INDIC DIGIT SIX
#     0x37      0x06F7  # EXTENDED ARABIC-INDIC DIGIT SEVEN
#     0x38      0x06F8  # EXTENDED ARABIC-INDIC DIGIT EIGHT
#     0x39      0x06F9  # EXTENDED ARABIC-INDIC DIGIT NINE
#
#   3. Use of corporate-zone Unicodes (mapping the TrueType variant)
#
#   The following corporate zone Unicode character is used in this
#   mapping:
#
#     0xF882  Arabic ligature 'peace on him'
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version b02 to version b03/c01:
#
#   - Update mapping of 0xA4 in TrueType variant to use new Unicode
#     character U+FDFC RIAL SIGN addded for Unicode 3.2
#
#   Changes from version n01 to version n04:
#
#   - Change mapping of 0xA4 in TrueType variant (just described in
#     header comment) from single corporate character to use
#     grouping hint
#
##################

0x20    <LR>+0x0020     # SPACE, left-right
0x21    <LR>+0x0021     # EXCLAMATION MARK, left-right
0x22    <LR>+0x0022     # QUOTATION MARK, left-right
0x23    <LR>+0x0023     # NUMBER SIGN, left-right
0x24    <LR>+0x0024     # DOLLAR SIGN, left-right
0x25    <LR>+0x0025     # PERCENT SIGN, left-right
0x26    <LR>+0x0026     # AMPERSAND, left-right
0x27    <LR>+0x0027     # APOSTROPHE, left-right
0x28    <LR>+0x0028     # LEFT PARENTHESIS, left-right
0x29    <LR>+0x0029     # RIGHT PARENTHESIS, left-right
0x2A    <LR>+0x002A     # ASTERISK, left-right
0x2B    <LR>+0x002B     # PLUS SIGN, left-right
0x2C    <LR>+0x002C     # COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
0x2D    <LR>+0x002D     # HYPHEN-MINUS, left-right
0x2E    <LR>+0x002E     # FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
0x2F    <LR>+0x002F     # SOLIDUS, left-right
0x30    0x0030  # DIGIT ZERO;  in Arabic-script context, displayed as 0x06F0 EXTENDED ARABIC-INDIC DIGIT ZERO
0x31    0x0031  # DIGIT ONE;   in Arabic-script context, displayed as 0x06F1 EXTENDED ARABIC-INDIC DIGIT ONE
0x32    0x0032  # DIGIT TWO;   in Arabic-script context, displayed as 0x06F2 EXTENDED ARABIC-INDIC DIGIT TWO
0x33    0x0033  # DIGIT THREE; in Arabic-script context, displayed as 0x06F3 EXTENDED ARABIC-INDIC DIGIT THREE
0x34    0x0034  # DIGIT FOUR;  in Arabic-script context, displayed as 0x06F4 EXTENDED ARABIC-INDIC DIGIT FOUR
0x35    0x0035  # DIGIT FIVE;  in Arabic-script context, displayed as 0x06F5 EXTENDED ARABIC-INDIC DIGIT FIVE
0x36    0x0036  # DIGIT SIX;   in Arabic-script context, displayed as 0x06F6 EXTENDED ARABIC-INDIC DIGIT SIX
0x37    0x0037  # DIGIT SEVEN; in Arabic-script context, displayed as 0x06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT; in Arabic-script context, displayed as 0x06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT
0x39    0x0039  # DIGIT NINE;  in Arabic-script context, displayed as 0x06F9 EXTENDED ARABIC-INDIC DIGIT NINE
0x3A    <LR>+0x003A     # COLON, left-right
0x3B    <LR>+0x003B     # SEMICOLON, left-right
0x3C    <LR>+0x003C     # LESS-THAN SIGN, left-right
0x3D    <LR>+0x003D     # EQUALS SIGN, left-right
0x3E    <LR>+0x003E     # GREATER-THAN SIGN, left-right
0x3F    <LR>+0x003F     # QUESTION MARK, left-right
0x40    0x0040  # COMMERCIAL AT
0x41    0x0041  # LATIN CAPITAL LETTER A
0x42    0x0042  # LATIN CAPITAL LETTER B
0x43    0x0043  # LATIN CAPITAL LETTER C
0x44    0x0044  # LATIN CAPITAL LETTER D
0x45    0x0045  # LATIN CAPITAL LETTER E
0x46    0x0046  # LATIN CAPITAL LETTER F
0x47    0x0047  # LATIN CAPITAL LETTER G
0x48    0x0048  # LATIN CAPITAL LETTER H
0x49    0x0049  # LATIN CAPITAL LETTER I
0x4A    0x004A  # LATIN CAPITAL LETTER J
0x4B    0x004B  # LATIN CAPITAL LETTER K
0x4C    0x004C  # LATIN CAPITAL LETTER L
0x4D    0x004D  # LATIN CAPITAL LETTER M
0x4E    0x004E  # LATIN CAPITAL LETTER N
0x4F    0x004F  # LATIN CAPITAL LETTER O
0x50    0x0050  # LATIN CAPITAL LETTER P
0x51    0x0051  # LATIN CAPITAL LETTER Q
0x52    0x0052  # LATIN CAPITAL LETTER R
0x53    0x0053  # LATIN CAPITAL LETTER S
0x54    0x0054  # LATIN CAPITAL LETTER T
0x55    0x0055  # LATIN CAPITAL LETTER U
0x56    0x0056  # LATIN CAPITAL LETTER V
0x57    0x0057  # LATIN CAPITAL LETTER W
0x58    0x0058  # LATIN CAPITAL LETTER X
0x59    0x0059  # LATIN CAPITAL LETTER Y
0x5A    0x005A  # LATIN CAPITAL LETTER Z
0x5B    <LR>+0x005B     # LEFT SQUARE BRACKET, left-right
0x5C    <LR>+0x005C     # REVERSE SOLIDUS, left-right
0x5D    <LR>+0x005D     # RIGHT SQUARE BRACKET, left-right
0x5E    <LR>+0x005E     # CIRCUMFLEX ACCENT, left-right
0x5F    <LR>+0x005F     # LOW LINE, left-right
0x60    0x0060  # GRAVE ACCENT
0x61    0x0061  # LATIN SMALL LETTER A
0x62    0x0062  # LATIN SMALL LETTER B
0x63    0x0063  # LATIN SMALL LETTER C
0x64    0x0064  # LATIN SMALL LETTER D
0x65    0x0065  # LATIN SMALL LETTER E
0x66    0x0066  # LATIN SMALL LETTER F
0x67    0x0067  # LATIN SMALL LETTER G
0x68    0x0068  # LATIN SMALL LETTER H
0x69    0x0069  # LATIN SMALL LETTER I
0x6A    0x006A  # LATIN SMALL LETTER J
0x6B    0x006B  # LATIN SMALL LETTER K
0x6C    0x006C  # LATIN SMALL LETTER L
0x6D    0x006D  # LATIN SMALL LETTER M
0x6E    0x006E  # LATIN SMALL LETTER N
0x6F    0x006F  # LATIN SMALL LETTER O
0x70    0x0070  # LATIN SMALL LETTER P
0x71    0x0071  # LATIN SMALL LETTER Q
0x72    0x0072  # LATIN SMALL LETTER R
0x73    0x0073  # LATIN SMALL LETTER S
0x74    0x0074  # LATIN SMALL LETTER T
0x75    0x0075  # LATIN SMALL LETTER U
0x76    0x0076  # LATIN SMALL LETTER V
0x77    0x0077  # LATIN SMALL LETTER W
0x78    0x0078  # LATIN SMALL LETTER X
0x79    0x0079  # LATIN SMALL LETTER Y
0x7A    0x007A  # LATIN SMALL LETTER Z
0x7B    <LR>+0x007B     # LEFT CURLY BRACKET, left-right
0x7C    <LR>+0x007C     # VERTICAL LINE, left-right
0x7D    <LR>+0x007D     # RIGHT CURLY BRACKET, left-right
0x7E    0x007E  # TILDE
#
0x80    0x00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81    <RL>+0x00A0     # NO-BREAK SPACE, right-left
0x82    0x00C7  # LATIN CAPITAL LETTER C WITH CEDILLA
0x83    0x00C9  # LATIN CAPITAL LETTER E WITH ACUTE
0x84    0x00D1  # LATIN CAPITAL LETTER N WITH TILDE
0x85    0x00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86    0x00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87    0x00E1  # LATIN SMALL LETTER A WITH ACUTE
0x88    0x00E0  # LATIN SMALL LETTER A WITH GRAVE
0x89    0x00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A    0x00E4  # LATIN SMALL LETTER A WITH DIAERESIS
0x8B    0x06BA  # ARABIC LETTER NOON GHUNNA
0x8C    <RL>+0x00AB     # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
0x8D    0x00E7  # LATIN SMALL LETTER C WITH CEDILLA
0x8E    0x00E9  # LATIN SMALL LETTER E WITH ACUTE
0x8F    0x00E8  # LATIN SMALL LETTER E WITH GRAVE
0x90    0x00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91    0x00EB  # LATIN SMALL LETTER E WITH DIAERESIS
0x92    0x00ED  # LATIN SMALL LETTER I WITH ACUTE
0x93    <RL>+0x2026     # HORIZONTAL ELLIPSIS, right-left
0x94    0x00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95    0x00EF  # LATIN SMALL LETTER I WITH DIAERESIS
0x96    0x00F1  # LATIN SMALL LETTER N WITH TILDE
0x97    0x00F3  # LATIN SMALL LETTER O WITH ACUTE
0x98    <RL>+0x00BB     # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
0x99    0x00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A    0x00F6  # LATIN SMALL LETTER O WITH DIAERESIS
0x9B    <RL>+0x00F7     # DIVISION SIGN, right-left
0x9C    0x00FA  # LATIN SMALL LETTER U WITH ACUTE
0x9D    0x00F9  # LATIN SMALL LETTER U WITH GRAVE
0x9E    0x00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F    0x00FC  # LATIN SMALL LETTER U WITH DIAERESIS
0xA0    <RL>+0x0020     # SPACE, right-left
0xA1    <RL>+0x0021     # EXCLAMATION MARK, right-left
0xA2    <RL>+0x0022     # QUOTATION MARK, right-left
0xA3    <RL>+0x0023     # NUMBER SIGN, right-left
0xA4    <RL>+0x0024     # DOLLAR SIGN, right-left
0xA5    0x066A  # ARABIC PERCENT SIGN
0xA6    <RL>+0x0026     # AMPERSAND, right-left
0xA7    <RL>+0x0027     # APOSTROPHE, right-left
0xA8    <RL>+0x0028     # LEFT PARENTHESIS, right-left
0xA9    <RL>+0x0029     # RIGHT PARENTHESIS, right-left
0xAA    <RL>+0x002A     # ASTERISK, right-left
0xAB    <RL>+0x002B     # PLUS SIGN, right-left
0xAC    0x060C  # ARABIC COMMA
0xAD    <RL>+0x002D     # HYPHEN-MINUS, right-left
0xAE    <RL>+0x002E     # FULL STOP, right-left
0xAF    <RL>+0x002F     # SOLIDUS, right-left
0xB0    <RL>+0x06F0     # EXTENDED ARABIC-INDIC DIGIT ZERO, right-left (need override)
0xB1    <RL>+0x06F1     # EXTENDED ARABIC-INDIC DIGIT ONE, right-left (need override)
0xB2    <RL>+0x06F2     # EXTENDED ARABIC-INDIC DIGIT TWO, right-left (need override)
0xB3    <RL>+0x06F3     # EXTENDED ARABIC-INDIC DIGIT THREE, right-left (need override)
0xB4    <RL>+0x06F4     # EXTENDED ARABIC-INDIC DIGIT FOUR, right-left (need override)
0xB5    <RL>+0x06F5     # EXTENDED ARABIC-INDIC DIGIT FIVE, right-left (need override)
0xB6    <RL>+0x06F6     # EXTENDED ARABIC-INDIC DIGIT SIX, right-left (need override)
0xB7    <RL>+0x06F7     # EXTENDED ARABIC-INDIC DIGIT SEVEN, right-left (need override)
0xB8    <RL>+0x06F8     # EXTENDED ARABIC-INDIC DIGIT EIGHT, right-left (need override)
0xB9    <RL>+0x06F9     # EXTENDED ARABIC-INDIC DIGIT NINE, right-left (need override)
0xBA    <RL>+0x003A     # COLON, right-left
0xBB    0x061B  # ARABIC SEMICOLON
0xBC    <RL>+0x003C     # LESS-THAN SIGN, right-left
0xBD    <RL>+0x003D     # EQUALS SIGN, right-left
0xBE    <RL>+0x003E     # GREATER-THAN SIGN, right-left
0xBF    0x061F  # ARABIC QUESTION MARK
0xC0    <RL>+0x274A     # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
0xC1    0x0621  # ARABIC LETTER HAMZA
0xC2    0x0622  # ARABIC LETTER ALEF WITH MADDA ABOVE
0xC3    0x0623  # ARABIC LETTER ALEF WITH HAMZA ABOVE
0xC4    0x0624  # ARABIC LETTER WAW WITH HAMZA ABOVE
0xC5    0x0625  # ARABIC LETTER ALEF WITH HAMZA BELOW
0xC6    0x0626  # ARABIC LETTER YEH WITH HAMZA ABOVE
0xC7    0x0627  # ARABIC LETTER ALEF
0xC8    0x0628  # ARABIC LETTER BEH
0xC9    0x0629  # ARABIC LETTER TEH MARBUTA
0xCA    0x062A  # ARABIC LETTER TEH
0xCB    0x062B  # ARABIC LETTER THEH
0xCC    0x062C  # ARABIC LETTER JEEM
0xCD    0x062D  # ARABIC LETTER HAH
0xCE    0x062E  # ARABIC LETTER KHAH
0xCF    0x062F  # ARABIC LETTER DAL
0xD0    0x0630  # ARABIC LETTER THAL
0xD1    0x0631  # ARABIC LETTER REH
0xD2    0x0632  # ARABIC LETTER ZAIN
0xD3    0x0633  # ARABIC LETTER SEEN
0xD4    0x0634  # ARABIC LETTER SHEEN
0xD5    0x0635  # ARABIC LETTER SAD
0xD6    0x0636  # ARABIC LETTER DAD
0xD7    0x0637  # ARABIC LETTER TAH
0xD8    0x0638  # ARABIC LETTER ZAH
0xD9    0x0639  # ARABIC LETTER AIN
0xDA    0x063A  # ARABIC LETTER GHAIN
0xDB    <RL>+0x005B     # LEFT SQUARE BRACKET, right-left
0xDC    <RL>+0x005C     # REVERSE SOLIDUS, right-left
0xDD    <RL>+0x005D     # RIGHT SQUARE BRACKET, right-left
0xDE    <RL>+0x005E     # CIRCUMFLEX ACCENT, right-left
0xDF    <RL>+0x005F     # LOW LINE, right-left
0xE0    0x0640  # ARABIC TATWEEL
0xE1    0x0641  # ARABIC LETTER FEH
0xE2    0x0642  # ARABIC LETTER QAF
0xE3    0x0643  # ARABIC LETTER KAF
0xE4    0x0644  # ARABIC LETTER LAM
0xE5    0x0645  # ARABIC LETTER MEEM
0xE6    0x0646  # ARABIC LETTER NOON
0xE7    0x0647  # ARABIC LETTER HEH
0xE8    0x0648  # ARABIC LETTER WAW
0xE9    0x0649  # ARABIC LETTER ALEF MAKSURA
0xEA    0x064A  # ARABIC LETTER YEH
0xEB    0x064B  # ARABIC FATHATAN
0xEC    0x064C  # ARABIC DAMMATAN
0xED    0x064D  # ARABIC KASRATAN
0xEE    0x064E  # ARABIC FATHA
0xEF    0x064F  # ARABIC DAMMA
0xF0    0x0650  # ARABIC KASRA
0xF1    0x0651  # ARABIC SHADDA
0xF2    0x0652  # ARABIC SUKUN
0xF3    0x067E  # ARABIC LETTER PEH
0xF4    0x0679  # ARABIC LETTER TTEH
0xF5    0x0686  # ARABIC LETTER TCHEH
0xF6    0x06D5  # ARABIC LETTER AE
0xF7    0x06A4  # ARABIC LETTER VEH
0xF8    0x06AF  # ARABIC LETTER GAF
0xF9    0x0688  # ARABIC LETTER DDAL
0xFA    0x0691  # ARABIC LETTER RREH
0xFB    <RL>+0x007B     # LEFT CURLY BRACKET, right-left
0xFC    <RL>+0x007C     # VERTICAL LINE, right-left
0xFD    <RL>+0x007D     # RIGHT CURLY BRACKET, right-left
0xFE    0x0698  # ARABIC LETTER JEH
0xFF    0x06D2  # ARABIC LETTER YEH BARREE

"
! !

!CharacterEncoder::MAC_Farsi class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-farsi' )
! !

!CharacterEncoder::MAC_Greek class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/GREEK.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/GREEK.TXT

#=======================================================================
#   File name:  GREEK.TXT
#
#   Contents:   Map (external version) from Mac OS Greek
#               character set to Unicode 2.1 through Unicode 3.2
#
#   Copyright:  (c) 1995-2002 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#      b3,c1 2002-Dec-19    Update to match changes in Mac OS Greek
#                           encoding for Mac OS 9.2.2 and later.
#                           Update URLs, notes. Matches internal
#                           utom<b3>.
#       b02  1999-Sep-22    Update contact e-mail address. Matches
#                           internal utom<b1>, ufrm<b1>, and Text
#                           Encoding Converter version 1.5.
#       n06  1998-Feb-05    Update to match internal utom<n4>, ufrm<n17>,
#                           and Text Encoding Converter versions 1.3:
#                           Change mapping for 0xAF from U+0387 to its
#                           canonical decomposition, U+00B7. Also
#                           update header comments to new format.
#       n04  1995-Apr-15    First version (after fixing some typos).
#                           Matches internal ufrm<n7>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, 'Macintosh' can be used to refer to
#   Macintosh computers and 'Unicode' can be used to refer to the
#   Unicode standard.
#
#   Apple makes no warranty or representation, either express or
#   implied, with respect to these tables, their quality, accuracy, or
#   fitness for a particular purpose. In no event will Apple be liable
#   for direct, indirect, special, incidental, or consequential damages 
#   resulting from any defect or inaccuracy in this document or the
#   accompanying tables.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file 'README.TXT'.
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Greek code (in hex as 0xNN)
#     Column #2 is the corresponding Unicode (in hex as 0xNNNN)
#     Column #3 is a comment containing the Unicode name
#
#   The entries are in Mac OS Greek code order.
#
#   One of these mappings requires the use of a corporate character.
#   See the file 'CORPCHAR.TXT' and notes below.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Greek character set uses the standard control characters at
#   0x00-0x1F and 0x7F.
#
# Notes on Mac OS Greek:
# ----------------------
#
#   Although a Mac OS script code is defined for Greek (smGreek = 6),
#   the Greek localized system does not currently use it (the font
#   family IDs are in the Mac OS Roman range). To determine if the
#   Greek encoding is being used when the script code is smRoman (0),
#   you must check if the system region code is 20, verGreece.
#
#   The Mac OS Greek encoding is a superset of the repertoire of
#   ISO 8859-7 (although characters are not at the same code points),
#   except that LEFT & RIGHT SINGLE QUOTATION MARK replace the
#   MODIFIER LETTER REVERSED COMMA & APOSTROPHE (spacing versions of
#   Greek rough & smooth breathing marks) that are in ISO 8859-7.
#   The added characters in Mac OS Greek include more punctuation and
#   symbols and several accented Latin letters.
#
#   Before Mac OS 9.2.2, code point 0x9C was SOFT HYPHEN (U+00AD), and
#   code point 0xFF was undefined. In Mac OS 9.2.2 and later versions,
#   SOFT HYPHEN was moved to 0xFF, and code point 0x9C was changed to be
#   EURO SIGN (U+20AC); the standard Apple fonts are updated for Mac OS
#   9.2.2 to reflect this. There is a 'no Euro sign' variant of the Mac
#   OS Greek encoding that uses the older mapping; this can be used for
#   older fonts.
#
#   This 'no Euro sign' variant of Mac OS Greek was the character set
#   used by Mac OS Greek systems before 9.2.2 except for system 6.0.7,
#   which used a variant character set but was quickly replaced with
#   Greek system 6.0.7.1 using the no Euro sign' character set
#   documented here. Greek system 4.1 used a variant Greek set that had
#   ISO 8859-7 in 0xA0-0xFF (with some holes filled in with DTP
#   characters), and Mac OS Roman accented Roman letters in 0x80-0x9F.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version b02 to version b03/c01:
#
#   - The Mac OS Greek encoding changed for Mac OS 9.2.2 and later
#     as follows:
#     0x9C, changed from 0x00AD SOFT HYPHEN to 0x20AC EURO SIGN
#     0xFF, changed from undefined to 0x00AD SOFT HYPHEN
#
#   Changes from version n04 to version n06:
#
#   - Change mapping of 0xAF from U+0387 to its canonical
#     decomposition, U+00B7.
#
##################

0x20    0x0020  # SPACE
0x21    0x0021  # EXCLAMATION MARK
0x22    0x0022  # QUOTATION MARK
0x23    0x0023  # NUMBER SIGN
0x24    0x0024  # DOLLAR SIGN
0x25    0x0025  # PERCENT SIGN
0x26    0x0026  # AMPERSAND
0x27    0x0027  # APOSTROPHE
0x28    0x0028  # LEFT PARENTHESIS
0x29    0x0029  # RIGHT PARENTHESIS
0x2A    0x002A  # ASTERISK
0x2B    0x002B  # PLUS SIGN
0x2C    0x002C  # COMMA
0x2D    0x002D  # HYPHEN-MINUS
0x2E    0x002E  # FULL STOP
0x2F    0x002F  # SOLIDUS
0x30    0x0030  # DIGIT ZERO
0x31    0x0031  # DIGIT ONE
0x32    0x0032  # DIGIT TWO
0x33    0x0033  # DIGIT THREE
0x34    0x0034  # DIGIT FOUR
0x35    0x0035  # DIGIT FIVE
0x36    0x0036  # DIGIT SIX
0x37    0x0037  # DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT
0x39    0x0039  # DIGIT NINE
0x3A    0x003A  # COLON
0x3B    0x003B  # SEMICOLON
0x3C    0x003C  # LESS-THAN SIGN
0x3D    0x003D  # EQUALS SIGN
0x3E    0x003E  # GREATER-THAN SIGN
0x3F    0x003F  # QUESTION MARK
0x40    0x0040  # COMMERCIAL AT
0x41    0x0041  # LATIN CAPITAL LETTER A
0x42    0x0042  # LATIN CAPITAL LETTER B
0x43    0x0043  # LATIN CAPITAL LETTER C
0x44    0x0044  # LATIN CAPITAL LETTER D
0x45    0x0045  # LATIN CAPITAL LETTER E
0x46    0x0046  # LATIN CAPITAL LETTER F
0x47    0x0047  # LATIN CAPITAL LETTER G
0x48    0x0048  # LATIN CAPITAL LETTER H
0x49    0x0049  # LATIN CAPITAL LETTER I
0x4A    0x004A  # LATIN CAPITAL LETTER J
0x4B    0x004B  # LATIN CAPITAL LETTER K
0x4C    0x004C  # LATIN CAPITAL LETTER L
0x4D    0x004D  # LATIN CAPITAL LETTER M
0x4E    0x004E  # LATIN CAPITAL LETTER N
0x4F    0x004F  # LATIN CAPITAL LETTER O
0x50    0x0050  # LATIN CAPITAL LETTER P
0x51    0x0051  # LATIN CAPITAL LETTER Q
0x52    0x0052  # LATIN CAPITAL LETTER R
0x53    0x0053  # LATIN CAPITAL LETTER S
0x54    0x0054  # LATIN CAPITAL LETTER T
0x55    0x0055  # LATIN CAPITAL LETTER U
0x56    0x0056  # LATIN CAPITAL LETTER V
0x57    0x0057  # LATIN CAPITAL LETTER W
0x58    0x0058  # LATIN CAPITAL LETTER X
0x59    0x0059  # LATIN CAPITAL LETTER Y
0x5A    0x005A  # LATIN CAPITAL LETTER Z
0x5B    0x005B  # LEFT SQUARE BRACKET
0x5C    0x005C  # REVERSE SOLIDUS
0x5D    0x005D  # RIGHT SQUARE BRACKET
0x5E    0x005E  # CIRCUMFLEX ACCENT
0x5F    0x005F  # LOW LINE
0x60    0x0060  # GRAVE ACCENT
0x61    0x0061  # LATIN SMALL LETTER A
0x62    0x0062  # LATIN SMALL LETTER B
0x63    0x0063  # LATIN SMALL LETTER C
0x64    0x0064  # LATIN SMALL LETTER D
0x65    0x0065  # LATIN SMALL LETTER E
0x66    0x0066  # LATIN SMALL LETTER F
0x67    0x0067  # LATIN SMALL LETTER G
0x68    0x0068  # LATIN SMALL LETTER H
0x69    0x0069  # LATIN SMALL LETTER I
0x6A    0x006A  # LATIN SMALL LETTER J
0x6B    0x006B  # LATIN SMALL LETTER K
0x6C    0x006C  # LATIN SMALL LETTER L
0x6D    0x006D  # LATIN SMALL LETTER M
0x6E    0x006E  # LATIN SMALL LETTER N
0x6F    0x006F  # LATIN SMALL LETTER O
0x70    0x0070  # LATIN SMALL LETTER P
0x71    0x0071  # LATIN SMALL LETTER Q
0x72    0x0072  # LATIN SMALL LETTER R
0x73    0x0073  # LATIN SMALL LETTER S
0x74    0x0074  # LATIN SMALL LETTER T
0x75    0x0075  # LATIN SMALL LETTER U
0x76    0x0076  # LATIN SMALL LETTER V
0x77    0x0077  # LATIN SMALL LETTER W
0x78    0x0078  # LATIN SMALL LETTER X
0x79    0x0079  # LATIN SMALL LETTER Y
0x7A    0x007A  # LATIN SMALL LETTER Z
0x7B    0x007B  # LEFT CURLY BRACKET
0x7C    0x007C  # VERTICAL LINE
0x7D    0x007D  # RIGHT CURLY BRACKET
0x7E    0x007E  # TILDE
#
0x80    0x00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81    0x00B9  # SUPERSCRIPT ONE
0x82    0x00B2  # SUPERSCRIPT TWO
0x83    0x00C9  # LATIN CAPITAL LETTER E WITH ACUTE
0x84    0x00B3  # SUPERSCRIPT THREE
0x85    0x00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86    0x00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87    0x0385  # GREEK DIALYTIKA TONOS
0x88    0x00E0  # LATIN SMALL LETTER A WITH GRAVE
0x89    0x00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A    0x00E4  # LATIN SMALL LETTER A WITH DIAERESIS
0x8B    0x0384  # GREEK TONOS
0x8C    0x00A8  # DIAERESIS
0x8D    0x00E7  # LATIN SMALL LETTER C WITH CEDILLA
0x8E    0x00E9  # LATIN SMALL LETTER E WITH ACUTE
0x8F    0x00E8  # LATIN SMALL LETTER E WITH GRAVE
0x90    0x00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91    0x00EB  # LATIN SMALL LETTER E WITH DIAERESIS
0x92    0x00A3  # POUND SIGN
0x93    0x2122  # TRADE MARK SIGN
0x94    0x00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95    0x00EF  # LATIN SMALL LETTER I WITH DIAERESIS
0x96    0x2022  # BULLET
0x97    0x00BD  # VULGAR FRACTION ONE HALF
0x98    0x2030  # PER MILLE SIGN
0x99    0x00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A    0x00F6  # LATIN SMALL LETTER O WITH DIAERESIS
0x9B    0x00A6  # BROKEN BAR
0x9C    0x20AC  # EURO SIGN # before Mac OS 9.2.2, was SOFT HYPHEN
0x9D    0x00F9  # LATIN SMALL LETTER U WITH GRAVE
0x9E    0x00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F    0x00FC  # LATIN SMALL LETTER U WITH DIAERESIS
0xA0    0x2020  # DAGGER
0xA1    0x0393  # GREEK CAPITAL LETTER GAMMA
0xA2    0x0394  # GREEK CAPITAL LETTER DELTA
0xA3    0x0398  # GREEK CAPITAL LETTER THETA
0xA4    0x039B  # GREEK CAPITAL LETTER LAMDA
0xA5    0x039E  # GREEK CAPITAL LETTER XI
0xA6    0x03A0  # GREEK CAPITAL LETTER PI
0xA7    0x00DF  # LATIN SMALL LETTER SHARP S
0xA8    0x00AE  # REGISTERED SIGN
0xA9    0x00A9  # COPYRIGHT SIGN
0xAA    0x03A3  # GREEK CAPITAL LETTER SIGMA
0xAB    0x03AA  # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
0xAC    0x00A7  # SECTION SIGN
0xAD    0x2260  # NOT EQUAL TO
0xAE    0x00B0  # DEGREE SIGN
0xAF    0x00B7  # MIDDLE DOT
0xB0    0x0391  # GREEK CAPITAL LETTER ALPHA
0xB1    0x00B1  # PLUS-MINUS SIGN
0xB2    0x2264  # LESS-THAN OR EQUAL TO
0xB3    0x2265  # GREATER-THAN OR EQUAL TO
0xB4    0x00A5  # YEN SIGN
0xB5    0x0392  # GREEK CAPITAL LETTER BETA
0xB6    0x0395  # GREEK CAPITAL LETTER EPSILON
0xB7    0x0396  # GREEK CAPITAL LETTER ZETA
0xB8    0x0397  # GREEK CAPITAL LETTER ETA
0xB9    0x0399  # GREEK CAPITAL LETTER IOTA
0xBA    0x039A  # GREEK CAPITAL LETTER KAPPA
0xBB    0x039C  # GREEK CAPITAL LETTER MU
0xBC    0x03A6  # GREEK CAPITAL LETTER PHI
0xBD    0x03AB  # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
0xBE    0x03A8  # GREEK CAPITAL LETTER PSI
0xBF    0x03A9  # GREEK CAPITAL LETTER OMEGA
0xC0    0x03AC  # GREEK SMALL LETTER ALPHA WITH TONOS
0xC1    0x039D  # GREEK CAPITAL LETTER NU
0xC2    0x00AC  # NOT SIGN
0xC3    0x039F  # GREEK CAPITAL LETTER OMICRON
0xC4    0x03A1  # GREEK CAPITAL LETTER RHO
0xC5    0x2248  # ALMOST EQUAL TO
0xC6    0x03A4  # GREEK CAPITAL LETTER TAU
0xC7    0x00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8    0x00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC9    0x2026  # HORIZONTAL ELLIPSIS
0xCA    0x00A0  # NO-BREAK SPACE
0xCB    0x03A5  # GREEK CAPITAL LETTER UPSILON
0xCC    0x03A7  # GREEK CAPITAL LETTER CHI
0xCD    0x0386  # GREEK CAPITAL LETTER ALPHA WITH TONOS
0xCE    0x0388  # GREEK CAPITAL LETTER EPSILON WITH TONOS
0xCF    0x0153  # LATIN SMALL LIGATURE OE
0xD0    0x2013  # EN DASH
0xD1    0x2015  # HORIZONTAL BAR
0xD2    0x201C  # LEFT DOUBLE QUOTATION MARK
0xD3    0x201D  # RIGHT DOUBLE QUOTATION MARK
0xD4    0x2018  # LEFT SINGLE QUOTATION MARK
0xD5    0x2019  # RIGHT SINGLE QUOTATION MARK
0xD6    0x00F7  # DIVISION SIGN
0xD7    0x0389  # GREEK CAPITAL LETTER ETA WITH TONOS
0xD8    0x038A  # GREEK CAPITAL LETTER IOTA WITH TONOS
0xD9    0x038C  # GREEK CAPITAL LETTER OMICRON WITH TONOS
0xDA    0x038E  # GREEK CAPITAL LETTER UPSILON WITH TONOS
0xDB    0x03AD  # GREEK SMALL LETTER EPSILON WITH TONOS
0xDC    0x03AE  # GREEK SMALL LETTER ETA WITH TONOS
0xDD    0x03AF  # GREEK SMALL LETTER IOTA WITH TONOS
0xDE    0x03CC  # GREEK SMALL LETTER OMICRON WITH TONOS
0xDF    0x038F  # GREEK CAPITAL LETTER OMEGA WITH TONOS
0xE0    0x03CD  # GREEK SMALL LETTER UPSILON WITH TONOS
0xE1    0x03B1  # GREEK SMALL LETTER ALPHA
0xE2    0x03B2  # GREEK SMALL LETTER BETA
0xE3    0x03C8  # GREEK SMALL LETTER PSI
0xE4    0x03B4  # GREEK SMALL LETTER DELTA
0xE5    0x03B5  # GREEK SMALL LETTER EPSILON
0xE6    0x03C6  # GREEK SMALL LETTER PHI
0xE7    0x03B3  # GREEK SMALL LETTER GAMMA
0xE8    0x03B7  # GREEK SMALL LETTER ETA
0xE9    0x03B9  # GREEK SMALL LETTER IOTA
0xEA    0x03BE  # GREEK SMALL LETTER XI
0xEB    0x03BA  # GREEK SMALL LETTER KAPPA
0xEC    0x03BB  # GREEK SMALL LETTER LAMDA
0xED    0x03BC  # GREEK SMALL LETTER MU
0xEE    0x03BD  # GREEK SMALL LETTER NU
0xEF    0x03BF  # GREEK SMALL LETTER OMICRON
0xF0    0x03C0  # GREEK SMALL LETTER PI
0xF1    0x03CE  # GREEK SMALL LETTER OMEGA WITH TONOS
0xF2    0x03C1  # GREEK SMALL LETTER RHO
0xF3    0x03C3  # GREEK SMALL LETTER SIGMA
0xF4    0x03C4  # GREEK SMALL LETTER TAU
0xF5    0x03B8  # GREEK SMALL LETTER THETA
0xF6    0x03C9  # GREEK SMALL LETTER OMEGA
0xF7    0x03C2  # GREEK SMALL LETTER FINAL SIGMA
0xF8    0x03C7  # GREEK SMALL LETTER CHI
0xF9    0x03C5  # GREEK SMALL LETTER UPSILON
0xFA    0x03B6  # GREEK SMALL LETTER ZETA
0xFB    0x03CA  # GREEK SMALL LETTER IOTA WITH DIALYTIKA
0xFC    0x03CB  # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
0xFD    0x0390  # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
0xFE    0x03B0  # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
0xFF    0x00AD  # SOFT HYPHEN # before Mac OS 9.2.2, was undefined

"
! !

!CharacterEncoder::MAC_Greek class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-greek' )
! !

!CharacterEncoder::MAC_Greek methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16r1F ifTrue:[
        ^ self decodingError.
    ].
    code <= 16r7E ifTrue:[ ^ code ].
    code > 16rFF ifTrue:[
        ^ self decodingError.
    ].
    [
        |t|
        t := #(
           "16r007F"    16r0000 " invalid " 
           "16r0080"    16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
           "16r0081"    16r00B9 " SUPERSCRIPT ONE " 
           "16r0082"    16r00B2 " SUPERSCRIPT TWO " 
           "16r0083"    16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE " 
           "16r0084"    16r00B3 " SUPERSCRIPT THREE " 
           "16r0085"    16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
           "16r0086"    16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS " 
           "16r0087"    16r0385 " GREEK DIALYTIKA TONOS " 
           "16r0088"    16r00E0 " LATIN SMALL LETTER A WITH GRAVE " 
           "16r0089"    16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
           "16r008A"    16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS " 
           "16r008B"    16r0384 " GREEK TONOS " 
           "16r008C"    16r00A8 " DIAERESIS " 
           "16r008D"    16r00E7 " LATIN SMALL LETTER C WITH CEDILLA " 
           "16r008E"    16r00E9 " LATIN SMALL LETTER E WITH ACUTE " 
           "16r008F"    16r00E8 " LATIN SMALL LETTER E WITH GRAVE " 
           "16r0090"    16r00EA " LATIN SMALL LETTER E WITH CIRCUMFLEX " 
           "16r0091"    16r00EB " LATIN SMALL LETTER E WITH DIAERESIS " 
           "16r0092"    16r00A3 " POUND SIGN " 
           "16r0093"    16r2122 " TRADE MARK SIGN " 
           "16r0094"    16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
           "16r0095"    16r00EF " LATIN SMALL LETTER I WITH DIAERESIS " 
           "16r0096"    16r2022 " BULLET " 
           "16r0097"    16r00BD " VULGAR FRACTION ONE HALF " 
           "16r0098"    16r2030 " PER MILLE SIGN " 
           "16r0099"    16r00F4 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
           "16r009A"    16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS " 
           "16r009B"    16r00A6 " BROKEN BAR " 
           "16r009C"    16r20AC " EURO SIGN # before Mac OS 9.2.2, was SOFT HYPHEN " 
           "16r009D"    16r00F9 " LATIN SMALL LETTER U WITH GRAVE " 
           "16r009E"    16r00FB " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
           "16r009F"    16r00FC " LATIN SMALL LETTER U WITH DIAERESIS " 
           "16r00A0"    16r2020 " DAGGER " 
           "16r00A1"    16r0393 " GREEK CAPITAL LETTER GAMMA " 
           "16r00A2"    16r0394 " GREEK CAPITAL LETTER DELTA " 
           "16r00A3"    16r0398 " GREEK CAPITAL LETTER THETA " 
           "16r00A4"    16r039B " GREEK CAPITAL LETTER LAMDA " 
           "16r00A5"    16r039E " GREEK CAPITAL LETTER XI " 
           "16r00A6"    16r03A0 " GREEK CAPITAL LETTER PI " 
           "16r00A7"    16r00DF " LATIN SMALL LETTER SHARP S " 
           "16r00A8"    16r00AE " REGISTERED SIGN " 
           "16r00A9"    16r00A9 " COPYRIGHT SIGN " 
           "16r00AA"    16r03A3 " GREEK CAPITAL LETTER SIGMA " 
           "16r00AB"    16r03AA " GREEK CAPITAL LETTER IOTA WITH DIALYTIKA " 
           "16r00AC"    16r00A7 " SECTION SIGN " 
           "16r00AD"    16r2260 " NOT EQUAL TO " 
           "16r00AE"    16r00B0 " DEGREE SIGN " 
           "16r00AF"    16r00B7 " MIDDLE DOT " 
           "16r00B0"    16r0391 " GREEK CAPITAL LETTER ALPHA " 
           "16r00B1"    16r00B1 " PLUS-MINUS SIGN " 
           "16r00B2"    16r2264 " LESS-THAN OR EQUAL TO " 
           "16r00B3"    16r2265 " GREATER-THAN OR EQUAL TO " 
           "16r00B4"    16r00A5 " YEN SIGN " 
           "16r00B5"    16r0392 " GREEK CAPITAL LETTER BETA " 
           "16r00B6"    16r0395 " GREEK CAPITAL LETTER EPSILON " 
           "16r00B7"    16r0396 " GREEK CAPITAL LETTER ZETA " 
           "16r00B8"    16r0397 " GREEK CAPITAL LETTER ETA " 
           "16r00B9"    16r0399 " GREEK CAPITAL LETTER IOTA " 
           "16r00BA"    16r039A " GREEK CAPITAL LETTER KAPPA " 
           "16r00BB"    16r039C " GREEK CAPITAL LETTER MU " 
           "16r00BC"    16r03A6 " GREEK CAPITAL LETTER PHI " 
           "16r00BD"    16r03AB " GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA " 
           "16r00BE"    16r03A8 " GREEK CAPITAL LETTER PSI " 
           "16r00BF"    16r03A9 " GREEK CAPITAL LETTER OMEGA " 
           "16r00C0"    16r03AC " GREEK SMALL LETTER ALPHA WITH TONOS " 
           "16r00C1"    16r039D " GREEK CAPITAL LETTER NU " 
           "16r00C2"    16r00AC " NOT SIGN " 
           "16r00C3"    16r039F " GREEK CAPITAL LETTER OMICRON " 
           "16r00C4"    16r03A1 " GREEK CAPITAL LETTER RHO " 
           "16r00C5"    16r2248 " ALMOST EQUAL TO " 
           "16r00C6"    16r03A4 " GREEK CAPITAL LETTER TAU " 
           "16r00C7"    16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
           "16r00C8"    16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
           "16r00C9"    16r2026 " HORIZONTAL ELLIPSIS " 
           "16r00CA"    16r00A0 " NO-BREAK SPACE " 
           "16r00CB"    16r03A5 " GREEK CAPITAL LETTER UPSILON " 
           "16r00CC"    16r03A7 " GREEK CAPITAL LETTER CHI " 
           "16r00CD"    16r0386 " GREEK CAPITAL LETTER ALPHA WITH TONOS " 
           "16r00CE"    16r0388 " GREEK CAPITAL LETTER EPSILON WITH TONOS " 
           "16r00CF"    16r0153 " LATIN SMALL LIGATURE OE " 
           "16r00D0"    16r2013 " EN DASH " 
           "16r00D1"    16r2015 " HORIZONTAL BAR " 
           "16r00D2"    16r201C " LEFT DOUBLE QUOTATION MARK " 
           "16r00D3"    16r201D " RIGHT DOUBLE QUOTATION MARK " 
           "16r00D4"    16r2018 " LEFT SINGLE QUOTATION MARK " 
           "16r00D5"    16r2019 " RIGHT SINGLE QUOTATION MARK " 
           "16r00D6"    16r00F7 " DIVISION SIGN " 
           "16r00D7"    16r0389 " GREEK CAPITAL LETTER ETA WITH TONOS " 
           "16r00D8"    16r038A " GREEK CAPITAL LETTER IOTA WITH TONOS " 
           "16r00D9"    16r038C " GREEK CAPITAL LETTER OMICRON WITH TONOS " 
           "16r00DA"    16r038E " GREEK CAPITAL LETTER UPSILON WITH TONOS " 
           "16r00DB"    16r03AD " GREEK SMALL LETTER EPSILON WITH TONOS " 
           "16r00DC"    16r03AE " GREEK SMALL LETTER ETA WITH TONOS " 
           "16r00DD"    16r03AF " GREEK SMALL LETTER IOTA WITH TONOS " 
           "16r00DE"    16r03CC " GREEK SMALL LETTER OMICRON WITH TONOS " 
           "16r00DF"    16r038F " GREEK CAPITAL LETTER OMEGA WITH TONOS " 
           "16r00E0"    16r03CD " GREEK SMALL LETTER UPSILON WITH TONOS " 
           "16r00E1"    16r03B1 " GREEK SMALL LETTER ALPHA " 
           "16r00E2"    16r03B2 " GREEK SMALL LETTER BETA " 
           "16r00E3"    16r03C8 " GREEK SMALL LETTER PSI " 
           "16r00E4"    16r03B4 " GREEK SMALL LETTER DELTA " 
           "16r00E5"    16r03B5 " GREEK SMALL LETTER EPSILON " 
           "16r00E6"    16r03C6 " GREEK SMALL LETTER PHI " 
           "16r00E7"    16r03B3 " GREEK SMALL LETTER GAMMA " 
           "16r00E8"    16r03B7 " GREEK SMALL LETTER ETA " 
           "16r00E9"    16r03B9 " GREEK SMALL LETTER IOTA " 
           "16r00EA"    16r03BE " GREEK SMALL LETTER XI " 
           "16r00EB"    16r03BA " GREEK SMALL LETTER KAPPA " 
           "16r00EC"    16r03BB " GREEK SMALL LETTER LAMDA " 
           "16r00ED"    16r03BC " GREEK SMALL LETTER MU " 
           "16r00EE"    16r03BD " GREEK SMALL LETTER NU " 
           "16r00EF"    16r03BF " GREEK SMALL LETTER OMICRON " 
           "16r00F0"    16r03C0 " GREEK SMALL LETTER PI " 
           "16r00F1"    16r03CE " GREEK SMALL LETTER OMEGA WITH TONOS " 
           "16r00F2"    16r03C1 " GREEK SMALL LETTER RHO " 
           "16r00F3"    16r03C3 " GREEK SMALL LETTER SIGMA " 
           "16r00F4"    16r03C4 " GREEK SMALL LETTER TAU " 
           "16r00F5"    16r03B8 " GREEK SMALL LETTER THETA " 
           "16r00F6"    16r03C9 " GREEK SMALL LETTER OMEGA " 
           "16r00F7"    16r03C2 " GREEK SMALL LETTER FINAL SIGMA " 
           "16r00F8"    16r03C7 " GREEK SMALL LETTER CHI " 
           "16r00F9"    16r03C5 " GREEK SMALL LETTER UPSILON " 
           "16r00FA"    16r03B6 " GREEK SMALL LETTER ZETA " 
           "16r00FB"    16r03CA " GREEK SMALL LETTER IOTA WITH DIALYTIKA " 
           "16r00FC"    16r03CB " GREEK SMALL LETTER UPSILON WITH DIALYTIKA " 
           "16r00FD"    16r0390 " GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS " 
           "16r00FE"    16r03B0 " GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS " 
           "16r00FF"    16r00AD " SOFT HYPHEN # before Mac OS 9.2.2, was undefined " 
           ) at:(code - 16r7E).
        t == 0 ifFalse:[^ t].
        ^ self decodingError.
    ] value.
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16r1F ifTrue:[
        ^ self decodingError.
    ].
    unicode <= 16r7E ifTrue:[ ^ unicode ].
    unicode > 16r2265 ifTrue:[
        ^ self encodingError.
    ].
    unicode <= 16r9F ifTrue:[
        ^ self encodingError
    ].
    unicode <= 16r3CE ifTrue:[
        unicode <= 16r153 ifTrue:[
            unicode <= 16rFC ifTrue:[
                [
                    |t|
                    t := #[
                       "16r00A0"    16rCA " NO-BREAK SPACE " 
                       "16r00A1"    16r00 " invalid " 
                       "16r00A2"    16r00 " invalid " 
                       "16r00A3"    16r92 " POUND SIGN " 
                       "16r00A4"    16r00 " invalid " 
                       "16r00A5"    16rB4 " YEN SIGN " 
                       "16r00A6"    16r9B " BROKEN BAR " 
                       "16r00A7"    16rAC " SECTION SIGN " 
                       "16r00A8"    16r8C " DIAERESIS " 
                       "16r00A9"    16rA9 " COPYRIGHT SIGN " 
                       "16r00AA"    16r00 " invalid " 
                       "16r00AB"    16rC7 " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
                       "16r00AC"    16rC2 " NOT SIGN " 
                       "16r00AD"    16rFF " SOFT HYPHEN # before Mac OS 9.2.2, was undefined " 
                       "16r00AE"    16rA8 " REGISTERED SIGN " 
                       "16r00AF"    16r00 " invalid " 
                       "16r00B0"    16rAE " DEGREE SIGN " 
                       "16r00B1"    16rB1 " PLUS-MINUS SIGN " 
                       "16r00B2"    16r82 " SUPERSCRIPT TWO " 
                       "16r00B3"    16r84 " SUPERSCRIPT THREE " 
                       "16r00B4"    16r00 " invalid " 
                       "16r00B5"    16r00 " invalid " 
                       "16r00B6"    16r00 " invalid " 
                       "16r00B7"    16rAF " MIDDLE DOT " 
                       "16r00B8"    16r00 " invalid " 
                       "16r00B9"    16r81 " SUPERSCRIPT ONE " 
                       "16r00BA"    16r00 " invalid " 
                       "16r00BB"    16rC8 " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
                       "16r00BC"    16r00 " invalid " 
                       "16r00BD"    16r97 " VULGAR FRACTION ONE HALF " 
                       "16r00BE"    16r00 " invalid " 
                       "16r00BF"    16r00 " invalid " 
                       "16r00C0"    16r00 " invalid " 
                       "16r00C1"    16r00 " invalid " 
                       "16r00C2"    16r00 " invalid " 
                       "16r00C3"    16r00 " invalid " 
                       "16r00C4"    16r80 " LATIN CAPITAL LETTER A WITH DIAERESIS " 
                       "16r00C5"    16r00 " invalid " 
                       "16r00C6"    16r00 " invalid " 
                       "16r00C7"    16r00 " invalid " 
                       "16r00C8"    16r00 " invalid " 
                       "16r00C9"    16r83 " LATIN CAPITAL LETTER E WITH ACUTE " 
                       "16r00CA"    16r00 " invalid " 
                       "16r00CB"    16r00 " invalid " 
                       "16r00CC"    16r00 " invalid " 
                       "16r00CD"    16r00 " invalid " 
                       "16r00CE"    16r00 " invalid " 
                       "16r00CF"    16r00 " invalid " 
                       "16r00D0"    16r00 " invalid " 
                       "16r00D1"    16r00 " invalid " 
                       "16r00D2"    16r00 " invalid " 
                       "16r00D3"    16r00 " invalid " 
                       "16r00D4"    16r00 " invalid " 
                       "16r00D5"    16r00 " invalid " 
                       "16r00D6"    16r85 " LATIN CAPITAL LETTER O WITH DIAERESIS " 
                       "16r00D7"    16r00 " invalid " 
                       "16r00D8"    16r00 " invalid " 
                       "16r00D9"    16r00 " invalid " 
                       "16r00DA"    16r00 " invalid " 
                       "16r00DB"    16r00 " invalid " 
                       "16r00DC"    16r86 " LATIN CAPITAL LETTER U WITH DIAERESIS " 
                       "16r00DD"    16r00 " invalid " 
                       "16r00DE"    16r00 " invalid " 
                       "16r00DF"    16rA7 " LATIN SMALL LETTER SHARP S " 
                       "16r00E0"    16r88 " LATIN SMALL LETTER A WITH GRAVE " 
                       "16r00E1"    16r00 " invalid " 
                       "16r00E2"    16r89 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
                       "16r00E3"    16r00 " invalid " 
                       "16r00E4"    16r8A " LATIN SMALL LETTER A WITH DIAERESIS " 
                       "16r00E5"    16r00 " invalid " 
                       "16r00E6"    16r00 " invalid " 
                       "16r00E7"    16r8D " LATIN SMALL LETTER C WITH CEDILLA " 
                       "16r00E8"    16r8F " LATIN SMALL LETTER E WITH GRAVE " 
                       "16r00E9"    16r8E " LATIN SMALL LETTER E WITH ACUTE " 
                       "16r00EA"    16r90 " LATIN SMALL LETTER E WITH CIRCUMFLEX " 
                       "16r00EB"    16r91 " LATIN SMALL LETTER E WITH DIAERESIS " 
                       "16r00EC"    16r00 " invalid " 
                       "16r00ED"    16r00 " invalid " 
                       "16r00EE"    16r94 " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
                       "16r00EF"    16r95 " LATIN SMALL LETTER I WITH DIAERESIS " 
                       "16r00F0"    16r00 " invalid " 
                       "16r00F1"    16r00 " invalid " 
                       "16r00F2"    16r00 " invalid " 
                       "16r00F3"    16r00 " invalid " 
                       "16r00F4"    16r99 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
                       "16r00F5"    16r00 " invalid " 
                       "16r00F6"    16r9A " LATIN SMALL LETTER O WITH DIAERESIS " 
                       "16r00F7"    16rD6 " DIVISION SIGN " 
                       "16r00F8"    16r00 " invalid " 
                       "16r00F9"    16r9D " LATIN SMALL LETTER U WITH GRAVE " 
                       "16r00FA"    16r00 " invalid " 
                       "16r00FB"    16r9E " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
                       "16r00FC"    16r9F " LATIN SMALL LETTER U WITH DIAERESIS " 
                       ] at:(unicode - 16r9F).
                    t == 0 ifFalse:[^ t].
                    ^ self encodingError
                ] value.
            ].
            unicode <= 16r152 ifTrue:[
                ^ self encodingError
            ].
            ^  "16r0153" 16r00CF " LATIN SMALL LIGATURE OE " 
        ].
        unicode <= 16r383 ifTrue:[
            ^ self encodingError
        ].
        [
            |t|
            t := #[
               "16r0384"    16r8B " GREEK TONOS " 
               "16r0385"    16r87 " GREEK DIALYTIKA TONOS " 
               "16r0386"    16rCD " GREEK CAPITAL LETTER ALPHA WITH TONOS " 
               "16r0387"    16r00 " invalid " 
               "16r0388"    16rCE " GREEK CAPITAL LETTER EPSILON WITH TONOS " 
               "16r0389"    16rD7 " GREEK CAPITAL LETTER ETA WITH TONOS " 
               "16r038A"    16rD8 " GREEK CAPITAL LETTER IOTA WITH TONOS " 
               "16r038B"    16r00 " invalid " 
               "16r038C"    16rD9 " GREEK CAPITAL LETTER OMICRON WITH TONOS " 
               "16r038D"    16r00 " invalid " 
               "16r038E"    16rDA " GREEK CAPITAL LETTER UPSILON WITH TONOS " 
               "16r038F"    16rDF " GREEK CAPITAL LETTER OMEGA WITH TONOS " 
               "16r0390"    16rFD " GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS " 
               "16r0391"    16rB0 " GREEK CAPITAL LETTER ALPHA " 
               "16r0392"    16rB5 " GREEK CAPITAL LETTER BETA " 
               "16r0393"    16rA1 " GREEK CAPITAL LETTER GAMMA " 
               "16r0394"    16rA2 " GREEK CAPITAL LETTER DELTA " 
               "16r0395"    16rB6 " GREEK CAPITAL LETTER EPSILON " 
               "16r0396"    16rB7 " GREEK CAPITAL LETTER ZETA " 
               "16r0397"    16rB8 " GREEK CAPITAL LETTER ETA " 
               "16r0398"    16rA3 " GREEK CAPITAL LETTER THETA " 
               "16r0399"    16rB9 " GREEK CAPITAL LETTER IOTA " 
               "16r039A"    16rBA " GREEK CAPITAL LETTER KAPPA " 
               "16r039B"    16rA4 " GREEK CAPITAL LETTER LAMDA " 
               "16r039C"    16rBB " GREEK CAPITAL LETTER MU " 
               "16r039D"    16rC1 " GREEK CAPITAL LETTER NU " 
               "16r039E"    16rA5 " GREEK CAPITAL LETTER XI " 
               "16r039F"    16rC3 " GREEK CAPITAL LETTER OMICRON " 
               "16r03A0"    16rA6 " GREEK CAPITAL LETTER PI " 
               "16r03A1"    16rC4 " GREEK CAPITAL LETTER RHO " 
               "16r03A2"    16r00 " invalid " 
               "16r03A3"    16rAA " GREEK CAPITAL LETTER SIGMA " 
               "16r03A4"    16rC6 " GREEK CAPITAL LETTER TAU " 
               "16r03A5"    16rCB " GREEK CAPITAL LETTER UPSILON " 
               "16r03A6"    16rBC " GREEK CAPITAL LETTER PHI " 
               "16r03A7"    16rCC " GREEK CAPITAL LETTER CHI " 
               "16r03A8"    16rBE " GREEK CAPITAL LETTER PSI " 
               "16r03A9"    16rBF " GREEK CAPITAL LETTER OMEGA " 
               "16r03AA"    16rAB " GREEK CAPITAL LETTER IOTA WITH DIALYTIKA " 
               "16r03AB"    16rBD " GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA " 
               "16r03AC"    16rC0 " GREEK SMALL LETTER ALPHA WITH TONOS " 
               "16r03AD"    16rDB " GREEK SMALL LETTER EPSILON WITH TONOS " 
               "16r03AE"    16rDC " GREEK SMALL LETTER ETA WITH TONOS " 
               "16r03AF"    16rDD " GREEK SMALL LETTER IOTA WITH TONOS " 
               "16r03B0"    16rFE " GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS " 
               "16r03B1"    16rE1 " GREEK SMALL LETTER ALPHA " 
               "16r03B2"    16rE2 " GREEK SMALL LETTER BETA " 
               "16r03B3"    16rE7 " GREEK SMALL LETTER GAMMA " 
               "16r03B4"    16rE4 " GREEK SMALL LETTER DELTA " 
               "16r03B5"    16rE5 " GREEK SMALL LETTER EPSILON " 
               "16r03B6"    16rFA " GREEK SMALL LETTER ZETA " 
               "16r03B7"    16rE8 " GREEK SMALL LETTER ETA " 
               "16r03B8"    16rF5 " GREEK SMALL LETTER THETA " 
               "16r03B9"    16rE9 " GREEK SMALL LETTER IOTA " 
               "16r03BA"    16rEB " GREEK SMALL LETTER KAPPA " 
               "16r03BB"    16rEC " GREEK SMALL LETTER LAMDA " 
               "16r03BC"    16rED " GREEK SMALL LETTER MU " 
               "16r03BD"    16rEE " GREEK SMALL LETTER NU " 
               "16r03BE"    16rEA " GREEK SMALL LETTER XI " 
               "16r03BF"    16rEF " GREEK SMALL LETTER OMICRON " 
               "16r03C0"    16rF0 " GREEK SMALL LETTER PI " 
               "16r03C1"    16rF2 " GREEK SMALL LETTER RHO " 
               "16r03C2"    16rF7 " GREEK SMALL LETTER FINAL SIGMA " 
               "16r03C3"    16rF3 " GREEK SMALL LETTER SIGMA " 
               "16r03C4"    16rF4 " GREEK SMALL LETTER TAU " 
               "16r03C5"    16rF9 " GREEK SMALL LETTER UPSILON " 
               "16r03C6"    16rE6 " GREEK SMALL LETTER PHI " 
               "16r03C7"    16rF8 " GREEK SMALL LETTER CHI " 
               "16r03C8"    16rE3 " GREEK SMALL LETTER PSI " 
               "16r03C9"    16rF6 " GREEK SMALL LETTER OMEGA " 
               "16r03CA"    16rFB " GREEK SMALL LETTER IOTA WITH DIALYTIKA " 
               "16r03CB"    16rFC " GREEK SMALL LETTER UPSILON WITH DIALYTIKA " 
               "16r03CC"    16rDE " GREEK SMALL LETTER OMICRON WITH TONOS " 
               "16r03CD"    16rE0 " GREEK SMALL LETTER UPSILON WITH TONOS " 
               "16r03CE"    16rF1 " GREEK SMALL LETTER OMEGA WITH TONOS " 
               ] at:(unicode - 16r383).
            t == 0 ifFalse:[^ t].
            ^ self encodingError
        ] value.
    ].
    unicode <= 16r2012 ifTrue:[
        ^ self encodingError
    ].
    unicode <= 16r2122 ifTrue:[
        unicode <= 16r2030 ifTrue:[
            [
                |t|
                t := #[
                   "16r2013"    16rD0 " EN DASH " 
                   "16r2014"    16r00 " invalid " 
                   "16r2015"    16rD1 " HORIZONTAL BAR " 
                   "16r2016"    16r00 " invalid " 
                   "16r2017"    16r00 " invalid " 
                   "16r2018"    16rD4 " LEFT SINGLE QUOTATION MARK " 
                   "16r2019"    16rD5 " RIGHT SINGLE QUOTATION MARK " 
                   "16r201A"    16r00 " invalid " 
                   "16r201B"    16r00 " invalid " 
                   "16r201C"    16rD2 " LEFT DOUBLE QUOTATION MARK " 
                   "16r201D"    16rD3 " RIGHT DOUBLE QUOTATION MARK " 
                   "16r201E"    16r00 " invalid " 
                   "16r201F"    16r00 " invalid " 
                   "16r2020"    16rA0 " DAGGER " 
                   "16r2021"    16r00 " invalid " 
                   "16r2022"    16r96 " BULLET " 
                   "16r2023"    16r00 " invalid " 
                   "16r2024"    16r00 " invalid " 
                   "16r2025"    16r00 " invalid " 
                   "16r2026"    16rC9 " HORIZONTAL ELLIPSIS " 
                   "16r2027"    16r00 " invalid " 
                   "16r2028"    16r00 " invalid " 
                   "16r2029"    16r00 " invalid " 
                   "16r202A"    16r00 " invalid " 
                   "16r202B"    16r00 " invalid " 
                   "16r202C"    16r00 " invalid " 
                   "16r202D"    16r00 " invalid " 
                   "16r202E"    16r00 " invalid " 
                   "16r202F"    16r00 " invalid " 
                   "16r2030"    16r98 " PER MILLE SIGN " 
                   ] at:(unicode - 16r2012).
                t == 0 ifFalse:[^ t].
                ^ self encodingError
            ] value.
        ].
        unicode <= 16r20AB ifTrue:[
            ^ self encodingError
        ].
        unicode == 16r20AC ifTrue:[
            ^  "16r20AC" 16r009C " EURO SIGN # before Mac OS 9.2.2, was SOFT HYPHEN " 
        ].
        unicode <= 16r2121 ifTrue:[
            ^ self encodingError
        ].
        ^  "16r2122" 16r0093 " TRADE MARK SIGN " 
    ].
    unicode <= 16r2247 ifTrue:[
        ^ self encodingError
    ].
    unicode == 16r2248 ifTrue:[
        ^  "16r2248" 16r00C5 " ALMOST EQUAL TO " 
    ].
    unicode <= 16r225F ifTrue:[
        ^ self encodingError
    ].
    [
        |t|
        t := #[
           "16r2260"    16rAD " NOT EQUAL TO " 
           "16r2261"    16r00 " invalid " 
           "16r2262"    16r00 " invalid " 
           "16r2263"    16r00 " invalid " 
           "16r2264"    16rB2 " LESS-THAN OR EQUAL TO " 
           "16r2265"    16rB3 " GREATER-THAN OR EQUAL TO " 
           ] at:(unicode - 16r225F).
        t == 0 ifFalse:[^ t].
        ^ self encodingError
    ] value.
! !

!CharacterEncoder::MAC_Hebrew class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/HEBREW.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/HEBREW.TXT

#=======================================================================
#   File name:  HEBREW.TXT
#
#   Contents:   Map (external version) from Mac OS Hebrew
#               character set to Unicode 2.1 through Unicode 3.2.
#
#   Copyright:  (c) 1995-2002 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#      b3,c1 2002-Dec-19    Don't require left-right context for digits
#                                                       0x30-0x39. Change mapping of 0x81 to use
#                           decomposition. Reverse the mappings of 0xA8,
#                           0xA9. Update URLs, notes. Matches internal
#                           utom<b7>.
#       b02  1999-Sep-22    Update contact e-mail address. Matches
#                           internal utom<b1>, ufrm<b1>, and Text
#                           Encoding Converter version 1.5.
#       n03  1998-Feb-05    Show required Unicode character
#                           directionality in a different way. Update
#                           mappings for 0xC0 and 0xDE to use
#                           transcoding hints; matches internal utom<n6>,
#                           ufrm<n20>, and Text Encoding Converter
#                           version 1.3. Rewrite header comments.
#       n01  1995-Nov-15    First version. Matches internal ufrm<n8>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, 'Macintosh' can be used to refer to
#   Macintosh computers and 'Unicode' can be used to refer to the
#   Unicode standard.
#
#   Apple makes no warranty or representation, either express or
#   implied, with respect to these tables, their quality, accuracy, or
#   fitness for a particular purpose. In no event will Apple be liable
#   for direct, indirect, special, incidental, or consequential damages 
#   resulting from any defect or inaccuracy in this document or the
#   accompanying tables.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file 'README.TXT'.
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Hebrew code (in hex as 0xNN).
#     Column #2 is the corresponding Unicode or Unicode sequence (in
#       hex as 0xNNNN, 0xNNNN+0xNNNN, etc.). Sequences of up to 5
#       Unicode characters are used here. A single Unicode character
#       may be preceded by a tag indicating required directionality
#       (i.e. <LR>+0xNNNN or <RL>+0xNNNN).
#     Column #3 is a comment containing the Unicode name.
#
#   The entries are in Mac OS Hebrew code order.
#
#   Some of these mappings require the use of corporate characters.
#   See the file 'CORPCHAR.TXT' and notes below.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Roman character set uses the standard control characters at
#   0x00-0x1F and 0x7F.
#
# Notes on Mac OS Hebrew:
# -----------------------
#
#   1. General
#
#   The Mac OS Hebrew character set supports the Hebrew and Yiddish
#   languages. It incorporates the Hebrew letter repertoire of
#   ISO 8859-8, and uses the same code points for them, 0xE0-0xFA.
#   It also incorporates the ASCII character set. In addition, the
#   Mac OS Hebrew character set includes the following:
#
#   - Hebrew points (nikud marks) at 0xC6, 0xCB-0xCF and 0xD8-0xDF.
#     These are non-spacing combining marks. Note that the RAFE point
#     at 0xD8 is not displayed correctly in some fonts, and cannot be
#     typed using the keyboard layouts in the current Hebrew localized
#     systems. Also note: The character given in Unicode as QAMATS
#     (U+05B8) actually refers to two different sounds, depending on
#     context. For example, when ALEF is followed by QAMATS, the QAMATS
#     can actually refer to two different sounds depending on the
#     following letters. The Mac OS Hebrew character set separately
#     encodes these two sounds for the same graphic shape, as 'qamats'
#     (0xCB) and 'qamats qatan' (0xDE). The 'qamats' character is more
#     common, so it is mapped to the Unicode QAMATS; 'qamats qatan' can
#     only be used with a limited number of characters, and it is
#     mapped using a corporate-zone variant tag (see below).
#
#   - Various Hebrew ligatures at 0x81, 0xC0, 0xC7, 0xC8, 0xD6, and
#     0xD7. Also note that the Yiddish YOD YOD PATAH ligature at 0x81
#     is missing in some fonts.
#
#   - The NEW SHEQEL SIGN at 0xA6.
#
#       - Latin characters with diacritics at 0x80 and 0x82-0x9F. However,
#     most of these cannot be typed using the keyboard layouts in the
#     Hebrew localized systems.
#
#   - Right-left versions of certain ASCII punctuation, symbols and
#     digits: 0xA0-0xA5, 0xA7-0xBF, 0xFB-0xFF. See below.
#
#   - Miscellaneous additional punctuation at 0xC1, 0xC9, 0xCA, and
#     0xD0-0xD5. There is a variant of the Hebrew encoding in which
#     the LEFT SINGLE QUOTATION MARK at 0xD4 is replaced by FIGURE
#     SPACE. The glyphs for some of the other punctuation characters
#     are missing in some fonts.
#
#   - Four obsolete characters at 0xC2-0xC5 known as canorals (not to
#     be confused with cantillation marks!!). These were used for
#     manual positioning of nikud marks before System 7.1 (at which
#     point nikud positioning became automatic with WorldScript.).
#
#   2. Directional characters and roundtrip fidelity
#
#   The Mac OS Hebrew character set was developed around 1987. At that
#   time the bidirectional line line layout algorithm used in the Mac OS
#   Hebrew system was fairly simple; it used only a few direction
#   classes (instead of the 19 now used in the Unicode bidirectional
#   algorithm). In order to permit users to handle some tricky layou
#   problems, certain punctuation, symbol, and digit characters have
#   duplicate code points, one with a left-right direction attribute and
#   the other with a right-left direction attribute.
#
#   For example, plus sign is encoded at 0x2B with a left-right
#   attribute, and at 0xAB with a right-left attribute. However, there
#   is only one PLUS SIGN character in Unicode. This leads to some
#   interesting problems when mapping between Mac OS Hebrew and Unicode;
#   see below.
#
#   A related problem is that even when a particular character is
#   encoded only once in Mac OS Hebrew, it may have a different
#   direction attribute than the corresponding Unicode character.
#
#   For example, the Mac OS Hebrew character at 0xC9 is HORIZONTAL
#   ELLIPSIS with strong right-left direction. However, the Unicode
#   character HORIZONTAL ELLIPSIS has direction class neutral.
#
#   3. Font variants
#
#   The table in this file gives the Unicode mappings for the standard
#   Mac OS Hebrew encoding. This encoding is supported by many of the
#   Apple fonts (including all of the fonts in the Hebrew Language Kit),
#   and is the encoding supported by the text processing utilities.
#   However, some TrueType fonts provided with the localized Hebrew
#   system implement a slightly different encoding; the difference is
#   only in one code point, 0xD4. For the standard variant, this is:
#     0xD4 -> <RL>+0x2018  LEFT SINGLE QUOTATION MARK, right-left
#
#   The TrueType variant is used by the following TrueType fonts from
#   the localized system: Caesarea, Carmel Book, Gilboa, Ramat Sharon,
#   and Sinai Book. For these, 0xD4 is as follows:
#     0xD4 -> <RL>+0x2007  FIGURE SPACE, right-left
#
# Unicode mapping issues and notes:
# ---------------------------------
#
#   1. Matching the direction of Mac OS Hebrew characters
#
#   When Mac OS Hebrew encodes a character twice but with different
#   direction attributes for the two code points - as in the case of
#   plus sign mentioned above - we need a way to map both Mac OS Hebrew
#   code points to Unicode and back again without loss of information.
#   With the plus sign, for example, mapping one of the Mac OS Hebrew
#   characters to a code in the Unicode corporate use zone is
#   undesirable, since both of the plus sign characters are likely to
#   be used in text that is interchanged.
#
#   The problem is solved with the use of direction override characters
#   and direction-dependent mappings. When mapping from Mac OS Hebrew
#   to Unicode, we use direction overrides as necessary to force the
#   direction of the resulting Unicode characters.
#
#   The required direction is indicated by a direction tag in the
#   mappings. A tag of <LR> means the corresponding Unicode character
#   must have a strong left-right context, and a tag of <RL> indicates
#   a right-left context.
#
#   For example, the mapping of 0x2B is given as <LR>+0x002B; the
#   mapping of 0xAB is given as <RL>+0x002B. If we map an isolated
#   instance of 0x2B to Unicode, it should be mapped as follows (LRO
#   indicates LEFT-RIGHT OVERRIDE, PDF indicates POP DIRECTION
#   FORMATTING):
#
#     0x2B ->  0x202D (LRO) + 0x002B (PLUS SIGN) + 0x202C (PDF)
#
#   When mapping several characters in a row that require direction
#   forcing, the overrides need only be used at the beginning and end.
#   For example:
#
#     0x24 0x20 0x28 0x29 -> 0x202D 0x0024 0x0020 0x0028 0x0029 0x202C
#
#   If neutral characters that require direction forcing are already
#   between strong-direction characters with matching directionality,
#   then direction overrides need not be used. Direction overrides are
#   always needed to map the right-left digits at 0xB0-0xB9.
#
#   When mapping from Unicode to Mac OS Hebrew, the Unicode
#   bidirectional algorithm should be used to determine resolved
#   direction of the Unicode characters. The mapping from Unicode to
#   Mac OS Hebrew can then be disambiguated by the use of the resolved
#   direction:
#
#     Unicode 0x002B -> Mac OS Hebrew 0x2B (if L) or 0xAB (if R)
#
#   However, this also means the direction override characters should
#   be discarded when mapping from Unicode to Mac OS Hebrew (after
#   they have been used to determine resolved direction), since the
#   direction override information is carried by the code point itself.
#
#   Even when direction overrides are not needed for roundtrip
#   fidelity, they are sometimes used when mapping Mac OS Hebrew
#   characters to Unicode in order to achieve similar text layout with
#   the resulting Unicode text. For example, the single Mac OS Hebrew
#   ellipsis character has direction class right-left,and there is no
#   left-right version. However, the Unicode HORIZONTAL ELLIPSIS
#   character has direction class neutral (which means it may end up
#   with a resolved direction of left-right if surrounded by left-right
#   characters). When mapping the Mac OS Hebrew ellipsis to Unicode, it
#   is surrounded with a direction override to help preserve proper
#   text layout. The resolved direction is not needed or used when
#   mapping the Unicode HORIZONTAL ELLIPSIS back to Mac OS Hebrew.
#
#   2. Use of corporate-zone Unicodes
#
#   The goals in the mappings provided here are:
#   - Ensure roundtrip mapping from every character in the Mac OS
#     Hebrew character set to Unicode and back
#   - Use standard Unicode characters as much as possible, to
#     maximize interchangeability of the resulting Unicode text.
#     Whenever possible, avoid having content carried by private-use
#     characters.
#
#   Some of the characters in the Mac OS Hebrew character set do not
#   correspond to distinct, single Unicode characters. To map these
#   and satisfy both goals above, we employ various strategies.
#
#   a) If possible, use private use characters in combination with
#   standard Unicode characters to mark variants of the standard
#   Unicode character.
#
#   Apple has defined a block of 32 corporate characters as 'transcoding
#   hints.' These are used in combination with standard Unicode characters
#   to force them to be treated in a special way for mapping to other
#   encodings; they have no other effect. Sixteen of these transcoding
#   hints are 'grouping hints' - they indicate that the next 2-4 Unicode
#   characters should be treated as a single entity for transcoding. The
#   other sixteen transcoding hints are 'variant tags' - they are like
#   combining characters, and can follow a standard Unicode (or a sequence
#   consisting of a base character and other combining characters) to
#   cause it to be treated in a special way for transcoding. These always
#   terminate a combining-character sequence.
#
#   Two transcoding hints are used in this mapping table: a grouping hint
#   and a variant tag:
#   hint:
#     0xF86A  group next 2 characters, right-left directionality
#     0xF87F  variant tag
#
#   In Mac OS Hebrew, 0xC0 is a ligature for lamed holam. This can also
#   be represented in Mac OS Hebrew as 0xEC+0xDD, using separate
#   characters for lamed and holam. The latter sequence is mapped to
#   Unicode as 0x05DC+0x05B9, i.e. as the sequence HEBREW LETTER LAMED +
#   HEBREW POINT HOLAM. We want to map the ligature 0xC0 using the same
#   standard Unicode characters, but for round-trip fidelity we need to
#   distinguish it from the mapping of the sequence 0xEC+0xDD. Thus for
#   0xC0 we use a grouping hint, and map as follows:
#   
#     0xC0 -> 0xF86A+0x05DC+0x05B9
#
#   The variant tag is used for 'qamats qatan' to mark it as an alternate
#   for HEBREW POINT QAMATS, as follows:
#
#     0xDE -> 0x05B8+0xF87F
#
#   b) Otherwise, use private use characters by themselves to map Mac OS
#   Hebrew characters which  have no relationship to any standard Unicode
#   character.
#
#   The following additional corporate zone Unicode characters are used
#   for this purpose here (to map the obsolete 'canorals', see above):
#
#     0xF89B  Hebrew canoral 1
#     0xF89C  Hebrew canoral 2
#     0xF89D  Hebrew canoral 3
#     0xF89E  Hebrew canoral 4
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version b02 to version b03/c01:
#
#   - Stop specifying left-right context for digits 0x30-0x39, since the
#     corresponding Unicodes 0x0030-0x0039 already have left-right
#     directionality.
#
#   - Change mapping of 0x81 from 0xFB1F HEBREW LIGATURE YIDDISH YOD YOD
#     PATAH to its canonical decomposition 0x05F2+0x05B7 to improve
#     cross-platform compatibility (Windows doesn't handle 0xFB1F)
#
#   - Interchange the mappings of 0xA8 and 0xA9 to obtain the correct
#     open/close behavior; they work differently than in Mac Arabic.
#     The old mapping was
#         0xA8 <RL>+0x0028 # LEFT PARENTHESIS, right-left
#         0xA9 <RL>+0x0029 # RIGHT PARENTHESIS, right-left
#     and the new mapping is
#         0xA8 <RL>+0x0029 # RIGHT PARENTHESIS, right-left
#         0xA9 <RL>+0x0028 # LEFT PARENTHESIS, right-left
#
#   Changes from version n01 to version n03:
#
#   - Change mapping for 0xC0 from single corporate character to
#     grouping hint plus standard Unicodes
#
#   - Change mapping for 0xDE from single corporate character to
#     standard Unicode plus variant tag
#
##################

0x20    <LR>+0x0020     # SPACE, left-right
0x21    <LR>+0x0021     # EXCLAMATION MARK, left-right
0x22    <LR>+0x0022     # QUOTATION MARK, left-right
0x23    <LR>+0x0023     # NUMBER SIGN, left-right
0x24    <LR>+0x0024     # DOLLAR SIGN, left-right
0x25    <LR>+0x0025     # PERCENT SIGN, left-right
0x26    0x0026  # AMPERSAND
0x27    <LR>+0x0027     # APOSTROPHE, left-right
0x28    <LR>+0x0028     # LEFT PARENTHESIS, left-right
0x29    <LR>+0x0029     # RIGHT PARENTHESIS, left-right
0x2A    <LR>+0x002A     # ASTERISK, left-right
0x2B    <LR>+0x002B     # PLUS SIGN, left-right
0x2C    <LR>+0x002C     # COMMA, left-right
0x2D    <LR>+0x002D     # HYPHEN-MINUS, left-right
0x2E    <LR>+0x002E     # FULL STOP, left-right
0x2F    <LR>+0x002F     # SOLIDUS, left-right
0x30    0x0030  # DIGIT ZERO
0x31    0x0031  # DIGIT ONE
0x32    0x0032  # DIGIT TWO
0x33    0x0033  # DIGIT THREE
0x34    0x0034  # DIGIT FOUR
0x35    0x0035  # DIGIT FIVE
0x36    0x0036  # DIGIT SIX
0x37    0x0037  # DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT
0x39    0x0039  # DIGIT NINE
0x3A    <LR>+0x003A     # COLON, left-right
0x3B    <LR>+0x003B     # SEMICOLON, left-right
0x3C    <LR>+0x003C     # LESS-THAN SIGN, left-right
0x3D    <LR>+0x003D     # EQUALS SIGN, left-right
0x3E    <LR>+0x003E     # GREATER-THAN SIGN, left-right
0x3F    <LR>+0x003F     # QUESTION MARK, left-right
0x40    0x0040  # COMMERCIAL AT
0x41    0x0041  # LATIN CAPITAL LETTER A
0x42    0x0042  # LATIN CAPITAL LETTER B
0x43    0x0043  # LATIN CAPITAL LETTER C
0x44    0x0044  # LATIN CAPITAL LETTER D
0x45    0x0045  # LATIN CAPITAL LETTER E
0x46    0x0046  # LATIN CAPITAL LETTER F
0x47    0x0047  # LATIN CAPITAL LETTER G
0x48    0x0048  # LATIN CAPITAL LETTER H
0x49    0x0049  # LATIN CAPITAL LETTER I
0x4A    0x004A  # LATIN CAPITAL LETTER J
0x4B    0x004B  # LATIN CAPITAL LETTER K
0x4C    0x004C  # LATIN CAPITAL LETTER L
0x4D    0x004D  # LATIN CAPITAL LETTER M
0x4E    0x004E  # LATIN CAPITAL LETTER N
0x4F    0x004F  # LATIN CAPITAL LETTER O
0x50    0x0050  # LATIN CAPITAL LETTER P
0x51    0x0051  # LATIN CAPITAL LETTER Q
0x52    0x0052  # LATIN CAPITAL LETTER R
0x53    0x0053  # LATIN CAPITAL LETTER S
0x54    0x0054  # LATIN CAPITAL LETTER T
0x55    0x0055  # LATIN CAPITAL LETTER U
0x56    0x0056  # LATIN CAPITAL LETTER V
0x57    0x0057  # LATIN CAPITAL LETTER W
0x58    0x0058  # LATIN CAPITAL LETTER X
0x59    0x0059  # LATIN CAPITAL LETTER Y
0x5A    0x005A  # LATIN CAPITAL LETTER Z
0x5B    <LR>+0x005B     # LEFT SQUARE BRACKET, left-right
0x5C    0x005C  # REVERSE SOLIDUS
0x5D    <LR>+0x005D     # RIGHT SQUARE BRACKET, left-right
0x5E    0x005E  # CIRCUMFLEX ACCENT
0x5F    0x005F  # LOW LINE
0x60    0x0060  # GRAVE ACCENT
0x61    0x0061  # LATIN SMALL LETTER A
0x62    0x0062  # LATIN SMALL LETTER B
0x63    0x0063  # LATIN SMALL LETTER C
0x64    0x0064  # LATIN SMALL LETTER D
0x65    0x0065  # LATIN SMALL LETTER E
0x66    0x0066  # LATIN SMALL LETTER F
0x67    0x0067  # LATIN SMALL LETTER G
0x68    0x0068  # LATIN SMALL LETTER H
0x69    0x0069  # LATIN SMALL LETTER I
0x6A    0x006A  # LATIN SMALL LETTER J
0x6B    0x006B  # LATIN SMALL LETTER K
0x6C    0x006C  # LATIN SMALL LETTER L
0x6D    0x006D  # LATIN SMALL LETTER M
0x6E    0x006E  # LATIN SMALL LETTER N
0x6F    0x006F  # LATIN SMALL LETTER O
0x70    0x0070  # LATIN SMALL LETTER P
0x71    0x0071  # LATIN SMALL LETTER Q
0x72    0x0072  # LATIN SMALL LETTER R
0x73    0x0073  # LATIN SMALL LETTER S
0x74    0x0074  # LATIN SMALL LETTER T
0x75    0x0075  # LATIN SMALL LETTER U
0x76    0x0076  # LATIN SMALL LETTER V
0x77    0x0077  # LATIN SMALL LETTER W
0x78    0x0078  # LATIN SMALL LETTER X
0x79    0x0079  # LATIN SMALL LETTER Y
0x7A    0x007A  # LATIN SMALL LETTER Z
0x7B    <LR>+0x007B     # LEFT CURLY BRACKET, left-right
0x7C    <LR>+0x007C     # VERTICAL LINE, left-right
0x7D    <LR>+0x007D     # RIGHT CURLY BRACKET, left-right
0x7E    0x007E  # TILDE
#
0x80    0x00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81    0x05F2+0x05B7   # HEBREW LIGATURE YIDDISH YOD YOD PATAH
0x82    0x00C7  # LATIN CAPITAL LETTER C WITH CEDILLA
0x83    0x00C9  # LATIN CAPITAL LETTER E WITH ACUTE
0x84    0x00D1  # LATIN CAPITAL LETTER N WITH TILDE
0x85    0x00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86    0x00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87    0x00E1  # LATIN SMALL LETTER A WITH ACUTE
0x88    0x00E0  # LATIN SMALL LETTER A WITH GRAVE
0x89    0x00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A    0x00E4  # LATIN SMALL LETTER A WITH DIAERESIS
0x8B    0x00E3  # LATIN SMALL LETTER A WITH TILDE
0x8C    0x00E5  # LATIN SMALL LETTER A WITH RING ABOVE
0x8D    0x00E7  # LATIN SMALL LETTER C WITH CEDILLA
0x8E    0x00E9  # LATIN SMALL LETTER E WITH ACUTE
0x8F    0x00E8  # LATIN SMALL LETTER E WITH GRAVE
0x90    0x00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91    0x00EB  # LATIN SMALL LETTER E WITH DIAERESIS
0x92    0x00ED  # LATIN SMALL LETTER I WITH ACUTE
0x93    0x00EC  # LATIN SMALL LETTER I WITH GRAVE
0x94    0x00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95    0x00EF  # LATIN SMALL LETTER I WITH DIAERESIS
0x96    0x00F1  # LATIN SMALL LETTER N WITH TILDE
0x97    0x00F3  # LATIN SMALL LETTER O WITH ACUTE
0x98    0x00F2  # LATIN SMALL LETTER O WITH GRAVE
0x99    0x00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A    0x00F6  # LATIN SMALL LETTER O WITH DIAERESIS
0x9B    0x00F5  # LATIN SMALL LETTER O WITH TILDE
0x9C    0x00FA  # LATIN SMALL LETTER U WITH ACUTE
0x9D    0x00F9  # LATIN SMALL LETTER U WITH GRAVE
0x9E    0x00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F    0x00FC  # LATIN SMALL LETTER U WITH DIAERESIS
0xA0    <RL>+0x0020     # SPACE, right-left
0xA1    <RL>+0x0021     # EXCLAMATION MARK, right-left
0xA2    <RL>+0x0022     # QUOTATION MARK, right-left
0xA3    <RL>+0x0023     # NUMBER SIGN, right-left
0xA4    <RL>+0x0024     # DOLLAR SIGN, right-left
0xA5    <RL>+0x0025     # PERCENT SIGN, right-left
0xA6    0x20AA  # NEW SHEQEL SIGN
0xA7    <RL>+0x0027     # APOSTROPHE, right-left
0xA8    <RL>+0x0029     # RIGHT PARENTHESIS, right-left
0xA9    <RL>+0x0028     # LEFT PARENTHESIS, right-left
0xAA    <RL>+0x002A     # ASTERISK, right-left
0xAB    <RL>+0x002B     # PLUS SIGN, right-left
0xAC    <RL>+0x002C     # COMMA, right-left
0xAD    <RL>+0x002D     # HYPHEN-MINUS, right-left
0xAE    <RL>+0x002E     # FULL STOP, right-left
0xAF    <RL>+0x002F     # SOLIDUS, right-left
0xB0    <RL>+0x0030     # DIGIT ZERO, right-left (need override)
0xB1    <RL>+0x0031     # DIGIT ONE, right-left (need override)
0xB2    <RL>+0x0032     # DIGIT TWO, right-left (need override)
0xB3    <RL>+0x0033     # DIGIT THREE, right-left (need override)
0xB4    <RL>+0x0034     # DIGIT FOUR, right-left (need override)
0xB5    <RL>+0x0035     # DIGIT FIVE, right-left (need override)
0xB6    <RL>+0x0036     # DIGIT SIX, right-left (need override)
0xB7    <RL>+0x0037     # DIGIT SEVEN, right-left (need override)
0xB8    <RL>+0x0038     # DIGIT EIGHT, right-left (need override)
0xB9    <RL>+0x0039     # DIGIT NINE, right-left (need override)
0xBA    <RL>+0x003A     # COLON, right-left
0xBB    <RL>+0x003B     # SEMICOLON, right-left
0xBC    <RL>+0x003C     # LESS-THAN SIGN, right-left
0xBD    <RL>+0x003D     # EQUALS SIGN, right-left
0xBE    <RL>+0x003E     # GREATER-THAN SIGN, right-left
0xBF    <RL>+0x003F     # QUESTION MARK, right-left
0xC0    0xF86A+0x05DC+0x05B9    # Hebrew ligature lamed holam
0xC1    <RL>+0x201E     # DOUBLE LOW-9 QUOTATION MARK, right-left
0xC2    0xF89B  # Hebrew canoral 1
0xC3    0xF89C  # Hebrew canoral 2
0xC4    0xF89D  # Hebrew canoral 3
0xC5    0xF89E  # Hebrew canoral 4
0xC6    0x05BC  # HEBREW POINT DAGESH OR MAPIQ
0xC7    0xFB4B  # HEBREW LETTER VAV WITH HOLAM
0xC8    0xFB35  # HEBREW LETTER VAV WITH DAGESH
0xC9    <RL>+0x2026     # HORIZONTAL ELLIPSIS, right-left
0xCA    <RL>+0x00A0     # NO-BREAK SPACE, right-left
0xCB    0x05B8  # HEBREW POINT QAMATS
0xCC    0x05B7  # HEBREW POINT PATAH
0xCD    0x05B5  # HEBREW POINT TSERE
0xCE    0x05B6  # HEBREW POINT SEGOL
0xCF    0x05B4  # HEBREW POINT HIRIQ
0xD0    <RL>+0x2013     # EN DASH, right-left
0xD1    <RL>+0x2014     # EM DASH, right-left
0xD2    <RL>+0x201C     # LEFT DOUBLE QUOTATION MARK, right-left
0xD3    <RL>+0x201D     # RIGHT DOUBLE QUOTATION MARK, right-left
0xD4    <RL>+0x2018     # LEFT SINGLE QUOTATION MARK, right-left
0xD5    <RL>+0x2019     # RIGHT SINGLE QUOTATION MARK, right-left
0xD6    0xFB2A  # HEBREW LETTER SHIN WITH SHIN DOT
0xD7    0xFB2B  # HEBREW LETTER SHIN WITH SIN DOT
0xD8    0x05BF  # HEBREW POINT RAFE
0xD9    0x05B0  # HEBREW POINT SHEVA
0xDA    0x05B2  # HEBREW POINT HATAF PATAH
0xDB    0x05B1  # HEBREW POINT HATAF SEGOL
0xDC    0x05BB  # HEBREW POINT QUBUTS
0xDD    0x05B9  # HEBREW POINT HOLAM
0xDE    0x05B8+0xF87F   # HEBREW POINT QAMATS, alternate form 'qamats qatan'
0xDF    0x05B3  # HEBREW POINT HATAF QAMATS
0xE0    0x05D0  # HEBREW LETTER ALEF
0xE1    0x05D1  # HEBREW LETTER BET
0xE2    0x05D2  # HEBREW LETTER GIMEL
0xE3    0x05D3  # HEBREW LETTER DALET
0xE4    0x05D4  # HEBREW LETTER HE
0xE5    0x05D5  # HEBREW LETTER VAV
0xE6    0x05D6  # HEBREW LETTER ZAYIN
0xE7    0x05D7  # HEBREW LETTER HET
0xE8    0x05D8  # HEBREW LETTER TET
0xE9    0x05D9  # HEBREW LETTER YOD
0xEA    0x05DA  # HEBREW LETTER FINAL KAF
0xEB    0x05DB  # HEBREW LETTER KAF
0xEC    0x05DC  # HEBREW LETTER LAMED
0xED    0x05DD  # HEBREW LETTER FINAL MEM
0xEE    0x05DE  # HEBREW LETTER MEM
0xEF    0x05DF  # HEBREW LETTER FINAL NUN
0xF0    0x05E0  # HEBREW LETTER NUN
0xF1    0x05E1  # HEBREW LETTER SAMEKH
0xF2    0x05E2  # HEBREW LETTER AYIN
0xF3    0x05E3  # HEBREW LETTER FINAL PE
0xF4    0x05E4  # HEBREW LETTER PE
0xF5    0x05E5  # HEBREW LETTER FINAL TSADI
0xF6    0x05E6  # HEBREW LETTER TSADI
0xF7    0x05E7  # HEBREW LETTER QOF
0xF8    0x05E8  # HEBREW LETTER RESH
0xF9    0x05E9  # HEBREW LETTER SHIN
0xFA    0x05EA  # HEBREW LETTER TAV
0xFB    <RL>+0x007D     # RIGHT CURLY BRACKET, right-left
0xFC    <RL>+0x005D     # RIGHT SQUARE BRACKET, right-left
0xFD    <RL>+0x007B     # LEFT CURLY BRACKET, right-left
0xFE    <RL>+0x005B     # LEFT SQUARE BRACKET, right-left
0xFF    <RL>+0x007C     # VERTICAL LINE, right-left

"
! !

!CharacterEncoder::MAC_Hebrew class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-hebrew' )
! !

!CharacterEncoder::MAC_Iceland class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/ICELAND.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ICELAND.TXT

#=======================================================================
#   File name:  ICELAND.TXT
#
#   Contents:   Map (external version) from Mac OS Icelandic
#               character set to Unicode 2.1 through Unicode 3.2
#
#   Copyright:  (c) 1995-2002 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#      b3,c1 2002-Dec-19    Update URLs, notes. Matches internal
#                           utom<b3>.
#       b02  1999-Sep-22    Encoding changed for Mac OS 8.5; change
#                           mapping of 0xDB from CURRENCY SIGN to EURO
#                           SIGN. Update contact e-mail address. Matches
#                           internal utom<b2>, ufrm<b2>, and Text
#                           Encoding Converter version 1.5.
#       n06  1998-Feb-05    Minor update to header comments, add
#                           information on font variants
#       n03  1997-Dec-14    Update to match internal utom<n4>, ufrm<n16>:
#                           Change standard mapping for 0xBD from U+2126
#                           to its canonical decomposition, U+03A9.
#       n02  1995-Apr-15    First version (after fixing some typos).
#                           Matches internal ufrm<n5>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, 'Macintosh' can be used to refer to
#   Macintosh computers and 'Unicode' can be used to refer to the
#   Unicode standard.
#
#   Apple makes no warranty or representation, either express or
#   implied, with respect to these tables, their quality, accuracy, or
#   fitness for a particular purpose. In no event will Apple be liable
#   for direct, indirect, special, incidental, or consequential damages 
#   resulting from any defect or inaccuracy in this document or the
#   accompanying tables.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file 'README.TXT'.
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Icelandic code (in hex as 0xNN)
#     Column #2 is the corresponding Unicode (in hex as 0xNNNN)
#     Column #3 is a comment containing the Unicode name
#
#   The entries are in Mac OS Icelandic code order.
#
#   One of these mappings requires the use of a corporate character.
#   See the file 'CORPCHAR.TXT' and notes below.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Roman character set uses the standard control characters at
#   0x00-0x1F and 0x7F.
#
# Notes on Mac OS Icelandic:
# --------------------------
#
#   1. General
#
#       Mac OS Icelandic is used for Icelandic and Faroese.
#
#   The Mac OS Icelandic encoding shares the script code smRoman
#   (0) with the standard Mac OS Roman encoding. To determine if
#   the Icelandic encoding is being used, you must also check if
#   the system region code is 21, verIceland.
#
#   This character set is a variant of standard Mac OS Roman,
#   adding upper and lower eth, thorn, and Y acute. It has 6 code
#   point differences from standard Mac OS Roman.
#
#   Before Mac OS 8.5, code point 0xDB was CURRENCY SIGN, and was
#   mapped to U+00A4. In Mac OS 8.5 and later versions, code point
#   0xDB is changed to EURO SIGN and maps to U+20AC; the standard
#   Apple fonts are updated for Mac OS 8.5 to reflect this. There are
#   'currency sign' variants of the Mac OS Icelandic encoding that
#   still map 0xDB to U+00A4; these can be used for older fonts.
#
#   2. Font variants
#
#   The table in this file gives the Unicode mappings for the standard
#   Mac OS Icelandic encoding. This encoding is supported by the
#   Icelandic versions of the fonts Chicago, Geneva, Monaco, and New
#   York, and is the encoding supported by the text processing
#   utilities. However, other TrueType fonts implement a slightly
#   different encoding; the difference is only in two code points.
#   For the standard variant, these are:
#     0xBB -> 0x00AA  FEMININE ORDINAL INDICATOR
#     0xBC -> 0x00BA  MASCULINE ORDINAL INDICATOR
#
#   For the TrueType variant (used by the Icelandic versions of the
#   fonts Courier, Helvetica, Palatino, and Times), these are:
#     0xBB -> 0xFB01  LATIN SMALL LIGATURE FI
#     0xBC -> 0xFB02  LATIN SMALL LIGATURE FL
#
# Unicode mapping issues and notes:
# ---------------------------------
#
#   The following corporate zone Unicode character is used in this
#   mapping:
#
#     0xF8FF  Apple logo
#
#   NOTE: The graphic image associated with the Apple logo character
#   is not authorized for use without permission of Apple, and
#   unauthorized use might constitute trademark infringement.
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version n06 to version b02:
#
#   - Encoding changed for Mac OS 8.5; change mapping of 0xDB from
#   CURRENCY SIGN (U+00A4) to EURO SIGN (U+20AC).
#
#   Changes from version n02 to version n03:
#
#   - Change mapping of 0xBD from U+2126 to its canonical
#     decomposition, U+03A9.
#
##################

0x20    0x0020  # SPACE
0x21    0x0021  # EXCLAMATION MARK
0x22    0x0022  # QUOTATION MARK
0x23    0x0023  # NUMBER SIGN
0x24    0x0024  # DOLLAR SIGN
0x25    0x0025  # PERCENT SIGN
0x26    0x0026  # AMPERSAND
0x27    0x0027  # APOSTROPHE
0x28    0x0028  # LEFT PARENTHESIS
0x29    0x0029  # RIGHT PARENTHESIS
0x2A    0x002A  # ASTERISK
0x2B    0x002B  # PLUS SIGN
0x2C    0x002C  # COMMA
0x2D    0x002D  # HYPHEN-MINUS
0x2E    0x002E  # FULL STOP
0x2F    0x002F  # SOLIDUS
0x30    0x0030  # DIGIT ZERO
0x31    0x0031  # DIGIT ONE
0x32    0x0032  # DIGIT TWO
0x33    0x0033  # DIGIT THREE
0x34    0x0034  # DIGIT FOUR
0x35    0x0035  # DIGIT FIVE
0x36    0x0036  # DIGIT SIX
0x37    0x0037  # DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT
0x39    0x0039  # DIGIT NINE
0x3A    0x003A  # COLON
0x3B    0x003B  # SEMICOLON
0x3C    0x003C  # LESS-THAN SIGN
0x3D    0x003D  # EQUALS SIGN
0x3E    0x003E  # GREATER-THAN SIGN
0x3F    0x003F  # QUESTION MARK
0x40    0x0040  # COMMERCIAL AT
0x41    0x0041  # LATIN CAPITAL LETTER A
0x42    0x0042  # LATIN CAPITAL LETTER B
0x43    0x0043  # LATIN CAPITAL LETTER C
0x44    0x0044  # LATIN CAPITAL LETTER D
0x45    0x0045  # LATIN CAPITAL LETTER E
0x46    0x0046  # LATIN CAPITAL LETTER F
0x47    0x0047  # LATIN CAPITAL LETTER G
0x48    0x0048  # LATIN CAPITAL LETTER H
0x49    0x0049  # LATIN CAPITAL LETTER I
0x4A    0x004A  # LATIN CAPITAL LETTER J
0x4B    0x004B  # LATIN CAPITAL LETTER K
0x4C    0x004C  # LATIN CAPITAL LETTER L
0x4D    0x004D  # LATIN CAPITAL LETTER M
0x4E    0x004E  # LATIN CAPITAL LETTER N
0x4F    0x004F  # LATIN CAPITAL LETTER O
0x50    0x0050  # LATIN CAPITAL LETTER P
0x51    0x0051  # LATIN CAPITAL LETTER Q
0x52    0x0052  # LATIN CAPITAL LETTER R
0x53    0x0053  # LATIN CAPITAL LETTER S
0x54    0x0054  # LATIN CAPITAL LETTER T
0x55    0x0055  # LATIN CAPITAL LETTER U
0x56    0x0056  # LATIN CAPITAL LETTER V
0x57    0x0057  # LATIN CAPITAL LETTER W
0x58    0x0058  # LATIN CAPITAL LETTER X
0x59    0x0059  # LATIN CAPITAL LETTER Y
0x5A    0x005A  # LATIN CAPITAL LETTER Z
0x5B    0x005B  # LEFT SQUARE BRACKET
0x5C    0x005C  # REVERSE SOLIDUS
0x5D    0x005D  # RIGHT SQUARE BRACKET
0x5E    0x005E  # CIRCUMFLEX ACCENT
0x5F    0x005F  # LOW LINE
0x60    0x0060  # GRAVE ACCENT
0x61    0x0061  # LATIN SMALL LETTER A
0x62    0x0062  # LATIN SMALL LETTER B
0x63    0x0063  # LATIN SMALL LETTER C
0x64    0x0064  # LATIN SMALL LETTER D
0x65    0x0065  # LATIN SMALL LETTER E
0x66    0x0066  # LATIN SMALL LETTER F
0x67    0x0067  # LATIN SMALL LETTER G
0x68    0x0068  # LATIN SMALL LETTER H
0x69    0x0069  # LATIN SMALL LETTER I
0x6A    0x006A  # LATIN SMALL LETTER J
0x6B    0x006B  # LATIN SMALL LETTER K
0x6C    0x006C  # LATIN SMALL LETTER L
0x6D    0x006D  # LATIN SMALL LETTER M
0x6E    0x006E  # LATIN SMALL LETTER N
0x6F    0x006F  # LATIN SMALL LETTER O
0x70    0x0070  # LATIN SMALL LETTER P
0x71    0x0071  # LATIN SMALL LETTER Q
0x72    0x0072  # LATIN SMALL LETTER R
0x73    0x0073  # LATIN SMALL LETTER S
0x74    0x0074  # LATIN SMALL LETTER T
0x75    0x0075  # LATIN SMALL LETTER U
0x76    0x0076  # LATIN SMALL LETTER V
0x77    0x0077  # LATIN SMALL LETTER W
0x78    0x0078  # LATIN SMALL LETTER X
0x79    0x0079  # LATIN SMALL LETTER Y
0x7A    0x007A  # LATIN SMALL LETTER Z
0x7B    0x007B  # LEFT CURLY BRACKET
0x7C    0x007C  # VERTICAL LINE
0x7D    0x007D  # RIGHT CURLY BRACKET
0x7E    0x007E  # TILDE
#
0x80    0x00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81    0x00C5  # LATIN CAPITAL LETTER A WITH RING ABOVE
0x82    0x00C7  # LATIN CAPITAL LETTER C WITH CEDILLA
0x83    0x00C9  # LATIN CAPITAL LETTER E WITH ACUTE
0x84    0x00D1  # LATIN CAPITAL LETTER N WITH TILDE
0x85    0x00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86    0x00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87    0x00E1  # LATIN SMALL LETTER A WITH ACUTE
0x88    0x00E0  # LATIN SMALL LETTER A WITH GRAVE
0x89    0x00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A    0x00E4  # LATIN SMALL LETTER A WITH DIAERESIS
0x8B    0x00E3  # LATIN SMALL LETTER A WITH TILDE
0x8C    0x00E5  # LATIN SMALL LETTER A WITH RING ABOVE
0x8D    0x00E7  # LATIN SMALL LETTER C WITH CEDILLA
0x8E    0x00E9  # LATIN SMALL LETTER E WITH ACUTE
0x8F    0x00E8  # LATIN SMALL LETTER E WITH GRAVE
0x90    0x00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91    0x00EB  # LATIN SMALL LETTER E WITH DIAERESIS
0x92    0x00ED  # LATIN SMALL LETTER I WITH ACUTE
0x93    0x00EC  # LATIN SMALL LETTER I WITH GRAVE
0x94    0x00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95    0x00EF  # LATIN SMALL LETTER I WITH DIAERESIS
0x96    0x00F1  # LATIN SMALL LETTER N WITH TILDE
0x97    0x00F3  # LATIN SMALL LETTER O WITH ACUTE
0x98    0x00F2  # LATIN SMALL LETTER O WITH GRAVE
0x99    0x00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A    0x00F6  # LATIN SMALL LETTER O WITH DIAERESIS
0x9B    0x00F5  # LATIN SMALL LETTER O WITH TILDE
0x9C    0x00FA  # LATIN SMALL LETTER U WITH ACUTE
0x9D    0x00F9  # LATIN SMALL LETTER U WITH GRAVE
0x9E    0x00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F    0x00FC  # LATIN SMALL LETTER U WITH DIAERESIS
0xA0    0x00DD  # LATIN CAPITAL LETTER Y WITH ACUTE
0xA1    0x00B0  # DEGREE SIGN
0xA2    0x00A2  # CENT SIGN
0xA3    0x00A3  # POUND SIGN
0xA4    0x00A7  # SECTION SIGN
0xA5    0x2022  # BULLET
0xA6    0x00B6  # PILCROW SIGN
0xA7    0x00DF  # LATIN SMALL LETTER SHARP S
0xA8    0x00AE  # REGISTERED SIGN
0xA9    0x00A9  # COPYRIGHT SIGN
0xAA    0x2122  # TRADE MARK SIGN
0xAB    0x00B4  # ACUTE ACCENT
0xAC    0x00A8  # DIAERESIS
0xAD    0x2260  # NOT EQUAL TO
0xAE    0x00C6  # LATIN CAPITAL LETTER AE
0xAF    0x00D8  # LATIN CAPITAL LETTER O WITH STROKE
0xB0    0x221E  # INFINITY
0xB1    0x00B1  # PLUS-MINUS SIGN
0xB2    0x2264  # LESS-THAN OR EQUAL TO
0xB3    0x2265  # GREATER-THAN OR EQUAL TO
0xB4    0x00A5  # YEN SIGN
0xB5    0x00B5  # MICRO SIGN
0xB6    0x2202  # PARTIAL DIFFERENTIAL
0xB7    0x2211  # N-ARY SUMMATION
0xB8    0x220F  # N-ARY PRODUCT
0xB9    0x03C0  # GREEK SMALL LETTER PI
0xBA    0x222B  # INTEGRAL
0xBB    0x00AA  # FEMININE ORDINAL INDICATOR
0xBC    0x00BA  # MASCULINE ORDINAL INDICATOR
0xBD    0x03A9  # GREEK CAPITAL LETTER OMEGA
0xBE    0x00E6  # LATIN SMALL LETTER AE
0xBF    0x00F8  # LATIN SMALL LETTER O WITH STROKE
0xC0    0x00BF  # INVERTED QUESTION MARK
0xC1    0x00A1  # INVERTED EXCLAMATION MARK
0xC2    0x00AC  # NOT SIGN
0xC3    0x221A  # SQUARE ROOT
0xC4    0x0192  # LATIN SMALL LETTER F WITH HOOK
0xC5    0x2248  # ALMOST EQUAL TO
0xC6    0x2206  # INCREMENT
0xC7    0x00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8    0x00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC9    0x2026  # HORIZONTAL ELLIPSIS
0xCA    0x00A0  # NO-BREAK SPACE
0xCB    0x00C0  # LATIN CAPITAL LETTER A WITH GRAVE
0xCC    0x00C3  # LATIN CAPITAL LETTER A WITH TILDE
0xCD    0x00D5  # LATIN CAPITAL LETTER O WITH TILDE
0xCE    0x0152  # LATIN CAPITAL LIGATURE OE
0xCF    0x0153  # LATIN SMALL LIGATURE OE
0xD0    0x2013  # EN DASH
0xD1    0x2014  # EM DASH
0xD2    0x201C  # LEFT DOUBLE QUOTATION MARK
0xD3    0x201D  # RIGHT DOUBLE QUOTATION MARK
0xD4    0x2018  # LEFT SINGLE QUOTATION MARK
0xD5    0x2019  # RIGHT SINGLE QUOTATION MARK
0xD6    0x00F7  # DIVISION SIGN
0xD7    0x25CA  # LOZENGE
0xD8    0x00FF  # LATIN SMALL LETTER Y WITH DIAERESIS
0xD9    0x0178  # LATIN CAPITAL LETTER Y WITH DIAERESIS
0xDA    0x2044  # FRACTION SLASH
0xDB    0x20AC  # EURO SIGN
0xDC    0x00D0  # LATIN CAPITAL LETTER ETH
0xDD    0x00F0  # LATIN SMALL LETTER ETH
0xDE    0x00DE  # LATIN CAPITAL LETTER THORN
0xDF    0x00FE  # LATIN SMALL LETTER THORN
0xE0    0x00FD  # LATIN SMALL LETTER Y WITH ACUTE
0xE1    0x00B7  # MIDDLE DOT
0xE2    0x201A  # SINGLE LOW-9 QUOTATION MARK
0xE3    0x201E  # DOUBLE LOW-9 QUOTATION MARK
0xE4    0x2030  # PER MILLE SIGN
0xE5    0x00C2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xE6    0x00CA  # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xE7    0x00C1  # LATIN CAPITAL LETTER A WITH ACUTE
0xE8    0x00CB  # LATIN CAPITAL LETTER E WITH DIAERESIS
0xE9    0x00C8  # LATIN CAPITAL LETTER E WITH GRAVE
0xEA    0x00CD  # LATIN CAPITAL LETTER I WITH ACUTE
0xEB    0x00CE  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xEC    0x00CF  # LATIN CAPITAL LETTER I WITH DIAERESIS
0xED    0x00CC  # LATIN CAPITAL LETTER I WITH GRAVE
0xEE    0x00D3  # LATIN CAPITAL LETTER O WITH ACUTE
0xEF    0x00D4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xF0    0xF8FF  # Apple logo
0xF1    0x00D2  # LATIN CAPITAL LETTER O WITH GRAVE
0xF2    0x00DA  # LATIN CAPITAL LETTER U WITH ACUTE
0xF3    0x00DB  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xF4    0x00D9  # LATIN CAPITAL LETTER U WITH GRAVE
0xF5    0x0131  # LATIN SMALL LETTER DOTLESS I
0xF6    0x02C6  # MODIFIER LETTER CIRCUMFLEX ACCENT
0xF7    0x02DC  # SMALL TILDE
0xF8    0x00AF  # MACRON
0xF9    0x02D8  # BREVE
0xFA    0x02D9  # DOT ABOVE
0xFB    0x02DA  # RING ABOVE
0xFC    0x00B8  # CEDILLA
0xFD    0x02DD  # DOUBLE ACUTE ACCENT
0xFE    0x02DB  # OGONEK
0xFF    0x02C7  # CARON

"
! !

!CharacterEncoder::MAC_Iceland class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-iceland' )
! !

!CharacterEncoder::MAC_Japanese class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/JAPANESE.TXT'
! !

!CharacterEncoder::MAC_Japanese class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-japanese' )
! !

!CharacterEncoder::MAC_Korean class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/KOREAN.TXT'
! !

!CharacterEncoder::MAC_Korean class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-korean' )
! !

!CharacterEncoder::MAC_Roman class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/ROMAN.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ROMAN.TXT

#=======================================================================
#   File name:  ROMAN.TXT
#
#   Contents:   Map (external version) from Mac OS Roman
#               character set to Unicode 2.1 through Unicode 3.2
#
#   Copyright:  (c) 1994-2002 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#      b4,c1 2002-Dec-19    Update URLs, notes. Matches internal
#                           utom<b5>.
#       b03  1999-Sep-22    Update contact e-mail address. Matches
#                           internal utom<b4>, ufrm<b3>, and Text
#                           Encoding Converter version 1.5.
#       b02  1998-Aug-18    Encoding changed for Mac OS 8.5; change
#                           mapping of 0xDB from CURRENCY SIGN to
#                           EURO SIGN. Matches internal utom<b3>,
#                           ufrm<b3>.
#       n08  1998-Feb-05    Minor update to header comments
#       n06  1997-Dec-14    Add warning about future changes to 0xDB
#                           from CURRENCY SIGN to EURO SIGN. Clarify
#                           some header information
#       n04  1997-Dec-01    Update to match internal utom<n3>, ufrm<n22>:
#                           Change standard mapping for 0xBD from U+2126
#                           to its canonical decomposition, U+03A9.
#       n03  1995-Apr-15    First version (after fixing some typos).
#                           Matches internal ufrm<n9>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, 'Macintosh' can be used to refer to
#   Macintosh computers and 'Unicode' can be used to refer to the
#   Unicode standard.
#
#   Apple makes no warranty or representation, either express or
#   implied, with respect to these tables, their quality, accuracy, or
#   fitness for a particular purpose. In no event will Apple be liable
#   for direct, indirect, special, incidental, or consequential damages 
#   resulting from any defect or inaccuracy in this document or the
#   accompanying tables.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file 'README.TXT'.
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Roman code (in hex as 0xNN)
#     Column #2 is the corresponding Unicode (in hex as 0xNNNN)
#     Column #3 is a comment containing the Unicode name
#
#   The entries are in Mac OS Roman code order.
#
#   One of these mappings requires the use of a corporate character.
#   See the file 'CORPCHAR.TXT' and notes below.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Roman character set uses the standard control characters at
#   0x00-0x1F and 0x7F.
#
# Notes on Mac OS Roman:
# ----------------------
#
#   This character set is used for at least the following Mac OS
#   localizations: U.S., British, Canadian French, French, Swiss
#   French, German, Swiss German, Italian, Swiss Italian, Dutch,
#   Swedish, Norwegian, Danish, Finnish, Spanish, Catalan,
#   Portuguese, Brazilian, and the default International system.
#
#   Variants of Mac OS Roman are used for Croatian, Icelandic,
#   Turkish, Romanian, and other encodings. Separate mapping tables
#   are available for these encodings.
#
#   Before Mac OS 8.5, code point 0xDB was CURRENCY SIGN, and was
#   mapped to U+00A4. In Mac OS 8.5 and later versions, code point
#   0xDB is changed to EURO SIGN and maps to U+20AC; the standard
#   Apple fonts are updated for Mac OS 8.5 to reflect this. There is
#   a 'currency sign' variant of the Mac OS Roman encoding that still
#   maps 0xDB to U+00A4; this can be used for older fonts.
#
#   Before Mac OS 8.5, the ROM bitmap versions of the fonts Chicago,
#   New York, Geneva, and Monaco did not implement the full Mac OS
#   Roman character set; they only supported character codes up to
#   0xD8. The TrueType versions of these fonts have always implemented
#   the full character set, as with the bitmap and TrueType versions
#   of the other standard Roman fonts.
#
#   In all Mac OS encodings, fonts such as Chicago which are used
#   as 'system' fonts (for menus, dialogs, etc.) have four glyphs
#   at code points 0x11-0x14 for transient use by the Menu Manager.
#   These glyphs are not intended as characters for use in normal
#   text, and the associated code points are not generally
#   interpreted as associated with these glyphs; they are usually
#   interpreted (if at all) as the control codes DC1-DC4.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
#   The following corporate zone Unicode character is used in this
#   mapping:
#
#     0xF8FF  Apple logo
#
#   NOTE: The graphic image associated with the Apple logo character
#   is not authorized for use without permission of Apple, and
#   unauthorized use might constitute trademark infringement.
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version n08 to version b02:
#
#   - Encoding changed for Mac OS 8.5; change mapping of 0xDB from
#   CURRENCY SIGN (U+00A4) to EURO SIGN (U+20AC).
#
#   Changes from version n03 to version n04:
#
#   - Change mapping of 0xBD from U+2126 to its canonical
#     decomposition, U+03A9.
#
##################

0x20    0x0020  # SPACE
0x21    0x0021  # EXCLAMATION MARK
0x22    0x0022  # QUOTATION MARK
0x23    0x0023  # NUMBER SIGN
0x24    0x0024  # DOLLAR SIGN
0x25    0x0025  # PERCENT SIGN
0x26    0x0026  # AMPERSAND
0x27    0x0027  # APOSTROPHE
0x28    0x0028  # LEFT PARENTHESIS
0x29    0x0029  # RIGHT PARENTHESIS
0x2A    0x002A  # ASTERISK
0x2B    0x002B  # PLUS SIGN
0x2C    0x002C  # COMMA
0x2D    0x002D  # HYPHEN-MINUS
0x2E    0x002E  # FULL STOP
0x2F    0x002F  # SOLIDUS
0x30    0x0030  # DIGIT ZERO
0x31    0x0031  # DIGIT ONE
0x32    0x0032  # DIGIT TWO
0x33    0x0033  # DIGIT THREE
0x34    0x0034  # DIGIT FOUR
0x35    0x0035  # DIGIT FIVE
0x36    0x0036  # DIGIT SIX
0x37    0x0037  # DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT
0x39    0x0039  # DIGIT NINE
0x3A    0x003A  # COLON
0x3B    0x003B  # SEMICOLON
0x3C    0x003C  # LESS-THAN SIGN
0x3D    0x003D  # EQUALS SIGN
0x3E    0x003E  # GREATER-THAN SIGN
0x3F    0x003F  # QUESTION MARK
0x40    0x0040  # COMMERCIAL AT
0x41    0x0041  # LATIN CAPITAL LETTER A
0x42    0x0042  # LATIN CAPITAL LETTER B
0x43    0x0043  # LATIN CAPITAL LETTER C
0x44    0x0044  # LATIN CAPITAL LETTER D
0x45    0x0045  # LATIN CAPITAL LETTER E
0x46    0x0046  # LATIN CAPITAL LETTER F
0x47    0x0047  # LATIN CAPITAL LETTER G
0x48    0x0048  # LATIN CAPITAL LETTER H
0x49    0x0049  # LATIN CAPITAL LETTER I
0x4A    0x004A  # LATIN CAPITAL LETTER J
0x4B    0x004B  # LATIN CAPITAL LETTER K
0x4C    0x004C  # LATIN CAPITAL LETTER L
0x4D    0x004D  # LATIN CAPITAL LETTER M
0x4E    0x004E  # LATIN CAPITAL LETTER N
0x4F    0x004F  # LATIN CAPITAL LETTER O
0x50    0x0050  # LATIN CAPITAL LETTER P
0x51    0x0051  # LATIN CAPITAL LETTER Q
0x52    0x0052  # LATIN CAPITAL LETTER R
0x53    0x0053  # LATIN CAPITAL LETTER S
0x54    0x0054  # LATIN CAPITAL LETTER T
0x55    0x0055  # LATIN CAPITAL LETTER U
0x56    0x0056  # LATIN CAPITAL LETTER V
0x57    0x0057  # LATIN CAPITAL LETTER W
0x58    0x0058  # LATIN CAPITAL LETTER X
0x59    0x0059  # LATIN CAPITAL LETTER Y
0x5A    0x005A  # LATIN CAPITAL LETTER Z
0x5B    0x005B  # LEFT SQUARE BRACKET
0x5C    0x005C  # REVERSE SOLIDUS
0x5D    0x005D  # RIGHT SQUARE BRACKET
0x5E    0x005E  # CIRCUMFLEX ACCENT
0x5F    0x005F  # LOW LINE
0x60    0x0060  # GRAVE ACCENT
0x61    0x0061  # LATIN SMALL LETTER A
0x62    0x0062  # LATIN SMALL LETTER B
0x63    0x0063  # LATIN SMALL LETTER C
0x64    0x0064  # LATIN SMALL LETTER D
0x65    0x0065  # LATIN SMALL LETTER E
0x66    0x0066  # LATIN SMALL LETTER F
0x67    0x0067  # LATIN SMALL LETTER G
0x68    0x0068  # LATIN SMALL LETTER H
0x69    0x0069  # LATIN SMALL LETTER I
0x6A    0x006A  # LATIN SMALL LETTER J
0x6B    0x006B  # LATIN SMALL LETTER K
0x6C    0x006C  # LATIN SMALL LETTER L
0x6D    0x006D  # LATIN SMALL LETTER M
0x6E    0x006E  # LATIN SMALL LETTER N
0x6F    0x006F  # LATIN SMALL LETTER O
0x70    0x0070  # LATIN SMALL LETTER P
0x71    0x0071  # LATIN SMALL LETTER Q
0x72    0x0072  # LATIN SMALL LETTER R
0x73    0x0073  # LATIN SMALL LETTER S
0x74    0x0074  # LATIN SMALL LETTER T
0x75    0x0075  # LATIN SMALL LETTER U
0x76    0x0076  # LATIN SMALL LETTER V
0x77    0x0077  # LATIN SMALL LETTER W
0x78    0x0078  # LATIN SMALL LETTER X
0x79    0x0079  # LATIN SMALL LETTER Y
0x7A    0x007A  # LATIN SMALL LETTER Z
0x7B    0x007B  # LEFT CURLY BRACKET
0x7C    0x007C  # VERTICAL LINE
0x7D    0x007D  # RIGHT CURLY BRACKET
0x7E    0x007E  # TILDE
#
0x80    0x00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81    0x00C5  # LATIN CAPITAL LETTER A WITH RING ABOVE
0x82    0x00C7  # LATIN CAPITAL LETTER C WITH CEDILLA
0x83    0x00C9  # LATIN CAPITAL LETTER E WITH ACUTE
0x84    0x00D1  # LATIN CAPITAL LETTER N WITH TILDE
0x85    0x00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86    0x00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87    0x00E1  # LATIN SMALL LETTER A WITH ACUTE
0x88    0x00E0  # LATIN SMALL LETTER A WITH GRAVE
0x89    0x00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A    0x00E4  # LATIN SMALL LETTER A WITH DIAERESIS
0x8B    0x00E3  # LATIN SMALL LETTER A WITH TILDE
0x8C    0x00E5  # LATIN SMALL LETTER A WITH RING ABOVE
0x8D    0x00E7  # LATIN SMALL LETTER C WITH CEDILLA
0x8E    0x00E9  # LATIN SMALL LETTER E WITH ACUTE
0x8F    0x00E8  # LATIN SMALL LETTER E WITH GRAVE
0x90    0x00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91    0x00EB  # LATIN SMALL LETTER E WITH DIAERESIS
0x92    0x00ED  # LATIN SMALL LETTER I WITH ACUTE
0x93    0x00EC  # LATIN SMALL LETTER I WITH GRAVE
0x94    0x00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95    0x00EF  # LATIN SMALL LETTER I WITH DIAERESIS
0x96    0x00F1  # LATIN SMALL LETTER N WITH TILDE
0x97    0x00F3  # LATIN SMALL LETTER O WITH ACUTE
0x98    0x00F2  # LATIN SMALL LETTER O WITH GRAVE
0x99    0x00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A    0x00F6  # LATIN SMALL LETTER O WITH DIAERESIS
0x9B    0x00F5  # LATIN SMALL LETTER O WITH TILDE
0x9C    0x00FA  # LATIN SMALL LETTER U WITH ACUTE
0x9D    0x00F9  # LATIN SMALL LETTER U WITH GRAVE
0x9E    0x00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F    0x00FC  # LATIN SMALL LETTER U WITH DIAERESIS
0xA0    0x2020  # DAGGER
0xA1    0x00B0  # DEGREE SIGN
0xA2    0x00A2  # CENT SIGN
0xA3    0x00A3  # POUND SIGN
0xA4    0x00A7  # SECTION SIGN
0xA5    0x2022  # BULLET
0xA6    0x00B6  # PILCROW SIGN
0xA7    0x00DF  # LATIN SMALL LETTER SHARP S
0xA8    0x00AE  # REGISTERED SIGN
0xA9    0x00A9  # COPYRIGHT SIGN
0xAA    0x2122  # TRADE MARK SIGN
0xAB    0x00B4  # ACUTE ACCENT
0xAC    0x00A8  # DIAERESIS
0xAD    0x2260  # NOT EQUAL TO
0xAE    0x00C6  # LATIN CAPITAL LETTER AE
0xAF    0x00D8  # LATIN CAPITAL LETTER O WITH STROKE
0xB0    0x221E  # INFINITY
0xB1    0x00B1  # PLUS-MINUS SIGN
0xB2    0x2264  # LESS-THAN OR EQUAL TO
0xB3    0x2265  # GREATER-THAN OR EQUAL TO
0xB4    0x00A5  # YEN SIGN
0xB5    0x00B5  # MICRO SIGN
0xB6    0x2202  # PARTIAL DIFFERENTIAL
0xB7    0x2211  # N-ARY SUMMATION
0xB8    0x220F  # N-ARY PRODUCT
0xB9    0x03C0  # GREEK SMALL LETTER PI
0xBA    0x222B  # INTEGRAL
0xBB    0x00AA  # FEMININE ORDINAL INDICATOR
0xBC    0x00BA  # MASCULINE ORDINAL INDICATOR
0xBD    0x03A9  # GREEK CAPITAL LETTER OMEGA
0xBE    0x00E6  # LATIN SMALL LETTER AE
0xBF    0x00F8  # LATIN SMALL LETTER O WITH STROKE
0xC0    0x00BF  # INVERTED QUESTION MARK
0xC1    0x00A1  # INVERTED EXCLAMATION MARK
0xC2    0x00AC  # NOT SIGN
0xC3    0x221A  # SQUARE ROOT
0xC4    0x0192  # LATIN SMALL LETTER F WITH HOOK
0xC5    0x2248  # ALMOST EQUAL TO
0xC6    0x2206  # INCREMENT
0xC7    0x00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8    0x00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC9    0x2026  # HORIZONTAL ELLIPSIS
0xCA    0x00A0  # NO-BREAK SPACE
0xCB    0x00C0  # LATIN CAPITAL LETTER A WITH GRAVE
0xCC    0x00C3  # LATIN CAPITAL LETTER A WITH TILDE
0xCD    0x00D5  # LATIN CAPITAL LETTER O WITH TILDE
0xCE    0x0152  # LATIN CAPITAL LIGATURE OE
0xCF    0x0153  # LATIN SMALL LIGATURE OE
0xD0    0x2013  # EN DASH
0xD1    0x2014  # EM DASH
0xD2    0x201C  # LEFT DOUBLE QUOTATION MARK
0xD3    0x201D  # RIGHT DOUBLE QUOTATION MARK
0xD4    0x2018  # LEFT SINGLE QUOTATION MARK
0xD5    0x2019  # RIGHT SINGLE QUOTATION MARK
0xD6    0x00F7  # DIVISION SIGN
0xD7    0x25CA  # LOZENGE
0xD8    0x00FF  # LATIN SMALL LETTER Y WITH DIAERESIS
0xD9    0x0178  # LATIN CAPITAL LETTER Y WITH DIAERESIS
0xDA    0x2044  # FRACTION SLASH
0xDB    0x20AC  # EURO SIGN
0xDC    0x2039  # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
0xDD    0x203A  # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
0xDE    0xFB01  # LATIN SMALL LIGATURE FI
0xDF    0xFB02  # LATIN SMALL LIGATURE FL
0xE0    0x2021  # DOUBLE DAGGER
0xE1    0x00B7  # MIDDLE DOT
0xE2    0x201A  # SINGLE LOW-9 QUOTATION MARK
0xE3    0x201E  # DOUBLE LOW-9 QUOTATION MARK
0xE4    0x2030  # PER MILLE SIGN
0xE5    0x00C2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xE6    0x00CA  # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xE7    0x00C1  # LATIN CAPITAL LETTER A WITH ACUTE
0xE8    0x00CB  # LATIN CAPITAL LETTER E WITH DIAERESIS
0xE9    0x00C8  # LATIN CAPITAL LETTER E WITH GRAVE
0xEA    0x00CD  # LATIN CAPITAL LETTER I WITH ACUTE
0xEB    0x00CE  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xEC    0x00CF  # LATIN CAPITAL LETTER I WITH DIAERESIS
0xED    0x00CC  # LATIN CAPITAL LETTER I WITH GRAVE
0xEE    0x00D3  # LATIN CAPITAL LETTER O WITH ACUTE
0xEF    0x00D4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xF0    0xF8FF  # Apple logo
0xF1    0x00D2  # LATIN CAPITAL LETTER O WITH GRAVE
0xF2    0x00DA  # LATIN CAPITAL LETTER U WITH ACUTE
0xF3    0x00DB  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xF4    0x00D9  # LATIN CAPITAL LETTER U WITH GRAVE
0xF5    0x0131  # LATIN SMALL LETTER DOTLESS I
0xF6    0x02C6  # MODIFIER LETTER CIRCUMFLEX ACCENT
0xF7    0x02DC  # SMALL TILDE
0xF8    0x00AF  # MACRON
0xF9    0x02D8  # BREVE
0xFA    0x02D9  # DOT ABOVE
0xFB    0x02DA  # RING ABOVE
0xFC    0x00B8  # CEDILLA
0xFD    0x02DD  # DOUBLE ACUTE ACCENT
0xFE    0x02DB  # OGONEK
0xFF    0x02C7  # CARON

"
! !

!CharacterEncoder::MAC_Roman class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-roman' )
! !

!CharacterEncoder::MAC_Romanian class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/ROMANIAN.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ROMANIAN.TXT

#=======================================================================
#   File name:  ROMANIAN.TXT
#
#   Contents:   Map (external version) from Mac OS Romanian
#               character set to Unicode 3.0 through Unicode 3.2
#
#   Copyright:  (c) 1995-2002 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#      b3,c1 2002-Dec-19    Update mappings for 0xAF, 0xBF, 0xDE, 0xDF
#                           to use new composed characters added in
#                           Unicode 3.0. Update URLs, notes. Matches
#                           internal utom<b3>.
#       b02  1999-Sep-22    Encoding changed for Mac OS 8.5; change
#                           mapping of 0xDB from CURRENCY SIGN to EURO
#                           SIGN. Update contact e-mail address. Matches
#                           internal utom<b2>, ufrm<b2>, and Text
#                           Encoding Converter version 1.5.
#       n05  1998-Feb-05    Minor update to header comments
#       n03  1997-Dec-14    Update to match internal utom<n5>, ufrm<n16>:
#                           Change standard mapping for 0xBD from U+2126
#                           to its canonical decomposition, U+03A9.
#                           Change mapping of 0xAF,0xBF,0xDE,0xDF from
#                           composed S/T WITH CEDILLA to S/T with
#                           COMBINING COMMA BELOW (to match our
#                           decomposition mappings).
#       n02  1995-Apr-15    First version (after fixing some typos).
#                           Matches internal ufrm<n4>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, 'Macintosh' can be used to refer to
#   Macintosh computers and 'Unicode' can be used to refer to the
#   Unicode standard.
#
#   Apple makes no warranty or representation, either express or
#   implied, with respect to these tables, their quality, accuracy, or
#   fitness for a particular purpose. In no event will Apple be liable
#   for direct, indirect, special, incidental, or consequential damages 
#   resulting from any defect or inaccuracy in this document or the
#   accompanying tables.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file 'README.TXT'.
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Romanian code (in hex as 0xNN)
#     Column #2 is the corresponding Unicode or Unicode sequence
#       (in hex as 0xNNNN or 0xNNNN+0xNNNN).
#     Column #3 is a comment containing the Unicode name
#
#   The entries are in Mac OS Romanian code order.
#
#   One of these mappings requires the use of a corporate character.
#   See the file 'CORPCHAR.TXT' and notes below.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Roman character set uses the standard control characters at
#   0x00-0x1F and 0x7F.
#
# Notes on Mac OS Romanian:
# -------------------------
#
#       Mac OS Romanian is used only for Romanian.
#
#   The Mac OS Romanian encoding shares the script code smRoman
#   (0) with the standard Mac OS Roman encoding. To determine if
#   the Romanian encoding is being used, you must also check if the
#   system region code is 39, verRomania.
#
#   This character set is a variant of standard Mac OS Roman, adding
#   upper and lower A breve, S comma below, and T comma below. It
#   has 6 code point differences from standard Mac OS Roman.
#
#   Before Mac OS 8.5, code point 0xDB was CURRENCY SIGN, and was
#   mapped to U+00A4. In Mac OS 8.5 and later versions, code point
#   0xDB is changed to EURO SIGN and maps to U+20AC; the standard
#   Apple fonts are updated for Mac OS 8.5 to reflect this. There is
#   a 'currency sign' variant of the Mac OS Romanian encoding that
#   still maps 0xDB to U+00A4; this can be used for older fonts.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
#   The following corporate zone Unicode character is used in this
#   mapping:
#
#     0xF8FF  Apple logo
#
#   NOTE: The graphic image associated with the Apple logo character
#   is not authorized for use without permission of Apple, and
#   unauthorized use might constitute trademark infringement.
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version b02 to version b03/c01:
#
#   - Update the mappings for 0xAF, 0xBF, 0xDE, 0xDF to use new
#     composed Unicode characters 0x0218-0x021B added in Unicode 3.0;
#     the previous mappings were to the equivalent decomposition
#     sequences.
#
#   Changes from version n05 to version b02:
#
#   - Encoding changed for Mac OS 8.5; change mapping of 0xDB from
#   CURRENCY SIGN (U+00A4) to EURO SIGN (U+20AC).
#
#   Changes from version n02 to version n03:
#
#   - Change mapping of 0xBD from U+2126 to its canonical
#     decomposition, U+03A9.
#   - Change mapping of 0xAF,0xBF,0xDE,0xDF from composed S or T
#     WITH CEDILLA to S or T with COMBINING COMMA BELOW (to match
#     our decomposition mappings).
#
##################

0x20    0x0020  # SPACE
0x21    0x0021  # EXCLAMATION MARK
0x22    0x0022  # QUOTATION MARK
0x23    0x0023  # NUMBER SIGN
0x24    0x0024  # DOLLAR SIGN
0x25    0x0025  # PERCENT SIGN
0x26    0x0026  # AMPERSAND
0x27    0x0027  # APOSTROPHE
0x28    0x0028  # LEFT PARENTHESIS
0x29    0x0029  # RIGHT PARENTHESIS
0x2A    0x002A  # ASTERISK
0x2B    0x002B  # PLUS SIGN
0x2C    0x002C  # COMMA
0x2D    0x002D  # HYPHEN-MINUS
0x2E    0x002E  # FULL STOP
0x2F    0x002F  # SOLIDUS
0x30    0x0030  # DIGIT ZERO
0x31    0x0031  # DIGIT ONE
0x32    0x0032  # DIGIT TWO
0x33    0x0033  # DIGIT THREE
0x34    0x0034  # DIGIT FOUR
0x35    0x0035  # DIGIT FIVE
0x36    0x0036  # DIGIT SIX
0x37    0x0037  # DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT
0x39    0x0039  # DIGIT NINE
0x3A    0x003A  # COLON
0x3B    0x003B  # SEMICOLON
0x3C    0x003C  # LESS-THAN SIGN
0x3D    0x003D  # EQUALS SIGN
0x3E    0x003E  # GREATER-THAN SIGN
0x3F    0x003F  # QUESTION MARK
0x40    0x0040  # COMMERCIAL AT
0x41    0x0041  # LATIN CAPITAL LETTER A
0x42    0x0042  # LATIN CAPITAL LETTER B
0x43    0x0043  # LATIN CAPITAL LETTER C
0x44    0x0044  # LATIN CAPITAL LETTER D
0x45    0x0045  # LATIN CAPITAL LETTER E
0x46    0x0046  # LATIN CAPITAL LETTER F
0x47    0x0047  # LATIN CAPITAL LETTER G
0x48    0x0048  # LATIN CAPITAL LETTER H
0x49    0x0049  # LATIN CAPITAL LETTER I
0x4A    0x004A  # LATIN CAPITAL LETTER J
0x4B    0x004B  # LATIN CAPITAL LETTER K
0x4C    0x004C  # LATIN CAPITAL LETTER L
0x4D    0x004D  # LATIN CAPITAL LETTER M
0x4E    0x004E  # LATIN CAPITAL LETTER N
0x4F    0x004F  # LATIN CAPITAL LETTER O
0x50    0x0050  # LATIN CAPITAL LETTER P
0x51    0x0051  # LATIN CAPITAL LETTER Q
0x52    0x0052  # LATIN CAPITAL LETTER R
0x53    0x0053  # LATIN CAPITAL LETTER S
0x54    0x0054  # LATIN CAPITAL LETTER T
0x55    0x0055  # LATIN CAPITAL LETTER U
0x56    0x0056  # LATIN CAPITAL LETTER V
0x57    0x0057  # LATIN CAPITAL LETTER W
0x58    0x0058  # LATIN CAPITAL LETTER X
0x59    0x0059  # LATIN CAPITAL LETTER Y
0x5A    0x005A  # LATIN CAPITAL LETTER Z
0x5B    0x005B  # LEFT SQUARE BRACKET
0x5C    0x005C  # REVERSE SOLIDUS
0x5D    0x005D  # RIGHT SQUARE BRACKET
0x5E    0x005E  # CIRCUMFLEX ACCENT
0x5F    0x005F  # LOW LINE
0x60    0x0060  # GRAVE ACCENT
0x61    0x0061  # LATIN SMALL LETTER A
0x62    0x0062  # LATIN SMALL LETTER B
0x63    0x0063  # LATIN SMALL LETTER C
0x64    0x0064  # LATIN SMALL LETTER D
0x65    0x0065  # LATIN SMALL LETTER E
0x66    0x0066  # LATIN SMALL LETTER F
0x67    0x0067  # LATIN SMALL LETTER G
0x68    0x0068  # LATIN SMALL LETTER H
0x69    0x0069  # LATIN SMALL LETTER I
0x6A    0x006A  # LATIN SMALL LETTER J
0x6B    0x006B  # LATIN SMALL LETTER K
0x6C    0x006C  # LATIN SMALL LETTER L
0x6D    0x006D  # LATIN SMALL LETTER M
0x6E    0x006E  # LATIN SMALL LETTER N
0x6F    0x006F  # LATIN SMALL LETTER O
0x70    0x0070  # LATIN SMALL LETTER P
0x71    0x0071  # LATIN SMALL LETTER Q
0x72    0x0072  # LATIN SMALL LETTER R
0x73    0x0073  # LATIN SMALL LETTER S
0x74    0x0074  # LATIN SMALL LETTER T
0x75    0x0075  # LATIN SMALL LETTER U
0x76    0x0076  # LATIN SMALL LETTER V
0x77    0x0077  # LATIN SMALL LETTER W
0x78    0x0078  # LATIN SMALL LETTER X
0x79    0x0079  # LATIN SMALL LETTER Y
0x7A    0x007A  # LATIN SMALL LETTER Z
0x7B    0x007B  # LEFT CURLY BRACKET
0x7C    0x007C  # VERTICAL LINE
0x7D    0x007D  # RIGHT CURLY BRACKET
0x7E    0x007E  # TILDE
#
0x80    0x00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81    0x00C5  # LATIN CAPITAL LETTER A WITH RING ABOVE
0x82    0x00C7  # LATIN CAPITAL LETTER C WITH CEDILLA
0x83    0x00C9  # LATIN CAPITAL LETTER E WITH ACUTE
0x84    0x00D1  # LATIN CAPITAL LETTER N WITH TILDE
0x85    0x00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86    0x00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87    0x00E1  # LATIN SMALL LETTER A WITH ACUTE
0x88    0x00E0  # LATIN SMALL LETTER A WITH GRAVE
0x89    0x00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A    0x00E4  # LATIN SMALL LETTER A WITH DIAERESIS
0x8B    0x00E3  # LATIN SMALL LETTER A WITH TILDE
0x8C    0x00E5  # LATIN SMALL LETTER A WITH RING ABOVE
0x8D    0x00E7  # LATIN SMALL LETTER C WITH CEDILLA
0x8E    0x00E9  # LATIN SMALL LETTER E WITH ACUTE
0x8F    0x00E8  # LATIN SMALL LETTER E WITH GRAVE
0x90    0x00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91    0x00EB  # LATIN SMALL LETTER E WITH DIAERESIS
0x92    0x00ED  # LATIN SMALL LETTER I WITH ACUTE
0x93    0x00EC  # LATIN SMALL LETTER I WITH GRAVE
0x94    0x00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95    0x00EF  # LATIN SMALL LETTER I WITH DIAERESIS
0x96    0x00F1  # LATIN SMALL LETTER N WITH TILDE
0x97    0x00F3  # LATIN SMALL LETTER O WITH ACUTE
0x98    0x00F2  # LATIN SMALL LETTER O WITH GRAVE
0x99    0x00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A    0x00F6  # LATIN SMALL LETTER O WITH DIAERESIS
0x9B    0x00F5  # LATIN SMALL LETTER O WITH TILDE
0x9C    0x00FA  # LATIN SMALL LETTER U WITH ACUTE
0x9D    0x00F9  # LATIN SMALL LETTER U WITH GRAVE
0x9E    0x00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F    0x00FC  # LATIN SMALL LETTER U WITH DIAERESIS
0xA0    0x2020  # DAGGER
0xA1    0x00B0  # DEGREE SIGN
0xA2    0x00A2  # CENT SIGN
0xA3    0x00A3  # POUND SIGN
0xA4    0x00A7  # SECTION SIGN
0xA5    0x2022  # BULLET
0xA6    0x00B6  # PILCROW SIGN
0xA7    0x00DF  # LATIN SMALL LETTER SHARP S
0xA8    0x00AE  # REGISTERED SIGN
0xA9    0x00A9  # COPYRIGHT SIGN
0xAA    0x2122  # TRADE MARK SIGN
0xAB    0x00B4  # ACUTE ACCENT
0xAC    0x00A8  # DIAERESIS
0xAD    0x2260  # NOT EQUAL TO
0xAE    0x0102  # LATIN CAPITAL LETTER A WITH BREVE
0xAF    0x0218  # LATIN CAPITAL LETTER S WITH COMMA BELOW       # for Unicode 3.0 and later
0xB0    0x221E  # INFINITY
0xB1    0x00B1  # PLUS-MINUS SIGN
0xB2    0x2264  # LESS-THAN OR EQUAL TO
0xB3    0x2265  # GREATER-THAN OR EQUAL TO
0xB4    0x00A5  # YEN SIGN
0xB5    0x00B5  # MICRO SIGN
0xB6    0x2202  # PARTIAL DIFFERENTIAL
0xB7    0x2211  # N-ARY SUMMATION
0xB8    0x220F  # N-ARY PRODUCT
0xB9    0x03C0  # GREEK SMALL LETTER PI
0xBA    0x222B  # INTEGRAL
0xBB    0x00AA  # FEMININE ORDINAL INDICATOR
0xBC    0x00BA  # MASCULINE ORDINAL INDICATOR
0xBD    0x03A9  # GREEK CAPITAL LETTER OMEGA
0xBE    0x0103  # LATIN SMALL LETTER A WITH BREVE
0xBF    0x0219  # LATIN SMALL LETTER S WITH COMMA BELOW # for Unicode 3.0 and later
0xC0    0x00BF  # INVERTED QUESTION MARK
0xC1    0x00A1  # INVERTED EXCLAMATION MARK
0xC2    0x00AC  # NOT SIGN
0xC3    0x221A  # SQUARE ROOT
0xC4    0x0192  # LATIN SMALL LETTER F WITH HOOK
0xC5    0x2248  # ALMOST EQUAL TO
0xC6    0x2206  # INCREMENT
0xC7    0x00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8    0x00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC9    0x2026  # HORIZONTAL ELLIPSIS
0xCA    0x00A0  # NO-BREAK SPACE
0xCB    0x00C0  # LATIN CAPITAL LETTER A WITH GRAVE
0xCC    0x00C3  # LATIN CAPITAL LETTER A WITH TILDE
0xCD    0x00D5  # LATIN CAPITAL LETTER O WITH TILDE
0xCE    0x0152  # LATIN CAPITAL LIGATURE OE
0xCF    0x0153  # LATIN SMALL LIGATURE OE
0xD0    0x2013  # EN DASH
0xD1    0x2014  # EM DASH
0xD2    0x201C  # LEFT DOUBLE QUOTATION MARK
0xD3    0x201D  # RIGHT DOUBLE QUOTATION MARK
0xD4    0x2018  # LEFT SINGLE QUOTATION MARK
0xD5    0x2019  # RIGHT SINGLE QUOTATION MARK
0xD6    0x00F7  # DIVISION SIGN
0xD7    0x25CA  # LOZENGE
0xD8    0x00FF  # LATIN SMALL LETTER Y WITH DIAERESIS
0xD9    0x0178  # LATIN CAPITAL LETTER Y WITH DIAERESIS
0xDA    0x2044  # FRACTION SLASH
0xDB    0x20AC  # EURO SIGN
0xDC    0x2039  # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
0xDD    0x203A  # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
0xDE    0x021A  # LATIN CAPITAL LETTER T WITH COMMA BELOW       # for Unicode 3.0 and later
0xDF    0x021B  # LATIN SMALL LETTER T WITH COMMA BELOW;        # for Unicode 3.0 and later
0xE0    0x2021  # DOUBLE DAGGER
0xE1    0x00B7  # MIDDLE DOT
0xE2    0x201A  # SINGLE LOW-9 QUOTATION MARK
0xE3    0x201E  # DOUBLE LOW-9 QUOTATION MARK
0xE4    0x2030  # PER MILLE SIGN
0xE5    0x00C2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xE6    0x00CA  # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xE7    0x00C1  # LATIN CAPITAL LETTER A WITH ACUTE
0xE8    0x00CB  # LATIN CAPITAL LETTER E WITH DIAERESIS
0xE9    0x00C8  # LATIN CAPITAL LETTER E WITH GRAVE
0xEA    0x00CD  # LATIN CAPITAL LETTER I WITH ACUTE
0xEB    0x00CE  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xEC    0x00CF  # LATIN CAPITAL LETTER I WITH DIAERESIS
0xED    0x00CC  # LATIN CAPITAL LETTER I WITH GRAVE
0xEE    0x00D3  # LATIN CAPITAL LETTER O WITH ACUTE
0xEF    0x00D4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xF0    0xF8FF  # Apple logo
0xF1    0x00D2  # LATIN CAPITAL LETTER O WITH GRAVE
0xF2    0x00DA  # LATIN CAPITAL LETTER U WITH ACUTE
0xF3    0x00DB  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xF4    0x00D9  # LATIN CAPITAL LETTER U WITH GRAVE
0xF5    0x0131  # LATIN SMALL LETTER DOTLESS I
0xF6    0x02C6  # MODIFIER LETTER CIRCUMFLEX ACCENT
0xF7    0x02DC  # SMALL TILDE
0xF8    0x00AF  # MACRON
0xF9    0x02D8  # BREVE
0xFA    0x02D9  # DOT ABOVE
0xFB    0x02DA  # RING ABOVE
0xFC    0x00B8  # CEDILLA
0xFD    0x02DD  # DOUBLE ACUTE ACCENT
0xFE    0x02DB  # OGONEK
0xFF    0x02C7  # CARON

"
! !

!CharacterEncoder::MAC_Romanian class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-romanian' )
! !

!CharacterEncoder::MAC_Symbol class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/SYMBOL.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/SYMBOL.TXT

#=======================================================================
#   File name:  SYMBOL.TXT
#
#   Contents:   Map (external version) from Mac OS Symbol
#               character set to Unicode 3.2
#
#   Copyright:  (c) 1994-2002 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#      b4,c1 2002-Dec-19    Update mappings for encoded glyph fragments
#                           0xBE, 0xE6-EF, 0xF4, 0xF6-FE to use new
#                           Unicode 3.2 characters instead of sequences
#                           involving corporate-use characters. Update
#                           URLs, notes. Matches internal utom<b4>.
#       b03  1999-Sep-22    Update contact e-mail address. Matches
#                           internal utom<b3>, ufrm<b3>, and Text
#                           Encoding Converter version 1.5.
#       b02  1998-Aug-18    Encoding changed for Mac OS 8.5; add new
#                           mapping from 0xA0 to EURO SIGN. Matches
#                           internal utom<b3>, ufrm<b3>.
#       n05  1998-Feb-05    Update to match internal utom<n5>, ufrm<n15>
#                           and Text Encoding Converter version 1.3:
#                           Use standard Unicodes plus transcoding hints
#                           instead of single corporate characters, also
#                           change mappings for 0xE1 & 0xF1 from U+2329
#                           & U+232A to their canonical decompositions;
#                           see details below. Also update header
#                           comments to new format.
#       n03  1995-Apr-15    First version (after fixing some typos).
#                           Matches internal ufrm<n4>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, 'Macintosh' can be used to refer to
#   Macintosh computers and 'Unicode' can be used to refer to the
#   Unicode standard.
#
#   Apple makes no warranty or representation, either express or
#   implied, with respect to these tables, their quality, accuracy, or
#   fitness for a particular purpose. In no event will Apple be liable
#   for direct, indirect, special, incidental, or consequential damages 
#   resulting from any defect or inaccuracy in this document or the
#   accompanying tables.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file 'README.TXT'.
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Symbol code (in hex as 0xNN)
#     Column #2 is the corresponding Unicode or Unicode sequence
#       (in hex as 0xNNNN or 0xNNNN+0xNNNN).
#     Column #3 is a comment containing the Unicode name.
#       In some cases an additional comment follows the Unicode name.
#
#   The entries are in Mac OS Symbol code order.
#
#   Some of these mappings require the use of corporate characters.
#   See the file 'CORPCHAR.TXT' and notes below.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Symbol character set uses the standard control characters
#   at 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Symbol:
# -----------------------
#
#   The Mac OS Symbol encoding shares the script code smRoman
#   (0) with the Mac OS Roman encoding. To determine if the Symbol
#   encoding is being used, you must check if the font name is
#   'Symbol'.
#
#   Before Mac OS 8.5, code point 0xA0 was unused. In Mac OS 8.5
#   and later versions, code point 0xA0 is EURO SIGN and maps to
#   U+20AC (the Symbol font is updated for Mac OS 8.5 to reflect
#   this).
#
#   The layout of the Mac OS Symbol character set is identical to
#   the layout of the Adobe Symbol encoding vector, with the
#   addition of the Apple logo character at 0xF0.
#
#   This character set encodes a number of glyph fragments. Some are
#   used as extenders: 0x60 is used to extend radical signs, 0xBD and
#   0xBE are used to extend vertical and horizontal arrows, etc. In
#   addition, there are top, bottom, and center sections for
#   parentheses, brackets, integral signs, and other signs that may
#   extend vertically for 2 or more lines of normal text. As of
#   Unicode 3.2, most of these are now encoded in Unicode; a few are
#   not, so these are mapped using corporate-zone Unicode characters
#   (see below).
#
#   In addition, Symbol separately encodes both serif and sans-serif
#   forms for copyright, trademark, and registered signs. Unicode
#   encodes only the abstract characters, so one set of these (the
#   sans-serif forms) are also mapped using corporate-zone Unicode
#   characters (see below).
#
#   The following code points are unused, and are not shown here:
#   0x80-0x9F, 0xFF.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
#   The goals in the mappings provided here are:
#   - Ensure roundtrip mapping from every character in the Mac OS
#     Symbol character set to Unicode and back
#   - Use standard Unicode characters as much as possible, to
#     maximize interchangeability of the resulting Unicode text.
#     Whenever possible, avoid having content carried by private-use
#     characters.
#
#   Some of the characters in the Mac OS Symbol character set do not
#   correspond to distinct, single Unicode characters. To map these
#   and satisfy both goals above, we employ various strategies.
#
#   a) If possible, use private use characters in combination with
#   standard Unicode characters to mark variants of the standard
#   Unicode character.
#
#   Apple has defined a block of 32 corporate characters as 'transcoding
#   hints.' These are used in combination with standard Unicode characters
#   to force them to be treated in a special way for mapping to other
#   encodings; they have no other effect. Sixteen of these transcoding
#   hints are 'grouping hints' - they indicate that the next 2-4 Unicode
#   characters should be treated as a single entity for transcoding. The
#   other sixteen transcoding hints are 'variant tags' - they are like
#   combining characters, and can follow a standard Unicode (or a sequence
#   consisting of a base character and other combining characters) to
#   cause it to be treated in a special way for transcoding. These always
#   terminate a combining-character sequence.
#
#   The transcoding coding hint used in this mapping table is the variant
#   tag 0xF87F. Since this is combined with standard Unicode characters,
#   some characters in the Mac OS Symbol character set map to a sequence
#   of two Unicodes instead of a single Unicode character.
#
#   For example, the Mac OS Symbol character at 0xE2 is an alternate,
#   sans-serif form of the REGISTERED SIGN (the standard mapping is for
#   the abstract character at 0xD2, which here has a serif form). So 0xE2
#   is mapped to 0x00AE (REGISTERED SIGN) + 0xF87F (a variant tag).
#
#   b) Otherwise, use private use characters by themselves to map
#   Mac OS Symbol characters which have no relationship to any standard
#   Unicode character.
#
#   The following additional corporate zone Unicode characters are
#   used for this purpose here:
#
#     0xF8E5  radical extender
#     0xF8E6  vertical arrow extender
#     0xF8FF  Apple logo
#
#   NOTE: The graphic image associated with the Apple logo character
#   is not authorized for use without permission of Apple, and
#   unauthorized use might constitute trademark infringement.
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version b02 to version b03/c01:
#
#   - Update mappings for encoded glyph fragments 0xBE, 0xE6-EF, 0xF4,
#     0xF6-FE to use new Unicode 3.2 characters instead of using either
#     single corporate-use characters (e.g. 0xBE was mapped to 0xF8E7) or
#     sequences combining a standard Unicode character with a transcoding
#     hint (e.g. 0xE6 was mapped to 0x0028+0xF870).
#
#   Changes from version n05 to version b02:
#
#   - Encoding changed for Mac OS 8.5; 0xA0 now maps to 0x20AC, EURO
#   SIGN. 0xA0 was unmapped in earlier versions.
#
#   Changes from version n03 to version n05:
#
#       - Change strict mapping for 0xE1 & 0xF1 from U+2329 & U+232A
#     to their canonical decompositions, U+3008 & U+3009.
#
#   - Change mapping for the following to use standard Unicode +
#     transcoding hint, instead of single corporate-zone
#     character: 0xE2-0xE4, 0xE6-0xEE, 0xF4, 0xF6-0xFE.
#
##################

0x20    0x0020  # SPACE
0x21    0x0021  # EXCLAMATION MARK
0x22    0x2200  # FOR ALL
0x23    0x0023  # NUMBER SIGN
0x24    0x2203  # THERE EXISTS
0x25    0x0025  # PERCENT SIGN
0x26    0x0026  # AMPERSAND
0x27    0x220D  # SMALL CONTAINS AS MEMBER
0x28    0x0028  # LEFT PARENTHESIS
0x29    0x0029  # RIGHT PARENTHESIS
0x2A    0x2217  # ASTERISK OPERATOR
0x2B    0x002B  # PLUS SIGN
0x2C    0x002C  # COMMA
0x2D    0x2212  # MINUS SIGN
0x2E    0x002E  # FULL STOP
0x2F    0x002F  # SOLIDUS
0x30    0x0030  # DIGIT ZERO
0x31    0x0031  # DIGIT ONE
0x32    0x0032  # DIGIT TWO
0x33    0x0033  # DIGIT THREE
0x34    0x0034  # DIGIT FOUR
0x35    0x0035  # DIGIT FIVE
0x36    0x0036  # DIGIT SIX
0x37    0x0037  # DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT
0x39    0x0039  # DIGIT NINE
0x3A    0x003A  # COLON
0x3B    0x003B  # SEMICOLON
0x3C    0x003C  # LESS-THAN SIGN
0x3D    0x003D  # EQUALS SIGN
0x3E    0x003E  # GREATER-THAN SIGN
0x3F    0x003F  # QUESTION MARK
0x40    0x2245  # APPROXIMATELY EQUAL TO
0x41    0x0391  # GREEK CAPITAL LETTER ALPHA
0x42    0x0392  # GREEK CAPITAL LETTER BETA
0x43    0x03A7  # GREEK CAPITAL LETTER CHI
0x44    0x0394  # GREEK CAPITAL LETTER DELTA
0x45    0x0395  # GREEK CAPITAL LETTER EPSILON
0x46    0x03A6  # GREEK CAPITAL LETTER PHI
0x47    0x0393  # GREEK CAPITAL LETTER GAMMA
0x48    0x0397  # GREEK CAPITAL LETTER ETA
0x49    0x0399  # GREEK CAPITAL LETTER IOTA
0x4A    0x03D1  # GREEK THETA SYMBOL
0x4B    0x039A  # GREEK CAPITAL LETTER KAPPA
0x4C    0x039B  # GREEK CAPITAL LETTER LAMDA
0x4D    0x039C  # GREEK CAPITAL LETTER MU
0x4E    0x039D  # GREEK CAPITAL LETTER NU
0x4F    0x039F  # GREEK CAPITAL LETTER OMICRON
0x50    0x03A0  # GREEK CAPITAL LETTER PI
0x51    0x0398  # GREEK CAPITAL LETTER THETA
0x52    0x03A1  # GREEK CAPITAL LETTER RHO
0x53    0x03A3  # GREEK CAPITAL LETTER SIGMA
0x54    0x03A4  # GREEK CAPITAL LETTER TAU
0x55    0x03A5  # GREEK CAPITAL LETTER UPSILON
0x56    0x03C2  # GREEK SMALL LETTER FINAL SIGMA
0x57    0x03A9  # GREEK CAPITAL LETTER OMEGA
0x58    0x039E  # GREEK CAPITAL LETTER XI
0x59    0x03A8  # GREEK CAPITAL LETTER PSI
0x5A    0x0396  # GREEK CAPITAL LETTER ZETA
0x5B    0x005B  # LEFT SQUARE BRACKET
0x5C    0x2234  # THEREFORE
0x5D    0x005D  # RIGHT SQUARE BRACKET
0x5E    0x22A5  # UP TACK
0x5F    0x005F  # LOW LINE
0x60    0xF8E5  # radical extender # corporate char
0x61    0x03B1  # GREEK SMALL LETTER ALPHA
0x62    0x03B2  # GREEK SMALL LETTER BETA
0x63    0x03C7  # GREEK SMALL LETTER CHI
0x64    0x03B4  # GREEK SMALL LETTER DELTA
0x65    0x03B5  # GREEK SMALL LETTER EPSILON
0x66    0x03C6  # GREEK SMALL LETTER PHI
0x67    0x03B3  # GREEK SMALL LETTER GAMMA
0x68    0x03B7  # GREEK SMALL LETTER ETA
0x69    0x03B9  # GREEK SMALL LETTER IOTA
0x6A    0x03D5  # GREEK PHI SYMBOL
0x6B    0x03BA  # GREEK SMALL LETTER KAPPA
0x6C    0x03BB  # GREEK SMALL LETTER LAMDA
0x6D    0x03BC  # GREEK SMALL LETTER MU
0x6E    0x03BD  # GREEK SMALL LETTER NU
0x6F    0x03BF  # GREEK SMALL LETTER OMICRON
0x70    0x03C0  # GREEK SMALL LETTER PI
0x71    0x03B8  # GREEK SMALL LETTER THETA
0x72    0x03C1  # GREEK SMALL LETTER RHO
0x73    0x03C3  # GREEK SMALL LETTER SIGMA
0x74    0x03C4  # GREEK SMALL LETTER TAU
0x75    0x03C5  # GREEK SMALL LETTER UPSILON
0x76    0x03D6  # GREEK PI SYMBOL
0x77    0x03C9  # GREEK SMALL LETTER OMEGA
0x78    0x03BE  # GREEK SMALL LETTER XI
0x79    0x03C8  # GREEK SMALL LETTER PSI
0x7A    0x03B6  # GREEK SMALL LETTER ZETA
0x7B    0x007B  # LEFT CURLY BRACKET
0x7C    0x007C  # VERTICAL LINE
0x7D    0x007D  # RIGHT CURLY BRACKET
0x7E    0x223C  # TILDE OPERATOR
#
0xA0    0x20AC  # EURO SIGN
0xA1    0x03D2  # GREEK UPSILON WITH HOOK SYMBOL
0xA2    0x2032  # PRIME # minute
0xA3    0x2264  # LESS-THAN OR EQUAL TO
0xA4    0x2044  # FRACTION SLASH
0xA5    0x221E  # INFINITY
0xA6    0x0192  # LATIN SMALL LETTER F WITH HOOK
0xA7    0x2663  # BLACK CLUB SUIT
0xA8    0x2666  # BLACK DIAMOND SUIT
0xA9    0x2665  # BLACK HEART SUIT
0xAA    0x2660  # BLACK SPADE SUIT
0xAB    0x2194  # LEFT RIGHT ARROW
0xAC    0x2190  # LEFTWARDS ARROW
0xAD    0x2191  # UPWARDS ARROW
0xAE    0x2192  # RIGHTWARDS ARROW
0xAF    0x2193  # DOWNWARDS ARROW
0xB0    0x00B0  # DEGREE SIGN
0xB1    0x00B1  # PLUS-MINUS SIGN
0xB2    0x2033  # DOUBLE PRIME  # second
0xB3    0x2265  # GREATER-THAN OR EQUAL TO
0xB4    0x00D7  # MULTIPLICATION SIGN
0xB5    0x221D  # PROPORTIONAL TO
0xB6    0x2202  # PARTIAL DIFFERENTIAL
0xB7    0x2022  # BULLET
0xB8    0x00F7  # DIVISION SIGN
0xB9    0x2260  # NOT EQUAL TO
0xBA    0x2261  # IDENTICAL TO
0xBB    0x2248  # ALMOST EQUAL TO
0xBC    0x2026  # HORIZONTAL ELLIPSIS
0xBD    0xF8E6  # vertical line extension (for arrows) # corporate char
0xBE    0x23AF  # HORIZONTAL LINE EXTENSION (for arrows) # for Unicode 3.2 and later
0xBF    0x21B5  # DOWNWARDS ARROW WITH CORNER LEFTWARDS
0xC0    0x2135  # ALEF SYMBOL
0xC1    0x2111  # BLACK-LETTER CAPITAL I
0xC2    0x211C  # BLACK-LETTER CAPITAL R
0xC3    0x2118  # SCRIPT CAPITAL P
0xC4    0x2297  # CIRCLED TIMES
0xC5    0x2295  # CIRCLED PLUS
0xC6    0x2205  # EMPTY SET
0xC7    0x2229  # INTERSECTION
0xC8    0x222A  # UNION
0xC9    0x2283  # SUPERSET OF
0xCA    0x2287  # SUPERSET OF OR EQUAL TO
0xCB    0x2284  # NOT A SUBSET OF
0xCC    0x2282  # SUBSET OF
0xCD    0x2286  # SUBSET OF OR EQUAL TO
0xCE    0x2208  # ELEMENT OF
0xCF    0x2209  # NOT AN ELEMENT OF
0xD0    0x2220  # ANGLE
0xD1    0x2207  # NABLA
0xD2    0x00AE  # REGISTERED SIGN # serif
0xD3    0x00A9  # COPYRIGHT SIGN # serif
0xD4    0x2122  # TRADE MARK SIGN # serif
0xD5    0x220F  # N-ARY PRODUCT
0xD6    0x221A  # SQUARE ROOT
0xD7    0x22C5  # DOT OPERATOR
0xD8    0x00AC  # NOT SIGN
0xD9    0x2227  # LOGICAL AND
0xDA    0x2228  # LOGICAL OR
0xDB    0x21D4  # LEFT RIGHT DOUBLE ARROW
0xDC    0x21D0  # LEFTWARDS DOUBLE ARROW
0xDD    0x21D1  # UPWARDS DOUBLE ARROW
0xDE    0x21D2  # RIGHTWARDS DOUBLE ARROW
0xDF    0x21D3  # DOWNWARDS DOUBLE ARROW
0xE0    0x22C4  # DIAMOND OPERATOR
0xE1    0x3008  # LEFT ANGLE BRACKET
0xE2    0x00AE+0xF87F   # REGISTERED SIGN, alternate: sans serif
0xE3    0x00A9+0xF87F   # COPYRIGHT SIGN, alternate: sans serif
0xE4    0x2122+0xF87F   # TRADE MARK SIGN, alternate: sans serif
0xE5    0x2211  # N-ARY SUMMATION
0xE6    0x239B  # LEFT PARENTHESIS UPPER HOOK # for Unicode 3.2 and later
0xE7    0x239C  # LEFT PARENTHESIS EXTENSION # for Unicode 3.2 and later
0xE8    0x239D  # LEFT PARENTHESIS LOWER HOOK # for Unicode 3.2 and later
0xE9    0x23A1  # LEFT SQUARE BRACKET UPPER CORNER # for Unicode 3.2 and later
0xEA    0x23A2  # LEFT SQUARE BRACKET EXTENSION # for Unicode 3.2 and later
0xEB    0x23A3  # LEFT SQUARE BRACKET LOWER CORNER # for Unicode 3.2 and later
0xEC    0x23A7  # LEFT CURLY BRACKET UPPER HOOK # for Unicode 3.2 and later
0xED    0x23A8  # LEFT CURLY BRACKET MIDDLE PIECE # for Unicode 3.2 and later
0xEE    0x23A9  # LEFT CURLY BRACKET LOWER HOOK # for Unicode 3.2 and later
0xEF    0x23AA  # CURLY BRACKET EXTENSION # for Unicode 3.2 and later
0xF0    0xF8FF  # Apple logo
0xF1    0x3009  # RIGHT ANGLE BRACKET
0xF2    0x222B  # INTEGRAL
0xF3    0x2320  # TOP HALF INTEGRAL
0xF4    0x23AE  # INTEGRAL EXTENSION # for Unicode 3.2 and later
0xF5    0x2321  # BOTTOM HALF INTEGRAL
0xF6    0x239E  # RIGHT PARENTHESIS UPPER HOOK # for Unicode 3.2 and later
0xF7    0x239F  # RIGHT PARENTHESIS EXTENSION # for Unicode 3.2 and later
0xF8    0x23A0  # RIGHT PARENTHESIS LOWER HOOK # for Unicode 3.2 and later
0xF9    0x23A4  # RIGHT SQUARE BRACKET UPPER CORNER # for Unicode 3.2 and later
0xFA    0x23A5  # RIGHT SQUARE BRACKET EXTENSION # for Unicode 3.2 and later
0xFB    0x23A6  # RIGHT SQUARE BRACKET LOWER CORNER # for Unicode 3.2 and later
0xFC    0x23AB  # RIGHT CURLY BRACKET UPPER HOOK # for Unicode 3.2 and later
0xFD    0x23AC  # RIGHT CURLY BRACKET MIDDLE PIECE # for Unicode 3.2 and later
0xFE    0x23AD  # RIGHT CURLY BRACKET LOWER HOOK # for Unicode 3.2 and later

"
! !

!CharacterEncoder::MAC_Symbol class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-symbol' )
! !

!CharacterEncoder::MAC_Thai class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/THAI.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/THAI.TXT

#=======================================================================
#   File name:  THAI.TXT
#
#   Contents:   Map (external version) from Mac OS Thai
#               character set to Unicode 3.2
#
#   Copyright:  (c) 1995-2002 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#      b3,c1 2002-Dec-19    Update mapping for 0xDB to use new Unicode
#                           3.2 WORD JOINER instead of ZWNBSP (BOM).
#                           Update URLs. Matches internal utom<b3>.
#       b02  1999-Sep-22    Update contact e-mail address. Matches
#                           internal utom<b1>, ufrm<b2>, and Text
#                           Encoding Converter version 1.5.
#       n07  1998-Feb-05    Update to match internal utom<n5>, ufrm<n13>
#                           and Text Encoding Converter version 1.3:
#                           Use standard Unicodes plus transcoding hints
#                           instead of single corporate characters; see
#                           details below. Also update header comments
#                           to new format.
#       n04  1995-Nov-17    First version (after fixing some typos).
#                           Matches internal ufrm<n6>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, 'Macintosh' can be used to refer to
#   Macintosh computers and 'Unicode' can be used to refer to the
#   Unicode standard.
#
#   Apple makes no warranty or representation, either express or
#   implied, with respect to these tables, their quality, accuracy, or
#   fitness for a particular purpose. In no event will Apple be liable
#   for direct, indirect, special, incidental, or consequential damages 
#   resulting from any defect or inaccuracy in this document or the
#   accompanying tables.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file 'README.TXT'.
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Thai code (in hex as 0xNN)
#     Column #2 is the corresponding Unicode or Unicode sequence
#       (in hex as 0xNNNN or 0xNNNN+0xNNNN).
#     Column #3 is a comment containing the Unicode name
#
#   The entries are in Mac OS Thai code order.
#
#   Some of these mappings require the use of corporate characters.
#   See the file 'CORPCHAR.TXT' and notes below.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Thai character set uses the standard control characters at
#   0x00-0x1F and 0x7F.
#
# Notes on Mac OS Thai:
# ---------------------
#
#   Codes 0xA1-0xDA and 0xDF-0xFB are the character set from Thai
#   standard TIS 620-2533, except that the following changes are
#   made:
#     0xEE is TRADE MARK SIGN (instead of THAI CHARACTER YAMAKKAN)
#     0xFA is REGISTERED SIGN (instead of THAI CHARACTER ANGKHANKHU)
#     0xFB is COPYRIGHT SIGN (instead of THAI CHARACTER KHOMUT)
#
#   Codes 0x80-0x82, 0x8D-0x8E, 0x91, 0x9D-0x9E, and 0xDB-0xDE are
#   various additional punctuation marks (e.g. curly quotes,
#   ellipsis), no-break space, and two special characters 'word join'
#   and 'word break'.
#
#   Codes 0x83-0x8C, 0x8F, and 0x92-0x9C are for positional variants
#   of the upper vowels, tone marks, and other signs at 0xD1,
#   0xD4-0xD7, and 0xE7-0xED. The positional variants would normally
#   be considered presentation forms only and not characters. In most
#   cases they are not typed directly; they are selected automatically
#   at display time by the WorldScript software. However, using the
#   Thai-DTP keyboard, the presentation forms can in fact be typed
#   directly using dead keys. Thus they must be treated as real
#   characters in the Mac OS Thai encoding. They are mapped using
#   variant tags; see below.
#
#   Several code points are undefined and unused (they cannot be
#   typed using any of the Mac OS Thai keyboard layouts): 0x90, 0x9F,
#   0xFC-0xFE. These are not shown in the table below.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
#   The goals in the Apple mappings provided here are:
#   - Ensure roundtrip mapping from every character in the Mac OS Thai
#   character set to Unicode and back
#   - Use standard Unicode characters as much as possible, to maximize
#   interchangeability of the resulting Unicode text. Whenever possible,
#   avoid having content carried by private-use characters.
#
#   To satisfy both goals, we use private use characters to mark variants
#   that are similar to a sequence of one or more standard Unicode
#   characters.
#
#   Apple has defined a block of 32 corporate characters as 'transcoding
#   hints.' These are used in combination with standard Unicode characters
#   to force them to be treated in a special way for mapping to other
#   encodings; they have no other effect. Sixteen of these transcoding
#   hints are 'grouping hints' - they indicate that the next 2-4 Unicode
#   characters should be treated as a single entity for transcoding. The
#   other sixteen transcoding hints are 'variant tags' - they are like
#   combining characters, and can follow a standard Unicode (or a sequence
#   consisting of a base character and other combining characters) to
#   cause it to be treated in a special way for transcoding. These always
#   terminate a combining-character sequence.
#
#   The transcoding coding hints used in this mapping table are four
#   variant tags in the range 0xF873-75. Since these are combined with
#   standard Unicode characters, some characters in the Mac OS Thai
#   character set map to a sequence of two Unicodes instead of a single
#   Unicode character. For example, the Mac OS Thai character at 0x83 is a
#   low-left positional variant of THAI CHARACTER MAI EK (the standard
#   mapping is for the abstract character at 0xE8). So 0x83 is mapped to
#   0x0E48 (THAI CHARACTER MAI EK) + 0xF875 (a variant tag).
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version b02 to version b03/c01:
#
#   - Update mapping for 0xDB to use new Unicode 3.2 character U+2060
#     WORD JOINER instead of U+FEFF ZERO WIDTH NO-BREAK SPACE (BOM)
#
#   Changes from version n04 to version n07:
#
#   - Changed mappings of the positional variants to use standard
#   Unicodes + transcoding hint, instead of using single corporate
#   zone characters. This affected the mappings for the following:
#   0x83-08C, 0x8F, 0x92-0x9C
#
#   - Just comment out unused code points in the table, instead
#   of mapping them to U+FFFD.
#
##################

0x20    0x0020  # SPACE
0x21    0x0021  # EXCLAMATION MARK
0x22    0x0022  # QUOTATION MARK
0x23    0x0023  # NUMBER SIGN
0x24    0x0024  # DOLLAR SIGN
0x25    0x0025  # PERCENT SIGN
0x26    0x0026  # AMPERSAND
0x27    0x0027  # APOSTROPHE
0x28    0x0028  # LEFT PARENTHESIS
0x29    0x0029  # RIGHT PARENTHESIS
0x2A    0x002A  # ASTERISK
0x2B    0x002B  # PLUS SIGN
0x2C    0x002C  # COMMA
0x2D    0x002D  # HYPHEN-MINUS
0x2E    0x002E  # FULL STOP
0x2F    0x002F  # SOLIDUS
0x30    0x0030  # DIGIT ZERO
0x31    0x0031  # DIGIT ONE
0x32    0x0032  # DIGIT TWO
0x33    0x0033  # DIGIT THREE
0x34    0x0034  # DIGIT FOUR
0x35    0x0035  # DIGIT FIVE
0x36    0x0036  # DIGIT SIX
0x37    0x0037  # DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT
0x39    0x0039  # DIGIT NINE
0x3A    0x003A  # COLON
0x3B    0x003B  # SEMICOLON
0x3C    0x003C  # LESS-THAN SIGN
0x3D    0x003D  # EQUALS SIGN
0x3E    0x003E  # GREATER-THAN SIGN
0x3F    0x003F  # QUESTION MARK
0x40    0x0040  # COMMERCIAL AT
0x41    0x0041  # LATIN CAPITAL LETTER A
0x42    0x0042  # LATIN CAPITAL LETTER B
0x43    0x0043  # LATIN CAPITAL LETTER C
0x44    0x0044  # LATIN CAPITAL LETTER D
0x45    0x0045  # LATIN CAPITAL LETTER E
0x46    0x0046  # LATIN CAPITAL LETTER F
0x47    0x0047  # LATIN CAPITAL LETTER G
0x48    0x0048  # LATIN CAPITAL LETTER H
0x49    0x0049  # LATIN CAPITAL LETTER I
0x4A    0x004A  # LATIN CAPITAL LETTER J
0x4B    0x004B  # LATIN CAPITAL LETTER K
0x4C    0x004C  # LATIN CAPITAL LETTER L
0x4D    0x004D  # LATIN CAPITAL LETTER M
0x4E    0x004E  # LATIN CAPITAL LETTER N
0x4F    0x004F  # LATIN CAPITAL LETTER O
0x50    0x0050  # LATIN CAPITAL LETTER P
0x51    0x0051  # LATIN CAPITAL LETTER Q
0x52    0x0052  # LATIN CAPITAL LETTER R
0x53    0x0053  # LATIN CAPITAL LETTER S
0x54    0x0054  # LATIN CAPITAL LETTER T
0x55    0x0055  # LATIN CAPITAL LETTER U
0x56    0x0056  # LATIN CAPITAL LETTER V
0x57    0x0057  # LATIN CAPITAL LETTER W
0x58    0x0058  # LATIN CAPITAL LETTER X
0x59    0x0059  # LATIN CAPITAL LETTER Y
0x5A    0x005A  # LATIN CAPITAL LETTER Z
0x5B    0x005B  # LEFT SQUARE BRACKET
0x5C    0x005C  # REVERSE SOLIDUS
0x5D    0x005D  # RIGHT SQUARE BRACKET
0x5E    0x005E  # CIRCUMFLEX ACCENT
0x5F    0x005F  # LOW LINE
0x60    0x0060  # GRAVE ACCENT
0x61    0x0061  # LATIN SMALL LETTER A
0x62    0x0062  # LATIN SMALL LETTER B
0x63    0x0063  # LATIN SMALL LETTER C
0x64    0x0064  # LATIN SMALL LETTER D
0x65    0x0065  # LATIN SMALL LETTER E
0x66    0x0066  # LATIN SMALL LETTER F
0x67    0x0067  # LATIN SMALL LETTER G
0x68    0x0068  # LATIN SMALL LETTER H
0x69    0x0069  # LATIN SMALL LETTER I
0x6A    0x006A  # LATIN SMALL LETTER J
0x6B    0x006B  # LATIN SMALL LETTER K
0x6C    0x006C  # LATIN SMALL LETTER L
0x6D    0x006D  # LATIN SMALL LETTER M
0x6E    0x006E  # LATIN SMALL LETTER N
0x6F    0x006F  # LATIN SMALL LETTER O
0x70    0x0070  # LATIN SMALL LETTER P
0x71    0x0071  # LATIN SMALL LETTER Q
0x72    0x0072  # LATIN SMALL LETTER R
0x73    0x0073  # LATIN SMALL LETTER S
0x74    0x0074  # LATIN SMALL LETTER T
0x75    0x0075  # LATIN SMALL LETTER U
0x76    0x0076  # LATIN SMALL LETTER V
0x77    0x0077  # LATIN SMALL LETTER W
0x78    0x0078  # LATIN SMALL LETTER X
0x79    0x0079  # LATIN SMALL LETTER Y
0x7A    0x007A  # LATIN SMALL LETTER Z
0x7B    0x007B  # LEFT CURLY BRACKET
0x7C    0x007C  # VERTICAL LINE
0x7D    0x007D  # RIGHT CURLY BRACKET
0x7E    0x007E  # TILDE
#
0x80    0x00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0x81    0x00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0x82    0x2026  # HORIZONTAL ELLIPSIS
0x83    0x0E48+0xF875   # THAI CHARACTER MAI EK, low left position
0x84    0x0E49+0xF875   # THAI CHARACTER MAI THO, low left position
0x85    0x0E4A+0xF875   # THAI CHARACTER MAI TRI, low left position
0x86    0x0E4B+0xF875   # THAI CHARACTER MAI CHATTAWA, low left position
0x87    0x0E4C+0xF875   # THAI CHARACTER THANTHAKHAT, low left position
0x88    0x0E48+0xF873   # THAI CHARACTER MAI EK, low position
0x89    0x0E49+0xF873   # THAI CHARACTER MAI THO, low position
0x8A    0x0E4A+0xF873   # THAI CHARACTER MAI TRI, low position
0x8B    0x0E4B+0xF873   # THAI CHARACTER MAI CHATTAWA, low position
0x8C    0x0E4C+0xF873   # THAI CHARACTER THANTHAKHAT, low position
0x8D    0x201C  # LEFT DOUBLE QUOTATION MARK
0x8E    0x201D  # RIGHT DOUBLE QUOTATION MARK
0x8F    0x0E4D+0xF874   # THAI CHARACTER NIKHAHIT, left position
#
0x91    0x2022  # BULLET
0x92    0x0E31+0xF874   # THAI CHARACTER MAI HAN-AKAT, left position
0x93    0x0E47+0xF874   # THAI CHARACTER MAITAIKHU, left position
0x94    0x0E34+0xF874   # THAI CHARACTER SARA I, left position
0x95    0x0E35+0xF874   # THAI CHARACTER SARA II, left position
0x96    0x0E36+0xF874   # THAI CHARACTER SARA UE, left position
0x97    0x0E37+0xF874   # THAI CHARACTER SARA UEE, left position
0x98    0x0E48+0xF874   # THAI CHARACTER MAI EK, left position
0x99    0x0E49+0xF874   # THAI CHARACTER MAI THO, left position
0x9A    0x0E4A+0xF874   # THAI CHARACTER MAI TRI, left position
0x9B    0x0E4B+0xF874   # THAI CHARACTER MAI CHATTAWA, left position
0x9C    0x0E4C+0xF874   # THAI CHARACTER THANTHAKHAT, left position
0x9D    0x2018  # LEFT SINGLE QUOTATION MARK
0x9E    0x2019  # RIGHT SINGLE QUOTATION MARK
#
0xA0    0x00A0  # NO-BREAK SPACE
0xA1    0x0E01  # THAI CHARACTER KO KAI
0xA2    0x0E02  # THAI CHARACTER KHO KHAI
0xA3    0x0E03  # THAI CHARACTER KHO KHUAT
0xA4    0x0E04  # THAI CHARACTER KHO KHWAI
0xA5    0x0E05  # THAI CHARACTER KHO KHON
0xA6    0x0E06  # THAI CHARACTER KHO RAKHANG
0xA7    0x0E07  # THAI CHARACTER NGO NGU
0xA8    0x0E08  # THAI CHARACTER CHO CHAN
0xA9    0x0E09  # THAI CHARACTER CHO CHING
0xAA    0x0E0A  # THAI CHARACTER CHO CHANG
0xAB    0x0E0B  # THAI CHARACTER SO SO
0xAC    0x0E0C  # THAI CHARACTER CHO CHOE
0xAD    0x0E0D  # THAI CHARACTER YO YING
0xAE    0x0E0E  # THAI CHARACTER DO CHADA
0xAF    0x0E0F  # THAI CHARACTER TO PATAK
0xB0    0x0E10  # THAI CHARACTER THO THAN
0xB1    0x0E11  # THAI CHARACTER THO NANGMONTHO
0xB2    0x0E12  # THAI CHARACTER THO PHUTHAO
0xB3    0x0E13  # THAI CHARACTER NO NEN
0xB4    0x0E14  # THAI CHARACTER DO DEK
0xB5    0x0E15  # THAI CHARACTER TO TAO
0xB6    0x0E16  # THAI CHARACTER THO THUNG
0xB7    0x0E17  # THAI CHARACTER THO THAHAN
0xB8    0x0E18  # THAI CHARACTER THO THONG
0xB9    0x0E19  # THAI CHARACTER NO NU
0xBA    0x0E1A  # THAI CHARACTER BO BAIMAI
0xBB    0x0E1B  # THAI CHARACTER PO PLA
0xBC    0x0E1C  # THAI CHARACTER PHO PHUNG
0xBD    0x0E1D  # THAI CHARACTER FO FA
0xBE    0x0E1E  # THAI CHARACTER PHO PHAN
0xBF    0x0E1F  # THAI CHARACTER FO FAN
0xC0    0x0E20  # THAI CHARACTER PHO SAMPHAO
0xC1    0x0E21  # THAI CHARACTER MO MA
0xC2    0x0E22  # THAI CHARACTER YO YAK
0xC3    0x0E23  # THAI CHARACTER RO RUA
0xC4    0x0E24  # THAI CHARACTER RU
0xC5    0x0E25  # THAI CHARACTER LO LING
0xC6    0x0E26  # THAI CHARACTER LU
0xC7    0x0E27  # THAI CHARACTER WO WAEN
0xC8    0x0E28  # THAI CHARACTER SO SALA
0xC9    0x0E29  # THAI CHARACTER SO RUSI
0xCA    0x0E2A  # THAI CHARACTER SO SUA
0xCB    0x0E2B  # THAI CHARACTER HO HIP
0xCC    0x0E2C  # THAI CHARACTER LO CHULA
0xCD    0x0E2D  # THAI CHARACTER O ANG
0xCE    0x0E2E  # THAI CHARACTER HO NOKHUK
0xCF    0x0E2F  # THAI CHARACTER PAIYANNOI
0xD0    0x0E30  # THAI CHARACTER SARA A
0xD1    0x0E31  # THAI CHARACTER MAI HAN-AKAT
0xD2    0x0E32  # THAI CHARACTER SARA AA
0xD3    0x0E33  # THAI CHARACTER SARA AM
0xD4    0x0E34  # THAI CHARACTER SARA I
0xD5    0x0E35  # THAI CHARACTER SARA II
0xD6    0x0E36  # THAI CHARACTER SARA UE
0xD7    0x0E37  # THAI CHARACTER SARA UEE
0xD8    0x0E38  # THAI CHARACTER SARA U
0xD9    0x0E39  # THAI CHARACTER SARA UU
0xDA    0x0E3A  # THAI CHARACTER PHINTHU
0xDB    0x2060  # WORD JOINER # for Unicode 3.2 and later
0xDC    0x200B  # ZERO WIDTH SPACE
0xDD    0x2013  # EN DASH
0xDE    0x2014  # EM DASH
0xDF    0x0E3F  # THAI CURRENCY SYMBOL BAHT
0xE0    0x0E40  # THAI CHARACTER SARA E
0xE1    0x0E41  # THAI CHARACTER SARA AE
0xE2    0x0E42  # THAI CHARACTER SARA O
0xE3    0x0E43  # THAI CHARACTER SARA AI MAIMUAN
0xE4    0x0E44  # THAI CHARACTER SARA AI MAIMALAI
0xE5    0x0E45  # THAI CHARACTER LAKKHANGYAO
0xE6    0x0E46  # THAI CHARACTER MAIYAMOK
0xE7    0x0E47  # THAI CHARACTER MAITAIKHU
0xE8    0x0E48  # THAI CHARACTER MAI EK
0xE9    0x0E49  # THAI CHARACTER MAI THO
0xEA    0x0E4A  # THAI CHARACTER MAI TRI
0xEB    0x0E4B  # THAI CHARACTER MAI CHATTAWA
0xEC    0x0E4C  # THAI CHARACTER THANTHAKHAT
0xED    0x0E4D  # THAI CHARACTER NIKHAHIT
0xEE    0x2122  # TRADE MARK SIGN
0xEF    0x0E4F  # THAI CHARACTER FONGMAN
0xF0    0x0E50  # THAI DIGIT ZERO
0xF1    0x0E51  # THAI DIGIT ONE
0xF2    0x0E52  # THAI DIGIT TWO
0xF3    0x0E53  # THAI DIGIT THREE
0xF4    0x0E54  # THAI DIGIT FOUR
0xF5    0x0E55  # THAI DIGIT FIVE
0xF6    0x0E56  # THAI DIGIT SIX
0xF7    0x0E57  # THAI DIGIT SEVEN
0xF8    0x0E58  # THAI DIGIT EIGHT
0xF9    0x0E59  # THAI DIGIT NINE
0xFA    0x00AE  # REGISTERED SIGN
0xFB    0x00A9  # COPYRIGHT SIGN

"
! !

!CharacterEncoder::MAC_Thai class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-thai' )
! !

!CharacterEncoder::MAC_Turkish class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/TURKISH.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/TURKISH.TXT

#=======================================================================
#   File name:  TURKISH.TXT
#
#   Contents:   Map (external version) from Mac OS Turkish
#               character set to Unicode 2.1 through Unicode 3.2
#
#   Copyright:  (c) 1995-2002 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#      b3,c1 2002-Dec-19    Update URLs, notes. Matches internal
#                           utom<b1>.
#       b02  1999-Sep-22    Update contact e-mail address. Matches
#                           internal utom<b1>, ufrm<b1>, and Text
#                           Encoding Converter version 1.5.
#       n05  1998-Feb-05    Minor update to header comments
#       n03  1997-Dec-14    Update to match internal utom<n5>, ufrm<n15>:
#                           Change standard mapping for 0xBD from U+2126
#                           to its canonical decomposition, U+03A9.
#       n02  1995-Apr-15    First version (after fixing some typos).
#                           Matches internal ufrm<n4>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, 'Macintosh' can be used to refer to
#   Macintosh computers and 'Unicode' can be used to refer to the
#   Unicode standard.
#
#   Apple makes no warranty or representation, either express or
#   implied, with respect to these tables, their quality, accuracy, or
#   fitness for a particular purpose. In no event will Apple be liable
#   for direct, indirect, special, incidental, or consequential damages 
#   resulting from any defect or inaccuracy in this document or the
#   accompanying tables.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file 'README.TXT'.
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Turkish code (in hex as 0xNN)
#     Column #2 is the corresponding Unicode (in hex as 0xNNNN)
#     Column #3 is a comment containing the Unicode name
#
#   The entries are in Mac OS Turkish code order.
#
#   Two of these mappings requires the use of a corporate character.
#   See the file 'CORPCHAR.TXT' and notes below.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Roman character set uses the standard control characters at
#   0x00-0x1F and 0x7F.
#
# Notes on Mac OS Turkish:
# ------------------------
#
#       Mac OS Turkish is used for Turkish.
#
#   The Mac OS Turkish encoding shares the script code smRoman
#   (0) with the Mac OS Roman encoding. To determine if the Turkish
#   encoding is being used, you must also check if the system region
#   code is 24, verTurkey.
#
#   This character set is a variant of standard Mac OS Roman. It adds
#   upper & lower G with breve, upper & lower S with cedilla, upper I
#   with dot, and moves the dotless lower i from its position at 0xF5
#   in standard Mac OS Roman to a position at 0xDD here (leaving the
#   0xF5 code point undefined in Mac OS Turkish). This gives a total
#   of 7 code point differences from standard Mac OS Roman.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
#   The following corporate zone Unicode characters are used in this
#   mapping:
#
#     0xF8A0  undefined1, used to map the single undefined code point
#             in Mac OS Turkish (to obtain roundtrip fidelity for all
#             code points).
#     0xF8FF  Apple logo
#
#   NOTE: The graphic image associated with the Apple logo character
#   is not authorized for use without permission of Apple, and
#   unauthorized use might constitute trademark infringement.
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version n02 to version n03:
#
#   - Change mapping of 0xBD from U+2126 to its canonical
#     decomposition, U+03A9.
#
##################

0x20    0x0020  # SPACE
0x21    0x0021  # EXCLAMATION MARK
0x22    0x0022  # QUOTATION MARK
0x23    0x0023  # NUMBER SIGN
0x24    0x0024  # DOLLAR SIGN
0x25    0x0025  # PERCENT SIGN
0x26    0x0026  # AMPERSAND
0x27    0x0027  # APOSTROPHE
0x28    0x0028  # LEFT PARENTHESIS
0x29    0x0029  # RIGHT PARENTHESIS
0x2A    0x002A  # ASTERISK
0x2B    0x002B  # PLUS SIGN
0x2C    0x002C  # COMMA
0x2D    0x002D  # HYPHEN-MINUS
0x2E    0x002E  # FULL STOP
0x2F    0x002F  # SOLIDUS
0x30    0x0030  # DIGIT ZERO
0x31    0x0031  # DIGIT ONE
0x32    0x0032  # DIGIT TWO
0x33    0x0033  # DIGIT THREE
0x34    0x0034  # DIGIT FOUR
0x35    0x0035  # DIGIT FIVE
0x36    0x0036  # DIGIT SIX
0x37    0x0037  # DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT
0x39    0x0039  # DIGIT NINE
0x3A    0x003A  # COLON
0x3B    0x003B  # SEMICOLON
0x3C    0x003C  # LESS-THAN SIGN
0x3D    0x003D  # EQUALS SIGN
0x3E    0x003E  # GREATER-THAN SIGN
0x3F    0x003F  # QUESTION MARK
0x40    0x0040  # COMMERCIAL AT
0x41    0x0041  # LATIN CAPITAL LETTER A
0x42    0x0042  # LATIN CAPITAL LETTER B
0x43    0x0043  # LATIN CAPITAL LETTER C
0x44    0x0044  # LATIN CAPITAL LETTER D
0x45    0x0045  # LATIN CAPITAL LETTER E
0x46    0x0046  # LATIN CAPITAL LETTER F
0x47    0x0047  # LATIN CAPITAL LETTER G
0x48    0x0048  # LATIN CAPITAL LETTER H
0x49    0x0049  # LATIN CAPITAL LETTER I
0x4A    0x004A  # LATIN CAPITAL LETTER J
0x4B    0x004B  # LATIN CAPITAL LETTER K
0x4C    0x004C  # LATIN CAPITAL LETTER L
0x4D    0x004D  # LATIN CAPITAL LETTER M
0x4E    0x004E  # LATIN CAPITAL LETTER N
0x4F    0x004F  # LATIN CAPITAL LETTER O
0x50    0x0050  # LATIN CAPITAL LETTER P
0x51    0x0051  # LATIN CAPITAL LETTER Q
0x52    0x0052  # LATIN CAPITAL LETTER R
0x53    0x0053  # LATIN CAPITAL LETTER S
0x54    0x0054  # LATIN CAPITAL LETTER T
0x55    0x0055  # LATIN CAPITAL LETTER U
0x56    0x0056  # LATIN CAPITAL LETTER V
0x57    0x0057  # LATIN CAPITAL LETTER W
0x58    0x0058  # LATIN CAPITAL LETTER X
0x59    0x0059  # LATIN CAPITAL LETTER Y
0x5A    0x005A  # LATIN CAPITAL LETTER Z
0x5B    0x005B  # LEFT SQUARE BRACKET
0x5C    0x005C  # REVERSE SOLIDUS
0x5D    0x005D  # RIGHT SQUARE BRACKET
0x5E    0x005E  # CIRCUMFLEX ACCENT
0x5F    0x005F  # LOW LINE
0x60    0x0060  # GRAVE ACCENT
0x61    0x0061  # LATIN SMALL LETTER A
0x62    0x0062  # LATIN SMALL LETTER B
0x63    0x0063  # LATIN SMALL LETTER C
0x64    0x0064  # LATIN SMALL LETTER D
0x65    0x0065  # LATIN SMALL LETTER E
0x66    0x0066  # LATIN SMALL LETTER F
0x67    0x0067  # LATIN SMALL LETTER G
0x68    0x0068  # LATIN SMALL LETTER H
0x69    0x0069  # LATIN SMALL LETTER I
0x6A    0x006A  # LATIN SMALL LETTER J
0x6B    0x006B  # LATIN SMALL LETTER K
0x6C    0x006C  # LATIN SMALL LETTER L
0x6D    0x006D  # LATIN SMALL LETTER M
0x6E    0x006E  # LATIN SMALL LETTER N
0x6F    0x006F  # LATIN SMALL LETTER O
0x70    0x0070  # LATIN SMALL LETTER P
0x71    0x0071  # LATIN SMALL LETTER Q
0x72    0x0072  # LATIN SMALL LETTER R
0x73    0x0073  # LATIN SMALL LETTER S
0x74    0x0074  # LATIN SMALL LETTER T
0x75    0x0075  # LATIN SMALL LETTER U
0x76    0x0076  # LATIN SMALL LETTER V
0x77    0x0077  # LATIN SMALL LETTER W
0x78    0x0078  # LATIN SMALL LETTER X
0x79    0x0079  # LATIN SMALL LETTER Y
0x7A    0x007A  # LATIN SMALL LETTER Z
0x7B    0x007B  # LEFT CURLY BRACKET
0x7C    0x007C  # VERTICAL LINE
0x7D    0x007D  # RIGHT CURLY BRACKET
0x7E    0x007E  # TILDE
#
0x80    0x00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81    0x00C5  # LATIN CAPITAL LETTER A WITH RING ABOVE
0x82    0x00C7  # LATIN CAPITAL LETTER C WITH CEDILLA
0x83    0x00C9  # LATIN CAPITAL LETTER E WITH ACUTE
0x84    0x00D1  # LATIN CAPITAL LETTER N WITH TILDE
0x85    0x00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86    0x00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87    0x00E1  # LATIN SMALL LETTER A WITH ACUTE
0x88    0x00E0  # LATIN SMALL LETTER A WITH GRAVE
0x89    0x00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A    0x00E4  # LATIN SMALL LETTER A WITH DIAERESIS
0x8B    0x00E3  # LATIN SMALL LETTER A WITH TILDE
0x8C    0x00E5  # LATIN SMALL LETTER A WITH RING ABOVE
0x8D    0x00E7  # LATIN SMALL LETTER C WITH CEDILLA
0x8E    0x00E9  # LATIN SMALL LETTER E WITH ACUTE
0x8F    0x00E8  # LATIN SMALL LETTER E WITH GRAVE
0x90    0x00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91    0x00EB  # LATIN SMALL LETTER E WITH DIAERESIS
0x92    0x00ED  # LATIN SMALL LETTER I WITH ACUTE
0x93    0x00EC  # LATIN SMALL LETTER I WITH GRAVE
0x94    0x00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95    0x00EF  # LATIN SMALL LETTER I WITH DIAERESIS
0x96    0x00F1  # LATIN SMALL LETTER N WITH TILDE
0x97    0x00F3  # LATIN SMALL LETTER O WITH ACUTE
0x98    0x00F2  # LATIN SMALL LETTER O WITH GRAVE
0x99    0x00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A    0x00F6  # LATIN SMALL LETTER O WITH DIAERESIS
0x9B    0x00F5  # LATIN SMALL LETTER O WITH TILDE
0x9C    0x00FA  # LATIN SMALL LETTER U WITH ACUTE
0x9D    0x00F9  # LATIN SMALL LETTER U WITH GRAVE
0x9E    0x00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F    0x00FC  # LATIN SMALL LETTER U WITH DIAERESIS
0xA0    0x2020  # DAGGER
0xA1    0x00B0  # DEGREE SIGN
0xA2    0x00A2  # CENT SIGN
0xA3    0x00A3  # POUND SIGN
0xA4    0x00A7  # SECTION SIGN
0xA5    0x2022  # BULLET
0xA6    0x00B6  # PILCROW SIGN
0xA7    0x00DF  # LATIN SMALL LETTER SHARP S
0xA8    0x00AE  # REGISTERED SIGN
0xA9    0x00A9  # COPYRIGHT SIGN
0xAA    0x2122  # TRADE MARK SIGN
0xAB    0x00B4  # ACUTE ACCENT
0xAC    0x00A8  # DIAERESIS
0xAD    0x2260  # NOT EQUAL TO
0xAE    0x00C6  # LATIN CAPITAL LETTER AE
0xAF    0x00D8  # LATIN CAPITAL LETTER O WITH STROKE
0xB0    0x221E  # INFINITY
0xB1    0x00B1  # PLUS-MINUS SIGN
0xB2    0x2264  # LESS-THAN OR EQUAL TO
0xB3    0x2265  # GREATER-THAN OR EQUAL TO
0xB4    0x00A5  # YEN SIGN
0xB5    0x00B5  # MICRO SIGN
0xB6    0x2202  # PARTIAL DIFFERENTIAL
0xB7    0x2211  # N-ARY SUMMATION
0xB8    0x220F  # N-ARY PRODUCT
0xB9    0x03C0  # GREEK SMALL LETTER PI
0xBA    0x222B  # INTEGRAL
0xBB    0x00AA  # FEMININE ORDINAL INDICATOR
0xBC    0x00BA  # MASCULINE ORDINAL INDICATOR
0xBD    0x03A9  # GREEK CAPITAL LETTER OMEGA
0xBE    0x00E6  # LATIN SMALL LETTER AE
0xBF    0x00F8  # LATIN SMALL LETTER O WITH STROKE
0xC0    0x00BF  # INVERTED QUESTION MARK
0xC1    0x00A1  # INVERTED EXCLAMATION MARK
0xC2    0x00AC  # NOT SIGN
0xC3    0x221A  # SQUARE ROOT
0xC4    0x0192  # LATIN SMALL LETTER F WITH HOOK
0xC5    0x2248  # ALMOST EQUAL TO
0xC6    0x2206  # INCREMENT
0xC7    0x00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8    0x00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC9    0x2026  # HORIZONTAL ELLIPSIS
0xCA    0x00A0  # NO-BREAK SPACE
0xCB    0x00C0  # LATIN CAPITAL LETTER A WITH GRAVE
0xCC    0x00C3  # LATIN CAPITAL LETTER A WITH TILDE
0xCD    0x00D5  # LATIN CAPITAL LETTER O WITH TILDE
0xCE    0x0152  # LATIN CAPITAL LIGATURE OE
0xCF    0x0153  # LATIN SMALL LIGATURE OE
0xD0    0x2013  # EN DASH
0xD1    0x2014  # EM DASH
0xD2    0x201C  # LEFT DOUBLE QUOTATION MARK
0xD3    0x201D  # RIGHT DOUBLE QUOTATION MARK
0xD4    0x2018  # LEFT SINGLE QUOTATION MARK
0xD5    0x2019  # RIGHT SINGLE QUOTATION MARK
0xD6    0x00F7  # DIVISION SIGN
0xD7    0x25CA  # LOZENGE
0xD8    0x00FF  # LATIN SMALL LETTER Y WITH DIAERESIS
0xD9    0x0178  # LATIN CAPITAL LETTER Y WITH DIAERESIS
0xDA    0x011E  # LATIN CAPITAL LETTER G WITH BREVE
0xDB    0x011F  # LATIN SMALL LETTER G WITH BREVE
0xDC    0x0130  # LATIN CAPITAL LETTER I WITH DOT ABOVE
0xDD    0x0131  # LATIN SMALL LETTER DOTLESS I
0xDE    0x015E  # LATIN CAPITAL LETTER S WITH CEDILLA
0xDF    0x015F  # LATIN SMALL LETTER S WITH CEDILLA
0xE0    0x2021  # DOUBLE DAGGER
0xE1    0x00B7  # MIDDLE DOT
0xE2    0x201A  # SINGLE LOW-9 QUOTATION MARK
0xE3    0x201E  # DOUBLE LOW-9 QUOTATION MARK
0xE4    0x2030  # PER MILLE SIGN
0xE5    0x00C2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xE6    0x00CA  # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xE7    0x00C1  # LATIN CAPITAL LETTER A WITH ACUTE
0xE8    0x00CB  # LATIN CAPITAL LETTER E WITH DIAERESIS
0xE9    0x00C8  # LATIN CAPITAL LETTER E WITH GRAVE
0xEA    0x00CD  # LATIN CAPITAL LETTER I WITH ACUTE
0xEB    0x00CE  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xEC    0x00CF  # LATIN CAPITAL LETTER I WITH DIAERESIS
0xED    0x00CC  # LATIN CAPITAL LETTER I WITH GRAVE
0xEE    0x00D3  # LATIN CAPITAL LETTER O WITH ACUTE
0xEF    0x00D4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xF0    0xF8FF  # Apple logo
0xF1    0x00D2  # LATIN CAPITAL LETTER O WITH GRAVE
0xF2    0x00DA  # LATIN CAPITAL LETTER U WITH ACUTE
0xF3    0x00DB  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xF4    0x00D9  # LATIN CAPITAL LETTER U WITH GRAVE
0xF5    0xF8A0  # undefined1
0xF6    0x02C6  # MODIFIER LETTER CIRCUMFLEX ACCENT
0xF7    0x02DC  # SMALL TILDE
0xF8    0x00AF  # MACRON
0xF9    0x02D8  # BREVE
0xFA    0x02D9  # DOT ABOVE
0xFB    0x02DA  # RING ABOVE
0xFC    0x00B8  # CEDILLA
0xFD    0x02DD  # DOUBLE ACUTE ACCENT
0xFE    0x02DB  # OGONEK
0xFF    0x02C7  # CARON

"
! !

!CharacterEncoder::MAC_Turkish class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'mac-tukish' )
! !

!CharacterEncoder::MS_Ansi class methodsFor:'mapping'!

mapFileURL2_relativePathName
    ^ 'CP1252'
!

mapping
"
# From: http://std.dkuug.dk/i18n/charmaps/CP1252

<code_set_name> CP1252
<comment_char> %
<escape_char> /
% version: 1.0
% repertoiremap: mnemonic,ds
%  source: UNICODE 1.0

% alias MS-ANSI
CHARMAP
<NU>                   /x00   <U0000> NULL (NUL)
<SH>                   /x01   <U0001> START OF HEADING (SOH)
<SX>                   /x02   <U0002> START OF TEXT (STX)
<EX>                   /x03   <U0003> END OF TEXT (ETX)
<ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
<EQ>                   /x05   <U0005> ENQUIRY (ENQ)
<AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
<BL>                   /x07   <U0007> BELL (BEL)
<BS>                   /x08   <U0008> BACKSPACE (BS)
<HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
<LF>                   /x0A   <U000A> LINE FEED (LF)
<VT>                   /x0B   <U000B> LINE TABULATION (VT)
<FF>                   /x0C   <U000C> FORM FEED (FF)
<CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
<SO>                   /x0E   <U000E> SHIFT OUT (SO)
<SI>                   /x0F   <U000F> SHIFT IN (SI)
<DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
<D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
<D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
<D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
<D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CN>                   /x18   <U0018> CANCEL (CAN)
<EM>                   /x19   <U0019> END OF MEDIUM (EM)
<SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
<EC>                   /x1B   <U001B> ESCAPE (ESC)
<FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
<GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
<RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
<US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
<SP>                   /x20   <U0020> SPACE
<!!>                    /x21   <U0021> EXCLAMATION MARK
<'>                    /x22   <U0022> QUOTATION MARK
<Nb>                   /x23   <U0023> NUMBER SIGN
<DO>                   /x24   <U0024> DOLLAR SIGN
<%>                    /x25   <U0025> PERCENT SIGN
<&>                    /x26   <U0026> AMPERSAND
<'>                    /x27   <U0027> APOSTROPHE
<(>                    /x28   <U0028> LEFT PARENTHESIS
<)>                    /x29   <U0029> RIGHT PARENTHESIS
<*>                    /x2A   <U002A> ASTERISK
<+>                    /x2B   <U002B> PLUS SIGN
<,>                    /x2C   <U002C> COMMA
<->                    /x2D   <U002D> HYPHEN-MINUS
<.>                    /x2E   <U002E> FULL STOP
<//>                   /x2F   <U002F> SOLIDUS
<0>                    /x30   <U0030> DIGIT ZERO
<1>                    /x31   <U0031> DIGIT ONE
<2>                    /x32   <U0032> DIGIT TWO
<3>                    /x33   <U0033> DIGIT THREE
<4>                    /x34   <U0034> DIGIT FOUR
<5>                    /x35   <U0035> DIGIT FIVE
<6>                    /x36   <U0036> DIGIT SIX
<7>                    /x37   <U0037> DIGIT SEVEN
<8>                    /x38   <U0038> DIGIT EIGHT
<9>                    /x39   <U0039> DIGIT NINE
<:>                    /x3A   <U003A> COLON
<;>                    /x3B   <U003B> SEMICOLON
<<>                    /x3C   <U003C> LESS-THAN SIGN
<=>                    /x3D   <U003D> EQUALS SIGN
</>>                   /x3E   <U003E> GREATER-THAN SIGN
<?>                    /x3F   <U003F> QUESTION MARK
<At>                   /x40   <U0040> COMMERCIAL AT
<A>                    /x41   <U0041> LATIN CAPITAL LETTER A
<B>                    /x42   <U0042> LATIN CAPITAL LETTER B
<C>                    /x43   <U0043> LATIN CAPITAL LETTER C
<D>                    /x44   <U0044> LATIN CAPITAL LETTER D
<E>                    /x45   <U0045> LATIN CAPITAL LETTER E
<F>                    /x46   <U0046> LATIN CAPITAL LETTER F
<G>                    /x47   <U0047> LATIN CAPITAL LETTER G
<H>                    /x48   <U0048> LATIN CAPITAL LETTER H
<I>                    /x49   <U0049> LATIN CAPITAL LETTER I
<J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
<K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
<L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
<M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
<N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
<O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
<P>                    /x50   <U0050> LATIN CAPITAL LETTER P
<Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
<R>                    /x52   <U0052> LATIN CAPITAL LETTER R
<S>                    /x53   <U0053> LATIN CAPITAL LETTER S
<T>                    /x54   <U0054> LATIN CAPITAL LETTER T
<U>                    /x55   <U0055> LATIN CAPITAL LETTER U
<V>                    /x56   <U0056> LATIN CAPITAL LETTER V
<W>                    /x57   <U0057> LATIN CAPITAL LETTER W
<X>                    /x58   <U0058> LATIN CAPITAL LETTER X
<Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
<Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
<<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
<////>                 /x5C   <U005C> REVERSE SOLIDUS
<)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
<'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
<_>                    /x5F   <U005F> LOW LINE
<'!!>                   /x60   <U0060> GRAVE ACCENT
<a>                    /x61   <U0061> LATIN SMALL LETTER A
<b>                    /x62   <U0062> LATIN SMALL LETTER B
<c>                    /x63   <U0063> LATIN SMALL LETTER C
<d>                    /x64   <U0064> LATIN SMALL LETTER D
<e>                    /x65   <U0065> LATIN SMALL LETTER E
<f>                    /x66   <U0066> LATIN SMALL LETTER F
<g>                    /x67   <U0067> LATIN SMALL LETTER G
<h>                    /x68   <U0068> LATIN SMALL LETTER H
<i>                    /x69   <U0069> LATIN SMALL LETTER I
<j>                    /x6A   <U006A> LATIN SMALL LETTER J
<k>                    /x6B   <U006B> LATIN SMALL LETTER K
<l>                    /x6C   <U006C> LATIN SMALL LETTER L
<m>                    /x6D   <U006D> LATIN SMALL LETTER M
<n>                    /x6E   <U006E> LATIN SMALL LETTER N
<o>                    /x6F   <U006F> LATIN SMALL LETTER O
<p>                    /x70   <U0070> LATIN SMALL LETTER P
<q>                    /x71   <U0071> LATIN SMALL LETTER Q
<r>                    /x72   <U0072> LATIN SMALL LETTER R
<s>                    /x73   <U0073> LATIN SMALL LETTER S
<t>                    /x74   <U0074> LATIN SMALL LETTER T
<u>                    /x75   <U0075> LATIN SMALL LETTER U
<v>                    /x76   <U0076> LATIN SMALL LETTER V
<w>                    /x77   <U0077> LATIN SMALL LETTER W
<x>                    /x78   <U0078> LATIN SMALL LETTER X
<y>                    /x79   <U0079> LATIN SMALL LETTER Y
<z>                    /x7A   <U007A> LATIN SMALL LETTER Z
<(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
<!!!!>                   /x7C   <U007C> VERTICAL LINE
<!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
<'?>                   /x7E   <U007E> TILDE
<DT>                   /x7F   <U007F> DELETE (DEL)
<.9>                   /x82   <U201A> SINGLE LOW-9 QUOTATION MARK
<f2>                   /x83   <U0192> LATIN SMALL LETTER F WITH HOOK
<:9>                   /x84   <U201E> DOUBLE LOW-9 QUOTATION MARK
<.3>                   /x85   <U2026> HORIZONTAL ELLIPSIS
<//->                  /x86   <U2020> DAGGER
<//=>                  /x87   <U2021> DOUBLE DAGGER
<1/>>                  /x88   <U02C6> MODIFIER LETTER CIRCUMFLEX ACCENT
<%0>                   /x89   <U2030> PER MILLE SIGN
<S<>                   /x8A   <U0160> LATIN CAPITAL LETTER S WITH CARON
<<1>                   /x8B   <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
<OE>                   /x8C   <U0152> LATIN CAPITAL LIGATURE OE
<'6>                   /x91   <U2018> LEFT SINGLE QUOTATION MARK
<'9>                   /x92   <U2019> RIGHT SINGLE QUOTATION MARK
<'6>                   /x93   <U201C> LEFT DOUBLE QUOTATION MARK
<'9>                   /x94   <U201D> RIGHT DOUBLE QUOTATION MARK
<sb>                   /x95   <U2022> BULLET
<-N>                   /x96   <U2013> EN DASH
<-M>                   /x97   <U2014> EM DASH
<1?>                   /x98   <U02DC> SMALL TILDE
<TM>                   /x99   <U2122> TRADE MARK SIGN
<s<>                   /x9A   <U0161> LATIN SMALL LETTER S WITH CARON
</>1>                  /x9B   <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
<oe>                   /x9C   <U0153> LATIN SMALL LIGATURE OE
<Y:>                   /x9F   <U0178> LATIN CAPITAL LETTER Y WITH DIAERESIS
<NS>                   /xA0   <U00A0> NO-BREAK SPACE
<!!I>                   /xA1   <U00A1> INVERTED EXCLAMATION MARK
<Ct>                   /xA2   <U00A2> CENT SIGN
<Pd>                   /xA3   <U00A3> POUND SIGN
<Cu>                   /xA4   <U00A4> CURRENCY SIGN
<Ye>                   /xA5   <U00A5> YEN SIGN
<BB>                   /xA6   <U00A6> BROKEN BAR
<SE>                   /xA7   <U00A7> SECTION SIGN
<':>                   /xA8   <U00A8> DIAERESIS
<Co>                   /xA9   <U00A9> COPYRIGHT SIGN
<-a>                   /xAA   <U00AA> FEMININE ORDINAL INDICATOR
<<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
<NO>                   /xAC   <U00AC> NOT SIGN
<-->                   /xAD   <U00AD> SOFT HYPHEN
<Rg>                   /xAE   <U00AE> REGISTERED SIGN
<'m>                   /xAF   <U00AF> MACRON
<DG>                   /xB0   <U00B0> DEGREE SIGN
<+->                   /xB1   <U00B1> PLUS-MINUS SIGN
<2S>                   /xB2   <U00B2> SUPERSCRIPT TWO
<3S>                   /xB3   <U00B3> SUPERSCRIPT THREE
<''>                   /xB4   <U00B4> ACUTE ACCENT
<My>                   /xB5   <U00B5> MICRO SIGN
<PI>                   /xB6   <U00B6> PILCROW SIGN
<.M>                   /xB7   <U00B7> MIDDLE DOT
<',>                   /xB8   <U00B8> CEDILLA
<1S>                   /xB9   <U00B9> SUPERSCRIPT ONE
<-o>                   /xBA   <U00BA> MASCULINE ORDINAL INDICATOR
</>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
<14>                   /xBC   <U00BC> VULGAR FRACTION ONE QUARTER
<12>                   /xBD   <U00BD> VULGAR FRACTION ONE HALF
<34>                   /xBE   <U00BE> VULGAR FRACTION THREE QUARTERS
<?I>                   /xBF   <U00BF> INVERTED QUESTION MARK
<A!!>                   /xC0   <U00C0> LATIN CAPITAL LETTER A WITH GRAVE
<A'>                   /xC1   <U00C1> LATIN CAPITAL LETTER A WITH ACUTE
<A/>>                  /xC2   <U00C2> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
<A?>                   /xC3   <U00C3> LATIN CAPITAL LETTER A WITH TILDE
<A:>                   /xC4   <U00C4> LATIN CAPITAL LETTER A WITH DIAERESIS
<AA>                   /xC5   <U00C5> LATIN CAPITAL LETTER A WITH RING ABOVE
<AE>                   /xC6   <U00C6> LATIN CAPITAL LETTER AE
<C,>                   /xC7   <U00C7> LATIN CAPITAL LETTER C WITH CEDILLA
<E!!>                   /xC8   <U00C8> LATIN CAPITAL LETTER E WITH GRAVE
<E'>                   /xC9   <U00C9> LATIN CAPITAL LETTER E WITH ACUTE
<E/>>                  /xCA   <U00CA> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
<E:>                   /xCB   <U00CB> LATIN CAPITAL LETTER E WITH DIAERESIS
<I!!>                   /xCC   <U00CC> LATIN CAPITAL LETTER I WITH GRAVE
<I'>                   /xCD   <U00CD> LATIN CAPITAL LETTER I WITH ACUTE
<I/>>                  /xCE   <U00CE> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
<I:>                   /xCF   <U00CF> LATIN CAPITAL LETTER I WITH DIAERESIS
<D->                   /xD0   <U00D0> LATIN CAPITAL LETTER ETH (Icelandic)
<N?>                   /xD1   <U00D1> LATIN CAPITAL LETTER N WITH TILDE
<O!!>                   /xD2   <U00D2> LATIN CAPITAL LETTER O WITH GRAVE
<O'>                   /xD3   <U00D3> LATIN CAPITAL LETTER O WITH ACUTE
<O/>>                  /xD4   <U00D4> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
<O?>                   /xD5   <U00D5> LATIN CAPITAL LETTER O WITH TILDE
<O:>                   /xD6   <U00D6> LATIN CAPITAL LETTER O WITH DIAERESIS
<*X>                   /xD7   <U00D7> MULTIPLICATION SIGN
<O//>                  /xD8   <U00D8> LATIN CAPITAL LETTER O WITH STROKE
<U!!>                   /xD9   <U00D9> LATIN CAPITAL LETTER U WITH GRAVE
<U'>                   /xDA   <U00DA> LATIN CAPITAL LETTER U WITH ACUTE
<U/>>                  /xDB   <U00DB> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
<U:>                   /xDC   <U00DC> LATIN CAPITAL LETTER U WITH DIAERESIS
<Y'>                   /xDD   <U00DD> LATIN CAPITAL LETTER Y WITH ACUTE
<TH>                   /xDE   <U00DE> LATIN CAPITAL LETTER THORN (Icelandic)
<ss>                   /xDF   <U00DF> LATIN SMALL LETTER SHARP S (German)
<a!!>                   /xE0   <U00E0> LATIN SMALL LETTER A WITH GRAVE
<a'>                   /xE1   <U00E1> LATIN SMALL LETTER A WITH ACUTE
<a/>>                  /xE2   <U00E2> LATIN SMALL LETTER A WITH CIRCUMFLEX
<a?>                   /xE3   <U00E3> LATIN SMALL LETTER A WITH TILDE
<a:>                   /xE4   <U00E4> LATIN SMALL LETTER A WITH DIAERESIS
<aa>                   /xE5   <U00E5> LATIN SMALL LETTER A WITH RING ABOVE
<ae>                   /xE6   <U00E6> LATIN SMALL LETTER AE
<c,>                   /xE7   <U00E7> LATIN SMALL LETTER C WITH CEDILLA
<e!!>                   /xE8   <U00E8> LATIN SMALL LETTER E WITH GRAVE
<e'>                   /xE9   <U00E9> LATIN SMALL LETTER E WITH ACUTE
<e/>>                  /xEA   <U00EA> LATIN SMALL LETTER E WITH CIRCUMFLEX
<e:>                   /xEB   <U00EB> LATIN SMALL LETTER E WITH DIAERESIS
<i!!>                   /xEC   <U00EC> LATIN SMALL LETTER I WITH GRAVE
<i'>                   /xED   <U00ED> LATIN SMALL LETTER I WITH ACUTE
<i/>>                  /xEE   <U00EE> LATIN SMALL LETTER I WITH CIRCUMFLEX
<i:>                   /xEF   <U00EF> LATIN SMALL LETTER I WITH DIAERESIS
<d->                   /xF0   <U00F0> LATIN SMALL LETTER ETH (Icelandic)
<n?>                   /xF1   <U00F1> LATIN SMALL LETTER N WITH TILDE
<o!!>                   /xF2   <U00F2> LATIN SMALL LETTER O WITH GRAVE
<o'>                   /xF3   <U00F3> LATIN SMALL LETTER O WITH ACUTE
<o/>>                  /xF4   <U00F4> LATIN SMALL LETTER O WITH CIRCUMFLEX
<o?>                   /xF5   <U00F5> LATIN SMALL LETTER O WITH TILDE
<o:>                   /xF6   <U00F6> LATIN SMALL LETTER O WITH DIAERESIS
<-:>                   /xF7   <U00F7> DIVISION SIGN
<o//>                  /xF8   <U00F8> LATIN SMALL LETTER O WITH STROKE
<u!!>                   /xF9   <U00F9> LATIN SMALL LETTER U WITH GRAVE
<u'>                   /xFA   <U00FA> LATIN SMALL LETTER U WITH ACUTE
<u/>>                  /xFB   <U00FB> LATIN SMALL LETTER U WITH CIRCUMFLEX
<u:>                   /xFC   <U00FC> LATIN SMALL LETTER U WITH DIAERESIS
<y'>                   /xFD   <U00FD> LATIN SMALL LETTER Y WITH ACUTE
<th>                   /xFE   <U00FE> LATIN SMALL LETTER THORN (Icelandic)
<y:>                   /xFF   <U00FF> LATIN SMALL LETTER Y WITH DIAERESIS
<NUL>                  /x00   <U0000> NUL
<SOH>                  /x01   <U0001> START OF HEADING (SOH)
<STX>                  /x02   <U0002> START OF TEXT (STX)
<ETX>                  /x03   <U0003> END OF TEXT (ETX)
<EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
<ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
<ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
<alert>                /x07   <U0007> BELL (BEL)
<BEL>                  /x07   <U0007> BELL (BEL)
<backspace>            /x08   <U0008> BACKSPACE (BS)
<tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
<newline>              /x0A   <U000A> LINE FEED (LF)
<vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
<form-feed>            /x0C   <U000C> FORM FEED (FF)
<carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
<DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
<DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
<DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
<DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
<DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CAN>                  /x18   <U0018> CANCEL (CAN)
<SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
<ESC>                  /x1B   <U001B> ESCAPE (ESC)
<IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
<IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
<intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
<IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
<IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
<DEL>                  /x7F   <U007F> DELETE (DEL)
<space>                /x20   <U0020> SPACE
<exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
<quotation-mark>       /x22   <U0022> QUOTATION MARK
<number-sign>          /x23   <U0023> NUMBER SIGN
<dollar-sign>          /x24   <U0024> DOLLAR SIGN
<percent-sign>         /x25   <U0025> PERCENT SIGN
<ampersand>            /x26   <U0026> AMPERSAND
<apostrophe>           /x27   <U0027> APOSTROPHE
<left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
<right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
<asterisk>             /x2A   <U002A> ASTERISK
<plus-sign>            /x2B   <U002B> PLUS SIGN
<comma>                /x2C   <U002C> COMMA
<hyphen>               /x2D   <U002D> HYPHEN-MINUS
<hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
<period>               /x2E   <U002E> FULL STOP
<full-stop>            /x2E   <U002E> FULL STOP
<slash>                /x2F   <U002F> SOLIDUS
<solidus>              /x2F   <U002F> SOLIDUS
<zero>                 /x30   <U0030> DIGIT ZERO
<one>                  /x31   <U0031> DIGIT ONE
<two>                  /x32   <U0032> DIGIT TWO
<three>                /x33   <U0033> DIGIT THREE
<four>                 /x34   <U0034> DIGIT FOUR
<five>                 /x35   <U0035> DIGIT FIVE
<six>                  /x36   <U0036> DIGIT SIX
<seven>                /x37   <U0037> DIGIT SEVEN
<eight>                /x38   <U0038> DIGIT EIGHT
<nine>                 /x39   <U0039> DIGIT NINE
<colon>                /x3A   <U003A> COLON
<semicolon>            /x3B   <U003B> SEMICOLON
<less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
<equals-sign>          /x3D   <U003D> EQUALS SIGN
<greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
<question-mark>        /x3F   <U003F> QUESTION MARK
<commercial-at>        /x40   <U0040> COMMERCIAL AT
<left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
<backslash>            /x5C   <U005C> REVERSE SOLIDUS
<reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
<right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
<circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
<circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
<underscore>           /x5F   <U005F> LOW LINE
<low-line>             /x5F   <U005F> LOW LINE
<grave-accent>         /x60   <U0060> GRAVE ACCENT
<left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
<left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
<vertical-line>        /x7C   <U007C> VERTICAL LINE
<right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
<right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
<tilde>                /x7E   <U007E> TILDE
END CHARMAP

"
! !

!CharacterEncoder::MS_Ansi class methodsFor:'queries'!

namesOfEncoding
    ^ #( #'ms-ansi' 'ms_ansi' 'ms-cp1252' 'cp1252' 'microsoft-ansi' 'windows-1252')
! !

!CharacterEncoder::MS_Arabic class methodsFor:'mapping'!

mapFileURL2_relativePathName
    ^ 'CP1256'
!

mapping
"
# From: http://std.dkuug.dk/i18n/charmaps/CP1256

<code_set_name> CP1256
<comment_char> %
<escape_char> /
% version: 1.0
% repertoiremap: mnemonic,ds
%  source: UNICODE 1.0

% alias MS-ARAB
CHARMAP
<NU>                   /x00   <U0000> NULL (NUL)
<SH>                   /x01   <U0001> START OF HEADING (SOH)
<SX>                   /x02   <U0002> START OF TEXT (STX)
<EX>                   /x03   <U0003> END OF TEXT (ETX)
<ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
<EQ>                   /x05   <U0005> ENQUIRY (ENQ)
<AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
<BL>                   /x07   <U0007> BELL (BEL)
<BS>                   /x08   <U0008> BACKSPACE (BS)
<HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
<LF>                   /x0A   <U000A> LINE FEED (LF)
<VT>                   /x0B   <U000B> LINE TABULATION (VT)
<FF>                   /x0C   <U000C> FORM FEED (FF)
<CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
<SO>                   /x0E   <U000E> SHIFT OUT (SO)
<SI>                   /x0F   <U000F> SHIFT IN (SI)
<DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
<D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
<D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
<D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
<D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CN>                   /x18   <U0018> CANCEL (CAN)
<EM>                   /x19   <U0019> END OF MEDIUM (EM)
<SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
<EC>                   /x1B   <U001B> ESCAPE (ESC)
<FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
<GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
<RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
<US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
<SP>                   /x20   <U0020> SPACE
<!!>                    /x21   <U0021> EXCLAMATION MARK
<'>                    /x22   <U0022> QUOTATION MARK
<Nb>                   /x23   <U0023> NUMBER SIGN
<DO>                   /x24   <U0024> DOLLAR SIGN
<%>                    /x25   <U0025> PERCENT SIGN
<&>                    /x26   <U0026> AMPERSAND
<'>                    /x27   <U0027> APOSTROPHE
<(>                    /x28   <U0028> LEFT PARENTHESIS
<)>                    /x29   <U0029> RIGHT PARENTHESIS
<*>                    /x2A   <U002A> ASTERISK
<+>                    /x2B   <U002B> PLUS SIGN
<,>                    /x2C   <U002C> COMMA
<->                    /x2D   <U002D> HYPHEN-MINUS
<.>                    /x2E   <U002E> FULL STOP
<//>                   /x2F   <U002F> SOLIDUS
<0>                    /x30   <U0030> DIGIT ZERO
<1>                    /x31   <U0031> DIGIT ONE
<2>                    /x32   <U0032> DIGIT TWO
<3>                    /x33   <U0033> DIGIT THREE
<4>                    /x34   <U0034> DIGIT FOUR
<5>                    /x35   <U0035> DIGIT FIVE
<6>                    /x36   <U0036> DIGIT SIX
<7>                    /x37   <U0037> DIGIT SEVEN
<8>                    /x38   <U0038> DIGIT EIGHT
<9>                    /x39   <U0039> DIGIT NINE
<:>                    /x3A   <U003A> COLON
<;>                    /x3B   <U003B> SEMICOLON
<<>                    /x3C   <U003C> LESS-THAN SIGN
<=>                    /x3D   <U003D> EQUALS SIGN
</>>                   /x3E   <U003E> GREATER-THAN SIGN
<?>                    /x3F   <U003F> QUESTION MARK
<At>                   /x40   <U0040> COMMERCIAL AT
<A>                    /x41   <U0041> LATIN CAPITAL LETTER A
<B>                    /x42   <U0042> LATIN CAPITAL LETTER B
<C>                    /x43   <U0043> LATIN CAPITAL LETTER C
<D>                    /x44   <U0044> LATIN CAPITAL LETTER D
<E>                    /x45   <U0045> LATIN CAPITAL LETTER E
<F>                    /x46   <U0046> LATIN CAPITAL LETTER F
<G>                    /x47   <U0047> LATIN CAPITAL LETTER G
<H>                    /x48   <U0048> LATIN CAPITAL LETTER H
<I>                    /x49   <U0049> LATIN CAPITAL LETTER I
<J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
<K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
<L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
<M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
<N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
<O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
<P>                    /x50   <U0050> LATIN CAPITAL LETTER P
<Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
<R>                    /x52   <U0052> LATIN CAPITAL LETTER R
<S>                    /x53   <U0053> LATIN CAPITAL LETTER S
<T>                    /x54   <U0054> LATIN CAPITAL LETTER T
<U>                    /x55   <U0055> LATIN CAPITAL LETTER U
<V>                    /x56   <U0056> LATIN CAPITAL LETTER V
<W>                    /x57   <U0057> LATIN CAPITAL LETTER W
<X>                    /x58   <U0058> LATIN CAPITAL LETTER X
<Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
<Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
<<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
<////>                 /x5C   <U005C> REVERSE SOLIDUS
<)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
<'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
<_>                    /x5F   <U005F> LOW LINE
<'!!>                   /x60   <U0060> GRAVE ACCENT
<a>                    /x61   <U0061> LATIN SMALL LETTER A
<b>                    /x62   <U0062> LATIN SMALL LETTER B
<c>                    /x63   <U0063> LATIN SMALL LETTER C
<d>                    /x64   <U0064> LATIN SMALL LETTER D
<e>                    /x65   <U0065> LATIN SMALL LETTER E
<f>                    /x66   <U0066> LATIN SMALL LETTER F
<g>                    /x67   <U0067> LATIN SMALL LETTER G
<h>                    /x68   <U0068> LATIN SMALL LETTER H
<i>                    /x69   <U0069> LATIN SMALL LETTER I
<j>                    /x6A   <U006A> LATIN SMALL LETTER J
<k>                    /x6B   <U006B> LATIN SMALL LETTER K
<l>                    /x6C   <U006C> LATIN SMALL LETTER L
<m>                    /x6D   <U006D> LATIN SMALL LETTER M
<n>                    /x6E   <U006E> LATIN SMALL LETTER N
<o>                    /x6F   <U006F> LATIN SMALL LETTER O
<p>                    /x70   <U0070> LATIN SMALL LETTER P
<q>                    /x71   <U0071> LATIN SMALL LETTER Q
<r>                    /x72   <U0072> LATIN SMALL LETTER R
<s>                    /x73   <U0073> LATIN SMALL LETTER S
<t>                    /x74   <U0074> LATIN SMALL LETTER T
<u>                    /x75   <U0075> LATIN SMALL LETTER U
<v>                    /x76   <U0076> LATIN SMALL LETTER V
<w>                    /x77   <U0077> LATIN SMALL LETTER W
<x>                    /x78   <U0078> LATIN SMALL LETTER X
<y>                    /x79   <U0079> LATIN SMALL LETTER Y
<z>                    /x7A   <U007A> LATIN SMALL LETTER Z
<(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
<!!!!>                   /x7C   <U007C> VERTICAL LINE
<!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
<'?>                   /x7E   <U007E> TILDE
<DT>                   /x7F   <U007F> DELETE (DEL)
<,+>                   /x80   <U060C> ARABIC COMMA
<0a>                   /x81   <U0660> ARABIC-INDIC DIGIT ZERO
<.9>                   /x82   <U201A> SINGLE LOW-9 QUOTATION MARK
<1a>                   /x83   <U0661> ARABIC-INDIC DIGIT ONE
<:9>                   /x84   <U201E> DOUBLE LOW-9 QUOTATION MARK
<.3>                   /x85   <U2026> HORIZONTAL ELLIPSIS
<//->                  /x86   <U2020> DAGGER
<//=>                  /x87   <U2021> DOUBLE DAGGER
<2a>                   /x88   <U0662> ARABIC-INDIC DIGIT TWO
<3a>                   /x89   <U0663> ARABIC-INDIC DIGIT THREE
<4a>                   /x8A   <U0664> ARABIC-INDIC DIGIT FOUR
<<1>                   /x8B   <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
<5a>                   /x8C   <U0665> ARABIC-INDIC DIGIT FIVE
<6a>                   /x8D   <U0666> ARABIC-INDIC DIGIT SIX
<7a>                   /x8E   <U0667> ARABIC-INDIC DIGIT SEVEN
<8a>                   /x8F   <U0668> ARABIC-INDIC DIGIT EIGHT
<9a>                   /x90   <U0669> ARABIC-INDIC DIGIT NINE
<'6>                   /x91   <U2018> LEFT SINGLE QUOTATION MARK
<'9>                   /x92   <U2019> RIGHT SINGLE QUOTATION MARK
<'6>                   /x93   <U201C> LEFT DOUBLE QUOTATION MARK
<'9>                   /x94   <U201D> RIGHT DOUBLE QUOTATION MARK
<sb>                   /x95   <U2022> BULLET
<-N>                   /x96   <U2013> EN DASH
<-M>                   /x97   <U2014> EM DASH
<;+>                   /x98   <U061B> ARABIC SEMICOLON
<TM>                   /x99   <U2122> TRADE MARK SIGN
<?+>                   /x9A   <U061F> ARABIC QUESTION MARK
</>1>                  /x9B   <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
<H'>                   /x9C   <U0621> ARABIC LETTER HAMZA
<aM>                   /x9D   <U0622> ARABIC LETTER ALEF WITH MADDA ABOVE
<aH>                   /x9E   <U0623> ARABIC LETTER ALEF WITH HAMZA ABOVE
<Y:>                   /x9F   <U0178> LATIN CAPITAL LETTER Y WITH DIAERESIS
<NS>                   /xA0   <U00A0> NO-BREAK SPACE
<wH>                   /xA1   <U0624> ARABIC LETTER WAW WITH HAMZA ABOVE
<ah>                   /xA2   <U0625> ARABIC LETTER ALEF WITH HAMZA BELOW
<Pd>                   /xA3   <U00A3> POUND SIGN
<Cu>                   /xA4   <U00A4> CURRENCY SIGN
<yH>                   /xA5   <U0626> ARABIC LETTER YEH WITH HAMZA ABOVE
<BB>                   /xA6   <U00A6> BROKEN BAR
<SE>                   /xA7   <U00A7> SECTION SIGN
<a+>                   /xA8   <U0627> ARABIC LETTER ALEF
<Co>                   /xA9   <U00A9> COPYRIGHT SIGN
<b+>                   /xAA   <U0628> ARABIC LETTER BEH
<<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
<NO>                   /xAC   <U00AC> NOT SIGN
<-->                   /xAD   <U00AD> SOFT HYPHEN
<Rg>                   /xAE   <U00AE> REGISTERED SIGN
<p+>                   /xAF   <U067E> ARABIC LETTER PEH
<DG>                   /xB0   <U00B0> DEGREE SIGN
<+->                   /xB1   <U00B1> PLUS-MINUS SIGN
<tm>                   /xB2   <U0629> ARABIC LETTER TEH MARBUTA
<t+>                   /xB3   <U062A> ARABIC LETTER TEH
<tk>                   /xB4   <U062B> ARABIC LETTER THEH
<My>                   /xB5   <U00B5> MICRO SIGN
<PI>                   /xB6   <U00B6> PILCROW SIGN
<.M>                   /xB7   <U00B7> MIDDLE DOT
<g+>                   /xB8   <U062C> ARABIC LETTER JEEM
<tc>                   /xB9   <U0686> ARABIC LETTER TCHEH
<hk>                   /xBA   <U062D> ARABIC LETTER HAH
</>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
<x+>                   /xBC   <U062E> ARABIC LETTER KHAH
<d+>                   /xBD   <U062F> ARABIC LETTER DAL
<dk>                   /xBE   <U0630> ARABIC LETTER THAL
<r+>                   /xBF   <U0631> ARABIC LETTER REH
<A!!>                   /xC0   <U00C0> LATIN CAPITAL LETTER A WITH GRAVE
<z+>                   /xC1   <U0632> ARABIC LETTER ZAIN
<A/>>                  /xC2   <U00C2> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
<zj>                   /xC3   <U0698> ARABIC LETTER JEH
<s+>                   /xC4   <U0633> ARABIC LETTER SEEN
<sn>                   /xC5   <U0634> ARABIC LETTER SHEEN
<c+>                   /xC6   <U0635> ARABIC LETTER SAD
<C,>                   /xC7   <U00C7> LATIN CAPITAL LETTER C WITH CEDILLA
<E!!>                   /xC8   <U00C8> LATIN CAPITAL LETTER E WITH GRAVE
<E'>                   /xC9   <U00C9> LATIN CAPITAL LETTER E WITH ACUTE
<E/>>                  /xCA   <U00CA> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
<E:>                   /xCB   <U00CB> LATIN CAPITAL LETTER E WITH DIAERESIS
<dd>                   /xCC   <U0636> ARABIC LETTER DAD
<tj>                   /xCD   <U0637> ARABIC LETTER TAH
<I/>>                  /xCE   <U00CE> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
<I:>                   /xCF   <U00CF> LATIN CAPITAL LETTER I WITH DIAERESIS
<zh>                   /xD0   <U3113> BOPOMOFO LETTER ZH
<e+>                   /xD1   <U0639> ARABIC LETTER AIN
<i+>                   /xD2   <U063A> ARABIC LETTER GHAIN
<++>                   /xD3   <U0640> ARABIC TATWEEL
<O/>>                  /xD4   <U00D4> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
<f+>                   /xD5   <U0641> ARABIC LETTER FEH
<q+>                   /xD6   <U0642> ARABIC LETTER QAF
<*X>                   /xD7   <U00D7> MULTIPLICATION SIGN
<k+>                   /xD8   <U0643> ARABIC LETTER KAF
<U!!>                   /xD9   <U00D9> LATIN CAPITAL LETTER U WITH GRAVE
<gf>                   /xDA   <U06AF> ARABIC LETTER GAF
<U/>>                  /xDB   <U00DB> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
<U:>                   /xDC   <U00DC> LATIN CAPITAL LETTER U WITH DIAERESIS
<l+>                   /xDD   <U0644> ARABIC LETTER LAM
<m+>                   /xDE   <U0645> ARABIC LETTER MEEM
<n+>                   /xDF   <U0646> ARABIC LETTER NOON
<a!!>                   /xE0   <U00E0> LATIN SMALL LETTER A WITH GRAVE
<h+>                   /xE1   <U0647> ARABIC LETTER HEH
<a/>>                  /xE2   <U00E2> LATIN SMALL LETTER A WITH CIRCUMFLEX
<hH>                   /xE3   <U0681> ARABIC LETTER HAH WITH HAMZA ABOVE
<w+>                   /xE4   <U0648> ARABIC LETTER WAW
<j+>                   /xE5   <U0649> ARABIC LETTER ALEF MAKSURA
<y+>                   /xE6   <U064A> ARABIC LETTER YEH
<c,>                   /xE7   <U00E7> LATIN SMALL LETTER C WITH CEDILLA
<e!!>                   /xE8   <U00E8> LATIN SMALL LETTER E WITH GRAVE
<e'>                   /xE9   <U00E9> LATIN SMALL LETTER E WITH ACUTE
<e/>>                  /xEA   <U00EA> LATIN SMALL LETTER E WITH CIRCUMFLEX
<e:>                   /xEB   <U00EB> LATIN SMALL LETTER E WITH DIAERESIS
<:+>                   /xEC   <U064B> ARABIC FATHATAN
<'+>                   /xED   <U064C> ARABIC DAMMATAN
<i/>>                  /xEE   <U00EE> LATIN SMALL LETTER I WITH CIRCUMFLEX
<i:>                   /xEF   <U00EF> LATIN SMALL LETTER I WITH DIAERESIS
<=+>                   /xF0   <U064D> ARABIC KASRATAN
<//+>                  /xF1   <U064E> ARABIC FATHA
<'+>                   /xF2   <U064F> ARABIC DAMMA
<1+>                   /xF3   <U0650> ARABIC KASRA
<o/>>                  /xF4   <U00F4> LATIN SMALL LETTER O WITH CIRCUMFLEX
<3+>                   /xF5   <U0651> ARABIC SHADDA
<0+>                   /xF6   <U0652> ARABIC SUKUN
<-:>                   /xF7   <U00F7> DIVISION SIGN
<u!!>                   /xF9   <U00F9> LATIN SMALL LETTER U WITH GRAVE
<u/>>                  /xFB   <U00FB> LATIN SMALL LETTER U WITH CIRCUMFLEX
<u:>                   /xFC   <U00FC> LATIN SMALL LETTER U WITH DIAERESIS
<LR>                   /xFD   <U200E> LEFT-TO-RIGHT MARK
<RL>                   /xFE   <U200F> RIGHT-TO-LEFT MARK
<y:>                   /xFF   <U00FF> LATIN SMALL LETTER Y WITH DIAERESIS
<NUL>                  /x00   <U0000> NUL
<SOH>                  /x01   <U0001> START OF HEADING (SOH)
<STX>                  /x02   <U0002> START OF TEXT (STX)
<ETX>                  /x03   <U0003> END OF TEXT (ETX)
<EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
<ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
<ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
<alert>                /x07   <U0007> BELL (BEL)
<BEL>                  /x07   <U0007> BELL (BEL)
<backspace>            /x08   <U0008> BACKSPACE (BS)
<tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
<newline>              /x0A   <U000A> LINE FEED (LF)
<vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
<form-feed>            /x0C   <U000C> FORM FEED (FF)
<carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
<DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
<DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
<DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
<DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
<DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CAN>                  /x18   <U0018> CANCEL (CAN)
<SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
<ESC>                  /x1B   <U001B> ESCAPE (ESC)
<IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
<IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
<intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
<IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
<IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
<DEL>                  /x7F   <U007F> DELETE (DEL)
<space>                /x20   <U0020> SPACE
<exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
<quotation-mark>       /x22   <U0022> QUOTATION MARK
<number-sign>          /x23   <U0023> NUMBER SIGN
<dollar-sign>          /x24   <U0024> DOLLAR SIGN
<percent-sign>         /x25   <U0025> PERCENT SIGN
<ampersand>            /x26   <U0026> AMPERSAND
<apostrophe>           /x27   <U0027> APOSTROPHE
<left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
<right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
<asterisk>             /x2A   <U002A> ASTERISK
<plus-sign>            /x2B   <U002B> PLUS SIGN
<comma>                /x2C   <U002C> COMMA
<hyphen>               /x2D   <U002D> HYPHEN-MINUS
<hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
<period>               /x2E   <U002E> FULL STOP
<full-stop>            /x2E   <U002E> FULL STOP
<slash>                /x2F   <U002F> SOLIDUS
<solidus>              /x2F   <U002F> SOLIDUS
<zero>                 /x30   <U0030> DIGIT ZERO
<one>                  /x31   <U0031> DIGIT ONE
<two>                  /x32   <U0032> DIGIT TWO
<three>                /x33   <U0033> DIGIT THREE
<four>                 /x34   <U0034> DIGIT FOUR
<five>                 /x35   <U0035> DIGIT FIVE
<six>                  /x36   <U0036> DIGIT SIX
<seven>                /x37   <U0037> DIGIT SEVEN
<eight>                /x38   <U0038> DIGIT EIGHT
<nine>                 /x39   <U0039> DIGIT NINE
<colon>                /x3A   <U003A> COLON
<semicolon>            /x3B   <U003B> SEMICOLON
<less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
<equals-sign>          /x3D   <U003D> EQUALS SIGN
<greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
<question-mark>        /x3F   <U003F> QUESTION MARK
<commercial-at>        /x40   <U0040> COMMERCIAL AT
<left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
<backslash>            /x5C   <U005C> REVERSE SOLIDUS
<reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
<right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
<circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
<circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
<underscore>           /x5F   <U005F> LOW LINE
<low-line>             /x5F   <U005F> LOW LINE
<grave-accent>         /x60   <U0060> GRAVE ACCENT
<left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
<left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
<vertical-line>        /x7C   <U007C> VERTICAL LINE
<right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
<right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
<tilde>                /x7E   <U007E> TILDE
END CHARMAP

"
! !

!CharacterEncoder::MS_Arabic class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'ms-arabic' 'ms-cp1256' 'cp1256'  'microsoft-arabic' 'windows-1256'  )
!

userFriendlyNameOfEncoding
    ^ 'Arabic'
! !

!CharacterEncoder::MS_Arabic methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16r7F ifTrue:[ ^ code ].
    code > 16rFF ifTrue:[
        ^ self decodingError.
    ].
    [
        |t|
        t := #(
           "16r0080"    16r060C " ARABIC COMMA " 
           "16r0081"    16r0660 " ARABIC-INDIC DIGIT ZERO " 
           "16r0082"    16r201A " SINGLE LOW-9 QUOTATION MARK " 
           "16r0083"    16r0661 " ARABIC-INDIC DIGIT ONE " 
           "16r0084"    16r201E " DOUBLE LOW-9 QUOTATION MARK " 
           "16r0085"    16r2026 " HORIZONTAL ELLIPSIS " 
           "16r0086"    16r2020 " DAGGER " 
           "16r0087"    16r2021 " DOUBLE DAGGER " 
           "16r0088"    16r0662 " ARABIC-INDIC DIGIT TWO " 
           "16r0089"    16r0663 " ARABIC-INDIC DIGIT THREE " 
           "16r008A"    16r0664 " ARABIC-INDIC DIGIT FOUR " 
           "16r008B"    16r2039 " SINGLE LEFT-POINTING ANGLE QUOTATION MARK " 
           "16r008C"    16r0665 " ARABIC-INDIC DIGIT FIVE " 
           "16r008D"    16r0666 " ARABIC-INDIC DIGIT SIX " 
           "16r008E"    16r0667 " ARABIC-INDIC DIGIT SEVEN " 
           "16r008F"    16r0668 " ARABIC-INDIC DIGIT EIGHT " 
           "16r0090"    16r0669 " ARABIC-INDIC DIGIT NINE " 
           "16r0091"    16r2018 " LEFT SINGLE QUOTATION MARK " 
           "16r0092"    16r2019 " RIGHT SINGLE QUOTATION MARK " 
           "16r0093"    16r201C " LEFT DOUBLE QUOTATION MARK " 
           "16r0094"    16r201D " RIGHT DOUBLE QUOTATION MARK " 
           "16r0095"    16r2022 " BULLET " 
           "16r0096"    16r2013 " EN DASH " 
           "16r0097"    16r2014 " EM DASH " 
           "16r0098"    16r061B " ARABIC SEMICOLON " 
           "16r0099"    16r2122 " TRADE MARK SIGN " 
           "16r009A"    16r061F " ARABIC QUESTION MARK " 
           "16r009B"    16r203A " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK " 
           "16r009C"    16r0621 " ARABIC LETTER HAMZA " 
           "16r009D"    16r0622 " ARABIC LETTER ALEF WITH MADDA ABOVE " 
           "16r009E"    16r0623 " ARABIC LETTER ALEF WITH HAMZA ABOVE " 
           "16r009F"    16r0178 " LATIN CAPITAL LETTER Y WITH DIAERESIS " 
           "16r00A0"    16r00A0 " NO-BREAK SPACE " 
           "16r00A1"    16r0624 " ARABIC LETTER WAW WITH HAMZA ABOVE " 
           "16r00A2"    16r0625 " ARABIC LETTER ALEF WITH HAMZA BELOW " 
           "16r00A3"    16r00A3 " POUND SIGN " 
           "16r00A4"    16r00A4 " CURRENCY SIGN " 
           "16r00A5"    16r0626 " ARABIC LETTER YEH WITH HAMZA ABOVE " 
           "16r00A6"    16r00A6 " BROKEN BAR " 
           "16r00A7"    16r00A7 " SECTION SIGN " 
           "16r00A8"    16r0627 " ARABIC LETTER ALEF " 
           "16r00A9"    16r00A9 " COPYRIGHT SIGN " 
           "16r00AA"    16r0628 " ARABIC LETTER BEH " 
           "16r00AB"    16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
           "16r00AC"    16r00AC " NOT SIGN " 
           "16r00AD"    16r00AD " SOFT HYPHEN " 
           "16r00AE"    16r00AE " REGISTERED SIGN " 
           "16r00AF"    16r067E " ARABIC LETTER PEH " 
           "16r00B0"    16r00B0 " DEGREE SIGN " 
           "16r00B1"    16r00B1 " PLUS-MINUS SIGN " 
           "16r00B2"    16r0629 " ARABIC LETTER TEH MARBUTA " 
           "16r00B3"    16r062A " ARABIC LETTER TEH " 
           "16r00B4"    16r062B " ARABIC LETTER THEH " 
           "16r00B5"    16r00B5 " MICRO SIGN " 
           "16r00B6"    16r00B6 " PILCROW SIGN " 
           "16r00B7"    16r00B7 " MIDDLE DOT " 
           "16r00B8"    16r062C " ARABIC LETTER JEEM " 
           "16r00B9"    16r0686 " ARABIC LETTER TCHEH " 
           "16r00BA"    16r062D " ARABIC LETTER HAH " 
           "16r00BB"    16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
           "16r00BC"    16r062E " ARABIC LETTER KHAH " 
           "16r00BD"    16r062F " ARABIC LETTER DAL " 
           "16r00BE"    16r0630 " ARABIC LETTER THAL " 
           "16r00BF"    16r0631 " ARABIC LETTER REH " 
           "16r00C0"    16r00C0 " LATIN CAPITAL LETTER A WITH GRAVE " 
           "16r00C1"    16r0632 " ARABIC LETTER ZAIN " 
           "16r00C2"    16r00C2 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
           "16r00C3"    16r0698 " ARABIC LETTER JEH " 
           "16r00C4"    16r0633 " ARABIC LETTER SEEN " 
           "16r00C5"    16r0634 " ARABIC LETTER SHEEN " 
           "16r00C6"    16r0635 " ARABIC LETTER SAD " 
           "16r00C7"    16r00C7 " LATIN CAPITAL LETTER C WITH CEDILLA " 
           "16r00C8"    16r00C8 " LATIN CAPITAL LETTER E WITH GRAVE " 
           "16r00C9"    16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE " 
           "16r00CA"    16r00CA " LATIN CAPITAL LETTER E WITH CIRCUMFLEX " 
           "16r00CB"    16r00CB " LATIN CAPITAL LETTER E WITH DIAERESIS " 
           "16r00CC"    16r0636 " ARABIC LETTER DAD " 
           "16r00CD"    16r0637 " ARABIC LETTER TAH " 
           "16r00CE"    16r00CE " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
           "16r00CF"    16r00CF " LATIN CAPITAL LETTER I WITH DIAERESIS " 
           "16r00D0"    16r3113 " BOPOMOFO LETTER ZH " 
           "16r00D1"    16r0639 " ARABIC LETTER AIN " 
           "16r00D2"    16r063A " ARABIC LETTER GHAIN " 
           "16r00D3"    16r0640 " ARABIC TATWEEL " 
           "16r00D4"    16r00D4 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
           "16r00D5"    16r0641 " ARABIC LETTER FEH " 
           "16r00D6"    16r0642 " ARABIC LETTER QAF " 
           "16r00D7"    16r00D7 " MULTIPLICATION SIGN " 
           "16r00D8"    16r0643 " ARABIC LETTER KAF " 
           "16r00D9"    16r00D9 " LATIN CAPITAL LETTER U WITH GRAVE " 
           "16r00DA"    16r06AF " ARABIC LETTER GAF " 
           "16r00DB"    16r00DB " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " 
           "16r00DC"    16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS " 
           "16r00DD"    16r0644 " ARABIC LETTER LAM " 
           "16r00DE"    16r0645 " ARABIC LETTER MEEM " 
           "16r00DF"    16r0646 " ARABIC LETTER NOON " 
           "16r00E0"    16r00E0 " LATIN SMALL LETTER A WITH GRAVE " 
           "16r00E1"    16r0647 " ARABIC LETTER HEH " 
           "16r00E2"    16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
           "16r00E3"    16r0681 " ARABIC LETTER HAH WITH HAMZA ABOVE " 
           "16r00E4"    16r0648 " ARABIC LETTER WAW " 
           "16r00E5"    16r0649 " ARABIC LETTER ALEF MAKSURA " 
           "16r00E6"    16r064A " ARABIC LETTER YEH " 
           "16r00E7"    16r00E7 " LATIN SMALL LETTER C WITH CEDILLA " 
           "16r00E8"    16r00E8 " LATIN SMALL LETTER E WITH GRAVE " 
           "16r00E9"    16r00E9 " LATIN SMALL LETTER E WITH ACUTE " 
           "16r00EA"    16r00EA " LATIN SMALL LETTER E WITH CIRCUMFLEX " 
           "16r00EB"    16r00EB " LATIN SMALL LETTER E WITH DIAERESIS " 
           "16r00EC"    16r064B " ARABIC FATHATAN " 
           "16r00ED"    16r064C " ARABIC DAMMATAN " 
           "16r00EE"    16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
           "16r00EF"    16r00EF " LATIN SMALL LETTER I WITH DIAERESIS " 
           "16r00F0"    16r064D " ARABIC KASRATAN " 
           "16r00F1"    16r064E " ARABIC FATHA " 
           "16r00F2"    16r064F " ARABIC DAMMA " 
           "16r00F3"    16r0650 " ARABIC KASRA " 
           "16r00F4"    16r00F4 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
           "16r00F5"    16r0651 " ARABIC SHADDA " 
           "16r00F6"    16r0652 " ARABIC SUKUN " 
           "16r00F7"    16r00F7 " DIVISION SIGN " 
           "16r00F8"    16r0000 " invalid " 
           "16r00F9"    16r00F9 " LATIN SMALL LETTER U WITH GRAVE " 
           "16r00FA"    16r0000 " invalid " 
           "16r00FB"    16r00FB " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
           "16r00FC"    16r00FC " LATIN SMALL LETTER U WITH DIAERESIS " 
           "16r00FD"    16r200E " LEFT-TO-RIGHT MARK " 
           "16r00FE"    16r200F " RIGHT-TO-LEFT MARK " 
           "16r00FF"    16r00FF " LATIN SMALL LETTER Y WITH DIAERESIS " 
           ) at:(code - 16r7F).
        t == 0 ifFalse:[^ t].
        ^ self decodingError.
    ] value.
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode <= 16r7F ifTrue:[ ^ unicode ].
    unicode > 16r3113 ifTrue:[
        ^ self encodingError.
    ].
    unicode <= 16r9F ifTrue:[
        ^ self encodingError.
    ].
    unicode <= 16r6AF ifTrue:[
        unicode <= 16r178 ifTrue:[
            unicode <= 16rFF ifTrue:[
                    (#[
                       "16r00A0"    1 " NO-BREAK SPACE " 
                       "16r00A1"    0 " invalid " 
                       "16r00A2"    0 " invalid " 
                       "16r00A3"    1 " POUND SIGN " 
                       "16r00A4"    1 " CURRENCY SIGN " 
                       "16r00A5"    0 " invalid " 
                       "16r00A6"    1 " BROKEN BAR " 
                       "16r00A7"    1 " SECTION SIGN " 
                       "16r00A8"    0 " invalid " 
                       "16r00A9"    1 " COPYRIGHT SIGN " 
                       "16r00AA"    0 " invalid " 
                       "16r00AB"    1 " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
                       "16r00AC"    1 " NOT SIGN " 
                       "16r00AD"    1 " SOFT HYPHEN " 
                       "16r00AE"    1 " REGISTERED SIGN " 
                       "16r00AF"    0 " invalid " 
                       "16r00B0"    1 " DEGREE SIGN " 
                       "16r00B1"    1 " PLUS-MINUS SIGN " 
                       "16r00B2"    0 " invalid " 
                       "16r00B3"    0 " invalid " 
                       "16r00B4"    0 " invalid " 
                       "16r00B5"    1 " MICRO SIGN " 
                       "16r00B6"    1 " PILCROW SIGN " 
                       "16r00B7"    1 " MIDDLE DOT " 
                       "16r00B8"    0 " invalid " 
                       "16r00B9"    0 " invalid " 
                       "16r00BA"    0 " invalid " 
                       "16r00BB"    1 " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
                       "16r00BC"    0 " invalid " 
                       "16r00BD"    0 " invalid " 
                       "16r00BE"    0 " invalid " 
                       "16r00BF"    0 " invalid " 
                       "16r00C0"    1 " LATIN CAPITAL LETTER A WITH GRAVE " 
                       "16r00C1"    0 " invalid " 
                       "16r00C2"    1 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " 
                       "16r00C3"    0 " invalid " 
                       "16r00C4"    0 " invalid " 
                       "16r00C5"    0 " invalid " 
                       "16r00C6"    0 " invalid " 
                       "16r00C7"    1 " LATIN CAPITAL LETTER C WITH CEDILLA " 
                       "16r00C8"    1 " LATIN CAPITAL LETTER E WITH GRAVE " 
                       "16r00C9"    1 " LATIN CAPITAL LETTER E WITH ACUTE " 
                       "16r00CA"    1 " LATIN CAPITAL LETTER E WITH CIRCUMFLEX " 
                       "16r00CB"    1 " LATIN CAPITAL LETTER E WITH DIAERESIS " 
                       "16r00CC"    0 " invalid " 
                       "16r00CD"    0 " invalid " 
                       "16r00CE"    1 " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " 
                       "16r00CF"    1 " LATIN CAPITAL LETTER I WITH DIAERESIS " 
                       "16r00D0"    0 " invalid " 
                       "16r00D1"    0 " invalid " 
                       "16r00D2"    0 " invalid " 
                       "16r00D3"    0 " invalid " 
                       "16r00D4"    1 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " 
                       "16r00D5"    0 " invalid " 
                       "16r00D6"    0 " invalid " 
                       "16r00D7"    1 " MULTIPLICATION SIGN " 
                       "16r00D8"    0 " invalid " 
                       "16r00D9"    1 " LATIN CAPITAL LETTER U WITH GRAVE " 
                       "16r00DA"    0 " invalid " 
                       "16r00DB"    1 " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " 
                       "16r00DC"    1 " LATIN CAPITAL LETTER U WITH DIAERESIS " 
                       "16r00DD"    0 " invalid " 
                       "16r00DE"    0 " invalid " 
                       "16r00DF"    0 " invalid " 
                       "16r00E0"    1 " LATIN SMALL LETTER A WITH GRAVE " 
                       "16r00E1"    0 " invalid " 
                       "16r00E2"    1 " LATIN SMALL LETTER A WITH CIRCUMFLEX " 
                       "16r00E3"    0 " invalid " 
                       "16r00E4"    0 " invalid " 
                       "16r00E5"    0 " invalid " 
                       "16r00E6"    0 " invalid " 
                       "16r00E7"    1 " LATIN SMALL LETTER C WITH CEDILLA " 
                       "16r00E8"    1 " LATIN SMALL LETTER E WITH GRAVE " 
                       "16r00E9"    1 " LATIN SMALL LETTER E WITH ACUTE " 
                       "16r00EA"    1 " LATIN SMALL LETTER E WITH CIRCUMFLEX " 
                       "16r00EB"    1 " LATIN SMALL LETTER E WITH DIAERESIS " 
                       "16r00EC"    0 " invalid " 
                       "16r00ED"    0 " invalid " 
                       "16r00EE"    1 " LATIN SMALL LETTER I WITH CIRCUMFLEX " 
                       "16r00EF"    1 " LATIN SMALL LETTER I WITH DIAERESIS " 
                       "16r00F0"    0 " invalid " 
                       "16r00F1"    0 " invalid " 
                       "16r00F2"    0 " invalid " 
                       "16r00F3"    0 " invalid " 
                       "16r00F4"    1 " LATIN SMALL LETTER O WITH CIRCUMFLEX " 
                       "16r00F5"    0 " invalid " 
                       "16r00F6"    0 " invalid " 
                       "16r00F7"    1 " DIVISION SIGN " 
                       "16r00F8"    0 " invalid " 
                       "16r00F9"    1 " LATIN SMALL LETTER U WITH GRAVE " 
                       "16r00FA"    0 " invalid " 
                       "16r00FB"    1 " LATIN SMALL LETTER U WITH CIRCUMFLEX " 
                       "16r00FC"    1 " LATIN SMALL LETTER U WITH DIAERESIS " 
                       "16r00FD"    0 " invalid " 
                       "16r00FE"    0 " invalid " 
                       "16r00FF"    1 " LATIN SMALL LETTER Y WITH DIAERESIS " 
                    ] at:(unicode - 159)) ~~ 0 ifTrue:[^ unicode].
                    ^ self encodingError.
            ].
            unicode <= 16r177 ifTrue:[
                ^ self encodingError.
            ].
            ^  "16r0178" 16r009F " LATIN CAPITAL LETTER Y WITH DIAERESIS " 
        ].
        unicode <= 16r60B ifTrue:[
            ^ self encodingError.
        ].
        [
            |t|
            t := #[
               "16r060C"    16r80 " ARABIC COMMA " 
               "16r060D"    16r00 " invalid " 
               "16r060E"    16r00 " invalid " 
               "16r060F"    16r00 " invalid " 
               "16r0610"    16r00 " invalid " 
               "16r0611"    16r00 " invalid " 
               "16r0612"    16r00 " invalid " 
               "16r0613"    16r00 " invalid " 
               "16r0614"    16r00 " invalid " 
               "16r0615"    16r00 " invalid " 
               "16r0616"    16r00 " invalid " 
               "16r0617"    16r00 " invalid " 
               "16r0618"    16r00 " invalid " 
               "16r0619"    16r00 " invalid " 
               "16r061A"    16r00 " invalid " 
               "16r061B"    16r98 " ARABIC SEMICOLON " 
               "16r061C"    16r00 " invalid " 
               "16r061D"    16r00 " invalid " 
               "16r061E"    16r00 " invalid " 
               "16r061F"    16r9A " ARABIC QUESTION MARK " 
               "16r0620"    16r00 " invalid " 
               "16r0621"    16r9C " ARABIC LETTER HAMZA " 
               "16r0622"    16r9D " ARABIC LETTER ALEF WITH MADDA ABOVE " 
               "16r0623"    16r9E " ARABIC LETTER ALEF WITH HAMZA ABOVE " 
               "16r0624"    16rA1 " ARABIC LETTER WAW WITH HAMZA ABOVE " 
               "16r0625"    16rA2 " ARABIC LETTER ALEF WITH HAMZA BELOW " 
               "16r0626"    16rA5 " ARABIC LETTER YEH WITH HAMZA ABOVE " 
               "16r0627"    16rA8 " ARABIC LETTER ALEF " 
               "16r0628"    16rAA " ARABIC LETTER BEH " 
               "16r0629"    16rB2 " ARABIC LETTER TEH MARBUTA " 
               "16r062A"    16rB3 " ARABIC LETTER TEH " 
               "16r062B"    16rB4 " ARABIC LETTER THEH " 
               "16r062C"    16rB8 " ARABIC LETTER JEEM " 
               "16r062D"    16rBA " ARABIC LETTER HAH " 
               "16r062E"    16rBC " ARABIC LETTER KHAH " 
               "16r062F"    16rBD " ARABIC LETTER DAL " 
               "16r0630"    16rBE " ARABIC LETTER THAL " 
               "16r0631"    16rBF " ARABIC LETTER REH " 
               "16r0632"    16rC1 " ARABIC LETTER ZAIN " 
               "16r0633"    16rC4 " ARABIC LETTER SEEN " 
               "16r0634"    16rC5 " ARABIC LETTER SHEEN " 
               "16r0635"    16rC6 " ARABIC LETTER SAD " 
               "16r0636"    16rCC " ARABIC LETTER DAD " 
               "16r0637"    16rCD " ARABIC LETTER TAH " 
               "16r0638"    16r00 " invalid " 
               "16r0639"    16rD1 " ARABIC LETTER AIN " 
               "16r063A"    16rD2 " ARABIC LETTER GHAIN " 
               "16r063B"    16r00 " invalid " 
               "16r063C"    16r00 " invalid " 
               "16r063D"    16r00 " invalid " 
               "16r063E"    16r00 " invalid " 
               "16r063F"    16r00 " invalid " 
               "16r0640"    16rD3 " ARABIC TATWEEL " 
               "16r0641"    16rD5 " ARABIC LETTER FEH " 
               "16r0642"    16rD6 " ARABIC LETTER QAF " 
               "16r0643"    16rD8 " ARABIC LETTER KAF " 
               "16r0644"    16rDD " ARABIC LETTER LAM " 
               "16r0645"    16rDE " ARABIC LETTER MEEM " 
               "16r0646"    16rDF " ARABIC LETTER NOON " 
               "16r0647"    16rE1 " ARABIC LETTER HEH " 
               "16r0648"    16rE4 " ARABIC LETTER WAW " 
               "16r0649"    16rE5 " ARABIC LETTER ALEF MAKSURA " 
               "16r064A"    16rE6 " ARABIC LETTER YEH " 
               "16r064B"    16rEC " ARABIC FATHATAN " 
               "16r064C"    16rED " ARABIC DAMMATAN " 
               "16r064D"    16rF0 " ARABIC KASRATAN " 
               "16r064E"    16rF1 " ARABIC FATHA " 
               "16r064F"    16rF2 " ARABIC DAMMA " 
               "16r0650"    16rF3 " ARABIC KASRA " 
               "16r0651"    16rF5 " ARABIC SHADDA " 
               "16r0652"    16rF6 " ARABIC SUKUN " 
               "16r0653"    16r00 " invalid " 
               "16r0654"    16r00 " invalid " 
               "16r0655"    16r00 " invalid " 
               "16r0656"    16r00 " invalid " 
               "16r0657"    16r00 " invalid " 
               "16r0658"    16r00 " invalid " 
               "16r0659"    16r00 " invalid " 
               "16r065A"    16r00 " invalid " 
               "16r065B"    16r00 " invalid " 
               "16r065C"    16r00 " invalid " 
               "16r065D"    16r00 " invalid " 
               "16r065E"    16r00 " invalid " 
               "16r065F"    16r00 " invalid " 
               "16r0660"    16r81 " ARABIC-INDIC DIGIT ZERO " 
               "16r0661"    16r83 " ARABIC-INDIC DIGIT ONE " 
               "16r0662"    16r88 " ARABIC-INDIC DIGIT TWO " 
               "16r0663"    16r89 " ARABIC-INDIC DIGIT THREE " 
               "16r0664"    16r8A " ARABIC-INDIC DIGIT FOUR " 
               "16r0665"    16r8C " ARABIC-INDIC DIGIT FIVE " 
               "16r0666"    16r8D " ARABIC-INDIC DIGIT SIX " 
               "16r0667"    16r8E " ARABIC-INDIC DIGIT SEVEN " 
               "16r0668"    16r8F " ARABIC-INDIC DIGIT EIGHT " 
               "16r0669"    16r90 " ARABIC-INDIC DIGIT NINE " 
               "16r066A"    16r00 " invalid " 
               "16r066B"    16r00 " invalid " 
               "16r066C"    16r00 " invalid " 
               "16r066D"    16r00 " invalid " 
               "16r066E"    16r00 " invalid " 
               "16r066F"    16r00 " invalid " 
               "16r0670"    16r00 " invalid " 
               "16r0671"    16r00 " invalid " 
               "16r0672"    16r00 " invalid " 
               "16r0673"    16r00 " invalid " 
               "16r0674"    16r00 " invalid " 
               "16r0675"    16r00 " invalid " 
               "16r0676"    16r00 " invalid " 
               "16r0677"    16r00 " invalid " 
               "16r0678"    16r00 " invalid " 
               "16r0679"    16r00 " invalid " 
               "16r067A"    16r00 " invalid " 
               "16r067B"    16r00 " invalid " 
               "16r067C"    16r00 " invalid " 
               "16r067D"    16r00 " invalid " 
               "16r067E"    16rAF " ARABIC LETTER PEH " 
               "16r067F"    16r00 " invalid " 
               "16r0680"    16r00 " invalid " 
               "16r0681"    16rE3 " ARABIC LETTER HAH WITH HAMZA ABOVE " 
               "16r0682"    16r00 " invalid " 
               "16r0683"    16r00 " invalid " 
               "16r0684"    16r00 " invalid " 
               "16r0685"    16r00 " invalid " 
               "16r0686"    16rB9 " ARABIC LETTER TCHEH " 
               "16r0687"    16r00 " invalid " 
               "16r0688"    16r00 " invalid " 
               "16r0689"    16r00 " invalid " 
               "16r068A"    16r00 " invalid " 
               "16r068B"    16r00 " invalid " 
               "16r068C"    16r00 " invalid " 
               "16r068D"    16r00 " invalid " 
               "16r068E"    16r00 " invalid " 
               "16r068F"    16r00 " invalid " 
               "16r0690"    16r00 " invalid " 
               "16r0691"    16r00 " invalid " 
               "16r0692"    16r00 " invalid " 
               "16r0693"    16r00 " invalid " 
               "16r0694"    16r00 " invalid " 
               "16r0695"    16r00 " invalid " 
               "16r0696"    16r00 " invalid " 
               "16r0697"    16r00 " invalid " 
               "16r0698"    16rC3 " ARABIC LETTER JEH " 
               "16r0699"    16r00 " invalid " 
               "16r069A"    16r00 " invalid " 
               "16r069B"    16r00 " invalid " 
               "16r069C"    16r00 " invalid " 
               "16r069D"    16r00 " invalid " 
               "16r069E"    16r00 " invalid " 
               "16r069F"    16r00 " invalid " 
               "16r06A0"    16r00 " invalid " 
               "16r06A1"    16r00 " invalid " 
               "16r06A2"    16r00 " invalid " 
               "16r06A3"    16r00 " invalid " 
               "16r06A4"    16r00 " invalid " 
               "16r06A5"    16r00 " invalid " 
               "16r06A6"    16r00 " invalid " 
               "16r06A7"    16r00 " invalid " 
               "16r06A8"    16r00 " invalid " 
               "16r06A9"    16r00 " invalid " 
               "16r06AA"    16r00 " invalid " 
               "16r06AB"    16r00 " invalid " 
               "16r06AC"    16r00 " invalid " 
               "16r06AD"    16r00 " invalid " 
               "16r06AE"    16r00 " invalid " 
               "16r06AF"    16rDA " ARABIC LETTER GAF " 
               ] at:(unicode - 16r60B).
            t == 0 ifFalse:[^ t].
            ^ self encodingError
        ] value.
    ].
    unicode <= 16r200D ifTrue:[
        ^ self encodingError.
    ].
    unicode <= 16r2122 ifTrue:[
        unicode <= 16r203A ifTrue:[
            unicode <= 16r2026 ifTrue:[
                [
                    |t|
                    t := #[
                       "16r200E"    16rFD " LEFT-TO-RIGHT MARK " 
                       "16r200F"    16rFE " RIGHT-TO-LEFT MARK " 
                       "16r2010"    16r00 " invalid " 
                       "16r2011"    16r00 " invalid " 
                       "16r2012"    16r00 " invalid " 
                       "16r2013"    16r96 " EN DASH " 
                       "16r2014"    16r97 " EM DASH " 
                       "16r2015"    16r00 " invalid " 
                       "16r2016"    16r00 " invalid " 
                       "16r2017"    16r00 " invalid " 
                       "16r2018"    16r91 " LEFT SINGLE QUOTATION MARK " 
                       "16r2019"    16r92 " RIGHT SINGLE QUOTATION MARK " 
                       "16r201A"    16r82 " SINGLE LOW-9 QUOTATION MARK " 
                       "16r201B"    16r00 " invalid " 
                       "16r201C"    16r93 " LEFT DOUBLE QUOTATION MARK " 
                       "16r201D"    16r94 " RIGHT DOUBLE QUOTATION MARK " 
                       "16r201E"    16r84 " DOUBLE LOW-9 QUOTATION MARK " 
                       "16r201F"    16r00 " invalid " 
                       "16r2020"    16r86 " DAGGER " 
                       "16r2021"    16r87 " DOUBLE DAGGER " 
                       "16r2022"    16r95 " BULLET " 
                       "16r2023"    16r00 " invalid " 
                       "16r2024"    16r00 " invalid " 
                       "16r2025"    16r00 " invalid " 
                       "16r2026"    16r85 " HORIZONTAL ELLIPSIS " 
                       ] at:(unicode - 16r200D).
                    t == 0 ifFalse:[^ t].
                    ^ self encodingError
                ] value.
            ].
            unicode <= 16r2038 ifTrue:[
                ^ self encodingError.
            ].
            ^ #[
               "16r2039"    16r8B " SINGLE LEFT-POINTING ANGLE QUOTATION MARK " 
               "16r203A"    16r9B " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK " 
               ] at:(unicode - 16r2038).
        ].
        unicode <= 16r2121 ifTrue:[
            ^ self encodingError.
        ].
        ^  "16r2122" 16r0099 " TRADE MARK SIGN " 
    ].
    unicode <= 16r3112 ifTrue:[
        ^ self encodingError.
    ].
    ^  "16r3113" 16r00D0 " BOPOMOFO LETTER ZH " 
! !

!CharacterEncoder::MS_Baltic class methodsFor:'mapping'!

mapFileURL2_relativePathName
    ^ 'CP1257'
! !

!CharacterEncoder::MS_Baltic class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'ms-baltic' 'ms-cp1257' 'cp1257' 'microsoft-baltic' 'windows-1257'  )
!

userFriendlyNameOfEncoding
    ^ 'Baltic'
! !

!CharacterEncoder::MS_Cyrillic class methodsFor:'mapping'!

mapFileURL2_relativePathName
    ^ 'CP1251'
!

mapping
"
# From: http://std.dkuug.dk/i18n/charmaps/CP1251

<code_set_name> CP1251
<comment_char> %
<escape_char> /
% version: 1.0
% repertoiremap: mnemonic,ds
%  source: UNICODE 1.0

% alias MS-CYRL
CHARMAP
<NU>                   /x00   <U0000> NULL (NUL)
<SH>                   /x01   <U0001> START OF HEADING (SOH)
<SX>                   /x02   <U0002> START OF TEXT (STX)
<EX>                   /x03   <U0003> END OF TEXT (ETX)
<ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
<EQ>                   /x05   <U0005> ENQUIRY (ENQ)
<AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
<BL>                   /x07   <U0007> BELL (BEL)
<BS>                   /x08   <U0008> BACKSPACE (BS)
<HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
<LF>                   /x0A   <U000A> LINE FEED (LF)
<VT>                   /x0B   <U000B> LINE TABULATION (VT)
<FF>                   /x0C   <U000C> FORM FEED (FF)
<CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
<SO>                   /x0E   <U000E> SHIFT OUT (SO)
<SI>                   /x0F   <U000F> SHIFT IN (SI)
<DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
<D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
<D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
<D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
<D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CN>                   /x18   <U0018> CANCEL (CAN)
<EM>                   /x19   <U0019> END OF MEDIUM (EM)
<SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
<EC>                   /x1B   <U001B> ESCAPE (ESC)
<FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
<GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
<RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
<US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
<SP>                   /x20   <U0020> SPACE
<!!>                    /x21   <U0021> EXCLAMATION MARK
<'>                    /x22   <U0022> QUOTATION MARK
<Nb>                   /x23   <U0023> NUMBER SIGN
<DO>                   /x24   <U0024> DOLLAR SIGN
<%>                    /x25   <U0025> PERCENT SIGN
<&>                    /x26   <U0026> AMPERSAND
<'>                    /x27   <U0027> APOSTROPHE
<(>                    /x28   <U0028> LEFT PARENTHESIS
<)>                    /x29   <U0029> RIGHT PARENTHESIS
<*>                    /x2A   <U002A> ASTERISK
<+>                    /x2B   <U002B> PLUS SIGN
<,>                    /x2C   <U002C> COMMA
<->                    /x2D   <U002D> HYPHEN-MINUS
<.>                    /x2E   <U002E> FULL STOP
<//>                   /x2F   <U002F> SOLIDUS
<0>                    /x30   <U0030> DIGIT ZERO
<1>                    /x31   <U0031> DIGIT ONE
<2>                    /x32   <U0032> DIGIT TWO
<3>                    /x33   <U0033> DIGIT THREE
<4>                    /x34   <U0034> DIGIT FOUR
<5>                    /x35   <U0035> DIGIT FIVE
<6>                    /x36   <U0036> DIGIT SIX
<7>                    /x37   <U0037> DIGIT SEVEN
<8>                    /x38   <U0038> DIGIT EIGHT
<9>                    /x39   <U0039> DIGIT NINE
<:>                    /x3A   <U003A> COLON
<;>                    /x3B   <U003B> SEMICOLON
<<>                    /x3C   <U003C> LESS-THAN SIGN
<=>                    /x3D   <U003D> EQUALS SIGN
</>>                   /x3E   <U003E> GREATER-THAN SIGN
<?>                    /x3F   <U003F> QUESTION MARK
<At>                   /x40   <U0040> COMMERCIAL AT
<A>                    /x41   <U0041> LATIN CAPITAL LETTER A
<B>                    /x42   <U0042> LATIN CAPITAL LETTER B
<C>                    /x43   <U0043> LATIN CAPITAL LETTER C
<D>                    /x44   <U0044> LATIN CAPITAL LETTER D
<E>                    /x45   <U0045> LATIN CAPITAL LETTER E
<F>                    /x46   <U0046> LATIN CAPITAL LETTER F
<G>                    /x47   <U0047> LATIN CAPITAL LETTER G
<H>                    /x48   <U0048> LATIN CAPITAL LETTER H
<I>                    /x49   <U0049> LATIN CAPITAL LETTER I
<J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
<K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
<L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
<M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
<N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
<O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
<P>                    /x50   <U0050> LATIN CAPITAL LETTER P
<Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
<R>                    /x52   <U0052> LATIN CAPITAL LETTER R
<S>                    /x53   <U0053> LATIN CAPITAL LETTER S
<T>                    /x54   <U0054> LATIN CAPITAL LETTER T
<U>                    /x55   <U0055> LATIN CAPITAL LETTER U
<V>                    /x56   <U0056> LATIN CAPITAL LETTER V
<W>                    /x57   <U0057> LATIN CAPITAL LETTER W
<X>                    /x58   <U0058> LATIN CAPITAL LETTER X
<Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
<Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
<<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
<////>                 /x5C   <U005C> REVERSE SOLIDUS
<)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
<'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
<_>                    /x5F   <U005F> LOW LINE
<'!!>                   /x60   <U0060> GRAVE ACCENT
<a>                    /x61   <U0061> LATIN SMALL LETTER A
<b>                    /x62   <U0062> LATIN SMALL LETTER B
<c>                    /x63   <U0063> LATIN SMALL LETTER C
<d>                    /x64   <U0064> LATIN SMALL LETTER D
<e>                    /x65   <U0065> LATIN SMALL LETTER E
<f>                    /x66   <U0066> LATIN SMALL LETTER F
<g>                    /x67   <U0067> LATIN SMALL LETTER G
<h>                    /x68   <U0068> LATIN SMALL LETTER H
<i>                    /x69   <U0069> LATIN SMALL LETTER I
<j>                    /x6A   <U006A> LATIN SMALL LETTER J
<k>                    /x6B   <U006B> LATIN SMALL LETTER K
<l>                    /x6C   <U006C> LATIN SMALL LETTER L
<m>                    /x6D   <U006D> LATIN SMALL LETTER M
<n>                    /x6E   <U006E> LATIN SMALL LETTER N
<o>                    /x6F   <U006F> LATIN SMALL LETTER O
<p>                    /x70   <U0070> LATIN SMALL LETTER P
<q>                    /x71   <U0071> LATIN SMALL LETTER Q
<r>                    /x72   <U0072> LATIN SMALL LETTER R
<s>                    /x73   <U0073> LATIN SMALL LETTER S
<t>                    /x74   <U0074> LATIN SMALL LETTER T
<u>                    /x75   <U0075> LATIN SMALL LETTER U
<v>                    /x76   <U0076> LATIN SMALL LETTER V
<w>                    /x77   <U0077> LATIN SMALL LETTER W
<x>                    /x78   <U0078> LATIN SMALL LETTER X
<y>                    /x79   <U0079> LATIN SMALL LETTER Y
<z>                    /x7A   <U007A> LATIN SMALL LETTER Z
<(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
<!!!!>                   /x7C   <U007C> VERTICAL LINE
<!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
<'?>                   /x7E   <U007E> TILDE
<DT>                   /x7F   <U007F> DELETE (DEL)
<D%>                   /x80   <U0402> CYRILLIC CAPITAL LETTER DJE (Serbocroatian)
<G%>                   /x81   <U0403> CYRILLIC CAPITAL LETTER GJE
<.9>                   /x82   <U201A> SINGLE LOW-9 QUOTATION MARK
<g%>                   /x83   <U0453> CYRILLIC SMALL LETTER GJE
<:9>                   /x84   <U201E> DOUBLE LOW-9 QUOTATION MARK
<.3>                   /x85   <U2026> HORIZONTAL ELLIPSIS
<//->                  /x86   <U2020> DAGGER
<//=>                  /x87   <U2021> DOUBLE DAGGER
<%0>                   /x89   <U2030> PER MILLE SIGN
<LJ>                   /x8A   <U0409> CYRILLIC CAPITAL LETTER LJE
<<1>                   /x8B   <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
<NJ>                   /x8C   <U040A> CYRILLIC CAPITAL LETTER NJE
<KJ>                   /x8D   <U040C> CYRILLIC CAPITAL LETTER KJE
<Ts>                   /x8E   <U040B> CYRILLIC CAPITAL LETTER TSHE (Serbocroatian)
<DZ>                   /x8F   <U040F> CYRILLIC CAPITAL LETTER DZHE
<d%>                   /x90   <U0452> CYRILLIC SMALL LETTER DJE (Serbocroatian)
<'6>                   /x91   <U2018> LEFT SINGLE QUOTATION MARK
<'9>                   /x92   <U2019> RIGHT SINGLE QUOTATION MARK
<'6>                   /x93   <U201C> LEFT DOUBLE QUOTATION MARK
<'9>                   /x94   <U201D> RIGHT DOUBLE QUOTATION MARK
<sb>                   /x95   <U2022> BULLET
<-N>                   /x96   <U2013> EN DASH
<-M>                   /x97   <U2014> EM DASH
<TM>                   /x99   <U2122> TRADE MARK SIGN
<lj>                   /x9A   <U0459> CYRILLIC SMALL LETTER LJE
</>1>                  /x9B   <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
<nj>                   /x9C   <U045A> CYRILLIC SMALL LETTER NJE
<kj>                   /x9D   <U045C> CYRILLIC SMALL LETTER KJE
<ts>                   /x9E   <U045B> CYRILLIC SMALL LETTER TSHE (Serbocroatian)
<dz>                   /x9F   <U045F> CYRILLIC SMALL LETTER DZHE
<NS>                   /xA0   <U00A0> NO-BREAK SPACE
<V%>                   /xA1   <U040E> CYRILLIC CAPITAL LETTER SHORT U (Byelorussian)
<v%>                   /xA2   <U045E> CYRILLIC SMALL LETTER SHORT U (Byelorussian)
<J%>                   /xA3   <U0408> CYRILLIC CAPITAL LETTER JE
<Cu>                   /xA4   <U00A4> CURRENCY SIGN
<G3>                   /xA5   <U0490> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
<BB>                   /xA6   <U00A6> BROKEN BAR
<SE>                   /xA7   <U00A7> SECTION SIGN
<IO>                   /xA8   <U0401> CYRILLIC CAPITAL LETTER IO
<Co>                   /xA9   <U00A9> COPYRIGHT SIGN
<IE>                   /xAA   <U0404> CYRILLIC CAPITAL LETTER UKRAINIAN IE
<<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
<NO>                   /xAC   <U00AC> NOT SIGN
<-->                   /xAD   <U00AD> SOFT HYPHEN
<Rg>                   /xAE   <U00AE> REGISTERED SIGN
<YI>                   /xAF   <U0407> CYRILLIC CAPITAL LETTER YI (Ukrainian)
<DG>                   /xB0   <U00B0> DEGREE SIGN
<+->                   /xB1   <U00B1> PLUS-MINUS SIGN
<II>                   /xB2   <U0406> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
<ii>                   /xB3   <U0456> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
<g3>                   /xB4   <U0491> CYRILLIC SMALL LETTER GHE WITH UPTURN
<My>                   /xB5   <U00B5> MICRO SIGN
<PI>                   /xB6   <U00B6> PILCROW SIGN
<.M>                   /xB7   <U00B7> MIDDLE DOT
<io>                   /xB8   <U0451> CYRILLIC SMALL LETTER IO
<N0>                   /xB9   <U2116> NUMERO SIGN
<ie>                   /xBA   <U0454> CYRILLIC SMALL LETTER UKRAINIAN IE
</>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
<j%>                   /xBC   <U0458> CYRILLIC SMALL LETTER JE
<DS>                   /xBD   <U0405> CYRILLIC CAPITAL LETTER DZE
<ds>                   /xBE   <U0455> CYRILLIC SMALL LETTER DZE
<yi>                   /xBF   <U0457> CYRILLIC SMALL LETTER YI (Ukrainian)
<A=>                   /xC0   <U0410> CYRILLIC CAPITAL LETTER A
<B=>                   /xC1   <U0411> CYRILLIC CAPITAL LETTER BE
<V=>                   /xC2   <U0412> CYRILLIC CAPITAL LETTER VE
<G=>                   /xC3   <U0413> CYRILLIC CAPITAL LETTER GHE
<D=>                   /xC4   <U0414> CYRILLIC CAPITAL LETTER DE
<E=>                   /xC5   <U0415> CYRILLIC CAPITAL LETTER IE
<Z%>                   /xC6   <U0416> CYRILLIC CAPITAL LETTER ZHE
<Z=>                   /xC7   <U0417> CYRILLIC CAPITAL LETTER ZE
<I=>                   /xC8   <U0418> CYRILLIC CAPITAL LETTER I
<J=>                   /xC9   <U0419> CYRILLIC CAPITAL LETTER SHORT I
<K=>                   /xCA   <U041A> CYRILLIC CAPITAL LETTER KA
<L=>                   /xCB   <U041B> CYRILLIC CAPITAL LETTER EL
<M=>                   /xCC   <U041C> CYRILLIC CAPITAL LETTER EM
<N=>                   /xCD   <U041D> CYRILLIC CAPITAL LETTER EN
<O=>                   /xCE   <U041E> CYRILLIC CAPITAL LETTER O
<P=>                   /xCF   <U041F> CYRILLIC CAPITAL LETTER PE
<R=>                   /xD0   <U0420> CYRILLIC CAPITAL LETTER ER
<S=>                   /xD1   <U0421> CYRILLIC CAPITAL LETTER ES
<T=>                   /xD2   <U0422> CYRILLIC CAPITAL LETTER TE
<U=>                   /xD3   <U0423> CYRILLIC CAPITAL LETTER U
<F=>                   /xD4   <U0424> CYRILLIC CAPITAL LETTER EF
<H=>                   /xD5   <U0425> CYRILLIC CAPITAL LETTER HA
<C=>                   /xD6   <U0426> CYRILLIC CAPITAL LETTER TSE
<C%>                   /xD7   <U0427> CYRILLIC CAPITAL LETTER CHE
<S%>                   /xD8   <U0428> CYRILLIC CAPITAL LETTER SHA
<Sc>                   /xD9   <U0429> CYRILLIC CAPITAL LETTER SHCHA
<='>                   /xDA   <U042A> CYRILLIC CAPITAL LETTER HARD SIGN
<Y=>                   /xDB   <U042B> CYRILLIC CAPITAL LETTER YERU
<%'>                   /xDC   <U042C> CYRILLIC CAPITAL LETTER SOFT SIGN
<JE>                   /xDD   <U042D> CYRILLIC CAPITAL LETTER E
<JU>                   /xDE   <U042E> CYRILLIC CAPITAL LETTER YU
<JA>                   /xDF   <U042F> CYRILLIC CAPITAL LETTER YA
<a=>                   /xE0   <U0430> CYRILLIC SMALL LETTER A
<b=>                   /xE1   <U0431> CYRILLIC SMALL LETTER BE
<v=>                   /xE2   <U0432> CYRILLIC SMALL LETTER VE
<g=>                   /xE3   <U0433> CYRILLIC SMALL LETTER GHE
<d=>                   /xE4   <U0434> CYRILLIC SMALL LETTER DE
<e=>                   /xE5   <U0435> CYRILLIC SMALL LETTER IE
<z%>                   /xE6   <U0436> CYRILLIC SMALL LETTER ZHE
<z=>                   /xE7   <U0437> CYRILLIC SMALL LETTER ZE
<i=>                   /xE8   <U0438> CYRILLIC SMALL LETTER I
<j=>                   /xE9   <U0439> CYRILLIC SMALL LETTER SHORT I
<k=>                   /xEA   <U043A> CYRILLIC SMALL LETTER KA
<l=>                   /xEB   <U043B> CYRILLIC SMALL LETTER EL
<m=>                   /xEC   <U043C> CYRILLIC SMALL LETTER EM
<n=>                   /xED   <U043D> CYRILLIC SMALL LETTER EN
<o=>                   /xEE   <U043E> CYRILLIC SMALL LETTER O
<p=>                   /xEF   <U043F> CYRILLIC SMALL LETTER PE
<r=>                   /xF0   <U0440> CYRILLIC SMALL LETTER ER
<s=>                   /xF1   <U0441> CYRILLIC SMALL LETTER ES
<t=>                   /xF2   <U0442> CYRILLIC SMALL LETTER TE
<u=>                   /xF3   <U0443> CYRILLIC SMALL LETTER U
<f=>                   /xF4   <U0444> CYRILLIC SMALL LETTER EF
<h=>                   /xF5   <U0445> CYRILLIC SMALL LETTER HA
<c=>                   /xF6   <U0446> CYRILLIC SMALL LETTER TSE
<c%>                   /xF7   <U0447> CYRILLIC SMALL LETTER CHE
<s%>                   /xF8   <U0448> CYRILLIC SMALL LETTER SHA
<sc>                   /xF9   <U0449> CYRILLIC SMALL LETTER SHCHA
<='>                   /xFA   <U044A> CYRILLIC SMALL LETTER HARD SIGN
<y=>                   /xFB   <U044B> CYRILLIC SMALL LETTER YERU
<%'>                   /xFC   <U044C> CYRILLIC SMALL LETTER SOFT SIGN
<je>                   /xFD   <U044D> CYRILLIC SMALL LETTER E
<ju>                   /xFE   <U044E> CYRILLIC SMALL LETTER YU
<ja>                   /xFF   <U044F> CYRILLIC SMALL LETTER YA
<NUL>                  /x00   <U0000> NUL
<SOH>                  /x01   <U0001> START OF HEADING (SOH)
<STX>                  /x02   <U0002> START OF TEXT (STX)
<ETX>                  /x03   <U0003> END OF TEXT (ETX)
<EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
<ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
<ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
<alert>                /x07   <U0007> BELL (BEL)
<BEL>                  /x07   <U0007> BELL (BEL)
<backspace>            /x08   <U0008> BACKSPACE (BS)
<tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
<newline>              /x0A   <U000A> LINE FEED (LF)
<vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
<form-feed>            /x0C   <U000C> FORM FEED (FF)
<carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
<DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
<DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
<DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
<DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
<DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CAN>                  /x18   <U0018> CANCEL (CAN)
<SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
<ESC>                  /x1B   <U001B> ESCAPE (ESC)
<IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
<IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
<intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
<IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
<IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
<DEL>                  /x7F   <U007F> DELETE (DEL)
<space>                /x20   <U0020> SPACE
<exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
<quotation-mark>       /x22   <U0022> QUOTATION MARK
<number-sign>          /x23   <U0023> NUMBER SIGN
<dollar-sign>          /x24   <U0024> DOLLAR SIGN
<percent-sign>         /x25   <U0025> PERCENT SIGN
<ampersand>            /x26   <U0026> AMPERSAND
<apostrophe>           /x27   <U0027> APOSTROPHE
<left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
<right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
<asterisk>             /x2A   <U002A> ASTERISK
<plus-sign>            /x2B   <U002B> PLUS SIGN
<comma>                /x2C   <U002C> COMMA
<hyphen>               /x2D   <U002D> HYPHEN-MINUS
<hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
<period>               /x2E   <U002E> FULL STOP
<full-stop>            /x2E   <U002E> FULL STOP
<slash>                /x2F   <U002F> SOLIDUS
<solidus>              /x2F   <U002F> SOLIDUS
<zero>                 /x30   <U0030> DIGIT ZERO
<one>                  /x31   <U0031> DIGIT ONE
<two>                  /x32   <U0032> DIGIT TWO
<three>                /x33   <U0033> DIGIT THREE
<four>                 /x34   <U0034> DIGIT FOUR
<five>                 /x35   <U0035> DIGIT FIVE
<six>                  /x36   <U0036> DIGIT SIX
<seven>                /x37   <U0037> DIGIT SEVEN
<eight>                /x38   <U0038> DIGIT EIGHT
<nine>                 /x39   <U0039> DIGIT NINE
<colon>                /x3A   <U003A> COLON
<semicolon>            /x3B   <U003B> SEMICOLON
<less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
<equals-sign>          /x3D   <U003D> EQUALS SIGN
<greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
<question-mark>        /x3F   <U003F> QUESTION MARK
<commercial-at>        /x40   <U0040> COMMERCIAL AT
<left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
<backslash>            /x5C   <U005C> REVERSE SOLIDUS
<reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
<right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
<circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
<circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
<underscore>           /x5F   <U005F> LOW LINE
<low-line>             /x5F   <U005F> LOW LINE
<grave-accent>         /x60   <U0060> GRAVE ACCENT
<left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
<left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
<vertical-line>        /x7C   <U007C> VERTICAL LINE
<right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
<right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
<tilde>                /x7E   <U007E> TILDE
END CHARMAP

"
! !

!CharacterEncoder::MS_Cyrillic class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'ms-cyrillic' 'ms-cp1251' 'cp1251' 'microsoft-cyrillic' 'windows-1251'  )
!

userFriendlyNameOfEncoding
    ^ 'Cyrillic'
! !

!CharacterEncoder::MS_EastEuropean class methodsFor:'mapping'!

mapFileURL2_relativePathName
    ^ 'CP1250'
!

mapping
"
# From: http://std.dkuug.dk/i18n/charmaps/CP1250

<code_set_name> CP1250
<comment_char> %
<escape_char> /
% version: 1.0
% repertoiremap: mnemonic,ds
%  source: UNICODE 1.0

% alias MS-EE
CHARMAP
<NU>                   /x00   <U0000> NULL (NUL)
<SH>                   /x01   <U0001> START OF HEADING (SOH)
<SX>                   /x02   <U0002> START OF TEXT (STX)
<EX>                   /x03   <U0003> END OF TEXT (ETX)
<ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
<EQ>                   /x05   <U0005> ENQUIRY (ENQ)
<AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
<BL>                   /x07   <U0007> BELL (BEL)
<BS>                   /x08   <U0008> BACKSPACE (BS)
<HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
<LF>                   /x0A   <U000A> LINE FEED (LF)
<VT>                   /x0B   <U000B> LINE TABULATION (VT)
<FF>                   /x0C   <U000C> FORM FEED (FF)
<CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
<SO>                   /x0E   <U000E> SHIFT OUT (SO)
<SI>                   /x0F   <U000F> SHIFT IN (SI)
<DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
<D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
<D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
<D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
<D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CN>                   /x18   <U0018> CANCEL (CAN)
<EM>                   /x19   <U0019> END OF MEDIUM (EM)
<SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
<EC>                   /x1B   <U001B> ESCAPE (ESC)
<FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
<GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
<RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
<US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
<SP>                   /x20   <U0020> SPACE
<!!>                    /x21   <U0021> EXCLAMATION MARK
<'>                    /x22   <U0022> QUOTATION MARK
<Nb>                   /x23   <U0023> NUMBER SIGN
<DO>                   /x24   <U0024> DOLLAR SIGN
<%>                    /x25   <U0025> PERCENT SIGN
<&>                    /x26   <U0026> AMPERSAND
<'>                    /x27   <U0027> APOSTROPHE
<(>                    /x28   <U0028> LEFT PARENTHESIS
<)>                    /x29   <U0029> RIGHT PARENTHESIS
<*>                    /x2A   <U002A> ASTERISK
<+>                    /x2B   <U002B> PLUS SIGN
<,>                    /x2C   <U002C> COMMA
<->                    /x2D   <U002D> HYPHEN-MINUS
<.>                    /x2E   <U002E> FULL STOP
<//>                   /x2F   <U002F> SOLIDUS
<0>                    /x30   <U0030> DIGIT ZERO
<1>                    /x31   <U0031> DIGIT ONE
<2>                    /x32   <U0032> DIGIT TWO
<3>                    /x33   <U0033> DIGIT THREE
<4>                    /x34   <U0034> DIGIT FOUR
<5>                    /x35   <U0035> DIGIT FIVE
<6>                    /x36   <U0036> DIGIT SIX
<7>                    /x37   <U0037> DIGIT SEVEN
<8>                    /x38   <U0038> DIGIT EIGHT
<9>                    /x39   <U0039> DIGIT NINE
<:>                    /x3A   <U003A> COLON
<;>                    /x3B   <U003B> SEMICOLON
<<>                    /x3C   <U003C> LESS-THAN SIGN
<=>                    /x3D   <U003D> EQUALS SIGN
</>>                   /x3E   <U003E> GREATER-THAN SIGN
<?>                    /x3F   <U003F> QUESTION MARK
<At>                   /x40   <U0040> COMMERCIAL AT
<A>                    /x41   <U0041> LATIN CAPITAL LETTER A
<B>                    /x42   <U0042> LATIN CAPITAL LETTER B
<C>                    /x43   <U0043> LATIN CAPITAL LETTER C
<D>                    /x44   <U0044> LATIN CAPITAL LETTER D
<E>                    /x45   <U0045> LATIN CAPITAL LETTER E
<F>                    /x46   <U0046> LATIN CAPITAL LETTER F
<G>                    /x47   <U0047> LATIN CAPITAL LETTER G
<H>                    /x48   <U0048> LATIN CAPITAL LETTER H
<I>                    /x49   <U0049> LATIN CAPITAL LETTER I
<J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
<K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
<L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
<M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
<N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
<O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
<P>                    /x50   <U0050> LATIN CAPITAL LETTER P
<Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
<R>                    /x52   <U0052> LATIN CAPITAL LETTER R
<S>                    /x53   <U0053> LATIN CAPITAL LETTER S
<T>                    /x54   <U0054> LATIN CAPITAL LETTER T
<U>                    /x55   <U0055> LATIN CAPITAL LETTER U
<V>                    /x56   <U0056> LATIN CAPITAL LETTER V
<W>                    /x57   <U0057> LATIN CAPITAL LETTER W
<X>                    /x58   <U0058> LATIN CAPITAL LETTER X
<Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
<Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
<<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
<////>                 /x5C   <U005C> REVERSE SOLIDUS
<)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
<'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
<_>                    /x5F   <U005F> LOW LINE
<'!!>                   /x60   <U0060> GRAVE ACCENT
<a>                    /x61   <U0061> LATIN SMALL LETTER A
<b>                    /x62   <U0062> LATIN SMALL LETTER B
<c>                    /x63   <U0063> LATIN SMALL LETTER C
<d>                    /x64   <U0064> LATIN SMALL LETTER D
<e>                    /x65   <U0065> LATIN SMALL LETTER E
<f>                    /x66   <U0066> LATIN SMALL LETTER F
<g>                    /x67   <U0067> LATIN SMALL LETTER G
<h>                    /x68   <U0068> LATIN SMALL LETTER H
<i>                    /x69   <U0069> LATIN SMALL LETTER I
<j>                    /x6A   <U006A> LATIN SMALL LETTER J
<k>                    /x6B   <U006B> LATIN SMALL LETTER K
<l>                    /x6C   <U006C> LATIN SMALL LETTER L
<m>                    /x6D   <U006D> LATIN SMALL LETTER M
<n>                    /x6E   <U006E> LATIN SMALL LETTER N
<o>                    /x6F   <U006F> LATIN SMALL LETTER O
<p>                    /x70   <U0070> LATIN SMALL LETTER P
<q>                    /x71   <U0071> LATIN SMALL LETTER Q
<r>                    /x72   <U0072> LATIN SMALL LETTER R
<s>                    /x73   <U0073> LATIN SMALL LETTER S
<t>                    /x74   <U0074> LATIN SMALL LETTER T
<u>                    /x75   <U0075> LATIN SMALL LETTER U
<v>                    /x76   <U0076> LATIN SMALL LETTER V
<w>                    /x77   <U0077> LATIN SMALL LETTER W
<x>                    /x78   <U0078> LATIN SMALL LETTER X
<y>                    /x79   <U0079> LATIN SMALL LETTER Y
<z>                    /x7A   <U007A> LATIN SMALL LETTER Z
<(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
<!!!!>                   /x7C   <U007C> VERTICAL LINE
<!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
<'?>                   /x7E   <U007E> TILDE
<DT>                   /x7F   <U007F> DELETE (DEL)
<.9>                   /x82   <U201A> SINGLE LOW-9 QUOTATION MARK
<:9>                   /x84   <U201E> DOUBLE LOW-9 QUOTATION MARK
<.3>                   /x85   <U2026> HORIZONTAL ELLIPSIS
<//->                  /x86   <U2020> DAGGER
<//=>                  /x87   <U2021> DOUBLE DAGGER
<%0>                   /x89   <U2030> PER MILLE SIGN
<S<>                   /x8A   <U0160> LATIN CAPITAL LETTER S WITH CARON
<<1>                   /x8B   <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
<S'>                   /x8C   <U015A> LATIN CAPITAL LETTER S WITH ACUTE
<T<>                   /x8D   <U0164> LATIN CAPITAL LETTER T WITH CARON
<Z<>                   /x8E   <U017D> LATIN CAPITAL LETTER Z WITH CARON
<Z'>                   /x8F   <U0179> LATIN CAPITAL LETTER Z WITH ACUTE
<'6>                   /x91   <U2018> LEFT SINGLE QUOTATION MARK
<'9>                   /x92   <U2019> RIGHT SINGLE QUOTATION MARK
<'6>                   /x93   <U201C> LEFT DOUBLE QUOTATION MARK
<'9>                   /x94   <U201D> RIGHT DOUBLE QUOTATION MARK
<sb>                   /x95   <U2022> BULLET
<-N>                   /x96   <U2013> EN DASH
<-M>                   /x97   <U2014> EM DASH
<TM>                   /x99   <U2122> TRADE MARK SIGN
<s<>                   /x9A   <U0161> LATIN SMALL LETTER S WITH CARON
</>1>                  /x9B   <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
<s'>                   /x9C   <U015B> LATIN SMALL LETTER S WITH ACUTE
<t<>                   /x9D   <U0165> LATIN SMALL LETTER T WITH CARON
<z<>                   /x9E   <U017E> LATIN SMALL LETTER Z WITH CARON
<z'>                   /x9F   <U017A> LATIN SMALL LETTER Z WITH ACUTE
<NS>                   /xA0   <U00A0> NO-BREAK SPACE
<'<>                   /xA1   <U02C7> CARON (Mandarin Chinese third tone)
<'(>                   /xA2   <U02D8> BREVE
<L//>                  /xA3   <U0141> LATIN CAPITAL LETTER L WITH STROKE
<Cu>                   /xA4   <U00A4> CURRENCY SIGN
<A;>                   /xA5   <U0104> LATIN CAPITAL LETTER A WITH OGONEK
<BB>                   /xA6   <U00A6> BROKEN BAR
<SE>                   /xA7   <U00A7> SECTION SIGN
<':>                   /xA8   <U00A8> DIAERESIS
<Co>                   /xA9   <U00A9> COPYRIGHT SIGN
<S,>                   /xAA   <U015E> LATIN CAPITAL LETTER S WITH CEDILLA
<<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
<NO>                   /xAC   <U00AC> NOT SIGN
<-->                   /xAD   <U00AD> SOFT HYPHEN
<Rg>                   /xAE   <U00AE> REGISTERED SIGN
<Z.>                   /xAF   <U017B> LATIN CAPITAL LETTER Z WITH DOT ABOVE
<DG>                   /xB0   <U00B0> DEGREE SIGN
<+->                   /xB1   <U00B1> PLUS-MINUS SIGN
<';>                   /xB2   <U02DB> OGONEK
<l//>                  /xB3   <U0142> LATIN SMALL LETTER L WITH STROKE
<''>                   /xB4   <U00B4> ACUTE ACCENT
<My>                   /xB5   <U00B5> MICRO SIGN
<PI>                   /xB6   <U00B6> PILCROW SIGN
<.M>                   /xB7   <U00B7> MIDDLE DOT
<',>                   /xB8   <U00B8> CEDILLA
<a;>                   /xB9   <U0105> LATIN SMALL LETTER A WITH OGONEK
<s,>                   /xBA   <U015F> LATIN SMALL LETTER S WITH CEDILLA
</>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
<L<>                   /xBC   <U013D> LATIN CAPITAL LETTER L WITH CARON
<''>                   /xBD   <U02DD> DOUBLE ACUTE ACCENT
<l<>                   /xBE   <U013E> LATIN SMALL LETTER L WITH CARON
<z.>                   /xBF   <U017C> LATIN SMALL LETTER Z WITH DOT ABOVE
<R'>                   /xC0   <U0154> LATIN CAPITAL LETTER R WITH ACUTE
<A'>                   /xC1   <U00C1> LATIN CAPITAL LETTER A WITH ACUTE
<A/>>                  /xC2   <U00C2> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
<A(>                   /xC3   <U0102> LATIN CAPITAL LETTER A WITH BREVE
<A:>                   /xC4   <U00C4> LATIN CAPITAL LETTER A WITH DIAERESIS
<L'>                   /xC5   <U0139> LATIN CAPITAL LETTER L WITH ACUTE
<C'>                   /xC6   <U0106> LATIN CAPITAL LETTER C WITH ACUTE
<C,>                   /xC7   <U00C7> LATIN CAPITAL LETTER C WITH CEDILLA
<C<>                   /xC8   <U010C> LATIN CAPITAL LETTER C WITH CARON
<E'>                   /xC9   <U00C9> LATIN CAPITAL LETTER E WITH ACUTE
<E;>                   /xCA   <U0118> LATIN CAPITAL LETTER E WITH OGONEK
<E:>                   /xCB   <U00CB> LATIN CAPITAL LETTER E WITH DIAERESIS
<E<>                   /xCC   <U011A> LATIN CAPITAL LETTER E WITH CARON
<I'>                   /xCD   <U00CD> LATIN CAPITAL LETTER I WITH ACUTE
<I/>>                  /xCE   <U00CE> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
<D<>                   /xCF   <U010E> LATIN CAPITAL LETTER D WITH CARON
<D//>                  /xD0   <U0110> LATIN CAPITAL LETTER D WITH STROKE
<N'>                   /xD1   <U0143> LATIN CAPITAL LETTER N WITH ACUTE
<N<>                   /xD2   <U0147> LATIN CAPITAL LETTER N WITH CARON
<O'>                   /xD3   <U00D3> LATIN CAPITAL LETTER O WITH ACUTE
<O/>>                  /xD4   <U00D4> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
<O'>                   /xD5   <U0150> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
<O:>                   /xD6   <U00D6> LATIN CAPITAL LETTER O WITH DIAERESIS
<*X>                   /xD7   <U00D7> MULTIPLICATION SIGN
<R<>                   /xD8   <U0158> LATIN CAPITAL LETTER R WITH CARON
<U0>                   /xD9   <U016E> LATIN CAPITAL LETTER U WITH RING ABOVE
<U'>                   /xDA   <U00DA> LATIN CAPITAL LETTER U WITH ACUTE
<U'>                   /xDB   <U0170> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
<U:>                   /xDC   <U00DC> LATIN CAPITAL LETTER U WITH DIAERESIS
<Y'>                   /xDD   <U00DD> LATIN CAPITAL LETTER Y WITH ACUTE
<T,>                   /xDE   <U0162> LATIN CAPITAL LETTER T WITH CEDILLA
<ss>                   /xDF   <U00DF> LATIN SMALL LETTER SHARP S (German)
<r'>                   /xE0   <U0155> LATIN SMALL LETTER R WITH ACUTE
<a'>                   /xE1   <U00E1> LATIN SMALL LETTER A WITH ACUTE
<a/>>                  /xE2   <U00E2> LATIN SMALL LETTER A WITH CIRCUMFLEX
<a(>                   /xE3   <U0103> LATIN SMALL LETTER A WITH BREVE
<a:>                   /xE4   <U00E4> LATIN SMALL LETTER A WITH DIAERESIS
<l'>                   /xE5   <U013A> LATIN SMALL LETTER L WITH ACUTE
<c'>                   /xE6   <U0107> LATIN SMALL LETTER C WITH ACUTE
<c,>                   /xE7   <U00E7> LATIN SMALL LETTER C WITH CEDILLA
<c<>                   /xE8   <U010D> LATIN SMALL LETTER C WITH CARON
<e'>                   /xE9   <U00E9> LATIN SMALL LETTER E WITH ACUTE
<e;>                   /xEA   <U0119> LATIN SMALL LETTER E WITH OGONEK
<e:>                   /xEB   <U00EB> LATIN SMALL LETTER E WITH DIAERESIS
<e<>                   /xEC   <U011B> LATIN SMALL LETTER E WITH CARON
<i'>                   /xED   <U00ED> LATIN SMALL LETTER I WITH ACUTE
<i/>>                  /xEE   <U00EE> LATIN SMALL LETTER I WITH CIRCUMFLEX
<d<>                   /xEF   <U010F> LATIN SMALL LETTER D WITH CARON
<d//>                  /xF0   <U0111> LATIN SMALL LETTER D WITH STROKE
<n'>                   /xF1   <U0144> LATIN SMALL LETTER N WITH ACUTE
<n<>                   /xF2   <U0148> LATIN SMALL LETTER N WITH CARON
<o'>                   /xF3   <U00F3> LATIN SMALL LETTER O WITH ACUTE
<o/>>                  /xF4   <U00F4> LATIN SMALL LETTER O WITH CIRCUMFLEX
<o'>                   /xF5   <U0151> LATIN SMALL LETTER O WITH DOUBLE ACUTE
<o:>                   /xF6   <U00F6> LATIN SMALL LETTER O WITH DIAERESIS
<-:>                   /xF7   <U00F7> DIVISION SIGN
<r<>                   /xF8   <U0159> LATIN SMALL LETTER R WITH CARON
<u0>                   /xF9   <U016F> LATIN SMALL LETTER U WITH RING ABOVE
<u'>                   /xFA   <U00FA> LATIN SMALL LETTER U WITH ACUTE
<u'>                   /xFB   <U0171> LATIN SMALL LETTER U WITH DOUBLE ACUTE
<u:>                   /xFC   <U00FC> LATIN SMALL LETTER U WITH DIAERESIS
<y'>                   /xFD   <U00FD> LATIN SMALL LETTER Y WITH ACUTE
<t,>                   /xFE   <U0163> LATIN SMALL LETTER T WITH CEDILLA
<'.>                   /xFF   <U02D9> DOT ABOVE (Mandarin Chinese light tone)
<NUL>                  /x00   <U0000> NUL
<SOH>                  /x01   <U0001> START OF HEADING (SOH)
<STX>                  /x02   <U0002> START OF TEXT (STX)
<ETX>                  /x03   <U0003> END OF TEXT (ETX)
<EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
<ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
<ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
<alert>                /x07   <U0007> BELL (BEL)
<BEL>                  /x07   <U0007> BELL (BEL)
<backspace>            /x08   <U0008> BACKSPACE (BS)
<tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
<newline>              /x0A   <U000A> LINE FEED (LF)
<vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
<form-feed>            /x0C   <U000C> FORM FEED (FF)
<carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
<DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
<DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
<DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
<DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
<DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CAN>                  /x18   <U0018> CANCEL (CAN)
<SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
<ESC>                  /x1B   <U001B> ESCAPE (ESC)
<IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
<IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
<intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
<IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
<IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
<DEL>                  /x7F   <U007F> DELETE (DEL)
<space>                /x20   <U0020> SPACE
<exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
<quotation-mark>       /x22   <U0022> QUOTATION MARK
<number-sign>          /x23   <U0023> NUMBER SIGN
<dollar-sign>          /x24   <U0024> DOLLAR SIGN
<percent-sign>         /x25   <U0025> PERCENT SIGN
<ampersand>            /x26   <U0026> AMPERSAND
<apostrophe>           /x27   <U0027> APOSTROPHE
<left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
<right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
<asterisk>             /x2A   <U002A> ASTERISK
<plus-sign>            /x2B   <U002B> PLUS SIGN
<comma>                /x2C   <U002C> COMMA
<hyphen>               /x2D   <U002D> HYPHEN-MINUS
<hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
<period>               /x2E   <U002E> FULL STOP
<full-stop>            /x2E   <U002E> FULL STOP
<slash>                /x2F   <U002F> SOLIDUS
<solidus>              /x2F   <U002F> SOLIDUS
<zero>                 /x30   <U0030> DIGIT ZERO
<one>                  /x31   <U0031> DIGIT ONE
<two>                  /x32   <U0032> DIGIT TWO
<three>                /x33   <U0033> DIGIT THREE
<four>                 /x34   <U0034> DIGIT FOUR
<five>                 /x35   <U0035> DIGIT FIVE
<six>                  /x36   <U0036> DIGIT SIX
<seven>                /x37   <U0037> DIGIT SEVEN
<eight>                /x38   <U0038> DIGIT EIGHT
<nine>                 /x39   <U0039> DIGIT NINE
<colon>                /x3A   <U003A> COLON
<semicolon>            /x3B   <U003B> SEMICOLON
<less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
<equals-sign>          /x3D   <U003D> EQUALS SIGN
<greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
<question-mark>        /x3F   <U003F> QUESTION MARK
<commercial-at>        /x40   <U0040> COMMERCIAL AT
<left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
<backslash>            /x5C   <U005C> REVERSE SOLIDUS
<reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
<right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
<circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
<circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
<underscore>           /x5F   <U005F> LOW LINE
<low-line>             /x5F   <U005F> LOW LINE
<grave-accent>         /x60   <U0060> GRAVE ACCENT
<left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
<left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
<vertical-line>        /x7C   <U007C> VERTICAL LINE
<right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
<right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
<tilde>                /x7E   <U007E> TILDE
END CHARMAP

"
! !

!CharacterEncoder::MS_EastEuropean class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'ms-easteuropean' 'ms-ee' 'cp1250' 'ms-cp1250' 'microsoft-easteuropean' 'windows-1250'  )
!

userFriendlyNameOfEncoding
    ^ 'East European'
! !

!CharacterEncoder::MS_Greek class methodsFor:'mapping'!

mapFileURL2_relativePathName
    ^ 'CP1253'
!

mapping
"
# From: http://std.dkuug.dk/i18n/charmaps/CP1253

<code_set_name> CP1253
<comment_char> %
<escape_char> /
% version: 1.0
% repertoiremap: mnemonic,ds
%  source: UNICODE 1.0

% alias MS-GREEK
CHARMAP
<NU>                   /x00   <U0000> NULL (NUL)
<SH>                   /x01   <U0001> START OF HEADING (SOH)
<SX>                   /x02   <U0002> START OF TEXT (STX)
<EX>                   /x03   <U0003> END OF TEXT (ETX)
<ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
<EQ>                   /x05   <U0005> ENQUIRY (ENQ)
<AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
<BL>                   /x07   <U0007> BELL (BEL)
<BS>                   /x08   <U0008> BACKSPACE (BS)
<HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
<LF>                   /x0A   <U000A> LINE FEED (LF)
<VT>                   /x0B   <U000B> LINE TABULATION (VT)
<FF>                   /x0C   <U000C> FORM FEED (FF)
<CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
<SO>                   /x0E   <U000E> SHIFT OUT (SO)
<SI>                   /x0F   <U000F> SHIFT IN (SI)
<DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
<D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
<D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
<D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
<D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CN>                   /x18   <U0018> CANCEL (CAN)
<EM>                   /x19   <U0019> END OF MEDIUM (EM)
<SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
<EC>                   /x1B   <U001B> ESCAPE (ESC)
<FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
<GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
<RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
<US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
<SP>                   /x20   <U0020> SPACE
<!!>                    /x21   <U0021> EXCLAMATION MARK
<'>                    /x22   <U0022> QUOTATION MARK
<Nb>                   /x23   <U0023> NUMBER SIGN
<DO>                   /x24   <U0024> DOLLAR SIGN
<%>                    /x25   <U0025> PERCENT SIGN
<&>                    /x26   <U0026> AMPERSAND
<'>                    /x27   <U0027> APOSTROPHE
<(>                    /x28   <U0028> LEFT PARENTHESIS
<)>                    /x29   <U0029> RIGHT PARENTHESIS
<*>                    /x2A   <U002A> ASTERISK
<+>                    /x2B   <U002B> PLUS SIGN
<,>                    /x2C   <U002C> COMMA
<->                    /x2D   <U002D> HYPHEN-MINUS
<.>                    /x2E   <U002E> FULL STOP
<//>                   /x2F   <U002F> SOLIDUS
<0>                    /x30   <U0030> DIGIT ZERO
<1>                    /x31   <U0031> DIGIT ONE
<2>                    /x32   <U0032> DIGIT TWO
<3>                    /x33   <U0033> DIGIT THREE
<4>                    /x34   <U0034> DIGIT FOUR
<5>                    /x35   <U0035> DIGIT FIVE
<6>                    /x36   <U0036> DIGIT SIX
<7>                    /x37   <U0037> DIGIT SEVEN
<8>                    /x38   <U0038> DIGIT EIGHT
<9>                    /x39   <U0039> DIGIT NINE
<:>                    /x3A   <U003A> COLON
<;>                    /x3B   <U003B> SEMICOLON
<<>                    /x3C   <U003C> LESS-THAN SIGN
<=>                    /x3D   <U003D> EQUALS SIGN
</>>                   /x3E   <U003E> GREATER-THAN SIGN
<?>                    /x3F   <U003F> QUESTION MARK
<At>                   /x40   <U0040> COMMERCIAL AT
<A>                    /x41   <U0041> LATIN CAPITAL LETTER A
<B>                    /x42   <U0042> LATIN CAPITAL LETTER B
<C>                    /x43   <U0043> LATIN CAPITAL LETTER C
<D>                    /x44   <U0044> LATIN CAPITAL LETTER D
<E>                    /x45   <U0045> LATIN CAPITAL LETTER E
<F>                    /x46   <U0046> LATIN CAPITAL LETTER F
<G>                    /x47   <U0047> LATIN CAPITAL LETTER G
<H>                    /x48   <U0048> LATIN CAPITAL LETTER H
<I>                    /x49   <U0049> LATIN CAPITAL LETTER I
<J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
<K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
<L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
<M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
<N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
<O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
<P>                    /x50   <U0050> LATIN CAPITAL LETTER P
<Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
<R>                    /x52   <U0052> LATIN CAPITAL LETTER R
<S>                    /x53   <U0053> LATIN CAPITAL LETTER S
<T>                    /x54   <U0054> LATIN CAPITAL LETTER T
<U>                    /x55   <U0055> LATIN CAPITAL LETTER U
<V>                    /x56   <U0056> LATIN CAPITAL LETTER V
<W>                    /x57   <U0057> LATIN CAPITAL LETTER W
<X>                    /x58   <U0058> LATIN CAPITAL LETTER X
<Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
<Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
<<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
<////>                 /x5C   <U005C> REVERSE SOLIDUS
<)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
<'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
<_>                    /x5F   <U005F> LOW LINE
<'!!>                   /x60   <U0060> GRAVE ACCENT
<a>                    /x61   <U0061> LATIN SMALL LETTER A
<b>                    /x62   <U0062> LATIN SMALL LETTER B
<c>                    /x63   <U0063> LATIN SMALL LETTER C
<d>                    /x64   <U0064> LATIN SMALL LETTER D
<e>                    /x65   <U0065> LATIN SMALL LETTER E
<f>                    /x66   <U0066> LATIN SMALL LETTER F
<g>                    /x67   <U0067> LATIN SMALL LETTER G
<h>                    /x68   <U0068> LATIN SMALL LETTER H
<i>                    /x69   <U0069> LATIN SMALL LETTER I
<j>                    /x6A   <U006A> LATIN SMALL LETTER J
<k>                    /x6B   <U006B> LATIN SMALL LETTER K
<l>                    /x6C   <U006C> LATIN SMALL LETTER L
<m>                    /x6D   <U006D> LATIN SMALL LETTER M
<n>                    /x6E   <U006E> LATIN SMALL LETTER N
<o>                    /x6F   <U006F> LATIN SMALL LETTER O
<p>                    /x70   <U0070> LATIN SMALL LETTER P
<q>                    /x71   <U0071> LATIN SMALL LETTER Q
<r>                    /x72   <U0072> LATIN SMALL LETTER R
<s>                    /x73   <U0073> LATIN SMALL LETTER S
<t>                    /x74   <U0074> LATIN SMALL LETTER T
<u>                    /x75   <U0075> LATIN SMALL LETTER U
<v>                    /x76   <U0076> LATIN SMALL LETTER V
<w>                    /x77   <U0077> LATIN SMALL LETTER W
<x>                    /x78   <U0078> LATIN SMALL LETTER X
<y>                    /x79   <U0079> LATIN SMALL LETTER Y
<z>                    /x7A   <U007A> LATIN SMALL LETTER Z
<(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
<!!!!>                   /x7C   <U007C> VERTICAL LINE
<!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
<'?>                   /x7E   <U007E> TILDE
<DT>                   /x7F   <U007F> DELETE (DEL)
<.9>                   /x82   <U201A> SINGLE LOW-9 QUOTATION MARK
<f2>                   /x83   <U0192> LATIN SMALL LETTER F WITH HOOK
<:9>                   /x84   <U201E> DOUBLE LOW-9 QUOTATION MARK
<.3>                   /x85   <U2026> HORIZONTAL ELLIPSIS
<//->                  /x86   <U2020> DAGGER
<//=>                  /x87   <U2021> DOUBLE DAGGER
<%0>                   /x89   <U2030> PER MILLE SIGN
<<1>                   /x8B   <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
<'6>                   /x91   <U2018> LEFT SINGLE QUOTATION MARK
<'9>                   /x92   <U2019> RIGHT SINGLE QUOTATION MARK
<'6>                   /x93   <U201C> LEFT DOUBLE QUOTATION MARK
<'9>                   /x94   <U201D> RIGHT DOUBLE QUOTATION MARK
<sb>                   /x95   <U2022> BULLET
<-N>                   /x96   <U2013> EN DASH
<-M>                   /x97   <U2014> EM DASH
<TM>                   /x99   <U2122> TRADE MARK SIGN
</>1>                  /x9B   <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
<NS>                   /xA0   <U00A0> NO-BREAK SPACE
<'%>                   /xA1   <U0385> GREEK DIALYTIKA TONOS
<A%>                   /xA2   <U0386> GREEK CAPITAL LETTER ALPHA WITH TONOS
<Pd>                   /xA3   <U00A3> POUND SIGN
<Cu>                   /xA4   <U00A4> CURRENCY SIGN
<Ye>                   /xA5   <U00A5> YEN SIGN
<BB>                   /xA6   <U00A6> BROKEN BAR
<SE>                   /xA7   <U00A7> SECTION SIGN
<':>                   /xA8   <U00A8> DIAERESIS
<Co>                   /xA9   <U00A9> COPYRIGHT SIGN
<<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
<NO>                   /xAC   <U00AC> NOT SIGN
<-->                   /xAD   <U00AD> SOFT HYPHEN
<Rg>                   /xAE   <U00AE> REGISTERED SIGN
<-3>                   /xAF   <U2015> HORIZONTAL BAR
<DG>                   /xB0   <U00B0> DEGREE SIGN
<+->                   /xB1   <U00B1> PLUS-MINUS SIGN
<2S>                   /xB2   <U00B2> SUPERSCRIPT TWO
<3S>                   /xB3   <U00B3> SUPERSCRIPT THREE
<'*>                   /xB4   <U0384> GREEK TONOS
<My>                   /xB5   <U00B5> MICRO SIGN
<PI>                   /xB6   <U00B6> PILCROW SIGN
<.M>                   /xB7   <U00B7> MIDDLE DOT
<E%>                   /xB8   <U0388> GREEK CAPITAL LETTER EPSILON WITH TONOS
<Y%>                   /xB9   <U0389> GREEK CAPITAL LETTER ETA WITH TONOS
<I%>                   /xBA   <U038A> GREEK CAPITAL LETTER IOTA WITH TONOS
</>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
<O%>                   /xBC   <U038C> GREEK CAPITAL LETTER OMICRON WITH TONOS
<12>                   /xBD   <U00BD> VULGAR FRACTION ONE HALF
<U%>                   /xBE   <U038E> GREEK CAPITAL LETTER UPSILON WITH TONOS
<W%>                   /xBF   <U038F> GREEK CAPITAL LETTER OMEGA WITH TONOS
<i3>                   /xC0   <U0390> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
<A*>                   /xC1   <U0391> GREEK CAPITAL LETTER ALPHA
<B*>                   /xC2   <U0392> GREEK CAPITAL LETTER BETA
<G*>                   /xC3   <U0393> GREEK CAPITAL LETTER GAMMA
<D*>                   /xC4   <U0394> GREEK CAPITAL LETTER DELTA
<E*>                   /xC5   <U0395> GREEK CAPITAL LETTER EPSILON
<Z*>                   /xC6   <U0396> GREEK CAPITAL LETTER ZETA
<Y*>                   /xC7   <U0397> GREEK CAPITAL LETTER ETA
<H*>                   /xC8   <U0398> GREEK CAPITAL LETTER THETA
<I*>                   /xC9   <U0399> GREEK CAPITAL LETTER IOTA
<K*>                   /xCA   <U039A> GREEK CAPITAL LETTER KAPPA
<L*>                   /xCB   <U039B> GREEK CAPITAL LETTER LAMDA
<M*>                   /xCC   <U039C> GREEK CAPITAL LETTER MU
<N*>                   /xCD   <U039D> GREEK CAPITAL LETTER NU
<C*>                   /xCE   <U039E> GREEK CAPITAL LETTER XI
<O*>                   /xCF   <U039F> GREEK CAPITAL LETTER OMICRON
<P*>                   /xD0   <U03A0> GREEK CAPITAL LETTER PI
<R*>                   /xD1   <U03A1> GREEK CAPITAL LETTER RHO
<S*>                   /xD3   <U03A3> GREEK CAPITAL LETTER SIGMA
<T*>                   /xD4   <U03A4> GREEK CAPITAL LETTER TAU
<U*>                   /xD5   <U03A5> GREEK CAPITAL LETTER UPSILON
<F*>                   /xD6   <U03A6> GREEK CAPITAL LETTER PHI
<X*>                   /xD7   <U03A7> GREEK CAPITAL LETTER CHI
<Q*>                   /xD8   <U03A8> GREEK CAPITAL LETTER PSI
<W*>                   /xD9   <U03A9> GREEK CAPITAL LETTER OMEGA
<J*>                   /xDA   <U03AA> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
<V*>                   /xDB   <U03AB> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
<a%>                   /xDC   <U03AC> GREEK SMALL LETTER ALPHA WITH TONOS
<e%>                   /xDD   <U03AD> GREEK SMALL LETTER EPSILON WITH TONOS
<y%>                   /xDE   <U03AE> GREEK SMALL LETTER ETA WITH TONOS
<i%>                   /xDF   <U03AF> GREEK SMALL LETTER IOTA WITH TONOS
<u3>                   /xE0   <U03B0> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
<a*>                   /xE1   <U03B1> GREEK SMALL LETTER ALPHA
<b*>                   /xE2   <U03B2> GREEK SMALL LETTER BETA
<g*>                   /xE3   <U03B3> GREEK SMALL LETTER GAMMA
<d*>                   /xE4   <U03B4> GREEK SMALL LETTER DELTA
<e*>                   /xE5   <U03B5> GREEK SMALL LETTER EPSILON
<z*>                   /xE6   <U03B6> GREEK SMALL LETTER ZETA
<y*>                   /xE7   <U03B7> GREEK SMALL LETTER ETA
<h*>                   /xE8   <U03B8> GREEK SMALL LETTER THETA
<i*>                   /xE9   <U03B9> GREEK SMALL LETTER IOTA
<k*>                   /xEA   <U03BA> GREEK SMALL LETTER KAPPA
<l*>                   /xEB   <U03BB> GREEK SMALL LETTER LAMDA
<m*>                   /xEC   <U03BC> GREEK SMALL LETTER MU
<n*>                   /xED   <U03BD> GREEK SMALL LETTER NU
<c*>                   /xEE   <U03BE> GREEK SMALL LETTER XI
<o*>                   /xEF   <U03BF> GREEK SMALL LETTER OMICRON
<p*>                   /xF0   <U03C0> GREEK SMALL LETTER PI
<r*>                   /xF1   <U03C1> GREEK SMALL LETTER RHO
<*s>                   /xF2   <U03C2> GREEK SMALL LETTER FINAL SIGMA
<s*>                   /xF3   <U03C3> GREEK SMALL LETTER SIGMA
<t*>                   /xF4   <U03C4> GREEK SMALL LETTER TAU
<u*>                   /xF5   <U03C5> GREEK SMALL LETTER UPSILON
<f*>                   /xF6   <U03C6> GREEK SMALL LETTER PHI
<x*>                   /xF7   <U03C7> GREEK SMALL LETTER CHI
<q*>                   /xF8   <U03C8> GREEK SMALL LETTER PSI
<w*>                   /xF9   <U03C9> GREEK SMALL LETTER OMEGA
<j*>                   /xFA   <U03CA> GREEK SMALL LETTER IOTA WITH DIALYTIKA
<v*>                   /xFB   <U03CB> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
<o%>                   /xFC   <U03CC> GREEK SMALL LETTER OMICRON WITH TONOS
<u%>                   /xFD   <U03CD> GREEK SMALL LETTER UPSILON WITH TONOS
<w%>                   /xFE   <U03CE> GREEK SMALL LETTER OMEGA WITH TONOS
<NUL>                  /x00   <U0000> NUL
<SOH>                  /x01   <U0001> START OF HEADING (SOH)
<STX>                  /x02   <U0002> START OF TEXT (STX)
<ETX>                  /x03   <U0003> END OF TEXT (ETX)
<EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
<ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
<ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
<alert>                /x07   <U0007> BELL (BEL)
<BEL>                  /x07   <U0007> BELL (BEL)
<backspace>            /x08   <U0008> BACKSPACE (BS)
<tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
<newline>              /x0A   <U000A> LINE FEED (LF)
<vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
<form-feed>            /x0C   <U000C> FORM FEED (FF)
<carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
<DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
<DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
<DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
<DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
<DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CAN>                  /x18   <U0018> CANCEL (CAN)
<SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
<ESC>                  /x1B   <U001B> ESCAPE (ESC)
<IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
<IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
<intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
<IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
<IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
<DEL>                  /x7F   <U007F> DELETE (DEL)
<space>                /x20   <U0020> SPACE
<exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
<quotation-mark>       /x22   <U0022> QUOTATION MARK
<number-sign>          /x23   <U0023> NUMBER SIGN
<dollar-sign>          /x24   <U0024> DOLLAR SIGN
<percent-sign>         /x25   <U0025> PERCENT SIGN
<ampersand>            /x26   <U0026> AMPERSAND
<apostrophe>           /x27   <U0027> APOSTROPHE
<left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
<right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
<asterisk>             /x2A   <U002A> ASTERISK
<plus-sign>            /x2B   <U002B> PLUS SIGN
<comma>                /x2C   <U002C> COMMA
<hyphen>               /x2D   <U002D> HYPHEN-MINUS
<hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
<period>               /x2E   <U002E> FULL STOP
<full-stop>            /x2E   <U002E> FULL STOP
<slash>                /x2F   <U002F> SOLIDUS
<solidus>              /x2F   <U002F> SOLIDUS
<zero>                 /x30   <U0030> DIGIT ZERO
<one>                  /x31   <U0031> DIGIT ONE
<two>                  /x32   <U0032> DIGIT TWO
<three>                /x33   <U0033> DIGIT THREE
<four>                 /x34   <U0034> DIGIT FOUR
<five>                 /x35   <U0035> DIGIT FIVE
<six>                  /x36   <U0036> DIGIT SIX
<seven>                /x37   <U0037> DIGIT SEVEN
<eight>                /x38   <U0038> DIGIT EIGHT
<nine>                 /x39   <U0039> DIGIT NINE
<colon>                /x3A   <U003A> COLON
<semicolon>            /x3B   <U003B> SEMICOLON
<less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
<equals-sign>          /x3D   <U003D> EQUALS SIGN
<greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
<question-mark>        /x3F   <U003F> QUESTION MARK
<commercial-at>        /x40   <U0040> COMMERCIAL AT
<left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
<backslash>            /x5C   <U005C> REVERSE SOLIDUS
<reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
<right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
<circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
<circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
<underscore>           /x5F   <U005F> LOW LINE
<low-line>             /x5F   <U005F> LOW LINE
<grave-accent>         /x60   <U0060> GRAVE ACCENT
<left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
<left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
<vertical-line>        /x7C   <U007C> VERTICAL LINE
<right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
<right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
<tilde>                /x7E   <U007E> TILDE
END CHARMAP

"
! !

!CharacterEncoder::MS_Greek class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'ms-greek' 'ms-cp1253' 'cp1253' 'microsoft-greek' 'windows-1253' )
!

userFriendlyNameOfEncoding
    ^ 'Greek'
! !

!CharacterEncoder::MS_Hebrew class methodsFor:'mapping'!

mapFileURL2_relativePathName
    ^ 'CP1255'
!

mapping
"
# From: http://std.dkuug.dk/i18n/charmaps/CP1255

<code_set_name> CP1255
<comment_char> %
<escape_char> /
% version: 1.0
% repertoiremap: mnemonic,ds
%  source: UNICODE 1.0

% alias MS-HEBR
CHARMAP
<NU>                   /x00   <U0000> NULL (NUL)
<SH>                   /x01   <U0001> START OF HEADING (SOH)
<SX>                   /x02   <U0002> START OF TEXT (STX)
<EX>                   /x03   <U0003> END OF TEXT (ETX)
<ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
<EQ>                   /x05   <U0005> ENQUIRY (ENQ)
<AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
<BL>                   /x07   <U0007> BELL (BEL)
<BS>                   /x08   <U0008> BACKSPACE (BS)
<HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
<LF>                   /x0A   <U000A> LINE FEED (LF)
<VT>                   /x0B   <U000B> LINE TABULATION (VT)
<FF>                   /x0C   <U000C> FORM FEED (FF)
<CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
<SO>                   /x0E   <U000E> SHIFT OUT (SO)
<SI>                   /x0F   <U000F> SHIFT IN (SI)
<DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
<D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
<D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
<D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
<D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CN>                   /x18   <U0018> CANCEL (CAN)
<EM>                   /x19   <U0019> END OF MEDIUM (EM)
<SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
<EC>                   /x1B   <U001B> ESCAPE (ESC)
<FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
<GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
<RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
<US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
<SP>                   /x20   <U0020> SPACE
<!!>                    /x21   <U0021> EXCLAMATION MARK
<'>                    /x22   <U0022> QUOTATION MARK
<Nb>                   /x23   <U0023> NUMBER SIGN
<DO>                   /x24   <U0024> DOLLAR SIGN
<%>                    /x25   <U0025> PERCENT SIGN
<&>                    /x26   <U0026> AMPERSAND
<'>                    /x27   <U0027> APOSTROPHE
<(>                    /x28   <U0028> LEFT PARENTHESIS
<)>                    /x29   <U0029> RIGHT PARENTHESIS
<*>                    /x2A   <U002A> ASTERISK
<+>                    /x2B   <U002B> PLUS SIGN
<,>                    /x2C   <U002C> COMMA
<->                    /x2D   <U002D> HYPHEN-MINUS
<.>                    /x2E   <U002E> FULL STOP
<//>                   /x2F   <U002F> SOLIDUS
<0>                    /x30   <U0030> DIGIT ZERO
<1>                    /x31   <U0031> DIGIT ONE
<2>                    /x32   <U0032> DIGIT TWO
<3>                    /x33   <U0033> DIGIT THREE
<4>                    /x34   <U0034> DIGIT FOUR
<5>                    /x35   <U0035> DIGIT FIVE
<6>                    /x36   <U0036> DIGIT SIX
<7>                    /x37   <U0037> DIGIT SEVEN
<8>                    /x38   <U0038> DIGIT EIGHT
<9>                    /x39   <U0039> DIGIT NINE
<:>                    /x3A   <U003A> COLON
<;>                    /x3B   <U003B> SEMICOLON
<<>                    /x3C   <U003C> LESS-THAN SIGN
<=>                    /x3D   <U003D> EQUALS SIGN
</>>                   /x3E   <U003E> GREATER-THAN SIGN
<?>                    /x3F   <U003F> QUESTION MARK
<At>                   /x40   <U0040> COMMERCIAL AT
<A>                    /x41   <U0041> LATIN CAPITAL LETTER A
<B>                    /x42   <U0042> LATIN CAPITAL LETTER B
<C>                    /x43   <U0043> LATIN CAPITAL LETTER C
<D>                    /x44   <U0044> LATIN CAPITAL LETTER D
<E>                    /x45   <U0045> LATIN CAPITAL LETTER E
<F>                    /x46   <U0046> LATIN CAPITAL LETTER F
<G>                    /x47   <U0047> LATIN CAPITAL LETTER G
<H>                    /x48   <U0048> LATIN CAPITAL LETTER H
<I>                    /x49   <U0049> LATIN CAPITAL LETTER I
<J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
<K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
<L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
<M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
<N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
<O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
<P>                    /x50   <U0050> LATIN CAPITAL LETTER P
<Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
<R>                    /x52   <U0052> LATIN CAPITAL LETTER R
<S>                    /x53   <U0053> LATIN CAPITAL LETTER S
<T>                    /x54   <U0054> LATIN CAPITAL LETTER T
<U>                    /x55   <U0055> LATIN CAPITAL LETTER U
<V>                    /x56   <U0056> LATIN CAPITAL LETTER V
<W>                    /x57   <U0057> LATIN CAPITAL LETTER W
<X>                    /x58   <U0058> LATIN CAPITAL LETTER X
<Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
<Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
<<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
<////>                 /x5C   <U005C> REVERSE SOLIDUS
<)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
<'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
<_>                    /x5F   <U005F> LOW LINE
<'!!>                   /x60   <U0060> GRAVE ACCENT
<a>                    /x61   <U0061> LATIN SMALL LETTER A
<b>                    /x62   <U0062> LATIN SMALL LETTER B
<c>                    /x63   <U0063> LATIN SMALL LETTER C
<d>                    /x64   <U0064> LATIN SMALL LETTER D
<e>                    /x65   <U0065> LATIN SMALL LETTER E
<f>                    /x66   <U0066> LATIN SMALL LETTER F
<g>                    /x67   <U0067> LATIN SMALL LETTER G
<h>                    /x68   <U0068> LATIN SMALL LETTER H
<i>                    /x69   <U0069> LATIN SMALL LETTER I
<j>                    /x6A   <U006A> LATIN SMALL LETTER J
<k>                    /x6B   <U006B> LATIN SMALL LETTER K
<l>                    /x6C   <U006C> LATIN SMALL LETTER L
<m>                    /x6D   <U006D> LATIN SMALL LETTER M
<n>                    /x6E   <U006E> LATIN SMALL LETTER N
<o>                    /x6F   <U006F> LATIN SMALL LETTER O
<p>                    /x70   <U0070> LATIN SMALL LETTER P
<q>                    /x71   <U0071> LATIN SMALL LETTER Q
<r>                    /x72   <U0072> LATIN SMALL LETTER R
<s>                    /x73   <U0073> LATIN SMALL LETTER S
<t>                    /x74   <U0074> LATIN SMALL LETTER T
<u>                    /x75   <U0075> LATIN SMALL LETTER U
<v>                    /x76   <U0076> LATIN SMALL LETTER V
<w>                    /x77   <U0077> LATIN SMALL LETTER W
<x>                    /x78   <U0078> LATIN SMALL LETTER X
<y>                    /x79   <U0079> LATIN SMALL LETTER Y
<z>                    /x7A   <U007A> LATIN SMALL LETTER Z
<(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
<!!!!>                   /x7C   <U007C> VERTICAL LINE
<!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
<'?>                   /x7E   <U007E> TILDE
<DT>                   /x7F   <U007F> DELETE (DEL)
<.9>                   /x82   <U201A> SINGLE LOW-9 QUOTATION MARK
<f2>                   /x83   <U0192> LATIN SMALL LETTER F WITH HOOK
<:9>                   /x84   <U201E> DOUBLE LOW-9 QUOTATION MARK
<.3>                   /x85   <U2026> HORIZONTAL ELLIPSIS
<//->                  /x86   <U2020> DAGGER
<//=>                  /x87   <U2021> DOUBLE DAGGER
<%0>                   /x89   <U2030> PER MILLE SIGN
<<1>                   /x8B   <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
<'6>                   /x91   <U2018> LEFT SINGLE QUOTATION MARK
<'9>                   /x92   <U2019> RIGHT SINGLE QUOTATION MARK
<'6>                   /x93   <U201C> LEFT DOUBLE QUOTATION MARK
<'9>                   /x94   <U201D> RIGHT DOUBLE QUOTATION MARK
<sb>                   /x95   <U2022> BULLET
<-N>                   /x96   <U2013> EN DASH
<-M>                   /x97   <U2014> EM DASH
<TM>                   /x99   <U2122> TRADE MARK SIGN
</>1>                  /x9B   <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
<NS>                   /xA0   <U00A0> NO-BREAK SPACE
<Ct>                   /xA2   <U00A2> CENT SIGN
<Pd>                   /xA3   <U00A3> POUND SIGN
<Cu>                   /xA4   <U00A4> CURRENCY SIGN
<Ye>                   /xA5   <U00A5> YEN SIGN
<BB>                   /xA6   <U00A6> BROKEN BAR
<SE>                   /xA7   <U00A7> SECTION SIGN
<':>                   /xA8   <U00A8> DIAERESIS
<Co>                   /xA9   <U00A9> COPYRIGHT SIGN
<*X>                   /xAA   <U00D7> MULTIPLICATION SIGN
<<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
<NO>                   /xAC   <U00AC> NOT SIGN
<-->                   /xAD   <U00AD> SOFT HYPHEN
<Rg>                   /xAE   <U00AE> REGISTERED SIGN
<'->                   /xAF   <U203E> OVERLINE
<DG>                   /xB0   <U00B0> DEGREE SIGN
<+->                   /xB1   <U00B1> PLUS-MINUS SIGN
<2S>                   /xB2   <U00B2> SUPERSCRIPT TWO
<3S>                   /xB3   <U00B3> SUPERSCRIPT THREE
<''>                   /xB4   <U00B4> ACUTE ACCENT
<My>                   /xB5   <U00B5> MICRO SIGN
<PI>                   /xB6   <U00B6> PILCROW SIGN
<.M>                   /xB7   <U00B7> MIDDLE DOT
<',>                   /xB8   <U00B8> CEDILLA
<1S>                   /xB9   <U00B9> SUPERSCRIPT ONE
<-:>                   /xBA   <U00F7> DIVISION SIGN
</>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
<14>                   /xBC   <U00BC> VULGAR FRACTION ONE QUARTER
<12>                   /xBD   <U00BD> VULGAR FRACTION ONE HALF
<34>                   /xBE   <U00BE> VULGAR FRACTION THREE QUARTERS
<=2>                   /xDF   <U2017> DOUBLE LOW LINE
<A+>                   /xE0   <U05D0> HEBREW LETTER ALEF
<B+>                   /xE1   <U05D1> HEBREW LETTER BET
<G+>                   /xE2   <U05D2> HEBREW LETTER GIMEL
<D+>                   /xE3   <U05D3> HEBREW LETTER DALET
<H+>                   /xE4   <U05D4> HEBREW LETTER HE
<W+>                   /xE5   <U05D5> HEBREW LETTER VAV
<Z+>                   /xE6   <U05D6> HEBREW LETTER ZAYIN
<X+>                   /xE7   <U05D7> HEBREW LETTER HET
<Tj>                   /xE8   <U05D8> HEBREW LETTER TET
<J+>                   /xE9   <U05D9> HEBREW LETTER YOD
<K%>                   /xEA   <U05DA> HEBREW LETTER FINAL KAF
<K+>                   /xEB   <U05DB> HEBREW LETTER KAF
<L+>                   /xEC   <U05DC> HEBREW LETTER LAMED
<M%>                   /xED   <U05DD> HEBREW LETTER FINAL MEM
<M+>                   /xEE   <U05DE> HEBREW LETTER MEM
<N%>                   /xEF   <U05DF> HEBREW LETTER FINAL NUN
<N+>                   /xF0   <U05E0> HEBREW LETTER NUN
<S+>                   /xF1   <U05E1> HEBREW LETTER SAMEKH
<E+>                   /xF2   <U05E2> HEBREW LETTER AYIN
<P%>                   /xF3   <U05E3> HEBREW LETTER FINAL PE
<P+>                   /xF4   <U05E4> HEBREW LETTER PE
<Zj>                   /xF5   <U05E5> HEBREW LETTER FINAL TSADI
<ZJ>                   /xF6   <U05E6> HEBREW LETTER TSADI
<Q+>                   /xF7   <U05E7> HEBREW LETTER QOF
<R+>                   /xF8   <U05E8> HEBREW LETTER RESH
<Sh>                   /xF9   <U05E9> HEBREW LETTER SHIN
<T+>                   /xFA   <U05EA> HEBREW LETTER TAV
<LR>                   /xFD   <U200E> LEFT-TO-RIGHT MARK
<RL>                   /xFE   <U200F> RIGHT-TO-LEFT MARK
<NUL>                  /x00   <U0000> NUL
<SOH>                  /x01   <U0001> START OF HEADING (SOH)
<STX>                  /x02   <U0002> START OF TEXT (STX)
<ETX>                  /x03   <U0003> END OF TEXT (ETX)
<EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
<ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
<ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
<alert>                /x07   <U0007> BELL (BEL)
<BEL>                  /x07   <U0007> BELL (BEL)
<backspace>            /x08   <U0008> BACKSPACE (BS)
<tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
<newline>              /x0A   <U000A> LINE FEED (LF)
<vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
<form-feed>            /x0C   <U000C> FORM FEED (FF)
<carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
<DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
<DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
<DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
<DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
<DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CAN>                  /x18   <U0018> CANCEL (CAN)
<SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
<ESC>                  /x1B   <U001B> ESCAPE (ESC)
<IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
<IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
<intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
<IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
<IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
<DEL>                  /x7F   <U007F> DELETE (DEL)
<space>                /x20   <U0020> SPACE
<exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
<quotation-mark>       /x22   <U0022> QUOTATION MARK
<number-sign>          /x23   <U0023> NUMBER SIGN
<dollar-sign>          /x24   <U0024> DOLLAR SIGN
<percent-sign>         /x25   <U0025> PERCENT SIGN
<ampersand>            /x26   <U0026> AMPERSAND
<apostrophe>           /x27   <U0027> APOSTROPHE
<left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
<right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
<asterisk>             /x2A   <U002A> ASTERISK
<plus-sign>            /x2B   <U002B> PLUS SIGN
<comma>                /x2C   <U002C> COMMA
<hyphen>               /x2D   <U002D> HYPHEN-MINUS
<hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
<period>               /x2E   <U002E> FULL STOP
<full-stop>            /x2E   <U002E> FULL STOP
<slash>                /x2F   <U002F> SOLIDUS
<solidus>              /x2F   <U002F> SOLIDUS
<zero>                 /x30   <U0030> DIGIT ZERO
<one>                  /x31   <U0031> DIGIT ONE
<two>                  /x32   <U0032> DIGIT TWO
<three>                /x33   <U0033> DIGIT THREE
<four>                 /x34   <U0034> DIGIT FOUR
<five>                 /x35   <U0035> DIGIT FIVE
<six>                  /x36   <U0036> DIGIT SIX
<seven>                /x37   <U0037> DIGIT SEVEN
<eight>                /x38   <U0038> DIGIT EIGHT
<nine>                 /x39   <U0039> DIGIT NINE
<colon>                /x3A   <U003A> COLON
<semicolon>            /x3B   <U003B> SEMICOLON
<less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
<equals-sign>          /x3D   <U003D> EQUALS SIGN
<greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
<question-mark>        /x3F   <U003F> QUESTION MARK
<commercial-at>        /x40   <U0040> COMMERCIAL AT
<left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
<backslash>            /x5C   <U005C> REVERSE SOLIDUS
<reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
<right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
<circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
<circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
<underscore>           /x5F   <U005F> LOW LINE
<low-line>             /x5F   <U005F> LOW LINE
<grave-accent>         /x60   <U0060> GRAVE ACCENT
<left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
<left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
<vertical-line>        /x7C   <U007C> VERTICAL LINE
<right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
<right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
<tilde>                /x7E   <U007E> TILDE
END CHARMAP

"
!

userFriendlyNameOfEncoding
    ^ 'Hebrew'
! !

!CharacterEncoder::MS_Hebrew class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'ms-hebrew' 'ms-cp1255' 'cp1255' 'microsoft-hebrew' 'windows-1255' )
! !

!CharacterEncoder::MS_Symbol class methodsFor:'mapping'!

mapFileURL2_relativePathName
    ^ 'CP1254'
! !

!CharacterEncoder::MS_Symbol class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'ms-symbol' 'ms-cp1254' 'cp1254' 'microsoft-symbol' 'windows-1254'  )
! !

!CharacterEncoder::MS_Turkish class methodsFor:'mapping'!

mapFileURL2_relativePathName
    ^ 'CP1254'
!

mapping
"
# From: http://std.dkuug.dk/i18n/charmaps/CP1254

<code_set_name> CP1254
<comment_char> %
<escape_char> /
% version: 1.0
% repertoiremap: mnemonic,ds
%  source: UNICODE 1.0

% alias MS-TURK
CHARMAP
<NU>                   /x00   <U0000> NULL (NUL)
<SH>                   /x01   <U0001> START OF HEADING (SOH)
<SX>                   /x02   <U0002> START OF TEXT (STX)
<EX>                   /x03   <U0003> END OF TEXT (ETX)
<ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
<EQ>                   /x05   <U0005> ENQUIRY (ENQ)
<AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
<BL>                   /x07   <U0007> BELL (BEL)
<BS>                   /x08   <U0008> BACKSPACE (BS)
<HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
<LF>                   /x0A   <U000A> LINE FEED (LF)
<VT>                   /x0B   <U000B> LINE TABULATION (VT)
<FF>                   /x0C   <U000C> FORM FEED (FF)
<CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
<SO>                   /x0E   <U000E> SHIFT OUT (SO)
<SI>                   /x0F   <U000F> SHIFT IN (SI)
<DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
<D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
<D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
<D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
<D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CN>                   /x18   <U0018> CANCEL (CAN)
<EM>                   /x19   <U0019> END OF MEDIUM (EM)
<SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
<EC>                   /x1B   <U001B> ESCAPE (ESC)
<FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
<GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
<RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
<US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
<SP>                   /x20   <U0020> SPACE
<!!>                    /x21   <U0021> EXCLAMATION MARK
<'>                    /x22   <U0022> QUOTATION MARK
<Nb>                   /x23   <U0023> NUMBER SIGN
<DO>                   /x24   <U0024> DOLLAR SIGN
<%>                    /x25   <U0025> PERCENT SIGN
<&>                    /x26   <U0026> AMPERSAND
<'>                    /x27   <U0027> APOSTROPHE
<(>                    /x28   <U0028> LEFT PARENTHESIS
<)>                    /x29   <U0029> RIGHT PARENTHESIS
<*>                    /x2A   <U002A> ASTERISK
<+>                    /x2B   <U002B> PLUS SIGN
<,>                    /x2C   <U002C> COMMA
<->                    /x2D   <U002D> HYPHEN-MINUS
<.>                    /x2E   <U002E> FULL STOP
<//>                   /x2F   <U002F> SOLIDUS
<0>                    /x30   <U0030> DIGIT ZERO
<1>                    /x31   <U0031> DIGIT ONE
<2>                    /x32   <U0032> DIGIT TWO
<3>                    /x33   <U0033> DIGIT THREE
<4>                    /x34   <U0034> DIGIT FOUR
<5>                    /x35   <U0035> DIGIT FIVE
<6>                    /x36   <U0036> DIGIT SIX
<7>                    /x37   <U0037> DIGIT SEVEN
<8>                    /x38   <U0038> DIGIT EIGHT
<9>                    /x39   <U0039> DIGIT NINE
<:>                    /x3A   <U003A> COLON
<;>                    /x3B   <U003B> SEMICOLON
<<>                    /x3C   <U003C> LESS-THAN SIGN
<=>                    /x3D   <U003D> EQUALS SIGN
</>>                   /x3E   <U003E> GREATER-THAN SIGN
<?>                    /x3F   <U003F> QUESTION MARK
<At>                   /x40   <U0040> COMMERCIAL AT
<A>                    /x41   <U0041> LATIN CAPITAL LETTER A
<B>                    /x42   <U0042> LATIN CAPITAL LETTER B
<C>                    /x43   <U0043> LATIN CAPITAL LETTER C
<D>                    /x44   <U0044> LATIN CAPITAL LETTER D
<E>                    /x45   <U0045> LATIN CAPITAL LETTER E
<F>                    /x46   <U0046> LATIN CAPITAL LETTER F
<G>                    /x47   <U0047> LATIN CAPITAL LETTER G
<H>                    /x48   <U0048> LATIN CAPITAL LETTER H
<I>                    /x49   <U0049> LATIN CAPITAL LETTER I
<J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
<K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
<L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
<M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
<N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
<O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
<P>                    /x50   <U0050> LATIN CAPITAL LETTER P
<Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
<R>                    /x52   <U0052> LATIN CAPITAL LETTER R
<S>                    /x53   <U0053> LATIN CAPITAL LETTER S
<T>                    /x54   <U0054> LATIN CAPITAL LETTER T
<U>                    /x55   <U0055> LATIN CAPITAL LETTER U
<V>                    /x56   <U0056> LATIN CAPITAL LETTER V
<W>                    /x57   <U0057> LATIN CAPITAL LETTER W
<X>                    /x58   <U0058> LATIN CAPITAL LETTER X
<Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
<Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
<<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
<////>                 /x5C   <U005C> REVERSE SOLIDUS
<)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
<'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
<_>                    /x5F   <U005F> LOW LINE
<'!!>                   /x60   <U0060> GRAVE ACCENT
<a>                    /x61   <U0061> LATIN SMALL LETTER A
<b>                    /x62   <U0062> LATIN SMALL LETTER B
<c>                    /x63   <U0063> LATIN SMALL LETTER C
<d>                    /x64   <U0064> LATIN SMALL LETTER D
<e>                    /x65   <U0065> LATIN SMALL LETTER E
<f>                    /x66   <U0066> LATIN SMALL LETTER F
<g>                    /x67   <U0067> LATIN SMALL LETTER G
<h>                    /x68   <U0068> LATIN SMALL LETTER H
<i>                    /x69   <U0069> LATIN SMALL LETTER I
<j>                    /x6A   <U006A> LATIN SMALL LETTER J
<k>                    /x6B   <U006B> LATIN SMALL LETTER K
<l>                    /x6C   <U006C> LATIN SMALL LETTER L
<m>                    /x6D   <U006D> LATIN SMALL LETTER M
<n>                    /x6E   <U006E> LATIN SMALL LETTER N
<o>                    /x6F   <U006F> LATIN SMALL LETTER O
<p>                    /x70   <U0070> LATIN SMALL LETTER P
<q>                    /x71   <U0071> LATIN SMALL LETTER Q
<r>                    /x72   <U0072> LATIN SMALL LETTER R
<s>                    /x73   <U0073> LATIN SMALL LETTER S
<t>                    /x74   <U0074> LATIN SMALL LETTER T
<u>                    /x75   <U0075> LATIN SMALL LETTER U
<v>                    /x76   <U0076> LATIN SMALL LETTER V
<w>                    /x77   <U0077> LATIN SMALL LETTER W
<x>                    /x78   <U0078> LATIN SMALL LETTER X
<y>                    /x79   <U0079> LATIN SMALL LETTER Y
<z>                    /x7A   <U007A> LATIN SMALL LETTER Z
<(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
<!!!!>                   /x7C   <U007C> VERTICAL LINE
<!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
<'?>                   /x7E   <U007E> TILDE
<DT>                   /x7F   <U007F> DELETE (DEL)
<.9>                   /x82   <U201A> SINGLE LOW-9 QUOTATION MARK
<f2>                   /x83   <U0192> LATIN SMALL LETTER F WITH HOOK
<:9>                   /x84   <U201E> DOUBLE LOW-9 QUOTATION MARK
<.3>                   /x85   <U2026> HORIZONTAL ELLIPSIS
<//->                  /x86   <U2020> DAGGER
<//=>                  /x87   <U2021> DOUBLE DAGGER
<1/>>                  /x88   <U02C6> MODIFIER LETTER CIRCUMFLEX ACCENT
<%0>                   /x89   <U2030> PER MILLE SIGN
<S<>                   /x8A   <U0160> LATIN CAPITAL LETTER S WITH CARON
<<1>                   /x8B   <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
<OE>                   /x8C   <U0152> LATIN CAPITAL LIGATURE OE
<'6>                   /x91   <U2018> LEFT SINGLE QUOTATION MARK
<'9>                   /x92   <U2019> RIGHT SINGLE QUOTATION MARK
<'6>                   /x93   <U201C> LEFT DOUBLE QUOTATION MARK
<'9>                   /x94   <U201D> RIGHT DOUBLE QUOTATION MARK
<sb>                   /x95   <U2022> BULLET
<-N>                   /x96   <U2013> EN DASH
<-M>                   /x97   <U2014> EM DASH
<1?>                   /x98   <U02DC> SMALL TILDE
<TM>                   /x99   <U2122> TRADE MARK SIGN
<s<>                   /x9A   <U0161> LATIN SMALL LETTER S WITH CARON
</>1>                  /x9B   <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
<oe>                   /x9C   <U0153> LATIN SMALL LIGATURE OE
<Y:>                   /x9F   <U0178> LATIN CAPITAL LETTER Y WITH DIAERESIS
<NS>                   /xA0   <U00A0> NO-BREAK SPACE
<!!I>                   /xA1   <U00A1> INVERTED EXCLAMATION MARK
<Ct>                   /xA2   <U00A2> CENT SIGN
<Pd>                   /xA3   <U00A3> POUND SIGN
<Cu>                   /xA4   <U00A4> CURRENCY SIGN
<Ye>                   /xA5   <U00A5> YEN SIGN
<BB>                   /xA6   <U00A6> BROKEN BAR
<SE>                   /xA7   <U00A7> SECTION SIGN
<':>                   /xA8   <U00A8> DIAERESIS
<Co>                   /xA9   <U00A9> COPYRIGHT SIGN
<-a>                   /xAA   <U00AA> FEMININE ORDINAL INDICATOR
<<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
<NO>                   /xAC   <U00AC> NOT SIGN
<-->                   /xAD   <U00AD> SOFT HYPHEN
<Rg>                   /xAE   <U00AE> REGISTERED SIGN
<'m>                   /xAF   <U00AF> MACRON
<DG>                   /xB0   <U00B0> DEGREE SIGN
<+->                   /xB1   <U00B1> PLUS-MINUS SIGN
<2S>                   /xB2   <U00B2> SUPERSCRIPT TWO
<3S>                   /xB3   <U00B3> SUPERSCRIPT THREE
<''>                   /xB4   <U00B4> ACUTE ACCENT
<My>                   /xB5   <U00B5> MICRO SIGN
<PI>                   /xB6   <U00B6> PILCROW SIGN
<.M>                   /xB7   <U00B7> MIDDLE DOT
<',>                   /xB8   <U00B8> CEDILLA
<1S>                   /xB9   <U00B9> SUPERSCRIPT ONE
<-o>                   /xBA   <U00BA> MASCULINE ORDINAL INDICATOR
</>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
<14>                   /xBC   <U00BC> VULGAR FRACTION ONE QUARTER
<12>                   /xBD   <U00BD> VULGAR FRACTION ONE HALF
<34>                   /xBE   <U00BE> VULGAR FRACTION THREE QUARTERS
<?I>                   /xBF   <U00BF> INVERTED QUESTION MARK
<A!!>                   /xC0   <U00C0> LATIN CAPITAL LETTER A WITH GRAVE
<A'>                   /xC1   <U00C1> LATIN CAPITAL LETTER A WITH ACUTE
<A/>>                  /xC2   <U00C2> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
<A?>                   /xC3   <U00C3> LATIN CAPITAL LETTER A WITH TILDE
<A:>                   /xC4   <U00C4> LATIN CAPITAL LETTER A WITH DIAERESIS
<AA>                   /xC5   <U00C5> LATIN CAPITAL LETTER A WITH RING ABOVE
<AE>                   /xC6   <U00C6> LATIN CAPITAL LETTER AE
<C,>                   /xC7   <U00C7> LATIN CAPITAL LETTER C WITH CEDILLA
<E!!>                   /xC8   <U00C8> LATIN CAPITAL LETTER E WITH GRAVE
<E'>                   /xC9   <U00C9> LATIN CAPITAL LETTER E WITH ACUTE
<E/>>                  /xCA   <U00CA> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
<E:>                   /xCB   <U00CB> LATIN CAPITAL LETTER E WITH DIAERESIS
<I!!>                   /xCC   <U00CC> LATIN CAPITAL LETTER I WITH GRAVE
<I'>                   /xCD   <U00CD> LATIN CAPITAL LETTER I WITH ACUTE
<I/>>                  /xCE   <U00CE> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
<I:>                   /xCF   <U00CF> LATIN CAPITAL LETTER I WITH DIAERESIS
<G(>                   /xD0   <U011E> LATIN CAPITAL LETTER G WITH BREVE
<N?>                   /xD1   <U00D1> LATIN CAPITAL LETTER N WITH TILDE
<O!!>                   /xD2   <U00D2> LATIN CAPITAL LETTER O WITH GRAVE
<O'>                   /xD3   <U00D3> LATIN CAPITAL LETTER O WITH ACUTE
<O/>>                  /xD4   <U00D4> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
<O?>                   /xD5   <U00D5> LATIN CAPITAL LETTER O WITH TILDE
<O:>                   /xD6   <U00D6> LATIN CAPITAL LETTER O WITH DIAERESIS
<*X>                   /xD7   <U00D7> MULTIPLICATION SIGN
<O//>                  /xD8   <U00D8> LATIN CAPITAL LETTER O WITH STROKE
<U!!>                   /xD9   <U00D9> LATIN CAPITAL LETTER U WITH GRAVE
<U'>                   /xDA   <U00DA> LATIN CAPITAL LETTER U WITH ACUTE
<U/>>                  /xDB   <U00DB> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
<U:>                   /xDC   <U00DC> LATIN CAPITAL LETTER U WITH DIAERESIS
<I.>                   /xDD   <U0130> LATIN CAPITAL LETTER I WITH DOT ABOVE
<S,>                   /xDE   <U015E> LATIN CAPITAL LETTER S WITH CEDILLA
<ss>                   /xDF   <U00DF> LATIN SMALL LETTER SHARP S (German)
<a!!>                   /xE0   <U00E0> LATIN SMALL LETTER A WITH GRAVE
<a'>                   /xE1   <U00E1> LATIN SMALL LETTER A WITH ACUTE
<a/>>                  /xE2   <U00E2> LATIN SMALL LETTER A WITH CIRCUMFLEX
<a?>                   /xE3   <U00E3> LATIN SMALL LETTER A WITH TILDE
<a:>                   /xE4   <U00E4> LATIN SMALL LETTER A WITH DIAERESIS
<aa>                   /xE5   <U00E5> LATIN SMALL LETTER A WITH RING ABOVE
<ae>                   /xE6   <U00E6> LATIN SMALL LETTER AE
<c,>                   /xE7   <U00E7> LATIN SMALL LETTER C WITH CEDILLA
<e!!>                   /xE8   <U00E8> LATIN SMALL LETTER E WITH GRAVE
<e'>                   /xE9   <U00E9> LATIN SMALL LETTER E WITH ACUTE
<e;>                   /xEA   <U0119> LATIN SMALL LETTER E WITH OGONEK
<e:>                   /xEB   <U00EB> LATIN SMALL LETTER E WITH DIAERESIS
<e.>                   /xEC   <U0117> LATIN SMALL LETTER E WITH DOT ABOVE
<i'>                   /xED   <U00ED> LATIN SMALL LETTER I WITH ACUTE
<i/>>                  /xEE   <U00EE> LATIN SMALL LETTER I WITH CIRCUMFLEX
<i->                   /xEF   <U012B> LATIN SMALL LETTER I WITH MACRON
<g(>                   /xF0   <U011F> LATIN SMALL LETTER G WITH BREVE
<n?>                   /xF1   <U00F1> LATIN SMALL LETTER N WITH TILDE
<o!!>                   /xF2   <U00F2> LATIN SMALL LETTER O WITH GRAVE
<o'>                   /xF3   <U00F3> LATIN SMALL LETTER O WITH ACUTE
<o/>>                  /xF4   <U00F4> LATIN SMALL LETTER O WITH CIRCUMFLEX
<o?>                   /xF5   <U00F5> LATIN SMALL LETTER O WITH TILDE
<o:>                   /xF6   <U00F6> LATIN SMALL LETTER O WITH DIAERESIS
<-:>                   /xF7   <U00F7> DIVISION SIGN
<o//>                  /xF8   <U00F8> LATIN SMALL LETTER O WITH STROKE
<u!!>                   /xF9   <U00F9> LATIN SMALL LETTER U WITH GRAVE
<u'>                   /xFA   <U00FA> LATIN SMALL LETTER U WITH ACUTE
<u/>>                  /xFB   <U00FB> LATIN SMALL LETTER U WITH CIRCUMFLEX
<u:>                   /xFC   <U00FC> LATIN SMALL LETTER U WITH DIAERESIS
<i.>                   /xFD   <U0131> LATIN SMALL LETTER DOTLESS I
<s,>                   /xFE   <U015F> LATIN SMALL LETTER S WITH CEDILLA
<y:>                   /xFF   <U00FF> LATIN SMALL LETTER Y WITH DIAERESIS
<NUL>                  /x00   <U0000> NUL
<SOH>                  /x01   <U0001> START OF HEADING (SOH)
<STX>                  /x02   <U0002> START OF TEXT (STX)
<ETX>                  /x03   <U0003> END OF TEXT (ETX)
<EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
<ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
<ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
<alert>                /x07   <U0007> BELL (BEL)
<BEL>                  /x07   <U0007> BELL (BEL)
<backspace>            /x08   <U0008> BACKSPACE (BS)
<tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
<newline>              /x0A   <U000A> LINE FEED (LF)
<vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
<form-feed>            /x0C   <U000C> FORM FEED (FF)
<carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
<DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
<DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
<DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
<DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
<DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CAN>                  /x18   <U0018> CANCEL (CAN)
<SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
<ESC>                  /x1B   <U001B> ESCAPE (ESC)
<IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
<IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
<intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
<IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
<IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
<DEL>                  /x7F   <U007F> DELETE (DEL)
<space>                /x20   <U0020> SPACE
<exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
<quotation-mark>       /x22   <U0022> QUOTATION MARK
<number-sign>          /x23   <U0023> NUMBER SIGN
<dollar-sign>          /x24   <U0024> DOLLAR SIGN
<percent-sign>         /x25   <U0025> PERCENT SIGN
<ampersand>            /x26   <U0026> AMPERSAND
<apostrophe>           /x27   <U0027> APOSTROPHE
<left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
<right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
<asterisk>             /x2A   <U002A> ASTERISK
<plus-sign>            /x2B   <U002B> PLUS SIGN
<comma>                /x2C   <U002C> COMMA
<hyphen>               /x2D   <U002D> HYPHEN-MINUS
<hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
<period>               /x2E   <U002E> FULL STOP
<full-stop>            /x2E   <U002E> FULL STOP
<slash>                /x2F   <U002F> SOLIDUS
<solidus>              /x2F   <U002F> SOLIDUS
<zero>                 /x30   <U0030> DIGIT ZERO
<one>                  /x31   <U0031> DIGIT ONE
<two>                  /x32   <U0032> DIGIT TWO
<three>                /x33   <U0033> DIGIT THREE
<four>                 /x34   <U0034> DIGIT FOUR
<five>                 /x35   <U0035> DIGIT FIVE
<six>                  /x36   <U0036> DIGIT SIX
<seven>                /x37   <U0037> DIGIT SEVEN
<eight>                /x38   <U0038> DIGIT EIGHT
<nine>                 /x39   <U0039> DIGIT NINE
<colon>                /x3A   <U003A> COLON
<semicolon>            /x3B   <U003B> SEMICOLON
<less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
<equals-sign>          /x3D   <U003D> EQUALS SIGN
<greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
<question-mark>        /x3F   <U003F> QUESTION MARK
<commercial-at>        /x40   <U0040> COMMERCIAL AT
<left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
<backslash>            /x5C   <U005C> REVERSE SOLIDUS
<reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
<right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
<circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
<circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
<underscore>           /x5F   <U005F> LOW LINE
<low-line>             /x5F   <U005F> LOW LINE
<grave-accent>         /x60   <U0060> GRAVE ACCENT
<left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
<left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
<vertical-line>        /x7C   <U007C> VERTICAL LINE
<right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
<right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
<tilde>                /x7E   <U007E> TILDE
END CHARMAP

"
! !

!CharacterEncoder::MS_Turkish class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'ms-turkish' 'ms-cp1254' 'cp1254' 'microsoft-turkish' 'windows-1254'  )
!

userFriendlyNameOfEncoding
    ^ 'Turkish'
! !

!CharacterEncoder::NEXT class methodsFor:'mapping'!

mapFileURL2_relativePathName
    ^ 'NEXTSTEP'
!

mapping
"
# From: http://std.dkuug.dk/i18n/charmaps/NEXTSTEP

<code_set_name> NEXTSTEP
<comment_char> %
<escape_char> /
% version: 1.0
% repertoiremap: mnemonic,ds
%  source: Peter Svanberg.

% alias NEXT
CHARMAP
<NU>                   /x00   <U0000> NULL (NUL)
<SH>                   /x01   <U0001> START OF HEADING (SOH)
<SX>                   /x02   <U0002> START OF TEXT (STX)
<EX>                   /x03   <U0003> END OF TEXT (ETX)
<ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
<EQ>                   /x05   <U0005> ENQUIRY (ENQ)
<AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
<BL>                   /x07   <U0007> BELL (BEL)
<BS>                   /x08   <U0008> BACKSPACE (BS)
<HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
<LF>                   /x0A   <U000A> LINE FEED (LF)
<VT>                   /x0B   <U000B> LINE TABULATION (VT)
<FF>                   /x0C   <U000C> FORM FEED (FF)
<CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
<SO>                   /x0E   <U000E> SHIFT OUT (SO)
<SI>                   /x0F   <U000F> SHIFT IN (SI)
<DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
<D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
<D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
<D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
<D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CN>                   /x18   <U0018> CANCEL (CAN)
<EM>                   /x19   <U0019> END OF MEDIUM (EM)
<SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
<EC>                   /x1B   <U001B> ESCAPE (ESC)
<FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
<GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
<RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
<US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
<SP>                   /x20   <U0020> SPACE
<!!>                    /x21   <U0021> EXCLAMATION MARK
<'>                    /x22   <U0022> QUOTATION MARK
<Nb>                   /x23   <U0023> NUMBER SIGN
<DO>                   /x24   <U0024> DOLLAR SIGN
<%>                    /x25   <U0025> PERCENT SIGN
<&>                    /x26   <U0026> AMPERSAND
<'>                    /x27   <U0027> APOSTROPHE
<(>                    /x28   <U0028> LEFT PARENTHESIS
<)>                    /x29   <U0029> RIGHT PARENTHESIS
<*>                    /x2A   <U002A> ASTERISK
<+>                    /x2B   <U002B> PLUS SIGN
<,>                    /x2C   <U002C> COMMA
<->                    /x2D   <U002D> HYPHEN-MINUS
<.>                    /x2E   <U002E> FULL STOP
<//>                   /x2F   <U002F> SOLIDUS
<0>                    /x30   <U0030> DIGIT ZERO
<1>                    /x31   <U0031> DIGIT ONE
<2>                    /x32   <U0032> DIGIT TWO
<3>                    /x33   <U0033> DIGIT THREE
<4>                    /x34   <U0034> DIGIT FOUR
<5>                    /x35   <U0035> DIGIT FIVE
<6>                    /x36   <U0036> DIGIT SIX
<7>                    /x37   <U0037> DIGIT SEVEN
<8>                    /x38   <U0038> DIGIT EIGHT
<9>                    /x39   <U0039> DIGIT NINE
<:>                    /x3A   <U003A> COLON
<;>                    /x3B   <U003B> SEMICOLON
<<>                    /x3C   <U003C> LESS-THAN SIGN
<=>                    /x3D   <U003D> EQUALS SIGN
</>>                   /x3E   <U003E> GREATER-THAN SIGN
<?>                    /x3F   <U003F> QUESTION MARK
<At>                   /x40   <U0040> COMMERCIAL AT
<A>                    /x41   <U0041> LATIN CAPITAL LETTER A
<B>                    /x42   <U0042> LATIN CAPITAL LETTER B
<C>                    /x43   <U0043> LATIN CAPITAL LETTER C
<D>                    /x44   <U0044> LATIN CAPITAL LETTER D
<E>                    /x45   <U0045> LATIN CAPITAL LETTER E
<F>                    /x46   <U0046> LATIN CAPITAL LETTER F
<G>                    /x47   <U0047> LATIN CAPITAL LETTER G
<H>                    /x48   <U0048> LATIN CAPITAL LETTER H
<I>                    /x49   <U0049> LATIN CAPITAL LETTER I
<J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
<K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
<L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
<M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
<N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
<O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
<P>                    /x50   <U0050> LATIN CAPITAL LETTER P
<Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
<R>                    /x52   <U0052> LATIN CAPITAL LETTER R
<S>                    /x53   <U0053> LATIN CAPITAL LETTER S
<T>                    /x54   <U0054> LATIN CAPITAL LETTER T
<U>                    /x55   <U0055> LATIN CAPITAL LETTER U
<V>                    /x56   <U0056> LATIN CAPITAL LETTER V
<W>                    /x57   <U0057> LATIN CAPITAL LETTER W
<X>                    /x58   <U0058> LATIN CAPITAL LETTER X
<Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
<Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
<<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
<////>                 /x5C   <U005C> REVERSE SOLIDUS
<)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
<'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
<_>                    /x5F   <U005F> LOW LINE
<'!!>                   /x60   <U0060> GRAVE ACCENT
<a>                    /x61   <U0061> LATIN SMALL LETTER A
<b>                    /x62   <U0062> LATIN SMALL LETTER B
<c>                    /x63   <U0063> LATIN SMALL LETTER C
<d>                    /x64   <U0064> LATIN SMALL LETTER D
<e>                    /x65   <U0065> LATIN SMALL LETTER E
<f>                    /x66   <U0066> LATIN SMALL LETTER F
<g>                    /x67   <U0067> LATIN SMALL LETTER G
<h>                    /x68   <U0068> LATIN SMALL LETTER H
<i>                    /x69   <U0069> LATIN SMALL LETTER I
<j>                    /x6A   <U006A> LATIN SMALL LETTER J
<k>                    /x6B   <U006B> LATIN SMALL LETTER K
<l>                    /x6C   <U006C> LATIN SMALL LETTER L
<m>                    /x6D   <U006D> LATIN SMALL LETTER M
<n>                    /x6E   <U006E> LATIN SMALL LETTER N
<o>                    /x6F   <U006F> LATIN SMALL LETTER O
<p>                    /x70   <U0070> LATIN SMALL LETTER P
<q>                    /x71   <U0071> LATIN SMALL LETTER Q
<r>                    /x72   <U0072> LATIN SMALL LETTER R
<s>                    /x73   <U0073> LATIN SMALL LETTER S
<t>                    /x74   <U0074> LATIN SMALL LETTER T
<u>                    /x75   <U0075> LATIN SMALL LETTER U
<v>                    /x76   <U0076> LATIN SMALL LETTER V
<w>                    /x77   <U0077> LATIN SMALL LETTER W
<x>                    /x78   <U0078> LATIN SMALL LETTER X
<y>                    /x79   <U0079> LATIN SMALL LETTER Y
<z>                    /x7A   <U007A> LATIN SMALL LETTER Z
<(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
<!!!!>                   /x7C   <U007C> VERTICAL LINE
<!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
<'?>                   /x7E   <U007E> TILDE
<DT>                   /x7F   <U007F> DELETE (DEL)
<NS>                   /x80   <U00A0> NO-BREAK SPACE
<A!!>                   /x81   <U00C0> LATIN CAPITAL LETTER A WITH GRAVE
<A'>                   /x82   <U00C1> LATIN CAPITAL LETTER A WITH ACUTE
<A/>>                  /x83   <U00C2> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
<A?>                   /x84   <U00C3> LATIN CAPITAL LETTER A WITH TILDE
<A:>                   /x85   <U00C4> LATIN CAPITAL LETTER A WITH DIAERESIS
<AA>                   /x86   <U00C5> LATIN CAPITAL LETTER A WITH RING ABOVE
<C,>                   /x87   <U00C7> LATIN CAPITAL LETTER C WITH CEDILLA
<E!!>                   /x88   <U00C8> LATIN CAPITAL LETTER E WITH GRAVE
<E'>                   /x89   <U00C9> LATIN CAPITAL LETTER E WITH ACUTE
<E/>>                  /x8A   <U00CA> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
<E:>                   /x8B   <U00CB> LATIN CAPITAL LETTER E WITH DIAERESIS
<I!!>                   /x8C   <U00CC> LATIN CAPITAL LETTER I WITH GRAVE
<I'>                   /x8D   <U00CD> LATIN CAPITAL LETTER I WITH ACUTE
<I/>>                  /x8E   <U00CE> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
<I:>                   /x8F   <U00CF> LATIN CAPITAL LETTER I WITH DIAERESIS
<D->                   /x90   <U00D0> LATIN CAPITAL LETTER ETH (Icelandic)
<N?>                   /x91   <U00D1> LATIN CAPITAL LETTER N WITH TILDE
<O!!>                   /x92   <U00D2> LATIN CAPITAL LETTER O WITH GRAVE
<O'>                   /x93   <U00D3> LATIN CAPITAL LETTER O WITH ACUTE
<O/>>                  /x94   <U00D4> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
<O?>                   /x95   <U00D5> LATIN CAPITAL LETTER O WITH TILDE
<O:>                   /x96   <U00D6> LATIN CAPITAL LETTER O WITH DIAERESIS
<U!!>                   /x97   <U00D9> LATIN CAPITAL LETTER U WITH GRAVE
<U'>                   /x98   <U00DA> LATIN CAPITAL LETTER U WITH ACUTE
<U/>>                  /x99   <U00DB> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
<U:>                   /x9A   <U00DC> LATIN CAPITAL LETTER U WITH DIAERESIS
<Y'>                   /x9B   <U00DD> LATIN CAPITAL LETTER Y WITH ACUTE
<TH>                   /x9C   <U00DE> LATIN CAPITAL LETTER THORN (Icelandic)
<My>                   /x9D   <U00B5> MICRO SIGN
<*X>                   /x9E   <U00D7> MULTIPLICATION SIGN
<-:>                   /x9F   <U00F7> DIVISION SIGN
<Co>                   /xA0   <U00A9> COPYRIGHT SIGN
<!!I>                   /xA1   <U00A1> INVERTED EXCLAMATION MARK
<Ct>                   /xA2   <U00A2> CENT SIGN
<Pd>                   /xA3   <U00A3> POUND SIGN
<//f>                  /xA4   <U2044> FRACTION SLASH
<Ye>                   /xA5   <U00A5> YEN SIGN
<f2>                   /xA6   <U0192> LATIN SMALL LETTER F WITH HOOK
<SE>                   /xA7   <U00A7> SECTION SIGN
<Cu>                   /xA8   <U00A4> CURRENCY SIGN
<'6>                   /xAA   <U201C> LEFT DOUBLE QUOTATION MARK
<<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
<fi>                   /xAE   <UFB01> LATIN SMALL LIGATURE FI
<fl>                   /xAF   <UFB02> LATIN SMALL LIGATURE FL
<Rg>                   /xB0   <U00AE> REGISTERED SIGN
<-N>                   /xB1   <U2013> EN DASH
<//->                  /xB2   <U2020> DAGGER
<//=>                  /xB3   <U2021> DOUBLE DAGGER
<.M>                   /xB4   <U00B7> MIDDLE DOT
<BB>                   /xB5   <U00A6> BROKEN BAR
<PI>                   /xB6   <U00B6> PILCROW SIGN
<sb>                   /xB7   <U2022> BULLET
<'9>                   /xBA   <U201D> RIGHT DOUBLE QUOTATION MARK
</>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
<.3>                   /xBC   <U2026> HORIZONTAL ELLIPSIS
<%0>                   /xBD   <U2030> PER MILLE SIGN
<NO>                   /xBE   <U00AC> NOT SIGN
<?I>                   /xBF   <U00BF> INVERTED QUESTION MARK
<1S>                   /xC0   <U00B9> SUPERSCRIPT ONE
<1!!>                   /xC1   <U02CB> MODIFIER LETTER GRAVE ACCENT (Mandarin Chinese fourth tone)
<''>                   /xC2   <U00B4> ACUTE ACCENT
<1/>>                  /xC3   <U02C6> MODIFIER LETTER CIRCUMFLEX ACCENT
<1?>                   /xC4   <U02DC> SMALL TILDE
<'m>                   /xC5   <U00AF> MACRON
<'(>                   /xC6   <U02D8> BREVE
<'.>                   /xC7   <U02D9> DOT ABOVE (Mandarin Chinese light tone)
<':>                   /xC8   <U00A8> DIAERESIS
<2S>                   /xC9   <U00B2> SUPERSCRIPT TWO
<'0>                   /xCA   <U02DA> RING ABOVE
<',>                   /xCB   <U00B8> CEDILLA
<3S>                   /xCC   <U00B3> SUPERSCRIPT THREE
<''>                   /xCD   <U02DD> DOUBLE ACUTE ACCENT
<';>                   /xCE   <U02DB> OGONEK
<'<>                   /xCF   <U02C7> CARON (Mandarin Chinese third tone)
<-M>                   /xD0   <U2014> EM DASH
<+->                   /xD1   <U00B1> PLUS-MINUS SIGN
<14>                   /xD2   <U00BC> VULGAR FRACTION ONE QUARTER
<12>                   /xD3   <U00BD> VULGAR FRACTION ONE HALF
<34>                   /xD4   <U00BE> VULGAR FRACTION THREE QUARTERS
<a!!>                   /xD5   <U00E0> LATIN SMALL LETTER A WITH GRAVE
<a'>                   /xD6   <U00E1> LATIN SMALL LETTER A WITH ACUTE
<a/>>                  /xD7   <U00E2> LATIN SMALL LETTER A WITH CIRCUMFLEX
<a?>                   /xD8   <U00E3> LATIN SMALL LETTER A WITH TILDE
<a:>                   /xD9   <U00E4> LATIN SMALL LETTER A WITH DIAERESIS
<aa>                   /xDA   <U00E5> LATIN SMALL LETTER A WITH RING ABOVE
<c,>                   /xDB   <U00E7> LATIN SMALL LETTER C WITH CEDILLA
<e!!>                   /xDC   <U00E8> LATIN SMALL LETTER E WITH GRAVE
<e'>                   /xDD   <U00E9> LATIN SMALL LETTER E WITH ACUTE
<e/>>                  /xDE   <U00EA> LATIN SMALL LETTER E WITH CIRCUMFLEX
<e:>                   /xDF   <U00EB> LATIN SMALL LETTER E WITH DIAERESIS
<i!!>                   /xE0   <U00EC> LATIN SMALL LETTER I WITH GRAVE
<AE>                   /xE1   <U00C6> LATIN CAPITAL LETTER AE
<i'>                   /xE2   <U00ED> LATIN SMALL LETTER I WITH ACUTE
<-a>                   /xE3   <U00AA> FEMININE ORDINAL INDICATOR
<i/>>                  /xE4   <U00EE> LATIN SMALL LETTER I WITH CIRCUMFLEX
<i:>                   /xE5   <U00EF> LATIN SMALL LETTER I WITH DIAERESIS
<d->                   /xE6   <U00F0> LATIN SMALL LETTER ETH (Icelandic)
<n?>                   /xE7   <U00F1> LATIN SMALL LETTER N WITH TILDE
<L//>                  /xE8   <U0141> LATIN CAPITAL LETTER L WITH STROKE
<O//>                  /xE9   <U00D8> LATIN CAPITAL LETTER O WITH STROKE
<OE>                   /xEA   <U0152> LATIN CAPITAL LIGATURE OE
<-o>                   /xEB   <U00BA> MASCULINE ORDINAL INDICATOR
<o!!>                   /xEC   <U00F2> LATIN SMALL LETTER O WITH GRAVE
<o'>                   /xED   <U00F3> LATIN SMALL LETTER O WITH ACUTE
<o/>>                  /xEE   <U00F4> LATIN SMALL LETTER O WITH CIRCUMFLEX
<o?>                   /xEF   <U00F5> LATIN SMALL LETTER O WITH TILDE
<o:>                   /xF0   <U00F6> LATIN SMALL LETTER O WITH DIAERESIS
<ae>                   /xF1   <U00E6> LATIN SMALL LETTER AE
<u!!>                   /xF2   <U00F9> LATIN SMALL LETTER U WITH GRAVE
<u'>                   /xF3   <U00FA> LATIN SMALL LETTER U WITH ACUTE
<u/>>                  /xF4   <U00FB> LATIN SMALL LETTER U WITH CIRCUMFLEX
<i.>                   /xF5   <U0131> LATIN SMALL LETTER DOTLESS I
<u:>                   /xF6   <U00FC> LATIN SMALL LETTER U WITH DIAERESIS
<y'>                   /xF7   <U00FD> LATIN SMALL LETTER Y WITH ACUTE
<l//>                  /xF8   <U0142> LATIN SMALL LETTER L WITH STROKE
<o//>                  /xF9   <U00F8> LATIN SMALL LETTER O WITH STROKE
<oe>                   /xFA   <U0153> LATIN SMALL LIGATURE OE
<ss>                   /xFB   <U00DF> LATIN SMALL LETTER SHARP S (German)
<th>                   /xFC   <U00FE> LATIN SMALL LETTER THORN (Icelandic)
<y:>                   /xFD   <U00FF> LATIN SMALL LETTER Y WITH DIAERESIS
<NUL>                  /x00   <U0000> NUL
<SOH>                  /x01   <U0001> START OF HEADING (SOH)
<STX>                  /x02   <U0002> START OF TEXT (STX)
<ETX>                  /x03   <U0003> END OF TEXT (ETX)
<EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
<ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
<ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
<alert>                /x07   <U0007> BELL (BEL)
<BEL>                  /x07   <U0007> BELL (BEL)
<backspace>            /x08   <U0008> BACKSPACE (BS)
<tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
<newline>              /x0A   <U000A> LINE FEED (LF)
<vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
<form-feed>            /x0C   <U000C> FORM FEED (FF)
<carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
<DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
<DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
<DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
<DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
<DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CAN>                  /x18   <U0018> CANCEL (CAN)
<SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
<ESC>                  /x1B   <U001B> ESCAPE (ESC)
<IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
<IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
<intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
<IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
<IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
<DEL>                  /x7F   <U007F> DELETE (DEL)
<space>                /x20   <U0020> SPACE
<exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
<quotation-mark>       /x22   <U0022> QUOTATION MARK
<number-sign>          /x23   <U0023> NUMBER SIGN
<dollar-sign>          /x24   <U0024> DOLLAR SIGN
<percent-sign>         /x25   <U0025> PERCENT SIGN
<ampersand>            /x26   <U0026> AMPERSAND
<apostrophe>           /x27   <U0027> APOSTROPHE
<left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
<right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
<asterisk>             /x2A   <U002A> ASTERISK
<plus-sign>            /x2B   <U002B> PLUS SIGN
<comma>                /x2C   <U002C> COMMA
<hyphen>               /x2D   <U002D> HYPHEN-MINUS
<hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
<period>               /x2E   <U002E> FULL STOP
<full-stop>            /x2E   <U002E> FULL STOP
<slash>                /x2F   <U002F> SOLIDUS
<solidus>              /x2F   <U002F> SOLIDUS
<zero>                 /x30   <U0030> DIGIT ZERO
<one>                  /x31   <U0031> DIGIT ONE
<two>                  /x32   <U0032> DIGIT TWO
<three>                /x33   <U0033> DIGIT THREE
<four>                 /x34   <U0034> DIGIT FOUR
<five>                 /x35   <U0035> DIGIT FIVE
<six>                  /x36   <U0036> DIGIT SIX
<seven>                /x37   <U0037> DIGIT SEVEN
<eight>                /x38   <U0038> DIGIT EIGHT
<nine>                 /x39   <U0039> DIGIT NINE
<colon>                /x3A   <U003A> COLON
<semicolon>            /x3B   <U003B> SEMICOLON
<less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
<equals-sign>          /x3D   <U003D> EQUALS SIGN
<greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
<question-mark>        /x3F   <U003F> QUESTION MARK
<commercial-at>        /x40   <U0040> COMMERCIAL AT
<left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
<backslash>            /x5C   <U005C> REVERSE SOLIDUS
<reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
<right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
<circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
<circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
<underscore>           /x5F   <U005F> LOW LINE
<low-line>             /x5F   <U005F> LOW LINE
<grave-accent>         /x60   <U0060> GRAVE ACCENT
<left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
<left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
<vertical-line>        /x7C   <U007C> VERTICAL LINE
<right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
<right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
<tilde>                /x7E   <U007E> TILDE
END CHARMAP

"
!

namesOfEncoding
    ^ #( 'next' 'nextstep'  )
! !

!CharacterEncoder::NullEncoder class methodsFor:'documentation'!

documentation
"
    A NullEncoder does nothing.
"
! !

!CharacterEncoder::NullEncoder class methodsFor:'instance creation'!

new
    "singleton - there is only one"

    mySingleInstance isNil ifTrue:[
	mySingleInstance := self basicNew initialize.
    ].
    ^ mySingleInstance
! !

!CharacterEncoder::NullEncoder class methodsFor:'private'!

flushSingletons
    mySingleInstance := nil.
    super flushSingletons

    "
     self flushSingletons
    "
! !

!CharacterEncoder::NullEncoder methodsFor:'encoding & decoding'!

decode:aCode
    ^ aCode
!

decodeString:aString
    ^ aString
!

encode:aCode
    ^ aCode
!

encodeString:aString
    ^ aString
! !

!CharacterEncoder::NullEncoder methodsFor:'queries'!

isNullEncoder
    ^ true
! !

!CharacterEncoder::OtherEncoding class methodsFor:'private'!

flushCode
!

generateEncoderCode
! !

!CharacterEncoder::SJIS class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'OBSOLETE/EASTASIA/JIS/SHIFTJIS.TXT'
!

namesOfEncoding
    ^ #( 'sjis' 'shiftjis'  )
! !

!CharacterEncoder::SJIS methodsFor:'private'!

newString:size
    ^ JISEncodedString new:size
! !

!CharacterEncoder::ASCII class methodsFor:'mapping'!

mapFileURL2_relativePathName
    ^ 'ASCII'

    "
     self generateCode
    "
!

mapping
"
# From: http://std.dkuug.dk/i18n/charmaps/ASCII

<code_set_name> ANSI_X3.4-1968
<comment_char> %
<escape_char> /
% version: 1.0
% repertoiremap: mnemonic,ds
%  source: ECMA registry

% alias ISO-IR-6
% alias ANSI_X3.4-1986
% alias ISO_646.IRV:1991
% alias ASCII
% alias ISO646-US
% alias US-ASCII
% alias US
% alias IBM367
% alias CP367
CHARMAP
<NU>                   /x00   <U0000> NULL (NUL)
<SH>                   /x01   <U0001> START OF HEADING (SOH)
<SX>                   /x02   <U0002> START OF TEXT (STX)
<EX>                   /x03   <U0003> END OF TEXT (ETX)
<ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
<EQ>                   /x05   <U0005> ENQUIRY (ENQ)
<AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
<BL>                   /x07   <U0007> BELL (BEL)
<BS>                   /x08   <U0008> BACKSPACE (BS)
<HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
<LF>                   /x0A   <U000A> LINE FEED (LF)
<VT>                   /x0B   <U000B> LINE TABULATION (VT)
<FF>                   /x0C   <U000C> FORM FEED (FF)
<CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
<SO>                   /x0E   <U000E> SHIFT OUT (SO)
<SI>                   /x0F   <U000F> SHIFT IN (SI)
<DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
<D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
<D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
<D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
<D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CN>                   /x18   <U0018> CANCEL (CAN)
<EM>                   /x19   <U0019> END OF MEDIUM (EM)
<SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
<EC>                   /x1B   <U001B> ESCAPE (ESC)
<FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
<GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
<RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
<US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
<SP>                   /x20   <U0020> SPACE
<!!>                    /x21   <U0021> EXCLAMATION MARK
<'>                    /x22   <U0022> QUOTATION MARK
<Nb>                   /x23   <U0023> NUMBER SIGN
<DO>                   /x24   <U0024> DOLLAR SIGN
<%>                    /x25   <U0025> PERCENT SIGN
<&>                    /x26   <U0026> AMPERSAND
<'>                    /x27   <U0027> APOSTROPHE
<(>                    /x28   <U0028> LEFT PARENTHESIS
<)>                    /x29   <U0029> RIGHT PARENTHESIS
<*>                    /x2A   <U002A> ASTERISK
<+>                    /x2B   <U002B> PLUS SIGN
<,>                    /x2C   <U002C> COMMA
<->                    /x2D   <U002D> HYPHEN-MINUS
<.>                    /x2E   <U002E> FULL STOP
<//>                   /x2F   <U002F> SOLIDUS
<0>                    /x30   <U0030> DIGIT ZERO
<1>                    /x31   <U0031> DIGIT ONE
<2>                    /x32   <U0032> DIGIT TWO
<3>                    /x33   <U0033> DIGIT THREE
<4>                    /x34   <U0034> DIGIT FOUR
<5>                    /x35   <U0035> DIGIT FIVE
<6>                    /x36   <U0036> DIGIT SIX
<7>                    /x37   <U0037> DIGIT SEVEN
<8>                    /x38   <U0038> DIGIT EIGHT
<9>                    /x39   <U0039> DIGIT NINE
<:>                    /x3A   <U003A> COLON
<;>                    /x3B   <U003B> SEMICOLON
<<>                    /x3C   <U003C> LESS-THAN SIGN
<=>                    /x3D   <U003D> EQUALS SIGN
</>>                   /x3E   <U003E> GREATER-THAN SIGN
<?>                    /x3F   <U003F> QUESTION MARK
<At>                   /x40   <U0040> COMMERCIAL AT
<A>                    /x41   <U0041> LATIN CAPITAL LETTER A
<B>                    /x42   <U0042> LATIN CAPITAL LETTER B
<C>                    /x43   <U0043> LATIN CAPITAL LETTER C
<D>                    /x44   <U0044> LATIN CAPITAL LETTER D
<E>                    /x45   <U0045> LATIN CAPITAL LETTER E
<F>                    /x46   <U0046> LATIN CAPITAL LETTER F
<G>                    /x47   <U0047> LATIN CAPITAL LETTER G
<H>                    /x48   <U0048> LATIN CAPITAL LETTER H
<I>                    /x49   <U0049> LATIN CAPITAL LETTER I
<J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
<K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
<L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
<M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
<N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
<O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
<P>                    /x50   <U0050> LATIN CAPITAL LETTER P
<Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
<R>                    /x52   <U0052> LATIN CAPITAL LETTER R
<S>                    /x53   <U0053> LATIN CAPITAL LETTER S
<T>                    /x54   <U0054> LATIN CAPITAL LETTER T
<U>                    /x55   <U0055> LATIN CAPITAL LETTER U
<V>                    /x56   <U0056> LATIN CAPITAL LETTER V
<W>                    /x57   <U0057> LATIN CAPITAL LETTER W
<X>                    /x58   <U0058> LATIN CAPITAL LETTER X
<Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
<Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
<<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
<////>                 /x5C   <U005C> REVERSE SOLIDUS
<)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
<'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
<_>                    /x5F   <U005F> LOW LINE
<'!!>                   /x60   <U0060> GRAVE ACCENT
<a>                    /x61   <U0061> LATIN SMALL LETTER A
<b>                    /x62   <U0062> LATIN SMALL LETTER B
<c>                    /x63   <U0063> LATIN SMALL LETTER C
<d>                    /x64   <U0064> LATIN SMALL LETTER D
<e>                    /x65   <U0065> LATIN SMALL LETTER E
<f>                    /x66   <U0066> LATIN SMALL LETTER F
<g>                    /x67   <U0067> LATIN SMALL LETTER G
<h>                    /x68   <U0068> LATIN SMALL LETTER H
<i>                    /x69   <U0069> LATIN SMALL LETTER I
<j>                    /x6A   <U006A> LATIN SMALL LETTER J
<k>                    /x6B   <U006B> LATIN SMALL LETTER K
<l>                    /x6C   <U006C> LATIN SMALL LETTER L
<m>                    /x6D   <U006D> LATIN SMALL LETTER M
<n>                    /x6E   <U006E> LATIN SMALL LETTER N
<o>                    /x6F   <U006F> LATIN SMALL LETTER O
<p>                    /x70   <U0070> LATIN SMALL LETTER P
<q>                    /x71   <U0071> LATIN SMALL LETTER Q
<r>                    /x72   <U0072> LATIN SMALL LETTER R
<s>                    /x73   <U0073> LATIN SMALL LETTER S
<t>                    /x74   <U0074> LATIN SMALL LETTER T
<u>                    /x75   <U0075> LATIN SMALL LETTER U
<v>                    /x76   <U0076> LATIN SMALL LETTER V
<w>                    /x77   <U0077> LATIN SMALL LETTER W
<x>                    /x78   <U0078> LATIN SMALL LETTER X
<y>                    /x79   <U0079> LATIN SMALL LETTER Y
<z>                    /x7A   <U007A> LATIN SMALL LETTER Z
<(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
<!!!!>                   /x7C   <U007C> VERTICAL LINE
<!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
<'?>                   /x7E   <U007E> TILDE
<DT>                   /x7F   <U007F> DELETE (DEL)
<NUL>                  /x00   <U0000> NUL
<SOH>                  /x01   <U0001> START OF HEADING (SOH)
<STX>                  /x02   <U0002> START OF TEXT (STX)
<ETX>                  /x03   <U0003> END OF TEXT (ETX)
<EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
<ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
<ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
<alert>                /x07   <U0007> BELL (BEL)
<BEL>                  /x07   <U0007> BELL (BEL)
<backspace>            /x08   <U0008> BACKSPACE (BS)
<tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
<newline>              /x0A   <U000A> LINE FEED (LF)
<vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
<form-feed>            /x0C   <U000C> FORM FEED (FF)
<carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
<DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
<DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
<DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
<DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
<DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
<NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
<ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
<CAN>                  /x18   <U0018> CANCEL (CAN)
<SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
<ESC>                  /x1B   <U001B> ESCAPE (ESC)
<IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
<IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
<intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
<IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
<IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
<DEL>                  /x7F   <U007F> DELETE (DEL)
<space>                /x20   <U0020> SPACE
<exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
<quotation-mark>       /x22   <U0022> QUOTATION MARK
<number-sign>          /x23   <U0023> NUMBER SIGN
<dollar-sign>          /x24   <U0024> DOLLAR SIGN
<percent-sign>         /x25   <U0025> PERCENT SIGN
<ampersand>            /x26   <U0026> AMPERSAND
<apostrophe>           /x27   <U0027> APOSTROPHE
<left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
<right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
<asterisk>             /x2A   <U002A> ASTERISK
<plus-sign>            /x2B   <U002B> PLUS SIGN
<comma>                /x2C   <U002C> COMMA
<hyphen>               /x2D   <U002D> HYPHEN-MINUS
<hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
<period>               /x2E   <U002E> FULL STOP
<full-stop>            /x2E   <U002E> FULL STOP
<slash>                /x2F   <U002F> SOLIDUS
<solidus>              /x2F   <U002F> SOLIDUS
<zero>                 /x30   <U0030> DIGIT ZERO
<one>                  /x31   <U0031> DIGIT ONE
<two>                  /x32   <U0032> DIGIT TWO
<three>                /x33   <U0033> DIGIT THREE
<four>                 /x34   <U0034> DIGIT FOUR
<five>                 /x35   <U0035> DIGIT FIVE
<six>                  /x36   <U0036> DIGIT SIX
<seven>                /x37   <U0037> DIGIT SEVEN
<eight>                /x38   <U0038> DIGIT EIGHT
<nine>                 /x39   <U0039> DIGIT NINE
<colon>                /x3A   <U003A> COLON
<semicolon>            /x3B   <U003B> SEMICOLON
<less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
<equals-sign>          /x3D   <U003D> EQUALS SIGN
<greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
<question-mark>        /x3F   <U003F> QUESTION MARK
<commercial-at>        /x40   <U0040> COMMERCIAL AT
<left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
<backslash>            /x5C   <U005C> REVERSE SOLIDUS
<reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
<right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
<circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
<circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
<underscore>           /x5F   <U005F> LOW LINE
<low-line>             /x5F   <U005F> LOW LINE
<grave-accent>         /x60   <U0060> GRAVE ACCENT
<left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
<left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
<vertical-line>        /x7C   <U007C> VERTICAL LINE
<right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
<right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
<tilde>                /x7E   <U007E> TILDE
END CHARMAP

"
! !

!CharacterEncoder::ASCII class methodsFor:'queries'!

namesOfEncoding
    ^ #( 'ascii' 'us-ascii' 'iso-ir-6' 'ibm-367' 'ms-cp367' 'cp367'  'iso646-us' 'ibm-cp367')
! !

!CharacterEncoder::ASCII methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code > 16r7F ifTrue:[
	^ self decodingError.
    ].
    ^ code.
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode > 16r7F ifTrue:[
	^ self encodingError.
    ].
    ^ unicode.
! !

!CharacterEncoder::BIG5 class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'OBSOLETE/EASTASIA/OTHER/BIG5.TXT'
! !

!CharacterEncoder::BIG5 methodsFor:'private'!

newString:size
    ^ BIG5EncodedString new:size
! !

!CharacterEncoder::TwoStepEncoder class methodsFor:'documentation'!

documentation
"
    A twoStepEncoder uses two real encoders;
    to encode:
	string -> encoder1(encode) -> encoder2(encode) -> result
    to decode:
	string -> encoder2(decode) -> encoder1(decode) -> result
"
! !

!CharacterEncoder::TwoStepEncoder methodsFor:'accessing'!

encoder1:encoder1Arg encoder2:encoder2Arg
    "set instance variables (automatically generated)"

    encoder1 := encoder1Arg.
    encoder2 := encoder2Arg.
! !

!CharacterEncoder::TwoStepEncoder methodsFor:'encoding & decoding'!

decode:aCode
    ^ encoder1 decode:(encoder2 decode:aCode)
!

decodeString:aString
    ^ encoder1 decodeString:(encoder2 decodeString:aString)
!

encode:aCode
    ^ encoder2 encode:(encoder1 encode:aCode)
!

encodeString:aString
    ^ encoder2 encodeString:(encoder1 encodeString:aString)
! !

!CharacterEncoder::TwoStepEncoder methodsFor:'printing'!

printOn:aStream
    aStream 
        nextPutAll:(encoder1 nameOfDecodedCode);
        nextPutAll:'->';
        nextPutAll:(encoder1 nameOfEncoding);
        nextPutAll:'->';
        nextPutAll:(encoder2 nameOfEncoding)
! !

!CharacterEncoder class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoder.st,v 1.32 2004-02-20 12:44:24 cg Exp $'
! !

CharacterEncoder initialize!