Announcement

Collapse
No announcement yet.

HTML Encoding/Decoding

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • HTML Encoding/Decoding

    I'm capturing some web content. I'm finding lots of gems like """, "&apos", "<", ">" ... google research nets "HTML - Entities" and there are lots and lots and lots of them!!
    See: https://www.tutorialspoint.com/html/html_entities.htm

    What I didn't find was a WinApi to decode them back to the original value. This is my first time attempting to grab data from a web page. This has to be a very common practice and so I'm sure I'm missing something easy... Easy once you know it anyway. Someone with experience able to point a noob in the correct direction?

  • #2
    Howdy, Michael!

    By capturing, do you mean capturing the text of a web page?


    The code provided by Jose for getting "innertext" seems to convert those just fine.

    Code:
    'Compilable Example:  (Jose Includes)
    #Compile Exe
    #Dim All
    %Unicode = 1
    %UseWebBrowser = 1            ' // Use the WebBrowser control
    #Include Once "CWindow.inc"   ' // CWindow class
    %IDC_WebBrowser = 1001
    %IDC_Button = 1002
    Global hDlg, hBrowser As Dword
    Function PBMain
       Local pWindow As IWindow, bstrURL As WString
       Dialog New Pixels, 0, "WebBrowser", , , 300, 200, %WS_OverlappedWindow To hDlg
       Control Add Button, hDlg, %IDC_Button, "Get Inner Text",10,10,75,25
       pWindow = Class "CWindow"
       bstrURL = "MSHTML:<HTML><BODY><table><tr><td>Beene</td><td>&quot; &lt; &gt;</td></BODY></HTML>"
    '   bstrURL = "MSHTML:<HTML><BODY><table><tr><td>Beene</td>&nbsp;<td>Apr</td></BODY></HTML>"
       hBrowser = pWindow.AddWebBrowserControl(hDlg, %IDC_WEBBROWSER, bstrURL, Nothing, 5, 40, 600,360)
       Dialog Show Modal hDlg, Call DlgProc
    End Function
    
    CallBack Function DlgProc() As Long
       Local pIWebBrowser2 As IWebBrowser2
       Local pIHTMLDocument2 As IHTMLDocument2
       Local pElement As IHTMLElement
       Local temp$$
    
       Select Case CbMsg
          Case %WM_Command
             Select Case Cb.Ctl
                Case %IDC_Button
                   pIWebBrowser2 = OC_GetDispatch(hBrowser)
                   pIHTMLDocument2 = pIWebBrowser2.Document
                   pElement = pIHTMLDocument2.body
                   temp$$ = pElement.innerText
                   MsgBox temp$$, %MB_Ok, "Inner Text"
             End Select
    
          Case %WM_Size
             If Cb.WParam <> %Size_Minimized Then
                Local w,h As Long
                Dialog Get Client Cb.Hndl To w,h
                Control Set Size Cb.Hndl, %IDC_WebBrowser, w-10, h-50
             End If
       End Select
    End Function
    
    'gbs_01327
    'Date: 05-11-2013

    Comment


    • #3
      The 2000+ named entity list is a growing document.
      The current list is at https://html.spec.whatwg.org/multipa...ter-references

      AFAIK, there is no API to do the translation, you will have to "roll your own" based on that list or, as Gary has suggested, hook into a browser that can do it.

      Personally, I'd roll my own - build an array of entity names and code points and embed it as a resource.

      Comment


      • #4
        Even before my original post...I had this voice in my head telling me to use MSXML. Seems that there is a member and regular poster here that is often found promoting its use.

        There is an example posted on these forums for using MSXML to get the contents of a webpage like URLDownloadToFile will do. So to that end, I started researching and testing.

        So far, I can get MSXML to do the opposite of what I'm looking for... (see code below) However, that gives me hope that with some additional research and effort I will be able to do what I'm needing done.

        Gary Beene More like URLDownloadToFile
        Stuart McLachlan I hope you are wrong about "rolling my own"... I'd like to avoid that if at all possible


        Code:
        #DIM ALL
        #INCLUDE ONCE "MSXML.inc"
        
        FUNCTION PBMAIN() AS LONG
        
           LOCAL sHTML    AS STRING
           LOCAL sWork    AS STRING
           LOCAL oXML_Doc AS IXMLDOMDocument2
        
           oXML_Doc = NEWCOM "Msxml2.DOMDocument"
        
           IF ISNOTHING(oXML_Doc) THEN
              CON.STDOUT "MSXML object create failure"
              EXIT FUNCTION
           END IF
        
           sHTML = "MSHTML:<HTML><BODY><table><tr><td>Beene</td><td>"" < ></td></BODY></HTML>"
        
           oXML_Text = oXML_Doc.createTextNode(sHTML)
           sWork = oXML_Text.xml
        
           CON.STDOUT sHTML
           CON.STDOUT sWork
        
           oXML_Doc = NOTHING
        
        END FUNCTION
        Output:
        Code:
        MSHTML:<HTML><BODY><table><tr><td>Beene</td><td>" < ></td></BODY></HTML>
        MSHTML:&lt;HTML&gt;&lt;BODY&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Beene&lt;/td&gt;&lt;td&gt;" &lt; &gt;&lt;/td&gt;&lt;/BODY&gt;&lt;/HTML&gt;

        Comment


        • #5
          Originally posted by Michael Rice View Post
          So far, I can get MSXML to do the opposite of what I'm looking for... (see code below) However, that gives me hope that with some additional research and effort I will be able to do what I'm needing done.
          [
          Output:
          Code:
          MSHTML:<HTML><BODY><table><tr><td>Beene</td><td>" < ></td></BODY></HTML>
          MSHTML:&lt;HTML&gt;&lt;BODY&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Beene&lt;/td&gt;&lt;td&gt;" &lt; &gt;&lt;/td&gt;&lt;/BODY&gt;&lt;/HTML&gt;
          There are only five "reserved characters" in XML/HTML which MUST be encoded and obviously MSXML has to know about them. What you are seeing there is encoding of the "reserved characters". That's very different to encoding/decoding HTML "named characters".

          Note, its named MSXML, not MSHTML

          https://www.xml.com/pub/a/2003/01/02/xmlchar.html

          HTML users are used to having a lot of named character entities available. They can use "&nbsp;" to insert a non-breaking space, "&copy;" to insert a copyright symbol, and "&euro;" to insert the symbol for the new European currency, the Euro. However, most symbols are not automatically defined in XML. To make them available, you have to use a DTD that defines them or you have to define them in the internal DTD subset of your document.

          Comment


          • #6
            Originally posted by Stuart McLachlan View Post
            The 2000+ named entity list is a growing document...
            Originally posted by Stuart McLachlan View Post
            There are only four "reserved characters" in XML/HTML and obviously MSXML has to know about them. That's very different to encoding/decoding "entities"
            Stuart McLachlan I think I'm going to go quietly study all this. It's my first adventure trying web scraping and I'm certainly seeing some of the challenges involved. I think I need to understand the basics like...if there are only four "reserved characters" why there's a list of 2000+ named entities. In my searching on google, looks like C# has a library for doing this very thing. So now that you've burst my bubble here. I'm off to test that library and if it does indeed do as I need...look at the source code for the library and see how it was implemented there...

            Comment


            • #7
              Originally posted by Michael Rice View Post



              Stuart McLachlan I think I'm going to go quietly study all this. It's my first adventure trying web scraping and I'm certainly seeing some of the challenges involved. I think I need to understand the basics like...if there are only four "reserved characters" why there's a list of 2000+ named entities. In my searching on google, looks like C# has a library for doing this very thing. So now that you've burst my bubble here. I'm off to test that library and if it does indeed do as I need...look at the source code for the library and see how it was implemented there...
              Note, I've edited my previous post to add more info which answers your question and corrects "four" to "five"

              Comment


              • #8
                Originally posted by Stuart McLachlan View Post
                Note, its named MSXML, not MSHTML
                As I've seen posted on this site many times...don't let it's name fool you...

                I'm guessing it won't do what I need...but nothing in the name MSXML suggest it could do an http request...but yet I believe it can indeed do that.

                C# does have a library, so I'm going to test it out. If it does as I need, I'll take a look at the library source and see how they've implemented it.

                Comment


                • #9
                  Check out HTML Tidy 's libTidy.dll http://www.html-tidy.org/developer/

                  It will "Clean" your document and with appropriate switches will translate named characters.

                  (I'd forgotten about this one, Pegasus Mail uses it for HTML messages)

                  Binary available here: http://binaries.html-tidy.org/

                  Comment


                  • #10
                    Thank you Stuart for pointing me towards another possible solution. The main page shows a SourceForge link...so that gives me 3 libs now to study the work of others to see how this has been solved before... There is no project due date looming, so I have some time to find a decent solution.

                    My needs are so meager and I only need to decode (at this point anyway...until the next project comes along)

                    A very simple brute force function could serve my purpose (see below). My hope was to find something that was a part of the OS, so that as MS updates the growing list...my software simply keeps calling the same WinApi and thus gets updated along with the OS....However, no joy!!! Gary's suggestion above may be the closest solution to that...that is also on my list of research and testing.

                    Gary and Stuart, thank you both for your suggestions and information provided on this topic.

                    Code:
                    FUNCTION HTML_Decode(sEncoded) AS STRING) AS STRING
                       REPLACE "&quot;" WITH """" IN sEncoded
                       REPLACE "&lt;" WITH "<" IN sEncoded
                       REPLACE "&gt;" WITH ">" IN sEncoded
                       ...
                       ...
                       ...
                       FUNCTION = sEncoded
                    END FUNCTION

                    Comment


                    • #11
                      One application to run once (or when new named characters are added to the standard linked in post #3

                      One application to do the replacements in the HTML data.

                      1. Build and save an array of all named characters that end with a semi-colon from list created from link in post #3:
                      '
                      Code:
                      #COMPILE EXE
                      #DIM ALL
                      #DEBUG ERROR ON
                      #DEBUG DISPLAY ON
                      
                      #INCLUDE ONCE "WIN32API.INC"
                      
                      FUNCTION PBMAIN () AS LONG
                      LOCAL lCount AS  LONG
                      LOCAL strT AS STRING
                      DIM arr(1 TO 2,1 TO 2300) AS STRING
                      OPEN "HTMLEntities.inc" FOR INPUT AS  #1
                      WHILE NOT EOF(1)
                          LINE INPUT #1,strT
                          IF INSTR(STRt,";" )THEN
                              INCR lCOunt
                              arr(1,lcount) = "&" & PARSE$(strT,$TAB,1)
                              arr(2,lcount) = FORMAT$(VAL("&H" & MID$(PARSE$(strT,$TAB,2),3,5)))
                          END IF
                      WEND
                      CLOSE #1
                      REDIM PRESERVE arr(1 TO 2,1 TO lcount)
                      OPEN "NamedChars.dat" FOR BINARY AS #1
                      PUT#1,,arr()
                      CLOSE #1
                      
                      ? "Done"
                      END FUNCTION
                      '
                      2. Load array and step through it replacing named characters with actual characters:
                      '
                      Code:
                      #COMPILE EXE
                      #DIM ALL
                      #INCLUDE ONCE "WIN32API.INC"
                      FUNCTION PBMAIN () AS LONG
                          LOCAL lCount AS LONG
                          LOCAL wstrHTML AS WSTRING
                          LOCAL arr() AS STRING
                          OPEN "NamedChars.dat" FOR BINARY AS #1
                          FILESCAN #1, RECORDS TO lCount
                          DIM arr(1 TO 2,1 TO lcount/2)
                          GET #1,,arr()
                          CLOSE #1
                         'Test data extracted from  first items in downloaded list
                          wstrHTML = "&Aacute; U+000C1----&Aacute U+000C1----&aacute; U+000E1----&aacute U+000E1----&Abreve; U+00102----&abreve; U+00103----&ac; U+0223E----&acd; U+0223F----&acE; U+0223E U+00333----&Acirc; U+000C2----&Acirc U+000C2----&acirc; U+00"
                          FOR lCount = 1 TO lcount/2
                             REPLACE arr(1,lcount) WITH CHR$$(VAL(arr(2,lcount))) IN wstrHTML
                          NEXT
                      
                          ? wstrHTML
                      END FUNCTION
                      '
                      Attached zip contains both .bas files, and the original list and array data file.

                      This could easily be turned into a DLL or SLL with the array data embedded as a resource
                      (That is left as an exercise for the reader )
                      Attached Files

                      Comment


                      • #12
                        Originally posted by Stuart McLachlan View Post
                        This could easily be turned into a DLL or SLL with the array data embedded as a resource
                        (That is left as an exercise for the reader )
                        That is a GREAT idea Stuart...SLL exercise accepted!! See code below

                        I took the overall idea of your two programs. Combined them into one and turned the whole thing into an SLL
                        It looks like some of the named entities return multiple characters. I couldn't see where that was addressed in your code. I have attempted to allow for that in my code.

                        The first time the HtmlDecode function is called it will load the static wsEntitiesTable() array...so a little extra time is needed on the first call.

                        Code:
                        #COMPILE SLL
                        #DIM ALL
                        
                        FUNCTION HtmlDecode(wsHTML AS WSTRING) EXPORT AS WSTRING
                        
                           LOCAL  lCount            AS LONG
                           LOCAL  lRecCount         AS LONG
                           LOCAL  lChar             AS LONG
                           STATIC dwEntitiesLoaded  AS DWORD
                           STATIC wsEntitiesTable() AS WSTRING
                        
                           IF ISFALSE dwEntitiesLoaded THEN
                              DIM wsEntitiesTable(1 TO 2,1 TO DATACOUNT / 2)
                              FOR lCount = 1 TO DATACOUNT - 1 STEP 2
                                 INCR lRecCount
                                 wsEntitiesTable(1,lRecCount) = READ$(lCount)
                                 FOR lChar = 1 TO PARSECOUNT(READ$(lCount + 1),$SPC)
                                    wsEntitiesTable(2,lRecCount) += CHR$$(VAL(PARSE$(READ$(lCount + 1),$SPC,lChar)))
                                 NEXT lChar
                              NEXT lCount
                              dwEntitiesLoaded = 1
                           END IF
                        
                           FOR lCount = 1 TO UBOUND(wsEntitiesTable(2))
                              REPLACE wsEntitiesTable(1,lCount) WITH wsEntitiesTable(2,lCount) IN wsHTML
                           NEXT lCOunt
                        
                           FUNCTION = wsHTML
                        
                           DATA "&Aacute;","&H000C1"
                           DATA "&Aacute","&H000C1"
                           DATA "&aacute;","&H000E1"
                           DATA "&aacute","&H000E1"
                           DATA "&Abreve;","&H00102"
                           DATA "&abreve;","&H00103"
                           DATA "&ac;","&H0223E"
                           DATA "&acd;","&H0223F"
                           DATA "&acE;","&H0223E &H00333"
                           DATA "&Acirc;","&H000C2"
                           DATA "&Acirc","&H000C2"
                           DATA "&acirc;","&H000E2"
                           DATA "&acirc","&H000E2"
                           DATA "&acute;","&H000B4"
                           DATA "&acute","&H000B4"
                           DATA "&Acy;","&H00410"
                           DATA "&acy;","&H00430"
                           DATA "&AElig;","&H000C6"
                           DATA "&AElig","&H000C6"
                           DATA "&aelig;","&H000E6"
                           DATA "&aelig","&H000E6"
                           DATA "&af;","&H02061"
                           DATA "&Afr;","&H1D504"
                           DATA "&afr;","&H1D51E"
                           DATA "&Agrave;","&H000C0"
                           DATA "&Agrave","&H000C0"
                           DATA "&agrave;","&H000E0"
                           DATA "&agrave","&H000E0"
                           DATA "&alefsym;","&H02135"
                           DATA "&aleph;","&H02135"
                           DATA "&Alpha;","&H00391"
                           DATA "&alpha;","&H003B1"
                           DATA "&Amacr;","&H00100"
                           DATA "&amacr;","&H00101"
                           DATA "&amalg;","&H02A3F"
                           DATA "&AMP;","&H00026"
                           DATA "&AMP","&H00026"
                           DATA "&amp;","&H00026"
                           DATA "&amp","&H00026"
                           DATA "&And;","&H02A53"
                           DATA "&and;","&H02227"
                           DATA "&andand;","&H02A55"
                           DATA "&andd;","&H02A5C"
                           DATA "&andslope;","&H02A58"
                           DATA "&andv;","&H02A5A"
                           DATA "&ang;","&H02220"
                           DATA "&ange;","&H029A4"
                           DATA "&angle;","&H02220"
                           DATA "&angmsd;","&H02221"
                           DATA "&angmsdaa;","&H029A8"
                           DATA "&angmsdab;","&H029A9"
                           DATA "&angmsdac;","&H029AA"
                           DATA "&angmsdad;","&H029AB"
                           DATA "&angmsdae;","&H029AC"
                           DATA "&angmsdaf;","&H029AD"
                           DATA "&angmsdag;","&H029AE"
                           DATA "&angmsdah;","&H029AF"
                           DATA "&angrt;","&H0221F"
                           DATA "&angrtvb;","&H022BE"
                           DATA "&angrtvbd;","&H0299D"
                           DATA "&angsph;","&H02222"
                           DATA "&angst;","&H000C5"
                           DATA "&angzarr;","&H0237C"
                           DATA "&Aogon;","&H00104"
                           DATA "&aogon;","&H00105"
                           DATA "&Aopf;","&H1D538"
                           DATA "&aopf;","&H1D552"
                           DATA "&ap;","&H02248"
                           DATA "&apacir;","&H02A6F"
                           DATA "&apE;","&H02A70"
                           DATA "&ape;","&H0224A"
                           DATA "&apid;","&H0224B"
                           DATA "&apos;","&H00027"
                           DATA "&ApplyFunction;","&H02061"
                           DATA "&approx;","&H02248"
                           DATA "&approxeq;","&H0224A"
                           DATA "&Aring;","&H000C5"
                           DATA "&Aring","&H000C5"
                           DATA "&aring;","&H000E5"
                           DATA "&aring","&H000E5"
                           DATA "&Ascr;","&H1D49C"
                           DATA "&ascr;","&H1D4B6"
                           DATA "&Assign;","&H02254"
                           DATA "&ast;","&H0002A"
                           DATA "&asymp;","&H02248"
                           DATA "&asympeq;","&H0224D"
                           DATA "&Atilde;","&H000C3"
                           DATA "&Atilde","&H000C3"
                           DATA "&atilde;","&H000E3"
                           DATA "&atilde","&H000E3"
                           DATA "&Auml;","&H000C4"
                           DATA "&Auml","&H000C4"
                           DATA "&auml;","&H000E4"
                           DATA "&auml","&H000E4"
                           DATA "&awconint;","&H02233"
                           DATA "&awint;","&H02A11"
                           DATA "&backcong;","&H0224C"
                           DATA "&backepsilon;","&H003F6"
                           DATA "&backprime;","&H02035"
                           DATA "&backsim;","&H0223D"
                           DATA "&backsimeq;","&H022CD"
                           DATA "&Backslash;","&H02216"
                           DATA "&Barv;","&H02AE7"
                           DATA "&barvee;","&H022BD"
                           DATA "&Barwed;","&H02306"
                           DATA "&barwed;","&H02305"
                           DATA "&barwedge;","&H02305"
                           DATA "&bbrk;","&H023B5"
                           DATA "&bbrktbrk;","&H023B6"
                           DATA "&bcong;","&H0224C"
                           DATA "&Bcy;","&H00411"
                           DATA "&bcy;","&H00431"
                           DATA "&bdquo;","&H0201E"
                           DATA "&becaus;","&H02235"
                           DATA "&Because;","&H02235"
                           DATA "&because;","&H02235"
                           DATA "&bemptyv;","&H029B0"
                           DATA "&bepsi;","&H003F6"
                           DATA "&bernou;","&H0212C"
                           DATA "&Bernoullis;","&H0212C"
                           DATA "&Beta;","&H00392"
                           DATA "&beta;","&H003B2"
                           DATA "&beth;","&H02136"
                           DATA "&between;","&H0226C"
                           DATA "&Bfr;","&H1D505"
                           DATA "&bfr;","&H1D51F"
                           DATA "&bigcap;","&H022C2"
                           DATA "&bigcirc;","&H025EF"
                           DATA "&bigcup;","&H022C3"
                           DATA "&bigodot;","&H02A00"
                           DATA "&bigoplus;","&H02A01"
                           DATA "&bigotimes;","&H02A02"
                           DATA "&bigsqcup;","&H02A06"
                           DATA "&bigstar;","&H02605"
                           DATA "&bigtriangledown;","&H025BD"
                           DATA "&bigtriangleup;","&H025B3"
                           DATA "&biguplus;","&H02A04"
                           DATA "&bigvee;","&H022C1"
                           DATA "&bigwedge;","&H022C0"
                           DATA "&bkarow;","&H0290D"
                           DATA "&blacklozenge;","&H029EB"
                           DATA "&blacksquare;","&H025AA"
                           DATA "&blacktriangle;","&H025B4"
                           DATA "&blacktriangledown;","&H025BE"
                           DATA "&blacktriangleleft;","&H025C2"
                           DATA "&blacktriangleright;","&H025B8"
                           DATA "&blank;","&H02423"
                           DATA "&blk12;","&H02592"
                           DATA "&blk14;","&H02591"
                           DATA "&blk34;","&H02593"
                           DATA "&block;","&H02588"
                           DATA "&bne;","&H0003D &H020E5"
                           DATA "&bnequiv;","&H02261 &H020E5"
                           DATA "&bNot;","&H02AED"
                           DATA "&bnot;","&H02310"
                           DATA "&Bopf;","&H1D539"
                           DATA "&bopf;","&H1D553"
                           DATA "&bot;","&H022A5"
                           DATA "&bottom;","&H022A5"
                           DATA "&bowtie;","&H022C8"
                           DATA "&boxbox;","&H029C9"
                           DATA "&boxDL;","&H02557"
                           DATA "&boxDl;","&H02556"
                           DATA "&boxdL;","&H02555"
                           DATA "&boxdl;","&H02510"
                           DATA "&boxDR;","&H02554"
                           DATA "&boxDr;","&H02553"
                           DATA "&boxdR;","&H02552"
                           DATA "&boxdr;","&H0250C"
                           DATA "&boxH;","&H02550"
                           DATA "&boxh;","&H02500"
                           DATA "&boxHD;","&H02566"
                           DATA "&boxHd;","&H02564"
                           DATA "&boxhD;","&H02565"
                           DATA "&boxhd;","&H0252C"
                           DATA "&boxHU;","&H02569"
                           DATA "&boxHu;","&H02567"
                           DATA "&boxhU;","&H02568"
                           DATA "&boxhu;","&H02534"
                           DATA "&boxminus;","&H0229F"
                           DATA "&boxplus;","&H0229E"
                           DATA "&boxtimes;","&H022A0"
                           DATA "&boxUL;","&H0255D"
                           DATA "&boxUl;","&H0255C"
                           DATA "&boxuL;","&H0255B"
                           DATA "&boxul;","&H02518"
                           DATA "&boxUR;","&H0255A"
                           DATA "&boxUr;","&H02559"
                           DATA "&boxuR;","&H02558"
                           DATA "&boxur;","&H02514"
                           DATA "&boxV;","&H02551"
                           DATA "&boxv;","&H02502"
                           DATA "&boxVH;","&H0256C"
                           DATA "&boxVh;","&H0256B"
                           DATA "&boxvH;","&H0256A"
                           DATA "&boxvh;","&H0253C"
                           DATA "&boxVL;","&H02563"
                           DATA "&boxVl;","&H02562"
                           DATA "&boxvL;","&H02561"
                           DATA "&boxvl;","&H02524"
                           DATA "&boxVR;","&H02560"
                           DATA "&boxVr;","&H0255F"
                           DATA "&boxvR;","&H0255E"
                           DATA "&boxvr;","&H0251C"
                           DATA "&bprime;","&H02035"
                           DATA "&Breve;","&H002D8"
                           DATA "&breve;","&H002D8"
                           DATA "&brvbar;","&H000A6"
                           DATA "&brvbar","&H000A6"
                           DATA "&Bscr;","&H0212C"
                           DATA "&bscr;","&H1D4B7"
                           DATA "&bsemi;","&H0204F"
                           DATA "&bsim;","&H0223D"
                           DATA "&bsime;","&H022CD"
                           DATA "&bsol;","&H0005C"
                           DATA "&bsolb;","&H029C5"
                           DATA "&bsolhsub;","&H027C8"
                           DATA "&bull;","&H02022"
                           DATA "&bullet;","&H02022"
                           DATA "&bump;","&H0224E"
                           DATA "&bumpE;","&H02AAE"
                           DATA "&bumpe;","&H0224F"
                           DATA "&Bumpeq;","&H0224E"
                           DATA "&bumpeq;","&H0224F"
                           DATA "&Cacute;","&H00106"
                           DATA "&cacute;","&H00107"
                           DATA "&Cap;","&H022D2"
                           DATA "&cap;","&H02229"
                           DATA "&capand;","&H02A44"
                           DATA "&capbrcup;","&H02A49"
                           DATA "&capcap;","&H02A4B"
                           DATA "&capcup;","&H02A47"
                           DATA "&capdot;","&H02A40"
                           DATA "&CapitalDifferentialD;","&H02145"
                           DATA "&caps;","&H02229 &H0FE00"
                           DATA "&caret;","&H02041"
                           DATA "&caron;","&H002C7"
                           DATA "&Cayleys;","&H0212D"
                           DATA "&ccaps;","&H02A4D"
                           DATA "&Ccaron;","&H0010C"
                           DATA "&ccaron;","&H0010D"
                           DATA "&Ccedil;","&H000C7"
                           DATA "&Ccedil","&H000C7"
                           DATA "&ccedil;","&H000E7"
                           DATA "&ccedil","&H000E7"
                           DATA "&Ccirc;","&H00108"
                           DATA "&ccirc;","&H00109"
                           DATA "&Cconint;","&H02230"
                           DATA "&ccups;","&H02A4C"
                           DATA "&ccupssm;","&H02A50"
                           DATA "&Cdot;","&H0010A"
                           DATA "&cdot;","&H0010B"
                           DATA "&cedil;","&H000B8"
                           DATA "&cedil","&H000B8"
                           DATA "&Cedilla;","&H000B8"
                           DATA "&cemptyv;","&H029B2"
                           DATA "&cent;","&H000A2"
                           DATA "&cent","&H000A2"
                           DATA "&CenterDot;","&H000B7"
                           DATA "&centerdot;","&H000B7"
                           DATA "&Cfr;","&H0212D"
                           DATA "&cfr;","&H1D520"
                           DATA "&CHcy;","&H00427"
                           DATA "&chcy;","&H00447"
                           DATA "&check;","&H02713"
                           DATA "&checkmark;","&H02713"
                           DATA "&Chi;","&H003A7"
                           DATA "&chi;","&H003C7"
                           DATA "&cir;","&H025CB"
                           DATA "&circ;","&H002C6"
                           DATA "&circeq;","&H02257"
                           DATA "&circlearrowleft;","&H021BA"
                           DATA "&circlearrowright;","&H021BB"
                           DATA "&circledast;","&H0229B"
                           DATA "&circledcirc;","&H0229A"
                           DATA "&circleddash;","&H0229D"
                           DATA "&CircleDot;","&H02299"
                           DATA "&circledR;","&H000AE"
                           DATA "&circledS;","&H024C8"
                           DATA "&CircleMinus;","&H02296"
                           DATA "&CirclePlus;","&H02295"
                           DATA "&CircleTimes;","&H02297"
                           DATA "&cirE;","&H029C3"
                           DATA "&cire;","&H02257"
                           DATA "&cirfnint;","&H02A10"
                           DATA "&cirmid;","&H02AEF"
                           DATA "&cirscir;","&H029C2"
                           DATA "&ClockwiseContourIntegral;","&H02232"
                           DATA "&CloseCurlyDoubleQuote;","&H0201D"
                           DATA "&CloseCurlyQuote;","&H02019"
                           DATA "&clubs;","&H02663"
                           DATA "&clubsuit;","&H02663"
                           DATA "&Colon;","&H02237"
                           DATA "&colon;","&H0003A"
                           DATA "&Colone;","&H02A74"
                           DATA "&colone;","&H02254"
                           DATA "&coloneq;","&H02254"
                           DATA "&comma;","&H0002C"
                           DATA "&commat;","&H00040"
                           DATA "&comp;","&H02201"
                           DATA "&compfn;","&H02218"
                           DATA "&complement;","&H02201"
                           DATA "&complexes;","&H02102"
                           DATA "&cong;","&H02245"
                           DATA "&congdot;","&H02A6D"
                           DATA "&Congruent;","&H02261"
                           DATA "&Conint;","&H0222F"
                           DATA "&conint;","&H0222E"
                           DATA "&ContourIntegral;","&H0222E"
                           DATA "&Copf;","&H02102"
                           DATA "&copf;","&H1D554"
                           DATA "&coprod;","&H02210"
                           DATA "&Coproduct;","&H02210"
                           DATA "&COPY;","&H000A9"
                           DATA "&COPY","&H000A9"
                           DATA "&copy;","&H000A9"
                           DATA "&copy","&H000A9"
                           DATA "&copysr;","&H02117"
                           DATA "&CounterClockwiseContourIntegral;","&H02233"
                           DATA "&crarr;","&H021B5"
                           DATA "&Cross;","&H02A2F"
                           DATA "&cross;","&H02717"
                           DATA "&Cscr;","&H1D49E"
                           DATA "&cscr;","&H1D4B8"
                           DATA "&csub;","&H02ACF"
                           DATA "&csube;","&H02AD1"
                           DATA "&csup;","&H02AD0"
                           DATA "&csupe;","&H02AD2"
                           DATA "&ctdot;","&H022EF"
                           DATA "&cudarrl;","&H02938"
                           DATA "&cudarrr;","&H02935"
                           DATA "&cuepr;","&H022DE"
                           DATA "&cuesc;","&H022DF"
                           DATA "&cularr;","&H021B6"
                           DATA "&cularrp;","&H0293D"
                           DATA "&Cup;","&H022D3"
                           DATA "&cup;","&H0222A"
                           DATA "&cupbrcap;","&H02A48"
                           DATA "&CupCap;","&H0224D"
                           DATA "&cupcap;","&H02A46"
                           DATA "&cupcup;","&H02A4A"
                           DATA "&cupdot;","&H0228D"
                           DATA "&cupor;","&H02A45"
                           DATA "&cups;","&H0222A &H0FE00"
                           DATA "&curarr;","&H021B7"
                           DATA "&curarrm;","&H0293C"
                           DATA "&curlyeqprec;","&H022DE"
                           DATA "&curlyeqsucc;","&H022DF"
                           DATA "&curlyvee;","&H022CE"
                           DATA "&curlywedge;","&H022CF"
                           DATA "&curren;","&H000A4"
                           DATA "&curren","&H000A4"
                           DATA "&curvearrowleft;","&H021B6"
                           DATA "&curvearrowright;","&H021B7"
                           DATA "&cuvee;","&H022CE"
                           DATA "&cuwed;","&H022CF"
                           DATA "&cwconint;","&H02232"
                           DATA "&cwint;","&H02231"
                           DATA "&cylcty;","&H0232D"
                           DATA "&Dagger;","&H02021"
                           DATA "&dagger;","&H02020"
                           DATA "&daleth;","&H02138"
                           DATA "&Darr;","&H021A1"
                           DATA "&dArr;","&H021D3"
                           DATA "&darr;","&H02193"
                           DATA "&dash;","&H02010"
                           DATA "&Dashv;","&H02AE4"
                           DATA "&dashv;","&H022A3"
                           DATA "&dbkarow;","&H0290F"
                           DATA "&dblac;","&H002DD"
                           DATA "&Dcaron;","&H0010E"
                           DATA "&dcaron;","&H0010F"
                           DATA "&Dcy;","&H00414"
                           DATA "&dcy;","&H00434"
                           DATA "&DD;","&H02145"
                           DATA "&dd;","&H02146"
                           DATA "&ddagger;","&H02021"
                           DATA "&ddarr;","&H021CA"
                           DATA "&DDotrahd;","&H02911"
                           DATA "&ddotseq;","&H02A77"
                           DATA "&deg;","&H000B0"
                           DATA "&deg","&H000B0"
                           DATA "&Del;","&H02207"
                           DATA "&Delta;","&H00394"
                           DATA "&delta;","&H003B4"
                           DATA "&demptyv;","&H029B1"
                           DATA "&dfisht;","&H0297F"
                           DATA "&Dfr;","&H1D507"
                           DATA "&dfr;","&H1D521"
                           DATA "&dHar;","&H02965"
                           DATA "&dharl;","&H021C3"
                           DATA "&dharr;","&H021C2"
                           DATA "&DiacriticalAcute;","&H000B4"
                           DATA "&DiacriticalDot;","&H002D9"
                           DATA "&DiacriticalDoubleAcute;","&H002DD"
                           DATA "&DiacriticalGrave;","&H00060"
                           DATA "&DiacriticalTilde;","&H002DC"
                           DATA "&diam;","&H022C4"
                           DATA "&Diamond;","&H022C4"
                           DATA "&diamond;","&H022C4"
                           DATA "&diamondsuit;","&H02666"
                           DATA "&diams;","&H02666"
                           DATA "&die;","&H000A8"
                           DATA "&DifferentialD;","&H02146"
                           DATA "&digamma;","&H003DD"
                           DATA "&disin;","&H022F2"
                           DATA "&div;","&H000F7"
                           DATA "&divide;","&H000F7"
                           DATA "&divide","&H000F7"
                           DATA "&divideontimes;","&H022C7"
                           DATA "&divonx;","&H022C7"
                           DATA "&DJcy;","&H00402"
                           DATA "&djcy;","&H00452"
                           DATA "&dlcorn;","&H0231E"
                           DATA "&dlcrop;","&H0230D"
                           DATA "&dollar;","&H00024"
                           DATA "&Dopf;","&H1D53B"
                           DATA "&dopf;","&H1D555"
                           DATA "&Dot;","&H000A8"
                           DATA "&dot;","&H002D9"
                           DATA "&DotDot;","&H020DC"
                           DATA "&doteq;","&H02250"
                           DATA "&doteqdot;","&H02251"
                           DATA "&DotEqual;","&H02250"
                           DATA "&dotminus;","&H02238"
                           DATA "&dotplus;","&H02214"
                           DATA "&dotsquare;","&H022A1"
                           DATA "&doublebarwedge;","&H02306"
                           DATA "&DoubleContourIntegral;","&H0222F"
                           DATA "&DoubleDot;","&H000A8"
                           DATA "&DoubleDownArrow;","&H021D3"
                           DATA "&DoubleLeftArrow;","&H021D0"
                           DATA "&DoubleLeftRightArrow;","&H021D4"
                           DATA "&DoubleLeftTee;","&H02AE4"
                           DATA "&DoubleLongLeftArrow;","&H027F8"
                           DATA "&DoubleLongLeftRightArrow;","&H027FA"
                           DATA "&DoubleLongRightArrow;","&H027F9"
                           DATA "&DoubleRightArrow;","&H021D2"
                           DATA "&DoubleRightTee;","&H022A8"
                           DATA "&DoubleUpArrow;","&H021D1"
                           DATA "&DoubleUpDownArrow;","&H021D5"
                           DATA "&DoubleVerticalBar;","&H02225"
                           DATA "&DownArrow;","&H02193"
                           DATA "&Downarrow;","&H021D3"
                           DATA "&downarrow;","&H02193"
                           DATA "&DownArrowBar;","&H02913"
                           DATA "&DownArrowUpArrow;","&H021F5"
                           DATA "&DownBreve;","&H00311"
                           DATA "&downdownarrows;","&H021CA"
                           DATA "&downharpoonleft;","&H021C3"
                           DATA "&downharpoonright;","&H021C2"
                           DATA "&DownLeftRightVector;","&H02950"
                           DATA "&DownLeftTeeVector;","&H0295E"
                           DATA "&DownLeftVector;","&H021BD"
                           DATA "&DownLeftVectorBar;","&H02956"
                           DATA "&DownRightTeeVector;","&H0295F"
                           DATA "&DownRightVector;","&H021C1"
                           DATA "&DownRightVectorBar;","&H02957"
                           DATA "&DownTee;","&H022A4"
                           DATA "&DownTeeArrow;","&H021A7"
                           DATA "&drbkarow;","&H02910"
                           DATA "&drcorn;","&H0231F"
                           DATA "&drcrop;","&H0230C"
                           DATA "&Dscr;","&H1D49F"
                           DATA "&dscr;","&H1D4B9"
                           DATA "&DScy;","&H00405"
                           DATA "&dscy;","&H00455"
                           DATA "&dsol;","&H029F6"
                           DATA "&Dstrok;","&H00110"
                           DATA "&dstrok;","&H00111"
                           DATA "&dtdot;","&H022F1"
                           DATA "&dtri;","&H025BF"
                           DATA "&dtrif;","&H025BE"
                           DATA "&duarr;","&H021F5"
                           DATA "&duhar;","&H0296F"
                           DATA "&dwangle;","&H029A6"
                           DATA "&DZcy;","&H0040F"
                           DATA "&dzcy;","&H0045F"
                           DATA "&dzigrarr;","&H027FF"
                           DATA "&Eacute;","&H000C9"
                           DATA "&Eacute","&H000C9"
                           DATA "&eacute;","&H000E9"
                           DATA "&eacute","&H000E9"
                           DATA "&easter;","&H02A6E"
                           DATA "&Ecaron;","&H0011A"
                           DATA "&ecaron;","&H0011B"
                           DATA "&ecir;","&H02256"
                           DATA "&Ecirc;","&H000CA"
                           DATA "&Ecirc","&H000CA"
                           DATA "&ecirc;","&H000EA"
                           DATA "&ecirc","&H000EA"
                           DATA "&ecolon;","&H02255"
                           DATA "&Ecy;","&H0042D"
                           DATA "&ecy;","&H0044D"
                           DATA "&eDDot;","&H02A77"
                           DATA "&Edot;","&H00116"
                           DATA "&eDot;","&H02251"
                           DATA "&edot;","&H00117"
                           DATA "&ee;","&H02147"
                           DATA "&efDot;","&H02252"
                           DATA "&Efr;","&H1D508"
                           DATA "&efr;","&H1D522"
                           DATA "&eg;","&H02A9A"
                           DATA "&Egrave;","&H000C8"
                           DATA "&Egrave","&H000C8"
                           DATA "&egrave;","&H000E8"
                           DATA "&egrave","&H000E8"
                           DATA "&egs;","&H02A96"
                           DATA "&egsdot;","&H02A98"
                           DATA "&el;","&H02A99"
                           DATA "&Element;","&H02208"
                           DATA "&elinters;","&H023E7"
                           DATA "&ell;","&H02113"
                           DATA "&els;","&H02A95"
                           DATA "&elsdot;","&H02A97"
                           DATA "&Emacr;","&H00112"
                           DATA "&emacr;","&H00113"
                           DATA "&empty;","&H02205"
                           DATA "&emptyset;","&H02205"
                           DATA "&EmptySmallSquare;","&H025FB"
                           DATA "&emptyv;","&H02205"
                           DATA "&EmptyVerySmallSquare;","&H025AB"
                           DATA "&emsp;","&H02003"
                           DATA "&emsp13;","&H02004"
                           DATA "&emsp14;","&H02005"
                           DATA "&ENG;","&H0014A"
                           DATA "&eng;","&H0014B"
                           DATA "&ensp;","&H02002"
                           DATA "&Eogon;","&H00118"
                           DATA "&eogon;","&H00119"
                           DATA "&Eopf;","&H1D53C"
                           DATA "&eopf;","&H1D556"
                           DATA "&epar;","&H022D5"
                           DATA "&eparsl;","&H029E3"
                           DATA "&eplus;","&H02A71"
                           DATA "&epsi;","&H003B5"
                           DATA "&Epsilon;","&H00395"
                           DATA "&epsilon;","&H003B5"
                           DATA "&epsiv;","&H003F5"
                           DATA "&eqcirc;","&H02256"
                           DATA "&eqcolon;","&H02255"
                           DATA "&eqsim;","&H02242"
                           DATA "&eqslantgtr;","&H02A96"
                           DATA "&eqslantless;","&H02A95"
                           DATA "&Equal;","&H02A75"
                           DATA "&equals;","&H0003D"
                           DATA "&EqualTilde;","&H02242"
                           DATA "&equest;","&H0225F"
                           DATA "&Equilibrium;","&H021CC"
                           DATA "&equiv;","&H02261"
                           DATA "&equivDD;","&H02A78"
                           DATA "&eqvparsl;","&H029E5"
                           DATA "&erarr;","&H02971"
                           DATA "&erDot;","&H02253"
                           DATA "&Escr;","&H02130"
                           DATA "&escr;","&H0212F"
                           DATA "&esdot;","&H02250"
                           DATA "&Esim;","&H02A73"
                           DATA "&esim;","&H02242"
                           DATA "&Eta;","&H00397"
                           DATA "&eta;","&H003B7"
                           DATA "&ETH;","&H000D0"
                           DATA "&ETH","&H000D0"
                           DATA "&eth;","&H000F0"
                           DATA "&eth","&H000F0"
                           DATA "&Euml;","&H000CB"
                           DATA "&Euml","&H000CB"
                           DATA "&euml;","&H000EB"
                           DATA "&euml","&H000EB"
                           DATA "&euro;","&H020AC"
                           DATA "&excl;","&H00021"
                           DATA "&exist;","&H02203"
                           DATA "&Exists;","&H02203"
                           DATA "&expectation;","&H02130"
                           DATA "&ExponentialE;","&H02147"
                           DATA "&exponentiale;","&H02147"
                           DATA "&fallingdotseq;","&H02252"
                           DATA "&Fcy;","&H00424"
                           DATA "&fcy;","&H00444"
                           DATA "&female;","&H02640"
                           DATA "&ffilig;","&H0FB03"
                           DATA "&fflig;","&H0FB00"
                           DATA "&ffllig;","&H0FB04"
                           DATA "&Ffr;","&H1D509"
                           DATA "&ffr;","&H1D523"
                           DATA "&filig;","&H0FB01"
                           DATA "&FilledSmallSquare;","&H025FC"
                           DATA "&FilledVerySmallSquare;","&H025AA"
                           DATA "&fjlig;","&H00066 &H0006A"
                           DATA "&flat;","&H0266D"
                           DATA "&fllig;","&H0FB02"
                           DATA "&fltns;","&H025B1"
                           DATA "&fnof;","&H00192"
                           DATA "&Fopf;","&H1D53D"
                           DATA "&fopf;","&H1D557"
                           DATA "&ForAll;","&H02200"
                           DATA "&forall;","&H02200"
                           DATA "&fork;","&H022D4"
                           DATA "&forkv;","&H02AD9"
                           DATA "&Fouriertrf;","&H02131"
                           DATA "&fpartint;","&H02A0D"
                           DATA "&frac12;","&H000BD"
                           DATA "&frac12","&H000BD"
                           DATA "&frac13;","&H02153"
                           DATA "&frac14;","&H000BC"
                           DATA "&frac14","&H000BC"
                           DATA "&frac15;","&H02155"
                           DATA "&frac16;","&H02159"
                           DATA "&frac18;","&H0215B"
                           DATA "&frac23;","&H02154"
                           DATA "&frac25;","&H02156"
                           DATA "&frac34;","&H000BE"
                           DATA "&frac34","&H000BE"
                           DATA "&frac35;","&H02157"
                           DATA "&frac38;","&H0215C"
                           DATA "&frac45;","&H02158"
                           DATA "&frac56;","&H0215A"
                           DATA "&frac58;","&H0215D"
                           DATA "&frac78;","&H0215E"
                           DATA "&frasl;","&H02044"
                           DATA "&frown;","&H02322"
                           DATA "&Fscr;","&H02131"
                           DATA "&fscr;","&H1D4BB"
                           DATA "&gacute;","&H001F5"
                           DATA "&Gamma;","&H00393"
                           DATA "&gamma;","&H003B3"
                           DATA "&Gammad;","&H003DC"
                           DATA "&gammad;","&H003DD"
                           DATA "&gap;","&H02A86"
                           DATA "&Gbreve;","&H0011E"
                           DATA "&gbreve;","&H0011F"
                           DATA "&Gcedil;","&H00122"
                           DATA "&Gcirc;","&H0011C"
                           DATA "&gcirc;","&H0011D"
                           DATA "&Gcy;","&H00413"
                           DATA "&gcy;","&H00433"
                           DATA "&Gdot;","&H00120"
                           DATA "&gdot;","&H00121"
                           DATA "&gE;","&H02267"
                           DATA "&ge;","&H02265"
                           DATA "&gEl;","&H02A8C"
                           DATA "&gel;","&H022DB"
                           DATA "&geq;","&H02265"
                           DATA "&geqq;","&H02267"
                           DATA "&geqslant;","&H02A7E"
                           DATA "&ges;","&H02A7E"
                           DATA "&gescc;","&H02AA9"
                           DATA "&gesdot;","&H02A80"
                           DATA "&gesdoto;","&H02A82"
                           DATA "&gesdotol;","&H02A84"
                           DATA "&gesl;","&H022DB &H0FE00"
                           DATA "&gesles;","&H02A94"
                           DATA "&Gfr;","&H1D50A"
                           DATA "&gfr;","&H1D524"
                           DATA "&Gg;","&H022D9"
                           DATA "&gg;","&H0226B"
                           DATA "&ggg;","&H022D9"
                           DATA "&gimel;","&H02137"
                           DATA "&GJcy;","&H00403"
                           DATA "&gjcy;","&H00453"
                           DATA "&gl;","&H02277"
                           DATA "&gla;","&H02AA5"
                           DATA "&glE;","&H02A92"
                           DATA "&glj;","&H02AA4"
                           DATA "&gnap;","&H02A8A"
                           DATA "&gnapprox;","&H02A8A"
                           DATA "&gnE;","&H02269"
                           DATA "&gne;","&H02A88"
                           DATA "&gneq;","&H02A88"
                           DATA "&gneqq;","&H02269"
                           DATA "&gnsim;","&H022E7"
                           DATA "&Gopf;","&H1D53E"
                           DATA "&gopf;","&H1D558"
                           DATA "&grave;","&H00060"
                           DATA "&GreaterEqual;","&H02265"
                           DATA "&GreaterEqualLess;","&H022DB"
                           DATA "&GreaterFullEqual;","&H02267"
                           DATA "&GreaterGreater;","&H02AA2"
                           DATA "&GreaterLess;","&H02277"
                           DATA "&GreaterSlantEqual;","&H02A7E"
                           DATA "&GreaterTilde;","&H02273"
                           DATA "&Gscr;","&H1D4A2"
                           DATA "&gscr;","&H0210A"
                           DATA "&gsim;","&H02273"
                           DATA "&gsime;","&H02A8E"
                           DATA "&gsiml;","&H02A90"
                           DATA "&GT;","&H0003E"
                           DATA "&GT","&H0003E"
                           DATA "&Gt;","&H0226B"
                           DATA "&gt;","&H0003E"
                           DATA "&gt","&H0003E"
                           DATA "&gtcc;","&H02AA7"
                           DATA "&gtcir;","&H02A7A"
                           DATA "&gtdot;","&H022D7"
                           DATA "&gtlPar;","&H02995"
                           DATA "&gtquest;","&H02A7C"
                           DATA "&gtrapprox;","&H02A86"
                           DATA "&gtrarr;","&H02978"
                           DATA "&gtrdot;","&H022D7"
                           DATA "&gtreqless;","&H022DB"
                           DATA "&gtreqqless;","&H02A8C"
                           DATA "&gtrless;","&H02277"
                           DATA "&gtrsim;","&H02273"
                           DATA "&gvertneqq;","&H02269 &H0FE00"
                           DATA "&gvnE;","&H02269 &H0FE00"
                           DATA "&Hacek;","&H002C7"
                           DATA "&hairsp;","&H0200A"
                           DATA "&half;","&H000BD"
                           DATA "&hamilt;","&H0210B"
                           DATA "&HARDcy;","&H0042A"
                           DATA "&hardcy;","&H0044A"
                           DATA "&hArr;","&H021D4"
                           DATA "&harr;","&H02194"
                           DATA "&harrcir;","&H02948"
                           DATA "&harrw;","&H021AD"
                           DATA "&Hat;","&H0005E"
                           DATA "&hbar;","&H0210F"
                           DATA "&Hcirc;","&H00124"
                           DATA "&hcirc;","&H00125"
                           DATA "&hearts;","&H02665"
                           DATA "&heartsuit;","&H02665"
                           DATA "&hellip;","&H02026"
                           DATA "&hercon;","&H022B9"
                           DATA "&Hfr;","&H0210C"
                           DATA "&hfr;","&H1D525"
                           DATA "&HilbertSpace;","&H0210B"
                           DATA "&hksearow;","&H02925"
                           DATA "&hkswarow;","&H02926"
                           DATA "&hoarr;","&H021FF"
                           DATA "&homtht;","&H0223B"
                           DATA "&hookleftarrow;","&H021A9"
                           DATA "&hookrightarrow;","&H021AA"
                           DATA "&Hopf;","&H0210D"
                           DATA "&hopf;","&H1D559"
                           DATA "&horbar;","&H02015"
                           DATA "&HorizontalLine;","&H02500"
                           DATA "&Hscr;","&H0210B"
                           DATA "&hscr;","&H1D4BD"
                           DATA "&hslash;","&H0210F"
                           DATA "&Hstrok;","&H00126"
                           DATA "&hstrok;","&H00127"
                           DATA "&HumpDownHump;","&H0224E"
                           DATA "&HumpEqual;","&H0224F"
                           DATA "&hybull;","&H02043"
                           DATA "&hyphen;","&H02010"
                           DATA "&Iacute;","&H000CD"
                           DATA "&Iacute","&H000CD"
                           DATA "&iacute;","&H000ED"
                           DATA "&iacute","&H000ED"
                           DATA "&ic;","&H02063"
                           DATA "&Icirc;","&H000CE"
                           DATA "&Icirc","&H000CE"
                           DATA "&icirc;","&H000EE"
                           DATA "&icirc","&H000EE"
                           DATA "&Icy;","&H00418"
                           DATA "&icy;","&H00438"
                           DATA "&Idot;","&H00130"
                           DATA "&IEcy;","&H00415"
                           DATA "&iecy;","&H00435"
                           DATA "&iexcl;","&H000A1"
                           DATA "&iexcl","&H000A1"
                           DATA "&iff;","&H021D4"
                           DATA "&Ifr;","&H02111"
                           DATA "&ifr;","&H1D526"
                           DATA "&Igrave;","&H000CC"
                           DATA "&Igrave","&H000CC"
                           DATA "&igrave;","&H000EC"
                           DATA "&igrave","&H000EC"
                           DATA "&ii;","&H02148"
                           DATA "&iiiint;","&H02A0C"
                           DATA "&iiint;","&H0222D"
                           DATA "&iinfin;","&H029DC"
                           DATA "&iiota;","&H02129"
                           DATA "&IJlig;","&H00132"
                           DATA "&ijlig;","&H00133"
                           DATA "&Im;","&H02111"
                           DATA "&Imacr;","&H0012A"
                           DATA "&imacr;","&H0012B"
                           DATA "&image;","&H02111"
                           DATA "&ImaginaryI;","&H02148"
                           DATA "&imagline;","&H02110"
                           DATA "&imagpart;","&H02111"
                           DATA "&imath;","&H00131"
                           DATA "&imof;","&H022B7"
                           DATA "&imped;","&H001B5"
                           DATA "&Implies;","&H021D2"
                           DATA "&in;","&H02208"
                           DATA "&incare;","&H02105"
                           DATA "&infin;","&H0221E"
                           DATA "&infintie;","&H029DD"
                           DATA "&inodot;","&H00131"
                           DATA "&Int;","&H0222C"
                           DATA "&int;","&H0222B"
                           DATA "&intcal;","&H022BA"
                           DATA "&integers;","&H02124"
                           DATA "&Integral;","&H0222B"
                           DATA "&intercal;","&H022BA"
                           DATA "&Intersection;","&H022C2"
                           DATA "&intlarhk;","&H02A17"
                           DATA "&intprod;","&H02A3C"
                           DATA "&InvisibleComma;","&H02063"
                           DATA "&InvisibleTimes;","&H02062"
                           DATA "&IOcy;","&H00401"
                           DATA "&iocy;","&H00451"
                           DATA "&Iogon;","&H0012E"
                           DATA "&iogon;","&H0012F"
                           DATA "&Iopf;","&H1D540"
                           DATA "&iopf;","&H1D55A"
                           DATA "&Iota;","&H00399"
                           DATA "&iota;","&H003B9"
                           DATA "&iprod;","&H02A3C"
                           DATA "&iquest;","&H000BF"
                           DATA "&iquest","&H000BF"
                           DATA "&Iscr;","&H02110"
                           DATA "&iscr;","&H1D4BE"
                           DATA "&isin;","&H02208"
                           DATA "&isindot;","&H022F5"
                           DATA "&isinE;","&H022F9"
                           DATA "&isins;","&H022F4"
                           DATA "&isinsv;","&H022F3"
                           DATA "&isinv;","&H02208"
                           DATA "&it;","&H02062"
                           DATA "&Itilde;","&H00128"
                           DATA "&itilde;","&H00129"
                           DATA "&Iukcy;","&H00406"
                           DATA "&iukcy;","&H00456"
                           DATA "&Iuml;","&H000CF"
                           DATA "&Iuml","&H000CF"
                           DATA "&iuml;","&H000EF"
                           DATA "&iuml","&H000EF"
                           DATA "&Jcirc;","&H00134"
                           DATA "&jcirc;","&H00135"
                           DATA "&Jcy;","&H00419"
                           DATA "&jcy;","&H00439"
                           DATA "&Jfr;","&H1D50D"
                           DATA "&jfr;","&H1D527"
                           DATA "&jmath;","&H00237"
                           DATA "&Jopf;","&H1D541"
                           DATA "&jopf;","&H1D55B"
                           DATA "&Jscr;","&H1D4A5"
                           DATA "&jscr;","&H1D4BF"
                           DATA "&Jsercy;","&H00408"
                           DATA "&jsercy;","&H00458"
                           DATA "&Jukcy;","&H00404"
                           DATA "&jukcy;","&H00454"
                           DATA "&Kappa;","&H0039A"
                           DATA "&kappa;","&H003BA"
                           DATA "&kappav;","&H003F0"
                           DATA "&Kcedil;","&H00136"
                           DATA "&kcedil;","&H00137"
                           DATA "&Kcy;","&H0041A"
                           DATA "&kcy;","&H0043A"
                           DATA "&Kfr;","&H1D50E"
                           DATA "&kfr;","&H1D528"
                           DATA "&kgreen;","&H00138"
                           DATA "&KHcy;","&H00425"
                           DATA "&khcy;","&H00445"
                           DATA "&KJcy;","&H0040C"
                           DATA "&kjcy;","&H0045C"
                           DATA "&Kopf;","&H1D542"
                           DATA "&kopf;","&H1D55C"
                           DATA "&Kscr;","&H1D4A6"
                           DATA "&kscr;","&H1D4C0"
                           DATA "&lAarr;","&H021DA"
                           DATA "&Lacute;","&H00139"
                           DATA "&lacute;","&H0013A"
                           DATA "&laemptyv;","&H029B4"
                           DATA "&lagran;","&H02112"
                           DATA "&Lambda;","&H0039B"
                           DATA "&lambda;","&H003BB"
                           DATA "&Lang;","&H027EA"
                           DATA "&lang;","&H027E8"
                           DATA "&langd;","&H02991"
                           DATA "&langle;","&H027E8"
                           DATA "&lap;","&H02A85"
                           DATA "&Laplacetrf;","&H02112"
                           DATA "&laquo;","&H000AB"
                           DATA "&laquo","&H000AB"
                           DATA "&Larr;","&H0219E"
                           DATA "&lArr;","&H021D0"
                           DATA "&larr;","&H02190"
                           DATA "&larrb;","&H021E4"
                           DATA "&larrbfs;","&H0291F"
                           DATA "&larrfs;","&H0291D"
                           DATA "&larrhk;","&H021A9"
                           DATA "&larrlp;","&H021AB"
                           DATA "&larrpl;","&H02939"
                           DATA "&larrsim;","&H02973"
                           DATA "&larrtl;","&H021A2"
                           DATA "&lat;","&H02AAB"
                           DATA "&lAtail;","&H0291B"
                           DATA "&latail;","&H02919"
                           DATA "&late;","&H02AAD"
                           DATA "&lates;","&H02AAD &H0FE00"
                           DATA "&lBarr;","&H0290E"
                           DATA "&lbarr;","&H0290C"
                           DATA "&lbbrk;","&H02772"
                           DATA "&lbrace;","&H0007B"
                           DATA "&lbrack;","&H0005B"
                           DATA "&lbrke;","&H0298B"
                           DATA "&lbrksld;","&H0298F"
                           DATA "&lbrkslu;","&H0298D"
                           DATA "&Lcaron;","&H0013D"
                           DATA "&lcaron;","&H0013E"
                           DATA "&Lcedil;","&H0013B"
                           DATA "&lcedil;","&H0013C"
                           DATA "&lceil;","&H02308"
                           DATA "&lcub;","&H0007B"
                           DATA "&Lcy;","&H0041B"
                           DATA "&lcy;","&H0043B"
                           DATA "&ldca;","&H02936"
                           DATA "&ldquo;","&H0201C"
                           DATA "&ldquor;","&H0201E"
                           DATA "&ldrdhar;","&H02967"
                           DATA "&ldrushar;","&H0294B"
                           DATA "&ldsh;","&H021B2"
                           DATA "&lE;","&H02266"
                           DATA "&le;","&H02264"
                           DATA "&LeftAngleBracket;","&H027E8"
                           DATA "&LeftArrow;","&H02190"
                           DATA "&Leftarrow;","&H021D0"
                           DATA "&leftarrow;","&H02190"
                           DATA "&LeftArrowBar;","&H021E4"
                           DATA "&LeftArrowRightArrow;","&H021C6"
                           DATA "&leftarrowtail;","&H021A2"
                           DATA "&LeftCeiling;","&H02308"
                           DATA "&LeftDoubleBracket;","&H027E6"
                           DATA "&LeftDownTeeVector;","&H02961"
                           DATA "&LeftDownVector;","&H021C3"
                           DATA "&LeftDownVectorBar;","&H02959"
                           DATA "&LeftFloor;","&H0230A"
                           DATA "&leftharpoondown;","&H021BD"
                           DATA "&leftharpoonup;","&H021BC"
                           DATA "&leftleftarrows;","&H021C7"
                           DATA "&LeftRightArrow;","&H02194"
                           DATA "&Leftrightarrow;","&H021D4"
                           DATA "&leftrightarrow;","&H02194"
                           DATA "&leftrightarrows;","&H021C6"
                           DATA "&leftrightharpoons;","&H021CB"
                           DATA "&leftrightsquigarrow;","&H021AD"
                           DATA "&LeftRightVector;","&H0294E"
                           DATA "&LeftTee;","&H022A3"
                           DATA "&LeftTeeArrow;","&H021A4"
                           DATA "&LeftTeeVector;","&H0295A"
                           DATA "&leftthreetimes;","&H022CB"
                           DATA "&LeftTriangle;","&H022B2"
                           DATA "&LeftTriangleBar;","&H029CF"
                           DATA "&LeftTriangleEqual;","&H022B4"
                           DATA "&LeftUpDownVector;","&H02951"
                           DATA "&LeftUpTeeVector;","&H02960"
                           DATA "&LeftUpVector;","&H021BF"
                           DATA "&LeftUpVectorBar;","&H02958"
                           DATA "&LeftVector;","&H021BC"
                           DATA "&LeftVectorBar;","&H02952"
                           DATA "&lEg;","&H02A8B"
                           DATA "&leg;","&H022DA"
                           DATA "&leq;","&H02264"
                           DATA "&leqq;","&H02266"
                           DATA "&leqslant;","&H02A7D"
                           DATA "&les;","&H02A7D"
                           DATA "&lescc;","&H02AA8"
                           DATA "&lesdot;","&H02A7F"
                           DATA "&lesdoto;","&H02A81"
                           DATA "&lesdotor;","&H02A83"
                           DATA "&lesg;","&H022DA &H0FE00"
                           DATA "&lesges;","&H02A93"
                           DATA "&lessapprox;","&H02A85"
                           DATA "&lessdot;","&H022D6"
                           DATA "&lesseqgtr;","&H022DA"
                           DATA "&lesseqqgtr;","&H02A8B"
                           DATA "&LessEqualGreater;","&H022DA"
                           DATA "&LessFullEqual;","&H02266"
                           DATA "&LessGreater;","&H02276"
                           DATA "&lessgtr;","&H02276"
                           DATA "&LessLess;","&H02AA1"
                           DATA "&lesssim;","&H02272"
                           DATA "&LessSlantEqual;","&H02A7D"
                           DATA "&LessTilde;","&H02272"
                           DATA "&lfisht;","&H0297C"
                           DATA "&lfloor;","&H0230A"
                           DATA "&Lfr;","&H1D50F"
                           DATA "&lfr;","&H1D529"
                           DATA "&lg;","&H02276"
                           DATA "&lgE;","&H02A91"
                           DATA "&lHar;","&H02962"
                           DATA "&lhard;","&H021BD"
                           DATA "&lharu;","&H021BC"
                           DATA "&lharul;","&H0296A"
                           DATA "&lhblk;","&H02584"
                           DATA "&LJcy;","&H00409"
                           DATA "&ljcy;","&H00459"
                           DATA "&Ll;","&H022D8"
                           DATA "&ll;","&H0226A"
                           DATA "&llarr;","&H021C7"
                           DATA "&llcorner;","&H0231E"
                           DATA "&Lleftarrow;","&H021DA"
                           DATA "&llhard;","&H0296B"
                           DATA "&lltri;","&H025FA"
                           DATA "&Lmidot;","&H0013F"
                           DATA "&lmidot;","&H00140"
                           DATA "&lmoust;","&H023B0"
                           DATA "&lmoustache;","&H023B0"
                           DATA "&lnap;","&H02A89"
                           DATA "&lnapprox;","&H02A89"
                           DATA "&lnE;","&H02268"
                           DATA "&lne;","&H02A87"
                           DATA "&lneq;","&H02A87"
                           DATA "&lneqq;","&H02268"
                           DATA "&lnsim;","&H022E6"
                           DATA "&loang;","&H027EC"
                           DATA "&loarr;","&H021FD"
                           DATA "&lobrk;","&H027E6"
                           DATA "&LongLeftArrow;","&H027F5"
                           DATA "&Longleftarrow;","&H027F8"
                           DATA "&longleftarrow;","&H027F5"
                           DATA "&LongLeftRightArrow;","&H027F7"
                           DATA "&Longleftrightarrow;","&H027FA"
                           DATA "&longleftrightarrow;","&H027F7"
                           DATA "&longmapsto;","&H027FC"
                           DATA "&LongRightArrow;","&H027F6"
                           DATA "&Longrightarrow;","&H027F9"
                           DATA "&longrightarrow;","&H027F6"
                           DATA "&looparrowleft;","&H021AB"
                           DATA "&looparrowright;","&H021AC"
                           DATA "&lopar;","&H02985"
                           DATA "&Lopf;","&H1D543"
                           DATA "&lopf;","&H1D55D"
                           DATA "&loplus;","&H02A2D"
                           DATA "&lotimes;","&H02A34"
                           DATA "&lowast;","&H02217"
                           DATA "&lowbar;","&H0005F"
                           DATA "&LowerLeftArrow;","&H02199"
                           DATA "&LowerRightArrow;","&H02198"
                           DATA "&loz;","&H025CA"
                           DATA "&lozenge;","&H025CA"
                           DATA "&lozf;","&H029EB"
                           DATA "&lpar;","&H00028"
                           DATA "&lparlt;","&H02993"
                           DATA "&lrarr;","&H021C6"
                           DATA "&lrcorner;","&H0231F"
                           DATA "&lrhar;","&H021CB"
                           DATA "&lrhard;","&H0296D"
                           DATA "&lrm;","&H0200E"
                           DATA "&lrtri;","&H022BF"
                           DATA "&lsaquo;","&H02039"
                           DATA "&Lscr;","&H02112"
                           DATA "&lscr;","&H1D4C1"
                           DATA "&Lsh;","&H021B0"
                           DATA "&lsh;","&H021B0"
                           DATA "&lsim;","&H02272"
                           DATA "&lsime;","&H02A8D"
                           DATA "&lsimg;","&H02A8F"
                           DATA "&lsqb;","&H0005B"
                           DATA "&lsquo;","&H02018"
                           DATA "&lsquor;","&H0201A"
                           DATA "&Lstrok;","&H00141"
                           DATA "&lstrok;","&H00142"
                           DATA "&LT;","&H0003C"
                           DATA "&LT","&H0003C"
                           DATA "&Lt;","&H0226A"
                           DATA "&lt;","&H0003C"
                           DATA "&lt","&H0003C"
                           DATA "&ltcc;","&H02AA6"
                           DATA "&ltcir;","&H02A79"
                           DATA "&ltdot;","&H022D6"
                           DATA "&lthree;","&H022CB"
                           DATA "&ltimes;","&H022C9"
                           DATA "&ltlarr;","&H02976"
                           DATA "&ltquest;","&H02A7B"
                           DATA "&ltri;","&H025C3"
                           DATA "&ltrie;","&H022B4"
                           DATA "&ltrif;","&H025C2"
                           DATA "&ltrPar;","&H02996"
                           DATA "&lurdshar;","&H0294A"
                           DATA "&luruhar;","&H02966"
                           DATA "&lvertneqq;","&H02268 &H0FE00"
                           DATA "&lvnE;","&H02268 &H0FE00"
                           DATA "&macr;","&H000AF"
                           DATA "&macr","&H000AF"
                           DATA "&male;","&H02642"
                           DATA "&malt;","&H02720"
                           DATA "&maltese;","&H02720"
                           DATA "&Map;","&H02905"
                           DATA "&map;","&H021A6"
                           DATA "&mapsto;","&H021A6"
                           DATA "&mapstodown;","&H021A7"
                           DATA "&mapstoleft;","&H021A4"
                           DATA "&mapstoup;","&H021A5"
                           DATA "&marker;","&H025AE"
                           DATA "&mcomma;","&H02A29"
                           DATA "&Mcy;","&H0041C"
                           DATA "&mcy;","&H0043C"
                           DATA "&mdash;","&H02014"
                           DATA "&mDDot;","&H0223A"
                           DATA "&measuredangle;","&H02221"
                           DATA "&MediumSpace;","&H0205F"
                           DATA "&Mellintrf;","&H02133"
                           DATA "&Mfr;","&H1D510"
                           DATA "&mfr;","&H1D52A"
                           DATA "&mho;","&H02127"
                           DATA "&micro;","&H000B5"
                           DATA "&micro","&H000B5"
                           DATA "&mid;","&H02223"
                           DATA "&midast;","&H0002A"
                           DATA "&midcir;","&H02AF0"
                           DATA "&middot;","&H000B7"
                           DATA "&middot","&H000B7"
                           DATA "&minus;","&H02212"
                           DATA "&minusb;","&H0229F"
                           DATA "&minusd;","&H02238"
                           DATA "&minusdu;","&H02A2A"
                           DATA "&MinusPlus;","&H02213"
                           DATA "&mlcp;","&H02ADB"
                           DATA "&mldr;","&H02026"
                           DATA "&mnplus;","&H02213"
                           DATA "&models;","&H022A7"
                           DATA "&Mopf;","&H1D544"
                           DATA "&mopf;","&H1D55E"
                           DATA "&mp;","&H02213"
                           DATA "&Mscr;","&H02133"
                           DATA "&mscr;","&H1D4C2"
                           DATA "&mstpos;","&H0223E"
                           DATA "&Mu;","&H0039C"
                           DATA "&mu;","&H003BC"
                           DATA "&multimap;","&H022B8"
                           DATA "&mumap;","&H022B8"
                           DATA "&nabla;","&H02207"
                           DATA "&Nacute;","&H00143"
                           DATA "&nacute;","&H00144"
                           DATA "&nang;","&H02220 &H020D2"
                           DATA "&nap;","&H02249"
                           DATA "&napE;","&H02A70 &H00338"
                           DATA "&napid;","&H0224B &H00338"
                           DATA "&napos;","&H00149"
                           DATA "&napprox;","&H02249"
                           DATA "&natur;","&H0266E"
                           DATA "&natural;","&H0266E"
                           DATA "&naturals;","&H02115"
                           DATA "&nbsp;","&H000A0"
                           DATA "&nbsp","&H000A0"
                           DATA "&nbump;","&H0224E &H00338"
                           DATA "&nbumpe;","&H0224F &H00338"
                           DATA "&ncap;","&H02A43"
                           DATA "&Ncaron;","&H00147"
                           DATA "&ncaron;","&H00148"
                           DATA "&Ncedil;","&H00145"
                           DATA "&ncedil;","&H00146"
                           DATA "&ncong;","&H02247"
                           DATA "&ncongdot;","&H02A6D &H00338"
                           DATA "&ncup;","&H02A42"
                           DATA "&Ncy;","&H0041D"
                           DATA "&ncy;","&H0043D"
                           DATA "&ndash;","&H02013"
                           DATA "&ne;","&H02260"
                           DATA "&nearhk;","&H02924"
                           DATA "&neArr;","&H021D7"
                           DATA "&nearr;","&H02197"
                           DATA "&nearrow;","&H02197"
                           DATA "&nedot;","&H02250 &H00338"
                           DATA "&NegativeMediumSpace;","&H0200B"
                           DATA "&NegativeThickSpace;","&H0200B"
                           DATA "&NegativeThinSpace;","&H0200B"
                           DATA "&NegativeVeryThinSpace;","&H0200B"
                           DATA "&nequiv;","&H02262"
                           DATA "&nesear;","&H02928"
                           DATA "&nesim;","&H02242 &H00338"
                           DATA "&NestedGreaterGreater;","&H0226B"
                           DATA "&NestedLessLess;","&H0226A"
                           DATA "&NewLine;","&H0000A"
                           DATA "&nexist;","&H02204"
                           DATA "&nexists;","&H02204"
                           DATA "&Nfr;","&H1D511"
                           DATA "&nfr;","&H1D52B"
                           DATA "&ngE;","&H02267 &H00338"
                           DATA "&nge;","&H02271"
                           DATA "&ngeq;","&H02271"
                           DATA "&ngeqq;","&H02267 &H00338"
                           DATA "&ngeqslant;","&H02A7E &H00338"
                           DATA "&nges;","&H02A7E &H00338"
                           DATA "&nGg;","&H022D9 &H00338"
                           DATA "&ngsim;","&H02275"
                           DATA "&nGt;","&H0226B &H020D2"
                           DATA "&ngt;","&H0226F"
                           DATA "&ngtr;","&H0226F"
                           DATA "&nGtv;","&H0226B &H00338"
                           DATA "&nhArr;","&H021CE"
                           DATA "&nharr;","&H021AE"
                           DATA "&nhpar;","&H02AF2"
                           DATA "&ni;","&H0220B"
                           DATA "&nis;","&H022FC"
                           DATA "&nisd;","&H022FA"
                           DATA "&niv;","&H0220B"
                           DATA "&NJcy;","&H0040A"
                           DATA "&njcy;","&H0045A"
                           DATA "&nlArr;","&H021CD"
                           DATA "&nlarr;","&H0219A"
                           DATA "&nldr;","&H02025"
                           DATA "&nlE;","&H02266 &H00338"
                           DATA "&nle;","&H02270"
                           DATA "&nLeftarrow;","&H021CD"
                           DATA "&nleftarrow;","&H0219A"
                           DATA "&nLeftrightarrow;","&H021CE"
                           DATA "&nleftrightarrow;","&H021AE"
                           DATA "&nleq;","&H02270"
                           DATA "&nleqq;","&H02266 &H00338"
                           DATA "&nleqslant;","&H02A7D &H00338"
                           DATA "&nles;","&H02A7D &H00338"
                           DATA "&nless;","&H0226E"
                           DATA "&nLl;","&H022D8 &H00338"
                           DATA "&nlsim;","&H02274"
                           DATA "&nLt;","&H0226A &H020D2"
                           DATA "&nlt;","&H0226E"
                           DATA "&nltri;","&H022EA"
                           DATA "&nltrie;","&H022EC"
                           DATA "&nLtv;","&H0226A &H00338"
                           DATA "&nmid;","&H02224"
                           DATA "&NoBreak;","&H02060"
                           DATA "&NonBreakingSpace;","&H000A0"
                           DATA "&Nopf;","&H02115"
                           DATA "&nopf;","&H1D55F"
                           DATA "&Not;","&H02AEC"
                           DATA "&not;","&H000AC"
                           DATA "&not","&H000AC"
                           DATA "&NotCongruent;","&H02262"
                           DATA "&NotCupCap;","&H0226D"
                           DATA "&NotDoubleVerticalBar;","&H02226"
                           DATA "&NotElement;","&H02209"
                           DATA "&NotEqual;","&H02260"
                           DATA "&NotEqualTilde;","&H02242 &H00338"
                           DATA "&NotExists;","&H02204"
                           DATA "&NotGreater;","&H0226F"
                           DATA "&NotGreaterEqual;","&H02271"
                           DATA "&NotGreaterFullEqual;","&H02267 &H00338"
                           DATA "&NotGreaterGreater;","&H0226B &H00338"
                           DATA "&NotGreaterLess;","&H02279"
                           DATA "&NotGreaterSlantEqual;","&H02A7E &H00338"
                           DATA "&NotGreaterTilde;","&H02275"
                           DATA "&NotHumpDownHump;","&H0224E &H00338"
                           DATA "&NotHumpEqual;","&H0224F &H00338"
                           DATA "&notin;","&H02209"
                           DATA "&notindot;","&H022F5 &H00338"
                           DATA "&notinE;","&H022F9 &H00338"
                           DATA "&notinva;","&H02209"
                           DATA "&notinvb;","&H022F7"
                           DATA "&notinvc;","&H022F6"
                           DATA "&NotLeftTriangle;","&H022EA"
                           DATA "&NotLeftTriangleBar;","&H029CF &H00338"
                           DATA "&NotLeftTriangleEqual;","&H022EC"
                           DATA "&NotLess;","&H0226E"
                           DATA "&NotLessEqual;","&H02270"
                           DATA "&NotLessGreater;","&H02278"
                           DATA "&NotLessLess;","&H0226A &H00338"
                           DATA "&NotLessSlantEqual;","&H02A7D &H00338"
                           DATA "&NotLessTilde;","&H02274"
                           DATA "&NotNestedGreaterGreater;","&H02AA2 &H00338"
                           DATA "&NotNestedLessLess;","&H02AA1 &H00338"
                           DATA "&notni;","&H0220C"
                           DATA "&notniva;","&H0220C"
                           DATA "&notnivb;","&H022FE"
                           DATA "&notnivc;","&H022FD"
                           DATA "&NotPrecedes;","&H02280"
                           DATA "&NotPrecedesEqual;","&H02AAF &H00338"
                           DATA "&NotPrecedesSlantEqual;","&H022E0"
                           DATA "&NotReverseElement;","&H0220C"
                           DATA "&NotRightTriangle;","&H022EB"
                           DATA "&NotRightTriangleBar;","&H029D0 &H00338"
                           DATA "&NotRightTriangleEqual;","&H022ED"
                           DATA "&NotSquareSubset;","&H0228F &H00338"
                           DATA "&NotSquareSubsetEqual;","&H022E2"
                           DATA "&NotSquareSuperset;","&H02290 &H00338"
                           DATA "&NotSquareSupersetEqual;","&H022E3"
                           DATA "&NotSubset;","&H02282 &H020D2"
                           DATA "&NotSubsetEqual;","&H02288"
                           DATA "&NotSucceeds;","&H02281"
                           DATA "&NotSucceedsEqual;","&H02AB0 &H00338"
                           DATA "&NotSucceedsSlantEqual;","&H022E1"
                           DATA "&NotSucceedsTilde;","&H0227F &H00338"
                           DATA "&NotSuperset;","&H02283 &H020D2"
                           DATA "&NotSupersetEqual;","&H02289"
                           DATA "&NotTilde;","&H02241"
                           DATA "&NotTildeEqual;","&H02244"
                           DATA "&NotTildeFullEqual;","&H02247"
                           DATA "&NotTildeTilde;","&H02249"
                           DATA "&NotVerticalBar;","&H02224"
                           DATA "&npar;","&H02226"
                           DATA "&nparallel;","&H02226"
                           DATA "&nparsl;","&H02AFD &H020E5"
                           DATA "&npart;","&H02202 &H00338"
                           DATA "&npolint;","&H02A14"
                           DATA "&npr;","&H02280"
                           DATA "&nprcue;","&H022E0"
                           DATA "&npre;","&H02AAF &H00338"
                           DATA "&nprec;","&H02280"
                           DATA "&npreceq;","&H02AAF &H00338"
                           DATA "&nrArr;","&H021CF"
                           DATA "&nrarr;","&H0219B"
                           DATA "&nrarrc;","&H02933 &H00338"
                           DATA "&nrarrw;","&H0219D &H00338"
                           DATA "&nRightarrow;","&H021CF"
                           DATA "&nrightarrow;","&H0219B"
                           DATA "&nrtri;","&H022EB"
                           DATA "&nrtrie;","&H022ED"
                           DATA "&nsc;","&H02281"
                           DATA "&nsccue;","&H022E1"
                           DATA "&nsce;","&H02AB0 &H00338"
                           DATA "&Nscr;","&H1D4A9"
                           DATA "&nscr;","&H1D4C3"
                           DATA "&nshortmid;","&H02224"
                           DATA "&nshortparallel;","&H02226"
                           DATA "&nsim;","&H02241"
                           DATA "&nsime;","&H02244"
                           DATA "&nsimeq;","&H02244"
                           DATA "&nsmid;","&H02224"
                           DATA "&nspar;","&H02226"
                           DATA "&nsqsube;","&H022E2"
                           DATA "&nsqsupe;","&H022E3"
                           DATA "&nsub;","&H02284"
                           DATA "&nsubE;","&H02AC5 &H00338"
                           DATA "&nsube;","&H02288"
                           DATA "&nsubset;","&H02282 &H020D2"
                           DATA "&nsubseteq;","&H02288"
                           DATA "&nsubseteqq;","&H02AC5 &H00338"
                           DATA "&nsucc;","&H02281"
                           DATA "&nsucceq;","&H02AB0 &H00338"
                           DATA "&nsup;","&H02285"
                           DATA "&nsupE;","&H02AC6 &H00338"
                           DATA "&nsupe;","&H02289"
                           DATA "&nsupset;","&H02283 &H020D2"
                           DATA "&nsupseteq;","&H02289"
                           DATA "&nsupseteqq;","&H02AC6 &H00338"
                           DATA "&ntgl;","&H02279"
                           DATA "&Ntilde;","&H000D1"
                           DATA "&Ntilde","&H000D1"
                           DATA "&ntilde;","&H000F1"
                           DATA "&ntilde","&H000F1"
                           DATA "&ntlg;","&H02278"
                           DATA "&ntriangleleft;","&H022EA"
                           DATA "&ntrianglelefteq;","&H022EC"
                           DATA "&ntriangleright;","&H022EB"
                           DATA "&ntrianglerighteq;","&H022ED"
                           DATA "&Nu;","&H0039D"
                           DATA "&nu;","&H003BD"
                           DATA "&num;","&H00023"
                           DATA "&numero;","&H02116"
                           DATA "&numsp;","&H02007"
                           DATA "&nvap;","&H0224D &H020D2"
                           DATA "&nVDash;","&H022AF"
                           DATA "&nVdash;","&H022AE"
                           DATA "&nvDash;","&H022AD"
                           DATA "&nvdash;","&H022AC"
                           DATA "&nvge;","&H02265 &H020D2"
                           DATA "&nvgt;","&H0003E &H020D2"
                           DATA "&nvHarr;","&H02904"
                           DATA "&nvinfin;","&H029DE"
                           DATA "&nvlArr;","&H02902"
                           DATA "&nvle;","&H02264 &H020D2"
                           DATA "&nvlt;","&H0003C &H020D2"
                           DATA "&nvltrie;","&H022B4 &H020D2"
                           DATA "&nvrArr;","&H02903"
                           DATA "&nvrtrie;","&H022B5 &H020D2"
                           DATA "&nvsim;","&H0223C &H020D2"
                           DATA "&nwarhk;","&H02923"
                           DATA "&nwArr;","&H021D6"
                           DATA "&nwarr;","&H02196"
                           DATA "&nwarrow;","&H02196"
                           DATA "&nwnear;","&H02927"
                           DATA "&Oacute;","&H000D3"
                           DATA "&Oacute","&H000D3"
                           DATA "&oacute;","&H000F3"
                           DATA "&oacute","&H000F3"
                           DATA "&oast;","&H0229B"
                           DATA "&ocir;","&H0229A"
                           DATA "&Ocirc;","&H000D4"
                           DATA "&Ocirc","&H000D4"
                           DATA "&ocirc;","&H000F4"
                           DATA "&ocirc","&H000F4"
                           DATA "&Ocy;","&H0041E"
                           DATA "&ocy;","&H0043E"
                           DATA "&odash;","&H0229D"
                           DATA "&Odblac;","&H00150"
                           DATA "&odblac;","&H00151"
                           DATA "&odiv;","&H02A38"
                           DATA "&odot;","&H02299"
                           DATA "&odsold;","&H029BC"
                           DATA "&OElig;","&H00152"
                           DATA "&oelig;","&H00153"
                           DATA "&ofcir;","&H029BF"
                           DATA "&Ofr;","&H1D512"
                           DATA "&ofr;","&H1D52C"
                           DATA "&ogon;","&H002DB"
                           DATA "&Ograve;","&H000D2"
                           DATA "&Ograve","&H000D2"
                           DATA "&ograve;","&H000F2"
                           DATA "&ograve","&H000F2"
                           DATA "&ogt;","&H029C1"
                           DATA "&ohbar;","&H029B5"
                           DATA "&ohm;","&H003A9"
                           DATA "&oint;","&H0222E"
                           DATA "&olarr;","&H021BA"
                           DATA "&olcir;","&H029BE"
                           DATA "&olcross;","&H029BB"
                           DATA "&oline;","&H0203E"
                           DATA "&olt;","&H029C0"
                           DATA "&Omacr;","&H0014C"
                           DATA "&omacr;","&H0014D"
                           DATA "&Omega;","&H003A9"
                           DATA "&omega;","&H003C9"
                           DATA "&Omicron;","&H0039F"
                           DATA "&omicron;","&H003BF"
                           DATA "&omid;","&H029B6"
                           DATA "&ominus;","&H02296"
                           DATA "&Oopf;","&H1D546"
                           DATA "&oopf;","&H1D560"
                           DATA "&opar;","&H029B7"
                           DATA "&OpenCurlyDoubleQuote;","&H0201C"
                           DATA "&OpenCurlyQuote;","&H02018"
                           DATA "&operp;","&H029B9"
                           DATA "&oplus;","&H02295"
                           DATA "&Or;","&H02A54"
                           DATA "&or;","&H02228"
                           DATA "&orarr;","&H021BB"
                           DATA "&ord;","&H02A5D"
                           DATA "&order;","&H02134"
                           DATA "&orderof;","&H02134"
                           DATA "&ordf;","&H000AA"
                           DATA "&ordf","&H000AA"
                           DATA "&ordm;","&H000BA"
                           DATA "&ordm","&H000BA"
                           DATA "&origof;","&H022B6"
                           DATA "&oror;","&H02A56"
                           DATA "&orslope;","&H02A57"
                           DATA "&orv;","&H02A5B"
                           DATA "&oS;","&H024C8"
                           DATA "&Oscr;","&H1D4AA"
                           DATA "&oscr;","&H02134"
                           DATA "&Oslash;","&H000D8"
                           DATA "&Oslash","&H000D8"
                           DATA "&oslash;","&H000F8"
                           DATA "&oslash","&H000F8"
                           DATA "&osol;","&H02298"
                           DATA "&Otilde;","&H000D5"
                           DATA "&Otilde","&H000D5"
                           DATA "&otilde;","&H000F5"
                           DATA "&otilde","&H000F5"
                           DATA "&Otimes;","&H02A37"
                           DATA "&otimes;","&H02297"
                           DATA "&otimesas;","&H02A36"
                           DATA "&Ouml;","&H000D6"
                           DATA "&Ouml","&H000D6"
                           DATA "&ouml;","&H000F6"
                           DATA "&ouml","&H000F6"
                           DATA "&ovbar;","&H0233D"
                           DATA "&OverBar;","&H0203E"
                           DATA "&OverBrace;","&H023DE"
                           DATA "&OverBracket;","&H023B4"
                           DATA "&OverParenthesis;","&H023DC"
                           DATA "&par;","&H02225"
                           DATA "&para;","&H000B6"
                           DATA "&para","&H000B6"
                           DATA "&parallel;","&H02225"
                           DATA "&parsim;","&H02AF3"
                           DATA "&parsl;","&H02AFD"
                           DATA "&part;","&H02202"
                           DATA "&PartialD;","&H02202"
                           DATA "&Pcy;","&H0041F"
                           DATA "&pcy;","&H0043F"
                           DATA "&percnt;","&H00025"
                           DATA "&period;","&H0002E"
                           DATA "&permil;","&H02030"
                           DATA "&perp;","&H022A5"
                           DATA "&pertenk;","&H02031"
                           DATA "&Pfr;","&H1D513"
                           DATA "&pfr;","&H1D52D"
                           DATA "&Phi;","&H003A6"
                           DATA "&phi;","&H003C6"
                           DATA "&phiv;","&H003D5"
                           DATA "&phmmat;","&H02133"
                           DATA "&phone;","&H0260E"
                           DATA "&Pi;","&H003A0"
                           DATA "&pi;","&H003C0"
                           DATA "&pitchfork;","&H022D4"
                           DATA "&piv;","&H003D6"
                           DATA "&planck;","&H0210F"
                           DATA "&planckh;","&H0210E"
                           DATA "&plankv;","&H0210F"
                           DATA "&plus;","&H0002B"
                           DATA "&plusacir;","&H02A23"
                           DATA "&plusb;","&H0229E"
                           DATA "&pluscir;","&H02A22"
                           DATA "&plusdo;","&H02214"
                           DATA "&plusdu;","&H02A25"
                           DATA "&pluse;","&H02A72"
                           DATA "&PlusMinus;","&H000B1"
                           DATA "&plusmn;","&H000B1"
                           DATA "&plusmn","&H000B1"
                           DATA "&plussim;","&H02A26"
                           DATA "&plustwo;","&H02A27"
                           DATA "&pm;","&H000B1"
                           DATA "&Poincareplane;","&H0210C"
                           DATA "&pointint;","&H02A15"
                           DATA "&Popf;","&H02119"
                           DATA "&popf;","&H1D561"
                           DATA "&pound;","&H000A3"
                           DATA "&pound","&H000A3"
                           DATA "&Pr;","&H02ABB"
                           DATA "&pr;","&H0227A"
                           DATA "&prap;","&H02AB7"
                           DATA "&prcue;","&H0227C"
                           DATA "&prE;","&H02AB3"
                           DATA "&pre;","&H02AAF"
                           DATA "&prec;","&H0227A"
                           DATA "&precapprox;","&H02AB7"
                           DATA "&preccurlyeq;","&H0227C"
                           DATA "&Precedes;","&H0227A"
                           DATA "&PrecedesEqual;","&H02AAF"
                           DATA "&PrecedesSlantEqual;","&H0227C"
                           DATA "&PrecedesTilde;","&H0227E"
                           DATA "&preceq;","&H02AAF"
                           DATA "&precnapprox;","&H02AB9"
                           DATA "&precneqq;","&H02AB5"
                           DATA "&precnsim;","&H022E8"
                           DATA "&precsim;","&H0227E"
                           DATA "&Prime;","&H02033"
                           DATA "&prime;","&H02032"
                           DATA "&primes;","&H02119"
                           DATA "&prnap;","&H02AB9"
                           DATA "&prnE;","&H02AB5"
                           DATA "&prnsim;","&H022E8"
                           DATA "&prod;","&H0220F"
                           DATA "&Product;","&H0220F"
                           DATA "&profalar;","&H0232E"
                           DATA "&profline;","&H02312"
                           DATA "&profsurf;","&H02313"
                           DATA "&prop;","&H0221D"
                           DATA "&Proportion;","&H02237"
                           DATA "&Proportional;","&H0221D"
                           DATA "&propto;","&H0221D"
                           DATA "&prsim;","&H0227E"
                           DATA "&prurel;","&H022B0"
                           DATA "&Pscr;","&H1D4AB"
                           DATA "&pscr;","&H1D4C5"
                           DATA "&Psi;","&H003A8"
                           DATA "&psi;","&H003C8"
                           DATA "&puncsp;","&H02008"
                           DATA "&Qfr;","&H1D514"
                           DATA "&qfr;","&H1D52E"
                           DATA "&qint;","&H02A0C"
                           DATA "&Qopf;","&H0211A"
                           DATA "&qopf;","&H1D562"
                           DATA "&qprime;","&H02057"
                           DATA "&Qscr;","&H1D4AC"
                           DATA "&qscr;","&H1D4C6"
                           DATA "&quaternions;","&H0210D"
                           DATA "&quatint;","&H02A16"
                           DATA "&quest;","&H0003F"
                           DATA "&questeq;","&H0225F"
                           DATA "&QUOT;","&H00022"
                           DATA "&QUOT","&H00022"
                           DATA "&quot;","&H00022"
                           DATA "&quot","&H00022"
                           DATA "&rAarr;","&H021DB"
                           DATA "&race;","&H0223D &H00331"
                           DATA "&Racute;","&H00154"
                           DATA "&racute;","&H00155"
                           DATA "&radic;","&H0221A"
                           DATA "&raemptyv;","&H029B3"
                           DATA "&Rang;","&H027EB"
                           DATA "&rang;","&H027E9"
                           DATA "&rangd;","&H02992"
                           DATA "&range;","&H029A5"
                           DATA "&rangle;","&H027E9"
                           DATA "&raquo;","&H000BB"
                           DATA "&raquo","&H000BB"
                           DATA "&Rarr;","&H021A0"
                           DATA "&rArr;","&H021D2"
                           DATA "&rarr;","&H02192"
                           DATA "&rarrap;","&H02975"
                           DATA "&rarrb;","&H021E5"
                           DATA "&rarrbfs;","&H02920"
                           DATA "&rarrc;","&H02933"
                           DATA "&rarrfs;","&H0291E"
                           DATA "&rarrhk;","&H021AA"
                           DATA "&rarrlp;","&H021AC"
                           DATA "&rarrpl;","&H02945"
                           DATA "&rarrsim;","&H02974"
                           DATA "&Rarrtl;","&H02916"
                           DATA "&rarrtl;","&H021A3"
                           DATA "&rarrw;","&H0219D"
                           DATA "&rAtail;","&H0291C"
                           DATA "&ratail;","&H0291A"
                           DATA "&ratio;","&H02236"
                           DATA "&rationals;","&H0211A"
                           DATA "&RBarr;","&H02910"
                           DATA "&rBarr;","&H0290F"
                           DATA "&rbarr;","&H0290D"
                           DATA "&rbbrk;","&H02773"
                           DATA "&rbrace;","&H0007D"
                           DATA "&rbrack;","&H0005D"
                           DATA "&rbrke;","&H0298C"
                           DATA "&rbrksld;","&H0298E"
                           DATA "&rbrkslu;","&H02990"
                           DATA "&Rcaron;","&H00158"
                           DATA "&rcaron;","&H00159"
                           DATA "&Rcedil;","&H00156"
                           DATA "&rcedil;","&H00157"
                           DATA "&rceil;","&H02309"
                           DATA "&rcub;","&H0007D"
                           DATA "&Rcy;","&H00420"
                           DATA "&rcy;","&H00440"
                           DATA "&rdca;","&H02937"
                           DATA "&rdldhar;","&H02969"
                           DATA "&rdquo;","&H0201D"
                           DATA "&rdquor;","&H0201D"
                           DATA "&rdsh;","&H021B3"
                           DATA "&Re;","&H0211C"
                           DATA "&real;","&H0211C"
                           DATA "&realine;","&H0211B"
                           DATA "&realpart;","&H0211C"
                           DATA "&reals;","&H0211D"
                           DATA "&rect;","&H025AD"
                           DATA "&REG;","&H000AE"
                           DATA "&REG","&H000AE"
                           DATA "&reg;","&H000AE"
                           DATA "&reg","&H000AE"
                           DATA "&ReverseElement;","&H0220B"
                           DATA "&ReverseEquilibrium;","&H021CB"
                           DATA "&ReverseUpEquilibrium;","&H0296F"
                           DATA "&rfisht;","&H0297D"
                           DATA "&rfloor;","&H0230B"
                           DATA "&Rfr;","&H0211C"
                           DATA "&rfr;","&H1D52F"
                           DATA "&rHar;","&H02964"
                           DATA "&rhard;","&H021C1"
                           DATA "&rharu;","&H021C0"
                           DATA "&rharul;","&H0296C"
                           DATA "&Rho;","&H003A1"
                           DATA "&rho;","&H003C1"
                           DATA "&rhov;","&H003F1"
                           DATA "&RightAngleBracket;","&H027E9"
                           DATA "&RightArrow;","&H02192"
                           DATA "&Rightarrow;","&H021D2"
                           DATA "&rightarrow;","&H02192"
                           DATA "&RightArrowBar;","&H021E5"
                           DATA "&RightArrowLeftArrow;","&H021C4"
                           DATA "&rightarrowtail;","&H021A3"
                           DATA "&RightCeiling;","&H02309"
                           DATA "&RightDoubleBracket;","&H027E7"
                           DATA "&RightDownTeeVector;","&H0295D"
                           DATA "&RightDownVector;","&H021C2"
                           DATA "&RightDownVectorBar;","&H02955"
                           DATA "&RightFloor;","&H0230B"
                           DATA "&rightharpoondown;","&H021C1"
                           DATA "&rightharpoonup;","&H021C0"
                           DATA "&rightleftarrows;","&H021C4"
                           DATA "&rightleftharpoons;","&H021CC"
                           DATA "&rightrightarrows;","&H021C9"
                           DATA "&rightsquigarrow;","&H0219D"
                           DATA "&RightTee;","&H022A2"
                           DATA "&RightTeeArrow;","&H021A6"
                           DATA "&RightTeeVector;","&H0295B"
                           DATA "&rightthreetimes;","&H022CC"
                           DATA "&RightTriangle;","&H022B3"
                           DATA "&RightTriangleBar;","&H029D0"
                           DATA "&RightTriangleEqual;","&H022B5"
                           DATA "&RightUpDownVector;","&H0294F"
                           DATA "&RightUpTeeVector;","&H0295C"
                           DATA "&RightUpVector;","&H021BE"
                           DATA "&RightUpVectorBar;","&H02954"
                           DATA "&RightVector;","&H021C0"
                           DATA "&RightVectorBar;","&H02953"
                           DATA "&ring;","&H002DA"
                           DATA "&risingdotseq;","&H02253"
                           DATA "&rlarr;","&H021C4"
                           DATA "&rlhar;","&H021CC"
                           DATA "&rlm;","&H0200F"
                           DATA "&rmoust;","&H023B1"
                           DATA "&rmoustache;","&H023B1"
                           DATA "&rnmid;","&H02AEE"
                           DATA "&roang;","&H027ED"
                           DATA "&roarr;","&H021FE"
                           DATA "&robrk;","&H027E7"
                           DATA "&ropar;","&H02986"
                           DATA "&Ropf;","&H0211D"
                           DATA "&ropf;","&H1D563"
                           DATA "&roplus;","&H02A2E"
                           DATA "&rotimes;","&H02A35"
                           DATA "&RoundImplies;","&H02970"
                           DATA "&rpar;","&H00029"
                           DATA "&rpargt;","&H02994"
                           DATA "&rppolint;","&H02A12"
                           DATA "&rrarr;","&H021C9"
                           DATA "&Rrightarrow;","&H021DB"
                           DATA "&rsaquo;","&H0203A"
                           DATA "&Rscr;","&H0211B"
                           DATA "&rscr;","&H1D4C7"
                           DATA "&Rsh;","&H021B1"
                           DATA "&rsh;","&H021B1"
                           DATA "&rsqb;","&H0005D"
                           DATA "&rsquo;","&H02019"
                           DATA "&rsquor;","&H02019"
                           DATA "&rthree;","&H022CC"
                           DATA "&rtimes;","&H022CA"
                           DATA "&rtri;","&H025B9"
                           DATA "&rtrie;","&H022B5"
                           DATA "&rtrif;","&H025B8"
                           DATA "&rtriltri;","&H029CE"
                           DATA "&RuleDelayed;","&H029F4"
                           DATA "&ruluhar;","&H02968"
                           DATA "&rx;","&H0211E"
                           DATA "&Sacute;","&H0015A"
                           DATA "&sacute;","&H0015B"
                           DATA "&sbquo;","&H0201A"
                           DATA "&Sc;","&H02ABC"
                           DATA "&sc;","&H0227B"
                           DATA "&scap;","&H02AB8"
                           DATA "&Scaron;","&H00160"
                           DATA "&scaron;","&H00161"
                           DATA "&sccue;","&H0227D"
                           DATA "&scE;","&H02AB4"
                           DATA "&sce;","&H02AB0"
                           DATA "&Scedil;","&H0015E"
                           DATA "&scedil;","&H0015F"
                           DATA "&Scirc;","&H0015C"
                           DATA "&scirc;","&H0015D"
                           DATA "&scnap;","&H02ABA"
                           DATA "&scnE;","&H02AB6"
                           DATA "&scnsim;","&H022E9"
                           DATA "&scpolint;","&H02A13"
                           DATA "&scsim;","&H0227F"
                           DATA "&Scy;","&H00421"
                           DATA "&scy;","&H00441"
                           DATA "&sdot;","&H022C5"
                           DATA "&sdotb;","&H022A1"
                           DATA "&sdote;","&H02A66"
                           DATA "&searhk;","&H02925"
                           DATA "&seArr;","&H021D8"
                           DATA "&searr;","&H02198"
                           DATA "&searrow;","&H02198"
                           DATA "&sect;","&H000A7"
                           DATA "&sect","&H000A7"
                           DATA "&semi;","&H0003B"
                           DATA "&seswar;","&H02929"
                           DATA "&setminus;","&H02216"
                           DATA "&setmn;","&H02216"
                           DATA "&sext;","&H02736"
                           DATA "&Sfr;","&H1D516"
                           DATA "&sfr;","&H1D530"
                           DATA "&sfrown;","&H02322"
                           DATA "&sharp;","&H0266F"
                           DATA "&SHCHcy;","&H00429"
                           DATA "&shchcy;","&H00449"
                           DATA "&SHcy;","&H00428"
                           DATA "&shcy;","&H00448"
                           DATA "&ShortDownArrow;","&H02193"
                           DATA "&ShortLeftArrow;","&H02190"
                           DATA "&shortmid;","&H02223"
                           DATA "&shortparallel;","&H02225"
                           DATA "&ShortRightArrow;","&H02192"
                           DATA "&ShortUpArrow;","&H02191"
                           DATA "­","&H000AD"
                           DATA "&shy","&H000AD"
                           DATA "&Sigma;","&H003A3"
                           DATA "&sigma;","&H003C3"
                           DATA "&sigmaf;","&H003C2"
                           DATA "&sigmav;","&H003C2"
                           DATA "&sim;","&H0223C"
                           DATA "&simdot;","&H02A6A"
                           DATA "&sime;","&H02243"
                           DATA "&simeq;","&H02243"
                           DATA "&simg;","&H02A9E"
                           DATA "&simgE;","&H02AA0"
                           DATA "&siml;","&H02A9D"
                           DATA "&simlE;","&H02A9F"
                           DATA "&simne;","&H02246"
                           DATA "&simplus;","&H02A24"
                           DATA "&simrarr;","&H02972"
                           DATA "&slarr;","&H02190"
                           DATA "&SmallCircle;","&H02218"
                           DATA "&smallsetminus;","&H02216"
                           DATA "&smashp;","&H02A33"
                           DATA "&smeparsl;","&H029E4"
                           DATA "&smid;","&H02223"
                           DATA "&smile;","&H02323"
                           DATA "&smt;","&H02AAA"
                           DATA "&smte;","&H02AAC"
                           DATA "&smtes;","&H02AAC &H0FE00"
                           DATA "&SOFTcy;","&H0042C"
                           DATA "&softcy;","&H0044C"
                           DATA "&sol;","&H0002F"
                           DATA "&solb;","&H029C4"
                           DATA "&solbar;","&H0233F"
                           DATA "&Sopf;","&H1D54A"
                           DATA "&sopf;","&H1D564"
                           DATA "&spades;","&H02660"
                           DATA "&spadesuit;","&H02660"
                           DATA "&spar;","&H02225"
                           DATA "&sqcap;","&H02293"
                           DATA "&sqcaps;","&H02293 &H0FE00"
                           DATA "&sqcup;","&H02294"
                           DATA "&sqcups;","&H02294 &H0FE00"
                           DATA "&Sqrt;","&H0221A"
                           DATA "&sqsub;","&H0228F"
                           DATA "&sqsube;","&H02291"
                           DATA "&sqsubset;","&H0228F"
                           DATA "&sqsubseteq;","&H02291"
                           DATA "&sqsup;","&H02290"
                           DATA "&sqsupe;","&H02292"
                           DATA "&sqsupset;","&H02290"
                           DATA "&sqsupseteq;","&H02292"
                           DATA "&squ;","&H025A1"
                           DATA "&Square;","&H025A1"
                           DATA "&square;","&H025A1"
                           DATA "&SquareIntersection;","&H02293"
                           DATA "&SquareSubset;","&H0228F"
                           DATA "&SquareSubsetEqual;","&H02291"
                           DATA "&SquareSuperset;","&H02290"
                           DATA "&SquareSupersetEqual;","&H02292"
                           DATA "&SquareUnion;","&H02294"
                           DATA "&squarf;","&H025AA"
                           DATA "&squf;","&H025AA"
                           DATA "&srarr;","&H02192"
                           DATA "&Sscr;","&H1D4AE"
                           DATA "&sscr;","&H1D4C8"
                           DATA "&ssetmn;","&H02216"
                           DATA "&ssmile;","&H02323"
                           DATA "&sstarf;","&H022C6"
                           DATA "&Star;","&H022C6"
                           DATA "&star;","&H02606"
                           DATA "&starf;","&H02605"
                           DATA "&straightepsilon;","&H003F5"
                           DATA "&straightphi;","&H003D5"
                           DATA "&strns;","&H000AF"
                           DATA "&Sub;","&H022D0"
                           DATA "&sub;","&H02282"
                           DATA "&subdot;","&H02ABD"
                           DATA "&subE;","&H02AC5"
                           DATA "&sube;","&H02286"
                           DATA "&subedot;","&H02AC3"
                           DATA "&submult;","&H02AC1"
                           DATA "&subnE;","&H02ACB"
                           DATA "&subne;","&H0228A"
                           DATA "&subplus;","&H02ABF"
                           DATA "&subrarr;","&H02979"
                           DATA "&Subset;","&H022D0"
                           DATA "&subset;","&H02282"
                           DATA "&subseteq;","&H02286"
                           DATA "&subseteqq;","&H02AC5"
                           DATA "&SubsetEqual;","&H02286"
                           DATA "&subsetneq;","&H0228A"
                           DATA "&subsetneqq;","&H02ACB"
                           DATA "&subsim;","&H02AC7"
                           DATA "&subsub;","&H02AD5"
                           DATA "&subsup;","&H02AD3"
                           DATA "&succ;","&H0227B"
                           DATA "&succapprox;","&H02AB8"
                           DATA "&succcurlyeq;","&H0227D"
                           DATA "&Succeeds;","&H0227B"
                           DATA "&SucceedsEqual;","&H02AB0"
                           DATA "&SucceedsSlantEqual;","&H0227D"
                           DATA "&SucceedsTilde;","&H0227F"
                           DATA "&succeq;","&H02AB0"
                           DATA "&succnapprox;","&H02ABA"
                           DATA "&succneqq;","&H02AB6"
                           DATA "&succnsim;","&H022E9"
                           DATA "&succsim;","&H0227F"
                           DATA "&SuchThat;","&H0220B"
                           DATA "&Sum;","&H02211"
                           DATA "&sum;","&H02211"
                           DATA "&sung;","&H0266A"
                           DATA "&Sup;","&H022D1"
                           DATA "&sup;","&H02283"
                           DATA "&sup1;","&H000B9"
                           DATA "&sup1","&H000B9"
                           DATA "&sup2;","&H000B2"
                           DATA "&sup2","&H000B2"
                           DATA "&sup3;","&H000B3"
                           DATA "&sup3","&H000B3"
                           DATA "&supdot;","&H02ABE"
                           DATA "&supdsub;","&H02AD8"
                           DATA "&supE;","&H02AC6"
                           DATA "&supe;","&H02287"
                           DATA "&supedot;","&H02AC4"
                           DATA "&Superset;","&H02283"
                           DATA "&SupersetEqual;","&H02287"
                           DATA "&suphsol;","&H027C9"
                           DATA "&suphsub;","&H02AD7"
                           DATA "&suplarr;","&H0297B"
                           DATA "&supmult;","&H02AC2"
                           DATA "&supnE;","&H02ACC"
                           DATA "&supne;","&H0228B"
                           DATA "&supplus;","&H02AC0"
                           DATA "&Supset;","&H022D1"
                           DATA "&supset;","&H02283"
                           DATA "&supseteq;","&H02287"
                           DATA "&supseteqq;","&H02AC6"
                           DATA "&supsetneq;","&H0228B"
                           DATA "&supsetneqq;","&H02ACC"
                           DATA "&supsim;","&H02AC8"
                           DATA "&supsub;","&H02AD4"
                           DATA "&supsup;","&H02AD6"
                           DATA "&swarhk;","&H02926"
                           DATA "&swArr;","&H021D9"
                           DATA "&swarr;","&H02199"
                           DATA "&swarrow;","&H02199"
                           DATA "&swnwar;","&H0292A"
                           DATA "&szlig;","&H000DF"
                           DATA "&szlig","&H000DF"
                           DATA "&Tab;","&H00009"
                           DATA "&target;","&H02316"
                           DATA "&Tau;","&H003A4"
                           DATA "&tau;","&H003C4"
                           DATA "&tbrk;","&H023B4"
                           DATA "&Tcaron;","&H00164"
                           DATA "&tcaron;","&H00165"
                           DATA "&Tcedil;","&H00162"
                           DATA "&tcedil;","&H00163"
                           DATA "&Tcy;","&H00422"
                           DATA "&tcy;","&H00442"
                           DATA "&tdot;","&H020DB"
                           DATA "&telrec;","&H02315"
                           DATA "&Tfr;","&H1D517"
                           DATA "&tfr;","&H1D531"
                           DATA "&there4;","&H02234"
                           DATA "&Therefore;","&H02234"
                           DATA "&therefore;","&H02234"
                           DATA "&Theta;","&H00398"
                           DATA "&theta;","&H003B8"
                           DATA "&thetasym;","&H003D1"
                           DATA "&thetav;","&H003D1"
                           DATA "&thickapprox;","&H02248"
                           DATA "&thicksim;","&H0223C"
                           DATA "&ThickSpace;","&H0205F &H0200A"
                           DATA "&thinsp;","&H02009"
                           DATA "&ThinSpace;","&H02009"
                           DATA "&thkap;","&H02248"
                           DATA "&thksim;","&H0223C"
                           DATA "&THORN;","&H000DE"
                           DATA "&THORN","&H000DE"
                           DATA "&thorn;","&H000FE"
                           DATA "&thorn","&H000FE"
                           DATA "&Tilde;","&H0223C"
                           DATA "&tilde;","&H002DC"
                           DATA "&TildeEqual;","&H02243"
                           DATA "&TildeFullEqual;","&H02245"
                           DATA "&TildeTilde;","&H02248"
                           DATA "&times;","&H000D7"
                           DATA "&times","&H000D7"
                           DATA "&timesb;","&H022A0"
                           DATA "&timesbar;","&H02A31"
                           DATA "&timesd;","&H02A30"
                           DATA "&tint;","&H0222D"
                           DATA "&toea;","&H02928"
                           DATA "&top;","&H022A4"
                           DATA "&topbot;","&H02336"
                           DATA "&topcir;","&H02AF1"
                           DATA "&Topf;","&H1D54B"
                           DATA "&topf;","&H1D565"
                           DATA "&topfork;","&H02ADA"
                           DATA "&tosa;","&H02929"
                           DATA "&tprime;","&H02034"
                           DATA "&TRADE;","&H02122"
                           DATA "&trade;","&H02122"
                           DATA "&triangle;","&H025B5"
                           DATA "&triangledown;","&H025BF"
                           DATA "&triangleleft;","&H025C3"
                           DATA "&trianglelefteq;","&H022B4"
                           DATA "&triangleq;","&H0225C"
                           DATA "&triangleright;","&H025B9"
                           DATA "&trianglerighteq;","&H022B5"
                           DATA "&tridot;","&H025EC"
                           DATA "&trie;","&H0225C"
                           DATA "&triminus;","&H02A3A"
                           DATA "&TripleDot;","&H020DB"
                           DATA "&triplus;","&H02A39"
                           DATA "&trisb;","&H029CD"
                           DATA "&tritime;","&H02A3B"
                           DATA "&trpezium;","&H023E2"
                           DATA "&Tscr;","&H1D4AF"
                           DATA "&tscr;","&H1D4C9"
                           DATA "&TScy;","&H00426"
                           DATA "&tscy;","&H00446"
                           DATA "&TSHcy;","&H0040B"
                           DATA "&tshcy;","&H0045B"
                           DATA "&Tstrok;","&H00166"
                           DATA "&tstrok;","&H00167"
                           DATA "&twixt;","&H0226C"
                           DATA "&twoheadleftarrow;","&H0219E"
                           DATA "&twoheadrightarrow;","&H021A0"
                           DATA "&Uacute;","&H000DA"
                           DATA "&Uacute","&H000DA"
                           DATA "&uacute;","&H000FA"
                           DATA "&uacute","&H000FA"
                           DATA "&Uarr;","&H0219F"
                           DATA "&uArr;","&H021D1"
                           DATA "&uarr;","&H02191"
                           DATA "&Uarrocir;","&H02949"
                           DATA "&Ubrcy;","&H0040E"
                           DATA "&ubrcy;","&H0045E"
                           DATA "&Ubreve;","&H0016C"
                           DATA "&ubreve;","&H0016D"
                           DATA "&Ucirc;","&H000DB"
                           DATA "&Ucirc","&H000DB"
                           DATA "&ucirc;","&H000FB"
                           DATA "&ucirc","&H000FB"
                           DATA "&Ucy;","&H00423"
                           DATA "&ucy;","&H00443"
                           DATA "&udarr;","&H021C5"
                           DATA "&Udblac;","&H00170"
                           DATA "&udblac;","&H00171"
                           DATA "&udhar;","&H0296E"
                           DATA "&ufisht;","&H0297E"
                           DATA "&Ufr;","&H1D518"
                           DATA "&ufr;","&H1D532"
                           DATA "&Ugrave;","&H000D9"
                           DATA "&Ugrave","&H000D9"
                           DATA "&ugrave;","&H000F9"
                           DATA "&ugrave","&H000F9"
                           DATA "&uHar;","&H02963"
                           DATA "&uharl;","&H021BF"
                           DATA "&uharr;","&H021BE"
                           DATA "&uhblk;","&H02580"
                           DATA "&ulcorn;","&H0231C"
                           DATA "&ulcorner;","&H0231C"
                           DATA "&ulcrop;","&H0230F"
                           DATA "&ultri;","&H025F8"
                           DATA "&Umacr;","&H0016A"
                           DATA "&umacr;","&H0016B"
                           DATA "&uml;","&H000A8"
                           DATA "&uml","&H000A8"
                           DATA "&UnderBar;","&H0005F"
                           DATA "&UnderBrace;","&H023DF"
                           DATA "&UnderBracket;","&H023B5"
                           DATA "&UnderParenthesis;","&H023DD"
                           DATA "&Union;","&H022C3"
                           DATA "&UnionPlus;","&H0228E"
                           DATA "&Uogon;","&H00172"
                           DATA "&uogon;","&H00173"
                           DATA "&Uopf;","&H1D54C"
                           DATA "&uopf;","&H1D566"
                           DATA "&UpArrow;","&H02191"
                           DATA "&Uparrow;","&H021D1"
                           DATA "&uparrow;","&H02191"
                           DATA "&UpArrowBar;","&H02912"
                           DATA "&UpArrowDownArrow;","&H021C5"
                           DATA "&UpDownArrow;","&H02195"
                           DATA "&Updownarrow;","&H021D5"
                           DATA "&updownarrow;","&H02195"
                           DATA "&UpEquilibrium;","&H0296E"
                           DATA "&upharpoonleft;","&H021BF"
                           DATA "&upharpoonright;","&H021BE"
                           DATA "&uplus;","&H0228E"
                           DATA "&UpperLeftArrow;","&H02196"
                           DATA "&UpperRightArrow;","&H02197"
                           DATA "&Upsi;","&H003D2"
                           DATA "&upsi;","&H003C5"
                           DATA "&upsih;","&H003D2"
                           DATA "&Upsilon;","&H003A5"
                           DATA "&upsilon;","&H003C5"
                           DATA "&UpTee;","&H022A5"
                           DATA "&UpTeeArrow;","&H021A5"
                           DATA "&upuparrows;","&H021C8"
                           DATA "&urcorn;","&H0231D"
                           DATA "&urcorner;","&H0231D"
                           DATA "&urcrop;","&H0230E"
                           DATA "&Uring;","&H0016E"
                           DATA "&uring;","&H0016F"
                           DATA "&urtri;","&H025F9"
                           DATA "&Uscr;","&H1D4B0"
                           DATA "&uscr;","&H1D4CA"
                           DATA "&utdot;","&H022F0"
                           DATA "&Utilde;","&H00168"
                           DATA "&utilde;","&H00169"
                           DATA "&utri;","&H025B5"
                           DATA "&utrif;","&H025B4"
                           DATA "&uuarr;","&H021C8"
                           DATA "&Uuml;","&H000DC"
                           DATA "&Uuml","&H000DC"
                           DATA "&uuml;","&H000FC"
                           DATA "&uuml","&H000FC"
                           DATA "&uwangle;","&H029A7"
                           DATA "&vangrt;","&H0299C"
                           DATA "&varepsilon;","&H003F5"
                           DATA "&varkappa;","&H003F0"
                           DATA "&varnothing;","&H02205"
                           DATA "&varphi;","&H003D5"
                           DATA "&varpi;","&H003D6"
                           DATA "&varpropto;","&H0221D"
                           DATA "&vArr;","&H021D5"
                           DATA "&varr;","&H02195"
                           DATA "&varrho;","&H003F1"
                           DATA "&varsigma;","&H003C2"
                           DATA "&varsubsetneq;","&H0228A &H0FE00"
                           DATA "&varsubsetneqq;","&H02ACB &H0FE00"
                           DATA "&varsupsetneq;","&H0228B &H0FE00"
                           DATA "&varsupsetneqq;","&H02ACC &H0FE00"
                           DATA "&vartheta;","&H003D1"
                           DATA "&vartriangleleft;","&H022B2"
                           DATA "&vartriangleright;","&H022B3"
                           DATA "&Vbar;","&H02AEB"
                           DATA "&vBar;","&H02AE8"
                           DATA "&vBarv;","&H02AE9"
                           DATA "&Vcy;","&H00412"
                           DATA "&vcy;","&H00432"
                           DATA "&VDash;","&H022AB"
                           DATA "&Vdash;","&H022A9"
                           DATA "&vDash;","&H022A8"
                           DATA "&vdash;","&H022A2"
                           DATA "&Vdashl;","&H02AE6"
                           DATA "&Vee;","&H022C1"
                           DATA "&vee;","&H02228"
                           DATA "&veebar;","&H022BB"
                           DATA "&veeeq;","&H0225A"
                           DATA "&vellip;","&H022EE"
                           DATA "&Verbar;","&H02016"
                           DATA "&verbar;","&H0007C"
                           DATA "&Vert;","&H02016"
                           DATA "&vert;","&H0007C"
                           DATA "&VerticalBar;","&H02223"
                           DATA "&VerticalLine;","&H0007C"
                           DATA "&VerticalSeparator;","&H02758"
                           DATA "&VerticalTilde;","&H02240"
                           DATA "&VeryThinSpace;","&H0200A"
                           DATA "&Vfr;","&H1D519"
                           DATA "&vfr;","&H1D533"
                           DATA "&vltri;","&H022B2"
                           DATA "&vnsub;","&H02282 &H020D2"
                           DATA "&vnsup;","&H02283 &H020D2"
                           DATA "&Vopf;","&H1D54D"
                           DATA "&vopf;","&H1D567"
                           DATA "&vprop;","&H0221D"
                           DATA "&vrtri;","&H022B3"
                           DATA "&Vscr;","&H1D4B1"
                           DATA "&vscr;","&H1D4CB"
                           DATA "&vsubnE;","&H02ACB &H0FE00"
                           DATA "&vsubne;","&H0228A &H0FE00"
                           DATA "&vsupnE;","&H02ACC &H0FE00"
                           DATA "&vsupne;","&H0228B &H0FE00"
                           DATA "&Vvdash;","&H022AA"
                           DATA "&vzigzag;","&H0299A"
                           DATA "&Wcirc;","&H00174"
                           DATA "&wcirc;","&H00175"
                           DATA "&wedbar;","&H02A5F"
                           DATA "&Wedge;","&H022C0"
                           DATA "&wedge;","&H02227"
                           DATA "&wedgeq;","&H02259"
                           DATA "&weierp;","&H02118"
                           DATA "&Wfr;","&H1D51A"
                           DATA "&wfr;","&H1D534"
                           DATA "&Wopf;","&H1D54E"
                           DATA "&wopf;","&H1D568"
                           DATA "&wp;","&H02118"
                           DATA "&wr;","&H02240"
                           DATA "&wreath;","&H02240"
                           DATA "&Wscr;","&H1D4B2"
                           DATA "&wscr;","&H1D4CC"
                           DATA "&xcap;","&H022C2"
                           DATA "&xcirc;","&H025EF"
                           DATA "&xcup;","&H022C3"
                           DATA "&xdtri;","&H025BD"
                           DATA "&Xfr;","&H1D51B"
                           DATA "&xfr;","&H1D535"
                           DATA "&xhArr;","&H027FA"
                           DATA "&xharr;","&H027F7"
                           DATA "&Xi;","&H0039E"
                           DATA "&xi;","&H003BE"
                           DATA "&xlArr;","&H027F8"
                           DATA "&xlarr;","&H027F5"
                           DATA "&xmap;","&H027FC"
                           DATA "&xnis;","&H022FB"
                           DATA "&xodot;","&H02A00"
                           DATA "&Xopf;","&H1D54F"
                           DATA "&xopf;","&H1D569"
                           DATA "&xoplus;","&H02A01"
                           DATA "&xotime;","&H02A02"
                           DATA "&xrArr;","&H027F9"
                           DATA "&xrarr;","&H027F6"
                           DATA "&Xscr;","&H1D4B3"
                           DATA "&xscr;","&H1D4CD"
                           DATA "&xsqcup;","&H02A06"
                           DATA "&xuplus;","&H02A04"
                           DATA "&xutri;","&H025B3"
                           DATA "&xvee;","&H022C1"
                           DATA "&xwedge;","&H022C0"
                           DATA "&Yacute;","&H000DD"
                           DATA "&Yacute","&H000DD"
                           DATA "&yacute;","&H000FD"
                           DATA "&yacute","&H000FD"
                           DATA "&YAcy;","&H0042F"
                           DATA "&yacy;","&H0044F"
                           DATA "&Ycirc;","&H00176"
                           DATA "&ycirc;","&H00177"
                           DATA "&Ycy;","&H0042B"
                           DATA "&ycy;","&H0044B"
                           DATA "&yen;","&H000A5"
                           DATA "&yen","&H000A5"
                           DATA "&Yfr;","&H1D51C"
                           DATA "&yfr;","&H1D536"
                           DATA "&YIcy;","&H00407"
                           DATA "&yicy;","&H00457"
                           DATA "&Yopf;","&H1D550"
                           DATA "&yopf;","&H1D56A"
                           DATA "&Yscr;","&H1D4B4"
                           DATA "&yscr;","&H1D4CE"
                           DATA "&YUcy;","&H0042E"
                           DATA "&yucy;","&H0044E"
                           DATA "&Yuml;","&H00178"
                           DATA "&yuml;","&H000FF"
                           DATA "&yuml","&H000FF"
                           DATA "&Zacute;","&H00179"
                           DATA "&zacute;","&H0017A"
                           DATA "&Zcaron;","&H0017D"
                           DATA "&zcaron;","&H0017E"
                           DATA "&Zcy;","&H00417"
                           DATA "&zcy;","&H00437"
                           DATA "&Zdot;","&H0017B"
                           DATA "&zdot;","&H0017C"
                           DATA "&zeetrf;","&H02128"
                           DATA "&ZeroWidthSpace;","&H0200B"
                           DATA "&Zeta;","&H00396"
                           DATA "&zeta;","&H003B6"
                           DATA "&Zfr;","&H02128"
                           DATA "&zfr;","&H1D537"
                           DATA "&ZHcy;","&H00416"
                           DATA "&zhcy;","&H00436"
                           DATA "&zigrarr;","&H021DD"
                           DATA "&Zopf;","&H02124"
                           DATA "&zopf;","&H1D56B"
                           DATA "&Zscr;","&H1D4B5"
                           DATA "&zscr;","&H1D4CF"
                           DATA "&zwj;","&H0200D"
                           DATA "&zwnj;","&H0200C"
                        
                        END FUNCTION

                        Comment


                        • #13
                          Originally posted by Michael Rice View Post

                          That is a GREAT idea Stuart...SLL exercise accepted!! See code below

                          I took the overall idea of your two programs. Combined them into one and turned the whole thing into an SLL
                          It looks like some of the named entitites return multiple characters. I couldn't see where that was addressed in your code.
                          You're correct, I stripped off the second character. That was due to a misunderstanding and I shouldn't have.





                          Comment


                          • #14
                            I've come across a small problem. The "definitive list" contains code points above &HFFFF (Unicode goes up to &H10FFFF). PB can only handled the "basic multilingual plane" up to &HFFFF with CHR$$(). so there's 132 characters that can't be translated.
                            (e.g. "&zscr;","&H1D4CF" Mathematical Script Small Z)

                            Comment


                            • #15
                              Hi Stuart,
                              Well I’m totally confused about Unicode now. Until now, I’ve never needed to deal with it...my very limited understanding was that each character went from one byte to two bytes long. I’ve never heard of anything that was greater than two bytes. Now on my very first attempt at something involving Unicode...I find out that what I thought I understood was wrong.

                              So unless the hex numbering system somehow also changed on me!!! &HFFFF is exactly two bytes or 16 bits, which is 65536 unique characters... So let me get this straight...there is a language on this planet who’s alphabet requires more characters than two bytes (requiring more than 64k of characters)...and I thought English was difficult enough to learn.

                              Guess I’ll spend my day reading about Unicode!!

                              Comment


                              • #16
                                Unicode is split up into 17 blocks or "planes" each of 65536 points. The first plane (Plane 0) is the "Basic Multilingual Plane" (BMP) which contains the characters for most of the worlds spoken languages.
                                See https://en.wikipedia.org/wiki/Plane_(Unicode)

                                Planes are further subdivided into "blocks". In Plane 0, the blocks are used for the characters in different languages (Latin, Greek,Arabic etc, etc) and for various common symbols.

                                See https://en.wikipedia.org/wiki/Plane_(Unicode)

                                Higher planes are used for different "glyphs" or shapes.

                                Windows does support higher planes using "surrogate pairs".

                                See https://docs.microsoft.com/en-us/win...ary-characters

                                I haven't done anything with surrogate pairs, guess I'll have a play with PB CHR$$() and see what happens

                                Comment


                                • #17
                                  I haven’t yet followed and tried to understand the links that you have provided...I feel like finishing my coffee would be prudent before clicking those links!!

                                  But 17 planes of 65536 points...is 17 planes of 16 bits/2 bytes...correct? Where do we run into “&H10FFFF”? Whatever plane that is...seems to have more than 16 bits and thusly my headache trying to understand something that is vastly different than what I had previously understood.

                                  Comment


                                  • #18
                                    How to encode the above &zscr;","&H1D4CF" Mathematical Script Small Z in a WString using CHR$$()?
                                    CHR$$(x,y) where x and y are WORDS calcuated as follows:

                                    https://en.wikipedia.org/wiki/UTF-16...00_to_U+10FFFF

                                    Code points from the other planes (called Supplementary Planes) are encoded as two 16-bit code units called a surrogate pair, by the following scheme:

                                    0x10000 is subtracted from the code point (U), leaving a 20-bit number (U') in the hex number range 0x00000–0xFFFFF. Note for these purposes, U is defined to be no greater than 0x10FFFF.

                                    The high ten bits (in the range 0x000–0x3FF) are added to 0xD800 to give the first 16-bit code unit or high surrogate (W1), which will be in the range 0xD800–0xDBFF.

                                    The low ten bits (also in the range 0x000–0x3FF) are added to 0xDC00 to give the second 16-bit code unit or low surrogate (W2), which will be in the range 0xDC00–0xDFFF.



                                    Last edited by Stuart McLachlan; 23 Jun 2020, 08:04 AM.

                                    Comment


                                    • #19
                                      Originally posted by Michael Rice View Post
                                      So far, I can get MSXML to do the opposite of what I'm looking for... (see code below) However, that gives me hope that with some additional research and effort I will be able to do what I'm needing done.
                                      Your on the right track, Michael. Here's what I use in VB for the job:
                                      Code:
                                      Friend Function HTMLToCharCodes(ByVal sString As String) As String
                                      '------------------------------------------------------------------------------
                                      'Purpose : Function HTMLToCharCodes loads HTML text into a DOM Document.
                                      ' It then returns the text value of the document. This value converts special
                                      ' characters such as < into their HTML codes &lt;.
                                      '
                                      'Prereq. : -
                                      'Parameter: -
                                      'Returns : -
                                      'Note : -
                                      '
                                      ' Author: James Hansen(?)
                                      ' Source: http://www.vb-helper.com/howto_html_encode_decode.html
                                      ' Changed: - 10.06.2013
                                      ' Explicit declaration of XML object
                                      '------------------------------------------------------------------------------
                                      Dim oXML As MSXML2.DOMDocument60
                                      
                                      Set oXML = New MSXML2.DOMDocument60
                                      With oXML
                                         .loadXML "<p>" & sString & "</p>"
                                         HTMLToCharCodes = .selectSingleNode("p").nodeTypedValue
                                      End With
                                      
                                      End Function
                                      '--------------------------
                                      
                                      Friend Function CharCodesToHTML(ByVal sString As String) As String
                                      '------------------------------------------------------------------------------
                                      'Purpose : Function CharCodesToHTML loads an HTML string into a DOM Document node
                                      ' and then reads out its XML text. That converts special character codes
                                      ' such as &lt; into their character values <.
                                      '
                                      'Prereq. : -
                                      'Parameter: -
                                      'Returns : -
                                      'Note : Credits/Source see HTMLToCharCodes
                                      '
                                      ' Author: James Hansen(?)
                                      ' Source: -
                                      ' Changed: -
                                      '------------------------------------------------------------------------------
                                      Dim oXML As MSXML2.DOMDocument60
                                      
                                      Set oXML = New MSXML2.DOMDocument60
                                      With oXML.createTextNode(sString)
                                         CharCodesToHTML = .XML
                                      End With
                                      
                                      End Function
                                      '==============================================================================

                                      Comment


                                      • #20
                                        Knuth...Thank you for that. My post #4 is from that very same webpage. I haven’t been able to get the first one converted and working in PB yet. I gave up after I thought it wouldn’t work...see post #5. So, I’ll have another go at getting that code working and post it here if I’m successful. In case your were wondering...it was your voice going thru my head...”Don’t let the name fool you...Use MSXML...Use MSXML...Use MSXML...” LOL I’m gong to revisit that very idea...AND learn MUCH more about Unicode just because it’s time to understand it!!

                                        Stuart... So if I understand it... Maybe 2 bytes...maybe 4 bytes...bits in the first two bytes tell us if the second 2 bytes will follow? Not a new concept to computers or programmers...but certainly something that I didn’t know about Unicode. Did I understand that correctly?

                                        Comment

                                        Working...
                                        X