CharacterEncoderImplementations__AdobeSymbol.st
changeset 21712 bbdbb633670b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CharacterEncoderImplementations__AdobeSymbol.st	Wed Apr 26 16:18:48 2017 +0200
@@ -0,0 +1,1264 @@
+"
+ COPYRIGHT (c) 2017 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' }"
+
+"{ NameSpace: CharacterEncoderImplementations }"
+
+SingleByteEncoder subclass:#AdobeSymbol
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Collections-Text-Encodings'
+!
+
+!AdobeSymbol class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 2017 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
+"
+    Adobe Symbol Encoding.
+    see http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/symbol.txt
+
+    [see with:]
+        CharacterEncoderImplementations::AdobeSymbol showCharacterSet
+
+    [author:]
+        Claus Gittinger
+"
+! !
+
+!AdobeSymbol class methodsFor:'mapping'!
+
+mapFileURL1_relativePathName
+    "self generateCode"
+
+    ^ 'VENDORS/ADOBE/symbol.txt'
+!
+
+mapping
+"
+# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/stdenc.txt
+
+#
+#  Name:             Adobe Symbol Encoding to Unicode
+#  Unicode version:  2.0
+#  Table version:    1.0
+#  Date:             2011 July 12
+#  
+#  Copyright (c) 1991-2011 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.
+#  
+#  Format: 4 tab-delimited fields:
+#
+#    (1) The Unicode value (in hexadecimal)
+#    (2) The Symbol Encoding code point (in hexadecimal)
+#    (3) # Unicode name
+#    (4) # PostScript character name
+#  
+#  General Notes:
+# 
+#    The Unicode values in this table were produced as the result of applying
+#    the algorithm described in the section 'Populating a Unicode space' in the
+#    document 'Unicode and Glyph Names,' at
+#    http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
+#    to the characters in Symbol. Note that some characters, such as 'space',
+#    are mapped to 2 Unicode values. 29 characters have assignments in the
+#    Corporate Use Subarea; these are indicated by '(CUS)' in field 4. Refer to
+#    the above document for more details.
+#
+#    2011 July 12: The above link is no longer valid. For comparable,
+#    more current information, see the document, 'Glyph', at:
+#    <http://www.adobe.com/devnet/opentype/archives/glyph.html>
+#
+#  Revision History:
+#
+#    [v1.0, 2011 July 12]
+#    Updated terms of use to current wording.
+#    Updated contact information and document link.
+#    No changes to the mapping data.
+#
+#    [v0.2, 30 March 1999]
+#    Different algorithm to produce Unicode values (see notes above) results in
+#    some character codes being mapped to 2 Unicode values; use of Corporate
+#    Use subarea values; addition of the euro character; changed assignments of
+#    some characters such as the COPYRIGHT SIGNs and RADICAL EXTENDER. Updated
+#    Unicode names to Unicode 2.0 names.
+#
+#    [v0.1, 5 May 1995] First release.
+#
+#  Use the Unicode reporting form <http://www.unicode.org/reporting.html>
+#    for any questions or comments or to report errors in the data.
+#
+0020    20      # SPACE # space
+00A0    20      # NO-BREAK SPACE        # space
+0021    21      # EXCLAMATION MARK      # exclam
+2200    22      # FOR ALL       # universal
+0023    23      # NUMBER SIGN   # numbersign
+2203    24      # THERE EXISTS  # existential
+0025    25      # PERCENT SIGN  # percent
+0026    26      # AMPERSAND     # ampersand
+220B    27      # CONTAINS AS MEMBER    # suchthat
+0028    28      # LEFT PARENTHESIS      # parenleft
+0029    29      # RIGHT PARENTHESIS     # parenright
+2217    2A      # ASTERISK OPERATOR     # asteriskmath
+002B    2B      # PLUS SIGN     # plus
+002C    2C      # COMMA # comma
+2212    2D      # MINUS SIGN    # minus
+002E    2E      # FULL STOP     # period
+002F    2F      # SOLIDUS       # slash
+0030    30      # DIGIT ZERO    # zero
+0031    31      # DIGIT ONE     # one
+0032    32      # DIGIT TWO     # two
+0033    33      # DIGIT THREE   # three
+0034    34      # DIGIT FOUR    # four
+0035    35      # DIGIT FIVE    # five
+0036    36      # DIGIT SIX     # six
+0037    37      # DIGIT SEVEN   # seven
+0038    38      # DIGIT EIGHT   # eight
+0039    39      # DIGIT NINE    # nine
+003A    3A      # COLON # colon
+003B    3B      # SEMICOLON     # semicolon
+003C    3C      # LESS-THAN SIGN        # less
+003D    3D      # EQUALS SIGN   # equal
+003E    3E      # GREATER-THAN SIGN     # greater
+003F    3F      # QUESTION MARK # question
+2245    40      # APPROXIMATELY EQUAL TO        # congruent
+0391    41      # GREEK CAPITAL LETTER ALPHA    # Alpha
+0392    42      # GREEK CAPITAL LETTER BETA     # Beta
+03A7    43      # GREEK CAPITAL LETTER CHI      # Chi
+0394    44      # GREEK CAPITAL LETTER DELTA    # Delta
+2206    44      # INCREMENT     # Delta
+0395    45      # GREEK CAPITAL LETTER EPSILON  # Epsilon
+03A6    46      # GREEK CAPITAL LETTER PHI      # Phi
+0393    47      # GREEK CAPITAL LETTER GAMMA    # Gamma
+0397    48      # GREEK CAPITAL LETTER ETA      # Eta
+0399    49      # GREEK CAPITAL LETTER IOTA     # Iota
+03D1    4A      # GREEK THETA SYMBOL    # theta1
+039A    4B      # GREEK CAPITAL LETTER KAPPA    # Kappa
+039B    4C      # GREEK CAPITAL LETTER LAMDA    # Lambda
+039C    4D      # GREEK CAPITAL LETTER MU       # Mu
+039D    4E      # GREEK CAPITAL LETTER NU       # Nu
+039F    4F      # GREEK CAPITAL LETTER OMICRON  # Omicron
+03A0    50      # GREEK CAPITAL LETTER PI       # Pi
+0398    51      # GREEK CAPITAL LETTER THETA    # Theta
+03A1    52      # GREEK CAPITAL LETTER RHO      # Rho
+03A3    53      # GREEK CAPITAL LETTER SIGMA    # Sigma
+03A4    54      # GREEK CAPITAL LETTER TAU      # Tau
+03A5    55      # GREEK CAPITAL LETTER UPSILON  # Upsilon
+03C2    56      # GREEK SMALL LETTER FINAL SIGMA        # sigma1
+03A9    57      # GREEK CAPITAL LETTER OMEGA    # Omega
+2126    57      # OHM SIGN      # Omega
+039E    58      # GREEK CAPITAL LETTER XI       # Xi
+03A8    59      # GREEK CAPITAL LETTER PSI      # Psi
+0396    5A      # GREEK CAPITAL LETTER ZETA     # Zeta
+005B    5B      # LEFT SQUARE BRACKET   # bracketleft
+2234    5C      # THEREFORE     # therefore
+005D    5D      # RIGHT SQUARE BRACKET  # bracketright
+22A5    5E      # UP TACK       # perpendicular
+005F    5F      # LOW LINE      # underscore
+F8E5    60      # RADICAL EXTENDER      # radicalex (CUS)
+03B1    61      # GREEK SMALL LETTER ALPHA      # alpha
+03B2    62      # GREEK SMALL LETTER BETA       # beta
+03C7    63      # GREEK SMALL LETTER CHI        # chi
+03B4    64      # GREEK SMALL LETTER DELTA      # delta
+03B5    65      # GREEK SMALL LETTER EPSILON    # epsilon
+03C6    66      # GREEK SMALL LETTER PHI        # phi
+03B3    67      # GREEK SMALL LETTER GAMMA      # gamma
+03B7    68      # GREEK SMALL LETTER ETA        # eta
+03B9    69      # GREEK SMALL LETTER IOTA       # iota
+03D5    6A      # GREEK PHI SYMBOL      # phi1
+03BA    6B      # GREEK SMALL LETTER KAPPA      # kappa
+03BB    6C      # GREEK SMALL LETTER LAMDA      # lambda
+00B5    6D      # MICRO SIGN    # mu
+03BC    6D      # GREEK SMALL LETTER MU # mu
+03BD    6E      # GREEK SMALL LETTER NU # nu
+03BF    6F      # GREEK SMALL LETTER OMICRON    # omicron
+03C0    70      # GREEK SMALL LETTER PI # pi
+03B8    71      # GREEK SMALL LETTER THETA      # theta
+03C1    72      # GREEK SMALL LETTER RHO        # rho
+03C3    73      # GREEK SMALL LETTER SIGMA      # sigma
+03C4    74      # GREEK SMALL LETTER TAU        # tau
+03C5    75      # GREEK SMALL LETTER UPSILON    # upsilon
+03D6    76      # GREEK PI SYMBOL       # omega1
+03C9    77      # GREEK SMALL LETTER OMEGA      # omega
+03BE    78      # GREEK SMALL LETTER XI # xi
+03C8    79      # GREEK SMALL LETTER PSI        # psi
+03B6    7A      # GREEK SMALL LETTER ZETA       # zeta
+007B    7B      # LEFT CURLY BRACKET    # braceleft
+007C    7C      # VERTICAL LINE # bar
+007D    7D      # RIGHT CURLY BRACKET   # braceright
+223C    7E      # TILDE OPERATOR        # similar
+20AC    A0      # EURO SIGN     # Euro
+03D2    A1      # GREEK UPSILON WITH HOOK SYMBOL        # Upsilon1
+2032    A2      # PRIME # minute
+2264    A3      # LESS-THAN OR EQUAL TO # lessequal
+2044    A4      # FRACTION SLASH        # fraction
+2215    A4      # DIVISION SLASH        # fraction
+221E    A5      # INFINITY      # infinity
+0192    A6      # LATIN SMALL LETTER F WITH HOOK        # florin
+2663    A7      # BLACK CLUB SUIT       # club
+2666    A8      # BLACK DIAMOND SUIT    # diamond
+2665    A9      # BLACK HEART SUIT      # heart
+2660    AA      # BLACK SPADE SUIT      # spade
+2194    AB      # LEFT RIGHT ARROW      # arrowboth
+2190    AC      # LEFTWARDS ARROW       # arrowleft
+2191    AD      # UPWARDS ARROW # arrowup
+2192    AE      # RIGHTWARDS ARROW      # arrowright
+2193    AF      # DOWNWARDS ARROW       # arrowdown
+00B0    B0      # DEGREE SIGN   # degree
+00B1    B1      # PLUS-MINUS SIGN       # plusminus
+2033    B2      # DOUBLE PRIME  # second
+2265    B3      # GREATER-THAN OR EQUAL TO      # greaterequal
+00D7    B4      # MULTIPLICATION SIGN   # multiply
+221D    B5      # PROPORTIONAL TO       # proportional
+2202    B6      # PARTIAL DIFFERENTIAL  # partialdiff
+2022    B7      # BULLET        # bullet
+00F7    B8      # DIVISION SIGN # divide
+2260    B9      # NOT EQUAL TO  # notequal
+2261    BA      # IDENTICAL TO  # equivalence
+2248    BB      # ALMOST EQUAL TO       # approxequal
+2026    BC      # HORIZONTAL ELLIPSIS   # ellipsis
+F8E6    BD      # VERTICAL ARROW EXTENDER       # arrowvertex (CUS)
+F8E7    BE      # HORIZONTAL ARROW EXTENDER     # arrowhorizex (CUS)
+21B5    BF      # DOWNWARDS ARROW WITH CORNER LEFTWARDS # carriagereturn
+2135    C0      # ALEF SYMBOL   # aleph
+2111    C1      # BLACK-LETTER CAPITAL I        # Ifraktur
+211C    C2      # BLACK-LETTER CAPITAL R        # Rfraktur
+2118    C3      # SCRIPT CAPITAL P      # weierstrass
+2297    C4      # CIRCLED TIMES # circlemultiply
+2295    C5      # CIRCLED PLUS  # circleplus
+2205    C6      # EMPTY SET     # emptyset
+2229    C7      # INTERSECTION  # intersection
+222A    C8      # UNION # union
+2283    C9      # SUPERSET OF   # propersuperset
+2287    CA      # SUPERSET OF OR EQUAL TO       # reflexsuperset
+2284    CB      # NOT A SUBSET OF       # notsubset
+2282    CC      # SUBSET OF     # propersubset
+2286    CD      # SUBSET OF OR EQUAL TO # reflexsubset
+2208    CE      # ELEMENT OF    # element
+2209    CF      # NOT AN ELEMENT OF     # notelement
+2220    D0      # ANGLE # angle
+2207    D1      # NABLA # gradient
+F6DA    D2      # REGISTERED SIGN SERIF # registerserif (CUS)
+F6D9    D3      # COPYRIGHT SIGN SERIF  # copyrightserif (CUS)
+F6DB    D4      # TRADE MARK SIGN SERIF # trademarkserif (CUS)
+220F    D5      # N-ARY PRODUCT # product
+221A    D6      # SQUARE ROOT   # radical
+22C5    D7      # DOT OPERATOR  # dotmath
+00AC    D8      # NOT SIGN      # logicalnot
+2227    D9      # LOGICAL AND   # logicaland
+2228    DA      # LOGICAL OR    # logicalor
+21D4    DB      # LEFT RIGHT DOUBLE ARROW       # arrowdblboth
+21D0    DC      # LEFTWARDS DOUBLE ARROW        # arrowdblleft
+21D1    DD      # UPWARDS DOUBLE ARROW  # arrowdblup
+21D2    DE      # RIGHTWARDS DOUBLE ARROW       # arrowdblright
+21D3    DF      # DOWNWARDS DOUBLE ARROW        # arrowdbldown
+25CA    E0      # LOZENGE       # lozenge
+2329    E1      # LEFT-POINTING ANGLE BRACKET   # angleleft
+F8E8    E2      # REGISTERED SIGN SANS SERIF    # registersans (CUS)
+F8E9    E3      # COPYRIGHT SIGN SANS SERIF     # copyrightsans (CUS)
+F8EA    E4      # TRADE MARK SIGN SANS SERIF    # trademarksans (CUS)
+2211    E5      # N-ARY SUMMATION       # summation
+F8EB    E6      # LEFT PAREN TOP        # parenlefttp (CUS)
+F8EC    E7      # LEFT PAREN EXTENDER   # parenleftex (CUS)
+F8ED    E8      # LEFT PAREN BOTTOM     # parenleftbt (CUS)
+F8EE    E9      # LEFT SQUARE BRACKET TOP       # bracketlefttp (CUS)
+F8EF    EA      # LEFT SQUARE BRACKET EXTENDER  # bracketleftex (CUS)
+F8F0    EB      # LEFT SQUARE BRACKET BOTTOM    # bracketleftbt (CUS)
+F8F1    EC      # LEFT CURLY BRACKET TOP        # bracelefttp (CUS)
+F8F2    ED      # LEFT CURLY BRACKET MID        # braceleftmid (CUS)
+F8F3    EE      # LEFT CURLY BRACKET BOTTOM     # braceleftbt (CUS)
+F8F4    EF      # CURLY BRACKET EXTENDER        # braceex (CUS)
+232A    F1      # RIGHT-POINTING ANGLE BRACKET  # angleright
+222B    F2      # INTEGRAL      # integral
+2320    F3      # TOP HALF INTEGRAL     # integraltp
+F8F5    F4      # INTEGRAL EXTENDER     # integralex (CUS)
+2321    F5      # BOTTOM HALF INTEGRAL  # integralbt
+F8F6    F6      # RIGHT PAREN TOP       # parenrighttp (CUS)
+F8F7    F7      # RIGHT PAREN EXTENDER  # parenrightex (CUS)
+F8F8    F8      # RIGHT PAREN BOTTOM    # parenrightbt (CUS)
+F8F9    F9      # RIGHT SQUARE BRACKET TOP      # bracketrighttp (CUS)
+F8FA    FA      # RIGHT SQUARE BRACKET EXTENDER # bracketrightex (CUS)
+F8FB    FB      # RIGHT SQUARE BRACKET BOTTOM   # bracketrightbt (CUS)
+F8FC    FC      # RIGHT CURLY BRACKET TOP       # bracerighttp (CUS)
+F8FD    FD      # RIGHT CURLY BRACKET MID       # bracerightmid (CUS)
+F8FE    FE      # RIGHT CURLY BRACKET BOTTOM    # bracerightbt (CUS)
+"
+! !
+
+!AdobeSymbol 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 > 16rFE ifTrue:[
+        ^ self decodingError.
+    ].
+    [
+        |t|
+        t := #(
+           "16r0020"    16r00A0 " NO-BREAK SPACE        # space " 
+           "16r0021"    16r0021 " EXCLAMATION MARK      # exclam " 
+           "16r0022"    16r2200 " FOR ALL       # universal " 
+           "16r0023"    16r0023 " NUMBER SIGN   # numbersign " 
+           "16r0024"    16r2203 " THERE EXISTS  # existential " 
+           "16r0025"    16r0025 " PERCENT SIGN  # percent " 
+           "16r0026"    16r0026 " AMPERSAND     # ampersand " 
+           "16r0027"    16r220B " CONTAINS AS MEMBER    # suchthat " 
+           "16r0028"    16r0028 " LEFT PARENTHESIS      # parenleft " 
+           "16r0029"    16r0029 " RIGHT PARENTHESIS     # parenright " 
+           "16r002A"    16r2217 " ASTERISK OPERATOR     # asteriskmath " 
+           "16r002B"    16r002B " PLUS SIGN     # plus " 
+           "16r002C"    16r002C " COMMA # comma " 
+           "16r002D"    16r2212 " MINUS SIGN    # minus " 
+           "16r002E"    16r002E " FULL STOP     # period " 
+           "16r002F"    16r002F " SOLIDUS       # slash " 
+           "16r0030"    16r0030 " DIGIT ZERO    # zero " 
+           "16r0031"    16r0031 " DIGIT ONE     # one " 
+           "16r0032"    16r0032 " DIGIT TWO     # two " 
+           "16r0033"    16r0033 " DIGIT THREE   # three " 
+           "16r0034"    16r0034 " DIGIT FOUR    # four " 
+           "16r0035"    16r0035 " DIGIT FIVE    # five " 
+           "16r0036"    16r0036 " DIGIT SIX     # six " 
+           "16r0037"    16r0037 " DIGIT SEVEN   # seven " 
+           "16r0038"    16r0038 " DIGIT EIGHT   # eight " 
+           "16r0039"    16r0039 " DIGIT NINE    # nine " 
+           "16r003A"    16r003A " COLON # colon " 
+           "16r003B"    16r003B " SEMICOLON     # semicolon " 
+           "16r003C"    16r003C " LESS-THAN SIGN        # less " 
+           "16r003D"    16r003D " EQUALS SIGN   # equal " 
+           "16r003E"    16r003E " GREATER-THAN SIGN     # greater " 
+           "16r003F"    16r003F " QUESTION MARK # question " 
+           "16r0040"    16r2245 " APPROXIMATELY EQUAL TO        # congruent " 
+           "16r0041"    16r0391 " GREEK CAPITAL LETTER ALPHA    # Alpha " 
+           "16r0042"    16r0392 " GREEK CAPITAL LETTER BETA     # Beta " 
+           "16r0043"    16r03A7 " GREEK CAPITAL LETTER CHI      # Chi " 
+           "16r0044"    16r2206 " INCREMENT     # Delta " 
+           "16r0045"    16r0395 " GREEK CAPITAL LETTER EPSILON  # Epsilon " 
+           "16r0046"    16r03A6 " GREEK CAPITAL LETTER PHI      # Phi " 
+           "16r0047"    16r0393 " GREEK CAPITAL LETTER GAMMA    # Gamma " 
+           "16r0048"    16r0397 " GREEK CAPITAL LETTER ETA      # Eta " 
+           "16r0049"    16r0399 " GREEK CAPITAL LETTER IOTA     # Iota " 
+           "16r004A"    16r03D1 " GREEK THETA SYMBOL    # theta1 " 
+           "16r004B"    16r039A " GREEK CAPITAL LETTER KAPPA    # Kappa " 
+           "16r004C"    16r039B " GREEK CAPITAL LETTER LAMDA    # Lambda " 
+           "16r004D"    16r039C " GREEK CAPITAL LETTER MU       # Mu " 
+           "16r004E"    16r039D " GREEK CAPITAL LETTER NU       # Nu " 
+           "16r004F"    16r039F " GREEK CAPITAL LETTER OMICRON  # Omicron " 
+           "16r0050"    16r03A0 " GREEK CAPITAL LETTER PI       # Pi " 
+           "16r0051"    16r0398 " GREEK CAPITAL LETTER THETA    # Theta " 
+           "16r0052"    16r03A1 " GREEK CAPITAL LETTER RHO      # Rho " 
+           "16r0053"    16r03A3 " GREEK CAPITAL LETTER SIGMA    # Sigma " 
+           "16r0054"    16r03A4 " GREEK CAPITAL LETTER TAU      # Tau " 
+           "16r0055"    16r03A5 " GREEK CAPITAL LETTER UPSILON  # Upsilon " 
+           "16r0056"    16r03C2 " GREEK SMALL LETTER FINAL SIGMA        # sigma1 " 
+           "16r0057"    16r2126 " OHM SIGN      # Omega " 
+           "16r0058"    16r039E " GREEK CAPITAL LETTER XI       # Xi " 
+           "16r0059"    16r03A8 " GREEK CAPITAL LETTER PSI      # Psi " 
+           "16r005A"    16r0396 " GREEK CAPITAL LETTER ZETA     # Zeta " 
+           "16r005B"    16r005B " LEFT SQUARE BRACKET   # bracketleft " 
+           "16r005C"    16r2234 " THEREFORE     # therefore " 
+           "16r005D"    16r005D " RIGHT SQUARE BRACKET  # bracketright " 
+           "16r005E"    16r22A5 " UP TACK       # perpendicular " 
+           "16r005F"    16r005F " LOW LINE      # underscore " 
+           "16r0060"    16rF8E5 " RADICAL EXTENDER      # radicalex (CUS) " 
+           "16r0061"    16r03B1 " GREEK SMALL LETTER ALPHA      # alpha " 
+           "16r0062"    16r03B2 " GREEK SMALL LETTER BETA       # beta " 
+           "16r0063"    16r03C7 " GREEK SMALL LETTER CHI        # chi " 
+           "16r0064"    16r03B4 " GREEK SMALL LETTER DELTA      # delta " 
+           "16r0065"    16r03B5 " GREEK SMALL LETTER EPSILON    # epsilon " 
+           "16r0066"    16r03C6 " GREEK SMALL LETTER PHI        # phi " 
+           "16r0067"    16r03B3 " GREEK SMALL LETTER GAMMA      # gamma " 
+           "16r0068"    16r03B7 " GREEK SMALL LETTER ETA        # eta " 
+           "16r0069"    16r03B9 " GREEK SMALL LETTER IOTA       # iota " 
+           "16r006A"    16r03D5 " GREEK PHI SYMBOL      # phi1 " 
+           "16r006B"    16r03BA " GREEK SMALL LETTER KAPPA      # kappa " 
+           "16r006C"    16r03BB " GREEK SMALL LETTER LAMDA      # lambda " 
+           "16r006D"    16r03BC " GREEK SMALL LETTER MU # mu " 
+           "16r006E"    16r03BD " GREEK SMALL LETTER NU # nu " 
+           "16r006F"    16r03BF " GREEK SMALL LETTER OMICRON    # omicron " 
+           "16r0070"    16r03C0 " GREEK SMALL LETTER PI # pi " 
+           "16r0071"    16r03B8 " GREEK SMALL LETTER THETA      # theta " 
+           "16r0072"    16r03C1 " GREEK SMALL LETTER RHO        # rho " 
+           "16r0073"    16r03C3 " GREEK SMALL LETTER SIGMA      # sigma " 
+           "16r0074"    16r03C4 " GREEK SMALL LETTER TAU        # tau " 
+           "16r0075"    16r03C5 " GREEK SMALL LETTER UPSILON    # upsilon " 
+           "16r0076"    16r03D6 " GREEK PI SYMBOL       # omega1 " 
+           "16r0077"    16r03C9 " GREEK SMALL LETTER OMEGA      # omega " 
+           "16r0078"    16r03BE " GREEK SMALL LETTER XI # xi " 
+           "16r0079"    16r03C8 " GREEK SMALL LETTER PSI        # psi " 
+           "16r007A"    16r03B6 " GREEK SMALL LETTER ZETA       # zeta " 
+           "16r007B"    16r007B " LEFT CURLY BRACKET    # braceleft " 
+           "16r007C"    16r007C " VERTICAL LINE # bar " 
+           "16r007D"    16r007D " RIGHT CURLY BRACKET   # braceright " 
+           "16r007E"    16r223C " TILDE OPERATOR        # similar " 
+           "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"    16r20AC " EURO SIGN     # Euro " 
+           "16r00A1"    16r03D2 " GREEK UPSILON WITH HOOK SYMBOL        # Upsilon1 " 
+           "16r00A2"    16r2032 " PRIME # minute " 
+           "16r00A3"    16r2264 " LESS-THAN OR EQUAL TO # lessequal " 
+           "16r00A4"    16r2215 " DIVISION SLASH        # fraction " 
+           "16r00A5"    16r221E " INFINITY      # infinity " 
+           "16r00A6"    16r0192 " LATIN SMALL LETTER F WITH HOOK        # florin " 
+           "16r00A7"    16r2663 " BLACK CLUB SUIT       # club " 
+           "16r00A8"    16r2666 " BLACK DIAMOND SUIT    # diamond " 
+           "16r00A9"    16r2665 " BLACK HEART SUIT      # heart " 
+           "16r00AA"    16r2660 " BLACK SPADE SUIT      # spade " 
+           "16r00AB"    16r2194 " LEFT RIGHT ARROW      # arrowboth " 
+           "16r00AC"    16r2190 " LEFTWARDS ARROW       # arrowleft " 
+           "16r00AD"    16r2191 " UPWARDS ARROW # arrowup " 
+           "16r00AE"    16r2192 " RIGHTWARDS ARROW      # arrowright " 
+           "16r00AF"    16r2193 " DOWNWARDS ARROW       # arrowdown " 
+           "16r00B0"    16r00B0 " DEGREE SIGN   # degree " 
+           "16r00B1"    16r00B1 " PLUS-MINUS SIGN       # plusminus " 
+           "16r00B2"    16r2033 " DOUBLE PRIME  # second " 
+           "16r00B3"    16r2265 " GREATER-THAN OR EQUAL TO      # greaterequal " 
+           "16r00B4"    16r00D7 " MULTIPLICATION SIGN   # multiply " 
+           "16r00B5"    16r221D " PROPORTIONAL TO       # proportional " 
+           "16r00B6"    16r2202 " PARTIAL DIFFERENTIAL  # partialdiff " 
+           "16r00B7"    16r2022 " BULLET        # bullet " 
+           "16r00B8"    16r00F7 " DIVISION SIGN # divide " 
+           "16r00B9"    16r2260 " NOT EQUAL TO  # notequal " 
+           "16r00BA"    16r2261 " IDENTICAL TO  # equivalence " 
+           "16r00BB"    16r2248 " ALMOST EQUAL TO       # approxequal " 
+           "16r00BC"    16r2026 " HORIZONTAL ELLIPSIS   # ellipsis " 
+           "16r00BD"    16rF8E6 " VERTICAL ARROW EXTENDER       # arrowvertex (CUS) " 
+           "16r00BE"    16rF8E7 " HORIZONTAL ARROW EXTENDER     # arrowhorizex (CUS) " 
+           "16r00BF"    16r21B5 " DOWNWARDS ARROW WITH CORNER LEFTWARDS # carriagereturn " 
+           "16r00C0"    16r2135 " ALEF SYMBOL   # aleph " 
+           "16r00C1"    16r2111 " BLACK-LETTER CAPITAL I        # Ifraktur " 
+           "16r00C2"    16r211C " BLACK-LETTER CAPITAL R        # Rfraktur " 
+           "16r00C3"    16r2118 " SCRIPT CAPITAL P      # weierstrass " 
+           "16r00C4"    16r2297 " CIRCLED TIMES # circlemultiply " 
+           "16r00C5"    16r2295 " CIRCLED PLUS  # circleplus " 
+           "16r00C6"    16r2205 " EMPTY SET     # emptyset " 
+           "16r00C7"    16r2229 " INTERSECTION  # intersection " 
+           "16r00C8"    16r222A " UNION # union " 
+           "16r00C9"    16r2283 " SUPERSET OF   # propersuperset " 
+           "16r00CA"    16r2287 " SUPERSET OF OR EQUAL TO       # reflexsuperset " 
+           "16r00CB"    16r2284 " NOT A SUBSET OF       # notsubset " 
+           "16r00CC"    16r2282 " SUBSET OF     # propersubset " 
+           "16r00CD"    16r2286 " SUBSET OF OR EQUAL TO # reflexsubset " 
+           "16r00CE"    16r2208 " ELEMENT OF    # element " 
+           "16r00CF"    16r2209 " NOT AN ELEMENT OF     # notelement " 
+           "16r00D0"    16r2220 " ANGLE # angle " 
+           "16r00D1"    16r2207 " NABLA # gradient " 
+           "16r00D2"    16rF6DA " REGISTERED SIGN SERIF # registerserif (CUS) " 
+           "16r00D3"    16rF6D9 " COPYRIGHT SIGN SERIF  # copyrightserif (CUS) " 
+           "16r00D4"    16rF6DB " TRADE MARK SIGN SERIF # trademarkserif (CUS) " 
+           "16r00D5"    16r220F " N-ARY PRODUCT # product " 
+           "16r00D6"    16r221A " SQUARE ROOT   # radical " 
+           "16r00D7"    16r22C5 " DOT OPERATOR  # dotmath " 
+           "16r00D8"    16r00AC " NOT SIGN      # logicalnot " 
+           "16r00D9"    16r2227 " LOGICAL AND   # logicaland " 
+           "16r00DA"    16r2228 " LOGICAL OR    # logicalor " 
+           "16r00DB"    16r21D4 " LEFT RIGHT DOUBLE ARROW       # arrowdblboth " 
+           "16r00DC"    16r21D0 " LEFTWARDS DOUBLE ARROW        # arrowdblleft " 
+           "16r00DD"    16r21D1 " UPWARDS DOUBLE ARROW  # arrowdblup " 
+           "16r00DE"    16r21D2 " RIGHTWARDS DOUBLE ARROW       # arrowdblright " 
+           "16r00DF"    16r21D3 " DOWNWARDS DOUBLE ARROW        # arrowdbldown " 
+           "16r00E0"    16r25CA " LOZENGE       # lozenge " 
+           "16r00E1"    16r2329 " LEFT-POINTING ANGLE BRACKET   # angleleft " 
+           "16r00E2"    16rF8E8 " REGISTERED SIGN SANS SERIF    # registersans (CUS) " 
+           "16r00E3"    16rF8E9 " COPYRIGHT SIGN SANS SERIF     # copyrightsans (CUS) " 
+           "16r00E4"    16rF8EA " TRADE MARK SIGN SANS SERIF    # trademarksans (CUS) " 
+           "16r00E5"    16r2211 " N-ARY SUMMATION       # summation " 
+           "16r00E6"    16rF8EB " LEFT PAREN TOP        # parenlefttp (CUS) " 
+           "16r00E7"    16rF8EC " LEFT PAREN EXTENDER   # parenleftex (CUS) " 
+           "16r00E8"    16rF8ED " LEFT PAREN BOTTOM     # parenleftbt (CUS) " 
+           "16r00E9"    16rF8EE " LEFT SQUARE BRACKET TOP       # bracketlefttp (CUS) " 
+           "16r00EA"    16rF8EF " LEFT SQUARE BRACKET EXTENDER  # bracketleftex (CUS) " 
+           "16r00EB"    16rF8F0 " LEFT SQUARE BRACKET BOTTOM    # bracketleftbt (CUS) " 
+           "16r00EC"    16rF8F1 " LEFT CURLY BRACKET TOP        # bracelefttp (CUS) " 
+           "16r00ED"    16rF8F2 " LEFT CURLY BRACKET MID        # braceleftmid (CUS) " 
+           "16r00EE"    16rF8F3 " LEFT CURLY BRACKET BOTTOM     # braceleftbt (CUS) " 
+           "16r00EF"    16rF8F4 " CURLY BRACKET EXTENDER        # braceex (CUS) " 
+           "16r00F0"    16r0000 " invalid " 
+           "16r00F1"    16r232A " RIGHT-POINTING ANGLE BRACKET  # angleright " 
+           "16r00F2"    16r222B " INTEGRAL      # integral " 
+           "16r00F3"    16r2320 " TOP HALF INTEGRAL     # integraltp " 
+           "16r00F4"    16rF8F5 " INTEGRAL EXTENDER     # integralex (CUS) " 
+           "16r00F5"    16r2321 " BOTTOM HALF INTEGRAL  # integralbt " 
+           "16r00F6"    16rF8F6 " RIGHT PAREN TOP       # parenrighttp (CUS) " 
+           "16r00F7"    16rF8F7 " RIGHT PAREN EXTENDER  # parenrightex (CUS) " 
+           "16r00F8"    16rF8F8 " RIGHT PAREN BOTTOM    # parenrightbt (CUS) " 
+           "16r00F9"    16rF8F9 " RIGHT SQUARE BRACKET TOP      # bracketrighttp (CUS) " 
+           "16r00FA"    16rF8FA " RIGHT SQUARE BRACKET EXTENDER # bracketrightex (CUS) " 
+           "16r00FB"    16rF8FB " RIGHT SQUARE BRACKET BOTTOM   # bracketrightbt (CUS) " 
+           "16r00FC"    16rF8FC " RIGHT CURLY BRACKET TOP       # bracerighttp (CUS) " 
+           "16r00FD"    16rF8FD " RIGHT CURLY BRACKET MID       # bracerightmid (CUS) " 
+           "16r00FE"    16rF8FE " RIGHT CURLY BRACKET BOTTOM    # bracerightbt (CUS) " 
+           ) at:(code - 16r1F).
+        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 <= 16r20 ifTrue:[
+        ^ self decodingError.
+    ].
+    unicode <= 16r21 ifTrue:[ ^ unicode ].
+    unicode > 16rF8FE ifTrue:[
+        ^ self encodingError.
+    ].
+    unicode <= 16r2666 ifTrue:[
+        unicode <= 16r3D6 ifTrue:[
+            unicode <= 16r192 ifTrue:[
+                unicode <= 16rF7 ifTrue:[
+                    unicode <= 16r9F ifTrue:[
+                        (#[
+                           "16r0022"    0 " invalid " 
+                           "16r0023"    1 " NUMBER SIGN   # numbersign " 
+                           "16r0024"    0 " invalid " 
+                           "16r0025"    1 " PERCENT SIGN  # percent " 
+                           "16r0026"    1 " AMPERSAND     # ampersand " 
+                           "16r0027"    0 " invalid " 
+                           "16r0028"    1 " LEFT PARENTHESIS      # parenleft " 
+                           "16r0029"    1 " RIGHT PARENTHESIS     # parenright " 
+                           "16r002A"    0 " invalid " 
+                           "16r002B"    1 " PLUS SIGN     # plus " 
+                           "16r002C"    1 " COMMA # comma " 
+                           "16r002D"    0 " invalid " 
+                           "16r002E"    1 " FULL STOP     # period " 
+                           "16r002F"    1 " SOLIDUS       # slash " 
+                           "16r0030"    1 " DIGIT ZERO    # zero " 
+                           "16r0031"    1 " DIGIT ONE     # one " 
+                           "16r0032"    1 " DIGIT TWO     # two " 
+                           "16r0033"    1 " DIGIT THREE   # three " 
+                           "16r0034"    1 " DIGIT FOUR    # four " 
+                           "16r0035"    1 " DIGIT FIVE    # five " 
+                           "16r0036"    1 " DIGIT SIX     # six " 
+                           "16r0037"    1 " DIGIT SEVEN   # seven " 
+                           "16r0038"    1 " DIGIT EIGHT   # eight " 
+                           "16r0039"    1 " DIGIT NINE    # nine " 
+                           "16r003A"    1 " COLON # colon " 
+                           "16r003B"    1 " SEMICOLON     # semicolon " 
+                           "16r003C"    1 " LESS-THAN SIGN        # less " 
+                           "16r003D"    1 " EQUALS SIGN   # equal " 
+                           "16r003E"    1 " GREATER-THAN SIGN     # greater " 
+                           "16r003F"    1 " QUESTION MARK # question " 
+                           "16r0040"    0 " invalid " 
+                           "16r0041"    0 " invalid " 
+                           "16r0042"    0 " invalid " 
+                           "16r0043"    0 " invalid " 
+                           "16r0044"    0 " invalid " 
+                           "16r0045"    0 " invalid " 
+                           "16r0046"    0 " invalid " 
+                           "16r0047"    0 " invalid " 
+                           "16r0048"    0 " invalid " 
+                           "16r0049"    0 " invalid " 
+                           "16r004A"    0 " invalid " 
+                           "16r004B"    0 " invalid " 
+                           "16r004C"    0 " invalid " 
+                           "16r004D"    0 " invalid " 
+                           "16r004E"    0 " invalid " 
+                           "16r004F"    0 " invalid " 
+                           "16r0050"    0 " invalid " 
+                           "16r0051"    0 " invalid " 
+                           "16r0052"    0 " invalid " 
+                           "16r0053"    0 " invalid " 
+                           "16r0054"    0 " invalid " 
+                           "16r0055"    0 " invalid " 
+                           "16r0056"    0 " invalid " 
+                           "16r0057"    0 " invalid " 
+                           "16r0058"    0 " invalid " 
+                           "16r0059"    0 " invalid " 
+                           "16r005A"    0 " invalid " 
+                           "16r005B"    1 " LEFT SQUARE BRACKET   # bracketleft " 
+                           "16r005C"    0 " invalid " 
+                           "16r005D"    1 " RIGHT SQUARE BRACKET  # bracketright " 
+                           "16r005E"    0 " invalid " 
+                           "16r005F"    1 " LOW LINE      # underscore " 
+                           "16r0060"    0 " invalid " 
+                           "16r0061"    0 " invalid " 
+                           "16r0062"    0 " invalid " 
+                           "16r0063"    0 " invalid " 
+                           "16r0064"    0 " invalid " 
+                           "16r0065"    0 " invalid " 
+                           "16r0066"    0 " invalid " 
+                           "16r0067"    0 " invalid " 
+                           "16r0068"    0 " invalid " 
+                           "16r0069"    0 " invalid " 
+                           "16r006A"    0 " invalid " 
+                           "16r006B"    0 " invalid " 
+                           "16r006C"    0 " invalid " 
+                           "16r006D"    0 " invalid " 
+                           "16r006E"    0 " invalid " 
+                           "16r006F"    0 " invalid " 
+                           "16r0070"    0 " invalid " 
+                           "16r0071"    0 " invalid " 
+                           "16r0072"    0 " invalid " 
+                           "16r0073"    0 " invalid " 
+                           "16r0074"    0 " invalid " 
+                           "16r0075"    0 " invalid " 
+                           "16r0076"    0 " invalid " 
+                           "16r0077"    0 " invalid " 
+                           "16r0078"    0 " invalid " 
+                           "16r0079"    0 " invalid " 
+                           "16r007A"    0 " invalid " 
+                           "16r007B"    1 " LEFT CURLY BRACKET    # braceleft " 
+                           "16r007C"    1 " VERTICAL LINE # bar " 
+                           "16r007D"    1 " RIGHT CURLY BRACKET   # braceright " 
+                           "16r007E"    0 " invalid " 
+                           "16r007F"    0 " invalid " 
+                           "16r0080"    0 " invalid " 
+                           "16r0081"    0 " invalid " 
+                           "16r0082"    0 " invalid " 
+                           "16r0083"    0 " invalid " 
+                           "16r0084"    0 " invalid " 
+                           "16r0085"    0 " invalid " 
+                           "16r0086"    0 " invalid " 
+                           "16r0087"    0 " invalid " 
+                           "16r0088"    0 " invalid " 
+                           "16r0089"    0 " invalid " 
+                           "16r008A"    0 " invalid " 
+                           "16r008B"    0 " invalid " 
+                           "16r008C"    0 " invalid " 
+                           "16r008D"    0 " invalid " 
+                           "16r008E"    0 " invalid " 
+                           "16r008F"    0 " invalid " 
+                           "16r0090"    0 " invalid " 
+                           "16r0091"    0 " invalid " 
+                           "16r0092"    0 " invalid " 
+                           "16r0093"    0 " invalid " 
+                           "16r0094"    0 " invalid " 
+                           "16r0095"    0 " invalid " 
+                           "16r0096"    0 " invalid " 
+                           "16r0097"    0 " invalid " 
+                           "16r0098"    0 " invalid " 
+                           "16r0099"    0 " invalid " 
+                           "16r009A"    0 " invalid " 
+                           "16r009B"    0 " invalid " 
+                           "16r009C"    0 " invalid " 
+                           "16r009D"    0 " invalid " 
+                           "16r009E"    0 " invalid " 
+                           "16r009F"    0 " invalid " 
+                        ] at:(unicode - 33)) ~~ 0 ifTrue:[^ unicode].
+                        ^ self encodingError
+                    ].
+                    unicode <= 16rB1 ifTrue:[
+                        unicode == 16rA0 ifTrue:[
+                            (#[
+                               "16r00A0"    1 " NO-BREAK SPACE        # space " 
+                            ] at:(unicode - 159)) ~~ 0 ifTrue:[^ unicode].
+                            ^ self encodingError
+                        ].
+                        unicode <= 16rAB ifTrue:[
+                            ^ self encodingError
+                        ].
+                        [
+                            |t|
+                            t := #[
+                               "16r00AC"    16rD8 " NOT SIGN      # logicalnot " 
+                               "16r00AD"    16r00 " invalid " 
+                               "16r00AE"    16r00 " invalid " 
+                               "16r00AF"    16r00 " invalid " 
+                               "16r00B0"    16rB0 " DEGREE SIGN   # degree " 
+                               "16r00B1"    16rB1 " PLUS-MINUS SIGN       # plusminus " 
+                               ] at:(unicode - 16rAB).
+                            t == 0 ifFalse:[^ t].
+                            ^ self encodingError
+                        ] value.
+                    ].
+                    unicode <= 16rD6 ifTrue:[
+                        ^ self encodingError
+                    ].
+                    unicode == 16rD7 ifTrue:[
+                        ^  "16r00D7" 16r00B4 " MULTIPLICATION SIGN   # multiply " 
+                    ].
+                    unicode <= 16rF6 ifTrue:[
+                        ^ self encodingError
+                    ].
+                    ^  "16r00F7" 16r00B8 " DIVISION SIGN # divide " 
+                ].
+                unicode <= 16r191 ifTrue:[
+                    ^ self encodingError
+                ].
+                ^  "16r0192" 16r00A6 " LATIN SMALL LETTER F WITH HOOK        # florin " 
+            ].
+            unicode <= 16r390 ifTrue:[
+                ^ self encodingError
+            ].
+            [
+                |t|
+                t := #[
+                   "16r0391"    16r41 " GREEK CAPITAL LETTER ALPHA    # Alpha " 
+                   "16r0392"    16r42 " GREEK CAPITAL LETTER BETA     # Beta " 
+                   "16r0393"    16r47 " GREEK CAPITAL LETTER GAMMA    # Gamma " 
+                   "16r0394"    16r00 " invalid " 
+                   "16r0395"    16r45 " GREEK CAPITAL LETTER EPSILON  # Epsilon " 
+                   "16r0396"    16r5A " GREEK CAPITAL LETTER ZETA     # Zeta " 
+                   "16r0397"    16r48 " GREEK CAPITAL LETTER ETA      # Eta " 
+                   "16r0398"    16r51 " GREEK CAPITAL LETTER THETA    # Theta " 
+                   "16r0399"    16r49 " GREEK CAPITAL LETTER IOTA     # Iota " 
+                   "16r039A"    16r4B " GREEK CAPITAL LETTER KAPPA    # Kappa " 
+                   "16r039B"    16r4C " GREEK CAPITAL LETTER LAMDA    # Lambda " 
+                   "16r039C"    16r4D " GREEK CAPITAL LETTER MU       # Mu " 
+                   "16r039D"    16r4E " GREEK CAPITAL LETTER NU       # Nu " 
+                   "16r039E"    16r58 " GREEK CAPITAL LETTER XI       # Xi " 
+                   "16r039F"    16r4F " GREEK CAPITAL LETTER OMICRON  # Omicron " 
+                   "16r03A0"    16r50 " GREEK CAPITAL LETTER PI       # Pi " 
+                   "16r03A1"    16r52 " GREEK CAPITAL LETTER RHO      # Rho " 
+                   "16r03A2"    16r00 " invalid " 
+                   "16r03A3"    16r53 " GREEK CAPITAL LETTER SIGMA    # Sigma " 
+                   "16r03A4"    16r54 " GREEK CAPITAL LETTER TAU      # Tau " 
+                   "16r03A5"    16r55 " GREEK CAPITAL LETTER UPSILON  # Upsilon " 
+                   "16r03A6"    16r46 " GREEK CAPITAL LETTER PHI      # Phi " 
+                   "16r03A7"    16r43 " GREEK CAPITAL LETTER CHI      # Chi " 
+                   "16r03A8"    16r59 " GREEK CAPITAL LETTER PSI      # Psi " 
+                   "16r03A9"    16r00 " invalid " 
+                   "16r03AA"    16r00 " invalid " 
+                   "16r03AB"    16r00 " invalid " 
+                   "16r03AC"    16r00 " invalid " 
+                   "16r03AD"    16r00 " invalid " 
+                   "16r03AE"    16r00 " invalid " 
+                   "16r03AF"    16r00 " invalid " 
+                   "16r03B0"    16r00 " invalid " 
+                   "16r03B1"    16r61 " GREEK SMALL LETTER ALPHA      # alpha " 
+                   "16r03B2"    16r62 " GREEK SMALL LETTER BETA       # beta " 
+                   "16r03B3"    16r67 " GREEK SMALL LETTER GAMMA      # gamma " 
+                   "16r03B4"    16r64 " GREEK SMALL LETTER DELTA      # delta " 
+                   "16r03B5"    16r65 " GREEK SMALL LETTER EPSILON    # epsilon " 
+                   "16r03B6"    16r7A " GREEK SMALL LETTER ZETA       # zeta " 
+                   "16r03B7"    16r68 " GREEK SMALL LETTER ETA        # eta " 
+                   "16r03B8"    16r71 " GREEK SMALL LETTER THETA      # theta " 
+                   "16r03B9"    16r69 " GREEK SMALL LETTER IOTA       # iota " 
+                   "16r03BA"    16r6B " GREEK SMALL LETTER KAPPA      # kappa " 
+                   "16r03BB"    16r6C " GREEK SMALL LETTER LAMDA      # lambda " 
+                   "16r03BC"    16r6D " GREEK SMALL LETTER MU # mu " 
+                   "16r03BD"    16r6E " GREEK SMALL LETTER NU # nu " 
+                   "16r03BE"    16r78 " GREEK SMALL LETTER XI # xi " 
+                   "16r03BF"    16r6F " GREEK SMALL LETTER OMICRON    # omicron " 
+                   "16r03C0"    16r70 " GREEK SMALL LETTER PI # pi " 
+                   "16r03C1"    16r72 " GREEK SMALL LETTER RHO        # rho " 
+                   "16r03C2"    16r56 " GREEK SMALL LETTER FINAL SIGMA        # sigma1 " 
+                   "16r03C3"    16r73 " GREEK SMALL LETTER SIGMA      # sigma " 
+                   "16r03C4"    16r74 " GREEK SMALL LETTER TAU        # tau " 
+                   "16r03C5"    16r75 " GREEK SMALL LETTER UPSILON    # upsilon " 
+                   "16r03C6"    16r66 " GREEK SMALL LETTER PHI        # phi " 
+                   "16r03C7"    16r63 " GREEK SMALL LETTER CHI        # chi " 
+                   "16r03C8"    16r79 " GREEK SMALL LETTER PSI        # psi " 
+                   "16r03C9"    16r77 " GREEK SMALL LETTER OMEGA      # omega " 
+                   "16r03CA"    16r00 " invalid " 
+                   "16r03CB"    16r00 " invalid " 
+                   "16r03CC"    16r00 " invalid " 
+                   "16r03CD"    16r00 " invalid " 
+                   "16r03CE"    16r00 " invalid " 
+                   "16r03CF"    16r00 " invalid " 
+                   "16r03D0"    16r00 " invalid " 
+                   "16r03D1"    16r4A " GREEK THETA SYMBOL    # theta1 " 
+                   "16r03D2"    16rA1 " GREEK UPSILON WITH HOOK SYMBOL        # Upsilon1 " 
+                   "16r03D3"    16r00 " invalid " 
+                   "16r03D4"    16r00 " invalid " 
+                   "16r03D5"    16r6A " GREEK PHI SYMBOL      # phi1 " 
+                   "16r03D6"    16r76 " GREEK PI SYMBOL       # omega1 " 
+                   ] at:(unicode - 16r390).
+                t == 0 ifFalse:[^ t].
+                ^ self encodingError
+            ] value.
+        ].
+        unicode <= 16r2021 ifTrue:[
+            ^ self encodingError
+        ].
+        unicode <= 16r232A ifTrue:[
+            unicode <= 16r2033 ifTrue:[
+                [
+                    |t|
+                    t := #[
+                       "16r2022"    16rB7 " BULLET        # bullet " 
+                       "16r2023"    16r00 " invalid " 
+                       "16r2024"    16r00 " invalid " 
+                       "16r2025"    16r00 " invalid " 
+                       "16r2026"    16rBC " HORIZONTAL ELLIPSIS   # 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"    16r00 " invalid " 
+                       "16r2031"    16r00 " invalid " 
+                       "16r2032"    16rA2 " PRIME # minute " 
+                       "16r2033"    16rB2 " DOUBLE PRIME  # second " 
+                       ] at:(unicode - 16r2021).
+                    t == 0 ifFalse:[^ t].
+                    ^ self encodingError
+                ] value.
+            ].
+            unicode <= 16r20AB ifTrue:[
+                ^ self encodingError
+            ].
+            unicode <= 16r20AC ifTrue:[
+                ^  "16r20AC" 16r00A0 " EURO SIGN     # Euro " 
+            ].
+            unicode <= 16r2110 ifTrue:[
+                ^ self encodingError
+            ].
+            unicode <= 16r2135 ifTrue:[
+                [
+                    |t|
+                    t := #[
+                       "16r2111"    16rC1 " BLACK-LETTER CAPITAL I        # Ifraktur " 
+                       "16r2112"    16r00 " invalid " 
+                       "16r2113"    16r00 " invalid " 
+                       "16r2114"    16r00 " invalid " 
+                       "16r2115"    16r00 " invalid " 
+                       "16r2116"    16r00 " invalid " 
+                       "16r2117"    16r00 " invalid " 
+                       "16r2118"    16rC3 " SCRIPT CAPITAL P      # weierstrass " 
+                       "16r2119"    16r00 " invalid " 
+                       "16r211A"    16r00 " invalid " 
+                       "16r211B"    16r00 " invalid " 
+                       "16r211C"    16rC2 " BLACK-LETTER CAPITAL R        # Rfraktur " 
+                       "16r211D"    16r00 " invalid " 
+                       "16r211E"    16r00 " invalid " 
+                       "16r211F"    16r00 " invalid " 
+                       "16r2120"    16r00 " invalid " 
+                       "16r2121"    16r00 " invalid " 
+                       "16r2122"    16r00 " invalid " 
+                       "16r2123"    16r00 " invalid " 
+                       "16r2124"    16r00 " invalid " 
+                       "16r2125"    16r00 " invalid " 
+                       "16r2126"    16r57 " OHM SIGN      # Omega " 
+                       "16r2127"    16r00 " invalid " 
+                       "16r2128"    16r00 " invalid " 
+                       "16r2129"    16r00 " invalid " 
+                       "16r212A"    16r00 " invalid " 
+                       "16r212B"    16r00 " invalid " 
+                       "16r212C"    16r00 " invalid " 
+                       "16r212D"    16r00 " invalid " 
+                       "16r212E"    16r00 " invalid " 
+                       "16r212F"    16r00 " invalid " 
+                       "16r2130"    16r00 " invalid " 
+                       "16r2131"    16r00 " invalid " 
+                       "16r2132"    16r00 " invalid " 
+                       "16r2133"    16r00 " invalid " 
+                       "16r2134"    16r00 " invalid " 
+                       "16r2135"    16rC0 " ALEF SYMBOL   # aleph " 
+                       ] at:(unicode - 16r2110).
+                    t == 0 ifFalse:[^ t].
+                    ^ self encodingError
+                ] value.
+            ].
+            unicode <= 16r218F ifTrue:[
+                ^ self encodingError
+            ].
+            unicode <= 16r22C5 ifTrue:[
+                unicode <= 16r21D4 ifTrue:[
+                    unicode <= 16r2194 ifTrue:[
+                        ^ #[
+                           "16r2190"    16rAC " LEFTWARDS ARROW       # arrowleft " 
+                           "16r2191"    16rAD " UPWARDS ARROW # arrowup " 
+                           "16r2192"    16rAE " RIGHTWARDS ARROW      # arrowright " 
+                           "16r2193"    16rAF " DOWNWARDS ARROW       # arrowdown " 
+                           "16r2194"    16rAB " LEFT RIGHT ARROW      # arrowboth " 
+                           ] at:(unicode - 16r218F).
+                    ].
+                    unicode <= 16r21B4 ifTrue:[
+                        ^ self encodingError
+                    ].
+                    unicode == 16r21B5 ifTrue:[
+                        ^  "16r21B5" 16r00BF " DOWNWARDS ARROW WITH CORNER LEFTWARDS # carriagereturn " 
+                    ].
+                    unicode <= 16r21CF ifTrue:[
+                        ^ self encodingError
+                    ].
+                    ^ #[
+                       "16r21D0"    16rDC " LEFTWARDS DOUBLE ARROW        # arrowdblleft " 
+                       "16r21D1"    16rDD " UPWARDS DOUBLE ARROW  # arrowdblup " 
+                       "16r21D2"    16rDE " RIGHTWARDS DOUBLE ARROW       # arrowdblright " 
+                       "16r21D3"    16rDF " DOWNWARDS DOUBLE ARROW        # arrowdbldown " 
+                       "16r21D4"    16rDB " LEFT RIGHT DOUBLE ARROW       # arrowdblboth " 
+                       ] at:(unicode - 16r21CF).
+                ].
+                unicode <= 16r21FF ifTrue:[
+                    ^ self encodingError
+                ].
+                [
+                    |t|
+                    t := #[
+                       "16r2200"    16r22 " FOR ALL       # universal " 
+                       "16r2201"    16r00 " invalid " 
+                       "16r2202"    16rB6 " PARTIAL DIFFERENTIAL  # partialdiff " 
+                       "16r2203"    16r24 " THERE EXISTS  # existential " 
+                       "16r2204"    16r00 " invalid " 
+                       "16r2205"    16rC6 " EMPTY SET     # emptyset " 
+                       "16r2206"    16r44 " INCREMENT     # Delta " 
+                       "16r2207"    16rD1 " NABLA # gradient " 
+                       "16r2208"    16rCE " ELEMENT OF    # element " 
+                       "16r2209"    16rCF " NOT AN ELEMENT OF     # notelement " 
+                       "16r220A"    16r00 " invalid " 
+                       "16r220B"    16r27 " CONTAINS AS MEMBER    # suchthat " 
+                       "16r220C"    16r00 " invalid " 
+                       "16r220D"    16r00 " invalid " 
+                       "16r220E"    16r00 " invalid " 
+                       "16r220F"    16rD5 " N-ARY PRODUCT # product " 
+                       "16r2210"    16r00 " invalid " 
+                       "16r2211"    16rE5 " N-ARY SUMMATION       # summation " 
+                       "16r2212"    16r2D " MINUS SIGN    # minus " 
+                       "16r2213"    16r00 " invalid " 
+                       "16r2214"    16r00 " invalid " 
+                       "16r2215"    16rA4 " DIVISION SLASH        # fraction " 
+                       "16r2216"    16r00 " invalid " 
+                       "16r2217"    16r2A " ASTERISK OPERATOR     # asteriskmath " 
+                       "16r2218"    16r00 " invalid " 
+                       "16r2219"    16r00 " invalid " 
+                       "16r221A"    16rD6 " SQUARE ROOT   # radical " 
+                       "16r221B"    16r00 " invalid " 
+                       "16r221C"    16r00 " invalid " 
+                       "16r221D"    16rB5 " PROPORTIONAL TO       # proportional " 
+                       "16r221E"    16rA5 " INFINITY      # infinity " 
+                       "16r221F"    16r00 " invalid " 
+                       "16r2220"    16rD0 " ANGLE # angle " 
+                       "16r2221"    16r00 " invalid " 
+                       "16r2222"    16r00 " invalid " 
+                       "16r2223"    16r00 " invalid " 
+                       "16r2224"    16r00 " invalid " 
+                       "16r2225"    16r00 " invalid " 
+                       "16r2226"    16r00 " invalid " 
+                       "16r2227"    16rD9 " LOGICAL AND   # logicaland " 
+                       "16r2228"    16rDA " LOGICAL OR    # logicalor " 
+                       "16r2229"    16rC7 " INTERSECTION  # intersection " 
+                       "16r222A"    16rC8 " UNION # union " 
+                       "16r222B"    16rF2 " INTEGRAL      # integral " 
+                       "16r222C"    16r00 " invalid " 
+                       "16r222D"    16r00 " invalid " 
+                       "16r222E"    16r00 " invalid " 
+                       "16r222F"    16r00 " invalid " 
+                       "16r2230"    16r00 " invalid " 
+                       "16r2231"    16r00 " invalid " 
+                       "16r2232"    16r00 " invalid " 
+                       "16r2233"    16r00 " invalid " 
+                       "16r2234"    16r5C " THEREFORE     # therefore " 
+                       "16r2235"    16r00 " invalid " 
+                       "16r2236"    16r00 " invalid " 
+                       "16r2237"    16r00 " invalid " 
+                       "16r2238"    16r00 " invalid " 
+                       "16r2239"    16r00 " invalid " 
+                       "16r223A"    16r00 " invalid " 
+                       "16r223B"    16r00 " invalid " 
+                       "16r223C"    16r7E " TILDE OPERATOR        # similar " 
+                       "16r223D"    16r00 " invalid " 
+                       "16r223E"    16r00 " invalid " 
+                       "16r223F"    16r00 " invalid " 
+                       "16r2240"    16r00 " invalid " 
+                       "16r2241"    16r00 " invalid " 
+                       "16r2242"    16r00 " invalid " 
+                       "16r2243"    16r00 " invalid " 
+                       "16r2244"    16r00 " invalid " 
+                       "16r2245"    16r40 " APPROXIMATELY EQUAL TO        # congruent " 
+                       "16r2246"    16r00 " invalid " 
+                       "16r2247"    16r00 " invalid " 
+                       "16r2248"    16rBB " ALMOST EQUAL TO       # approxequal " 
+                       "16r2249"    16r00 " invalid " 
+                       "16r224A"    16r00 " invalid " 
+                       "16r224B"    16r00 " invalid " 
+                       "16r224C"    16r00 " invalid " 
+                       "16r224D"    16r00 " invalid " 
+                       "16r224E"    16r00 " invalid " 
+                       "16r224F"    16r00 " invalid " 
+                       "16r2250"    16r00 " invalid " 
+                       "16r2251"    16r00 " invalid " 
+                       "16r2252"    16r00 " invalid " 
+                       "16r2253"    16r00 " invalid " 
+                       "16r2254"    16r00 " invalid " 
+                       "16r2255"    16r00 " invalid " 
+                       "16r2256"    16r00 " invalid " 
+                       "16r2257"    16r00 " invalid " 
+                       "16r2258"    16r00 " invalid " 
+                       "16r2259"    16r00 " invalid " 
+                       "16r225A"    16r00 " invalid " 
+                       "16r225B"    16r00 " invalid " 
+                       "16r225C"    16r00 " invalid " 
+                       "16r225D"    16r00 " invalid " 
+                       "16r225E"    16r00 " invalid " 
+                       "16r225F"    16r00 " invalid " 
+                       "16r2260"    16rB9 " NOT EQUAL TO  # notequal " 
+                       "16r2261"    16rBA " IDENTICAL TO  # equivalence " 
+                       "16r2262"    16r00 " invalid " 
+                       "16r2263"    16r00 " invalid " 
+                       "16r2264"    16rA3 " LESS-THAN OR EQUAL TO # lessequal " 
+                       "16r2265"    16rB3 " GREATER-THAN OR EQUAL TO      # greaterequal " 
+                       "16r2266"    16r00 " invalid " 
+                       "16r2267"    16r00 " invalid " 
+                       "16r2268"    16r00 " invalid " 
+                       "16r2269"    16r00 " invalid " 
+                       "16r226A"    16r00 " invalid " 
+                       "16r226B"    16r00 " invalid " 
+                       "16r226C"    16r00 " invalid " 
+                       "16r226D"    16r00 " invalid " 
+                       "16r226E"    16r00 " invalid " 
+                       "16r226F"    16r00 " invalid " 
+                       "16r2270"    16r00 " invalid " 
+                       "16r2271"    16r00 " invalid " 
+                       "16r2272"    16r00 " invalid " 
+                       "16r2273"    16r00 " invalid " 
+                       "16r2274"    16r00 " invalid " 
+                       "16r2275"    16r00 " invalid " 
+                       "16r2276"    16r00 " invalid " 
+                       "16r2277"    16r00 " invalid " 
+                       "16r2278"    16r00 " invalid " 
+                       "16r2279"    16r00 " invalid " 
+                       "16r227A"    16r00 " invalid " 
+                       "16r227B"    16r00 " invalid " 
+                       "16r227C"    16r00 " invalid " 
+                       "16r227D"    16r00 " invalid " 
+                       "16r227E"    16r00 " invalid " 
+                       "16r227F"    16r00 " invalid " 
+                       "16r2280"    16r00 " invalid " 
+                       "16r2281"    16r00 " invalid " 
+                       "16r2282"    16rCC " SUBSET OF     # propersubset " 
+                       "16r2283"    16rC9 " SUPERSET OF   # propersuperset " 
+                       "16r2284"    16rCB " NOT A SUBSET OF       # notsubset " 
+                       "16r2285"    16r00 " invalid " 
+                       "16r2286"    16rCD " SUBSET OF OR EQUAL TO # reflexsubset " 
+                       "16r2287"    16rCA " SUPERSET OF OR EQUAL TO       # reflexsuperset " 
+                       "16r2288"    16r00 " invalid " 
+                       "16r2289"    16r00 " invalid " 
+                       "16r228A"    16r00 " invalid " 
+                       "16r228B"    16r00 " invalid " 
+                       "16r228C"    16r00 " invalid " 
+                       "16r228D"    16r00 " invalid " 
+                       "16r228E"    16r00 " invalid " 
+                       "16r228F"    16r00 " invalid " 
+                       "16r2290"    16r00 " invalid " 
+                       "16r2291"    16r00 " invalid " 
+                       "16r2292"    16r00 " invalid " 
+                       "16r2293"    16r00 " invalid " 
+                       "16r2294"    16r00 " invalid " 
+                       "16r2295"    16rC5 " CIRCLED PLUS  # circleplus " 
+                       "16r2296"    16r00 " invalid " 
+                       "16r2297"    16rC4 " CIRCLED TIMES # circlemultiply " 
+                       "16r2298"    16r00 " invalid " 
+                       "16r2299"    16r00 " invalid " 
+                       "16r229A"    16r00 " invalid " 
+                       "16r229B"    16r00 " invalid " 
+                       "16r229C"    16r00 " invalid " 
+                       "16r229D"    16r00 " invalid " 
+                       "16r229E"    16r00 " invalid " 
+                       "16r229F"    16r00 " invalid " 
+                       "16r22A0"    16r00 " invalid " 
+                       "16r22A1"    16r00 " invalid " 
+                       "16r22A2"    16r00 " invalid " 
+                       "16r22A3"    16r00 " invalid " 
+                       "16r22A4"    16r00 " invalid " 
+                       "16r22A5"    16r5E " UP TACK       # perpendicular " 
+                       "16r22A6"    16r00 " invalid " 
+                       "16r22A7"    16r00 " invalid " 
+                       "16r22A8"    16r00 " invalid " 
+                       "16r22A9"    16r00 " invalid " 
+                       "16r22AA"    16r00 " invalid " 
+                       "16r22AB"    16r00 " invalid " 
+                       "16r22AC"    16r00 " invalid " 
+                       "16r22AD"    16r00 " invalid " 
+                       "16r22AE"    16r00 " invalid " 
+                       "16r22AF"    16r00 " invalid " 
+                       "16r22B0"    16r00 " invalid " 
+                       "16r22B1"    16r00 " invalid " 
+                       "16r22B2"    16r00 " invalid " 
+                       "16r22B3"    16r00 " invalid " 
+                       "16r22B4"    16r00 " invalid " 
+                       "16r22B5"    16r00 " invalid " 
+                       "16r22B6"    16r00 " invalid " 
+                       "16r22B7"    16r00 " invalid " 
+                       "16r22B8"    16r00 " invalid " 
+                       "16r22B9"    16r00 " invalid " 
+                       "16r22BA"    16r00 " invalid " 
+                       "16r22BB"    16r00 " invalid " 
+                       "16r22BC"    16r00 " invalid " 
+                       "16r22BD"    16r00 " invalid " 
+                       "16r22BE"    16r00 " invalid " 
+                       "16r22BF"    16r00 " invalid " 
+                       "16r22C0"    16r00 " invalid " 
+                       "16r22C1"    16r00 " invalid " 
+                       "16r22C2"    16r00 " invalid " 
+                       "16r22C3"    16r00 " invalid " 
+                       "16r22C4"    16r00 " invalid " 
+                       "16r22C5"    16rD7 " DOT OPERATOR  # dotmath " 
+                       ] at:(unicode - 16r21FF).
+                    t == 0 ifFalse:[^ t].
+                    ^ self encodingError
+                ] value.
+            ].
+            unicode <= 16r231F ifTrue:[
+                ^ self encodingError
+            ].
+            [
+                |t|
+                t := #[
+                   "16r2320"    16rF3 " TOP HALF INTEGRAL     # integraltp " 
+                   "16r2321"    16rF5 " BOTTOM HALF INTEGRAL  # integralbt " 
+                   "16r2322"    16r00 " invalid " 
+                   "16r2323"    16r00 " invalid " 
+                   "16r2324"    16r00 " invalid " 
+                   "16r2325"    16r00 " invalid " 
+                   "16r2326"    16r00 " invalid " 
+                   "16r2327"    16r00 " invalid " 
+                   "16r2328"    16r00 " invalid " 
+                   "16r2329"    16rE1 " LEFT-POINTING ANGLE BRACKET   # angleleft " 
+                   "16r232A"    16rF1 " RIGHT-POINTING ANGLE BRACKET  # angleright " 
+                   ] at:(unicode - 16r231F).
+                t == 0 ifFalse:[^ t].
+                ^ self encodingError
+            ] value.
+        ].
+        unicode <= 16r25C9 ifTrue:[
+            ^ self encodingError
+        ].
+        unicode == 16r25CA ifTrue:[
+            ^  "16r25CA" 16r00E0 " LOZENGE       # lozenge " 
+        ].
+        unicode <= 16r265F ifTrue:[
+            ^ self encodingError
+        ].
+        [
+            |t|
+            t := #[
+               "16r2660"    16rAA " BLACK SPADE SUIT      # spade " 
+               "16r2661"    16r00 " invalid " 
+               "16r2662"    16r00 " invalid " 
+               "16r2663"    16rA7 " BLACK CLUB SUIT       # club " 
+               "16r2664"    16r00 " invalid " 
+               "16r2665"    16rA9 " BLACK HEART SUIT      # heart " 
+               "16r2666"    16rA8 " BLACK DIAMOND SUIT    # diamond " 
+               ] at:(unicode - 16r265F).
+            t == 0 ifFalse:[^ t].
+            ^ self encodingError
+        ] value.
+    ].
+    unicode <= 16rF6D8 ifTrue:[
+        ^ self encodingError
+    ].
+    unicode <= 16rF6DB ifTrue:[
+        ^ #[
+           "16rF6D9"    16rD3 " COPYRIGHT SIGN SERIF  # copyrightserif (CUS) " 
+           "16rF6DA"    16rD2 " REGISTERED SIGN SERIF # registerserif (CUS) " 
+           "16rF6DB"    16rD4 " TRADE MARK SIGN SERIF # trademarkserif (CUS) " 
+           ] at:(unicode - 16rF6D8).
+    ].
+    unicode <= 16rF8E4 ifTrue:[
+        ^ self encodingError
+    ].
+    ^ #[
+       "16rF8E5"    16r60 " RADICAL EXTENDER      # radicalex (CUS) " 
+       "16rF8E6"    16rBD " VERTICAL ARROW EXTENDER       # arrowvertex (CUS) " 
+       "16rF8E7"    16rBE " HORIZONTAL ARROW EXTENDER     # arrowhorizex (CUS) " 
+       "16rF8E8"    16rE2 " REGISTERED SIGN SANS SERIF    # registersans (CUS) " 
+       "16rF8E9"    16rE3 " COPYRIGHT SIGN SANS SERIF     # copyrightsans (CUS) " 
+       "16rF8EA"    16rE4 " TRADE MARK SIGN SANS SERIF    # trademarksans (CUS) " 
+       "16rF8EB"    16rE6 " LEFT PAREN TOP        # parenlefttp (CUS) " 
+       "16rF8EC"    16rE7 " LEFT PAREN EXTENDER   # parenleftex (CUS) " 
+       "16rF8ED"    16rE8 " LEFT PAREN BOTTOM     # parenleftbt (CUS) " 
+       "16rF8EE"    16rE9 " LEFT SQUARE BRACKET TOP       # bracketlefttp (CUS) " 
+       "16rF8EF"    16rEA " LEFT SQUARE BRACKET EXTENDER  # bracketleftex (CUS) " 
+       "16rF8F0"    16rEB " LEFT SQUARE BRACKET BOTTOM    # bracketleftbt (CUS) " 
+       "16rF8F1"    16rEC " LEFT CURLY BRACKET TOP        # bracelefttp (CUS) " 
+       "16rF8F2"    16rED " LEFT CURLY BRACKET MID        # braceleftmid (CUS) " 
+       "16rF8F3"    16rEE " LEFT CURLY BRACKET BOTTOM     # braceleftbt (CUS) " 
+       "16rF8F4"    16rEF " CURLY BRACKET EXTENDER        # braceex (CUS) " 
+       "16rF8F5"    16rF4 " INTEGRAL EXTENDER     # integralex (CUS) " 
+       "16rF8F6"    16rF6 " RIGHT PAREN TOP       # parenrighttp (CUS) " 
+       "16rF8F7"    16rF7 " RIGHT PAREN EXTENDER  # parenrightex (CUS) " 
+       "16rF8F8"    16rF8 " RIGHT PAREN BOTTOM    # parenrightbt (CUS) " 
+       "16rF8F9"    16rF9 " RIGHT SQUARE BRACKET TOP      # bracketrighttp (CUS) " 
+       "16rF8FA"    16rFA " RIGHT SQUARE BRACKET EXTENDER # bracketrightex (CUS) " 
+       "16rF8FB"    16rFB " RIGHT SQUARE BRACKET BOTTOM   # bracketrightbt (CUS) " 
+       "16rF8FC"    16rFC " RIGHT CURLY BRACKET TOP       # bracerighttp (CUS) " 
+       "16rF8FD"    16rFD " RIGHT CURLY BRACKET MID       # bracerightmid (CUS) " 
+       "16rF8FE"    16rFE " RIGHT CURLY BRACKET BOTTOM    # bracerightbt (CUS) " 
+       ] at:(unicode - 16rF8E4).
+! !
+
+!AdobeSymbol class methodsFor:'documentation'!
+
+version
+    ^ '$Header$'
+!
+
+version_CVS
+    ^ '$Header$'
+! !
+