Hex Artifact Content
Not logged in

Artifact f85408bdab2fc6e654f3f880ad61aa0b8418a4b9:


0000: 23 20 68 74 6d 6c 70 61 72 73 65 2e 74 63 6c 20  # htmlparse.tcl 
0010: 2d 2d 0a 23 0a 23 09 54 68 69 73 20 66 69 6c 65  --.#.#.This file
0020: 20 69 6d 70 6c 65 6d 65 6e 74 73 20 61 20 73 69   implements a si
0030: 6d 70 6c 65 20 48 54 4d 4c 20 70 61 72 73 69 6e  mple HTML parsin
0040: 67 20 6c 69 62 72 61 72 79 20 69 6e 20 54 63 6c  g library in Tcl
0050: 2e 0a 23 09 49 74 20 6d 61 79 20 74 61 6b 65 20  ..#.It may take 
0060: 61 64 76 61 6e 74 61 67 65 20 6f 66 20 70 61 72  advantage of par
0070: 73 65 72 73 20 63 6f 64 65 64 20 69 6e 20 43 20  sers coded in C 
0080: 69 6e 20 74 68 65 20 66 75 74 75 72 65 2e 0a 23  in the future..#
0090: 0a 23 09 54 68 65 20 66 75 6e 63 74 69 6f 6e 61  .#.The functiona
00a0: 6c 69 74 79 20 68 65 72 65 20 69 73 20 61 20 73  lity here is a s
00b0: 75 62 73 65 74 20 6f 66 20 74 68 65 0a 23 0a 23  ubset of the.#.#
00c0: 09 09 53 69 6d 70 6c 65 20 48 54 4d 4c 20 64 69  ..Simple HTML di
00d0: 73 70 6c 61 79 20 6c 69 62 72 61 72 79 20 62 79  splay library by
00e0: 20 53 74 65 70 68 65 6e 20 55 68 6c 65 72 20 28   Stephen Uhler (
00f0: 73 74 65 70 68 65 6e 2e 75 68 6c 65 72 40 73 75  stephen.uhler@su
0100: 6e 2e 63 6f 6d 29 0a 23 09 09 43 6f 70 79 72 69  n.com).#..Copyri
0110: 67 68 74 20 28 63 29 20 31 39 39 35 20 62 79 20  ght (c) 1995 by 
0120: 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73  Sun Microsystems
0130: 0a 23 09 09 56 65 72 73 69 6f 6e 20 30 2e 33 20  .#..Version 0.3 
0140: 46 72 69 20 53 65 70 20 20 31 20 31 30 3a 34 37  Fri Sep  1 10:47
0150: 3a 31 37 20 50 44 54 20 31 39 39 35 0a 23 0a 23  :17 PDT 1995.#.#
0160: 09 54 68 65 20 6d 61 69 6e 20 72 65 73 74 72 69  .The main restri
0170: 63 74 69 6f 6e 20 69 73 20 74 68 61 74 20 61 6c  ction is that al
0180: 6c 20 54 6b 2d 72 65 6c 61 74 65 64 20 63 6f 64  l Tk-related cod
0190: 65 20 69 6e 20 74 68 65 20 61 62 6f 76 65 0a 23  e in the above.#
01a0: 09 77 61 73 20 6c 65 66 74 20 6f 75 74 20 6f 66  .was left out of
01b0: 20 74 68 65 20 63 6f 64 65 20 68 65 72 65 2e 20   the code here. 
01c0: 49 74 20 69 73 20 65 78 70 65 63 74 65 64 20 74  It is expected t
01d0: 68 61 74 20 74 68 69 73 20 63 6f 64 65 0a 23 09  hat this code.#.
01e0: 77 69 6c 6c 20 67 6f 20 69 6e 74 6f 20 61 20 27  will go into a '
01f0: 74 6b 6c 69 62 27 20 69 6e 20 74 68 65 20 66 75  tklib' in the fu
0200: 74 75 72 65 2e 0a 23 0a 23 20 43 6f 70 79 72 69  ture..#.# Copyri
0210: 67 68 74 20 28 63 29 20 32 30 30 31 20 62 79 20  ght (c) 2001 by 
0220: 41 63 74 69 76 65 53 74 61 74 65 20 54 6f 6f 6c  ActiveState Tool
0230: 20 43 6f 72 70 2e 0a 23 20 53 65 65 20 74 68 65   Corp..# See the
0240: 20 66 69 6c 65 20 6c 69 63 65 6e 73 65 2e 74 65   file license.te
0250: 72 6d 73 2e 0a 0a 70 61 63 6b 61 67 65 20 72 65  rms...package re
0260: 71 75 69 72 65 20 54 63 6c 20 20 20 20 20 20 20  quire Tcl       
0270: 38 2e 32 0a 70 61 63 6b 61 67 65 20 72 65 71 75  8.2.package requ
0280: 69 72 65 20 73 74 72 75 63 74 3a 3a 73 74 61 63  ire struct::stac
0290: 6b 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72  k.package requir
02a0: 65 20 63 6d 64 6c 69 6e 65 20 20 20 31 2e 31 0a  e cmdline   1.1.
02b0: 0a 6e 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20  .namespace eval 
02c0: 3a 3a 68 74 6d 6c 70 61 72 73 65 20 7b 0a 20 20  ::htmlparse {.  
02d0: 20 20 6e 61 6d 65 73 70 61 63 65 20 65 78 70 6f    namespace expo
02e0: 72 74 09 09 5c 0a 09 20 20 20 20 70 61 72 73 65  rt..\..    parse
02f0: 09 09 5c 0a 09 20 20 20 20 64 65 62 75 67 43 61  ..\..    debugCa
0300: 6c 6c 62 61 63 6b 09 5c 0a 09 20 20 20 20 6d 61  llback.\..    ma
0310: 70 45 73 63 61 70 65 73 09 09 5c 0a 09 20 20 20  pEscapes..\..   
0320: 20 32 74 72 65 65 09 09 5c 0a 09 20 20 20 20 72   2tree..\..    r
0330: 65 6d 6f 76 65 56 69 73 75 61 6c 46 6c 75 66 66  emoveVisualFluff
0340: 09 5c 0a 09 20 20 20 20 72 65 6d 6f 76 65 46 6f  .\..    removeFo
0350: 72 6d 44 65 66 73 0a 0a 20 20 20 20 23 20 54 61  rmDefs..    # Ta
0360: 62 6c 65 20 6f 66 20 65 73 63 61 70 65 20 63 68  ble of escape ch
0370: 61 72 61 63 74 65 72 73 2e 20 4d 61 70 73 20 66  aracters. Maps f
0380: 72 6f 6d 20 74 68 65 69 72 20 6e 61 6d 65 73 20  rom their names 
0390: 74 6f 20 74 68 65 20 61 63 74 75 61 6c 0a 20 20  to the actual.  
03a0: 20 20 23 20 63 68 61 72 61 63 74 65 72 2e 20 20    # character.  
03b0: 53 65 65 20 68 74 74 70 3a 2f 2f 68 74 6d 6c 68  See http://htmlh
03c0: 65 6c 70 2e 6f 72 67 2f 72 65 66 65 72 65 6e 63  elp.org/referenc
03d0: 65 2f 68 74 6d 6c 34 30 2f 65 6e 74 69 74 69 65  e/html40/entitie
03e0: 73 2f 0a 0a 20 20 20 20 76 61 72 69 61 62 6c 65  s/..    variable
03f0: 20 6e 61 6d 65 64 45 6e 74 69 74 69 65 73 0a 0a   namedEntities..
0400: 20 20 20 20 23 20 49 2e 20 4c 61 74 69 6e 2d 31      # I. Latin-1
0410: 20 45 6e 74 69 74 69 65 73 20 28 48 54 4d 4c 20   Entities (HTML 
0420: 34 2e 30 31 29 0a 20 20 20 20 61 72 72 61 79 20  4.01).    array 
0430: 73 65 74 20 6e 61 6d 65 64 45 6e 74 69 74 69 65  set namedEntitie
0440: 73 20 7b 0a 09 6e 62 73 70 20 5c 78 61 30 20 69  s {..nbsp \xa0 i
0450: 65 78 63 6c 20 5c 78 61 31 20 63 65 6e 74 20 5c  excl \xa1 cent \
0460: 78 61 32 20 70 6f 75 6e 64 20 5c 78 61 33 20 63  xa2 pound \xa3 c
0470: 75 72 72 65 6e 20 5c 78 61 34 0a 09 79 65 6e 20  urren \xa4..yen 
0480: 5c 78 61 35 20 62 72 76 62 61 72 20 5c 78 61 36  \xa5 brvbar \xa6
0490: 20 73 65 63 74 20 5c 78 61 37 20 75 6d 6c 20 5c   sect \xa7 uml \
04a0: 78 61 38 20 63 6f 70 79 20 5c 78 61 39 0a 09 6f  xa8 copy \xa9..o
04b0: 72 64 66 20 5c 78 61 61 20 6c 61 71 75 6f 20 5c  rdf \xaa laquo \
04c0: 78 61 62 20 6e 6f 74 20 5c 78 61 63 20 73 68 79  xab not \xac shy
04d0: 20 5c 78 61 64 20 72 65 67 20 5c 78 61 65 0a 09   \xad reg \xae..
04e0: 6d 61 63 72 20 5c 78 61 66 20 64 65 67 20 5c 78  macr \xaf deg \x
04f0: 62 30 20 70 6c 75 73 6d 6e 20 5c 78 62 31 20 73  b0 plusmn \xb1 s
0500: 75 70 32 20 5c 78 62 32 20 73 75 70 33 20 5c 78  up2 \xb2 sup3 \x
0510: 62 33 0a 09 61 63 75 74 65 20 5c 78 62 34 20 6d  b3..acute \xb4 m
0520: 69 63 72 6f 20 5c 78 62 35 20 70 61 72 61 20 5c  icro \xb5 para \
0530: 78 62 36 20 6d 69 64 64 6f 74 20 5c 78 62 37 20  xb6 middot \xb7 
0540: 63 65 64 69 6c 20 5c 78 62 38 0a 09 73 75 70 31  cedil \xb8..sup1
0550: 20 5c 78 62 39 20 6f 72 64 6d 20 5c 78 62 61 20   \xb9 ordm \xba 
0560: 72 61 71 75 6f 20 5c 78 62 62 20 66 72 61 63 31  raquo \xbb frac1
0570: 34 20 5c 78 62 63 20 66 72 61 63 31 32 20 5c 78  4 \xbc frac12 \x
0580: 62 64 0a 09 66 72 61 63 33 34 20 5c 78 62 65 20  bd..frac34 \xbe 
0590: 69 71 75 65 73 74 20 5c 78 62 66 20 41 67 72 61  iquest \xbf Agra
05a0: 76 65 20 5c 78 63 30 20 41 61 63 75 74 65 20 5c  ve \xc0 Aacute \
05b0: 78 63 31 20 41 63 69 72 63 20 5c 78 63 32 0a 09  xc1 Acirc \xc2..
05c0: 41 74 69 6c 64 65 20 5c 78 63 33 20 41 75 6d 6c  Atilde \xc3 Auml
05d0: 20 5c 78 63 34 20 41 72 69 6e 67 20 5c 78 63 35   \xc4 Aring \xc5
05e0: 20 41 45 6c 69 67 20 5c 78 63 36 20 43 63 65 64   AElig \xc6 Cced
05f0: 69 6c 20 5c 78 63 37 0a 09 45 67 72 61 76 65 20  il \xc7..Egrave 
0600: 5c 78 63 38 20 45 61 63 75 74 65 20 5c 78 63 39  \xc8 Eacute \xc9
0610: 20 45 63 69 72 63 20 5c 78 63 61 20 45 75 6d 6c   Ecirc \xca Euml
0620: 20 5c 78 63 62 20 49 67 72 61 76 65 20 5c 78 63   \xcb Igrave \xc
0630: 63 0a 09 49 61 63 75 74 65 20 5c 78 63 64 20 49  c..Iacute \xcd I
0640: 63 69 72 63 20 5c 78 63 65 20 49 75 6d 6c 20 5c  circ \xce Iuml \
0650: 78 63 66 20 45 54 48 20 5c 78 64 30 20 4e 74 69  xcf ETH \xd0 Nti
0660: 6c 64 65 20 5c 78 64 31 0a 09 4f 67 72 61 76 65  lde \xd1..Ograve
0670: 20 5c 78 64 32 20 4f 61 63 75 74 65 20 5c 78 64   \xd2 Oacute \xd
0680: 33 20 4f 63 69 72 63 20 5c 78 64 34 20 4f 74 69  3 Ocirc \xd4 Oti
0690: 6c 64 65 20 5c 78 64 35 20 4f 75 6d 6c 20 5c 78  lde \xd5 Ouml \x
06a0: 64 36 0a 09 74 69 6d 65 73 20 5c 78 64 37 20 4f  d6..times \xd7 O
06b0: 73 6c 61 73 68 20 5c 78 64 38 20 55 67 72 61 76  slash \xd8 Ugrav
06c0: 65 20 5c 78 64 39 20 55 61 63 75 74 65 20 5c 78  e \xd9 Uacute \x
06d0: 64 61 20 55 63 69 72 63 20 5c 78 64 62 0a 09 55  da Ucirc \xdb..U
06e0: 75 6d 6c 20 5c 78 64 63 20 59 61 63 75 74 65 20  uml \xdc Yacute 
06f0: 5c 78 64 64 20 54 48 4f 52 4e 20 5c 78 64 65 20  \xdd THORN \xde 
0700: 73 7a 6c 69 67 20 5c 78 64 66 20 61 67 72 61 76  szlig \xdf agrav
0710: 65 20 5c 78 65 30 0a 09 61 61 63 75 74 65 20 5c  e \xe0..aacute \
0720: 78 65 31 20 61 63 69 72 63 20 5c 78 65 32 20 61  xe1 acirc \xe2 a
0730: 74 69 6c 64 65 20 5c 78 65 33 20 61 75 6d 6c 20  tilde \xe3 auml 
0740: 5c 78 65 34 20 61 72 69 6e 67 20 5c 78 65 35 0a  \xe4 aring \xe5.
0750: 09 61 65 6c 69 67 20 5c 78 65 36 20 63 63 65 64  .aelig \xe6 cced
0760: 69 6c 20 5c 78 65 37 20 65 67 72 61 76 65 20 5c  il \xe7 egrave \
0770: 78 65 38 20 65 61 63 75 74 65 20 5c 78 65 39 20  xe8 eacute \xe9 
0780: 65 63 69 72 63 20 5c 78 65 61 0a 09 65 75 6d 6c  ecirc \xea..euml
0790: 20 5c 78 65 62 20 69 67 72 61 76 65 20 5c 78 65   \xeb igrave \xe
07a0: 63 20 69 61 63 75 74 65 20 5c 78 65 64 20 69 63  c iacute \xed ic
07b0: 69 72 63 20 5c 78 65 65 20 69 75 6d 6c 20 5c 78  irc \xee iuml \x
07c0: 65 66 0a 09 65 74 68 20 5c 78 66 30 20 6e 74 69  ef..eth \xf0 nti
07d0: 6c 64 65 20 5c 78 66 31 20 6f 67 72 61 76 65 20  lde \xf1 ograve 
07e0: 5c 78 66 32 20 6f 61 63 75 74 65 20 5c 78 66 33  \xf2 oacute \xf3
07f0: 20 6f 63 69 72 63 20 5c 78 66 34 0a 09 6f 74 69   ocirc \xf4..oti
0800: 6c 64 65 20 5c 78 66 35 20 6f 75 6d 6c 20 5c 78  lde \xf5 ouml \x
0810: 66 36 20 64 69 76 69 64 65 20 5c 78 66 37 20 6f  f6 divide \xf7 o
0820: 73 6c 61 73 68 20 5c 78 66 38 20 75 67 72 61 76  slash \xf8 ugrav
0830: 65 20 5c 78 66 39 0a 09 75 61 63 75 74 65 20 5c  e \xf9..uacute \
0840: 78 66 61 20 75 63 69 72 63 20 5c 78 66 62 20 75  xfa ucirc \xfb u
0850: 75 6d 6c 20 5c 78 66 63 20 79 61 63 75 74 65 20  uml \xfc yacute 
0860: 5c 78 66 64 20 74 68 6f 72 6e 20 5c 78 66 65 0a  \xfd thorn \xfe.
0870: 09 79 75 6d 6c 20 5c 78 66 66 0a 20 20 20 20 7d  .yuml \xff.    }
0880: 0a 0a 20 20 20 20 23 20 49 49 2e 20 45 6e 74 69  ..    # II. Enti
0890: 74 69 65 73 20 66 6f 72 20 53 79 6d 62 6f 6c 73  ties for Symbols
08a0: 20 61 6e 64 20 47 72 65 65 6b 20 4c 65 74 74 65   and Greek Lette
08b0: 72 73 20 28 48 54 4d 4c 20 34 2e 30 31 29 0a 20  rs (HTML 4.01). 
08c0: 20 20 20 61 72 72 61 79 20 73 65 74 20 6e 61 6d     array set nam
08d0: 65 64 45 6e 74 69 74 69 65 73 20 7b 0a 09 66 6e  edEntities {..fn
08e0: 6f 66 20 5c 75 31 39 32 20 41 6c 70 68 61 20 5c  of \u192 Alpha \
08f0: 75 33 39 31 20 42 65 74 61 20 5c 75 33 39 32 20  u391 Beta \u392 
0900: 47 61 6d 6d 61 20 5c 75 33 39 33 20 44 65 6c 74  Gamma \u393 Delt
0910: 61 20 5c 75 33 39 34 0a 09 45 70 73 69 6c 6f 6e  a \u394..Epsilon
0920: 20 5c 75 33 39 35 20 5a 65 74 61 20 5c 75 33 39   \u395 Zeta \u39
0930: 36 20 45 74 61 20 5c 75 33 39 37 20 54 68 65 74  6 Eta \u397 Thet
0940: 61 20 5c 75 33 39 38 20 49 6f 74 61 20 5c 75 33  a \u398 Iota \u3
0950: 39 39 0a 09 4b 61 70 70 61 20 5c 75 33 39 41 20  99..Kappa \u39A 
0960: 4c 61 6d 62 64 61 20 5c 75 33 39 42 20 4d 75 20  Lambda \u39B Mu 
0970: 5c 75 33 39 43 20 4e 75 20 5c 75 33 39 44 20 58  \u39C Nu \u39D X
0980: 69 20 5c 75 33 39 45 0a 09 4f 6d 69 63 72 6f 6e  i \u39E..Omicron
0990: 20 5c 75 33 39 46 20 50 69 20 5c 75 33 41 30 20   \u39F Pi \u3A0 
09a0: 52 68 6f 20 5c 75 33 41 31 20 53 69 67 6d 61 20  Rho \u3A1 Sigma 
09b0: 5c 75 33 41 33 20 54 61 75 20 5c 75 33 41 34 0a  \u3A3 Tau \u3A4.
09c0: 09 55 70 73 69 6c 6f 6e 20 5c 75 33 41 35 20 50  .Upsilon \u3A5 P
09d0: 68 69 20 5c 75 33 41 36 20 43 68 69 20 5c 75 33  hi \u3A6 Chi \u3
09e0: 41 37 20 50 73 69 20 5c 75 33 41 38 20 4f 6d 65  A7 Psi \u3A8 Ome
09f0: 67 61 20 5c 75 33 41 39 0a 09 61 6c 70 68 61 20  ga \u3A9..alpha 
0a00: 5c 75 33 42 31 20 62 65 74 61 20 5c 75 33 42 32  \u3B1 beta \u3B2
0a10: 20 67 61 6d 6d 61 20 5c 75 33 42 33 20 64 65 6c   gamma \u3B3 del
0a20: 74 61 20 5c 75 33 42 34 20 65 70 73 69 6c 6f 6e  ta \u3B4 epsilon
0a30: 20 5c 75 33 42 35 0a 09 7a 65 74 61 20 5c 75 33   \u3B5..zeta \u3
0a40: 42 36 20 65 74 61 20 5c 75 33 42 37 20 74 68 65  B6 eta \u3B7 the
0a50: 74 61 20 5c 75 33 42 38 20 69 6f 74 61 20 5c 75  ta \u3B8 iota \u
0a60: 33 42 39 20 6b 61 70 70 61 20 5c 75 33 42 41 0a  3B9 kappa \u3BA.
0a70: 09 6c 61 6d 62 64 61 20 5c 75 33 42 42 20 6d 75  .lambda \u3BB mu
0a80: 20 5c 75 33 42 43 20 6e 75 20 5c 75 33 42 44 20   \u3BC nu \u3BD 
0a90: 78 69 20 5c 75 33 42 45 20 6f 6d 69 63 72 6f 6e  xi \u3BE omicron
0aa0: 20 5c 75 33 42 46 0a 09 70 69 20 5c 75 33 43 30   \u3BF..pi \u3C0
0ab0: 20 72 68 6f 20 5c 75 33 43 31 20 73 69 67 6d 61   rho \u3C1 sigma
0ac0: 66 20 5c 75 33 43 32 20 73 69 67 6d 61 20 5c 75  f \u3C2 sigma \u
0ad0: 33 43 33 20 74 61 75 20 5c 75 33 43 34 0a 09 75  3C3 tau \u3C4..u
0ae0: 70 73 69 6c 6f 6e 20 5c 75 33 43 35 20 70 68 69  psilon \u3C5 phi
0af0: 20 5c 75 33 43 36 20 63 68 69 20 5c 75 33 43 37   \u3C6 chi \u3C7
0b00: 20 70 73 69 20 5c 75 33 43 38 20 6f 6d 65 67 61   psi \u3C8 omega
0b10: 20 5c 75 33 43 39 0a 09 74 68 65 74 61 73 79 6d   \u3C9..thetasym
0b20: 20 5c 75 33 44 31 20 75 70 73 69 68 20 5c 75 33   \u3D1 upsih \u3
0b30: 44 32 20 70 69 76 20 5c 75 33 44 36 20 62 75 6c  D2 piv \u3D6 bul
0b40: 6c 20 5c 75 32 30 32 32 0a 09 68 65 6c 6c 69 70  l \u2022..hellip
0b50: 20 5c 75 32 30 32 36 20 70 72 69 6d 65 20 5c 75   \u2026 prime \u
0b60: 32 30 33 32 20 50 72 69 6d 65 20 5c 75 32 30 33  2032 Prime \u203
0b70: 33 20 6f 6c 69 6e 65 20 5c 75 32 30 33 45 0a 09  3 oline \u203E..
0b80: 66 72 61 73 6c 20 5c 75 32 30 34 34 20 77 65 69  frasl \u2044 wei
0b90: 65 72 70 20 5c 75 32 31 31 38 20 69 6d 61 67 65  erp \u2118 image
0ba0: 20 5c 75 32 31 31 31 20 72 65 61 6c 20 5c 75 32   \u2111 real \u2
0bb0: 31 31 43 0a 09 74 72 61 64 65 20 5c 75 32 31 32  11C..trade \u212
0bc0: 32 20 61 6c 65 66 73 79 6d 20 5c 75 32 31 33 35  2 alefsym \u2135
0bd0: 20 6c 61 72 72 20 5c 75 32 31 39 30 20 75 61 72   larr \u2190 uar
0be0: 72 20 5c 75 32 31 39 31 0a 09 72 61 72 72 20 5c  r \u2191..rarr \
0bf0: 75 32 31 39 32 20 64 61 72 72 20 5c 75 32 31 39  u2192 darr \u219
0c00: 33 20 68 61 72 72 20 5c 75 32 31 39 34 20 63 72  3 harr \u2194 cr
0c10: 61 72 72 20 5c 75 32 31 42 35 0a 09 6c 41 72 72  arr \u21B5..lArr
0c20: 20 5c 75 32 31 44 30 20 75 41 72 72 20 5c 75 32   \u21D0 uArr \u2
0c30: 31 44 31 20 72 41 72 72 20 5c 75 32 31 44 32 20  1D1 rArr \u21D2 
0c40: 64 41 72 72 20 5c 75 32 31 44 33 20 68 41 72 72  dArr \u21D3 hArr
0c50: 20 5c 75 32 31 44 34 0a 09 66 6f 72 61 6c 6c 20   \u21D4..forall 
0c60: 5c 75 32 32 30 30 20 70 61 72 74 20 5c 75 32 32  \u2200 part \u22
0c70: 30 32 20 65 78 69 73 74 20 5c 75 32 32 30 33 20  02 exist \u2203 
0c80: 65 6d 70 74 79 20 5c 75 32 32 30 35 0a 09 6e 61  empty \u2205..na
0c90: 62 6c 61 20 5c 75 32 32 30 37 20 69 73 69 6e 20  bla \u2207 isin 
0ca0: 5c 75 32 32 30 38 20 6e 6f 74 69 6e 20 5c 75 32  \u2208 notin \u2
0cb0: 32 30 39 20 6e 69 20 5c 75 32 32 30 42 20 70 72  209 ni \u220B pr
0cc0: 6f 64 20 5c 75 32 32 30 46 0a 09 73 75 6d 20 5c  od \u220F..sum \
0cd0: 75 32 32 31 31 20 6d 69 6e 75 73 20 5c 75 32 32  u2211 minus \u22
0ce0: 31 32 20 6c 6f 77 61 73 74 20 5c 75 32 32 31 37  12 lowast \u2217
0cf0: 20 72 61 64 69 63 20 5c 75 32 32 31 41 0a 09 70   radic \u221A..p
0d00: 72 6f 70 20 5c 75 32 32 31 44 20 69 6e 66 69 6e  rop \u221D infin
0d10: 20 5c 75 32 32 31 45 20 61 6e 67 20 5c 75 32 32   \u221E ang \u22
0d20: 32 30 20 61 6e 64 20 5c 75 32 32 32 37 20 6f 72  20 and \u2227 or
0d30: 20 5c 75 32 32 32 38 0a 09 63 61 70 20 5c 75 32   \u2228..cap \u2
0d40: 32 32 39 20 63 75 70 20 5c 75 32 32 32 41 20 69  229 cup \u222A i
0d50: 6e 74 20 5c 75 32 32 32 42 20 74 68 65 72 65 34  nt \u222B there4
0d60: 20 5c 75 32 32 33 34 20 73 69 6d 20 5c 75 32 32   \u2234 sim \u22
0d70: 33 43 0a 09 63 6f 6e 67 20 5c 75 32 32 34 35 20  3C..cong \u2245 
0d80: 61 73 79 6d 70 20 5c 75 32 32 34 38 20 6e 65 20  asymp \u2248 ne 
0d90: 5c 75 32 32 36 30 20 65 71 75 69 76 20 5c 75 32  \u2260 equiv \u2
0da0: 32 36 31 20 6c 65 20 5c 75 32 32 36 34 0a 09 67  261 le \u2264..g
0db0: 65 20 5c 75 32 32 36 35 20 73 75 62 20 5c 75 32  e \u2265 sub \u2
0dc0: 32 38 32 20 73 75 70 20 5c 75 32 32 38 33 20 6e  282 sup \u2283 n
0dd0: 73 75 62 20 5c 75 32 32 38 34 20 73 75 62 65 20  sub \u2284 sube 
0de0: 5c 75 32 32 38 36 0a 09 73 75 70 65 20 5c 75 32  \u2286..supe \u2
0df0: 32 38 37 20 6f 70 6c 75 73 20 5c 75 32 32 39 35  287 oplus \u2295
0e00: 20 6f 74 69 6d 65 73 20 5c 75 32 32 39 37 20 70   otimes \u2297 p
0e10: 65 72 70 20 5c 75 32 32 41 35 0a 09 73 64 6f 74  erp \u22A5..sdot
0e20: 20 5c 75 32 32 43 35 20 6c 63 65 69 6c 20 5c 75   \u22C5 lceil \u
0e30: 32 33 30 38 20 72 63 65 69 6c 20 5c 75 32 33 30  2308 rceil \u230
0e40: 39 20 6c 66 6c 6f 6f 72 20 5c 75 32 33 30 41 0a  9 lfloor \u230A.
0e50: 09 72 66 6c 6f 6f 72 20 5c 75 32 33 30 42 20 6c  .rfloor \u230B l
0e60: 61 6e 67 20 5c 75 32 33 32 39 20 72 61 6e 67 20  ang \u2329 rang 
0e70: 5c 75 32 33 32 41 20 6c 6f 7a 20 5c 75 32 35 43  \u232A loz \u25C
0e80: 41 0a 09 73 70 61 64 65 73 20 5c 75 32 36 36 30  A..spades \u2660
0e90: 20 63 6c 75 62 73 20 5c 75 32 36 36 33 20 68 65   clubs \u2663 he
0ea0: 61 72 74 73 20 5c 75 32 36 36 35 20 64 69 61 6d  arts \u2665 diam
0eb0: 73 20 5c 75 32 36 36 36 0a 20 20 20 20 7d 0a 0a  s \u2666.    }..
0ec0: 20 20 20 20 23 20 49 49 49 2e 20 53 70 65 63 69      # III. Speci
0ed0: 61 6c 20 45 6e 74 69 74 69 65 73 20 28 48 54 4d  al Entities (HTM
0ee0: 4c 20 34 2e 30 31 29 0a 20 20 20 20 61 72 72 61  L 4.01).    arra
0ef0: 79 20 73 65 74 20 6e 61 6d 65 64 45 6e 74 69 74  y set namedEntit
0f00: 69 65 73 20 7b 0a 09 71 75 6f 74 20 5c 78 32 32  ies {..quot \x22
0f10: 20 61 6d 70 20 5c 78 32 36 20 6c 74 20 5c 78 33   amp \x26 lt \x3
0f20: 43 20 67 74 20 5c 78 33 45 20 4f 45 6c 69 67 20  C gt \x3E OElig 
0f30: 5c 75 31 35 32 20 6f 65 6c 69 67 20 5c 75 31 35  \u152 oelig \u15
0f40: 33 0a 09 53 63 61 72 6f 6e 20 5c 75 31 36 30 20  3..Scaron \u160 
0f50: 73 63 61 72 6f 6e 20 5c 75 31 36 31 20 59 75 6d  scaron \u161 Yum
0f60: 6c 20 5c 75 31 37 38 20 63 69 72 63 20 5c 75 32  l \u178 circ \u2
0f70: 43 36 0a 09 74 69 6c 64 65 20 5c 75 32 44 43 20  C6..tilde \u2DC 
0f80: 65 6e 73 70 20 5c 75 32 30 30 32 20 65 6d 73 70  ensp \u2002 emsp
0f90: 20 5c 75 32 30 30 33 20 74 68 69 6e 73 70 20 5c   \u2003 thinsp \
0fa0: 75 32 30 30 39 0a 09 7a 77 6e 6a 20 5c 75 32 30  u2009..zwnj \u20
0fb0: 30 43 20 7a 77 6a 20 5c 75 32 30 30 44 20 6c 72  0C zwj \u200D lr
0fc0: 6d 20 5c 75 32 30 30 45 20 72 6c 6d 20 5c 75 32  m \u200E rlm \u2
0fd0: 30 30 46 20 6e 64 61 73 68 20 5c 75 32 30 31 33  00F ndash \u2013
0fe0: 0a 09 6d 64 61 73 68 20 5c 75 32 30 31 34 20 6c  ..mdash \u2014 l
0ff0: 73 71 75 6f 20 5c 75 32 30 31 38 20 72 73 71 75  squo \u2018 rsqu
1000: 6f 20 5c 75 32 30 31 39 20 73 62 71 75 6f 20 5c  o \u2019 sbquo \
1010: 75 32 30 31 41 0a 09 6c 64 71 75 6f 20 5c 75 32  u201A..ldquo \u2
1020: 30 31 43 20 72 64 71 75 6f 20 5c 75 32 30 31 44  01C rdquo \u201D
1030: 20 62 64 71 75 6f 20 5c 75 32 30 31 45 20 64 61   bdquo \u201E da
1040: 67 67 65 72 20 5c 75 32 30 32 30 0a 09 44 61 67  gger \u2020..Dag
1050: 67 65 72 20 5c 75 32 30 32 31 20 70 65 72 6d 69  ger \u2021 permi
1060: 6c 20 5c 75 32 30 33 30 20 6c 73 61 71 75 6f 20  l \u2030 lsaquo 
1070: 5c 75 32 30 33 39 20 72 73 61 71 75 6f 20 5c 75  \u2039 rsaquo \u
1080: 32 30 33 41 0a 09 65 75 72 6f 20 5c 75 32 30 41  203A..euro \u20A
1090: 43 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 49  C.    }..    # I
10a0: 56 2e 20 53 70 65 63 69 61 6c 20 45 6e 74 69 74  V. Special Entit
10b0: 69 65 73 20 28 58 48 54 4d 4c 2c 20 58 4d 4c 29  ies (XHTML, XML)
10c0: 0a 20 20 20 20 61 72 72 61 79 20 73 65 74 20 6e  .    array set n
10d0: 61 6d 65 64 45 6e 74 69 74 69 65 73 20 7b 0a 09  amedEntities {..
10e0: 61 70 6f 73 20 5c 75 30 30 32 37 0a 20 20 20 20  apos \u0027.    
10f0: 7d 0a 0a 20 20 20 20 23 20 48 54 4d 4c 35 20 73  }..    # HTML5 s
1100: 65 63 74 69 6f 6e 20 38 2e 35 20 4e 61 6d 65 64  ection 8.5 Named
1110: 20 63 68 61 72 61 63 74 65 72 20 72 65 66 65 72   character refer
1120: 65 6e 63 65 73 20 28 61 64 64 69 74 69 6f 6e 73  ences (additions
1130: 20 6f 6e 6c 79 29 0a 20 20 20 20 23 20 68 74 74   only).    # htt
1140: 70 3a 2f 2f 77 77 77 2e 77 33 2e 6f 72 67 2f 54  p://www.w3.org/T
1150: 52 2f 32 30 31 31 2f 57 44 2d 68 74 6d 6c 35 2d  R/2011/WD-html5-
1160: 32 30 31 31 30 31 31 33 2f 6e 61 6d 65 64 2d 63  20110113/named-c
1170: 68 61 72 61 63 74 65 72 2d 72 65 66 65 72 65 6e  haracter-referen
1180: 63 65 73 2e 68 74 6d 6c 0a 0a 20 20 20 20 61 72  ces.html..    ar
1190: 72 61 79 20 73 65 74 20 6e 61 6d 65 64 45 6e 74  ray set namedEnt
11a0: 69 74 69 65 73 20 7b 0a 09 41 62 72 65 76 65 20  ities {..Abreve 
11b0: 5c 75 31 30 32 20 20 61 62 72 65 76 65 20 5c 75  \u102  abreve \u
11c0: 31 30 33 20 20 61 63 20 5c 75 32 32 33 65 20 20  103  ac \u223e  
11d0: 61 63 64 20 5c 75 32 32 33 66 20 0a 09 61 63 45  acd \u223f ..acE
11e0: 20 5c 75 32 32 33 65 5c 75 33 33 33 20 20 41 63   \u223e\u333  Ac
11f0: 79 20 5c 75 34 31 30 20 20 61 63 79 20 5c 75 34  y \u410  acy \u4
1200: 33 30 20 20 61 66 20 5c 75 32 30 36 31 20 0a 09  30  af \u2061 ..
1210: 41 66 72 20 5c 75 64 38 33 35 5c 75 64 64 30 34  Afr \ud835\udd04
1220: 20 20 61 66 72 20 5c 75 64 38 33 35 5c 75 64 64    afr \ud835\udd
1230: 31 65 20 20 61 6c 65 70 68 20 5c 75 32 31 33 35  1e  aleph \u2135
1240: 20 20 41 6d 61 63 72 20 5c 75 31 30 30 20 0a 09    Amacr \u100 ..
1250: 61 6d 61 63 72 20 5c 75 31 30 31 20 20 61 6d 61  amacr \u101  ama
1260: 6c 67 20 5c 75 32 61 33 66 20 20 41 4d 50 20 5c  lg \u2a3f  AMP \
1270: 75 32 36 20 20 61 6e 64 61 6e 64 20 5c 75 32 61  u26  andand \u2a
1280: 35 35 20 20 41 6e 64 20 5c 75 32 61 35 33 20 0a  55  And \u2a53 .
1290: 09 61 6e 64 64 20 5c 75 32 61 35 63 20 20 61 6e  .andd \u2a5c  an
12a0: 64 73 6c 6f 70 65 20 5c 75 32 61 35 38 20 20 61  dslope \u2a58  a
12b0: 6e 64 76 20 5c 75 32 61 35 61 20 20 61 6e 67 65  ndv \u2a5a  ange
12c0: 20 5c 75 32 39 61 34 20 0a 09 61 6e 67 6c 65 20   \u29a4 ..angle 
12d0: 5c 75 32 32 32 30 20 20 61 6e 67 6d 73 64 61 61  \u2220  angmsdaa
12e0: 20 5c 75 32 39 61 38 20 20 61 6e 67 6d 73 64 61   \u29a8  angmsda
12f0: 62 20 5c 75 32 39 61 39 20 20 61 6e 67 6d 73 64  b \u29a9  angmsd
1300: 61 63 20 5c 75 32 39 61 61 20 0a 09 61 6e 67 6d  ac \u29aa ..angm
1310: 73 64 61 64 20 5c 75 32 39 61 62 20 20 61 6e 67  sdad \u29ab  ang
1320: 6d 73 64 61 65 20 5c 75 32 39 61 63 20 20 61 6e  msdae \u29ac  an
1330: 67 6d 73 64 61 66 20 5c 75 32 39 61 64 20 0a 09  gmsdaf \u29ad ..
1340: 61 6e 67 6d 73 64 61 67 20 5c 75 32 39 61 65 20  angmsdag \u29ae 
1350: 20 61 6e 67 6d 73 64 61 68 20 5c 75 32 39 61 66   angmsdah \u29af
1360: 20 20 61 6e 67 6d 73 64 20 5c 75 32 32 32 31 20    angmsd \u2221 
1370: 20 61 6e 67 72 74 20 5c 75 32 32 31 66 20 0a 09   angrt \u221f ..
1380: 61 6e 67 72 74 76 62 20 5c 75 32 32 62 65 20 20  angrtvb \u22be  
1390: 61 6e 67 72 74 76 62 64 20 5c 75 32 39 39 64 20  angrtvbd \u299d 
13a0: 20 61 6e 67 73 70 68 20 5c 75 32 32 32 32 20 20   angsph \u2222  
13b0: 61 6e 67 73 74 20 5c 75 63 35 20 0a 09 61 6e 67  angst \uc5 ..ang
13c0: 7a 61 72 72 20 5c 75 32 33 37 63 20 20 41 6f 67  zarr \u237c  Aog
13d0: 6f 6e 20 5c 75 31 30 34 20 20 61 6f 67 6f 6e 20  on \u104  aogon 
13e0: 5c 75 31 30 35 20 20 41 6f 70 66 20 5c 75 64 38  \u105  Aopf \ud8
13f0: 33 35 5c 75 64 64 33 38 20 0a 09 61 6f 70 66 20  35\udd38 ..aopf 
1400: 5c 75 64 38 33 35 5c 75 64 64 35 32 20 20 61 70  \ud835\udd52  ap
1410: 61 63 69 72 20 5c 75 32 61 36 66 20 20 61 70 20  acir \u2a6f  ap 
1420: 5c 75 32 32 34 38 20 20 61 70 45 20 5c 75 32 61  \u2248  apE \u2a
1430: 37 30 20 0a 09 61 70 65 20 5c 75 32 32 34 61 20  70 ..ape \u224a 
1440: 20 61 70 69 64 20 5c 75 32 32 34 62 20 20 41 70   apid \u224b  Ap
1450: 70 6c 79 46 75 6e 63 74 69 6f 6e 20 5c 75 32 30  plyFunction \u20
1460: 36 31 20 20 61 70 70 72 6f 78 20 5c 75 32 32 34  61  approx \u224
1470: 38 20 0a 09 61 70 70 72 6f 78 65 71 20 5c 75 32  8 ..approxeq \u2
1480: 32 34 61 20 20 41 73 63 72 20 5c 75 64 38 33 35  24a  Ascr \ud835
1490: 5c 75 64 63 39 63 20 20 61 73 63 72 20 5c 75 64  \udc9c  ascr \ud
14a0: 38 33 35 5c 75 64 63 62 36 20 0a 09 41 73 73 69  835\udcb6 ..Assi
14b0: 67 6e 20 5c 75 32 32 35 34 20 20 61 73 74 20 5c  gn \u2254  ast \
14c0: 75 32 61 20 20 61 73 79 6d 70 65 71 20 5c 75 32  u2a  asympeq \u2
14d0: 32 34 64 20 20 61 77 63 6f 6e 69 6e 74 20 5c 75  24d  awconint \u
14e0: 32 32 33 33 20 0a 09 61 77 69 6e 74 20 5c 75 32  2233 ..awint \u2
14f0: 61 31 31 20 20 62 61 63 6b 63 6f 6e 67 20 5c 75  a11  backcong \u
1500: 32 32 34 63 20 20 62 61 63 6b 65 70 73 69 6c 6f  224c  backepsilo
1510: 6e 20 5c 75 33 66 36 20 0a 09 62 61 63 6b 70 72  n \u3f6 ..backpr
1520: 69 6d 65 20 5c 75 32 30 33 35 20 20 62 61 63 6b  ime \u2035  back
1530: 73 69 6d 20 5c 75 32 32 33 64 20 20 62 61 63 6b  sim \u223d  back
1540: 73 69 6d 65 71 20 5c 75 32 32 63 64 20 0a 09 42  simeq \u22cd ..B
1550: 61 63 6b 73 6c 61 73 68 20 5c 75 32 32 31 36 20  ackslash \u2216 
1560: 20 42 61 72 76 20 5c 75 32 61 65 37 20 20 62 61   Barv \u2ae7  ba
1570: 72 76 65 65 20 5c 75 32 32 62 64 20 20 62 61 72  rvee \u22bd  bar
1580: 77 65 64 20 5c 75 32 33 30 35 20 0a 09 42 61 72  wed \u2305 ..Bar
1590: 77 65 64 20 5c 75 32 33 30 36 20 20 62 61 72 77  wed \u2306  barw
15a0: 65 64 67 65 20 5c 75 32 33 30 35 20 20 62 62 72  edge \u2305  bbr
15b0: 6b 20 5c 75 32 33 62 35 20 20 62 62 72 6b 74 62  k \u23b5  bbrktb
15c0: 72 6b 20 5c 75 32 33 62 36 20 0a 09 62 63 6f 6e  rk \u23b6 ..bcon
15d0: 67 20 5c 75 32 32 34 63 20 20 42 63 79 20 5c 75  g \u224c  Bcy \u
15e0: 34 31 31 20 20 62 63 79 20 5c 75 34 33 31 20 20  411  bcy \u431  
15f0: 62 65 63 61 75 73 20 5c 75 32 32 33 35 20 20 62  becaus \u2235  b
1600: 65 63 61 75 73 65 20 5c 75 32 32 33 35 20 0a 09  ecause \u2235 ..
1610: 42 65 63 61 75 73 65 20 5c 75 32 32 33 35 20 20  Because \u2235  
1620: 62 65 6d 70 74 79 76 20 5c 75 32 39 62 30 20 20  bemptyv \u29b0  
1630: 62 65 70 73 69 20 5c 75 33 66 36 20 20 62 65 72  bepsi \u3f6  ber
1640: 6e 6f 75 20 5c 75 32 31 32 63 20 0a 09 42 65 72  nou \u212c ..Ber
1650: 6e 6f 75 6c 6c 69 73 20 5c 75 32 31 32 63 20 20  noullis \u212c  
1660: 62 65 74 68 20 5c 75 32 31 33 36 20 20 62 65 74  beth \u2136  bet
1670: 77 65 65 6e 20 5c 75 32 32 36 63 20 20 42 66 72  ween \u226c  Bfr
1680: 20 5c 75 64 38 33 35 5c 75 64 64 30 35 20 0a 09   \ud835\udd05 ..
1690: 62 66 72 20 5c 75 64 38 33 35 5c 75 64 64 31 66  bfr \ud835\udd1f
16a0: 20 20 62 69 67 63 61 70 20 5c 75 32 32 63 32 20    bigcap \u22c2 
16b0: 20 62 69 67 63 69 72 63 20 5c 75 32 35 65 66 20   bigcirc \u25ef 
16c0: 20 62 69 67 63 75 70 20 5c 75 32 32 63 33 20 0a   bigcup \u22c3 .
16d0: 09 62 69 67 6f 64 6f 74 20 5c 75 32 61 30 30 20  .bigodot \u2a00 
16e0: 20 62 69 67 6f 70 6c 75 73 20 5c 75 32 61 30 31   bigoplus \u2a01
16f0: 20 20 62 69 67 6f 74 69 6d 65 73 20 5c 75 32 61    bigotimes \u2a
1700: 30 32 20 0a 09 62 69 67 73 71 63 75 70 20 5c 75  02 ..bigsqcup \u
1710: 32 61 30 36 20 20 62 69 67 73 74 61 72 20 5c 75  2a06  bigstar \u
1720: 32 36 30 35 20 20 62 69 67 74 72 69 61 6e 67 6c  2605  bigtriangl
1730: 65 64 6f 77 6e 20 5c 75 32 35 62 64 20 0a 09 62  edown \u25bd ..b
1740: 69 67 74 72 69 61 6e 67 6c 65 75 70 20 5c 75 32  igtriangleup \u2
1750: 35 62 33 20 20 62 69 67 75 70 6c 75 73 20 5c 75  5b3  biguplus \u
1760: 32 61 30 34 20 20 62 69 67 76 65 65 20 5c 75 32  2a04  bigvee \u2
1770: 32 63 31 20 0a 09 62 69 67 77 65 64 67 65 20 5c  2c1 ..bigwedge \
1780: 75 32 32 63 30 20 20 62 6b 61 72 6f 77 20 5c 75  u22c0  bkarow \u
1790: 32 39 30 64 20 20 62 6c 61 63 6b 6c 6f 7a 65 6e  290d  blacklozen
17a0: 67 65 20 5c 75 32 39 65 62 20 0a 09 62 6c 61 63  ge \u29eb ..blac
17b0: 6b 73 71 75 61 72 65 20 5c 75 32 35 61 61 20 20  ksquare \u25aa  
17c0: 62 6c 61 63 6b 74 72 69 61 6e 67 6c 65 20 5c 75  blacktriangle \u
17d0: 32 35 62 34 20 0a 09 62 6c 61 63 6b 74 72 69 61  25b4 ..blacktria
17e0: 6e 67 6c 65 64 6f 77 6e 20 5c 75 32 35 62 65 20  ngledown \u25be 
17f0: 20 62 6c 61 63 6b 74 72 69 61 6e 67 6c 65 6c 65   blacktrianglele
1800: 66 74 20 5c 75 32 35 63 32 20 0a 09 62 6c 61 63  ft \u25c2 ..blac
1810: 6b 74 72 69 61 6e 67 6c 65 72 69 67 68 74 20 5c  ktriangleright \
1820: 75 32 35 62 38 20 20 62 6c 61 6e 6b 20 5c 75 32  u25b8  blank \u2
1830: 34 32 33 20 20 62 6c 6b 31 32 20 5c 75 32 35 39  423  blk12 \u259
1840: 32 20 0a 09 62 6c 6b 31 34 20 5c 75 32 35 39 31  2 ..blk14 \u2591
1850: 20 20 62 6c 6b 33 34 20 5c 75 32 35 39 33 20 20    blk34 \u2593  
1860: 62 6c 6f 63 6b 20 5c 75 32 35 38 38 20 20 62 6e  block \u2588  bn
1870: 65 20 5c 75 33 64 5c 75 32 30 65 35 20 0a 09 62  e \u3d\u20e5 ..b
1880: 6e 65 71 75 69 76 20 5c 75 32 32 36 31 5c 75 32  nequiv \u2261\u2
1890: 30 65 35 20 20 62 4e 6f 74 20 5c 75 32 61 65 64  0e5  bNot \u2aed
18a0: 20 20 62 6e 6f 74 20 5c 75 32 33 31 30 20 20 42    bnot \u2310  B
18b0: 6f 70 66 20 5c 75 64 38 33 35 5c 75 64 64 33 39  opf \ud835\udd39
18c0: 20 0a 09 62 6f 70 66 20 5c 75 64 38 33 35 5c 75   ..bopf \ud835\u
18d0: 64 64 35 33 20 20 62 6f 74 20 5c 75 32 32 61 35  dd53  bot \u22a5
18e0: 20 20 62 6f 74 74 6f 6d 20 5c 75 32 32 61 35 20    bottom \u22a5 
18f0: 20 62 6f 77 74 69 65 20 5c 75 32 32 63 38 20 0a   bowtie \u22c8 .
1900: 09 62 6f 78 62 6f 78 20 5c 75 32 39 63 39 20 20  .boxbox \u29c9  
1910: 62 6f 78 64 6c 20 5c 75 32 35 31 30 20 20 62 6f  boxdl \u2510  bo
1920: 78 64 4c 20 5c 75 32 35 35 35 20 20 62 6f 78 44  xdL \u2555  boxD
1930: 6c 20 5c 75 32 35 35 36 20 0a 09 62 6f 78 44 4c  l \u2556 ..boxDL
1940: 20 5c 75 32 35 35 37 20 20 62 6f 78 64 72 20 5c   \u2557  boxdr \
1950: 75 32 35 30 63 20 20 62 6f 78 64 52 20 5c 75 32  u250c  boxdR \u2
1960: 35 35 32 20 20 62 6f 78 44 72 20 5c 75 32 35 35  552  boxDr \u255
1970: 33 20 0a 09 62 6f 78 44 52 20 5c 75 32 35 35 34  3 ..boxDR \u2554
1980: 20 20 62 6f 78 68 20 5c 75 32 35 30 30 20 20 62    boxh \u2500  b
1990: 6f 78 48 20 5c 75 32 35 35 30 20 20 62 6f 78 68  oxH \u2550  boxh
19a0: 64 20 5c 75 32 35 32 63 20 0a 09 62 6f 78 48 64  d \u252c ..boxHd
19b0: 20 5c 75 32 35 36 34 20 20 62 6f 78 68 44 20 5c   \u2564  boxhD \
19c0: 75 32 35 36 35 20 20 62 6f 78 48 44 20 5c 75 32  u2565  boxHD \u2
19d0: 35 36 36 20 20 62 6f 78 68 75 20 5c 75 32 35 33  566  boxhu \u253
19e0: 34 20 0a 09 62 6f 78 48 75 20 5c 75 32 35 36 37  4 ..boxHu \u2567
19f0: 20 20 62 6f 78 68 55 20 5c 75 32 35 36 38 20 20    boxhU \u2568  
1a00: 62 6f 78 48 55 20 5c 75 32 35 36 39 20 20 62 6f  boxHU \u2569  bo
1a10: 78 6d 69 6e 75 73 20 5c 75 32 32 39 66 20 0a 09  xminus \u229f ..
1a20: 62 6f 78 70 6c 75 73 20 5c 75 32 32 39 65 20 20  boxplus \u229e  
1a30: 62 6f 78 74 69 6d 65 73 20 5c 75 32 32 61 30 20  boxtimes \u22a0 
1a40: 20 62 6f 78 75 6c 20 5c 75 32 35 31 38 20 20 62   boxul \u2518  b
1a50: 6f 78 75 4c 20 5c 75 32 35 35 62 20 0a 09 62 6f  oxuL \u255b ..bo
1a60: 78 55 6c 20 5c 75 32 35 35 63 20 20 62 6f 78 55  xUl \u255c  boxU
1a70: 4c 20 5c 75 32 35 35 64 20 20 62 6f 78 75 72 20  L \u255d  boxur 
1a80: 5c 75 32 35 31 34 20 20 62 6f 78 75 52 20 5c 75  \u2514  boxuR \u
1a90: 32 35 35 38 20 0a 09 62 6f 78 55 72 20 5c 75 32  2558 ..boxUr \u2
1aa0: 35 35 39 20 20 62 6f 78 55 52 20 5c 75 32 35 35  559  boxUR \u255
1ab0: 61 20 20 62 6f 78 76 20 5c 75 32 35 30 32 20 20  a  boxv \u2502  
1ac0: 62 6f 78 56 20 5c 75 32 35 35 31 20 0a 09 62 6f  boxV \u2551 ..bo
1ad0: 78 76 68 20 5c 75 32 35 33 63 20 20 62 6f 78 76  xvh \u253c  boxv
1ae0: 48 20 5c 75 32 35 36 61 20 20 62 6f 78 56 68 20  H \u256a  boxVh 
1af0: 5c 75 32 35 36 62 20 20 62 6f 78 56 48 20 5c 75  \u256b  boxVH \u
1b00: 32 35 36 63 20 0a 09 62 6f 78 76 6c 20 5c 75 32  256c ..boxvl \u2
1b10: 35 32 34 20 20 62 6f 78 76 4c 20 5c 75 32 35 36  524  boxvL \u256
1b20: 31 20 20 62 6f 78 56 6c 20 5c 75 32 35 36 32 20  1  boxVl \u2562 
1b30: 20 62 6f 78 56 4c 20 5c 75 32 35 36 33 20 0a 09   boxVL \u2563 ..
1b40: 62 6f 78 76 72 20 5c 75 32 35 31 63 20 20 62 6f  boxvr \u251c  bo
1b50: 78 76 52 20 5c 75 32 35 35 65 20 20 62 6f 78 56  xvR \u255e  boxV
1b60: 72 20 5c 75 32 35 35 66 20 20 62 6f 78 56 52 20  r \u255f  boxVR 
1b70: 5c 75 32 35 36 30 20 0a 09 62 70 72 69 6d 65 20  \u2560 ..bprime 
1b80: 5c 75 32 30 33 35 20 20 62 72 65 76 65 20 5c 75  \u2035  breve \u
1b90: 32 64 38 20 20 42 72 65 76 65 20 5c 75 32 64 38  2d8  Breve \u2d8
1ba0: 20 20 62 73 63 72 20 5c 75 64 38 33 35 5c 75 64    bscr \ud835\ud
1bb0: 63 62 37 20 0a 09 42 73 63 72 20 5c 75 32 31 32  cb7 ..Bscr \u212
1bc0: 63 20 20 62 73 65 6d 69 20 5c 75 32 30 34 66 20  c  bsemi \u204f 
1bd0: 20 62 73 69 6d 20 5c 75 32 32 33 64 20 20 62 73   bsim \u223d  bs
1be0: 69 6d 65 20 5c 75 32 32 63 64 20 0a 09 62 73 6f  ime \u22cd ..bso
1bf0: 6c 62 20 5c 75 32 39 63 35 20 20 62 73 6f 6c 20  lb \u29c5  bsol 
1c00: 5c 75 35 63 20 20 62 73 6f 6c 68 73 75 62 20 5c  \u5c  bsolhsub \
1c10: 75 32 37 63 38 20 20 62 75 6c 6c 65 74 20 5c 75  u27c8  bullet \u
1c20: 32 30 32 32 20 0a 09 62 75 6d 70 20 5c 75 32 32  2022 ..bump \u22
1c30: 34 65 20 20 62 75 6d 70 45 20 5c 75 32 61 61 65  4e  bumpE \u2aae
1c40: 20 20 62 75 6d 70 65 20 5c 75 32 32 34 66 20 20    bumpe \u224f  
1c50: 42 75 6d 70 65 71 20 5c 75 32 32 34 65 20 0a 09  Bumpeq \u224e ..
1c60: 62 75 6d 70 65 71 20 5c 75 32 32 34 66 20 20 43  bumpeq \u224f  C
1c70: 61 63 75 74 65 20 5c 75 31 30 36 20 20 63 61 63  acute \u106  cac
1c80: 75 74 65 20 5c 75 31 30 37 20 20 63 61 70 61 6e  ute \u107  capan
1c90: 64 20 5c 75 32 61 34 34 20 0a 09 63 61 70 62 72  d \u2a44 ..capbr
1ca0: 63 75 70 20 5c 75 32 61 34 39 20 20 63 61 70 63  cup \u2a49  capc
1cb0: 61 70 20 5c 75 32 61 34 62 20 20 43 61 70 20 5c  ap \u2a4b  Cap \
1cc0: 75 32 32 64 32 20 20 63 61 70 63 75 70 20 5c 75  u22d2  capcup \u
1cd0: 32 61 34 37 20 0a 09 63 61 70 64 6f 74 20 5c 75  2a47 ..capdot \u
1ce0: 32 61 34 30 20 20 43 61 70 69 74 61 6c 44 69 66  2a40  CapitalDif
1cf0: 66 65 72 65 6e 74 69 61 6c 44 20 5c 75 32 31 34  ferentialD \u214
1d00: 35 20 20 63 61 70 73 20 5c 75 32 32 32 39 5c 75  5  caps \u2229\u
1d10: 66 65 30 30 20 0a 09 63 61 72 65 74 20 5c 75 32  fe00 ..caret \u2
1d20: 30 34 31 20 20 63 61 72 6f 6e 20 5c 75 32 63 37  041  caron \u2c7
1d30: 20 20 43 61 79 6c 65 79 73 20 5c 75 32 31 32 64    Cayleys \u212d
1d40: 20 20 63 63 61 70 73 20 5c 75 32 61 34 64 20 0a    ccaps \u2a4d .
1d50: 09 43 63 61 72 6f 6e 20 5c 75 31 30 63 20 20 63  .Ccaron \u10c  c
1d60: 63 61 72 6f 6e 20 5c 75 31 30 64 20 20 43 63 69  caron \u10d  Cci
1d70: 72 63 20 5c 75 31 30 38 20 20 63 63 69 72 63 20  rc \u108  ccirc 
1d80: 5c 75 31 30 39 20 0a 09 43 63 6f 6e 69 6e 74 20  \u109 ..Cconint 
1d90: 5c 75 32 32 33 30 20 20 63 63 75 70 73 20 5c 75  \u2230  ccups \u
1da0: 32 61 34 63 20 20 63 63 75 70 73 73 6d 20 5c 75  2a4c  ccupssm \u
1db0: 32 61 35 30 20 20 43 64 6f 74 20 5c 75 31 30 61  2a50  Cdot \u10a
1dc0: 20 0a 09 63 64 6f 74 20 5c 75 31 30 62 20 20 43   ..cdot \u10b  C
1dd0: 65 64 69 6c 6c 61 20 5c 75 62 38 20 20 63 65 6d  edilla \ub8  cem
1de0: 70 74 79 76 20 5c 75 32 39 62 32 20 20 63 65 6e  ptyv \u29b2  cen
1df0: 74 65 72 64 6f 74 20 5c 75 62 37 20 0a 09 43 65  terdot \ub7 ..Ce
1e00: 6e 74 65 72 44 6f 74 20 5c 75 62 37 20 20 63 66  nterDot \ub7  cf
1e10: 72 20 5c 75 64 38 33 35 5c 75 64 64 32 30 20 20  r \ud835\udd20  
1e20: 43 66 72 20 5c 75 32 31 32 64 20 20 43 48 63 79  Cfr \u212d  CHcy
1e30: 20 5c 75 34 32 37 20 0a 09 63 68 63 79 20 5c 75   \u427 ..chcy \u
1e40: 34 34 37 20 20 63 68 65 63 6b 20 5c 75 32 37 31  447  check \u271
1e50: 33 20 20 63 68 65 63 6b 6d 61 72 6b 20 5c 75 32  3  checkmark \u2
1e60: 37 31 33 20 20 63 69 72 63 65 71 20 5c 75 32 32  713  circeq \u22
1e70: 35 37 20 0a 09 63 69 72 63 6c 65 61 72 72 6f 77  57 ..circlearrow
1e80: 6c 65 66 74 20 5c 75 32 31 62 61 20 20 63 69 72  left \u21ba  cir
1e90: 63 6c 65 61 72 72 6f 77 72 69 67 68 74 20 5c 75  clearrowright \u
1ea0: 32 31 62 62 20 0a 09 63 69 72 63 6c 65 64 61 73  21bb ..circledas
1eb0: 74 20 5c 75 32 32 39 62 20 20 63 69 72 63 6c 65  t \u229b  circle
1ec0: 64 63 69 72 63 20 5c 75 32 32 39 61 20 20 63 69  dcirc \u229a  ci
1ed0: 72 63 6c 65 64 64 61 73 68 20 5c 75 32 32 39 64  rcleddash \u229d
1ee0: 20 0a 09 43 69 72 63 6c 65 44 6f 74 20 5c 75 32   ..CircleDot \u2
1ef0: 32 39 39 20 20 63 69 72 63 6c 65 64 52 20 5c 75  299  circledR \u
1f00: 61 65 20 20 63 69 72 63 6c 65 64 53 20 5c 75 32  ae  circledS \u2
1f10: 34 63 38 20 0a 09 43 69 72 63 6c 65 4d 69 6e 75  4c8 ..CircleMinu
1f20: 73 20 5c 75 32 32 39 36 20 20 43 69 72 63 6c 65  s \u2296  Circle
1f30: 50 6c 75 73 20 5c 75 32 32 39 35 20 20 43 69 72  Plus \u2295  Cir
1f40: 63 6c 65 54 69 6d 65 73 20 5c 75 32 32 39 37 20  cleTimes \u2297 
1f50: 0a 09 63 69 72 20 5c 75 32 35 63 62 20 20 63 69  ..cir \u25cb  ci
1f60: 72 45 20 5c 75 32 39 63 33 20 20 63 69 72 65 20  rE \u29c3  cire 
1f70: 5c 75 32 32 35 37 20 20 63 69 72 66 6e 69 6e 74  \u2257  cirfnint
1f80: 20 5c 75 32 61 31 30 20 0a 09 63 69 72 6d 69 64   \u2a10 ..cirmid
1f90: 20 5c 75 32 61 65 66 20 20 63 69 72 73 63 69 72   \u2aef  cirscir
1fa0: 20 5c 75 32 39 63 32 20 20 43 6c 6f 63 6b 77 69   \u29c2  Clockwi
1fb0: 73 65 43 6f 6e 74 6f 75 72 49 6e 74 65 67 72 61  seContourIntegra
1fc0: 6c 20 5c 75 32 32 33 32 20 0a 09 43 6c 6f 73 65  l \u2232 ..Close
1fd0: 43 75 72 6c 79 44 6f 75 62 6c 65 51 75 6f 74 65  CurlyDoubleQuote
1fe0: 20 5c 75 32 30 31 64 20 20 43 6c 6f 73 65 43 75   \u201d  CloseCu
1ff0: 72 6c 79 51 75 6f 74 65 20 5c 75 32 30 31 39 20  rlyQuote \u2019 
2000: 0a 09 63 6c 75 62 73 75 69 74 20 5c 75 32 36 36  ..clubsuit \u266
2010: 33 20 20 63 6f 6c 6f 6e 20 5c 75 33 61 20 20 43  3  colon \u3a  C
2020: 6f 6c 6f 6e 20 5c 75 32 32 33 37 20 20 43 6f 6c  olon \u2237  Col
2030: 6f 6e 65 20 5c 75 32 61 37 34 20 0a 09 63 6f 6c  one \u2a74 ..col
2040: 6f 6e 65 20 5c 75 32 32 35 34 20 20 63 6f 6c 6f  one \u2254  colo
2050: 6e 65 71 20 5c 75 32 32 35 34 20 20 63 6f 6d 6d  neq \u2254  comm
2060: 61 20 5c 75 32 63 20 20 63 6f 6d 6d 61 74 20 5c  a \u2c  commat \
2070: 75 34 30 20 0a 09 63 6f 6d 70 20 5c 75 32 32 30  u40 ..comp \u220
2080: 31 20 20 63 6f 6d 70 66 6e 20 5c 75 32 32 31 38  1  compfn \u2218
2090: 20 20 63 6f 6d 70 6c 65 6d 65 6e 74 20 5c 75 32    complement \u2
20a0: 32 30 31 20 20 63 6f 6d 70 6c 65 78 65 73 20 5c  201  complexes \
20b0: 75 32 31 30 32 20 0a 09 63 6f 6e 67 64 6f 74 20  u2102 ..congdot 
20c0: 5c 75 32 61 36 64 20 20 43 6f 6e 67 72 75 65 6e  \u2a6d  Congruen
20d0: 74 20 5c 75 32 32 36 31 20 20 63 6f 6e 69 6e 74  t \u2261  conint
20e0: 20 5c 75 32 32 32 65 20 20 43 6f 6e 69 6e 74 20   \u222e  Conint 
20f0: 5c 75 32 32 32 66 20 0a 09 43 6f 6e 74 6f 75 72  \u222f ..Contour
2100: 49 6e 74 65 67 72 61 6c 20 5c 75 32 32 32 65 20  Integral \u222e 
2110: 20 63 6f 70 66 20 5c 75 64 38 33 35 5c 75 64 64   copf \ud835\udd
2120: 35 34 20 20 43 6f 70 66 20 5c 75 32 31 30 32 20  54  Copf \u2102 
2130: 0a 09 63 6f 70 72 6f 64 20 5c 75 32 32 31 30 20  ..coprod \u2210 
2140: 20 43 6f 70 72 6f 64 75 63 74 20 5c 75 32 32 31   Coproduct \u221
2150: 30 20 20 43 4f 50 59 20 5c 75 61 39 20 20 63 6f  0  COPY \ua9  co
2160: 70 79 73 72 20 5c 75 32 31 31 37 20 0a 09 43 6f  pysr \u2117 ..Co
2170: 75 6e 74 65 72 43 6c 6f 63 6b 77 69 73 65 43 6f  unterClockwiseCo
2180: 6e 74 6f 75 72 49 6e 74 65 67 72 61 6c 20 5c 75  ntourIntegral \u
2190: 32 32 33 33 20 20 63 72 6f 73 73 20 5c 75 32 37  2233  cross \u27
21a0: 31 37 20 0a 09 43 72 6f 73 73 20 5c 75 32 61 32  17 ..Cross \u2a2
21b0: 66 20 20 43 73 63 72 20 5c 75 64 38 33 35 5c 75  f  Cscr \ud835\u
21c0: 64 63 39 65 20 20 63 73 63 72 20 5c 75 64 38 33  dc9e  cscr \ud83
21d0: 35 5c 75 64 63 62 38 20 20 63 73 75 62 20 5c 75  5\udcb8  csub \u
21e0: 32 61 63 66 20 0a 09 63 73 75 62 65 20 5c 75 32  2acf ..csube \u2
21f0: 61 64 31 20 20 63 73 75 70 20 5c 75 32 61 64 30  ad1  csup \u2ad0
2200: 20 20 63 73 75 70 65 20 5c 75 32 61 64 32 20 20    csupe \u2ad2  
2210: 63 74 64 6f 74 20 5c 75 32 32 65 66 20 0a 09 63  ctdot \u22ef ..c
2220: 75 64 61 72 72 6c 20 5c 75 32 39 33 38 20 20 63  udarrl \u2938  c
2230: 75 64 61 72 72 72 20 5c 75 32 39 33 35 20 20 63  udarrr \u2935  c
2240: 75 65 70 72 20 5c 75 32 32 64 65 20 20 63 75 65  uepr \u22de  cue
2250: 73 63 20 5c 75 32 32 64 66 20 0a 09 63 75 6c 61  sc \u22df ..cula
2260: 72 72 20 5c 75 32 31 62 36 20 20 63 75 6c 61 72  rr \u21b6  cular
2270: 72 70 20 5c 75 32 39 33 64 20 20 63 75 70 62 72  rp \u293d  cupbr
2280: 63 61 70 20 5c 75 32 61 34 38 20 20 63 75 70 63  cap \u2a48  cupc
2290: 61 70 20 5c 75 32 61 34 36 20 0a 09 43 75 70 43  ap \u2a46 ..CupC
22a0: 61 70 20 5c 75 32 32 34 64 20 20 43 75 70 20 5c  ap \u224d  Cup \
22b0: 75 32 32 64 33 20 20 63 75 70 63 75 70 20 5c 75  u22d3  cupcup \u
22c0: 32 61 34 61 20 20 63 75 70 64 6f 74 20 5c 75 32  2a4a  cupdot \u2
22d0: 32 38 64 20 0a 09 63 75 70 6f 72 20 5c 75 32 61  28d ..cupor \u2a
22e0: 34 35 20 20 63 75 70 73 20 5c 75 32 32 32 61 5c  45  cups \u222a\
22f0: 75 66 65 30 30 20 20 63 75 72 61 72 72 20 5c 75  ufe00  curarr \u
2300: 32 31 62 37 20 20 63 75 72 61 72 72 6d 20 5c 75  21b7  curarrm \u
2310: 32 39 33 63 20 0a 09 63 75 72 6c 79 65 71 70 72  293c ..curlyeqpr
2320: 65 63 20 5c 75 32 32 64 65 20 20 63 75 72 6c 79  ec \u22de  curly
2330: 65 71 73 75 63 63 20 5c 75 32 32 64 66 20 20 63  eqsucc \u22df  c
2340: 75 72 6c 79 76 65 65 20 5c 75 32 32 63 65 20 0a  urlyvee \u22ce .
2350: 09 63 75 72 6c 79 77 65 64 67 65 20 5c 75 32 32  .curlywedge \u22
2360: 63 66 20 20 63 75 72 76 65 61 72 72 6f 77 6c 65  cf  curvearrowle
2370: 66 74 20 5c 75 32 31 62 36 20 20 63 75 72 76 65  ft \u21b6  curve
2380: 61 72 72 6f 77 72 69 67 68 74 20 5c 75 32 31 62  arrowright \u21b
2390: 37 20 0a 09 63 75 76 65 65 20 5c 75 32 32 63 65  7 ..cuvee \u22ce
23a0: 20 20 63 75 77 65 64 20 5c 75 32 32 63 66 20 20    cuwed \u22cf  
23b0: 63 77 63 6f 6e 69 6e 74 20 5c 75 32 32 33 32 20  cwconint \u2232 
23c0: 20 63 77 69 6e 74 20 5c 75 32 32 33 31 20 0a 09   cwint \u2231 ..
23d0: 63 79 6c 63 74 79 20 5c 75 32 33 32 64 20 20 64  cylcty \u232d  d
23e0: 61 6c 65 74 68 20 5c 75 32 31 33 38 20 20 44 61  aleth \u2138  Da
23f0: 72 72 20 5c 75 32 31 61 31 20 20 64 61 73 68 20  rr \u21a1  dash 
2400: 5c 75 32 30 31 30 20 0a 09 44 61 73 68 76 20 5c  \u2010 ..Dashv \
2410: 75 32 61 65 34 20 20 64 61 73 68 76 20 5c 75 32  u2ae4  dashv \u2
2420: 32 61 33 20 20 64 62 6b 61 72 6f 77 20 5c 75 32  2a3  dbkarow \u2
2430: 39 30 66 20 20 64 62 6c 61 63 20 5c 75 32 64 64  90f  dblac \u2dd
2440: 20 0a 09 44 63 61 72 6f 6e 20 5c 75 31 30 65 20   ..Dcaron \u10e 
2450: 20 64 63 61 72 6f 6e 20 5c 75 31 30 66 20 20 44   dcaron \u10f  D
2460: 63 79 20 5c 75 34 31 34 20 20 64 63 79 20 5c 75  cy \u414  dcy \u
2470: 34 33 34 20 20 64 64 61 67 67 65 72 20 5c 75 32  434  ddagger \u2
2480: 30 32 31 20 0a 09 64 64 61 72 72 20 5c 75 32 31  021 ..ddarr \u21
2490: 63 61 20 20 44 44 20 5c 75 32 31 34 35 20 20 64  ca  DD \u2145  d
24a0: 64 20 5c 75 32 31 34 36 20 20 44 44 6f 74 72 61  d \u2146  DDotra
24b0: 68 64 20 5c 75 32 39 31 31 20 0a 09 64 64 6f 74  hd \u2911 ..ddot
24c0: 73 65 71 20 5c 75 32 61 37 37 20 20 44 65 6c 20  seq \u2a77  Del 
24d0: 5c 75 32 32 30 37 20 20 64 65 6d 70 74 79 76 20  \u2207  demptyv 
24e0: 5c 75 32 39 62 31 20 20 64 66 69 73 68 74 20 5c  \u29b1  dfisht \
24f0: 75 32 39 37 66 20 0a 09 44 66 72 20 5c 75 64 38  u297f ..Dfr \ud8
2500: 33 35 5c 75 64 64 30 37 20 20 64 66 72 20 5c 75  35\udd07  dfr \u
2510: 64 38 33 35 5c 75 64 64 32 31 20 20 64 48 61 72  d835\udd21  dHar
2520: 20 5c 75 32 39 36 35 20 20 64 68 61 72 6c 20 5c   \u2965  dharl \
2530: 75 32 31 63 33 20 0a 09 64 68 61 72 72 20 5c 75  u21c3 ..dharr \u
2540: 32 31 63 32 20 20 44 69 61 63 72 69 74 69 63 61  21c2  Diacritica
2550: 6c 41 63 75 74 65 20 5c 75 62 34 20 20 44 69 61  lAcute \ub4  Dia
2560: 63 72 69 74 69 63 61 6c 44 6f 74 20 5c 75 32 64  criticalDot \u2d
2570: 39 20 0a 09 44 69 61 63 72 69 74 69 63 61 6c 44  9 ..DiacriticalD
2580: 6f 75 62 6c 65 41 63 75 74 65 20 5c 75 32 64 64  oubleAcute \u2dd
2590: 20 20 44 69 61 63 72 69 74 69 63 61 6c 47 72 61    DiacriticalGra
25a0: 76 65 20 5c 75 36 30 20 0a 09 44 69 61 63 72 69  ve \u60 ..Diacri
25b0: 74 69 63 61 6c 54 69 6c 64 65 20 5c 75 32 64 63  ticalTilde \u2dc
25c0: 20 20 64 69 61 6d 20 5c 75 32 32 63 34 20 20 64    diam \u22c4  d
25d0: 69 61 6d 6f 6e 64 20 5c 75 32 32 63 34 20 0a 09  iamond \u22c4 ..
25e0: 44 69 61 6d 6f 6e 64 20 5c 75 32 32 63 34 20 20  Diamond \u22c4  
25f0: 64 69 61 6d 6f 6e 64 73 75 69 74 20 5c 75 32 36  diamondsuit \u26
2600: 36 36 20 20 64 69 65 20 5c 75 61 38 20 0a 09 44  66  die \ua8 ..D
2610: 69 66 66 65 72 65 6e 74 69 61 6c 44 20 5c 75 32  ifferentialD \u2
2620: 31 34 36 20 20 64 69 67 61 6d 6d 61 20 5c 75 33  146  digamma \u3
2630: 64 64 20 20 64 69 73 69 6e 20 5c 75 32 32 66 32  dd  disin \u22f2
2640: 20 20 64 69 76 20 5c 75 66 37 20 0a 09 64 69 76    div \uf7 ..div
2650: 69 64 65 6f 6e 74 69 6d 65 73 20 5c 75 32 32 63  ideontimes \u22c
2660: 37 20 20 64 69 76 6f 6e 78 20 5c 75 32 32 63 37  7  divonx \u22c7
2670: 20 20 44 4a 63 79 20 5c 75 34 30 32 20 20 64 6a    DJcy \u402  dj
2680: 63 79 20 5c 75 34 35 32 20 0a 09 64 6c 63 6f 72  cy \u452 ..dlcor
2690: 6e 20 5c 75 32 33 31 65 20 20 64 6c 63 72 6f 70  n \u231e  dlcrop
26a0: 20 5c 75 32 33 30 64 20 20 64 6f 6c 6c 61 72 20   \u230d  dollar 
26b0: 5c 75 32 34 20 20 44 6f 70 66 20 5c 75 64 38 33  \u24  Dopf \ud83
26c0: 35 5c 75 64 64 33 62 20 0a 09 64 6f 70 66 20 5c  5\udd3b ..dopf \
26d0: 75 64 38 33 35 5c 75 64 64 35 35 20 20 44 6f 74  ud835\udd55  Dot
26e0: 20 5c 75 61 38 20 20 64 6f 74 20 5c 75 32 64 39   \ua8  dot \u2d9
26f0: 20 20 44 6f 74 44 6f 74 20 5c 75 32 30 64 63 20    DotDot \u20dc 
2700: 0a 09 64 6f 74 65 71 20 5c 75 32 32 35 30 20 20  ..doteq \u2250  
2710: 64 6f 74 65 71 64 6f 74 20 5c 75 32 32 35 31 20  doteqdot \u2251 
2720: 20 44 6f 74 45 71 75 61 6c 20 5c 75 32 32 35 30   DotEqual \u2250
2730: 20 20 64 6f 74 6d 69 6e 75 73 20 5c 75 32 32 33    dotminus \u223
2740: 38 20 0a 09 64 6f 74 70 6c 75 73 20 5c 75 32 32  8 ..dotplus \u22
2750: 31 34 20 20 64 6f 74 73 71 75 61 72 65 20 5c 75  14  dotsquare \u
2760: 32 32 61 31 20 20 64 6f 75 62 6c 65 62 61 72 77  22a1  doublebarw
2770: 65 64 67 65 20 5c 75 32 33 30 36 20 0a 09 44 6f  edge \u2306 ..Do
2780: 75 62 6c 65 43 6f 6e 74 6f 75 72 49 6e 74 65 67  ubleContourInteg
2790: 72 61 6c 20 5c 75 32 32 32 66 20 20 44 6f 75 62  ral \u222f  Doub
27a0: 6c 65 44 6f 74 20 5c 75 61 38 20 0a 09 44 6f 75  leDot \ua8 ..Dou
27b0: 62 6c 65 44 6f 77 6e 41 72 72 6f 77 20 5c 75 32  bleDownArrow \u2
27c0: 31 64 33 20 20 44 6f 75 62 6c 65 4c 65 66 74 41  1d3  DoubleLeftA
27d0: 72 72 6f 77 20 5c 75 32 31 64 30 20 0a 09 44 6f  rrow \u21d0 ..Do
27e0: 75 62 6c 65 4c 65 66 74 52 69 67 68 74 41 72 72  ubleLeftRightArr
27f0: 6f 77 20 5c 75 32 31 64 34 20 20 44 6f 75 62 6c  ow \u21d4  Doubl
2800: 65 4c 65 66 74 54 65 65 20 5c 75 32 61 65 34 20  eLeftTee \u2ae4 
2810: 0a 09 44 6f 75 62 6c 65 4c 6f 6e 67 4c 65 66 74  ..DoubleLongLeft
2820: 41 72 72 6f 77 20 5c 75 32 37 66 38 20 20 44 6f  Arrow \u27f8  Do
2830: 75 62 6c 65 4c 6f 6e 67 4c 65 66 74 52 69 67 68  ubleLongLeftRigh
2840: 74 41 72 72 6f 77 20 5c 75 32 37 66 61 20 0a 09  tArrow \u27fa ..
2850: 44 6f 75 62 6c 65 4c 6f 6e 67 52 69 67 68 74 41  DoubleLongRightA
2860: 72 72 6f 77 20 5c 75 32 37 66 39 20 20 44 6f 75  rrow \u27f9  Dou
2870: 62 6c 65 52 69 67 68 74 41 72 72 6f 77 20 5c 75  bleRightArrow \u
2880: 32 31 64 32 20 0a 09 44 6f 75 62 6c 65 52 69 67  21d2 ..DoubleRig
2890: 68 74 54 65 65 20 5c 75 32 32 61 38 20 20 44 6f  htTee \u22a8  Do
28a0: 75 62 6c 65 55 70 41 72 72 6f 77 20 5c 75 32 31  ubleUpArrow \u21
28b0: 64 31 20 0a 09 44 6f 75 62 6c 65 55 70 44 6f 77  d1 ..DoubleUpDow
28c0: 6e 41 72 72 6f 77 20 5c 75 32 31 64 35 20 20 44  nArrow \u21d5  D
28d0: 6f 75 62 6c 65 56 65 72 74 69 63 61 6c 42 61 72  oubleVerticalBar
28e0: 20 5c 75 32 32 32 35 20 0a 09 44 6f 77 6e 41 72   \u2225 ..DownAr
28f0: 72 6f 77 42 61 72 20 5c 75 32 39 31 33 20 20 64  rowBar \u2913  d
2900: 6f 77 6e 61 72 72 6f 77 20 5c 75 32 31 39 33 20  ownarrow \u2193 
2910: 20 44 6f 77 6e 41 72 72 6f 77 20 5c 75 32 31 39   DownArrow \u219
2920: 33 20 0a 09 44 6f 77 6e 61 72 72 6f 77 20 5c 75  3 ..Downarrow \u
2930: 32 31 64 33 20 20 44 6f 77 6e 41 72 72 6f 77 55  21d3  DownArrowU
2940: 70 41 72 72 6f 77 20 5c 75 32 31 66 35 20 20 44  pArrow \u21f5  D
2950: 6f 77 6e 42 72 65 76 65 20 5c 75 33 31 31 20 0a  ownBreve \u311 .
2960: 09 64 6f 77 6e 64 6f 77 6e 61 72 72 6f 77 73 20  .downdownarrows 
2970: 5c 75 32 31 63 61 20 20 64 6f 77 6e 68 61 72 70  \u21ca  downharp
2980: 6f 6f 6e 6c 65 66 74 20 5c 75 32 31 63 33 20 0a  oonleft \u21c3 .
2990: 09 64 6f 77 6e 68 61 72 70 6f 6f 6e 72 69 67 68  .downharpoonrigh
29a0: 74 20 5c 75 32 31 63 32 20 20 44 6f 77 6e 4c 65  t \u21c2  DownLe
29b0: 66 74 52 69 67 68 74 56 65 63 74 6f 72 20 5c 75  ftRightVector \u
29c0: 32 39 35 30 20 0a 09 44 6f 77 6e 4c 65 66 74 54  2950 ..DownLeftT
29d0: 65 65 56 65 63 74 6f 72 20 5c 75 32 39 35 65 20  eeVector \u295e 
29e0: 20 44 6f 77 6e 4c 65 66 74 56 65 63 74 6f 72 42   DownLeftVectorB
29f0: 61 72 20 5c 75 32 39 35 36 20 0a 09 44 6f 77 6e  ar \u2956 ..Down
2a00: 4c 65 66 74 56 65 63 74 6f 72 20 5c 75 32 31 62  LeftVector \u21b
2a10: 64 20 20 44 6f 77 6e 52 69 67 68 74 54 65 65 56  d  DownRightTeeV
2a20: 65 63 74 6f 72 20 5c 75 32 39 35 66 20 0a 09 44  ector \u295f ..D
2a30: 6f 77 6e 52 69 67 68 74 56 65 63 74 6f 72 42 61  ownRightVectorBa
2a40: 72 20 5c 75 32 39 35 37 20 20 44 6f 77 6e 52 69  r \u2957  DownRi
2a50: 67 68 74 56 65 63 74 6f 72 20 5c 75 32 31 63 31  ghtVector \u21c1
2a60: 20 0a 09 44 6f 77 6e 54 65 65 41 72 72 6f 77 20   ..DownTeeArrow 
2a70: 5c 75 32 31 61 37 20 20 44 6f 77 6e 54 65 65 20  \u21a7  DownTee 
2a80: 5c 75 32 32 61 34 20 20 64 72 62 6b 61 72 6f 77  \u22a4  drbkarow
2a90: 20 5c 75 32 39 31 30 20 0a 09 64 72 63 6f 72 6e   \u2910 ..drcorn
2aa0: 20 5c 75 32 33 31 66 20 20 64 72 63 72 6f 70 20   \u231f  drcrop 
2ab0: 5c 75 32 33 30 63 20 20 44 73 63 72 20 5c 75 64  \u230c  Dscr \ud
2ac0: 38 33 35 5c 75 64 63 39 66 20 0a 09 64 73 63 72  835\udc9f ..dscr
2ad0: 20 5c 75 64 38 33 35 5c 75 64 63 62 39 20 20 44   \ud835\udcb9  D
2ae0: 53 63 79 20 5c 75 34 30 35 20 20 64 73 63 79 20  Scy \u405  dscy 
2af0: 5c 75 34 35 35 20 20 64 73 6f 6c 20 5c 75 32 39  \u455  dsol \u29
2b00: 66 36 20 0a 09 44 73 74 72 6f 6b 20 5c 75 31 31  f6 ..Dstrok \u11
2b10: 30 20 20 64 73 74 72 6f 6b 20 5c 75 31 31 31 20  0  dstrok \u111 
2b20: 20 64 74 64 6f 74 20 5c 75 32 32 66 31 20 20 64   dtdot \u22f1  d
2b30: 74 72 69 20 5c 75 32 35 62 66 20 0a 09 64 74 72  tri \u25bf ..dtr
2b40: 69 66 20 5c 75 32 35 62 65 20 20 64 75 61 72 72  if \u25be  duarr
2b50: 20 5c 75 32 31 66 35 20 20 64 75 68 61 72 20 5c   \u21f5  duhar \
2b60: 75 32 39 36 66 20 20 64 77 61 6e 67 6c 65 20 5c  u296f  dwangle \
2b70: 75 32 39 61 36 20 0a 09 44 5a 63 79 20 5c 75 34  u29a6 ..DZcy \u4
2b80: 30 66 20 20 64 7a 63 79 20 5c 75 34 35 66 20 20  0f  dzcy \u45f  
2b90: 64 7a 69 67 72 61 72 72 20 5c 75 32 37 66 66 20  dzigrarr \u27ff 
2ba0: 20 65 61 73 74 65 72 20 5c 75 32 61 36 65 20 0a   easter \u2a6e .
2bb0: 09 45 63 61 72 6f 6e 20 5c 75 31 31 61 20 20 65  .Ecaron \u11a  e
2bc0: 63 61 72 6f 6e 20 5c 75 31 31 62 20 20 65 63 69  caron \u11b  eci
2bd0: 72 20 5c 75 32 32 35 36 20 20 65 63 6f 6c 6f 6e  r \u2256  ecolon
2be0: 20 5c 75 32 32 35 35 20 20 45 63 79 20 5c 75 34   \u2255  Ecy \u4
2bf0: 32 64 20 0a 09 65 63 79 20 5c 75 34 34 64 20 20  2d ..ecy \u44d  
2c00: 65 44 44 6f 74 20 5c 75 32 61 37 37 20 20 45 64  eDDot \u2a77  Ed
2c10: 6f 74 20 5c 75 31 31 36 20 20 65 64 6f 74 20 5c  ot \u116  edot \
2c20: 75 31 31 37 20 20 65 44 6f 74 20 5c 75 32 32 35  u117  eDot \u225
2c30: 31 20 0a 09 65 65 20 5c 75 32 31 34 37 20 20 65  1 ..ee \u2147  e
2c40: 66 44 6f 74 20 5c 75 32 32 35 32 20 20 45 66 72  fDot \u2252  Efr
2c50: 20 5c 75 64 38 33 35 5c 75 64 64 30 38 20 20 65   \ud835\udd08  e
2c60: 66 72 20 5c 75 64 38 33 35 5c 75 64 64 32 32 20  fr \ud835\udd22 
2c70: 0a 09 65 67 20 5c 75 32 61 39 61 20 20 65 67 73  ..eg \u2a9a  egs
2c80: 20 5c 75 32 61 39 36 20 20 65 67 73 64 6f 74 20   \u2a96  egsdot 
2c90: 5c 75 32 61 39 38 20 20 65 6c 20 5c 75 32 61 39  \u2a98  el \u2a9
2ca0: 39 20 20 45 6c 65 6d 65 6e 74 20 5c 75 32 32 30  9  Element \u220
2cb0: 38 20 0a 09 65 6c 69 6e 74 65 72 73 20 5c 75 32  8 ..elinters \u2
2cc0: 33 65 37 20 20 65 6c 6c 20 5c 75 32 31 31 33 20  3e7  ell \u2113 
2cd0: 20 65 6c 73 20 5c 75 32 61 39 35 20 20 65 6c 73   els \u2a95  els
2ce0: 64 6f 74 20 5c 75 32 61 39 37 20 0a 09 45 6d 61  dot \u2a97 ..Ema
2cf0: 63 72 20 5c 75 31 31 32 20 20 65 6d 61 63 72 20  cr \u112  emacr 
2d00: 5c 75 31 31 33 20 20 65 6d 70 74 79 73 65 74 20  \u113  emptyset 
2d10: 5c 75 32 32 30 35 20 0a 09 45 6d 70 74 79 53 6d  \u2205 ..EmptySm
2d20: 61 6c 6c 53 71 75 61 72 65 20 5c 75 32 35 66 62  allSquare \u25fb
2d30: 20 20 65 6d 70 74 79 76 20 5c 75 32 32 30 35 20    emptyv \u2205 
2d40: 0a 09 45 6d 70 74 79 56 65 72 79 53 6d 61 6c 6c  ..EmptyVerySmall
2d50: 53 71 75 61 72 65 20 5c 75 32 35 61 62 20 20 65  Square \u25ab  e
2d60: 6d 73 70 31 33 20 5c 75 32 30 30 34 20 20 65 6d  msp13 \u2004  em
2d70: 73 70 31 34 20 5c 75 32 30 30 35 20 0a 09 45 4e  sp14 \u2005 ..EN
2d80: 47 20 5c 75 31 34 61 20 20 65 6e 67 20 5c 75 31  G \u14a  eng \u1
2d90: 34 62 20 20 45 6f 67 6f 6e 20 5c 75 31 31 38 20  4b  Eogon \u118 
2da0: 20 65 6f 67 6f 6e 20 5c 75 31 31 39 20 20 45 6f   eogon \u119  Eo
2db0: 70 66 20 5c 75 64 38 33 35 5c 75 64 64 33 63 20  pf \ud835\udd3c 
2dc0: 0a 09 65 6f 70 66 20 5c 75 64 38 33 35 5c 75 64  ..eopf \ud835\ud
2dd0: 64 35 36 20 20 65 70 61 72 20 5c 75 32 32 64 35  d56  epar \u22d5
2de0: 20 20 65 70 61 72 73 6c 20 5c 75 32 39 65 33 20    eparsl \u29e3 
2df0: 20 65 70 6c 75 73 20 5c 75 32 61 37 31 20 0a 09   eplus \u2a71 ..
2e00: 65 70 73 69 20 5c 75 33 62 35 20 20 65 70 73 69  epsi \u3b5  epsi
2e10: 76 20 5c 75 33 66 35 20 20 65 71 63 69 72 63 20  v \u3f5  eqcirc 
2e20: 5c 75 32 32 35 36 20 20 65 71 63 6f 6c 6f 6e 20  \u2256  eqcolon 
2e30: 5c 75 32 32 35 35 20 0a 09 65 71 73 69 6d 20 5c  \u2255 ..eqsim \
2e40: 75 32 32 34 32 20 20 65 71 73 6c 61 6e 74 67 74  u2242  eqslantgt
2e50: 72 20 5c 75 32 61 39 36 20 20 65 71 73 6c 61 6e  r \u2a96  eqslan
2e60: 74 6c 65 73 73 20 5c 75 32 61 39 35 20 20 45 71  tless \u2a95  Eq
2e70: 75 61 6c 20 5c 75 32 61 37 35 20 0a 09 65 71 75  ual \u2a75 ..equ
2e80: 61 6c 73 20 5c 75 33 64 20 20 45 71 75 61 6c 54  als \u3d  EqualT
2e90: 69 6c 64 65 20 5c 75 32 32 34 32 20 20 65 71 75  ilde \u2242  equ
2ea0: 65 73 74 20 5c 75 32 32 35 66 20 20 45 71 75 69  est \u225f  Equi
2eb0: 6c 69 62 72 69 75 6d 20 5c 75 32 31 63 63 20 0a  librium \u21cc .
2ec0: 09 65 71 75 69 76 44 44 20 5c 75 32 61 37 38 20  .equivDD \u2a78 
2ed0: 20 65 71 76 70 61 72 73 6c 20 5c 75 32 39 65 35   eqvparsl \u29e5
2ee0: 20 20 65 72 61 72 72 20 5c 75 32 39 37 31 20 20    erarr \u2971  
2ef0: 65 72 44 6f 74 20 5c 75 32 32 35 33 20 0a 09 65  erDot \u2253 ..e
2f00: 73 63 72 20 5c 75 32 31 32 66 20 20 45 73 63 72  scr \u212f  Escr
2f10: 20 5c 75 32 31 33 30 20 20 65 73 64 6f 74 20 5c   \u2130  esdot \
2f20: 75 32 32 35 30 20 20 45 73 69 6d 20 5c 75 32 61  u2250  Esim \u2a
2f30: 37 33 20 20 65 73 69 6d 20 5c 75 32 32 34 32 20  73  esim \u2242 
2f40: 0a 09 65 78 63 6c 20 5c 75 32 31 20 20 45 78 69  ..excl \u21  Exi
2f50: 73 74 73 20 5c 75 32 32 30 33 20 20 65 78 70 65  sts \u2203  expe
2f60: 63 74 61 74 69 6f 6e 20 5c 75 32 31 33 30 20 20  ctation \u2130  
2f70: 65 78 70 6f 6e 65 6e 74 69 61 6c 65 20 5c 75 32  exponentiale \u2
2f80: 31 34 37 20 0a 09 45 78 70 6f 6e 65 6e 74 69 61  147 ..Exponentia
2f90: 6c 45 20 5c 75 32 31 34 37 20 20 66 61 6c 6c 69  lE \u2147  falli
2fa0: 6e 67 64 6f 74 73 65 71 20 5c 75 32 32 35 32 20  ngdotseq \u2252 
2fb0: 20 46 63 79 20 5c 75 34 32 34 20 20 66 63 79 20   Fcy \u424  fcy 
2fc0: 5c 75 34 34 34 20 0a 09 66 65 6d 61 6c 65 20 5c  \u444 ..female \
2fd0: 75 32 36 34 30 20 20 66 66 69 6c 69 67 20 5c 75  u2640  ffilig \u
2fe0: 66 62 30 33 20 20 66 66 6c 69 67 20 5c 75 66 62  fb03  fflig \ufb
2ff0: 30 30 20 20 66 66 6c 6c 69 67 20 5c 75 66 62 30  00  ffllig \ufb0
3000: 34 20 0a 09 46 66 72 20 5c 75 64 38 33 35 5c 75  4 ..Ffr \ud835\u
3010: 64 64 30 39 20 20 66 66 72 20 5c 75 64 38 33 35  dd09  ffr \ud835
3020: 5c 75 64 64 32 33 20 20 66 69 6c 69 67 20 5c 75  \udd23  filig \u
3030: 66 62 30 31 20 0a 09 46 69 6c 6c 65 64 53 6d 61  fb01 ..FilledSma
3040: 6c 6c 53 71 75 61 72 65 20 5c 75 32 35 66 63 20  llSquare \u25fc 
3050: 20 46 69 6c 6c 65 64 56 65 72 79 53 6d 61 6c 6c   FilledVerySmall
3060: 53 71 75 61 72 65 20 5c 75 32 35 61 61 20 0a 09  Square \u25aa ..
3070: 66 6a 6c 69 67 20 5c 75 36 36 5c 75 36 61 20 20  fjlig \u66\u6a  
3080: 66 6c 61 74 20 5c 75 32 36 36 64 20 20 66 6c 6c  flat \u266d  fll
3090: 69 67 20 5c 75 66 62 30 32 20 20 66 6c 74 6e 73  ig \ufb02  fltns
30a0: 20 5c 75 32 35 62 31 20 0a 09 46 6f 70 66 20 5c   \u25b1 ..Fopf \
30b0: 75 64 38 33 35 5c 75 64 64 33 64 20 20 66 6f 70  ud835\udd3d  fop
30c0: 66 20 5c 75 64 38 33 35 5c 75 64 64 35 37 20 20  f \ud835\udd57  
30d0: 46 6f 72 41 6c 6c 20 5c 75 32 32 30 30 20 20 66  ForAll \u2200  f
30e0: 6f 72 6b 20 5c 75 32 32 64 34 20 0a 09 66 6f 72  ork \u22d4 ..for
30f0: 6b 76 20 5c 75 32 61 64 39 20 20 46 6f 75 72 69  kv \u2ad9  Fouri
3100: 65 72 74 72 66 20 5c 75 32 31 33 31 20 20 66 70  ertrf \u2131  fp
3110: 61 72 74 69 6e 74 20 5c 75 32 61 30 64 20 20 66  artint \u2a0d  f
3120: 72 61 63 31 33 20 5c 75 32 31 35 33 20 0a 09 66  rac13 \u2153 ..f
3130: 72 61 63 31 35 20 5c 75 32 31 35 35 20 20 66 72  rac15 \u2155  fr
3140: 61 63 31 36 20 5c 75 32 31 35 39 20 20 66 72 61  ac16 \u2159  fra
3150: 63 31 38 20 5c 75 32 31 35 62 20 20 66 72 61 63  c18 \u215b  frac
3160: 32 33 20 5c 75 32 31 35 34 20 0a 09 66 72 61 63  23 \u2154 ..frac
3170: 32 35 20 5c 75 32 31 35 36 20 20 66 72 61 63 33  25 \u2156  frac3
3180: 35 20 5c 75 32 31 35 37 20 20 66 72 61 63 33 38  5 \u2157  frac38
3190: 20 5c 75 32 31 35 63 20 20 66 72 61 63 34 35 20   \u215c  frac45 
31a0: 5c 75 32 31 35 38 20 0a 09 66 72 61 63 35 36 20  \u2158 ..frac56 
31b0: 5c 75 32 31 35 61 20 20 66 72 61 63 35 38 20 5c  \u215a  frac58 \
31c0: 75 32 31 35 64 20 20 66 72 61 63 37 38 20 5c 75  u215d  frac78 \u
31d0: 32 31 35 65 20 20 66 72 6f 77 6e 20 5c 75 32 33  215e  frown \u23
31e0: 32 32 20 0a 09 66 73 63 72 20 5c 75 64 38 33 35  22 ..fscr \ud835
31f0: 5c 75 64 63 62 62 20 20 46 73 63 72 20 5c 75 32  \udcbb  Fscr \u2
3200: 31 33 31 20 20 67 61 63 75 74 65 20 5c 75 31 66  131  gacute \u1f
3210: 35 20 20 47 61 6d 6d 61 64 20 5c 75 33 64 63 20  5  Gammad \u3dc 
3220: 0a 09 67 61 6d 6d 61 64 20 5c 75 33 64 64 20 20  ..gammad \u3dd  
3230: 67 61 70 20 5c 75 32 61 38 36 20 20 47 62 72 65  gap \u2a86  Gbre
3240: 76 65 20 5c 75 31 31 65 20 20 67 62 72 65 76 65  ve \u11e  gbreve
3250: 20 5c 75 31 31 66 20 0a 09 47 63 65 64 69 6c 20   \u11f ..Gcedil 
3260: 5c 75 31 32 32 20 20 47 63 69 72 63 20 5c 75 31  \u122  Gcirc \u1
3270: 31 63 20 20 67 63 69 72 63 20 5c 75 31 31 64 20  1c  gcirc \u11d 
3280: 20 47 63 79 20 5c 75 34 31 33 20 20 67 63 79 20   Gcy \u413  gcy 
3290: 5c 75 34 33 33 20 0a 09 47 64 6f 74 20 5c 75 31  \u433 ..Gdot \u1
32a0: 32 30 20 20 67 64 6f 74 20 5c 75 31 32 31 20 20  20  gdot \u121  
32b0: 67 45 20 5c 75 32 32 36 37 20 20 67 45 6c 20 5c  gE \u2267  gEl \
32c0: 75 32 61 38 63 20 20 67 65 6c 20 5c 75 32 32 64  u2a8c  gel \u22d
32d0: 62 20 0a 09 67 65 71 20 5c 75 32 32 36 35 20 20  b ..geq \u2265  
32e0: 67 65 71 71 20 5c 75 32 32 36 37 20 20 67 65 71  geqq \u2267  geq
32f0: 73 6c 61 6e 74 20 5c 75 32 61 37 65 20 20 67 65  slant \u2a7e  ge
3300: 73 63 63 20 5c 75 32 61 61 39 20 0a 09 67 65 73  scc \u2aa9 ..ges
3310: 20 5c 75 32 61 37 65 20 20 67 65 73 64 6f 74 20   \u2a7e  gesdot 
3320: 5c 75 32 61 38 30 20 20 67 65 73 64 6f 74 6f 20  \u2a80  gesdoto 
3330: 5c 75 32 61 38 32 20 20 67 65 73 64 6f 74 6f 6c  \u2a82  gesdotol
3340: 20 5c 75 32 61 38 34 20 0a 09 67 65 73 6c 20 5c   \u2a84 ..gesl \
3350: 75 32 32 64 62 5c 75 66 65 30 30 20 20 67 65 73  u22db\ufe00  ges
3360: 6c 65 73 20 5c 75 32 61 39 34 20 20 47 66 72 20  les \u2a94  Gfr 
3370: 5c 75 64 38 33 35 5c 75 64 64 30 61 20 0a 09 67  \ud835\udd0a ..g
3380: 66 72 20 5c 75 64 38 33 35 5c 75 64 64 32 34 20  fr \ud835\udd24 
3390: 20 67 67 20 5c 75 32 32 36 62 20 20 47 67 20 5c   gg \u226b  Gg \
33a0: 75 32 32 64 39 20 20 67 67 67 20 5c 75 32 32 64  u22d9  ggg \u22d
33b0: 39 20 20 67 69 6d 65 6c 20 5c 75 32 31 33 37 20  9  gimel \u2137 
33c0: 0a 09 47 4a 63 79 20 5c 75 34 30 33 20 20 67 6a  ..GJcy \u403  gj
33d0: 63 79 20 5c 75 34 35 33 20 20 67 6c 61 20 5c 75  cy \u453  gla \u
33e0: 32 61 61 35 20 20 67 6c 20 5c 75 32 32 37 37 20  2aa5  gl \u2277 
33f0: 20 67 6c 45 20 5c 75 32 61 39 32 20 0a 09 67 6c   glE \u2a92 ..gl
3400: 6a 20 5c 75 32 61 61 34 20 20 67 6e 61 70 20 5c  j \u2aa4  gnap \
3410: 75 32 61 38 61 20 20 67 6e 61 70 70 72 6f 78 20  u2a8a  gnapprox 
3420: 5c 75 32 61 38 61 20 20 67 6e 65 20 5c 75 32 61  \u2a8a  gne \u2a
3430: 38 38 20 20 67 6e 45 20 5c 75 32 32 36 39 20 0a  88  gnE \u2269 .
3440: 09 67 6e 65 71 20 5c 75 32 61 38 38 20 20 67 6e  .gneq \u2a88  gn
3450: 65 71 71 20 5c 75 32 32 36 39 20 20 67 6e 73 69  eqq \u2269  gnsi
3460: 6d 20 5c 75 32 32 65 37 20 20 47 6f 70 66 20 5c  m \u22e7  Gopf \
3470: 75 64 38 33 35 5c 75 64 64 33 65 20 0a 09 67 6f  ud835\udd3e ..go
3480: 70 66 20 5c 75 64 38 33 35 5c 75 64 64 35 38 20  pf \ud835\udd58 
3490: 20 67 72 61 76 65 20 5c 75 36 30 20 20 47 72 65   grave \u60  Gre
34a0: 61 74 65 72 45 71 75 61 6c 20 5c 75 32 32 36 35  aterEqual \u2265
34b0: 20 0a 09 47 72 65 61 74 65 72 45 71 75 61 6c 4c   ..GreaterEqualL
34c0: 65 73 73 20 5c 75 32 32 64 62 20 20 47 72 65 61  ess \u22db  Grea
34d0: 74 65 72 46 75 6c 6c 45 71 75 61 6c 20 5c 75 32  terFullEqual \u2
34e0: 32 36 37 20 0a 09 47 72 65 61 74 65 72 47 72 65  267 ..GreaterGre
34f0: 61 74 65 72 20 5c 75 32 61 61 32 20 20 47 72 65  ater \u2aa2  Gre
3500: 61 74 65 72 4c 65 73 73 20 5c 75 32 32 37 37 20  aterLess \u2277 
3510: 0a 09 47 72 65 61 74 65 72 53 6c 61 6e 74 45 71  ..GreaterSlantEq
3520: 75 61 6c 20 5c 75 32 61 37 65 20 20 47 72 65 61  ual \u2a7e  Grea
3530: 74 65 72 54 69 6c 64 65 20 5c 75 32 32 37 33 20  terTilde \u2273 
3540: 20 47 73 63 72 20 5c 75 64 38 33 35 5c 75 64 63   Gscr \ud835\udc
3550: 61 32 20 0a 09 67 73 63 72 20 5c 75 32 31 30 61  a2 ..gscr \u210a
3560: 20 20 67 73 69 6d 20 5c 75 32 32 37 33 20 20 67    gsim \u2273  g
3570: 73 69 6d 65 20 5c 75 32 61 38 65 20 20 67 73 69  sime \u2a8e  gsi
3580: 6d 6c 20 5c 75 32 61 39 30 20 20 67 74 63 63 20  ml \u2a90  gtcc 
3590: 5c 75 32 61 61 37 20 0a 09 67 74 63 69 72 20 5c  \u2aa7 ..gtcir \
35a0: 75 32 61 37 61 20 20 47 54 20 5c 75 33 65 20 20  u2a7a  GT \u3e  
35b0: 47 74 20 5c 75 32 32 36 62 20 20 67 74 64 6f 74  Gt \u226b  gtdot
35c0: 20 5c 75 32 32 64 37 20 20 67 74 6c 50 61 72 20   \u22d7  gtlPar 
35d0: 5c 75 32 39 39 35 20 0a 09 67 74 71 75 65 73 74  \u2995 ..gtquest
35e0: 20 5c 75 32 61 37 63 20 20 67 74 72 61 70 70 72   \u2a7c  gtrappr
35f0: 6f 78 20 5c 75 32 61 38 36 20 20 67 74 72 61 72  ox \u2a86  gtrar
3600: 72 20 5c 75 32 39 37 38 20 20 67 74 72 64 6f 74  r \u2978  gtrdot
3610: 20 5c 75 32 32 64 37 20 0a 09 67 74 72 65 71 6c   \u22d7 ..gtreql
3620: 65 73 73 20 5c 75 32 32 64 62 20 20 67 74 72 65  ess \u22db  gtre
3630: 71 71 6c 65 73 73 20 5c 75 32 61 38 63 20 20 67  qqless \u2a8c  g
3640: 74 72 6c 65 73 73 20 5c 75 32 32 37 37 20 0a 09  trless \u2277 ..
3650: 67 74 72 73 69 6d 20 5c 75 32 32 37 33 20 20 67  gtrsim \u2273  g
3660: 76 65 72 74 6e 65 71 71 20 5c 75 32 32 36 39 5c  vertneqq \u2269\
3670: 75 66 65 30 30 20 20 67 76 6e 45 20 5c 75 32 32  ufe00  gvnE \u22
3680: 36 39 5c 75 66 65 30 30 20 0a 09 48 61 63 65 6b  69\ufe00 ..Hacek
3690: 20 5c 75 32 63 37 20 20 68 61 69 72 73 70 20 5c   \u2c7  hairsp \
36a0: 75 32 30 30 61 20 20 68 61 6c 66 20 5c 75 62 64  u200a  half \ubd
36b0: 20 20 68 61 6d 69 6c 74 20 5c 75 32 31 30 62 20    hamilt \u210b 
36c0: 0a 09 48 41 52 44 63 79 20 5c 75 34 32 61 20 20  ..HARDcy \u42a  
36d0: 68 61 72 64 63 79 20 5c 75 34 34 61 20 20 68 61  hardcy \u44a  ha
36e0: 72 72 63 69 72 20 5c 75 32 39 34 38 20 20 68 61  rrcir \u2948  ha
36f0: 72 72 77 20 5c 75 32 31 61 64 20 0a 09 48 61 74  rrw \u21ad ..Hat
3700: 20 5c 75 35 65 20 20 68 62 61 72 20 5c 75 32 31   \u5e  hbar \u21
3710: 30 66 20 20 48 63 69 72 63 20 5c 75 31 32 34 20  0f  Hcirc \u124 
3720: 20 68 63 69 72 63 20 5c 75 31 32 35 20 20 68 65   hcirc \u125  he
3730: 61 72 74 73 75 69 74 20 5c 75 32 36 36 35 20 0a  artsuit \u2665 .
3740: 09 68 65 72 63 6f 6e 20 5c 75 32 32 62 39 20 20  .hercon \u22b9  
3750: 68 66 72 20 5c 75 64 38 33 35 5c 75 64 64 32 35  hfr \ud835\udd25
3760: 20 20 48 66 72 20 5c 75 32 31 30 63 20 20 48 69    Hfr \u210c  Hi
3770: 6c 62 65 72 74 53 70 61 63 65 20 5c 75 32 31 30  lbertSpace \u210
3780: 62 20 0a 09 68 6b 73 65 61 72 6f 77 20 5c 75 32  b ..hksearow \u2
3790: 39 32 35 20 20 68 6b 73 77 61 72 6f 77 20 5c 75  925  hkswarow \u
37a0: 32 39 32 36 20 20 68 6f 61 72 72 20 5c 75 32 31  2926  hoarr \u21
37b0: 66 66 20 20 68 6f 6d 74 68 74 20 5c 75 32 32 33  ff  homtht \u223
37c0: 62 20 0a 09 68 6f 6f 6b 6c 65 66 74 61 72 72 6f  b ..hookleftarro
37d0: 77 20 5c 75 32 31 61 39 20 20 68 6f 6f 6b 72 69  w \u21a9  hookri
37e0: 67 68 74 61 72 72 6f 77 20 5c 75 32 31 61 61 20  ghtarrow \u21aa 
37f0: 20 68 6f 70 66 20 5c 75 64 38 33 35 5c 75 64 64   hopf \ud835\udd
3800: 35 39 20 0a 09 48 6f 70 66 20 5c 75 32 31 30 64  59 ..Hopf \u210d
3810: 20 20 68 6f 72 62 61 72 20 5c 75 32 30 31 35 20    horbar \u2015 
3820: 20 48 6f 72 69 7a 6f 6e 74 61 6c 4c 69 6e 65 20   HorizontalLine 
3830: 5c 75 32 35 30 30 20 0a 09 68 73 63 72 20 5c 75  \u2500 ..hscr \u
3840: 64 38 33 35 5c 75 64 63 62 64 20 20 48 73 63 72  d835\udcbd  Hscr
3850: 20 5c 75 32 31 30 62 20 20 68 73 6c 61 73 68 20   \u210b  hslash 
3860: 5c 75 32 31 30 66 20 20 48 73 74 72 6f 6b 20 5c  \u210f  Hstrok \
3870: 75 31 32 36 20 0a 09 68 73 74 72 6f 6b 20 5c 75  u126 ..hstrok \u
3880: 31 32 37 20 20 48 75 6d 70 44 6f 77 6e 48 75 6d  127  HumpDownHum
3890: 70 20 5c 75 32 32 34 65 20 20 48 75 6d 70 45 71  p \u224e  HumpEq
38a0: 75 61 6c 20 5c 75 32 32 34 66 20 0a 09 68 79 62  ual \u224f ..hyb
38b0: 75 6c 6c 20 5c 75 32 30 34 33 20 20 68 79 70 68  ull \u2043  hyph
38c0: 65 6e 20 5c 75 32 30 31 30 20 20 69 63 20 5c 75  en \u2010  ic \u
38d0: 32 30 36 33 20 20 49 63 79 20 5c 75 34 31 38 20  2063  Icy \u418 
38e0: 20 69 63 79 20 5c 75 34 33 38 20 0a 09 49 64 6f   icy \u438 ..Ido
38f0: 74 20 5c 75 31 33 30 20 20 49 45 63 79 20 5c 75  t \u130  IEcy \u
3900: 34 31 35 20 20 69 65 63 79 20 5c 75 34 33 35 20  415  iecy \u435 
3910: 20 69 66 66 20 5c 75 32 31 64 34 20 20 69 66 72   iff \u21d4  ifr
3920: 20 5c 75 64 38 33 35 5c 75 64 64 32 36 20 0a 09   \ud835\udd26 ..
3930: 49 66 72 20 5c 75 32 31 31 31 20 20 69 69 20 5c  Ifr \u2111  ii \
3940: 75 32 31 34 38 20 20 69 69 69 69 6e 74 20 5c 75  u2148  iiiint \u
3950: 32 61 30 63 20 20 69 69 69 6e 74 20 5c 75 32 32  2a0c  iiint \u22
3960: 32 64 20 20 69 69 6e 66 69 6e 20 5c 75 32 39 64  2d  iinfin \u29d
3970: 63 20 0a 09 69 69 6f 74 61 20 5c 75 32 31 32 39  c ..iiota \u2129
3980: 20 20 49 4a 6c 69 67 20 5c 75 31 33 32 20 20 69    IJlig \u132  i
3990: 6a 6c 69 67 20 5c 75 31 33 33 20 20 49 6d 61 63  jlig \u133  Imac
39a0: 72 20 5c 75 31 32 61 20 20 69 6d 61 63 72 20 5c  r \u12a  imacr \
39b0: 75 31 32 62 20 0a 09 49 6d 61 67 69 6e 61 72 79  u12b ..Imaginary
39c0: 49 20 5c 75 32 31 34 38 20 20 69 6d 61 67 6c 69  I \u2148  imagli
39d0: 6e 65 20 5c 75 32 31 31 30 20 20 69 6d 61 67 70  ne \u2110  imagp
39e0: 61 72 74 20 5c 75 32 31 31 31 20 20 69 6d 61 74  art \u2111  imat
39f0: 68 20 5c 75 31 33 31 20 0a 09 49 6d 20 5c 75 32  h \u131 ..Im \u2
3a00: 31 31 31 20 20 69 6d 6f 66 20 5c 75 32 32 62 37  111  imof \u22b7
3a10: 20 20 69 6d 70 65 64 20 5c 75 31 62 35 20 20 49    imped \u1b5  I
3a20: 6d 70 6c 69 65 73 20 5c 75 32 31 64 32 20 0a 09  mplies \u21d2 ..
3a30: 69 6e 63 61 72 65 20 5c 75 32 31 30 35 20 20 69  incare \u2105  i
3a40: 6e 20 5c 75 32 32 30 38 20 20 69 6e 66 69 6e 74  n \u2208  infint
3a50: 69 65 20 5c 75 32 39 64 64 20 20 69 6e 6f 64 6f  ie \u29dd  inodo
3a60: 74 20 5c 75 31 33 31 20 0a 09 69 6e 74 63 61 6c  t \u131 ..intcal
3a70: 20 5c 75 32 32 62 61 20 20 49 6e 74 20 5c 75 32   \u22ba  Int \u2
3a80: 32 32 63 20 20 69 6e 74 65 67 65 72 73 20 5c 75  22c  integers \u
3a90: 32 31 32 34 20 20 49 6e 74 65 67 72 61 6c 20 5c  2124  Integral \
3aa0: 75 32 32 32 62 20 0a 09 69 6e 74 65 72 63 61 6c  u222b ..intercal
3ab0: 20 5c 75 32 32 62 61 20 20 49 6e 74 65 72 73 65   \u22ba  Interse
3ac0: 63 74 69 6f 6e 20 5c 75 32 32 63 32 20 20 69 6e  ction \u22c2  in
3ad0: 74 6c 61 72 68 6b 20 5c 75 32 61 31 37 20 0a 09  tlarhk \u2a17 ..
3ae0: 69 6e 74 70 72 6f 64 20 5c 75 32 61 33 63 20 20  intprod \u2a3c  
3af0: 49 6e 76 69 73 69 62 6c 65 43 6f 6d 6d 61 20 5c  InvisibleComma \
3b00: 75 32 30 36 33 20 20 49 6e 76 69 73 69 62 6c 65  u2063  Invisible
3b10: 54 69 6d 65 73 20 5c 75 32 30 36 32 20 0a 09 49  Times \u2062 ..I
3b20: 4f 63 79 20 5c 75 34 30 31 20 20 69 6f 63 79 20  Ocy \u401  iocy 
3b30: 5c 75 34 35 31 20 20 49 6f 67 6f 6e 20 5c 75 31  \u451  Iogon \u1
3b40: 32 65 20 20 69 6f 67 6f 6e 20 5c 75 31 32 66 20  2e  iogon \u12f 
3b50: 0a 09 49 6f 70 66 20 5c 75 64 38 33 35 5c 75 64  ..Iopf \ud835\ud
3b60: 64 34 30 20 20 69 6f 70 66 20 5c 75 64 38 33 35  d40  iopf \ud835
3b70: 5c 75 64 64 35 61 20 20 69 70 72 6f 64 20 5c 75  \udd5a  iprod \u
3b80: 32 61 33 63 20 0a 09 69 73 63 72 20 5c 75 64 38  2a3c ..iscr \ud8
3b90: 33 35 5c 75 64 63 62 65 20 20 49 73 63 72 20 5c  35\udcbe  Iscr \
3ba0: 75 32 31 31 30 20 20 69 73 69 6e 64 6f 74 20 5c  u2110  isindot \
3bb0: 75 32 32 66 35 20 20 69 73 69 6e 45 20 5c 75 32  u22f5  isinE \u2
3bc0: 32 66 39 20 0a 09 69 73 69 6e 73 20 5c 75 32 32  2f9 ..isins \u22
3bd0: 66 34 20 20 69 73 69 6e 73 76 20 5c 75 32 32 66  f4  isinsv \u22f
3be0: 33 20 20 69 73 69 6e 76 20 5c 75 32 32 30 38 20  3  isinv \u2208 
3bf0: 20 69 74 20 5c 75 32 30 36 32 20 0a 09 49 74 69   it \u2062 ..Iti
3c00: 6c 64 65 20 5c 75 31 32 38 20 20 69 74 69 6c 64  lde \u128  itild
3c10: 65 20 5c 75 31 32 39 20 20 49 75 6b 63 79 20 5c  e \u129  Iukcy \
3c20: 75 34 30 36 20 20 69 75 6b 63 79 20 5c 75 34 35  u406  iukcy \u45
3c30: 36 20 20 4a 63 69 72 63 20 5c 75 31 33 34 20 0a  6  Jcirc \u134 .
3c40: 09 6a 63 69 72 63 20 5c 75 31 33 35 20 20 4a 63  .jcirc \u135  Jc
3c50: 79 20 5c 75 34 31 39 20 20 6a 63 79 20 5c 75 34  y \u419  jcy \u4
3c60: 33 39 20 20 4a 66 72 20 5c 75 64 38 33 35 5c 75  39  Jfr \ud835\u
3c70: 64 64 30 64 20 0a 09 6a 66 72 20 5c 75 64 38 33  dd0d ..jfr \ud83
3c80: 35 5c 75 64 64 32 37 20 20 6a 6d 61 74 68 20 5c  5\udd27  jmath \
3c90: 75 32 33 37 20 20 4a 6f 70 66 20 5c 75 64 38 33  u237  Jopf \ud83
3ca0: 35 5c 75 64 64 34 31 20 0a 09 6a 6f 70 66 20 5c  5\udd41 ..jopf \
3cb0: 75 64 38 33 35 5c 75 64 64 35 62 20 20 4a 73 63  ud835\udd5b  Jsc
3cc0: 72 20 5c 75 64 38 33 35 5c 75 64 63 61 35 20 20  r \ud835\udca5  
3cd0: 6a 73 63 72 20 5c 75 64 38 33 35 5c 75 64 63 62  jscr \ud835\udcb
3ce0: 66 20 0a 09 4a 73 65 72 63 79 20 5c 75 34 30 38  f ..Jsercy \u408
3cf0: 20 20 6a 73 65 72 63 79 20 5c 75 34 35 38 20 20    jsercy \u458  
3d00: 4a 75 6b 63 79 20 5c 75 34 30 34 20 20 6a 75 6b  Jukcy \u404  juk
3d10: 63 79 20 5c 75 34 35 34 20 0a 09 6b 61 70 70 61  cy \u454 ..kappa
3d20: 76 20 5c 75 33 66 30 20 20 4b 63 65 64 69 6c 20  v \u3f0  Kcedil 
3d30: 5c 75 31 33 36 20 20 6b 63 65 64 69 6c 20 5c 75  \u136  kcedil \u
3d40: 31 33 37 20 20 4b 63 79 20 5c 75 34 31 61 20 20  137  Kcy \u41a  
3d50: 6b 63 79 20 5c 75 34 33 61 20 0a 09 4b 66 72 20  kcy \u43a ..Kfr 
3d60: 5c 75 64 38 33 35 5c 75 64 64 30 65 20 20 6b 66  \ud835\udd0e  kf
3d70: 72 20 5c 75 64 38 33 35 5c 75 64 64 32 38 20 20  r \ud835\udd28  
3d80: 6b 67 72 65 65 6e 20 5c 75 31 33 38 20 20 4b 48  kgreen \u138  KH
3d90: 63 79 20 5c 75 34 32 35 20 0a 09 6b 68 63 79 20  cy \u425 ..khcy 
3da0: 5c 75 34 34 35 20 20 4b 4a 63 79 20 5c 75 34 30  \u445  KJcy \u40
3db0: 63 20 20 6b 6a 63 79 20 5c 75 34 35 63 20 20 4b  c  kjcy \u45c  K
3dc0: 6f 70 66 20 5c 75 64 38 33 35 5c 75 64 64 34 32  opf \ud835\udd42
3dd0: 20 0a 09 6b 6f 70 66 20 5c 75 64 38 33 35 5c 75   ..kopf \ud835\u
3de0: 64 64 35 63 20 20 4b 73 63 72 20 5c 75 64 38 33  dd5c  Kscr \ud83
3df0: 35 5c 75 64 63 61 36 20 20 6b 73 63 72 20 5c 75  5\udca6  kscr \u
3e00: 64 38 33 35 5c 75 64 63 63 30 20 0a 09 6c 41 61  d835\udcc0 ..lAa
3e10: 72 72 20 5c 75 32 31 64 61 20 20 4c 61 63 75 74  rr \u21da  Lacut
3e20: 65 20 5c 75 31 33 39 20 20 6c 61 63 75 74 65 20  e \u139  lacute 
3e30: 5c 75 31 33 61 20 20 6c 61 65 6d 70 74 79 76 20  \u13a  laemptyv 
3e40: 5c 75 32 39 62 34 20 0a 09 6c 61 67 72 61 6e 20  \u29b4 ..lagran 
3e50: 5c 75 32 31 31 32 20 20 4c 61 6e 67 20 5c 75 32  \u2112  Lang \u2
3e60: 37 65 61 20 20 6c 61 6e 67 64 20 5c 75 32 39 39  7ea  langd \u299
3e70: 31 20 20 6c 61 6e 67 6c 65 20 5c 75 32 37 65 38  1  langle \u27e8
3e80: 20 0a 09 6c 61 70 20 5c 75 32 61 38 35 20 20 4c   ..lap \u2a85  L
3e90: 61 70 6c 61 63 65 74 72 66 20 5c 75 32 31 31 32  aplacetrf \u2112
3ea0: 20 20 6c 61 72 72 62 20 5c 75 32 31 65 34 20 20    larrb \u21e4  
3eb0: 6c 61 72 72 62 66 73 20 5c 75 32 39 31 66 20 0a  larrbfs \u291f .
3ec0: 09 4c 61 72 72 20 5c 75 32 31 39 65 20 20 6c 61  .Larr \u219e  la
3ed0: 72 72 66 73 20 5c 75 32 39 31 64 20 20 6c 61 72  rrfs \u291d  lar
3ee0: 72 68 6b 20 5c 75 32 31 61 39 20 20 6c 61 72 72  rhk \u21a9  larr
3ef0: 6c 70 20 5c 75 32 31 61 62 20 0a 09 6c 61 72 72  lp \u21ab ..larr
3f00: 70 6c 20 5c 75 32 39 33 39 20 20 6c 61 72 72 73  pl \u2939  larrs
3f10: 69 6d 20 5c 75 32 39 37 33 20 20 6c 61 72 72 74  im \u2973  larrt
3f20: 6c 20 5c 75 32 31 61 32 20 20 6c 61 74 61 69 6c  l \u21a2  latail
3f30: 20 5c 75 32 39 31 39 20 0a 09 6c 41 74 61 69 6c   \u2919 ..lAtail
3f40: 20 5c 75 32 39 31 62 20 20 6c 61 74 20 5c 75 32   \u291b  lat \u2
3f50: 61 61 62 20 20 6c 61 74 65 20 5c 75 32 61 61 64  aab  late \u2aad
3f60: 20 20 6c 61 74 65 73 20 5c 75 32 61 61 64 5c 75    lates \u2aad\u
3f70: 66 65 30 30 20 0a 09 6c 62 61 72 72 20 5c 75 32  fe00 ..lbarr \u2
3f80: 39 30 63 20 20 6c 42 61 72 72 20 5c 75 32 39 30  90c  lBarr \u290
3f90: 65 20 20 6c 62 62 72 6b 20 5c 75 32 37 37 32 20  e  lbbrk \u2772 
3fa0: 20 6c 62 72 61 63 65 20 5c 75 37 62 20 0a 09 6c   lbrace \u7b ..l
3fb0: 62 72 61 63 6b 20 5c 75 35 62 20 20 6c 62 72 6b  brack \u5b  lbrk
3fc0: 65 20 5c 75 32 39 38 62 20 20 6c 62 72 6b 73 6c  e \u298b  lbrksl
3fd0: 64 20 5c 75 32 39 38 66 20 20 6c 62 72 6b 73 6c  d \u298f  lbrksl
3fe0: 75 20 5c 75 32 39 38 64 20 0a 09 4c 63 61 72 6f  u \u298d ..Lcaro
3ff0: 6e 20 5c 75 31 33 64 20 20 6c 63 61 72 6f 6e 20  n \u13d  lcaron 
4000: 5c 75 31 33 65 20 20 4c 63 65 64 69 6c 20 5c 75  \u13e  Lcedil \u
4010: 31 33 62 20 20 6c 63 65 64 69 6c 20 5c 75 31 33  13b  lcedil \u13
4020: 63 20 20 6c 63 75 62 20 5c 75 37 62 20 0a 09 4c  c  lcub \u7b ..L
4030: 63 79 20 5c 75 34 31 62 20 20 6c 63 79 20 5c 75  cy \u41b  lcy \u
4040: 34 33 62 20 20 6c 64 63 61 20 5c 75 32 39 33 36  43b  ldca \u2936
4050: 20 20 6c 64 71 75 6f 72 20 5c 75 32 30 31 65 20    ldquor \u201e 
4060: 20 6c 64 72 64 68 61 72 20 5c 75 32 39 36 37 20   ldrdhar \u2967 
4070: 0a 09 6c 64 72 75 73 68 61 72 20 5c 75 32 39 34  ..ldrushar \u294
4080: 62 20 20 6c 64 73 68 20 5c 75 32 31 62 32 20 20  b  ldsh \u21b2  
4090: 6c 45 20 5c 75 32 32 36 36 20 20 4c 65 66 74 41  lE \u2266  LeftA
40a0: 6e 67 6c 65 42 72 61 63 6b 65 74 20 5c 75 32 37  ngleBracket \u27
40b0: 65 38 20 0a 09 4c 65 66 74 41 72 72 6f 77 42 61  e8 ..LeftArrowBa
40c0: 72 20 5c 75 32 31 65 34 20 20 6c 65 66 74 61 72  r \u21e4  leftar
40d0: 72 6f 77 20 5c 75 32 31 39 30 20 20 4c 65 66 74  row \u2190  Left
40e0: 41 72 72 6f 77 20 5c 75 32 31 39 30 20 0a 09 4c  Arrow \u2190 ..L
40f0: 65 66 74 61 72 72 6f 77 20 5c 75 32 31 64 30 20  eftarrow \u21d0 
4100: 20 4c 65 66 74 41 72 72 6f 77 52 69 67 68 74 41   LeftArrowRightA
4110: 72 72 6f 77 20 5c 75 32 31 63 36 20 0a 09 6c 65  rrow \u21c6 ..le
4120: 66 74 61 72 72 6f 77 74 61 69 6c 20 5c 75 32 31  ftarrowtail \u21
4130: 61 32 20 20 4c 65 66 74 43 65 69 6c 69 6e 67 20  a2  LeftCeiling 
4140: 5c 75 32 33 30 38 20 0a 09 4c 65 66 74 44 6f 75  \u2308 ..LeftDou
4150: 62 6c 65 42 72 61 63 6b 65 74 20 5c 75 32 37 65  bleBracket \u27e
4160: 36 20 20 4c 65 66 74 44 6f 77 6e 54 65 65 56 65  6  LeftDownTeeVe
4170: 63 74 6f 72 20 5c 75 32 39 36 31 20 0a 09 4c 65  ctor \u2961 ..Le
4180: 66 74 44 6f 77 6e 56 65 63 74 6f 72 42 61 72 20  ftDownVectorBar 
4190: 5c 75 32 39 35 39 20 20 4c 65 66 74 44 6f 77 6e  \u2959  LeftDown
41a0: 56 65 63 74 6f 72 20 5c 75 32 31 63 33 20 20 4c  Vector \u21c3  L
41b0: 65 66 74 46 6c 6f 6f 72 20 5c 75 32 33 30 61 20  eftFloor \u230a 
41c0: 0a 09 6c 65 66 74 68 61 72 70 6f 6f 6e 64 6f 77  ..leftharpoondow
41d0: 6e 20 5c 75 32 31 62 64 20 20 6c 65 66 74 68 61  n \u21bd  leftha
41e0: 72 70 6f 6f 6e 75 70 20 5c 75 32 31 62 63 20 0a  rpoonup \u21bc .
41f0: 09 6c 65 66 74 6c 65 66 74 61 72 72 6f 77 73 20  .leftleftarrows 
4200: 5c 75 32 31 63 37 20 20 6c 65 66 74 72 69 67 68  \u21c7  leftrigh
4210: 74 61 72 72 6f 77 20 5c 75 32 31 39 34 20 0a 09  tarrow \u2194 ..
4220: 4c 65 66 74 52 69 67 68 74 41 72 72 6f 77 20 5c  LeftRightArrow \
4230: 75 32 31 39 34 20 20 4c 65 66 74 72 69 67 68 74  u2194  Leftright
4240: 61 72 72 6f 77 20 5c 75 32 31 64 34 20 0a 09 6c  arrow \u21d4 ..l
4250: 65 66 74 72 69 67 68 74 61 72 72 6f 77 73 20 5c  eftrightarrows \
4260: 75 32 31 63 36 20 20 6c 65 66 74 72 69 67 68 74  u21c6  leftright
4270: 68 61 72 70 6f 6f 6e 73 20 5c 75 32 31 63 62 20  harpoons \u21cb 
4280: 0a 09 6c 65 66 74 72 69 67 68 74 73 71 75 69 67  ..leftrightsquig
4290: 61 72 72 6f 77 20 5c 75 32 31 61 64 20 20 4c 65  arrow \u21ad  Le
42a0: 66 74 52 69 67 68 74 56 65 63 74 6f 72 20 5c 75  ftRightVector \u
42b0: 32 39 34 65 20 0a 09 4c 65 66 74 54 65 65 41 72  294e ..LeftTeeAr
42c0: 72 6f 77 20 5c 75 32 31 61 34 20 20 4c 65 66 74  row \u21a4  Left
42d0: 54 65 65 20 5c 75 32 32 61 33 20 20 4c 65 66 74  Tee \u22a3  Left
42e0: 54 65 65 56 65 63 74 6f 72 20 5c 75 32 39 35 61  TeeVector \u295a
42f0: 20 0a 09 6c 65 66 74 74 68 72 65 65 74 69 6d 65   ..leftthreetime
4300: 73 20 5c 75 32 32 63 62 20 20 4c 65 66 74 54 72  s \u22cb  LeftTr
4310: 69 61 6e 67 6c 65 42 61 72 20 5c 75 32 39 63 66  iangleBar \u29cf
4320: 20 0a 09 4c 65 66 74 54 72 69 61 6e 67 6c 65 20   ..LeftTriangle 
4330: 5c 75 32 32 62 32 20 20 4c 65 66 74 54 72 69 61  \u22b2  LeftTria
4340: 6e 67 6c 65 45 71 75 61 6c 20 5c 75 32 32 62 34  ngleEqual \u22b4
4350: 20 0a 09 4c 65 66 74 55 70 44 6f 77 6e 56 65 63   ..LeftUpDownVec
4360: 74 6f 72 20 5c 75 32 39 35 31 20 20 4c 65 66 74  tor \u2951  Left
4370: 55 70 54 65 65 56 65 63 74 6f 72 20 5c 75 32 39  UpTeeVector \u29
4380: 36 30 20 0a 09 4c 65 66 74 55 70 56 65 63 74 6f  60 ..LeftUpVecto
4390: 72 42 61 72 20 5c 75 32 39 35 38 20 20 4c 65 66  rBar \u2958  Lef
43a0: 74 55 70 56 65 63 74 6f 72 20 5c 75 32 31 62 66  tUpVector \u21bf
43b0: 20 20 4c 65 66 74 56 65 63 74 6f 72 42 61 72 20    LeftVectorBar 
43c0: 5c 75 32 39 35 32 20 0a 09 4c 65 66 74 56 65 63  \u2952 ..LeftVec
43d0: 74 6f 72 20 5c 75 32 31 62 63 20 20 6c 45 67 20  tor \u21bc  lEg 
43e0: 5c 75 32 61 38 62 20 20 6c 65 67 20 5c 75 32 32  \u2a8b  leg \u22
43f0: 64 61 20 20 6c 65 71 20 5c 75 32 32 36 34 20 0a  da  leq \u2264 .
4400: 09 6c 65 71 71 20 5c 75 32 32 36 36 20 20 6c 65  .leqq \u2266  le
4410: 71 73 6c 61 6e 74 20 5c 75 32 61 37 64 20 20 6c  qslant \u2a7d  l
4420: 65 73 63 63 20 5c 75 32 61 61 38 20 20 6c 65 73  escc \u2aa8  les
4430: 20 5c 75 32 61 37 64 20 0a 09 6c 65 73 64 6f 74   \u2a7d ..lesdot
4440: 20 5c 75 32 61 37 66 20 20 6c 65 73 64 6f 74 6f   \u2a7f  lesdoto
4450: 20 5c 75 32 61 38 31 20 20 6c 65 73 64 6f 74 6f   \u2a81  lesdoto
4460: 72 20 5c 75 32 61 38 33 20 20 6c 65 73 67 20 5c  r \u2a83  lesg \
4470: 75 32 32 64 61 5c 75 66 65 30 30 20 0a 09 6c 65  u22da\ufe00 ..le
4480: 73 67 65 73 20 5c 75 32 61 39 33 20 20 6c 65 73  sges \u2a93  les
4490: 73 61 70 70 72 6f 78 20 5c 75 32 61 38 35 20 20  sapprox \u2a85  
44a0: 6c 65 73 73 64 6f 74 20 5c 75 32 32 64 36 20 0a  lessdot \u22d6 .
44b0: 09 6c 65 73 73 65 71 67 74 72 20 5c 75 32 32 64  .lesseqgtr \u22d
44c0: 61 20 20 6c 65 73 73 65 71 71 67 74 72 20 5c 75  a  lesseqqgtr \u
44d0: 32 61 38 62 20 20 4c 65 73 73 45 71 75 61 6c 47  2a8b  LessEqualG
44e0: 72 65 61 74 65 72 20 5c 75 32 32 64 61 20 0a 09  reater \u22da ..
44f0: 4c 65 73 73 46 75 6c 6c 45 71 75 61 6c 20 5c 75  LessFullEqual \u
4500: 32 32 36 36 20 20 4c 65 73 73 47 72 65 61 74 65  2266  LessGreate
4510: 72 20 5c 75 32 32 37 36 20 20 6c 65 73 73 67 74  r \u2276  lessgt
4520: 72 20 5c 75 32 32 37 36 20 0a 09 4c 65 73 73 4c  r \u2276 ..LessL
4530: 65 73 73 20 5c 75 32 61 61 31 20 20 6c 65 73 73  ess \u2aa1  less
4540: 73 69 6d 20 5c 75 32 32 37 32 20 20 4c 65 73 73  sim \u2272  Less
4550: 53 6c 61 6e 74 45 71 75 61 6c 20 5c 75 32 61 37  SlantEqual \u2a7
4560: 64 20 0a 09 4c 65 73 73 54 69 6c 64 65 20 5c 75  d ..LessTilde \u
4570: 32 32 37 32 20 20 6c 66 69 73 68 74 20 5c 75 32  2272  lfisht \u2
4580: 39 37 63 20 20 4c 66 72 20 5c 75 64 38 33 35 5c  97c  Lfr \ud835\
4590: 75 64 64 30 66 20 0a 09 6c 66 72 20 5c 75 64 38  udd0f ..lfr \ud8
45a0: 33 35 5c 75 64 64 32 39 20 20 6c 67 20 5c 75 32  35\udd29  lg \u2
45b0: 32 37 36 20 20 6c 67 45 20 5c 75 32 61 39 31 20  276  lgE \u2a91 
45c0: 20 6c 48 61 72 20 5c 75 32 39 36 32 20 0a 09 6c   lHar \u2962 ..l
45d0: 68 61 72 64 20 5c 75 32 31 62 64 20 20 6c 68 61  hard \u21bd  lha
45e0: 72 75 20 5c 75 32 31 62 63 20 20 6c 68 61 72 75  ru \u21bc  lharu
45f0: 6c 20 5c 75 32 39 36 61 20 20 6c 68 62 6c 6b 20  l \u296a  lhblk 
4600: 5c 75 32 35 38 34 20 0a 09 4c 4a 63 79 20 5c 75  \u2584 ..LJcy \u
4610: 34 30 39 20 20 6c 6a 63 79 20 5c 75 34 35 39 20  409  ljcy \u459 
4620: 20 6c 6c 61 72 72 20 5c 75 32 31 63 37 20 20 6c   llarr \u21c7  l
4630: 6c 20 5c 75 32 32 36 61 20 20 4c 6c 20 5c 75 32  l \u226a  Ll \u2
4640: 32 64 38 20 0a 09 6c 6c 63 6f 72 6e 65 72 20 5c  2d8 ..llcorner \
4650: 75 32 33 31 65 20 20 4c 6c 65 66 74 61 72 72 6f  u231e  Lleftarro
4660: 77 20 5c 75 32 31 64 61 20 20 6c 6c 68 61 72 64  w \u21da  llhard
4670: 20 5c 75 32 39 36 62 20 20 6c 6c 74 72 69 20 5c   \u296b  lltri \
4680: 75 32 35 66 61 20 0a 09 4c 6d 69 64 6f 74 20 5c  u25fa ..Lmidot \
4690: 75 31 33 66 20 20 6c 6d 69 64 6f 74 20 5c 75 31  u13f  lmidot \u1
46a0: 34 30 20 20 6c 6d 6f 75 73 74 61 63 68 65 20 5c  40  lmoustache \
46b0: 75 32 33 62 30 20 20 6c 6d 6f 75 73 74 20 5c 75  u23b0  lmoust \u
46c0: 32 33 62 30 20 0a 09 6c 6e 61 70 20 5c 75 32 61  23b0 ..lnap \u2a
46d0: 38 39 20 20 6c 6e 61 70 70 72 6f 78 20 5c 75 32  89  lnapprox \u2
46e0: 61 38 39 20 20 6c 6e 65 20 5c 75 32 61 38 37 20  a89  lne \u2a87 
46f0: 20 6c 6e 45 20 5c 75 32 32 36 38 20 20 6c 6e 65   lnE \u2268  lne
4700: 71 20 5c 75 32 61 38 37 20 0a 09 6c 6e 65 71 71  q \u2a87 ..lneqq
4710: 20 5c 75 32 32 36 38 20 20 6c 6e 73 69 6d 20 5c   \u2268  lnsim \
4720: 75 32 32 65 36 20 20 6c 6f 61 6e 67 20 5c 75 32  u22e6  loang \u2
4730: 37 65 63 20 20 6c 6f 61 72 72 20 5c 75 32 31 66  7ec  loarr \u21f
4740: 64 20 0a 09 6c 6f 62 72 6b 20 5c 75 32 37 65 36  d ..lobrk \u27e6
4750: 20 20 6c 6f 6e 67 6c 65 66 74 61 72 72 6f 77 20    longleftarrow 
4760: 5c 75 32 37 66 35 20 20 4c 6f 6e 67 4c 65 66 74  \u27f5  LongLeft
4770: 41 72 72 6f 77 20 5c 75 32 37 66 35 20 0a 09 4c  Arrow \u27f5 ..L
4780: 6f 6e 67 6c 65 66 74 61 72 72 6f 77 20 5c 75 32  ongleftarrow \u2
4790: 37 66 38 20 20 6c 6f 6e 67 6c 65 66 74 72 69 67  7f8  longleftrig
47a0: 68 74 61 72 72 6f 77 20 5c 75 32 37 66 37 20 0a  htarrow \u27f7 .
47b0: 09 4c 6f 6e 67 4c 65 66 74 52 69 67 68 74 41 72  .LongLeftRightAr
47c0: 72 6f 77 20 5c 75 32 37 66 37 20 20 4c 6f 6e 67  row \u27f7  Long
47d0: 6c 65 66 74 72 69 67 68 74 61 72 72 6f 77 20 5c  leftrightarrow \
47e0: 75 32 37 66 61 20 0a 09 6c 6f 6e 67 6d 61 70 73  u27fa ..longmaps
47f0: 74 6f 20 5c 75 32 37 66 63 20 20 6c 6f 6e 67 72  to \u27fc  longr
4800: 69 67 68 74 61 72 72 6f 77 20 5c 75 32 37 66 36  ightarrow \u27f6
4810: 20 20 4c 6f 6e 67 52 69 67 68 74 41 72 72 6f 77    LongRightArrow
4820: 20 5c 75 32 37 66 36 20 0a 09 4c 6f 6e 67 72 69   \u27f6 ..Longri
4830: 67 68 74 61 72 72 6f 77 20 5c 75 32 37 66 39 20  ghtarrow \u27f9 
4840: 20 6c 6f 6f 70 61 72 72 6f 77 6c 65 66 74 20 5c   looparrowleft \
4850: 75 32 31 61 62 20 0a 09 6c 6f 6f 70 61 72 72 6f  u21ab ..looparro
4860: 77 72 69 67 68 74 20 5c 75 32 31 61 63 20 20 6c  wright \u21ac  l
4870: 6f 70 61 72 20 5c 75 32 39 38 35 20 20 4c 6f 70  opar \u2985  Lop
4880: 66 20 5c 75 64 38 33 35 5c 75 64 64 34 33 20 0a  f \ud835\udd43 .
4890: 09 6c 6f 70 66 20 5c 75 64 38 33 35 5c 75 64 64  .lopf \ud835\udd
48a0: 35 64 20 20 6c 6f 70 6c 75 73 20 5c 75 32 61 32  5d  loplus \u2a2
48b0: 64 20 20 6c 6f 74 69 6d 65 73 20 5c 75 32 61 33  d  lotimes \u2a3
48c0: 34 20 20 6c 6f 77 62 61 72 20 5c 75 35 66 20 0a  4  lowbar \u5f .
48d0: 09 4c 6f 77 65 72 4c 65 66 74 41 72 72 6f 77 20  .LowerLeftArrow 
48e0: 5c 75 32 31 39 39 20 20 4c 6f 77 65 72 52 69 67  \u2199  LowerRig
48f0: 68 74 41 72 72 6f 77 20 5c 75 32 31 39 38 20 20  htArrow \u2198  
4900: 6c 6f 7a 65 6e 67 65 20 5c 75 32 35 63 61 20 0a  lozenge \u25ca .
4910: 09 6c 6f 7a 66 20 5c 75 32 39 65 62 20 20 6c 70  .lozf \u29eb  lp
4920: 61 72 20 5c 75 32 38 20 20 6c 70 61 72 6c 74 20  ar \u28  lparlt 
4930: 5c 75 32 39 39 33 20 20 6c 72 61 72 72 20 5c 75  \u2993  lrarr \u
4940: 32 31 63 36 20 0a 09 6c 72 63 6f 72 6e 65 72 20  21c6 ..lrcorner 
4950: 5c 75 32 33 31 66 20 20 6c 72 68 61 72 20 5c 75  \u231f  lrhar \u
4960: 32 31 63 62 20 20 6c 72 68 61 72 64 20 5c 75 32  21cb  lrhard \u2
4970: 39 36 64 20 20 6c 72 74 72 69 20 5c 75 32 32 62  96d  lrtri \u22b
4980: 66 20 0a 09 6c 73 63 72 20 5c 75 64 38 33 35 5c  f ..lscr \ud835\
4990: 75 64 63 63 31 20 20 4c 73 63 72 20 5c 75 32 31  udcc1  Lscr \u21
49a0: 31 32 20 20 6c 73 68 20 5c 75 32 31 62 30 20 20  12  lsh \u21b0  
49b0: 4c 73 68 20 5c 75 32 31 62 30 20 0a 09 6c 73 69  Lsh \u21b0 ..lsi
49c0: 6d 20 5c 75 32 32 37 32 20 20 6c 73 69 6d 65 20  m \u2272  lsime 
49d0: 5c 75 32 61 38 64 20 20 6c 73 69 6d 67 20 5c 75  \u2a8d  lsimg \u
49e0: 32 61 38 66 20 20 6c 73 71 62 20 5c 75 35 62 20  2a8f  lsqb \u5b 
49f0: 20 6c 73 71 75 6f 72 20 5c 75 32 30 31 61 20 0a   lsquor \u201a .
4a00: 09 4c 73 74 72 6f 6b 20 5c 75 31 34 31 20 20 6c  .Lstrok \u141  l
4a10: 73 74 72 6f 6b 20 5c 75 31 34 32 20 20 6c 74 63  strok \u142  ltc
4a20: 63 20 5c 75 32 61 61 36 20 20 6c 74 63 69 72 20  c \u2aa6  ltcir 
4a30: 5c 75 32 61 37 39 20 20 4c 54 20 5c 75 33 63 20  \u2a79  LT \u3c 
4a40: 0a 09 4c 74 20 5c 75 32 32 36 61 20 20 6c 74 64  ..Lt \u226a  ltd
4a50: 6f 74 20 5c 75 32 32 64 36 20 20 6c 74 68 72 65  ot \u22d6  lthre
4a60: 65 20 5c 75 32 32 63 62 20 20 6c 74 69 6d 65 73  e \u22cb  ltimes
4a70: 20 5c 75 32 32 63 39 20 0a 09 6c 74 6c 61 72 72   \u22c9 ..ltlarr
4a80: 20 5c 75 32 39 37 36 20 20 6c 74 71 75 65 73 74   \u2976  ltquest
4a90: 20 5c 75 32 61 37 62 20 20 6c 74 72 69 20 5c 75   \u2a7b  ltri \u
4aa0: 32 35 63 33 20 20 6c 74 72 69 65 20 5c 75 32 32  25c3  ltrie \u22
4ab0: 62 34 20 0a 09 6c 74 72 69 66 20 5c 75 32 35 63  b4 ..ltrif \u25c
4ac0: 32 20 20 6c 74 72 50 61 72 20 5c 75 32 39 39 36  2  ltrPar \u2996
4ad0: 20 20 6c 75 72 64 73 68 61 72 20 5c 75 32 39 34    lurdshar \u294
4ae0: 61 20 20 6c 75 72 75 68 61 72 20 5c 75 32 39 36  a  luruhar \u296
4af0: 36 20 0a 09 6c 76 65 72 74 6e 65 71 71 20 5c 75  6 ..lvertneqq \u
4b00: 32 32 36 38 5c 75 66 65 30 30 20 20 6c 76 6e 45  2268\ufe00  lvnE
4b10: 20 5c 75 32 32 36 38 5c 75 66 65 30 30 20 20 6d   \u2268\ufe00  m
4b20: 61 6c 65 20 5c 75 32 36 34 32 20 0a 09 6d 61 6c  ale \u2642 ..mal
4b30: 74 20 5c 75 32 37 32 30 20 20 6d 61 6c 74 65 73  t \u2720  maltes
4b40: 65 20 5c 75 32 37 32 30 20 20 4d 61 70 20 5c 75  e \u2720  Map \u
4b50: 32 39 30 35 20 20 6d 61 70 20 5c 75 32 31 61 36  2905  map \u21a6
4b60: 20 0a 09 6d 61 70 73 74 6f 20 5c 75 32 31 61 36   ..mapsto \u21a6
4b70: 20 20 6d 61 70 73 74 6f 64 6f 77 6e 20 5c 75 32    mapstodown \u2
4b80: 31 61 37 20 20 6d 61 70 73 74 6f 6c 65 66 74 20  1a7  mapstoleft 
4b90: 5c 75 32 31 61 34 20 0a 09 6d 61 70 73 74 6f 75  \u21a4 ..mapstou
4ba0: 70 20 5c 75 32 31 61 35 20 20 6d 61 72 6b 65 72  p \u21a5  marker
4bb0: 20 5c 75 32 35 61 65 20 20 6d 63 6f 6d 6d 61 20   \u25ae  mcomma 
4bc0: 5c 75 32 61 32 39 20 20 4d 63 79 20 5c 75 34 31  \u2a29  Mcy \u41
4bd0: 63 20 0a 09 6d 63 79 20 5c 75 34 33 63 20 20 6d  c ..mcy \u43c  m
4be0: 44 44 6f 74 20 5c 75 32 32 33 61 20 20 6d 65 61  DDot \u223a  mea
4bf0: 73 75 72 65 64 61 6e 67 6c 65 20 5c 75 32 32 32  suredangle \u222
4c00: 31 20 20 4d 65 64 69 75 6d 53 70 61 63 65 20 5c  1  MediumSpace \
4c10: 75 32 30 35 66 20 0a 09 4d 65 6c 6c 69 6e 74 72  u205f ..Mellintr
4c20: 66 20 5c 75 32 31 33 33 20 20 4d 66 72 20 5c 75  f \u2133  Mfr \u
4c30: 64 38 33 35 5c 75 64 64 31 30 20 20 6d 66 72 20  d835\udd10  mfr 
4c40: 5c 75 64 38 33 35 5c 75 64 64 32 61 20 20 6d 68  \ud835\udd2a  mh
4c50: 6f 20 5c 75 32 31 32 37 20 0a 09 6d 69 64 61 73  o \u2127 ..midas
4c60: 74 20 5c 75 32 61 20 20 6d 69 64 63 69 72 20 5c  t \u2a  midcir \
4c70: 75 32 61 66 30 20 20 6d 69 64 20 5c 75 32 32 32  u2af0  mid \u222
4c80: 33 20 20 6d 69 6e 75 73 62 20 5c 75 32 32 39 66  3  minusb \u229f
4c90: 20 0a 09 6d 69 6e 75 73 64 20 5c 75 32 32 33 38   ..minusd \u2238
4ca0: 20 20 6d 69 6e 75 73 64 75 20 5c 75 32 61 32 61    minusdu \u2a2a
4cb0: 20 20 4d 69 6e 75 73 50 6c 75 73 20 5c 75 32 32    MinusPlus \u22
4cc0: 31 33 20 20 6d 6c 63 70 20 5c 75 32 61 64 62 20  13  mlcp \u2adb 
4cd0: 0a 09 6d 6c 64 72 20 5c 75 32 30 32 36 20 20 6d  ..mldr \u2026  m
4ce0: 6e 70 6c 75 73 20 5c 75 32 32 31 33 20 20 6d 6f  nplus \u2213  mo
4cf0: 64 65 6c 73 20 5c 75 32 32 61 37 20 20 4d 6f 70  dels \u22a7  Mop
4d00: 66 20 5c 75 64 38 33 35 5c 75 64 64 34 34 20 0a  f \ud835\udd44 .
4d10: 09 6d 6f 70 66 20 5c 75 64 38 33 35 5c 75 64 64  .mopf \ud835\udd
4d20: 35 65 20 20 6d 70 20 5c 75 32 32 31 33 20 20 6d  5e  mp \u2213  m
4d30: 73 63 72 20 5c 75 64 38 33 35 5c 75 64 63 63 32  scr \ud835\udcc2
4d40: 20 20 4d 73 63 72 20 5c 75 32 31 33 33 20 0a 09    Mscr \u2133 ..
4d50: 6d 73 74 70 6f 73 20 5c 75 32 32 33 65 20 20 6d  mstpos \u223e  m
4d60: 75 6c 74 69 6d 61 70 20 5c 75 32 32 62 38 20 20  ultimap \u22b8  
4d70: 6d 75 6d 61 70 20 5c 75 32 32 62 38 20 20 4e 61  mumap \u22b8  Na
4d80: 63 75 74 65 20 5c 75 31 34 33 20 0a 09 6e 61 63  cute \u143 ..nac
4d90: 75 74 65 20 5c 75 31 34 34 20 20 6e 61 6e 67 20  ute \u144  nang 
4da0: 5c 75 32 32 32 30 5c 75 32 30 64 32 20 20 6e 61  \u2220\u20d2  na
4db0: 70 20 5c 75 32 32 34 39 20 20 6e 61 70 45 20 5c  p \u2249  napE \
4dc0: 75 32 61 37 30 5c 75 33 33 38 20 0a 09 6e 61 70  u2a70\u338 ..nap
4dd0: 69 64 20 5c 75 32 32 34 62 5c 75 33 33 38 20 20  id \u224b\u338  
4de0: 6e 61 70 6f 73 20 5c 75 31 34 39 20 20 6e 61 70  napos \u149  nap
4df0: 70 72 6f 78 20 5c 75 32 32 34 39 20 20 6e 61 74  prox \u2249  nat
4e00: 75 72 61 6c 20 5c 75 32 36 36 65 20 0a 09 6e 61  ural \u266e ..na
4e10: 74 75 72 61 6c 73 20 5c 75 32 31 31 35 20 20 6e  turals \u2115  n
4e20: 61 74 75 72 20 5c 75 32 36 36 65 20 20 6e 62 75  atur \u266e  nbu
4e30: 6d 70 20 5c 75 32 32 34 65 5c 75 33 33 38 20 0a  mp \u224e\u338 .
4e40: 09 6e 62 75 6d 70 65 20 5c 75 32 32 34 66 5c 75  .nbumpe \u224f\u
4e50: 33 33 38 20 20 6e 63 61 70 20 5c 75 32 61 34 33  338  ncap \u2a43
4e60: 20 20 4e 63 61 72 6f 6e 20 5c 75 31 34 37 20 20    Ncaron \u147  
4e70: 6e 63 61 72 6f 6e 20 5c 75 31 34 38 20 0a 09 4e  ncaron \u148 ..N
4e80: 63 65 64 69 6c 20 5c 75 31 34 35 20 20 6e 63 65  cedil \u145  nce
4e90: 64 69 6c 20 5c 75 31 34 36 20 20 6e 63 6f 6e 67  dil \u146  ncong
4ea0: 20 5c 75 32 32 34 37 20 20 6e 63 6f 6e 67 64 6f   \u2247  ncongdo
4eb0: 74 20 5c 75 32 61 36 64 5c 75 33 33 38 20 0a 09  t \u2a6d\u338 ..
4ec0: 6e 63 75 70 20 5c 75 32 61 34 32 20 20 4e 63 79  ncup \u2a42  Ncy
4ed0: 20 5c 75 34 31 64 20 20 6e 63 79 20 5c 75 34 33   \u41d  ncy \u43
4ee0: 64 20 20 6e 65 61 72 68 6b 20 5c 75 32 39 32 34  d  nearhk \u2924
4ef0: 20 20 6e 65 61 72 72 20 5c 75 32 31 39 37 20 0a    nearr \u2197 .
4f00: 09 6e 65 41 72 72 20 5c 75 32 31 64 37 20 20 6e  .neArr \u21d7  n
4f10: 65 61 72 72 6f 77 20 5c 75 32 31 39 37 20 20 6e  earrow \u2197  n
4f20: 65 64 6f 74 20 5c 75 32 32 35 30 5c 75 33 33 38  edot \u2250\u338
4f30: 20 0a 09 4e 65 67 61 74 69 76 65 4d 65 64 69 75   ..NegativeMediu
4f40: 6d 53 70 61 63 65 20 5c 75 32 30 30 62 20 20 4e  mSpace \u200b  N
4f50: 65 67 61 74 69 76 65 54 68 69 63 6b 53 70 61 63  egativeThickSpac
4f60: 65 20 5c 75 32 30 30 62 20 0a 09 4e 65 67 61 74  e \u200b ..Negat
4f70: 69 76 65 54 68 69 6e 53 70 61 63 65 20 5c 75 32  iveThinSpace \u2
4f80: 30 30 62 20 20 4e 65 67 61 74 69 76 65 56 65 72  00b  NegativeVer
4f90: 79 54 68 69 6e 53 70 61 63 65 20 5c 75 32 30 30  yThinSpace \u200
4fa0: 62 20 0a 09 6e 65 71 75 69 76 20 5c 75 32 32 36  b ..nequiv \u226
4fb0: 32 20 20 6e 65 73 65 61 72 20 5c 75 32 39 32 38  2  nesear \u2928
4fc0: 20 20 6e 65 73 69 6d 20 5c 75 32 32 34 32 5c 75    nesim \u2242\u
4fd0: 33 33 38 20 0a 09 4e 65 73 74 65 64 47 72 65 61  338 ..NestedGrea
4fe0: 74 65 72 47 72 65 61 74 65 72 20 5c 75 32 32 36  terGreater \u226
4ff0: 62 20 20 4e 65 73 74 65 64 4c 65 73 73 4c 65 73  b  NestedLessLes
5000: 73 20 5c 75 32 32 36 61 20 20 4e 65 77 4c 69 6e  s \u226a  NewLin
5010: 65 20 5c 75 61 20 0a 09 6e 65 78 69 73 74 20 5c  e \ua ..nexist \
5020: 75 32 32 30 34 20 20 6e 65 78 69 73 74 73 20 5c  u2204  nexists \
5030: 75 32 32 30 34 20 20 4e 66 72 20 5c 75 64 38 33  u2204  Nfr \ud83
5040: 35 5c 75 64 64 31 31 20 20 6e 66 72 20 5c 75 64  5\udd11  nfr \ud
5050: 38 33 35 5c 75 64 64 32 62 20 0a 09 6e 67 45 20  835\udd2b ..ngE 
5060: 5c 75 32 32 36 37 5c 75 33 33 38 20 20 6e 67 65  \u2267\u338  nge
5070: 20 5c 75 32 32 37 31 20 20 6e 67 65 71 20 5c 75   \u2271  ngeq \u
5080: 32 32 37 31 20 20 6e 67 65 71 71 20 5c 75 32 32  2271  ngeqq \u22
5090: 36 37 5c 75 33 33 38 20 0a 09 6e 67 65 71 73 6c  67\u338 ..ngeqsl
50a0: 61 6e 74 20 5c 75 32 61 37 65 5c 75 33 33 38 20  ant \u2a7e\u338 
50b0: 20 6e 67 65 73 20 5c 75 32 61 37 65 5c 75 33 33   nges \u2a7e\u33
50c0: 38 20 20 6e 47 67 20 5c 75 32 32 64 39 5c 75 33  8  nGg \u22d9\u3
50d0: 33 38 20 0a 09 6e 67 73 69 6d 20 5c 75 32 32 37  38 ..ngsim \u227
50e0: 35 20 20 6e 47 74 20 5c 75 32 32 36 62 5c 75 32  5  nGt \u226b\u2
50f0: 30 64 32 20 20 6e 67 74 20 5c 75 32 32 36 66 20  0d2  ngt \u226f 
5100: 20 6e 67 74 72 20 5c 75 32 32 36 66 20 0a 09 6e   ngtr \u226f ..n
5110: 47 74 76 20 5c 75 32 32 36 62 5c 75 33 33 38 20  Gtv \u226b\u338 
5120: 20 6e 68 61 72 72 20 5c 75 32 31 61 65 20 20 6e   nharr \u21ae  n
5130: 68 41 72 72 20 5c 75 32 31 63 65 20 20 6e 68 70  hArr \u21ce  nhp
5140: 61 72 20 5c 75 32 61 66 32 20 0a 09 6e 69 73 20  ar \u2af2 ..nis 
5150: 5c 75 32 32 66 63 20 20 6e 69 73 64 20 5c 75 32  \u22fc  nisd \u2
5160: 32 66 61 20 20 6e 69 76 20 5c 75 32 32 30 62 20  2fa  niv \u220b 
5170: 20 4e 4a 63 79 20 5c 75 34 30 61 20 20 6e 6a 63   NJcy \u40a  njc
5180: 79 20 5c 75 34 35 61 20 0a 09 6e 6c 61 72 72 20  y \u45a ..nlarr 
5190: 5c 75 32 31 39 61 20 20 6e 6c 41 72 72 20 5c 75  \u219a  nlArr \u
51a0: 32 31 63 64 20 20 6e 6c 64 72 20 5c 75 32 30 32  21cd  nldr \u202
51b0: 35 20 20 6e 6c 45 20 5c 75 32 32 36 36 5c 75 33  5  nlE \u2266\u3
51c0: 33 38 20 0a 09 6e 6c 65 20 5c 75 32 32 37 30 20  38 ..nle \u2270 
51d0: 20 6e 6c 65 66 74 61 72 72 6f 77 20 5c 75 32 31   nleftarrow \u21
51e0: 39 61 20 20 6e 4c 65 66 74 61 72 72 6f 77 20 5c  9a  nLeftarrow \
51f0: 75 32 31 63 64 20 0a 09 6e 6c 65 66 74 72 69 67  u21cd ..nleftrig
5200: 68 74 61 72 72 6f 77 20 5c 75 32 31 61 65 20 20  htarrow \u21ae  
5210: 6e 4c 65 66 74 72 69 67 68 74 61 72 72 6f 77 20  nLeftrightarrow 
5220: 5c 75 32 31 63 65 20 20 6e 6c 65 71 20 5c 75 32  \u21ce  nleq \u2
5230: 32 37 30 20 0a 09 6e 6c 65 71 71 20 5c 75 32 32  270 ..nleqq \u22
5240: 36 36 5c 75 33 33 38 20 20 6e 6c 65 71 73 6c 61  66\u338  nleqsla
5250: 6e 74 20 5c 75 32 61 37 64 5c 75 33 33 38 20 20  nt \u2a7d\u338  
5260: 6e 6c 65 73 20 5c 75 32 61 37 64 5c 75 33 33 38  nles \u2a7d\u338
5270: 20 0a 09 6e 6c 65 73 73 20 5c 75 32 32 36 65 20   ..nless \u226e 
5280: 20 6e 4c 6c 20 5c 75 32 32 64 38 5c 75 33 33 38   nLl \u22d8\u338
5290: 20 20 6e 6c 73 69 6d 20 5c 75 32 32 37 34 20 20    nlsim \u2274  
52a0: 6e 4c 74 20 5c 75 32 32 36 61 5c 75 32 30 64 32  nLt \u226a\u20d2
52b0: 20 0a 09 6e 6c 74 20 5c 75 32 32 36 65 20 20 6e   ..nlt \u226e  n
52c0: 6c 74 72 69 20 5c 75 32 32 65 61 20 20 6e 6c 74  ltri \u22ea  nlt
52d0: 72 69 65 20 5c 75 32 32 65 63 20 20 6e 4c 74 76  rie \u22ec  nLtv
52e0: 20 5c 75 32 32 36 61 5c 75 33 33 38 20 0a 09 6e   \u226a\u338 ..n
52f0: 6d 69 64 20 5c 75 32 32 32 34 20 20 4e 6f 42 72  mid \u2224  NoBr
5300: 65 61 6b 20 5c 75 32 30 36 30 20 20 4e 6f 6e 42  eak \u2060  NonB
5310: 72 65 61 6b 69 6e 67 53 70 61 63 65 20 5c 75 61  reakingSpace \ua
5320: 30 20 0a 09 6e 6f 70 66 20 5c 75 64 38 33 35 5c  0 ..nopf \ud835\
5330: 75 64 64 35 66 20 20 4e 6f 70 66 20 5c 75 32 31  udd5f  Nopf \u21
5340: 31 35 20 20 4e 6f 74 20 5c 75 32 61 65 63 20 20  15  Not \u2aec  
5350: 4e 6f 74 43 6f 6e 67 72 75 65 6e 74 20 5c 75 32  NotCongruent \u2
5360: 32 36 32 20 0a 09 4e 6f 74 43 75 70 43 61 70 20  262 ..NotCupCap 
5370: 5c 75 32 32 36 64 20 20 4e 6f 74 44 6f 75 62 6c  \u226d  NotDoubl
5380: 65 56 65 72 74 69 63 61 6c 42 61 72 20 5c 75 32  eVerticalBar \u2
5390: 32 32 36 20 20 4e 6f 74 45 6c 65 6d 65 6e 74 20  226  NotElement 
53a0: 5c 75 32 32 30 39 20 0a 09 4e 6f 74 45 71 75 61  \u2209 ..NotEqua
53b0: 6c 20 5c 75 32 32 36 30 20 20 4e 6f 74 45 71 75  l \u2260  NotEqu
53c0: 61 6c 54 69 6c 64 65 20 5c 75 32 32 34 32 5c 75  alTilde \u2242\u
53d0: 33 33 38 20 20 4e 6f 74 45 78 69 73 74 73 20 5c  338  NotExists \
53e0: 75 32 32 30 34 20 0a 09 4e 6f 74 47 72 65 61 74  u2204 ..NotGreat
53f0: 65 72 20 5c 75 32 32 36 66 20 20 4e 6f 74 47 72  er \u226f  NotGr
5400: 65 61 74 65 72 45 71 75 61 6c 20 5c 75 32 32 37  eaterEqual \u227
5410: 31 20 0a 09 4e 6f 74 47 72 65 61 74 65 72 46 75  1 ..NotGreaterFu
5420: 6c 6c 45 71 75 61 6c 20 5c 75 32 32 36 37 5c 75  llEqual \u2267\u
5430: 33 33 38 20 20 4e 6f 74 47 72 65 61 74 65 72 47  338  NotGreaterG
5440: 72 65 61 74 65 72 20 5c 75 32 32 36 62 5c 75 33  reater \u226b\u3
5450: 33 38 20 0a 09 4e 6f 74 47 72 65 61 74 65 72 4c  38 ..NotGreaterL
5460: 65 73 73 20 5c 75 32 32 37 39 20 20 4e 6f 74 47  ess \u2279  NotG
5470: 72 65 61 74 65 72 53 6c 61 6e 74 45 71 75 61 6c  reaterSlantEqual
5480: 20 5c 75 32 61 37 65 5c 75 33 33 38 20 0a 09 4e   \u2a7e\u338 ..N
5490: 6f 74 47 72 65 61 74 65 72 54 69 6c 64 65 20 5c  otGreaterTilde \
54a0: 75 32 32 37 35 20 20 4e 6f 74 48 75 6d 70 44 6f  u2275  NotHumpDo
54b0: 77 6e 48 75 6d 70 20 5c 75 32 32 34 65 5c 75 33  wnHump \u224e\u3
54c0: 33 38 20 0a 09 4e 6f 74 48 75 6d 70 45 71 75 61  38 ..NotHumpEqua
54d0: 6c 20 5c 75 32 32 34 66 5c 75 33 33 38 20 20 6e  l \u224f\u338  n
54e0: 6f 74 69 6e 64 6f 74 20 5c 75 32 32 66 35 5c 75  otindot \u22f5\u
54f0: 33 33 38 20 0a 09 6e 6f 74 69 6e 45 20 5c 75 32  338 ..notinE \u2
5500: 32 66 39 5c 75 33 33 38 20 20 6e 6f 74 69 6e 76  2f9\u338  notinv
5510: 61 20 5c 75 32 32 30 39 20 20 6e 6f 74 69 6e 76  a \u2209  notinv
5520: 62 20 5c 75 32 32 66 37 20 0a 09 6e 6f 74 69 6e  b \u22f7 ..notin
5530: 76 63 20 5c 75 32 32 66 36 20 20 4e 6f 74 4c 65  vc \u22f6  NotLe
5540: 66 74 54 72 69 61 6e 67 6c 65 42 61 72 20 5c 75  ftTriangleBar \u
5550: 32 39 63 66 5c 75 33 33 38 20 0a 09 4e 6f 74 4c  29cf\u338 ..NotL
5560: 65 66 74 54 72 69 61 6e 67 6c 65 20 5c 75 32 32  eftTriangle \u22
5570: 65 61 20 20 4e 6f 74 4c 65 66 74 54 72 69 61 6e  ea  NotLeftTrian
5580: 67 6c 65 45 71 75 61 6c 20 5c 75 32 32 65 63 20  gleEqual \u22ec 
5590: 0a 09 4e 6f 74 4c 65 73 73 20 5c 75 32 32 36 65  ..NotLess \u226e
55a0: 20 20 4e 6f 74 4c 65 73 73 45 71 75 61 6c 20 5c    NotLessEqual \
55b0: 75 32 32 37 30 20 20 4e 6f 74 4c 65 73 73 47 72  u2270  NotLessGr
55c0: 65 61 74 65 72 20 5c 75 32 32 37 38 20 0a 09 4e  eater \u2278 ..N
55d0: 6f 74 4c 65 73 73 4c 65 73 73 20 5c 75 32 32 36  otLessLess \u226
55e0: 61 5c 75 33 33 38 20 20 4e 6f 74 4c 65 73 73 53  a\u338  NotLessS
55f0: 6c 61 6e 74 45 71 75 61 6c 20 5c 75 32 61 37 64  lantEqual \u2a7d
5600: 5c 75 33 33 38 20 0a 09 4e 6f 74 4c 65 73 73 54  \u338 ..NotLessT
5610: 69 6c 64 65 20 5c 75 32 32 37 34 20 20 4e 6f 74  ilde \u2274  Not
5620: 4e 65 73 74 65 64 47 72 65 61 74 65 72 47 72 65  NestedGreaterGre
5630: 61 74 65 72 20 5c 75 32 61 61 32 5c 75 33 33 38  ater \u2aa2\u338
5640: 20 0a 09 4e 6f 74 4e 65 73 74 65 64 4c 65 73 73   ..NotNestedLess
5650: 4c 65 73 73 20 5c 75 32 61 61 31 5c 75 33 33 38  Less \u2aa1\u338
5660: 20 20 6e 6f 74 6e 69 20 5c 75 32 32 30 63 20 20    notni \u220c  
5670: 6e 6f 74 6e 69 76 61 20 5c 75 32 32 30 63 20 0a  notniva \u220c .
5680: 09 6e 6f 74 6e 69 76 62 20 5c 75 32 32 66 65 20  .notnivb \u22fe 
5690: 20 6e 6f 74 6e 69 76 63 20 5c 75 32 32 66 64 20   notnivc \u22fd 
56a0: 20 4e 6f 74 50 72 65 63 65 64 65 73 20 5c 75 32   NotPrecedes \u2
56b0: 32 38 30 20 0a 09 4e 6f 74 50 72 65 63 65 64 65  280 ..NotPrecede
56c0: 73 45 71 75 61 6c 20 5c 75 32 61 61 66 5c 75 33  sEqual \u2aaf\u3
56d0: 33 38 20 20 4e 6f 74 50 72 65 63 65 64 65 73 53  38  NotPrecedesS
56e0: 6c 61 6e 74 45 71 75 61 6c 20 5c 75 32 32 65 30  lantEqual \u22e0
56f0: 20 0a 09 4e 6f 74 52 65 76 65 72 73 65 45 6c 65   ..NotReverseEle
5700: 6d 65 6e 74 20 5c 75 32 32 30 63 20 20 4e 6f 74  ment \u220c  Not
5710: 52 69 67 68 74 54 72 69 61 6e 67 6c 65 42 61 72  RightTriangleBar
5720: 20 5c 75 32 39 64 30 5c 75 33 33 38 20 0a 09 4e   \u29d0\u338 ..N
5730: 6f 74 52 69 67 68 74 54 72 69 61 6e 67 6c 65 20  otRightTriangle 
5740: 5c 75 32 32 65 62 20 20 4e 6f 74 52 69 67 68 74  \u22eb  NotRight
5750: 54 72 69 61 6e 67 6c 65 45 71 75 61 6c 20 5c 75  TriangleEqual \u
5760: 32 32 65 64 20 0a 09 4e 6f 74 53 71 75 61 72 65  22ed ..NotSquare
5770: 53 75 62 73 65 74 20 5c 75 32 32 38 66 5c 75 33  Subset \u228f\u3
5780: 33 38 20 20 4e 6f 74 53 71 75 61 72 65 53 75 62  38  NotSquareSub
5790: 73 65 74 45 71 75 61 6c 20 5c 75 32 32 65 32 20  setEqual \u22e2 
57a0: 0a 09 4e 6f 74 53 71 75 61 72 65 53 75 70 65 72  ..NotSquareSuper
57b0: 73 65 74 20 5c 75 32 32 39 30 5c 75 33 33 38 20  set \u2290\u338 
57c0: 20 4e 6f 74 53 71 75 61 72 65 53 75 70 65 72 73   NotSquareSupers
57d0: 65 74 45 71 75 61 6c 20 5c 75 32 32 65 33 20 0a  etEqual \u22e3 .
57e0: 09 4e 6f 74 53 75 62 73 65 74 20 5c 75 32 32 38  .NotSubset \u228
57f0: 32 5c 75 32 30 64 32 20 20 4e 6f 74 53 75 62 73  2\u20d2  NotSubs
5800: 65 74 45 71 75 61 6c 20 5c 75 32 32 38 38 20 20  etEqual \u2288  
5810: 4e 6f 74 53 75 63 63 65 65 64 73 20 5c 75 32 32  NotSucceeds \u22
5820: 38 31 20 0a 09 4e 6f 74 53 75 63 63 65 65 64 73  81 ..NotSucceeds
5830: 45 71 75 61 6c 20 5c 75 32 61 62 30 5c 75 33 33  Equal \u2ab0\u33
5840: 38 20 20 4e 6f 74 53 75 63 63 65 65 64 73 53 6c  8  NotSucceedsSl
5850: 61 6e 74 45 71 75 61 6c 20 5c 75 32 32 65 31 20  antEqual \u22e1 
5860: 0a 09 4e 6f 74 53 75 63 63 65 65 64 73 54 69 6c  ..NotSucceedsTil
5870: 64 65 20 5c 75 32 32 37 66 5c 75 33 33 38 20 20  de \u227f\u338  
5880: 4e 6f 74 53 75 70 65 72 73 65 74 20 5c 75 32 32  NotSuperset \u22
5890: 38 33 5c 75 32 30 64 32 20 0a 09 4e 6f 74 53 75  83\u20d2 ..NotSu
58a0: 70 65 72 73 65 74 45 71 75 61 6c 20 5c 75 32 32  persetEqual \u22
58b0: 38 39 20 20 4e 6f 74 54 69 6c 64 65 20 5c 75 32  89  NotTilde \u2
58c0: 32 34 31 20 20 4e 6f 74 54 69 6c 64 65 45 71 75  241  NotTildeEqu
58d0: 61 6c 20 5c 75 32 32 34 34 20 0a 09 4e 6f 74 54  al \u2244 ..NotT
58e0: 69 6c 64 65 46 75 6c 6c 45 71 75 61 6c 20 5c 75  ildeFullEqual \u
58f0: 32 32 34 37 20 20 4e 6f 74 54 69 6c 64 65 54 69  2247  NotTildeTi
5900: 6c 64 65 20 5c 75 32 32 34 39 20 0a 09 4e 6f 74  lde \u2249 ..Not
5910: 56 65 72 74 69 63 61 6c 42 61 72 20 5c 75 32 32  VerticalBar \u22
5920: 32 34 20 20 6e 70 61 72 61 6c 6c 65 6c 20 5c 75  24  nparallel \u
5930: 32 32 32 36 20 20 6e 70 61 72 20 5c 75 32 32 32  2226  npar \u222
5940: 36 20 0a 09 6e 70 61 72 73 6c 20 5c 75 32 61 66  6 ..nparsl \u2af
5950: 64 5c 75 32 30 65 35 20 20 6e 70 61 72 74 20 5c  d\u20e5  npart \
5960: 75 32 32 30 32 5c 75 33 33 38 20 20 6e 70 6f 6c  u2202\u338  npol
5970: 69 6e 74 20 5c 75 32 61 31 34 20 0a 09 6e 70 72  int \u2a14 ..npr
5980: 20 5c 75 32 32 38 30 20 20 6e 70 72 63 75 65 20   \u2280  nprcue 
5990: 5c 75 32 32 65 30 20 20 6e 70 72 65 63 20 5c 75  \u22e0  nprec \u
59a0: 32 32 38 30 20 20 6e 70 72 65 63 65 71 20 5c 75  2280  npreceq \u
59b0: 32 61 61 66 5c 75 33 33 38 20 0a 09 6e 70 72 65  2aaf\u338 ..npre
59c0: 20 5c 75 32 61 61 66 5c 75 33 33 38 20 20 6e 72   \u2aaf\u338  nr
59d0: 61 72 72 63 20 5c 75 32 39 33 33 5c 75 33 33 38  arrc \u2933\u338
59e0: 20 20 6e 72 61 72 72 20 5c 75 32 31 39 62 20 20    nrarr \u219b  
59f0: 6e 72 41 72 72 20 5c 75 32 31 63 66 20 0a 09 6e  nrArr \u21cf ..n
5a00: 72 61 72 72 77 20 5c 75 32 31 39 64 5c 75 33 33  rarrw \u219d\u33
5a10: 38 20 20 6e 72 69 67 68 74 61 72 72 6f 77 20 5c  8  nrightarrow \
5a20: 75 32 31 39 62 20 20 6e 52 69 67 68 74 61 72 72  u219b  nRightarr
5a30: 6f 77 20 5c 75 32 31 63 66 20 0a 09 6e 72 74 72  ow \u21cf ..nrtr
5a40: 69 20 5c 75 32 32 65 62 20 20 6e 72 74 72 69 65  i \u22eb  nrtrie
5a50: 20 5c 75 32 32 65 64 20 20 6e 73 63 20 5c 75 32   \u22ed  nsc \u2
5a60: 32 38 31 20 20 6e 73 63 63 75 65 20 5c 75 32 32  281  nsccue \u22
5a70: 65 31 20 0a 09 6e 73 63 65 20 5c 75 32 61 62 30  e1 ..nsce \u2ab0
5a80: 5c 75 33 33 38 20 20 4e 73 63 72 20 5c 75 64 38  \u338  Nscr \ud8
5a90: 33 35 5c 75 64 63 61 39 20 20 6e 73 63 72 20 5c  35\udca9  nscr \
5aa0: 75 64 38 33 35 5c 75 64 63 63 33 20 0a 09 6e 73  ud835\udcc3 ..ns
5ab0: 68 6f 72 74 6d 69 64 20 5c 75 32 32 32 34 20 20  hortmid \u2224  
5ac0: 6e 73 68 6f 72 74 70 61 72 61 6c 6c 65 6c 20 5c  nshortparallel \
5ad0: 75 32 32 32 36 20 20 6e 73 69 6d 20 5c 75 32 32  u2226  nsim \u22
5ae0: 34 31 20 0a 09 6e 73 69 6d 65 20 5c 75 32 32 34  41 ..nsime \u224
5af0: 34 20 20 6e 73 69 6d 65 71 20 5c 75 32 32 34 34  4  nsimeq \u2244
5b00: 20 20 6e 73 6d 69 64 20 5c 75 32 32 32 34 20 20    nsmid \u2224  
5b10: 6e 73 70 61 72 20 5c 75 32 32 32 36 20 0a 09 6e  nspar \u2226 ..n
5b20: 73 71 73 75 62 65 20 5c 75 32 32 65 32 20 20 6e  sqsube \u22e2  n
5b30: 73 71 73 75 70 65 20 5c 75 32 32 65 33 20 20 6e  sqsupe \u22e3  n
5b40: 73 75 62 45 20 5c 75 32 61 63 35 5c 75 33 33 38  subE \u2ac5\u338
5b50: 20 20 6e 73 75 62 65 20 5c 75 32 32 38 38 20 0a    nsube \u2288 .
5b60: 09 6e 73 75 62 73 65 74 20 5c 75 32 32 38 32 5c  .nsubset \u2282\
5b70: 75 32 30 64 32 20 20 6e 73 75 62 73 65 74 65 71  u20d2  nsubseteq
5b80: 20 5c 75 32 32 38 38 20 20 6e 73 75 62 73 65 74   \u2288  nsubset
5b90: 65 71 71 20 5c 75 32 61 63 35 5c 75 33 33 38 20  eqq \u2ac5\u338 
5ba0: 0a 09 6e 73 75 63 63 20 5c 75 32 32 38 31 20 20  ..nsucc \u2281  
5bb0: 6e 73 75 63 63 65 71 20 5c 75 32 61 62 30 5c 75  nsucceq \u2ab0\u
5bc0: 33 33 38 20 20 6e 73 75 70 20 5c 75 32 32 38 35  338  nsup \u2285
5bd0: 20 20 6e 73 75 70 45 20 5c 75 32 61 63 36 5c 75    nsupE \u2ac6\u
5be0: 33 33 38 20 0a 09 6e 73 75 70 65 20 5c 75 32 32  338 ..nsupe \u22
5bf0: 38 39 20 20 6e 73 75 70 73 65 74 20 5c 75 32 32  89  nsupset \u22
5c00: 38 33 5c 75 32 30 64 32 20 20 6e 73 75 70 73 65  83\u20d2  nsupse
5c10: 74 65 71 20 5c 75 32 32 38 39 20 0a 09 6e 73 75  teq \u2289 ..nsu
5c20: 70 73 65 74 65 71 71 20 5c 75 32 61 63 36 5c 75  pseteqq \u2ac6\u
5c30: 33 33 38 20 20 6e 74 67 6c 20 5c 75 32 32 37 39  338  ntgl \u2279
5c40: 20 20 6e 74 6c 67 20 5c 75 32 32 37 38 20 0a 09    ntlg \u2278 ..
5c50: 6e 74 72 69 61 6e 67 6c 65 6c 65 66 74 20 5c 75  ntriangleleft \u
5c60: 32 32 65 61 20 20 6e 74 72 69 61 6e 67 6c 65 6c  22ea  ntrianglel
5c70: 65 66 74 65 71 20 5c 75 32 32 65 63 20 0a 09 6e  efteq \u22ec ..n
5c80: 74 72 69 61 6e 67 6c 65 72 69 67 68 74 20 5c 75  triangleright \u
5c90: 32 32 65 62 20 20 6e 74 72 69 61 6e 67 6c 65 72  22eb  ntriangler
5ca0: 69 67 68 74 65 71 20 5c 75 32 32 65 64 20 20 6e  ighteq \u22ed  n
5cb0: 75 6d 20 5c 75 32 33 20 0a 09 6e 75 6d 65 72 6f  um \u23 ..numero
5cc0: 20 5c 75 32 31 31 36 20 20 6e 75 6d 73 70 20 5c   \u2116  numsp \
5cd0: 75 32 30 30 37 20 20 6e 76 61 70 20 5c 75 32 32  u2007  nvap \u22
5ce0: 34 64 5c 75 32 30 64 32 20 20 6e 76 64 61 73 68  4d\u20d2  nvdash
5cf0: 20 5c 75 32 32 61 63 20 0a 09 6e 76 44 61 73 68   \u22ac ..nvDash
5d00: 20 5c 75 32 32 61 64 20 20 6e 56 64 61 73 68 20   \u22ad  nVdash 
5d10: 5c 75 32 32 61 65 20 20 6e 56 44 61 73 68 20 5c  \u22ae  nVDash \
5d20: 75 32 32 61 66 20 20 6e 76 67 65 20 5c 75 32 32  u22af  nvge \u22
5d30: 36 35 5c 75 32 30 64 32 20 0a 09 6e 76 67 74 20  65\u20d2 ..nvgt 
5d40: 5c 75 33 65 5c 75 32 30 64 32 20 20 6e 76 48 61  \u3e\u20d2  nvHa
5d50: 72 72 20 5c 75 32 39 30 34 20 20 6e 76 69 6e 66  rr \u2904  nvinf
5d60: 69 6e 20 5c 75 32 39 64 65 20 20 6e 76 6c 41 72  in \u29de  nvlAr
5d70: 72 20 5c 75 32 39 30 32 20 0a 09 6e 76 6c 65 20  r \u2902 ..nvle 
5d80: 5c 75 32 32 36 34 5c 75 32 30 64 32 20 20 6e 76  \u2264\u20d2  nv
5d90: 6c 74 20 5c 75 33 63 5c 75 32 30 64 32 20 20 6e  lt \u3c\u20d2  n
5da0: 76 6c 74 72 69 65 20 5c 75 32 32 62 34 5c 75 32  vltrie \u22b4\u2
5db0: 30 64 32 20 0a 09 6e 76 72 41 72 72 20 5c 75 32  0d2 ..nvrArr \u2
5dc0: 39 30 33 20 20 6e 76 72 74 72 69 65 20 5c 75 32  903  nvrtrie \u2
5dd0: 32 62 35 5c 75 32 30 64 32 20 20 6e 76 73 69 6d  2b5\u20d2  nvsim
5de0: 20 5c 75 32 32 33 63 5c 75 32 30 64 32 20 0a 09   \u223c\u20d2 ..
5df0: 6e 77 61 72 68 6b 20 5c 75 32 39 32 33 20 20 6e  nwarhk \u2923  n
5e00: 77 61 72 72 20 5c 75 32 31 39 36 20 20 6e 77 41  warr \u2196  nwA
5e10: 72 72 20 5c 75 32 31 64 36 20 20 6e 77 61 72 72  rr \u21d6  nwarr
5e20: 6f 77 20 5c 75 32 31 39 36 20 0a 09 6e 77 6e 65  ow \u2196 ..nwne
5e30: 61 72 20 5c 75 32 39 32 37 20 20 6f 61 73 74 20  ar \u2927  oast 
5e40: 5c 75 32 32 39 62 20 20 6f 63 69 72 20 5c 75 32  \u229b  ocir \u2
5e50: 32 39 61 20 20 4f 63 79 20 5c 75 34 31 65 20 20  29a  Ocy \u41e  
5e60: 6f 63 79 20 5c 75 34 33 65 20 0a 09 6f 64 61 73  ocy \u43e ..odas
5e70: 68 20 5c 75 32 32 39 64 20 20 4f 64 62 6c 61 63  h \u229d  Odblac
5e80: 20 5c 75 31 35 30 20 20 6f 64 62 6c 61 63 20 5c   \u150  odblac \
5e90: 75 31 35 31 20 20 6f 64 69 76 20 5c 75 32 61 33  u151  odiv \u2a3
5ea0: 38 20 0a 09 6f 64 6f 74 20 5c 75 32 32 39 39 20  8 ..odot \u2299 
5eb0: 20 6f 64 73 6f 6c 64 20 5c 75 32 39 62 63 20 20   odsold \u29bc  
5ec0: 6f 66 63 69 72 20 5c 75 32 39 62 66 20 20 4f 66  ofcir \u29bf  Of
5ed0: 72 20 5c 75 64 38 33 35 5c 75 64 64 31 32 20 0a  r \ud835\udd12 .
5ee0: 09 6f 66 72 20 5c 75 64 38 33 35 5c 75 64 64 32  .ofr \ud835\udd2
5ef0: 63 20 20 6f 67 6f 6e 20 5c 75 32 64 62 20 20 6f  c  ogon \u2db  o
5f00: 67 74 20 5c 75 32 39 63 31 20 20 6f 68 62 61 72  gt \u29c1  ohbar
5f10: 20 5c 75 32 39 62 35 20 20 6f 68 6d 20 5c 75 33   \u29b5  ohm \u3
5f20: 61 39 20 0a 09 6f 69 6e 74 20 5c 75 32 32 32 65  a9 ..oint \u222e
5f30: 20 20 6f 6c 61 72 72 20 5c 75 32 31 62 61 20 20    olarr \u21ba  
5f40: 6f 6c 63 69 72 20 5c 75 32 39 62 65 20 20 6f 6c  olcir \u29be  ol
5f50: 63 72 6f 73 73 20 5c 75 32 39 62 62 20 0a 09 6f  cross \u29bb ..o
5f60: 6c 74 20 5c 75 32 39 63 30 20 20 4f 6d 61 63 72  lt \u29c0  Omacr
5f70: 20 5c 75 31 34 63 20 20 6f 6d 61 63 72 20 5c 75   \u14c  omacr \u
5f80: 31 34 64 20 20 6f 6d 69 64 20 5c 75 32 39 62 36  14d  omid \u29b6
5f90: 20 20 6f 6d 69 6e 75 73 20 5c 75 32 32 39 36 20    ominus \u2296 
5fa0: 0a 09 4f 6f 70 66 20 5c 75 64 38 33 35 5c 75 64  ..Oopf \ud835\ud
5fb0: 64 34 36 20 20 6f 6f 70 66 20 5c 75 64 38 33 35  d46  oopf \ud835
5fc0: 5c 75 64 64 36 30 20 20 6f 70 61 72 20 5c 75 32  \udd60  opar \u2
5fd0: 39 62 37 20 0a 09 4f 70 65 6e 43 75 72 6c 79 44  9b7 ..OpenCurlyD
5fe0: 6f 75 62 6c 65 51 75 6f 74 65 20 5c 75 32 30 31  oubleQuote \u201
5ff0: 63 20 20 4f 70 65 6e 43 75 72 6c 79 51 75 6f 74  c  OpenCurlyQuot
6000: 65 20 5c 75 32 30 31 38 20 20 6f 70 65 72 70 20  e \u2018  operp 
6010: 5c 75 32 39 62 39 20 0a 09 6f 72 61 72 72 20 5c  \u29b9 ..orarr \
6020: 75 32 31 62 62 20 20 4f 72 20 5c 75 32 61 35 34  u21bb  Or \u2a54
6030: 20 20 6f 72 64 20 5c 75 32 61 35 64 20 20 6f 72    ord \u2a5d  or
6040: 64 65 72 20 5c 75 32 31 33 34 20 20 6f 72 64 65  der \u2134  orde
6050: 72 6f 66 20 5c 75 32 31 33 34 20 0a 09 6f 72 69  rof \u2134 ..ori
6060: 67 6f 66 20 5c 75 32 32 62 36 20 20 6f 72 6f 72  gof \u22b6  oror
6070: 20 5c 75 32 61 35 36 20 20 6f 72 73 6c 6f 70 65   \u2a56  orslope
6080: 20 5c 75 32 61 35 37 20 20 6f 72 76 20 5c 75 32   \u2a57  orv \u2
6090: 61 35 62 20 20 6f 53 20 5c 75 32 34 63 38 20 0a  a5b  oS \u24c8 .
60a0: 09 4f 73 63 72 20 5c 75 64 38 33 35 5c 75 64 63  .Oscr \ud835\udc
60b0: 61 61 20 20 6f 73 63 72 20 5c 75 32 31 33 34 20  aa  oscr \u2134 
60c0: 20 6f 73 6f 6c 20 5c 75 32 32 39 38 20 20 6f 74   osol \u2298  ot
60d0: 69 6d 65 73 61 73 20 5c 75 32 61 33 36 20 0a 09  imesas \u2a36 ..
60e0: 4f 74 69 6d 65 73 20 5c 75 32 61 33 37 20 20 6f  Otimes \u2a37  o
60f0: 76 62 61 72 20 5c 75 32 33 33 64 20 20 4f 76 65  vbar \u233d  Ove
6100: 72 42 61 72 20 5c 75 32 30 33 65 20 20 4f 76 65  rBar \u203e  Ove
6110: 72 42 72 61 63 65 20 5c 75 32 33 64 65 20 0a 09  rBrace \u23de ..
6120: 4f 76 65 72 42 72 61 63 6b 65 74 20 5c 75 32 33  OverBracket \u23
6130: 62 34 20 20 4f 76 65 72 50 61 72 65 6e 74 68 65  b4  OverParenthe
6140: 73 69 73 20 5c 75 32 33 64 63 20 20 70 61 72 61  sis \u23dc  para
6150: 6c 6c 65 6c 20 5c 75 32 32 32 35 20 0a 09 70 61  llel \u2225 ..pa
6160: 72 20 5c 75 32 32 32 35 20 20 70 61 72 73 69 6d  r \u2225  parsim
6170: 20 5c 75 32 61 66 33 20 20 70 61 72 73 6c 20 5c   \u2af3  parsl \
6180: 75 32 61 66 64 20 20 50 61 72 74 69 61 6c 44 20  u2afd  PartialD 
6190: 5c 75 32 32 30 32 20 0a 09 50 63 79 20 5c 75 34  \u2202 ..Pcy \u4
61a0: 31 66 20 20 70 63 79 20 5c 75 34 33 66 20 20 70  1f  pcy \u43f  p
61b0: 65 72 63 6e 74 20 5c 75 32 35 20 20 70 65 72 69  ercnt \u25  peri
61c0: 6f 64 20 5c 75 32 65 20 20 70 65 72 74 65 6e 6b  od \u2e  pertenk
61d0: 20 5c 75 32 30 33 31 20 0a 09 50 66 72 20 5c 75   \u2031 ..Pfr \u
61e0: 64 38 33 35 5c 75 64 64 31 33 20 20 70 66 72 20  d835\udd13  pfr 
61f0: 5c 75 64 38 33 35 5c 75 64 64 32 64 20 20 70 68  \ud835\udd2d  ph
6200: 69 76 20 5c 75 33 64 35 20 20 70 68 6d 6d 61 74  iv \u3d5  phmmat
6210: 20 5c 75 32 31 33 33 20 0a 09 70 68 6f 6e 65 20   \u2133 ..phone 
6220: 5c 75 32 36 30 65 20 20 70 69 74 63 68 66 6f 72  \u260e  pitchfor
6230: 6b 20 5c 75 32 32 64 34 20 20 70 6c 61 6e 63 6b  k \u22d4  planck
6240: 20 5c 75 32 31 30 66 20 20 70 6c 61 6e 63 6b 68   \u210f  planckh
6250: 20 5c 75 32 31 30 65 20 0a 09 70 6c 61 6e 6b 76   \u210e ..plankv
6260: 20 5c 75 32 31 30 66 20 20 70 6c 75 73 61 63 69   \u210f  plusaci
6270: 72 20 5c 75 32 61 32 33 20 20 70 6c 75 73 62 20  r \u2a23  plusb 
6280: 5c 75 32 32 39 65 20 20 70 6c 75 73 63 69 72 20  \u229e  pluscir 
6290: 5c 75 32 61 32 32 20 0a 09 70 6c 75 73 20 5c 75  \u2a22 ..plus \u
62a0: 32 62 20 20 70 6c 75 73 64 6f 20 5c 75 32 32 31  2b  plusdo \u221
62b0: 34 20 20 70 6c 75 73 64 75 20 5c 75 32 61 32 35  4  plusdu \u2a25
62c0: 20 20 70 6c 75 73 65 20 5c 75 32 61 37 32 20 0a    pluse \u2a72 .
62d0: 09 50 6c 75 73 4d 69 6e 75 73 20 5c 75 62 31 20  .PlusMinus \ub1 
62e0: 20 70 6c 75 73 73 69 6d 20 5c 75 32 61 32 36 20   plussim \u2a26 
62f0: 20 70 6c 75 73 74 77 6f 20 5c 75 32 61 32 37 20   plustwo \u2a27 
6300: 20 70 6d 20 5c 75 62 31 20 0a 09 50 6f 69 6e 63   pm \ub1 ..Poinc
6310: 61 72 65 70 6c 61 6e 65 20 5c 75 32 31 30 63 20  areplane \u210c 
6320: 20 70 6f 69 6e 74 69 6e 74 20 5c 75 32 61 31 35   pointint \u2a15
6330: 20 20 70 6f 70 66 20 5c 75 64 38 33 35 5c 75 64    popf \ud835\ud
6340: 64 36 31 20 0a 09 50 6f 70 66 20 5c 75 32 31 31  d61 ..Popf \u211
6350: 39 20 20 70 72 61 70 20 5c 75 32 61 62 37 20 20  9  prap \u2ab7  
6360: 50 72 20 5c 75 32 61 62 62 20 20 70 72 20 5c 75  Pr \u2abb  pr \u
6370: 32 32 37 61 20 20 70 72 63 75 65 20 5c 75 32 32  227a  prcue \u22
6380: 37 63 20 0a 09 70 72 65 63 61 70 70 72 6f 78 20  7c ..precapprox 
6390: 5c 75 32 61 62 37 20 20 70 72 65 63 20 5c 75 32  \u2ab7  prec \u2
63a0: 32 37 61 20 20 70 72 65 63 63 75 72 6c 79 65 71  27a  preccurlyeq
63b0: 20 5c 75 32 32 37 63 20 0a 09 50 72 65 63 65 64   \u227c ..Preced
63c0: 65 73 20 5c 75 32 32 37 61 20 20 50 72 65 63 65  es \u227a  Prece
63d0: 64 65 73 45 71 75 61 6c 20 5c 75 32 61 61 66 20  desEqual \u2aaf 
63e0: 20 50 72 65 63 65 64 65 73 53 6c 61 6e 74 45 71   PrecedesSlantEq
63f0: 75 61 6c 20 5c 75 32 32 37 63 20 0a 09 50 72 65  ual \u227c ..Pre
6400: 63 65 64 65 73 54 69 6c 64 65 20 5c 75 32 32 37  cedesTilde \u227
6410: 65 20 20 70 72 65 63 65 71 20 5c 75 32 61 61 66  e  preceq \u2aaf
6420: 20 20 70 72 65 63 6e 61 70 70 72 6f 78 20 5c 75    precnapprox \u
6430: 32 61 62 39 20 0a 09 70 72 65 63 6e 65 71 71 20  2ab9 ..precneqq 
6440: 5c 75 32 61 62 35 20 20 70 72 65 63 6e 73 69 6d  \u2ab5  precnsim
6450: 20 5c 75 32 32 65 38 20 20 70 72 65 20 5c 75 32   \u22e8  pre \u2
6460: 61 61 66 20 20 70 72 45 20 5c 75 32 61 62 33 20  aaf  prE \u2ab3 
6470: 0a 09 70 72 65 63 73 69 6d 20 5c 75 32 32 37 65  ..precsim \u227e
6480: 20 20 70 72 69 6d 65 73 20 5c 75 32 31 31 39 20    primes \u2119 
6490: 20 70 72 6e 61 70 20 5c 75 32 61 62 39 20 20 70   prnap \u2ab9  p
64a0: 72 6e 45 20 5c 75 32 61 62 35 20 0a 09 70 72 6e  rnE \u2ab5 ..prn
64b0: 73 69 6d 20 5c 75 32 32 65 38 20 20 50 72 6f 64  sim \u22e8  Prod
64c0: 75 63 74 20 5c 75 32 32 30 66 20 20 70 72 6f 66  uct \u220f  prof
64d0: 61 6c 61 72 20 5c 75 32 33 32 65 20 20 70 72 6f  alar \u232e  pro
64e0: 66 6c 69 6e 65 20 5c 75 32 33 31 32 20 0a 09 70  fline \u2312 ..p
64f0: 72 6f 66 73 75 72 66 20 5c 75 32 33 31 33 20 20  rofsurf \u2313  
6500: 50 72 6f 70 6f 72 74 69 6f 6e 61 6c 20 5c 75 32  Proportional \u2
6510: 32 31 64 20 20 50 72 6f 70 6f 72 74 69 6f 6e 20  21d  Proportion 
6520: 5c 75 32 32 33 37 20 0a 09 70 72 6f 70 74 6f 20  \u2237 ..propto 
6530: 5c 75 32 32 31 64 20 20 70 72 73 69 6d 20 5c 75  \u221d  prsim \u
6540: 32 32 37 65 20 20 70 72 75 72 65 6c 20 5c 75 32  227e  prurel \u2
6550: 32 62 30 20 20 50 73 63 72 20 5c 75 64 38 33 35  2b0  Pscr \ud835
6560: 5c 75 64 63 61 62 20 0a 09 70 73 63 72 20 5c 75  \udcab ..pscr \u
6570: 64 38 33 35 5c 75 64 63 63 35 20 20 70 75 6e 63  d835\udcc5  punc
6580: 73 70 20 5c 75 32 30 30 38 20 20 51 66 72 20 5c  sp \u2008  Qfr \
6590: 75 64 38 33 35 5c 75 64 64 31 34 20 0a 09 71 66  ud835\udd14 ..qf
65a0: 72 20 5c 75 64 38 33 35 5c 75 64 64 32 65 20 20  r \ud835\udd2e  
65b0: 71 69 6e 74 20 5c 75 32 61 30 63 20 20 71 6f 70  qint \u2a0c  qop
65c0: 66 20 5c 75 64 38 33 35 5c 75 64 64 36 32 20 20  f \ud835\udd62  
65d0: 51 6f 70 66 20 5c 75 32 31 31 61 20 0a 09 71 70  Qopf \u211a ..qp
65e0: 72 69 6d 65 20 5c 75 32 30 35 37 20 20 51 73 63  rime \u2057  Qsc
65f0: 72 20 5c 75 64 38 33 35 5c 75 64 63 61 63 20 20  r \ud835\udcac  
6600: 71 73 63 72 20 5c 75 64 38 33 35 5c 75 64 63 63  qscr \ud835\udcc
6610: 36 20 0a 09 71 75 61 74 65 72 6e 69 6f 6e 73 20  6 ..quaternions 
6620: 5c 75 32 31 30 64 20 20 71 75 61 74 69 6e 74 20  \u210d  quatint 
6630: 5c 75 32 61 31 36 20 20 71 75 65 73 74 20 5c 75  \u2a16  quest \u
6640: 33 66 20 20 71 75 65 73 74 65 71 20 5c 75 32 32  3f  questeq \u22
6650: 35 66 20 0a 09 51 55 4f 54 20 5c 75 32 32 20 20  5f ..QUOT \u22  
6660: 72 41 61 72 72 20 5c 75 32 31 64 62 20 20 72 61  rAarr \u21db  ra
6670: 63 65 20 5c 75 32 32 33 64 5c 75 33 33 31 20 20  ce \u223d\u331  
6680: 52 61 63 75 74 65 20 5c 75 31 35 34 20 0a 09 72  Racute \u154 ..r
6690: 61 63 75 74 65 20 5c 75 31 35 35 20 20 72 61 65  acute \u155  rae
66a0: 6d 70 74 79 76 20 5c 75 32 39 62 33 20 20 52 61  mptyv \u29b3  Ra
66b0: 6e 67 20 5c 75 32 37 65 62 20 20 72 61 6e 67 64  ng \u27eb  rangd
66c0: 20 5c 75 32 39 39 32 20 0a 09 72 61 6e 67 65 20   \u2992 ..range 
66d0: 5c 75 32 39 61 35 20 20 72 61 6e 67 6c 65 20 5c  \u29a5  rangle \
66e0: 75 32 37 65 39 20 20 72 61 72 72 61 70 20 5c 75  u27e9  rarrap \u
66f0: 32 39 37 35 20 20 72 61 72 72 62 20 5c 75 32 31  2975  rarrb \u21
6700: 65 35 20 0a 09 72 61 72 72 62 66 73 20 5c 75 32  e5 ..rarrbfs \u2
6710: 39 32 30 20 20 72 61 72 72 63 20 5c 75 32 39 33  920  rarrc \u293
6720: 33 20 20 52 61 72 72 20 5c 75 32 31 61 30 20 20  3  Rarr \u21a0  
6730: 72 61 72 72 66 73 20 5c 75 32 39 31 65 20 0a 09  rarrfs \u291e ..
6740: 72 61 72 72 68 6b 20 5c 75 32 31 61 61 20 20 72  rarrhk \u21aa  r
6750: 61 72 72 6c 70 20 5c 75 32 31 61 63 20 20 72 61  arrlp \u21ac  ra
6760: 72 72 70 6c 20 5c 75 32 39 34 35 20 20 72 61 72  rrpl \u2945  rar
6770: 72 73 69 6d 20 5c 75 32 39 37 34 20 0a 09 52 61  rsim \u2974 ..Ra
6780: 72 72 74 6c 20 5c 75 32 39 31 36 20 20 72 61 72  rrtl \u2916  rar
6790: 72 74 6c 20 5c 75 32 31 61 33 20 20 72 61 72 72  rtl \u21a3  rarr
67a0: 77 20 5c 75 32 31 39 64 20 20 72 61 74 61 69 6c  w \u219d  ratail
67b0: 20 5c 75 32 39 31 61 20 0a 09 72 41 74 61 69 6c   \u291a ..rAtail
67c0: 20 5c 75 32 39 31 63 20 20 72 61 74 69 6f 20 5c   \u291c  ratio \
67d0: 75 32 32 33 36 20 20 72 61 74 69 6f 6e 61 6c 73  u2236  rationals
67e0: 20 5c 75 32 31 31 61 20 20 72 62 61 72 72 20 5c   \u211a  rbarr \
67f0: 75 32 39 30 64 20 0a 09 72 42 61 72 72 20 5c 75  u290d ..rBarr \u
6800: 32 39 30 66 20 20 52 42 61 72 72 20 5c 75 32 39  290f  RBarr \u29
6810: 31 30 20 20 72 62 62 72 6b 20 5c 75 32 37 37 33  10  rbbrk \u2773
6820: 20 20 72 62 72 61 63 65 20 5c 75 37 64 20 0a 09    rbrace \u7d ..
6830: 72 62 72 61 63 6b 20 5c 75 35 64 20 20 72 62 72  rbrack \u5d  rbr
6840: 6b 65 20 5c 75 32 39 38 63 20 20 72 62 72 6b 73  ke \u298c  rbrks
6850: 6c 64 20 5c 75 32 39 38 65 20 20 72 62 72 6b 73  ld \u298e  rbrks
6860: 6c 75 20 5c 75 32 39 39 30 20 0a 09 52 63 61 72  lu \u2990 ..Rcar
6870: 6f 6e 20 5c 75 31 35 38 20 20 72 63 61 72 6f 6e  on \u158  rcaron
6880: 20 5c 75 31 35 39 20 20 52 63 65 64 69 6c 20 5c   \u159  Rcedil \
6890: 75 31 35 36 20 20 72 63 65 64 69 6c 20 5c 75 31  u156  rcedil \u1
68a0: 35 37 20 20 72 63 75 62 20 5c 75 37 64 20 0a 09  57  rcub \u7d ..
68b0: 52 63 79 20 5c 75 34 32 30 20 20 72 63 79 20 5c  Rcy \u420  rcy \
68c0: 75 34 34 30 20 20 72 64 63 61 20 5c 75 32 39 33  u440  rdca \u293
68d0: 37 20 20 72 64 6c 64 68 61 72 20 5c 75 32 39 36  7  rdldhar \u296
68e0: 39 20 20 72 64 71 75 6f 72 20 5c 75 32 30 31 64  9  rdquor \u201d
68f0: 20 0a 09 72 64 73 68 20 5c 75 32 31 62 33 20 20   ..rdsh \u21b3  
6900: 72 65 61 6c 69 6e 65 20 5c 75 32 31 31 62 20 20  realine \u211b  
6910: 72 65 61 6c 70 61 72 74 20 5c 75 32 31 31 63 20  realpart \u211c 
6920: 20 72 65 61 6c 73 20 5c 75 32 31 31 64 20 0a 09   reals \u211d ..
6930: 52 65 20 5c 75 32 31 31 63 20 20 72 65 63 74 20  Re \u211c  rect 
6940: 5c 75 32 35 61 64 20 20 52 45 47 20 5c 75 61 65  \u25ad  REG \uae
6950: 20 20 52 65 76 65 72 73 65 45 6c 65 6d 65 6e 74    ReverseElement
6960: 20 5c 75 32 32 30 62 20 0a 09 52 65 76 65 72 73   \u220b ..Revers
6970: 65 45 71 75 69 6c 69 62 72 69 75 6d 20 5c 75 32  eEquilibrium \u2
6980: 31 63 62 20 20 52 65 76 65 72 73 65 55 70 45 71  1cb  ReverseUpEq
6990: 75 69 6c 69 62 72 69 75 6d 20 5c 75 32 39 36 66  uilibrium \u296f
69a0: 20 0a 09 72 66 69 73 68 74 20 5c 75 32 39 37 64   ..rfisht \u297d
69b0: 20 20 72 66 72 20 5c 75 64 38 33 35 5c 75 64 64    rfr \ud835\udd
69c0: 32 66 20 20 52 66 72 20 5c 75 32 31 31 63 20 20  2f  Rfr \u211c  
69d0: 72 48 61 72 20 5c 75 32 39 36 34 20 0a 09 72 68  rHar \u2964 ..rh
69e0: 61 72 64 20 5c 75 32 31 63 31 20 20 72 68 61 72  ard \u21c1  rhar
69f0: 75 20 5c 75 32 31 63 30 20 20 72 68 61 72 75 6c  u \u21c0  rharul
6a00: 20 5c 75 32 39 36 63 20 20 72 68 6f 76 20 5c 75   \u296c  rhov \u
6a10: 33 66 31 20 0a 09 52 69 67 68 74 41 6e 67 6c 65  3f1 ..RightAngle
6a20: 42 72 61 63 6b 65 74 20 5c 75 32 37 65 39 20 20  Bracket \u27e9  
6a30: 52 69 67 68 74 41 72 72 6f 77 42 61 72 20 5c 75  RightArrowBar \u
6a40: 32 31 65 35 20 20 72 69 67 68 74 61 72 72 6f 77  21e5  rightarrow
6a50: 20 5c 75 32 31 39 32 20 0a 09 52 69 67 68 74 41   \u2192 ..RightA
6a60: 72 72 6f 77 20 5c 75 32 31 39 32 20 20 52 69 67  rrow \u2192  Rig
6a70: 68 74 61 72 72 6f 77 20 5c 75 32 31 64 32 20 20  htarrow \u21d2  
6a80: 52 69 67 68 74 41 72 72 6f 77 4c 65 66 74 41 72  RightArrowLeftAr
6a90: 72 6f 77 20 5c 75 32 31 63 34 20 0a 09 72 69 67  row \u21c4 ..rig
6aa0: 68 74 61 72 72 6f 77 74 61 69 6c 20 5c 75 32 31  htarrowtail \u21
6ab0: 61 33 20 20 52 69 67 68 74 43 65 69 6c 69 6e 67  a3  RightCeiling
6ac0: 20 5c 75 32 33 30 39 20 0a 09 52 69 67 68 74 44   \u2309 ..RightD
6ad0: 6f 75 62 6c 65 42 72 61 63 6b 65 74 20 5c 75 32  oubleBracket \u2
6ae0: 37 65 37 20 20 52 69 67 68 74 44 6f 77 6e 54 65  7e7  RightDownTe
6af0: 65 56 65 63 74 6f 72 20 5c 75 32 39 35 64 20 0a  eVector \u295d .
6b00: 09 52 69 67 68 74 44 6f 77 6e 56 65 63 74 6f 72  .RightDownVector
6b10: 42 61 72 20 5c 75 32 39 35 35 20 20 52 69 67 68  Bar \u2955  Righ
6b20: 74 44 6f 77 6e 56 65 63 74 6f 72 20 5c 75 32 31  tDownVector \u21
6b30: 63 32 20 0a 09 52 69 67 68 74 46 6c 6f 6f 72 20  c2 ..RightFloor 
6b40: 5c 75 32 33 30 62 20 20 72 69 67 68 74 68 61 72  \u230b  righthar
6b50: 70 6f 6f 6e 64 6f 77 6e 20 5c 75 32 31 63 31 20  poondown \u21c1 
6b60: 20 72 69 67 68 74 68 61 72 70 6f 6f 6e 75 70 20   rightharpoonup 
6b70: 5c 75 32 31 63 30 20 0a 09 72 69 67 68 74 6c 65  \u21c0 ..rightle
6b80: 66 74 61 72 72 6f 77 73 20 5c 75 32 31 63 34 20  ftarrows \u21c4 
6b90: 20 72 69 67 68 74 6c 65 66 74 68 61 72 70 6f 6f   rightleftharpoo
6ba0: 6e 73 20 5c 75 32 31 63 63 20 0a 09 72 69 67 68  ns \u21cc ..righ
6bb0: 74 72 69 67 68 74 61 72 72 6f 77 73 20 5c 75 32  trightarrows \u2
6bc0: 31 63 39 20 20 72 69 67 68 74 73 71 75 69 67 61  1c9  rightsquiga
6bd0: 72 72 6f 77 20 5c 75 32 31 39 64 20 0a 09 52 69  rrow \u219d ..Ri
6be0: 67 68 74 54 65 65 41 72 72 6f 77 20 5c 75 32 31  ghtTeeArrow \u21
6bf0: 61 36 20 20 52 69 67 68 74 54 65 65 20 5c 75 32  a6  RightTee \u2
6c00: 32 61 32 20 20 52 69 67 68 74 54 65 65 56 65 63  2a2  RightTeeVec
6c10: 74 6f 72 20 5c 75 32 39 35 62 20 0a 09 72 69 67  tor \u295b ..rig
6c20: 68 74 74 68 72 65 65 74 69 6d 65 73 20 5c 75 32  htthreetimes \u2
6c30: 32 63 63 20 20 52 69 67 68 74 54 72 69 61 6e 67  2cc  RightTriang
6c40: 6c 65 42 61 72 20 5c 75 32 39 64 30 20 0a 09 52  leBar \u29d0 ..R
6c50: 69 67 68 74 54 72 69 61 6e 67 6c 65 20 5c 75 32  ightTriangle \u2
6c60: 32 62 33 20 20 52 69 67 68 74 54 72 69 61 6e 67  2b3  RightTriang
6c70: 6c 65 45 71 75 61 6c 20 5c 75 32 32 62 35 20 0a  leEqual \u22b5 .
6c80: 09 52 69 67 68 74 55 70 44 6f 77 6e 56 65 63 74  .RightUpDownVect
6c90: 6f 72 20 5c 75 32 39 34 66 20 20 52 69 67 68 74  or \u294f  Right
6ca0: 55 70 54 65 65 56 65 63 74 6f 72 20 5c 75 32 39  UpTeeVector \u29
6cb0: 35 63 20 0a 09 52 69 67 68 74 55 70 56 65 63 74  5c ..RightUpVect
6cc0: 6f 72 42 61 72 20 5c 75 32 39 35 34 20 20 52 69  orBar \u2954  Ri
6cd0: 67 68 74 55 70 56 65 63 74 6f 72 20 5c 75 32 31  ghtUpVector \u21
6ce0: 62 65 20 0a 09 52 69 67 68 74 56 65 63 74 6f 72  be ..RightVector
6cf0: 42 61 72 20 5c 75 32 39 35 33 20 20 52 69 67 68  Bar \u2953  Righ
6d00: 74 56 65 63 74 6f 72 20 5c 75 32 31 63 30 20 20  tVector \u21c0  
6d10: 72 69 6e 67 20 5c 75 32 64 61 20 0a 09 72 69 73  ring \u2da ..ris
6d20: 69 6e 67 64 6f 74 73 65 71 20 5c 75 32 32 35 33  ingdotseq \u2253
6d30: 20 20 72 6c 61 72 72 20 5c 75 32 31 63 34 20 20    rlarr \u21c4  
6d40: 72 6c 68 61 72 20 5c 75 32 31 63 63 20 0a 09 72  rlhar \u21cc ..r
6d50: 6d 6f 75 73 74 61 63 68 65 20 5c 75 32 33 62 31  moustache \u23b1
6d60: 20 20 72 6d 6f 75 73 74 20 5c 75 32 33 62 31 20    rmoust \u23b1 
6d70: 20 72 6e 6d 69 64 20 5c 75 32 61 65 65 20 20 72   rnmid \u2aee  r
6d80: 6f 61 6e 67 20 5c 75 32 37 65 64 20 0a 09 72 6f  oang \u27ed ..ro
6d90: 61 72 72 20 5c 75 32 31 66 65 20 20 72 6f 62 72  arr \u21fe  robr
6da0: 6b 20 5c 75 32 37 65 37 20 20 72 6f 70 61 72 20  k \u27e7  ropar 
6db0: 5c 75 32 39 38 36 20 20 72 6f 70 66 20 5c 75 64  \u2986  ropf \ud
6dc0: 38 33 35 5c 75 64 64 36 33 20 0a 09 52 6f 70 66  835\udd63 ..Ropf
6dd0: 20 5c 75 32 31 31 64 20 20 72 6f 70 6c 75 73 20   \u211d  roplus 
6de0: 5c 75 32 61 32 65 20 20 72 6f 74 69 6d 65 73 20  \u2a2e  rotimes 
6df0: 5c 75 32 61 33 35 20 20 52 6f 75 6e 64 49 6d 70  \u2a35  RoundImp
6e00: 6c 69 65 73 20 5c 75 32 39 37 30 20 0a 09 72 70  lies \u2970 ..rp
6e10: 61 72 20 5c 75 32 39 20 20 72 70 61 72 67 74 20  ar \u29  rpargt 
6e20: 5c 75 32 39 39 34 20 20 72 70 70 6f 6c 69 6e 74  \u2994  rppolint
6e30: 20 5c 75 32 61 31 32 20 20 72 72 61 72 72 20 5c   \u2a12  rrarr \
6e40: 75 32 31 63 39 20 0a 09 52 72 69 67 68 74 61 72  u21c9 ..Rrightar
6e50: 72 6f 77 20 5c 75 32 31 64 62 20 20 72 73 63 72  row \u21db  rscr
6e60: 20 5c 75 64 38 33 35 5c 75 64 63 63 37 20 20 52   \ud835\udcc7  R
6e70: 73 63 72 20 5c 75 32 31 31 62 20 20 72 73 68 20  scr \u211b  rsh 
6e80: 5c 75 32 31 62 31 20 0a 09 52 73 68 20 5c 75 32  \u21b1 ..Rsh \u2
6e90: 31 62 31 20 20 72 73 71 62 20 5c 75 35 64 20 20  1b1  rsqb \u5d  
6ea0: 72 73 71 75 6f 72 20 5c 75 32 30 31 39 20 20 72  rsquor \u2019  r
6eb0: 74 68 72 65 65 20 5c 75 32 32 63 63 20 0a 09 72  three \u22cc ..r
6ec0: 74 69 6d 65 73 20 5c 75 32 32 63 61 20 20 72 74  times \u22ca  rt
6ed0: 72 69 20 5c 75 32 35 62 39 20 20 72 74 72 69 65  ri \u25b9  rtrie
6ee0: 20 5c 75 32 32 62 35 20 20 72 74 72 69 66 20 5c   \u22b5  rtrif \
6ef0: 75 32 35 62 38 20 0a 09 72 74 72 69 6c 74 72 69  u25b8 ..rtriltri
6f00: 20 5c 75 32 39 63 65 20 20 52 75 6c 65 44 65 6c   \u29ce  RuleDel
6f10: 61 79 65 64 20 5c 75 32 39 66 34 20 20 72 75 6c  ayed \u29f4  rul
6f20: 75 68 61 72 20 5c 75 32 39 36 38 20 20 72 78 20  uhar \u2968  rx 
6f30: 5c 75 32 31 31 65 20 0a 09 53 61 63 75 74 65 20  \u211e ..Sacute 
6f40: 5c 75 31 35 61 20 20 73 61 63 75 74 65 20 5c 75  \u15a  sacute \u
6f50: 31 35 62 20 20 73 63 61 70 20 5c 75 32 61 62 38  15b  scap \u2ab8
6f60: 20 20 53 63 20 5c 75 32 61 62 63 20 20 73 63 20    Sc \u2abc  sc 
6f70: 5c 75 32 32 37 62 20 0a 09 73 63 63 75 65 20 5c  \u227b ..sccue \
6f80: 75 32 32 37 64 20 20 73 63 65 20 5c 75 32 61 62  u227d  sce \u2ab
6f90: 30 20 20 73 63 45 20 5c 75 32 61 62 34 20 20 53  0  scE \u2ab4  S
6fa0: 63 65 64 69 6c 20 5c 75 31 35 65 20 20 73 63 65  cedil \u15e  sce
6fb0: 64 69 6c 20 5c 75 31 35 66 20 0a 09 53 63 69 72  dil \u15f ..Scir
6fc0: 63 20 5c 75 31 35 63 20 20 73 63 69 72 63 20 5c  c \u15c  scirc \
6fd0: 75 31 35 64 20 20 73 63 6e 61 70 20 5c 75 32 61  u15d  scnap \u2a
6fe0: 62 61 20 20 73 63 6e 45 20 5c 75 32 61 62 36 20  ba  scnE \u2ab6 
6ff0: 0a 09 73 63 6e 73 69 6d 20 5c 75 32 32 65 39 20  ..scnsim \u22e9 
7000: 20 73 63 70 6f 6c 69 6e 74 20 5c 75 32 61 31 33   scpolint \u2a13
7010: 20 20 73 63 73 69 6d 20 5c 75 32 32 37 66 20 20    scsim \u227f  
7020: 53 63 79 20 5c 75 34 32 31 20 0a 09 73 63 79 20  Scy \u421 ..scy 
7030: 5c 75 34 34 31 20 20 73 64 6f 74 62 20 5c 75 32  \u441  sdotb \u2
7040: 32 61 31 20 20 73 64 6f 74 65 20 5c 75 32 61 36  2a1  sdote \u2a6
7050: 36 20 20 73 65 61 72 68 6b 20 5c 75 32 39 32 35  6  searhk \u2925
7060: 20 0a 09 73 65 61 72 72 20 5c 75 32 31 39 38 20   ..searr \u2198 
7070: 20 73 65 41 72 72 20 5c 75 32 31 64 38 20 20 73   seArr \u21d8  s
7080: 65 61 72 72 6f 77 20 5c 75 32 31 39 38 20 20 73  earrow \u2198  s
7090: 65 6d 69 20 5c 75 33 62 20 0a 09 73 65 73 77 61  emi \u3b ..seswa
70a0: 72 20 5c 75 32 39 32 39 20 20 73 65 74 6d 69 6e  r \u2929  setmin
70b0: 75 73 20 5c 75 32 32 31 36 20 20 73 65 74 6d 6e  us \u2216  setmn
70c0: 20 5c 75 32 32 31 36 20 20 73 65 78 74 20 5c 75   \u2216  sext \u
70d0: 32 37 33 36 20 0a 09 53 66 72 20 5c 75 64 38 33  2736 ..Sfr \ud83
70e0: 35 5c 75 64 64 31 36 20 20 73 66 72 20 5c 75 64  5\udd16  sfr \ud
70f0: 38 33 35 5c 75 64 64 33 30 20 20 73 66 72 6f 77  835\udd30  sfrow
7100: 6e 20 5c 75 32 33 32 32 20 20 73 68 61 72 70 20  n \u2322  sharp 
7110: 5c 75 32 36 36 66 20 0a 09 53 48 43 48 63 79 20  \u266f ..SHCHcy 
7120: 5c 75 34 32 39 20 20 73 68 63 68 63 79 20 5c 75  \u429  shchcy \u
7130: 34 34 39 20 20 53 48 63 79 20 5c 75 34 32 38 20  449  SHcy \u428 
7140: 20 73 68 63 79 20 5c 75 34 34 38 20 0a 09 53 68   shcy \u448 ..Sh
7150: 6f 72 74 44 6f 77 6e 41 72 72 6f 77 20 5c 75 32  ortDownArrow \u2
7160: 31 39 33 20 20 53 68 6f 72 74 4c 65 66 74 41 72  193  ShortLeftAr
7170: 72 6f 77 20 5c 75 32 31 39 30 20 20 73 68 6f 72  row \u2190  shor
7180: 74 6d 69 64 20 5c 75 32 32 32 33 20 0a 09 73 68  tmid \u2223 ..sh
7190: 6f 72 74 70 61 72 61 6c 6c 65 6c 20 5c 75 32 32  ortparallel \u22
71a0: 32 35 20 20 53 68 6f 72 74 52 69 67 68 74 41 72  25  ShortRightAr
71b0: 72 6f 77 20 5c 75 32 31 39 32 20 20 53 68 6f 72  row \u2192  Shor
71c0: 74 55 70 41 72 72 6f 77 20 5c 75 32 31 39 31 20  tUpArrow \u2191 
71d0: 0a 09 73 69 67 6d 61 76 20 5c 75 33 63 32 20 20  ..sigmav \u3c2  
71e0: 73 69 6d 64 6f 74 20 5c 75 32 61 36 61 20 20 73  simdot \u2a6a  s
71f0: 69 6d 65 20 5c 75 32 32 34 33 20 20 73 69 6d 65  ime \u2243  sime
7200: 71 20 5c 75 32 32 34 33 20 0a 09 73 69 6d 67 20  q \u2243 ..simg 
7210: 5c 75 32 61 39 65 20 20 73 69 6d 67 45 20 5c 75  \u2a9e  simgE \u
7220: 32 61 61 30 20 20 73 69 6d 6c 20 5c 75 32 61 39  2aa0  siml \u2a9
7230: 64 20 20 73 69 6d 6c 45 20 5c 75 32 61 39 66 20  d  simlE \u2a9f 
7240: 0a 09 73 69 6d 6e 65 20 5c 75 32 32 34 36 20 20  ..simne \u2246  
7250: 73 69 6d 70 6c 75 73 20 5c 75 32 61 32 34 20 20  simplus \u2a24  
7260: 73 69 6d 72 61 72 72 20 5c 75 32 39 37 32 20 20  simrarr \u2972  
7270: 73 6c 61 72 72 20 5c 75 32 31 39 30 20 0a 09 53  slarr \u2190 ..S
7280: 6d 61 6c 6c 43 69 72 63 6c 65 20 5c 75 32 32 31  mallCircle \u221
7290: 38 20 20 73 6d 61 6c 6c 73 65 74 6d 69 6e 75 73  8  smallsetminus
72a0: 20 5c 75 32 32 31 36 20 20 73 6d 61 73 68 70 20   \u2216  smashp 
72b0: 5c 75 32 61 33 33 20 0a 09 73 6d 65 70 61 72 73  \u2a33 ..smepars
72c0: 6c 20 5c 75 32 39 65 34 20 20 73 6d 69 64 20 5c  l \u29e4  smid \
72d0: 75 32 32 32 33 20 20 73 6d 69 6c 65 20 5c 75 32  u2223  smile \u2
72e0: 33 32 33 20 20 73 6d 74 20 5c 75 32 61 61 61 20  323  smt \u2aaa 
72f0: 0a 09 73 6d 74 65 20 5c 75 32 61 61 63 20 20 73  ..smte \u2aac  s
7300: 6d 74 65 73 20 5c 75 32 61 61 63 5c 75 66 65 30  mtes \u2aac\ufe0
7310: 30 20 20 53 4f 46 54 63 79 20 5c 75 34 32 63 20  0  SOFTcy \u42c 
7320: 20 73 6f 66 74 63 79 20 5c 75 34 34 63 20 0a 09   softcy \u44c ..
7330: 73 6f 6c 62 61 72 20 5c 75 32 33 33 66 20 20 73  solbar \u233f  s
7340: 6f 6c 62 20 5c 75 32 39 63 34 20 20 73 6f 6c 20  olb \u29c4  sol 
7350: 5c 75 32 66 20 20 53 6f 70 66 20 5c 75 64 38 33  \u2f  Sopf \ud83
7360: 35 5c 75 64 64 34 61 20 0a 09 73 6f 70 66 20 5c  5\udd4a ..sopf \
7370: 75 64 38 33 35 5c 75 64 64 36 34 20 20 73 70 61  ud835\udd64  spa
7380: 64 65 73 75 69 74 20 5c 75 32 36 36 30 20 20 73  desuit \u2660  s
7390: 70 61 72 20 5c 75 32 32 32 35 20 20 73 71 63 61  par \u2225  sqca
73a0: 70 20 5c 75 32 32 39 33 20 0a 09 73 71 63 61 70  p \u2293 ..sqcap
73b0: 73 20 5c 75 32 32 39 33 5c 75 66 65 30 30 20 20  s \u2293\ufe00  
73c0: 73 71 63 75 70 20 5c 75 32 32 39 34 20 20 73 71  sqcup \u2294  sq
73d0: 63 75 70 73 20 5c 75 32 32 39 34 5c 75 66 65 30  cups \u2294\ufe0
73e0: 30 20 0a 09 53 71 72 74 20 5c 75 32 32 31 61 20  0 ..Sqrt \u221a 
73f0: 20 73 71 73 75 62 20 5c 75 32 32 38 66 20 20 73   sqsub \u228f  s
7400: 71 73 75 62 65 20 5c 75 32 32 39 31 20 20 73 71  qsube \u2291  sq
7410: 73 75 62 73 65 74 20 5c 75 32 32 38 66 20 0a 09  subset \u228f ..
7420: 73 71 73 75 62 73 65 74 65 71 20 5c 75 32 32 39  sqsubseteq \u229
7430: 31 20 20 73 71 73 75 70 20 5c 75 32 32 39 30 20  1  sqsup \u2290 
7440: 20 73 71 73 75 70 65 20 5c 75 32 32 39 32 20 20   sqsupe \u2292  
7450: 73 71 73 75 70 73 65 74 20 5c 75 32 32 39 30 20  sqsupset \u2290 
7460: 0a 09 73 71 73 75 70 73 65 74 65 71 20 5c 75 32  ..sqsupseteq \u2
7470: 32 39 32 20 20 73 71 75 61 72 65 20 5c 75 32 35  292  square \u25
7480: 61 31 20 20 53 71 75 61 72 65 20 5c 75 32 35 61  a1  Square \u25a
7490: 31 20 0a 09 53 71 75 61 72 65 49 6e 74 65 72 73  1 ..SquareInters
74a0: 65 63 74 69 6f 6e 20 5c 75 32 32 39 33 20 20 53  ection \u2293  S
74b0: 71 75 61 72 65 53 75 62 73 65 74 20 5c 75 32 32  quareSubset \u22
74c0: 38 66 20 0a 09 53 71 75 61 72 65 53 75 62 73 65  8f ..SquareSubse
74d0: 74 45 71 75 61 6c 20 5c 75 32 32 39 31 20 20 53  tEqual \u2291  S
74e0: 71 75 61 72 65 53 75 70 65 72 73 65 74 20 5c 75  quareSuperset \u
74f0: 32 32 39 30 20 0a 09 53 71 75 61 72 65 53 75 70  2290 ..SquareSup
7500: 65 72 73 65 74 45 71 75 61 6c 20 5c 75 32 32 39  ersetEqual \u229
7510: 32 20 20 53 71 75 61 72 65 55 6e 69 6f 6e 20 5c  2  SquareUnion \
7520: 75 32 32 39 34 20 20 73 71 75 61 72 66 20 5c 75  u2294  squarf \u
7530: 32 35 61 61 20 0a 09 73 71 75 20 5c 75 32 35 61  25aa ..squ \u25a
7540: 31 20 20 73 71 75 66 20 5c 75 32 35 61 61 20 20  1  squf \u25aa  
7550: 73 72 61 72 72 20 5c 75 32 31 39 32 20 20 53 73  srarr \u2192  Ss
7560: 63 72 20 5c 75 64 38 33 35 5c 75 64 63 61 65 20  cr \ud835\udcae 
7570: 0a 09 73 73 63 72 20 5c 75 64 38 33 35 5c 75 64  ..sscr \ud835\ud
7580: 63 63 38 20 20 73 73 65 74 6d 6e 20 5c 75 32 32  cc8  ssetmn \u22
7590: 31 36 20 20 73 73 6d 69 6c 65 20 5c 75 32 33 32  16  ssmile \u232
75a0: 33 20 20 73 73 74 61 72 66 20 5c 75 32 32 63 36  3  sstarf \u22c6
75b0: 20 0a 09 53 74 61 72 20 5c 75 32 32 63 36 20 20   ..Star \u22c6  
75c0: 73 74 61 72 20 5c 75 32 36 30 36 20 20 73 74 61  star \u2606  sta
75d0: 72 66 20 5c 75 32 36 30 35 20 20 73 74 72 61 69  rf \u2605  strai
75e0: 67 68 74 65 70 73 69 6c 6f 6e 20 5c 75 33 66 35  ghtepsilon \u3f5
75f0: 20 0a 09 73 74 72 61 69 67 68 74 70 68 69 20 5c   ..straightphi \
7600: 75 33 64 35 20 20 73 74 72 6e 73 20 5c 75 61 66  u3d5  strns \uaf
7610: 20 20 53 75 62 20 5c 75 32 32 64 30 20 20 73 75    Sub \u22d0  su
7620: 62 64 6f 74 20 5c 75 32 61 62 64 20 0a 09 73 75  bdot \u2abd ..su
7630: 62 45 20 5c 75 32 61 63 35 20 20 73 75 62 65 64  bE \u2ac5  subed
7640: 6f 74 20 5c 75 32 61 63 33 20 20 73 75 62 6d 75  ot \u2ac3  submu
7650: 6c 74 20 5c 75 32 61 63 31 20 20 73 75 62 6e 45  lt \u2ac1  subnE
7660: 20 5c 75 32 61 63 62 20 0a 09 73 75 62 6e 65 20   \u2acb ..subne 
7670: 5c 75 32 32 38 61 20 20 73 75 62 70 6c 75 73 20  \u228a  subplus 
7680: 5c 75 32 61 62 66 20 20 73 75 62 72 61 72 72 20  \u2abf  subrarr 
7690: 5c 75 32 39 37 39 20 20 73 75 62 73 65 74 20 5c  \u2979  subset \
76a0: 75 32 32 38 32 20 0a 09 53 75 62 73 65 74 20 5c  u2282 ..Subset \
76b0: 75 32 32 64 30 20 20 73 75 62 73 65 74 65 71 20  u22d0  subseteq 
76c0: 5c 75 32 32 38 36 20 20 73 75 62 73 65 74 65 71  \u2286  subseteq
76d0: 71 20 5c 75 32 61 63 35 20 0a 09 53 75 62 73 65  q \u2ac5 ..Subse
76e0: 74 45 71 75 61 6c 20 5c 75 32 32 38 36 20 20 73  tEqual \u2286  s
76f0: 75 62 73 65 74 6e 65 71 20 5c 75 32 32 38 61 20  ubsetneq \u228a 
7700: 20 73 75 62 73 65 74 6e 65 71 71 20 5c 75 32 61   subsetneqq \u2a
7710: 63 62 20 0a 09 73 75 62 73 69 6d 20 5c 75 32 61  cb ..subsim \u2a
7720: 63 37 20 20 73 75 62 73 75 62 20 5c 75 32 61 64  c7  subsub \u2ad
7730: 35 20 20 73 75 62 73 75 70 20 5c 75 32 61 64 33  5  subsup \u2ad3
7740: 20 20 73 75 63 63 61 70 70 72 6f 78 20 5c 75 32    succapprox \u2
7750: 61 62 38 20 0a 09 73 75 63 63 20 5c 75 32 32 37  ab8 ..succ \u227
7760: 62 20 20 73 75 63 63 63 75 72 6c 79 65 71 20 5c  b  succcurlyeq \
7770: 75 32 32 37 64 20 20 53 75 63 63 65 65 64 73 20  u227d  Succeeds 
7780: 5c 75 32 32 37 62 20 0a 09 53 75 63 63 65 65 64  \u227b ..Succeed
7790: 73 45 71 75 61 6c 20 5c 75 32 61 62 30 20 20 53  sEqual \u2ab0  S
77a0: 75 63 63 65 65 64 73 53 6c 61 6e 74 45 71 75 61  ucceedsSlantEqua
77b0: 6c 20 5c 75 32 32 37 64 20 0a 09 53 75 63 63 65  l \u227d ..Succe
77c0: 65 64 73 54 69 6c 64 65 20 5c 75 32 32 37 66 20  edsTilde \u227f 
77d0: 20 73 75 63 63 65 71 20 5c 75 32 61 62 30 20 20   succeq \u2ab0  
77e0: 73 75 63 63 6e 61 70 70 72 6f 78 20 5c 75 32 61  succnapprox \u2a
77f0: 62 61 20 0a 09 73 75 63 63 6e 65 71 71 20 5c 75  ba ..succneqq \u
7800: 32 61 62 36 20 20 73 75 63 63 6e 73 69 6d 20 5c  2ab6  succnsim \
7810: 75 32 32 65 39 20 20 73 75 63 63 73 69 6d 20 5c  u22e9  succsim \
7820: 75 32 32 37 66 20 20 53 75 63 68 54 68 61 74 20  u227f  SuchThat 
7830: 5c 75 32 32 30 62 20 0a 09 53 75 6d 20 5c 75 32  \u220b ..Sum \u2
7840: 32 31 31 20 20 73 75 6e 67 20 5c 75 32 36 36 61  211  sung \u266a
7850: 20 20 53 75 70 20 5c 75 32 32 64 31 20 20 73 75    Sup \u22d1  su
7860: 70 64 6f 74 20 5c 75 32 61 62 65 20 0a 09 73 75  pdot \u2abe ..su
7870: 70 64 73 75 62 20 5c 75 32 61 64 38 20 20 73 75  pdsub \u2ad8  su
7880: 70 45 20 5c 75 32 61 63 36 20 20 73 75 70 65 64  pE \u2ac6  suped
7890: 6f 74 20 5c 75 32 61 63 34 20 20 53 75 70 65 72  ot \u2ac4  Super
78a0: 73 65 74 20 5c 75 32 32 38 33 20 0a 09 53 75 70  set \u2283 ..Sup
78b0: 65 72 73 65 74 45 71 75 61 6c 20 5c 75 32 32 38  ersetEqual \u228
78c0: 37 20 20 73 75 70 68 73 6f 6c 20 5c 75 32 37 63  7  suphsol \u27c
78d0: 39 20 20 73 75 70 68 73 75 62 20 5c 75 32 61 64  9  suphsub \u2ad
78e0: 37 20 0a 09 73 75 70 6c 61 72 72 20 5c 75 32 39  7 ..suplarr \u29
78f0: 37 62 20 20 73 75 70 6d 75 6c 74 20 5c 75 32 61  7b  supmult \u2a
7900: 63 32 20 20 73 75 70 6e 45 20 5c 75 32 61 63 63  c2  supnE \u2acc
7910: 20 20 73 75 70 6e 65 20 5c 75 32 32 38 62 20 0a    supne \u228b .
7920: 09 73 75 70 70 6c 75 73 20 5c 75 32 61 63 30 20  .supplus \u2ac0 
7930: 20 73 75 70 73 65 74 20 5c 75 32 32 38 33 20 20   supset \u2283  
7940: 53 75 70 73 65 74 20 5c 75 32 32 64 31 20 20 73  Supset \u22d1  s
7950: 75 70 73 65 74 65 71 20 5c 75 32 32 38 37 20 0a  upseteq \u2287 .
7960: 09 73 75 70 73 65 74 65 71 71 20 5c 75 32 61 63  .supseteqq \u2ac
7970: 36 20 20 73 75 70 73 65 74 6e 65 71 20 5c 75 32  6  supsetneq \u2
7980: 32 38 62 20 20 73 75 70 73 65 74 6e 65 71 71 20  28b  supsetneqq 
7990: 5c 75 32 61 63 63 20 0a 09 73 75 70 73 69 6d 20  \u2acc ..supsim 
79a0: 5c 75 32 61 63 38 20 20 73 75 70 73 75 62 20 5c  \u2ac8  supsub \
79b0: 75 32 61 64 34 20 20 73 75 70 73 75 70 20 5c 75  u2ad4  supsup \u
79c0: 32 61 64 36 20 20 73 77 61 72 68 6b 20 5c 75 32  2ad6  swarhk \u2
79d0: 39 32 36 20 0a 09 73 77 61 72 72 20 5c 75 32 31  926 ..swarr \u21
79e0: 39 39 20 20 73 77 41 72 72 20 5c 75 32 31 64 39  99  swArr \u21d9
79f0: 20 20 73 77 61 72 72 6f 77 20 5c 75 32 31 39 39    swarrow \u2199
7a00: 20 20 73 77 6e 77 61 72 20 5c 75 32 39 32 61 20    swnwar \u292a 
7a10: 0a 09 54 61 62 20 5c 75 39 20 20 74 61 72 67 65  ..Tab \u9  targe
7a20: 74 20 5c 75 32 33 31 36 20 20 74 62 72 6b 20 5c  t \u2316  tbrk \
7a30: 75 32 33 62 34 20 20 54 63 61 72 6f 6e 20 5c 75  u23b4  Tcaron \u
7a40: 31 36 34 20 20 74 63 61 72 6f 6e 20 5c 75 31 36  164  tcaron \u16
7a50: 35 20 0a 09 54 63 65 64 69 6c 20 5c 75 31 36 32  5 ..Tcedil \u162
7a60: 20 20 74 63 65 64 69 6c 20 5c 75 31 36 33 20 20    tcedil \u163  
7a70: 54 63 79 20 5c 75 34 32 32 20 20 74 63 79 20 5c  Tcy \u422  tcy \
7a80: 75 34 34 32 20 20 74 64 6f 74 20 5c 75 32 30 64  u442  tdot \u20d
7a90: 62 20 0a 09 74 65 6c 72 65 63 20 5c 75 32 33 31  b ..telrec \u231
7aa0: 35 20 20 54 66 72 20 5c 75 64 38 33 35 5c 75 64  5  Tfr \ud835\ud
7ab0: 64 31 37 20 20 74 66 72 20 5c 75 64 38 33 35 5c  d17  tfr \ud835\
7ac0: 75 64 64 33 31 20 0a 09 74 68 65 72 65 66 6f 72  udd31 ..therefor
7ad0: 65 20 5c 75 32 32 33 34 20 20 54 68 65 72 65 66  e \u2234  Theref
7ae0: 6f 72 65 20 5c 75 32 32 33 34 20 20 74 68 65 74  ore \u2234  thet
7af0: 61 76 20 5c 75 33 64 31 20 0a 09 74 68 69 63 6b  av \u3d1 ..thick
7b00: 61 70 70 72 6f 78 20 5c 75 32 32 34 38 20 20 74  approx \u2248  t
7b10: 68 69 63 6b 73 69 6d 20 5c 75 32 32 33 63 20 20  hicksim \u223c  
7b20: 54 68 69 63 6b 53 70 61 63 65 20 5c 75 32 30 35  ThickSpace \u205
7b30: 66 5c 75 32 30 30 61 20 0a 09 54 68 69 6e 53 70  f\u200a ..ThinSp
7b40: 61 63 65 20 5c 75 32 30 30 39 20 20 74 68 6b 61  ace \u2009  thka
7b50: 70 20 5c 75 32 32 34 38 20 20 74 68 6b 73 69 6d  p \u2248  thksim
7b60: 20 5c 75 32 32 33 63 20 20 54 69 6c 64 65 20 5c   \u223c  Tilde \
7b70: 75 32 32 33 63 20 0a 09 54 69 6c 64 65 45 71 75  u223c ..TildeEqu
7b80: 61 6c 20 5c 75 32 32 34 33 20 20 54 69 6c 64 65  al \u2243  Tilde
7b90: 46 75 6c 6c 45 71 75 61 6c 20 5c 75 32 32 34 35  FullEqual \u2245
7ba0: 20 20 54 69 6c 64 65 54 69 6c 64 65 20 5c 75 32    TildeTilde \u2
7bb0: 32 34 38 20 0a 09 74 69 6d 65 73 62 61 72 20 5c  248 ..timesbar \
7bc0: 75 32 61 33 31 20 20 74 69 6d 65 73 62 20 5c 75  u2a31  timesb \u
7bd0: 32 32 61 30 20 20 74 69 6d 65 73 64 20 5c 75 32  22a0  timesd \u2
7be0: 61 33 30 20 20 74 69 6e 74 20 5c 75 32 32 32 64  a30  tint \u222d
7bf0: 20 0a 09 74 6f 65 61 20 5c 75 32 39 32 38 20 20   ..toea \u2928  
7c00: 74 6f 70 62 6f 74 20 5c 75 32 33 33 36 20 20 74  topbot \u2336  t
7c10: 6f 70 63 69 72 20 5c 75 32 61 66 31 20 20 74 6f  opcir \u2af1  to
7c20: 70 20 5c 75 32 32 61 34 20 0a 09 54 6f 70 66 20  p \u22a4 ..Topf 
7c30: 5c 75 64 38 33 35 5c 75 64 64 34 62 20 20 74 6f  \ud835\udd4b  to
7c40: 70 66 20 5c 75 64 38 33 35 5c 75 64 64 36 35 20  pf \ud835\udd65 
7c50: 20 74 6f 70 66 6f 72 6b 20 5c 75 32 61 64 61 20   topfork \u2ada 
7c60: 20 74 6f 73 61 20 5c 75 32 39 32 39 20 0a 09 74   tosa \u2929 ..t
7c70: 70 72 69 6d 65 20 5c 75 32 30 33 34 20 20 54 52  prime \u2034  TR
7c80: 41 44 45 20 5c 75 32 31 32 32 20 20 74 72 69 61  ADE \u2122  tria
7c90: 6e 67 6c 65 20 5c 75 32 35 62 35 20 20 74 72 69  ngle \u25b5  tri
7ca0: 61 6e 67 6c 65 64 6f 77 6e 20 5c 75 32 35 62 66  angledown \u25bf
7cb0: 20 0a 09 74 72 69 61 6e 67 6c 65 6c 65 66 74 20   ..triangleleft 
7cc0: 5c 75 32 35 63 33 20 20 74 72 69 61 6e 67 6c 65  \u25c3  triangle
7cd0: 6c 65 66 74 65 71 20 5c 75 32 32 62 34 20 20 74  lefteq \u22b4  t
7ce0: 72 69 61 6e 67 6c 65 71 20 5c 75 32 32 35 63 20  riangleq \u225c 
7cf0: 0a 09 74 72 69 61 6e 67 6c 65 72 69 67 68 74 20  ..triangleright 
7d00: 5c 75 32 35 62 39 20 20 74 72 69 61 6e 67 6c 65  \u25b9  triangle
7d10: 72 69 67 68 74 65 71 20 5c 75 32 32 62 35 20 20  righteq \u22b5  
7d20: 74 72 69 64 6f 74 20 5c 75 32 35 65 63 20 0a 09  tridot \u25ec ..
7d30: 74 72 69 65 20 5c 75 32 32 35 63 20 20 74 72 69  trie \u225c  tri
7d40: 6d 69 6e 75 73 20 5c 75 32 61 33 61 20 20 54 72  minus \u2a3a  Tr
7d50: 69 70 6c 65 44 6f 74 20 5c 75 32 30 64 62 20 20  ipleDot \u20db  
7d60: 74 72 69 70 6c 75 73 20 5c 75 32 61 33 39 20 0a  triplus \u2a39 .
7d70: 09 74 72 69 73 62 20 5c 75 32 39 63 64 20 20 74  .trisb \u29cd  t
7d80: 72 69 74 69 6d 65 20 5c 75 32 61 33 62 20 20 74  ritime \u2a3b  t
7d90: 72 70 65 7a 69 75 6d 20 5c 75 32 33 65 32 20 20  rpezium \u23e2  
7da0: 54 73 63 72 20 5c 75 64 38 33 35 5c 75 64 63 61  Tscr \ud835\udca
7db0: 66 20 0a 09 74 73 63 72 20 5c 75 64 38 33 35 5c  f ..tscr \ud835\
7dc0: 75 64 63 63 39 20 20 54 53 63 79 20 5c 75 34 32  udcc9  TScy \u42
7dd0: 36 20 20 74 73 63 79 20 5c 75 34 34 36 20 20 54  6  tscy \u446  T
7de0: 53 48 63 79 20 5c 75 34 30 62 20 0a 09 74 73 68  SHcy \u40b ..tsh
7df0: 63 79 20 5c 75 34 35 62 20 20 54 73 74 72 6f 6b  cy \u45b  Tstrok
7e00: 20 5c 75 31 36 36 20 20 74 73 74 72 6f 6b 20 5c   \u166  tstrok \
7e10: 75 31 36 37 20 20 74 77 69 78 74 20 5c 75 32 32  u167  twixt \u22
7e20: 36 63 20 0a 09 74 77 6f 68 65 61 64 6c 65 66 74  6c ..twoheadleft
7e30: 61 72 72 6f 77 20 5c 75 32 31 39 65 20 20 74 77  arrow \u219e  tw
7e40: 6f 68 65 61 64 72 69 67 68 74 61 72 72 6f 77 20  oheadrightarrow 
7e50: 5c 75 32 31 61 30 20 20 55 61 72 72 20 5c 75 32  \u21a0  Uarr \u2
7e60: 31 39 66 20 0a 09 55 61 72 72 6f 63 69 72 20 5c  19f ..Uarrocir \
7e70: 75 32 39 34 39 20 20 55 62 72 63 79 20 5c 75 34  u2949  Ubrcy \u4
7e80: 30 65 20 20 75 62 72 63 79 20 5c 75 34 35 65 20  0e  ubrcy \u45e 
7e90: 20 55 62 72 65 76 65 20 5c 75 31 36 63 20 0a 09   Ubreve \u16c ..
7ea0: 75 62 72 65 76 65 20 5c 75 31 36 64 20 20 55 63  ubreve \u16d  Uc
7eb0: 79 20 5c 75 34 32 33 20 20 75 63 79 20 5c 75 34  y \u423  ucy \u4
7ec0: 34 33 20 20 75 64 61 72 72 20 5c 75 32 31 63 35  43  udarr \u21c5
7ed0: 20 20 55 64 62 6c 61 63 20 5c 75 31 37 30 20 0a    Udblac \u170 .
7ee0: 09 75 64 62 6c 61 63 20 5c 75 31 37 31 20 20 75  .udblac \u171  u
7ef0: 64 68 61 72 20 5c 75 32 39 36 65 20 20 75 66 69  dhar \u296e  ufi
7f00: 73 68 74 20 5c 75 32 39 37 65 20 20 55 66 72 20  sht \u297e  Ufr 
7f10: 5c 75 64 38 33 35 5c 75 64 64 31 38 20 0a 09 75  \ud835\udd18 ..u
7f20: 66 72 20 5c 75 64 38 33 35 5c 75 64 64 33 32 20  fr \ud835\udd32 
7f30: 20 75 48 61 72 20 5c 75 32 39 36 33 20 20 75 68   uHar \u2963  uh
7f40: 61 72 6c 20 5c 75 32 31 62 66 20 20 75 68 61 72  arl \u21bf  uhar
7f50: 72 20 5c 75 32 31 62 65 20 0a 09 75 68 62 6c 6b  r \u21be ..uhblk
7f60: 20 5c 75 32 35 38 30 20 20 75 6c 63 6f 72 6e 20   \u2580  ulcorn 
7f70: 5c 75 32 33 31 63 20 20 75 6c 63 6f 72 6e 65 72  \u231c  ulcorner
7f80: 20 5c 75 32 33 31 63 20 20 75 6c 63 72 6f 70 20   \u231c  ulcrop 
7f90: 5c 75 32 33 30 66 20 0a 09 75 6c 74 72 69 20 5c  \u230f ..ultri \
7fa0: 75 32 35 66 38 20 20 55 6d 61 63 72 20 5c 75 31  u25f8  Umacr \u1
7fb0: 36 61 20 20 75 6d 61 63 72 20 5c 75 31 36 62 20  6a  umacr \u16b 
7fc0: 20 55 6e 64 65 72 42 61 72 20 5c 75 35 66 20 0a   UnderBar \u5f .
7fd0: 09 55 6e 64 65 72 42 72 61 63 65 20 5c 75 32 33  .UnderBrace \u23
7fe0: 64 66 20 20 55 6e 64 65 72 42 72 61 63 6b 65 74  df  UnderBracket
7ff0: 20 5c 75 32 33 62 35 20 20 55 6e 64 65 72 50 61   \u23b5  UnderPa
8000: 72 65 6e 74 68 65 73 69 73 20 5c 75 32 33 64 64  renthesis \u23dd
8010: 20 0a 09 55 6e 69 6f 6e 20 5c 75 32 32 63 33 20   ..Union \u22c3 
8020: 20 55 6e 69 6f 6e 50 6c 75 73 20 5c 75 32 32 38   UnionPlus \u228
8030: 65 20 20 55 6f 67 6f 6e 20 5c 75 31 37 32 20 20  e  Uogon \u172  
8040: 75 6f 67 6f 6e 20 5c 75 31 37 33 20 0a 09 55 6f  uogon \u173 ..Uo
8050: 70 66 20 5c 75 64 38 33 35 5c 75 64 64 34 63 20  pf \ud835\udd4c 
8060: 20 75 6f 70 66 20 5c 75 64 38 33 35 5c 75 64 64   uopf \ud835\udd
8070: 36 36 20 20 55 70 41 72 72 6f 77 42 61 72 20 5c  66  UpArrowBar \
8080: 75 32 39 31 32 20 0a 09 75 70 61 72 72 6f 77 20  u2912 ..uparrow 
8090: 5c 75 32 31 39 31 20 20 55 70 41 72 72 6f 77 20  \u2191  UpArrow 
80a0: 5c 75 32 31 39 31 20 20 55 70 61 72 72 6f 77 20  \u2191  Uparrow 
80b0: 5c 75 32 31 64 31 20 0a 09 55 70 41 72 72 6f 77  \u21d1 ..UpArrow
80c0: 44 6f 77 6e 41 72 72 6f 77 20 5c 75 32 31 63 35  DownArrow \u21c5
80d0: 20 20 75 70 64 6f 77 6e 61 72 72 6f 77 20 5c 75    updownarrow \u
80e0: 32 31 39 35 20 20 55 70 44 6f 77 6e 41 72 72 6f  2195  UpDownArro
80f0: 77 20 5c 75 32 31 39 35 20 0a 09 55 70 64 6f 77  w \u2195 ..Updow
8100: 6e 61 72 72 6f 77 20 5c 75 32 31 64 35 20 20 55  narrow \u21d5  U
8110: 70 45 71 75 69 6c 69 62 72 69 75 6d 20 5c 75 32  pEquilibrium \u2
8120: 39 36 65 20 20 75 70 68 61 72 70 6f 6f 6e 6c 65  96e  upharpoonle
8130: 66 74 20 5c 75 32 31 62 66 20 0a 09 75 70 68 61  ft \u21bf ..upha
8140: 72 70 6f 6f 6e 72 69 67 68 74 20 5c 75 32 31 62  rpoonright \u21b
8150: 65 20 20 75 70 6c 75 73 20 5c 75 32 32 38 65 20  e  uplus \u228e 
8160: 20 55 70 70 65 72 4c 65 66 74 41 72 72 6f 77 20   UpperLeftArrow 
8170: 5c 75 32 31 39 36 20 0a 09 55 70 70 65 72 52 69  \u2196 ..UpperRi
8180: 67 68 74 41 72 72 6f 77 20 5c 75 32 31 39 37 20  ghtArrow \u2197 
8190: 20 75 70 73 69 20 5c 75 33 63 35 20 20 55 70 73   upsi \u3c5  Ups
81a0: 69 20 5c 75 33 64 32 20 20 55 70 54 65 65 41 72  i \u3d2  UpTeeAr
81b0: 72 6f 77 20 5c 75 32 31 61 35 20 0a 09 55 70 54  row \u21a5 ..UpT
81c0: 65 65 20 5c 75 32 32 61 35 20 20 75 70 75 70 61  ee \u22a5  upupa
81d0: 72 72 6f 77 73 20 5c 75 32 31 63 38 20 20 75 72  rrows \u21c8  ur
81e0: 63 6f 72 6e 20 5c 75 32 33 31 64 20 20 75 72 63  corn \u231d  urc
81f0: 6f 72 6e 65 72 20 5c 75 32 33 31 64 20 0a 09 75  orner \u231d ..u
8200: 72 63 72 6f 70 20 5c 75 32 33 30 65 20 20 55 72  rcrop \u230e  Ur
8210: 69 6e 67 20 5c 75 31 36 65 20 20 75 72 69 6e 67  ing \u16e  uring
8220: 20 5c 75 31 36 66 20 20 75 72 74 72 69 20 5c 75   \u16f  urtri \u
8230: 32 35 66 39 20 0a 09 55 73 63 72 20 5c 75 64 38  25f9 ..Uscr \ud8
8240: 33 35 5c 75 64 63 62 30 20 20 75 73 63 72 20 5c  35\udcb0  uscr \
8250: 75 64 38 33 35 5c 75 64 63 63 61 20 20 75 74 64  ud835\udcca  utd
8260: 6f 74 20 5c 75 32 32 66 30 20 20 55 74 69 6c 64  ot \u22f0  Utild
8270: 65 20 5c 75 31 36 38 20 0a 09 75 74 69 6c 64 65  e \u168 ..utilde
8280: 20 5c 75 31 36 39 20 20 75 74 72 69 20 5c 75 32   \u169  utri \u2
8290: 35 62 35 20 20 75 74 72 69 66 20 5c 75 32 35 62  5b5  utrif \u25b
82a0: 34 20 20 75 75 61 72 72 20 5c 75 32 31 63 38 20  4  uuarr \u21c8 
82b0: 0a 09 75 77 61 6e 67 6c 65 20 5c 75 32 39 61 37  ..uwangle \u29a7
82c0: 20 20 76 61 6e 67 72 74 20 5c 75 32 39 39 63 20    vangrt \u299c 
82d0: 20 76 61 72 65 70 73 69 6c 6f 6e 20 5c 75 33 66   varepsilon \u3f
82e0: 35 20 20 76 61 72 6b 61 70 70 61 20 5c 75 33 66  5  varkappa \u3f
82f0: 30 20 0a 09 76 61 72 6e 6f 74 68 69 6e 67 20 5c  0 ..varnothing \
8300: 75 32 32 30 35 20 20 76 61 72 70 68 69 20 5c 75  u2205  varphi \u
8310: 33 64 35 20 20 76 61 72 70 69 20 5c 75 33 64 36  3d5  varpi \u3d6
8320: 20 20 76 61 72 70 72 6f 70 74 6f 20 5c 75 32 32    varpropto \u22
8330: 31 64 20 0a 09 76 61 72 72 20 5c 75 32 31 39 35  1d ..varr \u2195
8340: 20 20 76 41 72 72 20 5c 75 32 31 64 35 20 20 76    vArr \u21d5  v
8350: 61 72 72 68 6f 20 5c 75 33 66 31 20 20 76 61 72  arrho \u3f1  var
8360: 73 69 67 6d 61 20 5c 75 33 63 32 20 0a 09 76 61  sigma \u3c2 ..va
8370: 72 73 75 62 73 65 74 6e 65 71 20 5c 75 32 32 38  rsubsetneq \u228
8380: 61 5c 75 66 65 30 30 20 20 76 61 72 73 75 62 73  a\ufe00  varsubs
8390: 65 74 6e 65 71 71 20 5c 75 32 61 63 62 5c 75 66  etneqq \u2acb\uf
83a0: 65 30 30 20 0a 09 76 61 72 73 75 70 73 65 74 6e  e00 ..varsupsetn
83b0: 65 71 20 5c 75 32 32 38 62 5c 75 66 65 30 30 20  eq \u228b\ufe00 
83c0: 20 76 61 72 73 75 70 73 65 74 6e 65 71 71 20 5c   varsupsetneqq \
83d0: 75 32 61 63 63 5c 75 66 65 30 30 20 0a 09 76 61  u2acc\ufe00 ..va
83e0: 72 74 68 65 74 61 20 5c 75 33 64 31 20 20 76 61  rtheta \u3d1  va
83f0: 72 74 72 69 61 6e 67 6c 65 6c 65 66 74 20 5c 75  rtriangleleft \u
8400: 32 32 62 32 20 20 76 61 72 74 72 69 61 6e 67 6c  22b2  vartriangl
8410: 65 72 69 67 68 74 20 5c 75 32 32 62 33 20 0a 09  eright \u22b3 ..
8420: 76 42 61 72 20 5c 75 32 61 65 38 20 20 56 62 61  vBar \u2ae8  Vba
8430: 72 20 5c 75 32 61 65 62 20 20 76 42 61 72 76 20  r \u2aeb  vBarv 
8440: 5c 75 32 61 65 39 20 20 56 63 79 20 5c 75 34 31  \u2ae9  Vcy \u41
8450: 32 20 20 76 63 79 20 5c 75 34 33 32 20 0a 09 76  2  vcy \u432 ..v
8460: 64 61 73 68 20 5c 75 32 32 61 32 20 20 76 44 61  dash \u22a2  vDa
8470: 73 68 20 5c 75 32 32 61 38 20 20 56 64 61 73 68  sh \u22a8  Vdash
8480: 20 5c 75 32 32 61 39 20 20 56 44 61 73 68 20 5c   \u22a9  VDash \
8490: 75 32 32 61 62 20 0a 09 56 64 61 73 68 6c 20 5c  u22ab ..Vdashl \
84a0: 75 32 61 65 36 20 20 76 65 65 62 61 72 20 5c 75  u2ae6  veebar \u
84b0: 32 32 62 62 20 20 76 65 65 20 5c 75 32 32 32 38  22bb  vee \u2228
84c0: 20 20 56 65 65 20 5c 75 32 32 63 31 20 0a 09 76    Vee \u22c1 ..v
84d0: 65 65 65 71 20 5c 75 32 32 35 61 20 20 76 65 6c  eeeq \u225a  vel
84e0: 6c 69 70 20 5c 75 32 32 65 65 20 20 76 65 72 62  lip \u22ee  verb
84f0: 61 72 20 5c 75 37 63 20 20 56 65 72 62 61 72 20  ar \u7c  Verbar 
8500: 5c 75 32 30 31 36 20 0a 09 76 65 72 74 20 5c 75  \u2016 ..vert \u
8510: 37 63 20 20 56 65 72 74 20 5c 75 32 30 31 36 20  7c  Vert \u2016 
8520: 20 56 65 72 74 69 63 61 6c 42 61 72 20 5c 75 32   VerticalBar \u2
8530: 32 32 33 20 20 56 65 72 74 69 63 61 6c 4c 69 6e  223  VerticalLin
8540: 65 20 5c 75 37 63 20 0a 09 56 65 72 74 69 63 61  e \u7c ..Vertica
8550: 6c 53 65 70 61 72 61 74 6f 72 20 5c 75 32 37 35  lSeparator \u275
8560: 38 20 20 56 65 72 74 69 63 61 6c 54 69 6c 64 65  8  VerticalTilde
8570: 20 5c 75 32 32 34 30 20 0a 09 56 65 72 79 54 68   \u2240 ..VeryTh
8580: 69 6e 53 70 61 63 65 20 5c 75 32 30 30 61 20 20  inSpace \u200a  
8590: 56 66 72 20 5c 75 64 38 33 35 5c 75 64 64 31 39  Vfr \ud835\udd19
85a0: 20 20 76 66 72 20 5c 75 64 38 33 35 5c 75 64 64    vfr \ud835\udd
85b0: 33 33 20 0a 09 76 6c 74 72 69 20 5c 75 32 32 62  33 ..vltri \u22b
85c0: 32 20 20 76 6e 73 75 62 20 5c 75 32 32 38 32 5c  2  vnsub \u2282\
85d0: 75 32 30 64 32 20 20 76 6e 73 75 70 20 5c 75 32  u20d2  vnsup \u2
85e0: 32 38 33 5c 75 32 30 64 32 20 0a 09 56 6f 70 66  283\u20d2 ..Vopf
85f0: 20 5c 75 64 38 33 35 5c 75 64 64 34 64 20 20 76   \ud835\udd4d  v
8600: 6f 70 66 20 5c 75 64 38 33 35 5c 75 64 64 36 37  opf \ud835\udd67
8610: 20 20 76 70 72 6f 70 20 5c 75 32 32 31 64 20 20    vprop \u221d  
8620: 76 72 74 72 69 20 5c 75 32 32 62 33 20 0a 09 56  vrtri \u22b3 ..V
8630: 73 63 72 20 5c 75 64 38 33 35 5c 75 64 63 62 31  scr \ud835\udcb1
8640: 20 20 76 73 63 72 20 5c 75 64 38 33 35 5c 75 64    vscr \ud835\ud
8650: 63 63 62 20 20 76 73 75 62 6e 45 20 5c 75 32 61  ccb  vsubnE \u2a
8660: 63 62 5c 75 66 65 30 30 20 0a 09 76 73 75 62 6e  cb\ufe00 ..vsubn
8670: 65 20 5c 75 32 32 38 61 5c 75 66 65 30 30 20 20  e \u228a\ufe00  
8680: 76 73 75 70 6e 45 20 5c 75 32 61 63 63 5c 75 66  vsupnE \u2acc\uf
8690: 65 30 30 20 20 76 73 75 70 6e 65 20 5c 75 32 32  e00  vsupne \u22
86a0: 38 62 5c 75 66 65 30 30 20 0a 09 56 76 64 61 73  8b\ufe00 ..Vvdas
86b0: 68 20 5c 75 32 32 61 61 20 20 76 7a 69 67 7a 61  h \u22aa  vzigza
86c0: 67 20 5c 75 32 39 39 61 20 20 57 63 69 72 63 20  g \u299a  Wcirc 
86d0: 5c 75 31 37 34 20 20 77 63 69 72 63 20 5c 75 31  \u174  wcirc \u1
86e0: 37 35 20 0a 09 77 65 64 62 61 72 20 5c 75 32 61  75 ..wedbar \u2a
86f0: 35 66 20 20 77 65 64 67 65 20 5c 75 32 32 32 37  5f  wedge \u2227
8700: 20 20 57 65 64 67 65 20 5c 75 32 32 63 30 20 20    Wedge \u22c0  
8710: 77 65 64 67 65 71 20 5c 75 32 32 35 39 20 0a 09  wedgeq \u2259 ..
8720: 57 66 72 20 5c 75 64 38 33 35 5c 75 64 64 31 61  Wfr \ud835\udd1a
8730: 20 20 77 66 72 20 5c 75 64 38 33 35 5c 75 64 64    wfr \ud835\udd
8740: 33 34 20 20 57 6f 70 66 20 5c 75 64 38 33 35 5c  34  Wopf \ud835\
8750: 75 64 64 34 65 20 0a 09 77 6f 70 66 20 5c 75 64  udd4e ..wopf \ud
8760: 38 33 35 5c 75 64 64 36 38 20 20 77 70 20 5c 75  835\udd68  wp \u
8770: 32 31 31 38 20 20 77 72 20 5c 75 32 32 34 30 20  2118  wr \u2240 
8780: 20 77 72 65 61 74 68 20 5c 75 32 32 34 30 20 0a   wreath \u2240 .
8790: 09 57 73 63 72 20 5c 75 64 38 33 35 5c 75 64 63  .Wscr \ud835\udc
87a0: 62 32 20 20 77 73 63 72 20 5c 75 64 38 33 35 5c  b2  wscr \ud835\
87b0: 75 64 63 63 63 20 20 78 63 61 70 20 5c 75 32 32  udccc  xcap \u22
87c0: 63 32 20 20 78 63 69 72 63 20 5c 75 32 35 65 66  c2  xcirc \u25ef
87d0: 20 0a 09 78 63 75 70 20 5c 75 32 32 63 33 20 20   ..xcup \u22c3  
87e0: 78 64 74 72 69 20 5c 75 32 35 62 64 20 20 58 66  xdtri \u25bd  Xf
87f0: 72 20 5c 75 64 38 33 35 5c 75 64 64 31 62 20 20  r \ud835\udd1b  
8800: 78 66 72 20 5c 75 64 38 33 35 5c 75 64 64 33 35  xfr \ud835\udd35
8810: 20 0a 09 78 68 61 72 72 20 5c 75 32 37 66 37 20   ..xharr \u27f7 
8820: 20 78 68 41 72 72 20 5c 75 32 37 66 61 20 20 78   xhArr \u27fa  x
8830: 6c 61 72 72 20 5c 75 32 37 66 35 20 20 78 6c 41  larr \u27f5  xlA
8840: 72 72 20 5c 75 32 37 66 38 20 0a 09 78 6d 61 70  rr \u27f8 ..xmap
8850: 20 5c 75 32 37 66 63 20 20 78 6e 69 73 20 5c 75   \u27fc  xnis \u
8860: 32 32 66 62 20 20 78 6f 64 6f 74 20 5c 75 32 61  22fb  xodot \u2a
8870: 30 30 20 20 58 6f 70 66 20 5c 75 64 38 33 35 5c  00  Xopf \ud835\
8880: 75 64 64 34 66 20 0a 09 78 6f 70 66 20 5c 75 64  udd4f ..xopf \ud
8890: 38 33 35 5c 75 64 64 36 39 20 20 78 6f 70 6c 75  835\udd69  xoplu
88a0: 73 20 5c 75 32 61 30 31 20 20 78 6f 74 69 6d 65  s \u2a01  xotime
88b0: 20 5c 75 32 61 30 32 20 20 78 72 61 72 72 20 5c   \u2a02  xrarr \
88c0: 75 32 37 66 36 20 0a 09 78 72 41 72 72 20 5c 75  u27f6 ..xrArr \u
88d0: 32 37 66 39 20 20 58 73 63 72 20 5c 75 64 38 33  27f9  Xscr \ud83
88e0: 35 5c 75 64 63 62 33 20 20 78 73 63 72 20 5c 75  5\udcb3  xscr \u
88f0: 64 38 33 35 5c 75 64 63 63 64 20 20 78 73 71 63  d835\udccd  xsqc
8900: 75 70 20 5c 75 32 61 30 36 20 0a 09 78 75 70 6c  up \u2a06 ..xupl
8910: 75 73 20 5c 75 32 61 30 34 20 20 78 75 74 72 69  us \u2a04  xutri
8920: 20 5c 75 32 35 62 33 20 20 78 76 65 65 20 5c 75   \u25b3  xvee \u
8930: 32 32 63 31 20 20 78 77 65 64 67 65 20 5c 75 32  22c1  xwedge \u2
8940: 32 63 30 20 0a 09 59 41 63 79 20 5c 75 34 32 66  2c0 ..YAcy \u42f
8950: 20 20 79 61 63 79 20 5c 75 34 34 66 20 20 59 63    yacy \u44f  Yc
8960: 69 72 63 20 5c 75 31 37 36 20 20 79 63 69 72 63  irc \u176  ycirc
8970: 20 5c 75 31 37 37 20 20 59 63 79 20 5c 75 34 32   \u177  Ycy \u42
8980: 62 20 0a 09 79 63 79 20 5c 75 34 34 62 20 20 59  b ..ycy \u44b  Y
8990: 66 72 20 5c 75 64 38 33 35 5c 75 64 64 31 63 20  fr \ud835\udd1c 
89a0: 20 79 66 72 20 5c 75 64 38 33 35 5c 75 64 64 33   yfr \ud835\udd3
89b0: 36 20 20 59 49 63 79 20 5c 75 34 30 37 20 0a 09  6  YIcy \u407 ..
89c0: 79 69 63 79 20 5c 75 34 35 37 20 20 59 6f 70 66  yicy \u457  Yopf
89d0: 20 5c 75 64 38 33 35 5c 75 64 64 35 30 20 20 79   \ud835\udd50  y
89e0: 6f 70 66 20 5c 75 64 38 33 35 5c 75 64 64 36 61  opf \ud835\udd6a
89f0: 20 0a 09 59 73 63 72 20 5c 75 64 38 33 35 5c 75   ..Yscr \ud835\u
8a00: 64 63 62 34 20 20 79 73 63 72 20 5c 75 64 38 33  dcb4  yscr \ud83
8a10: 35 5c 75 64 63 63 65 20 20 59 55 63 79 20 5c 75  5\udcce  YUcy \u
8a20: 34 32 65 20 20 79 75 63 79 20 5c 75 34 34 65 20  42e  yucy \u44e 
8a30: 0a 09 5a 61 63 75 74 65 20 5c 75 31 37 39 20 20  ..Zacute \u179  
8a40: 7a 61 63 75 74 65 20 5c 75 31 37 61 20 20 5a 63  zacute \u17a  Zc
8a50: 61 72 6f 6e 20 5c 75 31 37 64 20 20 7a 63 61 72  aron \u17d  zcar
8a60: 6f 6e 20 5c 75 31 37 65 20 20 5a 63 79 20 5c 75  on \u17e  Zcy \u
8a70: 34 31 37 20 0a 09 7a 63 79 20 5c 75 34 33 37 20  417 ..zcy \u437 
8a80: 20 5a 64 6f 74 20 5c 75 31 37 62 20 20 7a 64 6f   Zdot \u17b  zdo
8a90: 74 20 5c 75 31 37 63 20 20 7a 65 65 74 72 66 20  t \u17c  zeetrf 
8aa0: 5c 75 32 31 32 38 20 0a 09 5a 65 72 6f 57 69 64  \u2128 ..ZeroWid
8ab0: 74 68 53 70 61 63 65 20 5c 75 32 30 30 62 20 20  thSpace \u200b  
8ac0: 7a 66 72 20 5c 75 64 38 33 35 5c 75 64 64 33 37  zfr \ud835\udd37
8ad0: 20 20 5a 66 72 20 5c 75 32 31 32 38 20 20 5a 48    Zfr \u2128  ZH
8ae0: 63 79 20 5c 75 34 31 36 20 0a 09 7a 68 63 79 20  cy \u416 ..zhcy 
8af0: 5c 75 34 33 36 20 20 7a 69 67 72 61 72 72 20 5c  \u436  zigrarr \
8b00: 75 32 31 64 64 20 20 7a 6f 70 66 20 5c 75 64 38  u21dd  zopf \ud8
8b10: 33 35 5c 75 64 64 36 62 20 20 5a 6f 70 66 20 5c  35\udd6b  Zopf \
8b20: 75 32 31 32 34 20 0a 09 5a 73 63 72 20 5c 75 64  u2124 ..Zscr \ud
8b30: 38 33 35 5c 75 64 63 62 35 20 20 7a 73 63 72 20  835\udcb5  zscr 
8b40: 5c 75 64 38 33 35 5c 75 64 63 63 66 0a 20 20 20  \ud835\udccf.   
8b50: 20 7d 0a 0a 20 20 20 20 23 20 49 6e 74 65 72 6e   }..    # Intern
8b60: 61 6c 20 63 61 63 68 65 20 66 6f 72 20 74 68 65  al cache for the
8b70: 20 66 6f 72 65 61 63 68 20 76 61 72 69 61 62 6c   foreach variabl
8b80: 65 2d 6c 69 73 74 73 20 61 6e 64 20 74 68 65 0a  e-lists and the.
8b90: 20 20 20 20 23 20 73 75 62 73 74 69 74 75 74 69      # substituti
8ba0: 6f 6e 20 73 74 72 69 6e 67 73 20 75 73 65 64 20  on strings used 
8bb0: 74 6f 20 73 70 6c 69 74 20 61 20 48 54 4d 4c 20  to split a HTML 
8bc0: 73 74 72 69 6e 67 20 69 6e 74 6f 0a 20 20 20 20  string into.    
8bd0: 23 20 69 6e 63 72 65 6d 65 6e 74 61 6c 6c 79 20  # incrementally 
8be0: 68 61 6e 64 6c 65 61 62 6c 65 20 73 63 72 69 70  handleable scrip
8bf0: 74 73 2e 20 54 68 69 73 20 73 68 6f 75 6c 64 20  ts. This should 
8c00: 72 65 64 75 63 65 20 74 68 65 0a 20 20 20 20 23  reduce the.    #
8c10: 20 74 69 6d 65 20 63 6f 6d 70 75 74 65 20 74 68   time compute th
8c20: 69 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66  is information f
8c30: 6f 72 20 72 65 70 65 61 74 65 64 20 63 61 6c 6c  or repeated call
8c40: 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 0a  s with the same.
8c50: 20 20 20 20 23 20 73 70 6c 69 74 2d 66 61 63 74      # split-fact
8c60: 6f 72 2e 20 54 68 65 20 61 72 72 61 79 20 69 73  or. The array is
8c70: 20 69 6e 64 65 78 65 64 20 62 79 20 61 20 63 6f   indexed by a co
8c80: 6d 62 69 6e 61 74 69 6f 6e 20 6f 66 20 74 68 65  mbination of the
8c90: 0a 20 20 20 20 23 20 6e 75 6d 65 72 69 63 61 6c  .    # numerical
8ca0: 20 73 70 6c 69 74 20 66 61 63 74 6f 72 20 61 6e   split factor an
8cb0: 64 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20  d the length of 
8cc0: 74 68 65 20 63 6f 6d 6d 61 6e 64 20 70 72 65 66  the command pref
8cd0: 69 78 20 61 6e 64 0a 20 20 20 20 23 20 6d 61 70  ix and.    # map
8ce0: 73 20 74 68 69 73 20 74 6f 20 61 20 32 2d 65 6c  s this to a 2-el
8cf0: 65 6d 65 6e 74 20 6c 69 73 74 20 63 6f 6e 74 61  ement list conta
8d00: 69 6e 69 6e 67 20 76 61 72 69 61 62 6c 65 2d 20  ining variable- 
8d10: 61 6e 64 0a 20 20 20 20 23 20 73 75 62 73 74 2d  and.    # subst-
8d20: 73 74 72 69 6e 67 2e 0a 0a 20 20 20 20 76 61 72  string...    var
8d30: 69 61 62 6c 65 20 20 73 70 6c 69 74 64 61 74 61  iable  splitdata
8d40: 0a 20 20 20 20 61 72 72 61 79 20 73 65 74 20 73  .    array set s
8d50: 70 6c 69 74 64 61 74 61 20 7b 7d 0a 0a 7d 0a 0a  plitdata {}..}..
8d60: 23 20 68 74 6d 6c 70 61 72 73 65 3a 3a 70 61 72  # htmlparse::par
8d70: 73 65 20 2d 2d 0a 23 0a 23 09 54 68 69 73 20 63  se --.#.#.This c
8d80: 6f 6d 6d 61 6e 64 20 69 73 20 74 68 65 20 62 61  ommand is the ba
8d90: 73 69 63 20 70 61 72 73 65 72 20 66 6f 72 20 48  sic parser for H
8da0: 54 4d 4c 2e 20 49 74 20 74 61 6b 65 73 20 61 20  TML. It takes a 
8db0: 48 54 4d 4c 0a 23 09 73 74 72 69 6e 67 2c 20 70  HTML.#.string, p
8dc0: 61 72 73 65 73 20 69 74 20 61 6e 64 20 69 6e 76  arses it and inv
8dd0: 6f 6b 65 73 20 61 20 63 6f 6d 6d 61 6e 64 20 70  okes a command p
8de0: 72 65 66 69 78 20 66 6f 72 20 65 76 65 72 79 20  refix for every 
8df0: 74 61 67 0a 23 09 65 6e 63 6f 75 6e 74 65 72 65  tag.#.encountere
8e00: 64 2e 20 49 74 20 69 73 20 6e 6f 74 20 6e 65 63  d. It is not nec
8e10: 65 73 73 61 72 79 20 66 6f 72 20 74 68 65 20 48  essary for the H
8e20: 54 4d 4c 20 74 6f 20 62 65 20 76 61 6c 69 64 20  TML to be valid 
8e30: 66 6f 72 0a 23 09 74 68 69 73 20 70 61 72 73 65  for.#.this parse
8e40: 72 20 74 6f 20 66 75 6e 63 74 69 6f 6e 2e 20 49  r to function. I
8e50: 74 20 69 73 20 74 68 65 20 72 65 73 70 6f 6e 73  t is the respons
8e60: 69 62 69 6c 69 74 79 20 6f 66 20 74 68 65 0a 23  ibility of the.#
8e70: 09 63 6f 6d 6d 61 6e 64 20 69 6e 76 6f 6b 65 64  .command invoked
8e80: 20 66 6f 72 20 65 76 65 72 79 20 74 61 67 20 74   for every tag t
8e90: 6f 20 63 68 65 63 6b 20 74 68 69 73 2e 20 41 6e  o check this. An
8ea0: 6f 74 68 65 72 0a 23 09 72 65 73 70 6f 6e 73 69  other.#.responsi
8eb0: 62 69 6c 69 74 79 20 6f 66 20 74 68 65 20 69 6e  bility of the in
8ec0: 76 6f 6b 65 64 20 63 6f 6d 6d 61 6e 64 20 69 73  voked command is
8ed0: 20 74 68 65 20 68 61 6e 64 6c 69 6e 67 20 6f 66   the handling of
8ee0: 20 74 61 67 0a 23 09 61 74 74 72 69 62 75 74 65   tag.#.attribute
8ef0: 73 20 61 6e 64 20 63 68 61 72 61 63 74 65 72 20  s and character 
8f00: 65 6e 74 69 74 69 65 73 20 28 65 73 63 61 70 65  entities (escape
8f10: 64 20 63 68 61 72 61 63 74 65 72 73 29 2e 20 54  d characters). T
8f20: 68 65 0a 23 09 70 61 72 73 65 72 20 70 72 6f 76  he.#.parser prov
8f30: 69 64 65 73 20 74 68 65 20 75 6e 2d 69 6e 74 65  ides the un-inte
8f40: 72 70 72 65 74 65 64 20 74 61 67 20 61 74 74 72  rpreted tag attr
8f50: 69 62 75 74 65 73 20 74 6f 20 74 68 65 0a 23 09  ibutes to the.#.
8f60: 69 6e 76 6f 6b 65 64 20 63 6f 6d 6d 61 6e 64 20  invoked command 
8f70: 74 6f 20 61 69 64 20 69 6e 20 74 68 65 20 66 6f  to aid in the fo
8f80: 72 6d 65 72 2c 20 61 6e 64 20 74 68 65 20 70 61  rmer, and the pa
8f90: 63 6b 61 67 65 20 61 74 20 6c 61 72 67 65 0a 23  ckage at large.#
8fa0: 09 70 72 6f 76 69 64 65 73 20 61 20 68 65 6c 70  .provides a help
8fb0: 65 72 20 63 6f 6d 6d 61 6e 64 2c 20 27 3a 3a 68  er command, '::h
8fc0: 74 6d 6c 70 61 72 73 65 3a 3a 6d 61 70 45 73 63  tmlparse::mapEsc
8fd0: 61 70 65 73 27 2c 20 74 6f 20 61 69 64 0a 23 09  apes', to aid.#.
8fe0: 69 6e 20 74 68 65 20 68 61 6e 64 6c 69 6e 67 20  in the handling 
8ff0: 6f 66 20 74 68 65 20 6c 61 74 74 65 72 2e 20 54  of the latter. T
9000: 68 65 20 70 61 72 73 65 72 20 2a 64 6f 65 73 2a  he parser *does*
9010: 20 69 67 6e 6f 72 65 0a 23 09 6c 65 61 64 69 6e   ignore.#.leadin
9020: 67 20 44 4f 43 54 59 50 45 20 64 65 63 6c 61 72  g DOCTYPE declar
9030: 61 74 69 6f 6e 73 20 61 6e 64 20 61 6c 6c 20 76  ations and all v
9040: 61 6c 69 64 20 48 54 4d 4c 20 63 6f 6d 6d 65 6e  alid HTML commen
9050: 74 73 20 69 74 0a 23 09 65 6e 63 6f 75 6e 74 65  ts it.#.encounte
9060: 72 73 2e 0a 23 0a 23 09 41 6c 6c 20 69 6e 66 6f  rs..#.#.All info
9070: 72 6d 61 74 69 6f 6e 20 62 65 79 6f 6e 64 20 74  rmation beyond t
9080: 68 65 20 48 54 4d 4c 20 73 74 72 69 6e 67 20 69  he HTML string i
9090: 74 73 65 6c 66 20 69 73 20 73 70 65 63 69 66 69  tself is specifi
90a0: 65 64 20 76 69 61 0a 23 09 6f 70 74 69 6f 6e 73  ed via.#.options
90b0: 2c 20 74 68 65 73 65 20 61 72 65 20 65 78 70 6c  , these are expl
90c0: 61 69 6e 65 64 20 62 65 6c 6f 77 2e 0a 23 0a 23  ained below..#.#
90d0: 09 54 6f 20 68 65 6c 70 20 75 6e 64 65 72 73 74  .To help underst
90e0: 61 6e 64 69 6e 67 20 74 68 65 20 6f 70 74 69 6f  anding the optio
90f0: 6e 73 20 73 6f 6d 65 20 6d 6f 72 65 20 62 61 63  ns some more bac
9100: 6b 67 72 6f 75 6e 64 0a 23 09 69 6e 66 6f 72 6d  kground.#.inform
9110: 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20  ation about the 
9120: 70 61 72 73 65 72 2e 0a 23 0a 23 09 49 74 20 69  parser..#.#.It i
9130: 73 20 63 61 70 61 62 6c 65 20 74 6f 20 64 65 74  s capable to det
9140: 65 63 74 20 69 6e 63 6f 6d 70 6c 65 74 65 20 74  ect incomplete t
9150: 61 67 73 20 69 6e 20 74 68 65 20 48 54 4d 4c 20  ags in the HTML 
9160: 73 74 72 69 6e 67 0a 23 09 67 69 76 65 6e 20 74  string.#.given t
9170: 6f 20 69 74 2e 20 55 6e 64 65 72 20 6e 6f 72 6d  o it. Under norm
9180: 61 6c 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73  al circumstances
9190: 20 74 68 69 73 20 77 69 6c 6c 20 63 61 75 73 65   this will cause
91a0: 20 74 68 65 0a 23 09 70 61 72 73 65 72 20 74 6f   the.#.parser to
91b0: 20 74 68 72 6f 77 20 61 6e 20 65 72 72 6f 72 2c   throw an error,
91c0: 20 62 75 74 20 69 66 20 74 68 65 20 6f 70 74 69   but if the opti
91d0: 6f 6e 20 27 2d 69 6e 63 76 61 72 27 20 69 73 20  on '-incvar' is 
91e0: 75 73 65 64 0a 23 09 74 6f 20 73 70 65 63 69 66  used.#.to specif
91f0: 79 20 61 20 67 6c 6f 62 61 6c 20 28 6f 72 20 6e  y a global (or n
9200: 61 6d 65 73 70 61 63 65 29 20 76 61 72 69 61 62  amespace) variab
9210: 6c 65 20 74 68 65 20 70 61 72 73 65 72 20 77 69  le the parser wi
9220: 6c 6c 0a 23 09 73 74 6f 72 65 20 74 68 65 20 69  ll.#.store the i
9230: 6e 63 6f 6d 70 6c 65 74 65 20 70 61 72 74 20 6f  ncomplete part o
9240: 66 20 74 68 65 20 69 6e 70 75 74 20 69 6e 74 6f  f the input into
9250: 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 0a 23   this variable.#
9260: 09 69 6e 73 74 65 61 64 2e 20 54 68 69 73 20 77  .instead. This w
9270: 69 6c 6c 20 61 69 64 20 67 72 65 61 74 6c 79 20  ill aid greatly 
9280: 69 6e 20 74 68 65 20 68 61 6e 64 6c 69 6e 67 20  in the handling 
9290: 6f 66 0a 23 09 69 6e 63 72 65 6d 65 6e 74 61 6c  of.#.incremental
92a0: 6c 79 20 61 72 72 69 76 69 6e 67 20 48 54 4d 4c  ly arriving HTML
92b0: 20 61 73 20 74 68 65 20 70 61 72 73 65 72 20 77   as the parser w
92c0: 69 6c 6c 20 68 61 6e 64 6c 65 20 77 68 61 74 65  ill handle whate
92d0: 76 65 72 0a 23 09 68 65 20 63 61 6e 20 61 6e 64  ver.#.he can and
92e0: 20 64 65 66 65 72 20 74 68 65 20 68 61 6e 64 6c   defer the handl
92f0: 69 6e 67 20 6f 66 20 74 68 65 20 69 6e 63 6f 6d  ing of the incom
9300: 70 6c 65 74 65 20 70 61 72 74 20 75 6e 74 69 6c  plete part until
9310: 0a 23 09 6d 6f 72 65 20 64 61 74 61 20 68 61 73  .#.more data has
9320: 20 61 72 72 69 76 65 64 2e 0a 23 0a 23 09 41 6e   arrived..#.#.An
9330: 6f 74 68 65 72 20 66 65 61 74 75 72 65 20 6f 66  other feature of
9340: 20 74 68 65 20 70 61 72 73 65 72 20 61 72 65 20   the parser are 
9350: 69 74 73 20 74 77 6f 20 70 6f 73 73 69 62 6c 65  its two possible
9360: 20 6d 6f 64 65 73 20 6f 66 0a 23 09 6f 70 65 72   modes of.#.oper
9370: 61 74 69 6f 6e 2e 20 54 68 65 20 6e 6f 72 6d 61  ation. The norma
9380: 6c 20 6d 6f 64 65 20 69 73 20 61 63 74 69 76 61  l mode is activa
9390: 74 65 64 20 69 66 20 74 68 65 20 6f 70 74 69 6f  ted if the optio
93a0: 6e 20 27 2d 71 75 65 75 65 27 0a 23 09 69 73 20  n '-queue'.#.is 
93b0: 6e 6f 74 20 70 72 65 73 65 6e 74 20 6f 6e 20 74  not present on t
93c0: 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20  he command line 
93d0: 69 6e 76 6f 6b 69 6e 67 20 74 68 65 20 70 61 72  invoking the par
93e0: 73 65 72 2e 20 49 66 20 69 74 0a 23 09 69 73 20  ser. If it.#.is 
93f0: 70 72 65 73 65 6e 74 20 74 68 65 20 70 61 72 73  present the pars
9400: 65 72 20 77 69 6c 6c 20 67 6f 20 69 6e 74 6f 20  er will go into 
9410: 74 68 65 20 69 6e 63 72 65 6d 65 6e 74 61 6c 20  the incremental 
9420: 6d 6f 64 65 20 69 6e 73 74 65 61 64 2e 0a 23 0a  mode instead..#.
9430: 23 09 54 68 65 20 6d 61 69 6e 20 64 69 66 66 65  #.The main diffe
9440: 72 65 6e 63 65 20 69 73 20 74 68 61 74 20 61 20  rence is that a 
9450: 70 61 72 73 65 72 20 69 6e 20 6e 6f 72 6d 61 6c  parser in normal
9460: 20 6d 6f 64 65 20 77 69 6c 6c 0a 23 09 69 6d 6d   mode will.#.imm
9470: 65 64 69 61 74 65 6c 79 20 69 6e 76 6f 6b 65 20  ediately invoke 
9480: 74 68 65 20 63 6f 6d 6d 61 6e 64 20 70 72 65 66  the command pref
9490: 69 78 20 66 6f 72 20 65 61 63 68 20 74 61 67 20  ix for each tag 
94a0: 69 74 0a 23 09 65 6e 63 6f 75 6e 74 65 72 73 2e  it.#.encounters.
94b0: 20 49 6e 20 69 6e 63 72 65 6d 65 6e 74 61 6c 20   In incremental 
94c0: 6d 6f 64 65 20 68 6f 77 65 76 65 72 20 74 68 65  mode however the
94d0: 20 70 61 72 73 65 72 20 77 69 6c 6c 0a 23 09 67   parser will.#.g
94e0: 65 6e 65 72 61 74 65 20 61 20 6e 75 6d 62 65 72  enerate a number
94f0: 20 6f 66 20 73 63 72 69 70 74 73 20 77 68 69 63   of scripts whic
9500: 68 20 69 6e 76 6f 6b 65 20 74 68 65 20 63 6f 6d  h invoke the com
9510: 6d 61 6e 64 20 70 72 65 66 69 78 0a 23 09 66 6f  mand prefix.#.fo
9520: 72 20 67 72 6f 75 70 73 20 6f 66 20 74 61 67 73  r groups of tags
9530: 20 69 6e 20 74 68 65 20 48 54 4d 4c 20 73 74 72   in the HTML str
9540: 69 6e 67 20 61 6e 64 20 74 68 65 6e 20 73 74 6f  ing and then sto
9550: 72 65 20 74 68 65 73 65 0a 23 09 73 63 72 69 70  re these.#.scrip
9560: 74 73 20 69 6e 20 74 68 65 20 73 70 65 63 69 66  ts in the specif
9570: 69 65 64 20 71 75 65 75 65 2e 20 49 74 20 69 73  ied queue. It is
9580: 20 74 68 65 6e 20 74 68 65 20 72 65 73 70 6f 6e   then the respon
9590: 73 69 62 69 6c 69 74 79 0a 23 09 6f 66 20 74 68  sibility.#.of th
95a0: 65 20 63 61 6c 6c 65 72 20 6f 66 20 74 68 65 20  e caller of the 
95b0: 70 61 72 73 65 72 20 74 6f 20 65 6e 73 75 72 65  parser to ensure
95c0: 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f   the execution o
95d0: 66 20 74 68 65 0a 23 09 73 63 72 69 70 74 73 20  f the.#.scripts 
95e0: 69 6e 20 74 68 65 20 71 75 65 75 65 2e 0a 23 0a  in the queue..#.
95f0: 23 09 4e 6f 74 65 3a 20 54 68 65 20 71 75 65 75  #.Note: The queu
9600: 65 20 6f 62 6a 65 63 63 74 20 67 69 76 65 6e 20  e objecct given 
9610: 74 6f 20 74 68 65 20 70 61 72 73 65 72 20 68 61  to the parser ha
9620: 73 20 74 6f 20 70 72 6f 76 69 64 65 20 74 68 65  s to provide the
9630: 0a 23 09 73 61 6d 65 20 69 6e 74 65 72 66 61 63  .#.same interfac
9640: 65 20 61 73 20 74 68 65 20 71 75 65 75 65 20 64  e as the queue d
9650: 65 66 69 6e 65 64 20 69 6e 20 74 63 6c 6c 69 62  efined in tcllib
9660: 20 2d 3e 20 73 74 72 75 63 74 2e 20 54 68 69 73   -> struct. This
9670: 0a 23 09 64 6f 65 73 20 66 6f 72 20 65 78 61 6d  .#.does for exam
9680: 70 6c 65 20 6d 65 61 6e 20 74 68 61 74 20 61 6c  ple mean that al
9690: 6c 20 71 75 65 75 65 73 20 63 72 65 61 74 65 64  l queues created
96a0: 20 76 69 61 20 74 68 61 74 20 70 61 72 74 20 6f   via that part o
96b0: 66 0a 23 09 74 63 6c 6c 69 62 20 63 61 6e 20 62  f.#.tcllib can b
96c0: 65 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 75 73  e immediately us
96d0: 65 64 20 68 65 72 65 2e 20 53 74 69 6c 6c 2c 20  ed here. Still, 
96e0: 74 68 65 20 71 75 65 75 65 20 64 6f 65 73 6e 27  the queue doesn'
96f0: 74 0a 23 09 68 61 76 65 20 74 6f 20 63 6f 6d 65  t.#.have to come
9700: 20 66 72 6f 6d 20 74 63 6c 6c 69 62 20 2d 3e 20   from tcllib -> 
9710: 73 74 72 75 63 74 20 61 73 20 6c 6f 6e 67 20 61  struct as long a
9720: 73 20 74 68 65 20 73 61 6d 65 0a 23 09 69 6e 74  s the same.#.int
9730: 65 72 66 61 63 65 20 69 73 20 70 72 6f 76 69 64  erface is provid
9740: 65 64 2e 0a 23 0a 23 09 49 6e 20 62 6f 74 68 20  ed..#.#.In both 
9750: 6d 6f 64 65 73 20 74 68 65 20 70 61 72 73 65 72  modes the parser
9760: 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 61 6e 20   will return an 
9770: 65 6d 70 74 79 20 73 74 72 69 6e 67 20 74 6f 20  empty string to 
9780: 74 68 65 0a 23 09 63 61 6c 6c 65 72 2e 0a 23 0a  the.#.caller..#.
9790: 23 09 54 6f 20 61 20 70 61 72 73 65 72 20 69 6e  #.To a parser in
97a0: 20 69 6e 63 72 65 6d 65 6e 74 61 6c 20 6d 6f 64   incremental mod
97b0: 65 20 74 68 65 20 6f 70 74 69 6f 6e 20 27 2d 73  e the option '-s
97c0: 70 6c 69 74 27 20 63 61 6e 20 62 65 0a 23 09 67  plit' can be.#.g
97d0: 69 76 65 6e 20 61 6e 64 20 77 69 6c 6c 20 73 70  iven and will sp
97e0: 65 63 69 66 79 20 74 68 65 20 73 69 7a 65 20 6f  ecify the size o
97f0: 66 20 74 68 65 20 67 72 6f 75 70 73 20 68 65 20  f the groups he 
9800: 63 72 65 61 74 65 73 2e 20 49 6e 0a 23 09 6f 74  creates. In.#.ot
9810: 68 65 72 20 77 6f 72 64 73 2c 20 2d 73 70 6c 69  her words, -spli
9820: 74 20 35 20 6d 65 61 6e 73 20 74 68 61 74 20 65  t 5 means that e
9830: 61 63 68 20 6f 66 20 74 68 65 20 67 65 6e 65 72  ach of the gener
9840: 61 74 65 64 20 73 63 72 69 70 74 73 0a 23 09 77  ated scripts.#.w
9850: 69 6c 6c 20 69 6e 76 6f 6b 65 20 74 68 65 20 63  ill invoke the c
9860: 6f 6d 6d 61 6e 64 20 70 72 65 66 69 78 20 66 6f  ommand prefix fo
9870: 72 20 35 20 63 6f 6e 73 65 63 75 74 69 76 65 20  r 5 consecutive 
9880: 74 61 67 73 20 69 6e 20 74 68 65 0a 23 09 48 54  tags in the.#.HT
9890: 4d 4c 20 73 74 72 69 6e 67 2e 20 41 20 70 61 72  ML string. A par
98a0: 73 65 72 20 69 6e 20 6e 6f 72 6d 61 6c 20 6d 6f  ser in normal mo
98b0: 64 65 20 77 69 6c 6c 20 69 67 6e 6f 72 65 20 74  de will ignore t
98c0: 68 69 73 20 6f 70 74 69 6f 6e 0a 23 09 61 6e 64  his option.#.and
98d0: 20 69 74 73 20 76 61 6c 75 65 2e 0a 23 0a 23 09   its value..#.#.
98e0: 54 68 65 20 6f 70 74 69 6f 6e 20 27 2d 76 72 6f  The option '-vro
98f0: 6f 74 27 20 73 70 65 63 69 66 69 65 73 20 61 20  ot' specifies a 
9900: 76 69 72 74 75 61 6c 20 72 6f 6f 74 20 74 61 67  virtual root tag
9910: 2e 20 41 20 70 61 72 73 65 72 20 69 6e 0a 23 09  . A parser in.#.
9920: 6e 6f 72 6d 61 6c 20 6d 6f 64 65 20 77 69 6c 6c  normal mode will
9930: 20 69 6e 76 6f 6b 65 20 74 68 65 20 63 6f 6d 6d   invoke the comm
9940: 61 6e 64 20 70 72 65 66 69 78 20 66 6f 72 20 69  and prefix for i
9950: 74 20 69 6d 6d 65 64 69 61 74 65 6c 79 0a 23 09  t immediately.#.
9960: 62 65 66 6f 72 65 20 61 6e 64 20 61 66 74 65 72  before and after
9970: 20 68 65 20 70 72 6f 63 65 73 73 65 73 20 74 68   he processes th
9980: 65 20 74 61 67 73 20 69 6e 20 74 68 65 20 48 54  e tags in the HT
9990: 4d 4c 2c 20 74 68 75 73 0a 23 09 73 69 6d 75 6c  ML, thus.#.simul
99a0: 61 74 69 6e 67 20 74 68 61 74 20 74 68 65 20 48  ating that the H
99b0: 54 4d 4c 20 73 74 72 69 6e 67 20 69 73 20 65 6e  TML string is en
99c0: 63 6c 6f 73 65 64 20 69 6e 20 61 20 3c 76 72 6f  closed in a <vro
99d0: 6f 74 3e 0a 23 09 3c 2f 76 72 6f 6f 74 3e 20 63  ot>.#.</vroot> c
99e0: 6f 6d 62 69 6e 61 74 69 6f 6e 2e 20 49 6e 20 69  ombination. In i
99f0: 6e 63 72 65 6d 65 6e 74 61 6c 20 6d 6f 64 65 20  ncremental mode 
9a00: 68 6f 77 65 76 65 72 20 74 68 65 20 70 61 72 73  however the pars
9a10: 65 72 0a 23 09 69 73 20 75 6e 61 62 6c 65 20 74  er.#.is unable t
9a20: 6f 20 70 72 6f 76 69 64 65 20 74 68 65 20 63 6c  o provide the cl
9a30: 6f 73 69 6e 67 20 76 69 72 74 75 61 6c 20 72 6f  osing virtual ro
9a40: 6f 74 20 61 73 20 68 65 20 6e 65 76 65 72 0a 23  ot as he never.#
9a50: 09 6b 6e 6f 77 73 20 77 68 65 6e 20 74 68 65 20  .knows when the 
9a60: 69 6e 70 75 74 20 69 73 20 63 6f 6d 70 6c 65 74  input is complet
9a70: 65 2e 20 49 6e 20 74 68 69 73 20 63 61 73 65 20  e. In this case 
9a80: 74 68 65 20 66 69 72 73 74 0a 23 09 73 63 72 69  the first.#.scri
9a90: 70 74 20 67 65 6e 65 72 61 74 65 64 20 62 79 20  pt generated by 
9aa0: 65 61 63 68 20 69 6e 76 6f 63 61 74 69 6f 6e 20  each invocation 
9ab0: 6f 66 20 74 68 65 20 70 61 72 73 65 72 20 77 69  of the parser wi
9ac0: 6c 6c 20 63 6f 6e 74 61 69 6e 0a 23 09 61 6e 20  ll contain.#.an 
9ad0: 69 6e 76 6f 63 61 74 69 6f 6e 20 6f 66 20 74 68  invocation of th
9ae0: 65 20 63 6f 6d 6d 61 6e 64 20 70 72 65 66 69 78  e command prefix
9af0: 20 66 6f 72 20 74 68 65 20 76 69 72 74 75 61 6c   for the virtual
9b00: 20 72 6f 6f 74 20 61 73 0a 23 09 69 74 73 20 66   root as.#.its f
9b10: 69 72 73 74 20 63 6f 6d 6d 61 6e 64 2e 0a 23 0a  irst command..#.
9b20: 23 09 49 6e 74 65 72 66 61 63 65 20 74 6f 20 74  #.Interface to t
9b30: 68 65 20 63 6f 6d 6d 61 6e 64 20 70 72 65 66 69  he command prefi
9b40: 78 3a 0a 23 0a 23 09 49 6e 20 6e 6f 72 6d 61 6c  x:.#.#.In normal
9b50: 20 6d 6f 64 65 20 74 68 65 20 70 61 72 73 65 72   mode the parser
9b60: 20 77 69 6c 6c 20 69 6e 76 6f 6b 65 20 74 68 65   will invoke the
9b70: 20 63 6f 6d 6d 61 6e 64 20 70 72 65 66 69 78 20   command prefix 
9b80: 77 69 74 68 0a 23 09 66 6f 72 20 61 72 67 75 6d  with.#.for argum
9b90: 65 6e 74 73 20 61 70 70 65 6e 64 65 64 2e 20 53  ents appended. S
9ba0: 65 65 20 27 3a 3a 68 74 6d 6c 70 61 72 73 65 3a  ee '::htmlparse:
9bb0: 3a 64 65 62 75 67 43 61 6c 6c 62 61 63 6b 27 20  :debugCallback' 
9bc0: 66 6f 72 20 61 0a 23 09 64 65 73 63 72 69 70 74  for a.#.descript
9bd0: 69 6f 6e 2e 20 49 6e 20 69 6e 63 72 65 6d 65 6e  ion. In incremen
9be0: 74 61 6c 20 6d 6f 64 65 20 68 6f 77 65 76 65 72  tal mode however
9bf0: 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 73   the generated s
9c00: 63 72 69 70 74 73 0a 23 09 77 69 6c 6c 20 69 6e  cripts.#.will in
9c10: 76 6f 6b 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64  voke the command
9c20: 20 70 72 65 66 69 78 20 77 69 74 68 20 66 69 76   prefix with fiv
9c30: 65 20 61 72 67 75 6d 65 6e 74 73 0a 23 09 61 70  e arguments.#.ap
9c40: 70 65 6e 64 65 64 2e 20 54 68 65 20 6c 61 73 74  pended. The last
9c50: 20 66 6f 75 72 20 6f 66 20 74 68 65 73 65 20 61   four of these a
9c60: 72 65 20 74 68 65 20 73 61 6d 65 20 77 68 69 63  re the same whic
9c70: 68 20 77 65 72 65 0a 23 09 6d 65 6e 74 69 6f 6e  h were.#.mention
9c80: 65 64 20 61 62 6f 76 65 2e 20 54 68 65 20 66 69  ed above. The fi
9c90: 72 73 74 20 68 6f 77 65 76 65 72 20 69 73 20 61  rst however is a
9ca0: 20 70 6c 61 63 65 68 6f 6c 64 65 72 20 73 74 72   placeholder str
9cb0: 69 6e 67 0a 23 09 28 5c 77 69 6e 5c 29 20 66 6f  ing.#.(\win\) fo
9cc0: 72 20 61 20 63 6c 69 65 6e 74 64 61 74 61 20 76  r a clientdata v
9cd0: 61 6c 75 65 20 74 6f 20 62 65 20 73 75 70 70 6c  alue to be suppl
9ce0: 69 65 64 20 6c 61 74 65 72 20 64 75 72 69 6e 67  ied later during
9cf0: 20 74 68 65 0a 23 09 61 63 74 75 61 6c 20 65 78   the.#.actual ex
9d00: 65 63 75 74 69 6f 6e 20 6f 66 20 74 68 65 20 67  ecution of the g
9d10: 65 6e 65 72 61 74 65 64 20 73 63 72 69 70 74 73  enerated scripts
9d20: 2e 20 54 68 69 73 20 63 6f 75 6c 64 20 62 65 20  . This could be 
9d30: 61 20 74 6b 0a 23 09 77 69 6e 64 6f 77 20 70 61  a tk.#.window pa
9d40: 74 68 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2e  th, for example.
9d50: 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 74 68 65   This allows the
9d60: 20 75 73 65 72 20 6f 66 20 74 68 69 73 20 70 61   user of this pa
9d70: 63 6b 61 67 65 0a 23 09 74 6f 20 70 72 65 70 72  ckage.#.to prepr
9d80: 6f 63 65 73 73 20 48 54 4d 4c 20 73 74 72 69 6e  ocess HTML strin
9d90: 67 73 20 77 69 74 68 6f 75 74 20 63 6f 6d 6d 69  gs without commi
9da0: 74 69 6e 67 20 74 68 65 6d 20 74 6f 20 61 0a 23  ting them to a.#
9db0: 09 73 70 65 63 69 66 69 63 20 77 69 6e 64 6f 77  .specific window
9dc0: 2c 20 6f 62 6a 65 63 74 2c 20 77 68 61 74 65 76  , object, whatev
9dd0: 65 72 20 64 75 72 69 6e 67 20 70 61 72 73 69 6e  er during parsin
9de0: 67 2e 20 54 68 69 73 0a 23 09 63 6f 6e 6e 65 63  g. This.#.connec
9df0: 74 69 6f 6e 20 63 61 6e 20 62 65 20 6d 61 64 65  tion can be made
9e00: 20 6c 61 74 65 72 2e 20 54 68 69 73 20 61 6c 73   later. This als
9e10: 6f 20 6d 65 61 6e 73 20 74 68 61 74 20 69 74 20  o means that it 
9e20: 69 73 0a 23 09 70 6f 73 73 69 62 6c 65 20 74 6f  is.#.possible to
9e30: 20 63 61 63 68 65 20 70 72 65 70 72 6f 63 65 73   cache preproces
9e40: 73 65 64 20 48 54 4d 4c 2e 20 4f 66 20 63 6f 75  sed HTML. Of cou
9e50: 72 73 65 2c 20 6e 6f 74 68 69 6e 67 0a 23 09 70  rse, nothing.#.p
9e60: 72 65 76 65 6e 74 73 20 74 68 65 20 75 73 65 72  revents the user
9e70: 20 6f 66 20 74 68 65 20 70 61 72 73 65 72 20 74   of the parser t
9e80: 6f 20 72 65 70 6c 61 63 65 20 74 68 65 20 70 6c  o replace the pl
9e90: 61 63 65 68 6f 6c 64 65 72 0a 23 09 77 69 74 68  aceholder.#.with
9ea0: 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67   an empty string
9eb0: 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a  ..#.# Arguments:
9ec0: 0a 23 09 61 72 67 73 09 41 6e 20 6f 70 74 69 6f  .#.args.An optio
9ed0: 6e 2f 76 61 6c 75 65 2d 6c 69 73 74 20 66 6f 6c  n/value-list fol
9ee0: 6c 6f 77 65 64 20 62 79 20 74 68 65 20 73 74 72  lowed by the str
9ef0: 69 6e 67 20 74 6f 0a 23 09 09 70 61 72 73 65 2e  ing to.#..parse.
9f00: 20 41 76 61 69 6c 61 62 6c 65 20 6f 70 74 69 6f   Available optio
9f10: 6e 73 20 61 72 65 3a 0a 23 0a 23 09 09 2d 63 6d  ns are:.#.#..-cm
9f20: 64 09 54 68 65 20 63 6f 6d 6d 61 6e 64 20 70 72  d.The command pr
9f30: 65 66 69 78 20 74 6f 20 69 6e 76 6f 6b 65 20 66  efix to invoke f
9f40: 6f 72 20 65 76 65 72 79 20 74 61 67 20 69 6e 0a  or every tag in.
9f50: 23 09 09 09 74 68 65 20 48 54 4d 4c 20 73 74 72  #...the HTML str
9f60: 69 6e 67 2e 20 44 65 66 61 75 6c 74 73 20 74 6f  ing. Defaults to
9f70: 0a 23 09 09 09 27 3a 3a 68 74 6d 6c 70 61 72 73  .#...'::htmlpars
9f80: 65 3a 3a 64 65 62 75 67 43 61 6c 6c 62 61 63 6b  e::debugCallback
9f90: 27 2e 0a 23 0a 23 09 09 2d 76 72 6f 6f 74 09 54  '..#.#..-vroot.T
9fa0: 68 65 20 76 69 72 74 75 61 6c 20 72 6f 6f 74 20  he virtual root 
9fb0: 74 61 67 20 74 6f 20 61 64 64 20 61 72 6f 75 6e  tag to add aroun
9fc0: 64 20 74 68 65 20 48 54 4d 4c 20 69 6e 0a 23 09  d the HTML in.#.
9fd0: 09 09 6e 6f 72 6d 61 6c 20 6d 6f 64 65 2e 20 49  ..normal mode. I
9fe0: 6e 20 69 6e 63 72 65 6d 65 6e 74 61 6c 20 6d 6f  n incremental mo
9ff0: 64 65 20 69 74 20 69 73 20 74 68 65 0a 23 09 09  de it is the.#..
a000: 09 66 69 72 73 74 20 74 61 67 20 69 6e 20 65 61  .first tag in ea
a010: 63 68 20 63 68 75 6e 6b 20 70 72 6f 63 65 73 73  ch chunk process
a020: 65 64 20 62 79 20 74 68 65 0a 23 09 09 09 70 61  ed by the.#...pa
a030: 72 73 65 72 2c 20 62 75 74 20 74 68 65 72 65 20  rser, but there 
a040: 77 69 6c 6c 20 62 65 20 6e 6f 20 63 6c 6f 73 69  will be no closi
a050: 6e 67 20 74 61 67 73 2e 0a 23 09 09 09 44 65 66  ng tags..#...Def
a060: 61 75 6c 74 73 20 74 6f 20 27 68 6d 73 74 61 72  aults to 'hmstar
a070: 74 27 2e 0a 23 0a 23 09 09 2d 73 70 6c 69 74 09  t'..#.#..-split.
a080: 54 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20  The size of the 
a090: 67 72 6f 75 70 73 20 70 72 6f 64 75 63 65 64 20  groups produced 
a0a0: 62 79 20 61 6e 0a 23 09 09 09 69 6e 63 72 65 6d  by an.#...increm
a0b0: 65 6e 74 61 6c 20 6d 6f 64 65 20 70 61 72 73 65  ental mode parse
a0c0: 72 2e 20 49 67 6e 6f 72 65 64 20 77 68 65 6e 20  r. Ignored when 
a0d0: 69 6e 0a 23 09 09 09 6e 6f 72 6d 61 6c 20 6d 6f  in.#...normal mo
a0e0: 64 65 2e 20 44 65 66 61 75 6c 74 73 20 74 6f 20  de. Defaults to 
a0f0: 31 30 2e 20 56 61 6c 75 65 73 20 3c 3d 20 30 20  10. Values <= 0 
a100: 61 72 65 0a 23 09 09 09 6e 6f 74 20 61 6c 6c 6f  are.#...not allo
a110: 77 65 64 2e 0a 23 0a 23 09 09 2d 69 6e 63 76 61  wed..#.#..-incva
a120: 72 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68  r.The name of th
a130: 65 20 76 61 72 69 61 62 6c 65 20 77 68 65 72 65  e variable where
a140: 20 74 6f 20 73 74 6f 72 65 20 61 6e 79 0a 23 09   to store any.#.
a150: 09 09 69 6e 63 6f 6d 70 6c 65 74 65 20 48 54 4d  ..incomplete HTM
a160: 4c 20 69 6e 74 6f 2e 20 4f 70 74 69 6f 6e 61 6c  L into. Optional
a170: 2e 0a 23 0a 23 09 09 2d 71 75 65 75 65 0a 23 09  ..#.#..-queue.#.
a180: 09 09 54 68 65 20 68 61 6e 64 6c 65 2f 6e 61 6d  ..The handle/nam
a190: 65 20 6f 66 20 74 68 65 20 71 75 65 75 65 20 6f  e of the queue o
a1a0: 62 6a 65 63 63 74 20 74 6f 20 73 74 6f 72 65 0a  bjecct to store.
a1b0: 23 09 09 09 74 68 65 20 67 65 6e 65 72 61 74 65  #...the generate
a1c0: 64 20 73 63 72 69 70 74 73 20 69 6e 74 6f 2e 20  d scripts into. 
a1d0: 41 63 74 69 76 61 74 65 73 0a 23 09 09 09 69 6e  Activates.#...in
a1e0: 63 72 65 6d 65 6e 74 61 6c 20 6d 6f 64 65 2e 20  cremental mode. 
a1f0: 4e 6f 72 6d 61 6c 20 6d 6f 64 65 20 69 73 20 75  Normal mode is u
a200: 73 65 64 20 69 66 20 74 68 69 73 0a 23 09 09 09  sed if this.#...
a210: 6f 70 74 69 6f 6e 20 69 73 20 6e 6f 74 20 70 72  option is not pr
a220: 65 73 65 6e 74 2e 0a 23 0a 23 09 09 41 66 74 65  esent..#.#..Afte
a230: 72 20 74 68 65 20 6f 70 74 69 6f 6e 73 20 74 68  r the options th
a240: 65 20 63 6f 6d 6d 61 6e 64 20 65 78 70 65 63 74  e command expect
a250: 73 20 61 20 73 69 6e 67 6c 65 20 61 72 67 75 6d  s a single argum
a260: 65 6e 74 0a 23 09 09 63 6f 6e 74 61 69 6e 69 6e  ent.#..containin
a270: 67 20 74 68 65 20 48 54 4d 4c 20 73 74 72 69 6e  g the HTML strin
a280: 67 20 74 6f 20 70 61 72 73 65 2e 0a 23 0a 23 20  g to parse..#.# 
a290: 53 69 64 65 20 45 66 66 65 63 74 73 3a 0a 23 09  Side Effects:.#.
a2a0: 49 6e 20 6e 6f 72 6d 61 6c 20 6d 6f 64 65 20 61  In normal mode a
a2b0: 73 20 6f 66 20 74 68 65 20 69 6e 76 6f 6b 65 64  s of the invoked
a2c0: 20 63 6f 6d 6d 61 6e 64 2e 20 45 6c 73 65 20 6e   command. Else n
a2d0: 6f 6e 65 2e 0a 23 0a 23 20 52 65 73 75 6c 74 73  one..#.# Results
a2e0: 3a 0a 23 09 4e 6f 6e 65 2e 0a 0a 70 72 6f 63 20  :.#.None...proc 
a2f0: 3a 3a 68 74 6d 6c 70 61 72 73 65 3a 3a 70 61 72  ::htmlparse::par
a300: 73 65 20 7b 61 72 67 73 7d 20 7b 0a 20 20 20 20  se {args} {.    
a310: 23 20 43 6f 6e 76 65 72 74 20 74 68 65 20 48 54  # Convert the HT
a320: 4d 4c 20 73 74 72 69 6e 67 20 69 6e 74 6f 20 61  ML string into a
a330: 20 65 76 61 6c 75 61 62 6c 65 20 63 6f 6d 6d 61   evaluable comma
a340: 6e 64 20 73 65 71 75 65 6e 63 65 2e 0a 0a 20 20  nd sequence...  
a350: 20 20 76 61 72 69 61 62 6c 65 20 73 70 6c 69 74    variable split
a360: 64 61 74 61 0a 0a 20 20 20 20 23 20 4f 70 74 69  data..    # Opti
a370: 6f 6e 20 70 72 6f 63 65 73 73 69 6e 67 2c 20 73  on processing, s
a380: 74 61 72 74 20 77 69 74 68 20 74 68 65 20 64 65  tart with the de
a390: 66 61 75 6c 74 73 2c 20 74 68 65 6e 20 72 75 6e  faults, then run
a3a0: 20 74 68 72 6f 75 67 68 20 74 68 65 0a 20 20 20   through the.   
a3b0: 20 23 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d   # list of argum
a3c0: 65 6e 74 73 2e 0a 0a 20 20 20 20 73 65 74 20 63  ents...    set c
a3d0: 6d 64 20 20 20 20 3a 3a 68 74 6d 6c 70 61 72 73  md    ::htmlpars
a3e0: 65 3a 3a 64 65 62 75 67 43 61 6c 6c 62 61 63 6b  e::debugCallback
a3f0: 0a 20 20 20 20 73 65 74 20 76 72 6f 6f 74 20 20  .    set vroot  
a400: 68 6d 73 74 61 72 74 0a 20 20 20 20 73 65 74 20  hmstart.    set 
a410: 69 6e 63 76 61 72 20 22 22 0a 20 20 20 20 73 65  incvar "".    se
a420: 74 20 73 70 6c 69 74 20 20 31 30 0a 20 20 20 20  t split  10.    
a430: 73 65 74 20 71 75 65 75 65 20 20 22 22 0a 0a 20  set queue  "".. 
a440: 20 20 20 77 68 69 6c 65 20 7b 5b 73 65 74 20 65     while {[set e
a450: 72 72 20 5b 63 6d 64 6c 69 6e 65 3a 3a 67 65 74  rr [cmdline::get
a460: 6f 70 74 20 61 72 67 73 20 7b 63 6d 64 2e 61 72  opt args {cmd.ar
a470: 67 20 76 72 6f 6f 74 2e 61 72 67 20 69 6e 63 76  g vroot.arg incv
a480: 61 72 2e 61 72 67 20 73 70 6c 69 74 2e 61 72 67  ar.arg split.arg
a490: 20 71 75 65 75 65 2e 61 72 67 7d 20 6f 70 74 20   queue.arg} opt 
a4a0: 61 72 67 5d 5d 7d 20 7b 0a 09 69 66 20 7b 24 65  arg]]} {..if {$e
a4b0: 72 72 20 3c 20 30 7d 20 7b 0a 09 20 20 20 20 72  rr < 0} {..    r
a4c0: 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f  eturn -code erro
a4d0: 72 20 22 3a 3a 68 74 6d 6c 70 61 72 73 65 3a 3a  r "::htmlparse::
a4e0: 70 61 72 73 65 20 3a 20 24 61 72 67 22 0a 09 7d  parse : $arg"..}
a4f0: 0a 09 73 77 69 74 63 68 20 2d 65 78 61 63 74 20  ..switch -exact 
a500: 2d 2d 20 24 6f 70 74 20 7b 0a 09 20 20 20 20 63  -- $opt {..    c
a510: 6d 64 20 20 20 20 2d 0a 09 20 20 20 20 76 72 6f  md    -..    vro
a520: 6f 74 20 20 2d 0a 09 20 20 20 20 69 6e 63 76 61  ot  -..    incva
a530: 72 20 2d 0a 09 20 20 20 20 71 75 65 75 65 20 20  r -..    queue  
a540: 7b 0a 09 09 69 66 20 7b 5b 73 74 72 69 6e 67 20  {...if {[string 
a550: 6c 65 6e 67 74 68 20 24 61 72 67 5d 20 3d 3d 20  length $arg] == 
a560: 30 7d 20 7b 0a 09 09 20 20 20 20 72 65 74 75 72  0} {...    retur
a570: 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 22 3a  n -code error ":
a580: 3a 68 74 6d 6c 70 61 72 73 65 3a 3a 70 61 72 73  :htmlparse::pars
a590: 65 20 3a 20 2d 24 6f 70 74 20 69 6c 6c 65 67 61  e : -$opt illega
a5a0: 6c 20 61 72 67 75 6d 65 6e 74 20 28 65 6d 70 74  l argument (empt
a5b0: 79 29 22 0a 09 09 7d 0a 09 09 23 20 45 61 63 68  y)"...}...# Each
a5c0: 20 6f 70 74 69 6f 6e 20 68 61 73 20 61 6e 20 76   option has an v
a5d0: 61 72 69 61 62 6c 65 20 77 69 74 68 20 74 68 65  ariable with the
a5e0: 20 73 61 6d 65 20 6e 61 6d 65 20 61 73 73 6f 63   same name assoc
a5f0: 69 61 74 65 64 20 77 69 74 68 20 69 74 2e 0a 09  iated with it...
a600: 09 23 20 46 52 49 4e 4b 3a 20 6e 6f 63 68 65 63  .# FRINK: nochec
a610: 6b 0a 09 09 73 65 74 20 24 6f 70 74 20 24 61 72  k...set $opt $ar
a620: 67 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 73 70  g..    }..    sp
a630: 6c 69 74 20 20 7b 0a 09 09 69 66 20 7b 24 61 72  lit  {...if {$ar
a640: 67 20 3c 3d 20 30 7d 20 7b 0a 09 09 20 20 20 20  g <= 0} {...    
a650: 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72  return -code err
a660: 6f 72 20 22 3a 3a 68 74 6d 6c 70 61 72 73 65 3a  or "::htmlparse:
a670: 3a 70 61 72 73 65 20 3a 20 2d 73 70 6c 69 74 20  :parse : -split 
a680: 69 6c 6c 65 67 61 6c 20 61 72 67 75 6d 65 6e 74  illegal argument
a690: 20 28 3c 3d 20 30 29 22 0a 09 09 7d 0a 09 09 73   (<= 0)"...}...s
a6a0: 65 74 20 73 70 6c 69 74 20 24 61 72 67 0a 09 20  et split $arg.. 
a6b0: 20 20 20 7d 0a 09 20 20 20 20 64 65 66 61 75 6c     }..    defaul
a6c0: 74 20 7b 0a 09 09 23 20 43 61 6e 6e 6f 74 20 68  t {...# Cannot h
a6d0: 61 70 70 65 6e 0a 09 20 20 20 20 7d 0a 09 7d 0a  appen..    }..}.
a6e0: 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 7b 5b      }..    if {[
a6f0: 6c 6c 65 6e 67 74 68 20 24 61 72 67 73 5d 20 3e  llength $args] >
a700: 20 31 7d 20 7b 0a 09 72 65 74 75 72 6e 20 2d 63   1} {..return -c
a710: 6f 64 65 20 65 72 72 6f 72 20 22 3a 3a 68 74 6d  ode error "::htm
a720: 6c 70 61 72 73 65 3a 3a 70 61 72 73 65 20 3a 20  lparse::parse : 
a730: 74 6f 20 6d 61 6e 79 20 61 72 67 75 6d 65 6e 74  to many argument
a740: 73 20 62 65 68 69 6e 64 20 74 68 65 20 6f 70 74  s behind the opt
a750: 69 6f 6e 73 2c 20 65 78 70 65 63 74 65 64 20 6f  ions, expected o
a760: 6e 65 22 0a 20 20 20 20 7d 0a 20 20 20 20 69 66  ne".    }.    if
a770: 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 61 72 67 73   {[llength $args
a780: 5d 20 3c 20 31 7d 20 7b 0a 09 72 65 74 75 72 6e  ] < 1} {..return
a790: 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 22 3a 3a   -code error "::
a7a0: 68 74 6d 6c 70 61 72 73 65 3a 3a 70 61 72 73 65  htmlparse::parse
a7b0: 20 3a 20 68 74 6d 6c 20 73 74 72 69 6e 67 20 6d   : html string m
a7c0: 69 73 73 69 6e 67 22 0a 20 20 20 20 7d 0a 0a 20  issing".    }.. 
a7d0: 20 20 20 73 65 74 20 68 74 6d 6c 20 5b 50 72 65     set html [Pre
a7e0: 70 61 72 65 48 74 6d 6c 20 5b 6c 69 6e 64 65 78  pareHtml [lindex
a7f0: 20 24 61 72 67 73 20 30 5d 5d 0a 0a 20 20 20 20   $args 0]]..    
a800: 23 20 4c 6f 6f 6b 20 66 6f 72 20 69 6e 63 6f 6d  # Look for incom
a810: 70 6c 65 74 65 20 48 54 4d 4c 20 66 72 6f 6d 20  plete HTML from 
a820: 74 68 65 20 6c 61 73 74 20 69 74 65 72 61 74 69  the last iterati
a830: 6f 6e 20 61 6e 64 20 70 72 65 70 65 6e 64 20 69  on and prepend i
a840: 74 0a 20 20 20 20 23 20 74 6f 20 74 68 65 20 69  t.    # to the i
a850: 6e 70 75 74 20 77 65 20 6a 75 73 74 20 67 6f 74  nput we just got
a860: 2e 0a 0a 20 20 20 20 69 66 20 7b 24 69 6e 63 76  ...    if {$incv
a870: 61 72 20 21 3d 20 7b 7d 7d 20 7b 0a 09 75 70 76  ar != {}} {..upv
a880: 61 72 20 24 69 6e 63 76 61 72 20 69 6e 63 6f 6d  ar $incvar incom
a890: 70 6c 65 74 65 0a 20 20 20 20 7d 20 65 6c 73 65  plete.    } else
a8a0: 20 7b 0a 09 73 65 74 20 69 6e 63 6f 6d 70 6c 65   {..set incomple
a8b0: 74 65 20 22 22 0a 20 20 20 20 7d 0a 0a 20 20 20  te "".    }..   
a8c0: 20 69 66 20 7b 5b 63 61 74 63 68 20 7b 73 65 74   if {[catch {set
a8d0: 20 6e 65 77 20 24 69 6e 63 6f 6d 70 6c 65 74 65   new $incomplete
a8e0: 24 68 74 6d 6c 7d 5d 7d 20 7b 73 65 74 20 6e 65  $html}]} {set ne
a8f0: 77 20 24 68 74 6d 6c 7d 0a 20 20 20 20 73 65 74  w $html}.    set
a900: 20 68 74 6d 6c 20 24 6e 65 77 0a 0a 20 20 20 20   html $new..    
a910: 23 20 48 61 6e 64 6c 65 20 69 6e 63 6f 6d 70 6c  # Handle incompl
a920: 65 74 65 20 48 54 4d 4c 20 28 52 65 63 6f 67 6e  ete HTML (Recogn
a930: 69 7a 65 20 69 6e 63 6f 6d 70 6c 65 74 65 20 74  ize incomplete t
a940: 61 67 20 61 74 20 65 6e 64 2c 20 62 75 66 66 65  ag at end, buffe
a950: 72 0a 20 20 20 20 23 20 69 74 20 75 70 20 66 6f  r.    # it up fo
a960: 72 20 74 68 65 20 6e 65 78 74 20 63 61 6c 6c 29  r the next call)
a970: 2e 0a 0a 20 20 20 20 73 65 74 20 65 6e 64 20 5b  ...    set end [
a980: 6c 69 6e 64 65 78 20 5c 7b 24 68 74 6d 6c 5c 7d  lindex \{$html\}
a990: 20 65 6e 64 5d 0a 20 20 20 20 69 66 20 7b 5b 73   end].    if {[s
a9a0: 65 74 20 69 64 78 20 5b 73 74 72 69 6e 67 20 6c  et idx [string l
a9b0: 61 73 74 20 3c 20 24 65 6e 64 5d 5d 20 3e 20 5b  ast < $end]] > [
a9c0: 73 74 72 69 6e 67 20 6c 61 73 74 20 3e 20 24 65  string last > $e
a9d0: 6e 64 5d 7d 20 7b 0a 0a 09 69 66 20 7b 24 69 6e  nd]} {...if {$in
a9e0: 63 76 61 72 20 3d 3d 20 7b 7d 7d 20 7b 0a 09 20  cvar == {}} {.. 
a9f0: 20 20 20 72 65 74 75 72 6e 20 2d 63 6f 64 65 20     return -code 
aa00: 65 72 72 6f 72 20 22 3a 3a 68 74 6d 6c 70 61 72  error "::htmlpar
aa10: 73 65 3a 3a 70 61 72 73 65 20 3a 20 48 54 4d 4c  se::parse : HTML
aa20: 20 69 73 20 69 6e 63 6f 6d 70 6c 65 74 65 2c 20   is incomplete, 
aa30: 6f 70 74 69 6f 6e 20 2d 69 6e 63 76 61 72 20 69  option -incvar i
aa40: 73 20 6d 69 73 73 69 6e 67 22 0a 09 7d 0a 0a 09  s missing"..}...
aa50: 23 20 20 75 70 76 61 72 20 24 69 6e 63 76 61 72  #  upvar $incvar
aa60: 20 69 6e 63 6f 6d 70 6c 65 74 65 20 2d 2d 20 41   incomplete -- A
aa70: 6c 72 65 61 64 79 20 64 6f 6e 65 2c 20 73 2e 61  lready done, s.a
aa80: 2e 0a 09 73 65 74 20 69 6e 63 6f 6d 70 6c 65 74  ...set incomplet
aa90: 65 20 5b 73 74 72 69 6e 67 20 72 61 6e 67 65 20  e [string range 
aaa0: 24 65 6e 64 20 24 69 64 78 20 65 6e 64 5d 0a 09  $end $idx end]..
aab0: 69 6e 63 72 20 69 64 78 20 2d 31 0a 09 73 65 74  incr idx -1..set
aac0: 20 68 74 6d 6c 20 20 20 20 20 20 20 5b 73 74 72   html       [str
aad0: 69 6e 67 20 72 61 6e 67 65 20 24 65 6e 64 20 30  ing range $end 0
aae0: 20 24 69 64 78 5d 0a 09 0a 20 20 20 20 7d 20 65   $idx]...    } e
aaf0: 6c 73 65 20 7b 0a 09 73 65 74 20 69 6e 63 6f 6d  lse {..set incom
ab00: 70 6c 65 74 65 20 22 22 0a 20 20 20 20 7d 0a 0a  plete "".    }..
ab10: 20 20 20 20 23 20 43 6f 6e 76 65 72 74 20 74 68      # Convert th
ab20: 65 20 48 54 4d 4c 20 73 74 72 69 6e 67 20 69 6e  e HTML string in
ab30: 74 6f 20 61 20 73 63 72 69 70 74 2e 20 46 69 72  to a script. Fir
ab40: 73 74 20 6c 6f 6f 6b 20 66 6f 72 20 74 61 67 0a  st look for tag.
ab50: 20 20 20 20 23 20 70 61 74 74 65 72 6e 73 20 61      # patterns a
ab60: 6e 64 20 63 6f 6e 76 65 72 74 20 74 68 65 6d 20  nd convert them 
ab70: 69 6e 74 6f 20 63 6f 6d 6d 61 6e 64 20 69 6e 76  into command inv
ab80: 6f 6b 61 74 69 6f 6e 73 2e 20 54 68 65 20 63 6f  okations. The co
ab90: 6d 6d 61 6e 64 0a 20 20 20 20 23 20 69 73 20 61  mmand.    # is a
aba0: 63 74 75 61 6c 6c 79 20 61 20 70 6c 61 63 65 68  ctually a placeh
abb0: 6f 6c 64 65 72 20 28 28 4c 46 29 20 4e 55 4c 20  older ((LF) NUL 
abc0: 53 4f 48 20 40 20 4e 55 4c 29 2e 20 53 65 65 20  SOH @ NUL). See 
abd0: 73 74 65 70 20 32 20 66 6f 72 0a 20 20 20 20 23  step 2 for.    #
abe0: 20 74 68 65 20 65 78 70 6c 61 6e 61 74 69 6f 6e   the explanation
abf0: 2e 0a 0a 20 20 20 20 72 65 67 73 75 62 20 2d 61  ...    regsub -a
ac00: 6c 6c 20 2d 2d 20 7b 3c 28 5b 5e 5c 73 3e 5d 2b  ll -- {<([^\s>]+
ac10: 29 5c 73 2a 28 5b 5e 3e 5d 2a 29 2f 3e 7d 20 24  )\s*([^>]*)/>} $
ac20: 68 74 6d 6c 20 7b 3c 5c 31 20 5c 32 3e 3c 2f 5c  html {<\1 \2></\
ac30: 31 3e 7d 20 68 74 6d 6c 0a 0a 20 20 20 20 23 73  1>} html..    #s
ac40: 65 74 20 73 75 62 20 22 5c 7d 5c 6e 5c 30 5c 31  et sub "\}\n\0\1
ac50: 40 5c 30 20 7b 5c 5c 31 7d 20 7b 7d 20 7b 5c 5c  @\0 {\\1} {} {\\
ac60: 32 7d 20 5c 7b 5c 7d 5c 6e 5c 30 5c 31 40 5c 30  2} \{\}\n\0\1@\0
ac70: 20 7b 5c 5c 31 7d 20 7b 2f 7d 20 7b 7d 20 5c 7b   {\\1} {/} {} \{
ac80: 22 0a 20 20 20 20 23 72 65 67 73 75 62 20 2d 61  ".    #regsub -a
ac90: 6c 6c 20 2d 2d 20 7b 3c 28 5b 5e 5c 73 3e 5d 2b  ll -- {<([^\s>]+
aca0: 29 5c 73 2a 28 5b 5e 3e 5d 2a 29 2f 3e 7d 20 24  )\s*([^>]*)/>} $
acb0: 68 74 6d 6c 20 24 73 75 62 20 68 74 6d 6c 0a 0a  html $sub html..
acc0: 20 20 20 20 73 65 74 20 73 75 62 20 22 5c 7d 5c      set sub "\}\
acd0: 6e 5c 30 5c 31 40 5c 30 20 7b 5c 5c 32 7d 20 7b  n\0\1@\0 {\\2} {
ace0: 5c 5c 31 7d 20 7b 5c 5c 33 7d 20 5c 7b 22 0a 20  \\1} {\\3} \{". 
acf0: 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 2d     regsub -all -
ad00: 2d 20 7b 3c 28 2f 3f 29 28 5b 5e 5c 73 3e 5d 2b  - {<(/?)([^\s>]+
ad10: 29 5c 73 2a 28 5b 5e 3e 5d 2a 29 3e 7d 20 24 68  )\s*([^>]*)>} $h
ad20: 74 6d 6c 20 24 73 75 62 20 68 74 6d 6c 0a 0a 20  tml $sub html.. 
ad30: 20 20 20 23 20 53 74 65 70 20 32 2c 20 72 65 70     # Step 2, rep
ad40: 6c 61 63 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64  lace the command
ad50: 20 70 6c 61 63 65 68 6f 6c 64 65 72 20 77 69 74   placeholder wit
ad60: 68 20 74 68 65 20 63 6f 6d 6d 61 6e 64 0a 20 20  h the command.  
ad70: 20 20 23 20 69 74 73 65 6c 66 2e 20 54 68 69 73    # itself. This
ad80: 20 77 61 79 20 61 6e 79 20 63 68 61 72 61 63 74   way any charact
ad90: 65 72 73 20 69 6e 20 74 68 65 20 63 6f 6d 6d 61  ers in the comma
ada0: 6e 64 20 70 72 65 66 69 78 20 77 68 69 63 68 20  nd prefix which 
adb0: 61 72 65 0a 20 20 20 20 23 20 73 70 65 63 69 61  are.    # specia
adc0: 6c 20 74 6f 20 72 65 67 73 75 62 20 61 72 65 20  l to regsub are 
add0: 6b 65 70 74 20 66 72 6f 6d 20 74 68 65 20 72 65  kept from the re
ade0: 67 73 75 62 2e 0a 0a 20 20 20 20 73 65 74 20 68  gsub...    set h
adf0: 74 6d 6c 20 5b 73 74 72 69 6e 67 20 6d 61 70 20  tml [string map 
ae00: 5b 6c 69 73 74 20 5c 6e 5c 30 5c 31 40 5c 30 20  [list \n\0\1@\0 
ae10: 5c 6e 24 63 6d 64 5d 20 24 68 74 6d 6c 5d 0a 0a  \n$cmd] $html]..
ae20: 20 20 20 20 23 20 54 68 65 20 76 61 6c 75 65 20      # The value 
ae30: 6f 66 20 71 75 65 75 65 20 6e 6f 77 20 64 65 74  of queue now det
ae40: 65 72 6d 69 6e 65 73 20 77 65 74 68 65 72 20 77  ermines wether w
ae50: 65 20 70 72 6f 63 65 73 73 20 74 68 65 20 48 54  e process the HT
ae60: 4d 4c 20 62 79 0a 20 20 20 20 23 20 6f 75 72 73  ML by.    # ours
ae70: 65 6c 76 65 73 20 28 71 75 65 75 65 20 69 73 20  elves (queue is 
ae80: 65 6d 70 74 79 29 20 6f 72 20 69 66 20 77 65 20  empty) or if we 
ae90: 67 65 6e 65 72 61 74 65 20 61 20 6c 69 73 74 20  generate a list 
aea0: 6f 66 20 20 73 63 72 69 70 74 73 0a 20 20 20 20  of  scripts.    
aeb0: 23 20 65 61 63 68 20 6f 66 20 77 68 69 63 68 20  # each of which 
aec0: 70 72 6f 63 65 73 73 65 73 20 6e 20 74 61 67 73  processes n tags
aed0: 2c 20 6e 20 74 68 65 20 61 72 67 75 6d 65 6e 74  , n the argument
aee0: 20 74 6f 20 2d 73 70 6c 69 74 2e 0a 0a 20 20 20   to -split...   
aef0: 20 69 66 20 7b 24 71 75 65 75 65 20 3d 3d 20 7b   if {$queue == {
af00: 7d 7d 20 7b 0a 09 23 20 41 6e 64 20 65 76 61 6c  }} {..# And eval
af10: 75 61 74 65 20 69 74 2e 20 54 68 69 73 20 69 73  uate it. This is
af20: 20 74 68 65 20 6d 61 69 6e 20 70 61 72 73 69 6e   the main parsin
af30: 67 20 73 74 65 70 2e 0a 0a 09 65 76 61 6c 20 22  g step....eval "
af40: 24 63 6d 64 20 7b 24 76 72 6f 6f 74 7d 20 7b 7d  $cmd {$vroot} {}
af50: 20 7b 7d 20 5c 7b 24 68 74 6d 6c 5c 7d 22 0a 09   {} \{$html\}"..
af60: 65 76 61 6c 20 22 24 63 6d 64 20 7b 24 76 72 6f  eval "$cmd {$vro
af70: 6f 74 7d 20 2f 20 20 7b 7d 20 7b 7d 22 0a 20 20  ot} /  {} {}".  
af80: 20 20 7d 20 65 6c 73 65 20 7b 0a 09 23 20 71 75    } else {..# qu
af90: 65 75 65 20 64 65 66 69 6e 65 64 2c 20 67 65 6e  eue defined, gen
afa0: 65 72 61 74 65 20 6c 69 73 74 20 6f 66 20 73 63  erate list of sc
afb0: 72 69 70 74 73 20 64 6f 69 6e 67 20 73 6d 61 6c  ripts doing smal
afc0: 6c 20 63 68 75 6e 6b 73 20 6f 66 20 74 61 67 73  l chunks of tags
afd0: 2e 0a 0a 09 73 65 74 20 6c 63 6d 64 20 5b 6c 6c  ....set lcmd [ll
afe0: 65 6e 67 74 68 20 24 63 6d 64 5d 0a 09 73 65 74  ength $cmd]..set
aff0: 20 6b 65 79 20 20 24 73 70 6c 69 74 2c 24 6c 63   key  $split,$lc
b000: 6d 64 0a 0a 09 69 66 20 7b 21 5b 69 6e 66 6f 20  md...if {![info 
b010: 65 78 69 73 74 73 20 73 70 6c 69 74 64 61 74 61  exists splitdata
b020: 28 24 6b 65 79 29 5d 7d 20 7b 0a 09 20 20 20 20  ($key)]} {..    
b030: 66 6f 72 20 7b 73 65 74 20 69 20 30 3b 20 73 65  for {set i 0; se
b040: 74 20 67 72 6f 75 70 20 7b 7d 7d 20 7b 24 69 20  t group {}} {$i 
b050: 3c 20 24 73 70 6c 69 74 7d 20 7b 69 6e 63 72 20  < $split} {incr 
b060: 69 7d 20 7b 0a 09 09 23 20 55 73 65 20 74 68 65  i} {...# Use the
b070: 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 63   length of the c
b080: 6f 6d 6d 61 6e 64 20 70 72 65 66 69 78 20 74 6f  ommand prefix to
b090: 20 67 65 6e 65 72 61 74 65 0a 09 09 23 20 61 64   generate...# ad
b0a0: 64 69 74 69 6f 6e 61 6c 20 76 61 72 69 61 62 6c  ditional variabl
b0b0: 65 73 20 62 65 66 6f 72 65 20 74 68 65 20 6d 61  es before the ma
b0c0: 69 6e 20 76 61 72 69 61 62 6c 65 20 61 66 74 65  in variable afte
b0d0: 72 0a 09 09 23 20 77 68 69 63 68 20 74 68 65 20  r...# which the 
b0e0: 70 6c 61 63 65 68 6f 6c 64 65 72 20 77 69 6c 6c  placeholder will
b0f0: 20 62 65 20 69 6e 73 65 72 74 65 64 2e 0a 0a 09   be inserted....
b100: 09 66 6f 72 20 7b 73 65 74 20 6a 20 31 7d 20 7b  .for {set j 1} {
b110: 24 6a 20 3c 20 24 6c 63 6d 64 7d 20 7b 69 6e 63  $j < $lcmd} {inc
b120: 72 20 6a 7d 20 7b 0a 09 09 20 20 20 20 61 70 70  r j} {...    app
b130: 65 6e 64 20 67 72 6f 75 70 20 22 62 24 7b 6a 7d  end group "b${j}
b140: 5f 24 69 20 22 0a 09 09 7d 0a 0a 09 09 61 70 70  _$i "...}....app
b150: 65 6e 64 20 67 72 6f 75 70 20 22 61 24 69 20 63  end group "a$i c
b160: 24 69 20 64 24 69 20 65 24 69 20 66 24 69 5c 6e  $i d$i e$i f$i\n
b170: 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 72 65  "..    }..    re
b180: 67 73 75 62 20 2d 61 6c 6c 20 2d 2d 20 7b 28 61  gsub -all -- {(a
b190: 5b 30 2d 39 5d 2b 29 7d 20 20 20 20 20 20 20 20  [0-9]+)}        
b1a0: 20 20 24 67 72 6f 75 70 20 20 20 20 7b 7b 24 5c    $group    {{$\
b1b0: 31 7d 20 40 77 69 6e 40 7d 20 73 75 62 67 72 6f  1} @win@} subgro
b1c0: 75 70 0a 09 20 20 20 20 72 65 67 73 75 62 20 2d  up..    regsub -
b1d0: 61 6c 6c 20 2d 2d 20 7b 28 5b 62 2d 7a 5f 30 2d  all -- {([b-z_0-
b1e0: 39 5d 2b 5b 30 2d 39 5d 2b 29 7d 20 24 73 75 62  9]+[0-9]+)} $sub
b1f0: 67 72 6f 75 70 20 7b 7b 24 5c 31 7d 7d 20 20 20  group {{$\1}}   
b200: 20 20 20 20 73 75 62 67 72 6f 75 70 0a 0a 09 20      subgroup... 
b210: 20 20 20 73 65 74 20 73 70 6c 69 74 64 61 74 61     set splitdata
b220: 28 24 6b 65 79 29 20 5b 6c 69 73 74 20 24 67 72  ($key) [list $gr
b230: 6f 75 70 20 24 73 75 62 67 72 6f 75 70 5d 0a 09  oup $subgroup]..
b240: 7d 0a 0a 09 66 6f 72 65 61 63 68 20 7b 67 72 6f  }...foreach {gro
b250: 75 70 20 73 75 62 67 72 6f 75 70 7d 20 24 73 70  up subgroup} $sp
b260: 6c 69 74 64 61 74 61 28 24 6b 65 79 29 20 62 72  litdata($key) br
b270: 65 61 6b 20 3b 20 23 20 6c 61 73 73 69 67 6e 0a  eak ; # lassign.
b280: 09 66 6f 72 65 61 63 68 20 24 67 72 6f 75 70 20  .foreach $group 
b290: 22 24 63 6d 64 20 7b 24 76 72 6f 6f 74 7d 20 7b  "$cmd {$vroot} {
b2a0: 7d 20 7b 7d 20 5c 7b 24 68 74 6d 6c 5c 7d 22 20  } {} \{$html\}" 
b2b0: 7b 0a 09 20 20 20 20 24 71 75 65 75 65 20 70 75  {..    $queue pu
b2c0: 74 20 5b 73 74 72 69 6e 67 20 74 72 69 6d 72 69  t [string trimri
b2d0: 67 68 74 20 5b 73 75 62 73 74 20 24 73 75 62 67  ght [subst $subg
b2e0: 72 6f 75 70 5d 5d 0a 09 7d 0a 20 20 20 20 7d 0a  roup]]..}.    }.
b2f0: 20 20 20 20 72 65 74 75 72 6e 0a 7d 0a 0a 23 20      return.}..# 
b300: 68 74 6d 6c 70 61 72 73 65 3a 3a 50 72 65 70 61  htmlparse::Prepa
b310: 72 65 48 74 6d 6c 20 2d 2d 0a 23 0a 23 09 49 6e  reHtml --.#.#.In
b320: 74 65 72 6e 61 6c 20 68 65 6c 70 65 72 20 63 6f  ternal helper co
b330: 6d 6d 61 6e 64 20 6f 66 20 27 3a 3a 68 74 6d 6c  mmand of '::html
b340: 70 61 72 73 65 3a 3a 70 61 72 73 65 27 2e 20 52  parse::parse'. R
b350: 65 6d 6f 76 65 73 0a 23 09 6c 65 61 64 69 6e 67  emoves.#.leading
b360: 20 44 4f 43 54 59 50 45 20 64 65 63 6c 61 72 61   DOCTYPE declara
b370: 74 69 6f 6e 73 20 61 6e 64 20 63 6f 6d 6d 65 6e  tions and commen
b380: 74 73 2c 20 70 72 6f 74 65 63 74 73 20 74 68 65  ts, protects the
b390: 0a 23 09 73 70 65 63 69 61 6c 20 63 68 61 72 61  .#.special chara
b3a0: 63 74 65 72 73 20 6f 66 20 74 63 6c 20 66 72 6f  cters of tcl fro
b3b0: 6d 20 65 76 61 6c 75 61 74 69 6f 6e 2e 0a 23 0a  m evaluation..#.
b3c0: 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 09 68  # Arguments:.#.h
b3d0: 74 6d 6c 09 54 68 65 20 48 54 4d 4c 20 73 74 72  tml.The HTML str
b3e0: 69 6e 67 20 74 6f 20 70 72 65 70 61 72 65 0a 23  ing to prepare.#
b3f0: 0a 23 20 53 69 64 65 20 45 66 66 65 63 74 73 3a  .# Side Effects:
b400: 0a 23 09 4e 6f 6e 65 2e 0a 23 0a 23 20 52 65 73  .#.None..#.# Res
b410: 75 6c 74 73 3a 0a 23 09 54 68 65 20 70 72 6f 76  ults:.#.The prov
b420: 69 64 65 64 20 48 54 4d 4c 20 73 74 72 69 6e 67  ided HTML string
b430: 20 77 69 74 68 20 74 68 65 20 64 65 73 63 72 69   with the descri
b440: 62 65 64 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e  bed modification
b450: 73 0a 23 09 61 70 70 6c 69 65 64 20 74 6f 20 69  s.#.applied to i
b460: 74 2e 0a 0a 70 72 6f 63 20 3a 3a 68 74 6d 6c 70  t...proc ::htmlp
b470: 61 72 73 65 3a 3a 50 72 65 70 61 72 65 48 74 6d  arse::PrepareHtm
b480: 6c 20 7b 68 74 6d 6c 7d 20 7b 0a 20 20 20 20 23  l {html} {.    #
b490: 20 52 65 6d 6f 76 65 20 74 68 65 20 66 6f 6c 6c   Remove the foll
b4a0: 6f 77 69 6e 67 20 69 74 65 6d 73 20 66 72 6f 6d  owing items from
b4b0: 20 74 68 65 20 74 65 78 74 3a 0a 20 20 20 20 23   the text:.    #
b4c0: 20 2d 20 41 20 6c 65 61 64 69 6e 67 09 3c 21 44   - A leading.<!D
b4d0: 4f 43 54 59 50 45 2e 2e 2e 3e 20 64 65 63 6c 61  OCTYPE...> decla
b4e0: 72 61 74 69 6f 6e 2e 0a 20 20 20 20 23 20 2d 20  ration..    # - 
b4f0: 41 6c 6c 20 63 6f 6d 6d 65 6e 74 73 09 3c 21 2d  All comments.<!-
b500: 2d 20 2e 2e 2e 20 2d 2d 3e 0a 20 20 20 20 23 0a  - ... -->.    #.
b510: 20 20 20 20 23 20 41 6c 73 6f 20 6e 6f 72 6d 61      # Also norma
b520: 6c 69 7a 65 20 74 68 65 20 6c 69 6e 65 20 65 6e  lize the line en
b530: 64 69 6e 67 73 20 28 5c 72 20 2d 3e 20 5c 6e 29  dings (\r -> \n)
b540: 2e 0a 0a 20 20 20 20 23 20 54 63 6c 6c 69 62 20  ...    # Tcllib 
b550: 53 46 20 42 75 67 20 38 36 31 32 38 37 20 2d 20  SF Bug 861287 - 
b560: 50 72 6f 63 65 73 73 69 6e 67 20 6f 66 20 63 6f  Processing of co
b570: 6d 6d 65 6e 74 73 2e 0a 20 20 20 20 23 20 52 65  mments..    # Re
b580: 63 6f 67 6e 69 7a 65 20 45 4f 43 20 62 79 20 52  cognize EOC by R
b590: 45 2c 20 69 6e 73 74 65 61 64 20 6f 66 20 66 69  E, instead of fi
b5a0: 78 65 64 20 73 74 72 69 6e 67 2e 0a 0a 20 20 20  xed string...   
b5b0: 20 73 65 74 20 68 74 6d 6c 20 5b 73 74 72 69 6e   set html [strin
b5c0: 67 20 6d 61 70 20 5b 6c 69 73 74 20 5c 72 20 5c  g map [list \r \
b5d0: 6e 5d 20 24 68 74 6d 6c 5d 0a 0a 20 20 20 20 72  n] $html]..    r
b5e0: 65 67 73 75 62 20 2d 2d 20 22 5e 2e 2a 3c 21 44  egsub -- "^.*<!D
b5f0: 4f 43 54 59 50 45 5c 5b 5e 3e 5c 5d 2a 3e 22 20  OCTYPE\[^>\]*>" 
b600: 20 20 20 24 68 74 6d 6c 20 7b 7d 20 20 20 20 20     $html {}     
b610: 68 74 6d 6c 0a 20 20 20 20 72 65 67 73 75 62 20  html.    regsub 
b620: 2d 61 6c 6c 20 2d 2d 20 22 2d 2d 28 5c 5b 20 5c  -all -- "--(\[ \
b630: 74 5c 6e 5c 5d 2a 29 3e 22 20 20 20 20 20 20 24  t\n\]*)>"      $
b640: 68 74 6d 6c 20 22 5c 30 30 31 5c 5c 31 5c 30 30  html "\001\\1\00
b650: 32 22 20 68 74 6d 6c 0a 0a 20 20 20 20 23 20 52  2" html..    # R
b660: 65 63 6f 67 6e 69 7a 65 20 62 6f 72 6b 65 6e 20  ecognize borken 
b670: 62 65 67 69 6e 6e 69 6e 67 73 20 6f 66 20 61 20  beginnings of a 
b680: 63 6f 6d 6d 65 6e 74 20 61 6e 64 20 63 6f 6e 76  comment and conv
b690: 65 72 74 20 74 68 65 6d 20 74 6f 20 50 43 44 41  ert them to PCDA
b6a0: 54 41 2e 0a 20 20 20 20 72 65 67 73 75 62 20 2d  TA..    regsub -
b6b0: 61 6c 6c 20 2d 2d 20 22 3c 2d 2d 28 5c 5b 5e 5c  all -- "<--(\[^\
b6c0: 30 30 31 5c 5d 2a 29 5c 30 30 31 28 5c 5b 5e 5c  001\]*)\001(\[^\
b6d0: 30 30 32 5c 5d 2a 29 5c 30 30 32 22 20 24 68 74  002\]*)\002" $ht
b6e0: 6d 6c 20 7b 5c 26 6c 74 3b 2d 2d 5c 31 2d 2d 5c  ml {\&lt;--\1--\
b6f0: 32 5c 26 67 74 3b 7d 20 68 74 6d 6c 0a 0a 20 20  2\&gt;} html..  
b700: 20 20 23 20 41 6e 64 20 6e 6f 77 20 72 65 63 6f    # And now reco
b710: 67 6e 69 7a 65 20 74 72 75 65 20 63 6f 6d 6d 65  gnize true comme
b720: 6e 74 73 2c 20 72 65 6d 6f 76 65 20 74 68 65 6d  nts, remove them
b730: 2e 0a 20 20 20 20 72 65 67 73 75 62 20 2d 61 6c  ..    regsub -al
b740: 6c 20 2d 2d 20 22 3c 21 2d 2d 5c 5b 5e 5c 30 30  l -- "<!--\[^\00
b750: 31 5c 5d 2a 5c 30 30 31 28 5c 5b 5e 5c 30 30 32  1\]*\001(\[^\002
b760: 5c 5d 2a 29 5c 30 30 32 22 20 20 24 68 74 6d 6c  \]*)\002"  $html
b770: 20 7b 7d 20 20 20 20 20 20 20 20 20 20 20 20 20   {}             
b780: 20 20 20 20 20 20 68 74 6d 6c 0a 0a 20 20 20 20        html..    
b790: 23 20 50 72 6f 74 65 63 74 20 63 68 61 72 61 63  # Protect charac
b7a0: 74 65 72 73 20 73 70 65 63 69 61 6c 20 74 6f 20  ters special to 
b7b0: 74 63 6c 20 28 62 72 61 63 65 73 2c 20 73 6c 61  tcl (braces, sla
b7c0: 73 68 65 73 29 20 62 79 0a 20 20 20 20 23 20 63  shes) by.    # c
b7d0: 6f 6e 76 65 72 74 69 6e 67 20 74 68 65 6d 20 74  onverting them t
b7e0: 6f 20 74 68 65 69 72 20 65 73 63 61 70 65 20 73  o their escape s
b7f0: 65 71 75 65 6e 63 65 73 2e 0a 0a 20 20 20 20 72  equences...    r
b800: 65 74 75 72 6e 20 5b 73 74 72 69 6e 67 20 6d 61  eturn [string ma
b810: 70 20 5b 6c 69 73 74 20 5c 0a 09 09 20 20 20 20  p [list \...    
b820: 22 5c 7b 22 20 22 26 23 31 32 33 3b 22 20 5c 0a  "\{" "&#123;" \.
b830: 09 09 20 20 20 20 22 5c 7d 22 20 22 26 23 31 32  ..    "\}" "&#12
b840: 35 3b 22 20 5c 0a 09 09 20 20 20 20 22 5c 5c 22  5;" \...    "\\"
b850: 20 22 26 23 39 32 3b 22 5d 20 24 68 74 6d 6c 5d   "&#92;"] $html]
b860: 0a 7d 0a 0a 0a 0a 23 20 68 74 6d 6c 70 61 72 73  .}....# htmlpars
b870: 65 3a 3a 64 65 62 75 67 43 61 6c 6c 62 61 63 6b  e::debugCallback
b880: 20 2d 2d 0a 23 0a 23 09 54 68 65 20 73 74 61 6e   --.#.#.The stan
b890: 64 61 72 64 20 63 61 6c 6c 62 61 63 6b 20 75 73  dard callback us
b8a0: 65 64 20 62 79 20 74 68 65 20 70 61 72 73 65 72  ed by the parser
b8b0: 20 69 6e 0a 23 09 27 3a 3a 68 74 6d 6c 70 61 72   in.#.'::htmlpar
b8c0: 73 65 3a 3a 70 61 72 73 65 27 20 69 66 20 6e 6f  se::parse' if no
b8d0: 6e 65 20 77 61 73 20 73 70 65 63 69 66 69 65 64  ne was specified
b8e0: 20 62 79 20 74 68 65 20 75 73 65 72 2e 20 53 69   by the user. Si
b8f0: 6d 70 6c 79 0a 23 09 64 75 6d 70 73 20 69 74 73  mply.#.dumps its
b900: 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 73 74   arguments to st
b910: 64 6f 75 74 2e 20 20 54 68 69 73 20 63 61 6c 6c  dout.  This call
b920: 62 61 63 6b 20 63 61 6e 20 62 65 20 75 73 65 64  back can be used
b930: 20 66 6f 72 0a 23 09 62 6f 74 68 20 6e 6f 72 6d   for.#.both norm
b940: 61 6c 20 61 6e 64 20 69 6e 63 72 65 6d 65 6e 74  al and increment
b950: 61 6c 20 6d 6f 64 65 20 6f 66 20 74 68 65 20 63  al mode of the c
b960: 61 6c 6c 69 6e 67 20 70 61 72 73 65 72 2e 20 49  alling parser. I
b970: 6e 0a 23 09 6f 74 68 65 72 20 77 6f 72 64 73 2c  n.#.other words,
b980: 20 69 74 20 61 63 63 65 70 74 73 20 66 6f 75 72   it accepts four
b990: 20 6f 72 20 66 69 76 65 20 61 72 67 75 6d 65 6e   or five argumen
b9a0: 74 73 2e 20 54 68 65 20 6c 61 73 74 20 66 6f 75  ts. The last fou
b9b0: 72 0a 23 09 61 72 67 75 6d 65 6e 74 73 20 61 72  r.#.arguments ar
b9c0: 65 20 64 65 73 63 72 69 62 65 64 20 62 65 6c 6f  e described belo
b9d0: 77 2e 20 54 68 65 20 6f 70 74 69 6f 6e 61 6c 20  w. The optional 
b9e0: 66 69 66 74 68 20 61 72 67 75 6d 65 6e 74 0a 23  fifth argument.#
b9f0: 09 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 63 6c  .contains the cl
ba00: 69 65 6e 74 64 61 74 61 20 76 61 6c 75 65 20 67  ientdata value g
ba10: 69 76 65 6e 20 74 6f 20 74 68 65 20 63 61 6c 6c  iven to the call
ba20: 62 61 63 6b 20 62 79 20 61 0a 23 09 70 61 72 73  back by a.#.pars
ba30: 65 72 20 69 6e 20 69 6e 63 72 65 6d 65 6e 74 61  er in incrementa
ba40: 6c 20 6d 6f 64 65 2e 20 41 6c 6c 20 63 61 6c 6c  l mode. All call
ba50: 62 61 63 6b 73 20 68 61 76 65 20 74 6f 20 66 6f  backs have to fo
ba60: 6c 6c 6f 77 20 74 68 65 0a 23 09 73 69 67 6e 61  llow the.#.signa
ba70: 74 75 72 65 20 6f 66 20 74 68 69 73 20 63 6f 6d  ture of this com
ba80: 6d 61 6e 64 20 69 6e 20 74 68 65 20 6c 61 73 74  mand in the last
ba90: 20 66 6f 75 72 20 61 72 67 75 6d 65 6e 74 73 2c   four arguments,
baa0: 20 61 6e 64 0a 23 09 63 61 6c 6c 62 61 63 6b 73   and.#.callbacks
bab0: 20 75 73 65 64 20 69 6e 20 69 6e 63 72 65 6d 65   used in increme
bac0: 6e 74 61 6c 20 70 61 72 73 69 6e 67 20 68 61 76  ntal parsing hav
bad0: 65 20 74 6f 20 66 6f 6c 6c 6f 77 20 74 68 69 73  e to follow this
bae0: 0a 23 09 73 69 67 6e 61 74 75 72 65 20 69 6e 20  .#.signature in 
baf0: 74 68 65 20 6c 61 73 74 20 66 69 76 65 20 61 72  the last five ar
bb00: 67 75 6d 65 6e 74 73 2e 0a 23 0a 23 20 41 72 67  guments..#.# Arg
bb10: 75 6d 65 6e 74 73 3a 0a 23 09 74 61 67 09 09 09  uments:.#.tag...
bb20: 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20  The name of the 
bb30: 74 61 67 20 63 75 72 72 65 6e 74 6c 79 0a 23 09  tag currently.#.
bb40: 09 09 09 70 72 6f 63 65 73 73 65 64 20 62 79 20  ...processed by 
bb50: 74 68 65 20 70 61 72 73 65 72 2e 0a 23 0a 23 09  the parser..#.#.
bb60: 73 6c 61 73 68 09 09 09 45 69 74 68 65 72 20 65  slash...Either e
bb70: 6d 70 74 79 20 6f 72 20 61 20 73 6c 61 73 68 2e  mpty or a slash.
bb80: 20 41 6c 6c 6f 77 73 20 75 73 20 74 6f 0a 23 09   Allows us to.#.
bb90: 09 09 09 64 69 73 74 69 6e 67 75 69 73 68 20 62  ...distinguish b
bba0: 65 74 77 65 65 6e 20 6f 70 65 6e 69 6e 67 20 28  etween opening (
bbb0: 73 6c 61 73 68 20 69 73 0a 23 09 09 09 09 65 6d  slash is.#....em
bbc0: 70 74 79 29 20 61 6e 64 20 63 6c 6f 73 69 6e 67  pty) and closing
bbd0: 20 74 61 67 73 20 28 73 6c 61 73 68 20 69 73 0a   tags (slash is.
bbe0: 23 09 09 09 09 65 71 75 61 6c 20 74 6f 20 61 20  #....equal to a 
bbf0: 27 2f 27 29 2e 0a 23 0a 23 09 70 61 72 61 6d 09  '/')..#.#.param.
bc00: 09 09 54 68 65 20 75 6e 2d 69 6e 74 65 72 70 72  ..The un-interpr
bc10: 65 74 65 64 20 6c 69 73 74 20 6f 66 20 70 61 72  eted list of par
bc20: 61 6d 65 74 65 72 73 0a 23 09 09 09 09 74 6f 20  ameters.#....to 
bc30: 74 68 65 20 74 61 67 2e 0a 23 0a 23 09 74 65 78  the tag..#.#.tex
bc40: 74 42 65 68 69 6e 64 54 68 65 54 61 67 09 54 68  tBehindTheTag.Th
bc50: 65 20 74 65 78 74 20 66 6f 75 6e 64 20 62 79 20  e text found by 
bc60: 74 68 65 20 70 61 72 73 65 72 20 62 65 68 69 6e  the parser behin
bc70: 64 0a 23 09 09 09 09 74 68 65 20 74 61 67 20 6e  d.#....the tag n
bc80: 61 6d 65 64 20 69 6e 20 27 74 61 67 27 2e 0a 23  amed in 'tag'..#
bc90: 0a 23 20 53 69 64 65 20 45 66 66 65 63 74 73 3a  .# Side Effects:
bca0: 0a 23 09 4e 6f 6e 65 2e 0a 23 0a 23 20 52 65 73  .#.None..#.# Res
bcb0: 75 6c 74 73 3a 0a 23 09 4e 6f 6e 65 2e 0a 0a 70  ults:.#.None...p
bcc0: 72 6f 63 20 3a 3a 68 74 6d 6c 70 61 72 73 65 3a  roc ::htmlparse:
bcd0: 3a 64 65 62 75 67 43 61 6c 6c 62 61 63 6b 20 7b  :debugCallback {
bce0: 61 72 67 73 7d 20 7b 0a 20 20 20 20 23 20 61 72  args} {.    # ar
bcf0: 67 73 20 3d 20 3f 63 6c 69 65 6e 74 44 61 74 61  gs = ?clientData
bd00: 3f 20 74 61 67 20 73 6c 61 73 68 20 70 61 72 61  ? tag slash para
bd10: 6d 20 74 65 78 74 42 65 68 69 6e 64 54 68 65 54  m textBehindTheT
bd20: 61 67 0a 20 20 20 20 70 75 74 73 20 22 3d 3d 3e  ag.    puts "==>
bd30: 20 24 61 72 67 73 22 0a 20 20 20 20 72 65 74 75   $args".    retu
bd40: 72 6e 0a 7d 0a 0a 23 20 68 74 6d 6c 70 61 72 73  rn.}..# htmlpars
bd50: 65 3a 3a 6d 61 70 45 73 63 61 70 65 73 20 2d 2d  e::mapEscapes --
bd60: 0a 23 0a 23 09 54 61 6b 65 73 20 61 20 48 54 4d  .#.#.Takes a HTM
bd70: 4c 20 73 74 72 69 6e 67 2c 20 73 75 62 73 74 69  L string, substi
bd80: 74 75 74 65 73 20 61 6c 6c 20 65 73 63 61 70 65  tutes all escape
bd90: 20 73 65 71 75 65 6e 63 65 73 20 77 69 74 68 0a   sequences with.
bda0: 23 09 74 68 65 69 72 20 61 63 74 75 61 6c 20 63  #.their actual c
bdb0: 68 61 72 61 63 74 65 72 73 20 61 6e 64 20 72 65  haracters and re
bdc0: 74 75 72 6e 73 20 74 68 65 20 72 65 73 75 6c 74  turns the result
bdd0: 69 6e 67 20 73 74 72 69 6e 67 2e 0a 23 09 48 54  ing string..#.HT
bde0: 4d 4c 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 69 6e  ML not containin
bdf0: 67 20 65 73 63 61 70 65 20 73 65 71 75 65 6e 63  g escape sequenc
be00: 65 73 20 6f 72 20 69 6e 76 61 6c 69 64 20 65 73  es or invalid es
be10: 63 61 70 65 0a 23 09 73 65 71 75 65 6e 63 65 73  cape.#.sequences
be20: 20 69 73 20 72 65 74 75 72 6e 65 64 20 75 6e 63   is returned unc
be30: 68 61 6e 67 65 64 2e 0a 23 0a 23 20 41 72 67 75  hanged..#.# Argu
be40: 6d 65 6e 74 73 3a 0a 23 09 68 74 6d 6c 09 54 68  ments:.#.html.Th
be50: 65 20 73 74 72 69 6e 67 20 74 6f 20 6d 6f 64 69  e string to modi
be60: 66 79 0a 23 0a 23 20 53 69 64 65 20 45 66 66 65  fy.#.# Side Effe
be70: 63 74 73 3a 0a 23 09 4e 6f 6e 65 2e 0a 23 0a 23  cts:.#.None..#.#
be80: 20 52 65 73 75 6c 74 73 3a 0a 23 09 54 68 65 20   Results:.#.The 
be90: 61 72 67 75 6d 65 6e 74 20 73 74 72 69 6e 67 20  argument string 
bea0: 77 69 74 68 20 61 6c 6c 20 65 73 63 61 70 65 20  with all escape 
beb0: 73 65 71 75 65 6e 63 65 73 20 72 65 70 6c 61 63  sequences replac
bec0: 65 64 20 77 69 74 68 0a 23 09 74 68 65 69 72 20  ed with.#.their 
bed0: 61 63 74 75 61 6c 20 63 68 61 72 61 63 74 65 72  actual character
bee0: 73 2e 0a 0a 70 72 6f 63 20 3a 3a 68 74 6d 6c 70  s...proc ::htmlp
bef0: 61 72 73 65 3a 3a 6d 61 70 45 73 63 61 70 65 73  arse::mapEscapes
bf00: 20 7b 68 74 6d 6c 7d 20 7b 0a 20 20 20 20 23 20   {html} {.    # 
bf10: 46 69 6e 64 20 48 54 4d 4c 20 65 73 63 61 70 65  Find HTML escape
bf20: 20 63 68 61 72 61 63 74 65 72 73 20 6f 66 20 74   characters of t
bf30: 68 65 20 66 6f 72 6d 20 26 78 78 78 28 3b 7c 45  he form &xxx(;|E
bf40: 4f 57 29 0a 0a 20 20 20 20 23 20 51 75 6f 74 65  OW)..    # Quote
bf50: 20 73 70 65 63 69 61 6c 20 54 63 6c 20 63 68 61   special Tcl cha
bf60: 72 73 20 73 6f 20 74 68 65 79 20 70 61 73 73 20  rs so they pass 
bf70: 74 68 72 6f 75 67 68 20 5b 73 75 62 73 74 5d 20  through [subst] 
bf80: 75 6e 68 61 72 6d 65 64 2e 0a 20 20 20 20 73 65  unharmed..    se
bf90: 74 20 6e 65 77 20 5b 73 74 72 69 6e 67 20 6d 61  t new [string ma
bfa0: 70 20 5b 6c 69 73 74 20 5c 5d 20 5c 5c 5c 5d 20  p [list \] \\\] 
bfb0: 5c 5b 20 5c 5c 5c 5b 20 5c 24 20 5c 5c 5c 24 20  \[ \\\[ \$ \\\$ 
bfc0: 5c 5c 20 5c 5c 5c 5c 5d 20 24 68 74 6d 6c 5d 0a  \\ \\\\] $html].
bfd0: 20 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20      regsub -all 
bfe0: 2d 2d 20 7b 26 28 5b 5b 3a 61 6c 6e 75 6d 3a 5d  -- {&([[:alnum:]
bff0: 5d 7b 32 2c 33 31 7d 29 28 3b 7c 5c 4d 29 7d 20  ]{2,31})(;|\M)} 
c000: 24 6e 65 77 20 7b 5b 44 6f 4e 61 6d 65 64 4d 61  $new {[DoNamedMa
c010: 70 20 5c 31 20 7b 5c 32 7d 5d 7d 20 6e 65 77 0a  p \1 {\2}]} new.
c020: 20 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20      regsub -all 
c030: 2d 2d 20 7b 26 23 28 5b 5b 3a 64 69 67 69 74 3a  -- {&#([[:digit:
c040: 5d 5d 7b 31 2c 35 7d 29 28 3b 7c 5c 4d 29 7d 20  ]]{1,5})(;|\M)} 
c050: 24 6e 65 77 20 7b 5b 44 6f 44 65 63 4d 61 70 20  $new {[DoDecMap 
c060: 5c 31 20 7b 5c 32 7d 5d 7d 20 6e 65 77 0a 20 20  \1 {\2}]} new.  
c070: 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 2d 2d    regsub -all --
c080: 20 7b 26 23 78 28 5b 5b 3a 78 64 69 67 69 74 3a   {&#x([[:xdigit:
c090: 5d 5d 7b 31 2c 34 7d 29 28 3b 7c 5c 4d 29 7d 20  ]]{1,4})(;|\M)} 
c0a0: 24 6e 65 77 20 7b 5b 44 6f 48 65 78 4d 61 70 20  $new {[DoHexMap 
c0b0: 5c 31 20 7b 5c 32 7d 5d 7d 20 6e 65 77 0a 20 20  \1 {\2}]} new.  
c0c0: 20 20 72 65 74 75 72 6e 20 5b 73 75 62 73 74 20    return [subst 
c0d0: 24 6e 65 77 5d 0a 7d 0a 0a 70 72 6f 63 20 3a 3a  $new].}..proc ::
c0e0: 68 74 6d 6c 70 61 72 73 65 3a 3a 44 6f 4e 61 6d  htmlparse::DoNam
c0f0: 65 64 4d 61 70 20 7b 6e 61 6d 65 20 65 6e 64 4f  edMap {name endO
c100: 66 7d 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c  f} {.    variabl
c110: 65 20 6e 61 6d 65 64 45 6e 74 69 74 69 65 73 0a  e namedEntities.
c120: 20 20 20 20 69 66 20 7b 5b 69 6e 66 6f 20 65 78      if {[info ex
c130: 69 73 74 20 6e 61 6d 65 64 45 6e 74 69 74 69 65  ist namedEntitie
c140: 73 28 24 6e 61 6d 65 29 5d 7d 20 7b 0a 09 72 65  s($name)]} {..re
c150: 74 75 72 6e 20 24 6e 61 6d 65 64 45 6e 74 69 74  turn $namedEntit
c160: 69 65 73 28 24 6e 61 6d 65 29 0a 20 20 20 20 7d  ies($name).    }
c170: 20 65 6c 73 65 20 7b 0a 09 23 20 50 75 74 20 69   else {..# Put i
c180: 74 20 62 61 63 6b 2e 2e 0a 09 72 65 74 75 72 6e  t back....return
c190: 20 22 26 24 6e 61 6d 65 24 65 6e 64 4f 66 22 0a   "&$name$endOf".
c1a0: 20 20 20 20 7d 0a 7d 0a 0a 70 72 6f 63 20 3a 3a      }.}..proc ::
c1b0: 68 74 6d 6c 70 61 72 73 65 3a 3a 44 6f 44 65 63  htmlparse::DoDec
c1c0: 4d 61 70 20 7b 64 65 63 20 65 6e 64 4f 66 7d 20  Map {dec endOf} 
c1d0: 7b 0a 20 20 20 20 73 63 61 6e 20 24 64 65 63 20  {.    scan $dec 
c1e0: 25 64 20 64 65 63 0a 20 20 20 20 69 66 20 7b 24  %d dec.    if {$
c1f0: 64 65 63 20 3c 3d 20 30 78 46 46 46 44 7d 20 7b  dec <= 0xFFFD} {
c200: 0a 09 72 65 74 75 72 6e 20 5b 66 6f 72 6d 61 74  ..return [format
c210: 20 25 63 20 24 64 65 63 5d 0a 20 20 20 20 7d 20   %c $dec].    } 
c220: 65 6c 73 65 20 7b 0a 09 23 20 50 75 74 20 69 74  else {..# Put it
c230: 20 62 61 63 6b 2e 2e 0a 09 72 65 74 75 72 6e 20   back....return 
c240: 22 26 23 24 64 65 63 24 65 6e 64 4f 66 22 0a 20  "&#$dec$endOf". 
c250: 20 20 20 7d 0a 7d 0a 0a 70 72 6f 63 20 3a 3a 68     }.}..proc ::h
c260: 74 6d 6c 70 61 72 73 65 3a 3a 44 6f 48 65 78 4d  tmlparse::DoHexM
c270: 61 70 20 7b 68 65 78 20 65 6e 64 4f 66 7d 20 7b  ap {hex endOf} {
c280: 0a 20 20 20 20 73 63 61 6e 20 24 68 65 78 20 25  .    scan $hex %
c290: 78 20 76 61 6c 75 65 0a 20 20 20 20 69 66 20 7b  x value.    if {
c2a0: 24 76 61 6c 75 65 20 3c 3d 20 30 78 46 46 46 44  $value <= 0xFFFD
c2b0: 7d 20 7b 0a 09 72 65 74 75 72 6e 20 5b 66 6f 72  } {..return [for
c2c0: 6d 61 74 20 25 63 20 24 76 61 6c 75 65 5d 0a 20  mat %c $value]. 
c2d0: 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 23 20 50     } else {..# P
c2e0: 75 74 20 69 74 20 62 61 63 6b 2e 2e 0a 09 72 65  ut it back....re
c2f0: 74 75 72 6e 20 22 26 23 78 24 68 65 78 24 65 6e  turn "&#x$hex$en
c300: 64 4f 66 22 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20  dOf".    }.}..# 
c310: 68 74 6d 6c 70 61 72 73 65 3a 3a 32 74 72 65 65  htmlparse::2tree
c320: 20 2d 2d 0a 23 0a 23 09 54 68 69 73 20 63 6f 6d   --.#.#.This com
c330: 6d 61 6e 64 20 69 73 20 61 20 77 72 61 70 70 65  mand is a wrappe
c340: 72 20 61 72 6f 75 6e 64 20 27 3a 3a 68 74 6d 6c  r around '::html
c350: 70 61 72 73 65 3a 3a 70 61 72 73 65 27 20 77 68  parse::parse' wh
c360: 69 63 68 0a 23 09 74 61 6b 65 73 20 61 20 48 54  ich.#.takes a HT
c370: 4d 4c 20 73 74 72 69 6e 67 20 61 6e 64 20 63 6f  ML string and co
c380: 6e 76 65 72 74 73 20 69 74 20 69 6e 74 6f 20 61  nverts it into a
c390: 20 74 72 65 65 20 63 6f 6e 74 61 69 6e 69 6e 67   tree containing
c3a0: 20 74 68 65 0a 23 09 6c 6f 67 69 63 61 6c 20 73   the.#.logical s
c3b0: 74 72 75 63 74 75 72 65 20 6f 66 20 74 68 65 20  tructure of the 
c3c0: 70 61 72 73 65 64 20 64 6f 63 75 6d 65 6e 74 2e  parsed document.
c3d0: 20 54 68 65 20 74 72 65 65 20 6f 62 6a 65 63 74   The tree object
c3e0: 20 68 61 73 0a 23 09 74 6f 20 62 65 20 63 72 65   has.#.to be cre
c3f0: 61 74 65 64 20 62 79 20 74 68 65 20 63 61 6c 6c  ated by the call
c400: 65 72 2e 20 49 74 20 69 73 20 61 6c 73 6f 20 65  er. It is also e
c410: 78 70 65 63 74 65 64 20 74 68 61 74 20 74 68 65  xpected that the
c420: 20 74 72 65 65 0a 23 09 6f 62 6a 65 63 74 20 70   tree.#.object p
c430: 72 6f 76 69 64 65 73 20 74 68 65 20 73 61 6d 65  rovides the same
c440: 20 69 6e 74 65 72 66 61 63 65 20 61 73 20 74 68   interface as th
c450: 65 20 74 72 65 65 20 6f 62 6a 65 63 74 20 66 72  e tree object fr
c460: 6f 6d 0a 23 09 74 63 6c 6c 69 62 20 2d 3e 20 73  om.#.tcllib -> s
c470: 74 72 75 63 74 2e 20 49 74 20 64 6f 65 73 6e 27  truct. It doesn'
c480: 74 20 68 61 76 65 20 74 6f 20 63 6f 6d 65 20 66  t have to come f
c490: 72 6f 6d 20 74 68 61 74 20 6d 6f 64 75 6c 65 0a  rom that module.
c4a0: 23 09 74 68 6f 75 67 68 2e 20 54 68 65 20 69 6e  #.though. The in
c4b0: 74 65 72 6e 61 6c 20 63 61 6c 6c 62 61 63 6b 20  ternal callback 
c4c0: 64 6f 65 73 20 73 6f 6d 65 20 62 61 73 69 63 20  does some basic 
c4d0: 63 68 65 63 6b 69 6e 67 20 6f 66 20 48 54 4d 4c  checking of HTML
c4e0: 0a 23 09 76 61 6c 69 64 69 74 79 20 61 6e 64 20  .#.validity and 
c4f0: 74 72 69 65 73 20 74 6f 20 72 65 63 6f 76 65 72  tries to recover
c500: 20 66 72 6f 6d 20 74 68 65 20 6d 6f 73 74 20 62   from the most b
c510: 61 73 69 63 20 65 72 72 6f 72 73 2e 0a 23 0a 23  asic errors..#.#
c520: 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 09 68 74   Arguments:.#.ht
c530: 6d 6c 09 54 68 65 20 48 54 4d 4c 20 73 74 72 69  ml.The HTML stri
c540: 6e 67 20 74 6f 20 70 61 72 73 65 20 61 6e 64 20  ng to parse and 
c550: 63 6f 6e 76 65 72 74 2e 0a 23 09 74 72 65 65 09  convert..#.tree.
c560: 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20  The name of the 
c570: 74 72 65 65 20 74 6f 20 66 69 6c 6c 2e 0a 23 0a  tree to fill..#.
c580: 23 20 53 69 64 65 20 45 66 66 65 63 74 73 3a 0a  # Side Effects:.
c590: 23 09 43 72 65 61 74 65 73 20 61 20 74 72 65 65  #.Creates a tree
c5a0: 20 6f 62 6a 65 63 74 20 28 73 65 65 20 74 63 6c   object (see tcl
c5b0: 6c 69 62 20 2d 3e 20 73 74 72 75 63 74 29 0a 23  lib -> struct).#
c5c0: 09 61 6e 64 20 6d 6f 64 69 66 69 65 73 20 69 74  .and modifies it
c5d0: 2e 0a 23 0a 23 20 52 65 73 75 6c 74 73 3a 0a 23  ..#.# Results:.#
c5e0: 09 54 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66  .The contents of
c5f0: 20 27 74 72 65 65 27 2e 0a 0a 70 72 6f 63 20 3a   'tree'...proc :
c600: 3a 68 74 6d 6c 70 61 72 73 65 3a 3a 32 74 72 65  :htmlparse::2tre
c610: 65 20 7b 68 74 6d 6c 20 74 72 65 65 7d 20 7b 0a  e {html tree} {.
c620: 0a 20 20 20 20 23 20 4f 6e 65 20 69 6e 74 65 72  .    # One inter
c630: 6e 61 6c 20 64 61 74 61 73 74 72 75 63 74 75 72  nal datastructur
c640: 65 20 69 73 20 72 65 71 75 69 72 65 64 2c 20 61  e is required, a
c650: 20 73 74 61 63 6b 20 6f 66 20 6f 70 65 6e 0a 20   stack of open. 
c660: 20 20 20 23 20 74 61 67 73 2e 20 54 68 69 73 20     # tags. This 
c670: 73 74 61 63 6b 20 69 73 20 61 6c 73 6f 20 70 72  stack is also pr
c680: 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 27 73  ovided by the 's
c690: 74 72 75 63 74 27 20 6d 6f 64 75 6c 65 20 6f 66  truct' module of
c6a0: 0a 20 20 20 20 23 20 74 63 6c 6c 69 62 2e 20 41  .    # tcllib. A
c6b0: 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 20  s the operation 
c6c0: 6f 66 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20  of this command 
c6d0: 69 73 20 73 79 6e 63 68 72 6f 6e 75 6f 75 73 20  is synchronuous 
c6e0: 77 65 0a 20 20 20 20 23 20 64 6f 6e 27 74 20 68  we.    # don't h
c6f0: 61 76 65 20 74 6f 20 74 61 6b 65 20 63 61 72 65  ave to take care
c700: 20 61 67 61 69 6e 73 74 20 6d 75 6c 74 69 70 6c   against multipl
c710: 65 20 72 75 6e 6e 69 6e 67 20 63 6f 70 69 65 73  e running copies
c720: 20 61 74 20 74 68 65 0a 20 20 20 20 23 20 73 61   at the.    # sa
c730: 6d 65 20 74 69 6d 65 73 20 28 53 75 63 68 20 61  me times (Such a
c740: 72 65 20 70 6f 73 73 69 62 6c 65 2c 20 62 75 74  re possible, but
c750: 20 77 69 6c 6c 20 62 65 20 69 6e 20 64 69 66 66   will be in diff
c760: 65 72 65 6e 74 0a 20 20 20 20 23 20 69 6e 74 65  erent.    # inte
c770: 72 70 72 65 74 65 72 73 20 61 6e 64 20 74 72 75  rpreters and tru
c780: 65 20 63 6f 6e 63 75 72 72 65 6e 63 79 20 69 73  e concurrency is
c790: 20 70 6f 73 73 69 62 6c 65 20 6f 6e 6c 79 20 69   possible only i
c7a0: 66 20 74 68 65 79 20 61 72 65 0a 20 20 20 20 23  f they are.    #
c7b0: 20 69 6e 20 64 69 66 66 65 72 65 6e 74 20 74 68   in different th
c7c0: 72 65 61 64 73 20 74 6f 6f 29 2e 20 49 4f 57 2c  reads too). IOW,
c7d0: 20 6e 6f 20 6e 65 65 64 20 66 6f 72 20 74 72 69   no need for tri
c7e0: 63 6b 73 20 74 6f 20 6d 61 6b 65 20 74 68 65 0a  cks to make the.
c7f0: 20 20 20 20 23 20 69 6e 74 65 72 6e 61 6c 20 64      # internal d
c800: 61 74 61 73 74 72 75 63 74 75 72 65 20 75 6e 69  atastructure uni
c810: 71 75 65 2e 0a 0a 20 20 20 20 63 61 74 63 68 20  que...    catch 
c820: 7b 3a 3a 68 74 6d 6c 70 61 72 73 65 3a 3a 74 61  {::htmlparse::ta
c830: 67 73 20 64 65 73 74 72 6f 79 7d 0a 0a 20 20 20  gs destroy}..   
c840: 20 3a 3a 73 74 72 75 63 74 3a 3a 73 74 61 63 6b   ::struct::stack
c850: 20 3a 3a 68 74 6d 6c 70 61 72 73 65 3a 3a 74 61   ::htmlparse::ta
c860: 67 73 0a 20 20 20 20 3a 3a 68 74 6d 6c 70 61 72  gs.    ::htmlpar
c870: 73 65 3a 3a 74 61 67 73 20 70 75 73 68 20 72 6f  se::tags push ro
c880: 6f 74 0a 20 20 20 20 24 74 72 65 65 20 73 65 74  ot.    $tree set
c890: 20 72 6f 6f 74 20 74 79 70 65 20 72 6f 6f 74 0a   root type root.
c8a0: 0a 20 20 20 20 70 61 72 73 65 20 2d 63 6d 64 20  .    parse -cmd 
c8b0: 5b 6c 69 73 74 20 3a 3a 68 74 6d 6c 70 61 72 73  [list ::htmlpars
c8c0: 65 3a 3a 32 74 72 65 65 43 61 6c 6c 62 61 63 6b  e::2treeCallback
c8d0: 20 24 74 72 65 65 5d 20 24 68 74 6d 6c 0a 0a 20   $tree] $html.. 
c8e0: 20 20 20 23 20 41 20 62 69 74 20 68 61 63 6b 69     # A bit hacki
c8f0: 73 68 2c 20 63 6f 72 72 65 63 74 20 74 68 65 20  sh, correct the 
c900: 6f 72 64 65 72 69 6e 67 20 6f 66 20 6e 6f 64 65  ordering of node
c910: 73 20 66 6f 72 20 74 68 65 20 6f 70 74 69 6f 6e  s for the option
c920: 61 6c 0a 20 20 20 20 23 20 74 61 67 20 74 79 70  al.    # tag typ
c930: 65 73 2c 20 6f 76 65 72 20 61 20 6c 61 72 67 65  es, over a large
c940: 72 20 61 72 65 61 20 77 68 65 6e 20 77 61 73 20  r area when was 
c950: 73 65 65 6e 20 62 79 20 74 68 65 20 70 61 72 73  seen by the pars
c960: 65 72 20 69 74 73 65 6c 66 2e 0a 0a 20 20 20 20  er itself...    
c970: 24 74 72 65 65 20 77 61 6c 6b 20 72 6f 6f 74 20  $tree walk root 
c980: 2d 6f 72 64 65 72 20 70 6f 73 74 20 6e 20 7b 0a  -order post n {.
c990: 09 3a 3a 68 74 6d 6c 70 61 72 73 65 3a 3a 52 65  .::htmlparse::Re
c9a0: 6f 72 64 65 72 20 24 74 72 65 65 20 24 6e 0a 20  order $tree $n. 
c9b0: 20 20 20 7d 0a 0a 20 20 20 20 3a 3a 68 74 6d 6c     }..    ::html
c9c0: 70 61 72 73 65 3a 3a 74 61 67 73 20 64 65 73 74  parse::tags dest
c9d0: 72 6f 79 0a 20 20 20 20 72 65 74 75 72 6e 20 24  roy.    return $
c9e0: 74 72 65 65 0a 7d 0a 0a 23 20 68 74 6d 6c 70 61  tree.}..# htmlpa
c9f0: 72 73 65 3a 3a 32 74 72 65 65 43 61 6c 6c 62 61  rse::2treeCallba
ca00: 63 6b 20 2d 2d 0a 23 0a 23 09 49 6e 74 65 72 6e  ck --.#.#.Intern
ca10: 61 6c 20 68 65 6c 70 65 72 20 63 6f 6d 6d 61 6e  al helper comman
ca20: 64 2e 20 41 20 73 70 65 63 69 61 6c 20 63 61 6c  d. A special cal
ca30: 6c 62 61 63 6b 20 74 6f 0a 23 09 27 3a 3a 68 74  lback to.#.'::ht
ca40: 6d 6c 70 61 72 73 65 3a 3a 70 61 72 73 65 27 20  mlparse::parse' 
ca50: 75 73 65 64 20 62 79 20 27 3a 3a 68 74 6d 6c 70  used by '::htmlp
ca60: 61 72 73 65 3a 3a 32 74 72 65 65 27 20 77 68 69  arse::2tree' whi
ca70: 63 68 20 74 61 6b 65 73 0a 23 09 74 68 65 20 69  ch takes.#.the i
ca80: 6e 63 6f 6d 69 6e 67 20 73 74 72 65 61 6d 20 6f  ncoming stream o
ca90: 66 20 74 61 67 73 20 61 6e 64 20 63 6f 6e 76 65  f tags and conve
caa0: 72 74 73 20 74 68 65 6d 20 69 6e 74 6f 20 61 20  rts them into a 
cab0: 74 72 65 65 0a 23 09 72 65 70 72 65 73 65 6e 74  tree.#.represent
cac0: 69 6e 67 20 74 68 65 20 69 6e 6e 65 72 20 73 74  ing the inner st
cad0: 72 75 63 74 75 72 65 20 6f 66 20 74 68 65 20 70  ructure of the p
cae0: 61 72 73 65 64 20 48 54 4d 4c 0a 23 09 64 6f 63  arsed HTML.#.doc
caf0: 75 6d 65 6e 74 2e 20 52 65 63 6f 76 65 72 73 20  ument. Recovers 
cb00: 66 72 6f 6d 20 73 69 6d 70 6c 65 20 48 54 4d 4c  from simple HTML
cb10: 20 65 72 72 6f 72 73 20 6c 69 6b 65 20 6d 69 73   errors like mis
cb20: 73 69 6e 67 0a 23 09 6f 70 65 6e 69 6e 67 20 74  sing.#.opening t
cb30: 61 67 73 2c 20 6d 69 73 73 69 6e 67 20 63 6c 6f  ags, missing clo
cb40: 73 69 6e 67 20 74 61 67 73 20 61 6e 64 20 6f 76  sing tags and ov
cb50: 65 72 6c 61 70 70 69 6e 67 20 74 61 67 73 2e 0a  erlapping tags..
cb60: 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23  #.# Arguments:.#
cb70: 09 74 72 65 65 09 09 09 54 68 65 20 6e 61 6d 65  .tree...The name
cb80: 20 6f 66 20 74 68 65 20 74 72 65 65 20 74 6f 20   of the tree to 
cb90: 6d 61 6e 69 70 75 6c 61 74 65 2e 0a 23 09 74 61  manipulate..#.ta
cba0: 67 09 09 09 53 65 65 20 27 3a 3a 68 74 6d 6c 70  g...See '::htmlp
cbb0: 61 72 73 65 3a 3a 64 65 62 75 67 43 61 6c 6c 62  arse::debugCallb
cbc0: 61 63 6b 27 2e 0a 23 09 73 6c 61 73 68 09 09 09  ack'..#.slash...
cbd0: 53 65 65 20 27 3a 3a 68 74 6d 6c 70 61 72 73 65  See '::htmlparse
cbe0: 3a 3a 64 65 62 75 67 43 61 6c 6c 62 61 63 6b 27  ::debugCallback'
cbf0: 2e 0a 23 09 70 61 72 61 6d 09 09 09 53 65 65 20  ..#.param...See 
cc00: 27 3a 3a 68 74 6d 6c 70 61 72 73 65 3a 3a 64 65  '::htmlparse::de
cc10: 62 75 67 43 61 6c 6c 62 61 63 6b 27 2e 0a 23 09  bugCallback'..#.
cc20: 74 65 78 74 42 65 68 69 6e 64 54 68 65 54 61 67  textBehindTheTag
cc30: 09 53 65 65 20 27 3a 3a 68 74 6d 6c 70 61 72 73  .See '::htmlpars
cc40: 65 3a 3a 64 65 62 75 67 43 61 6c 6c 62 61 63 6b  e::debugCallback
cc50: 27 2e 0a 23 0a 23 20 53 69 64 65 20 45 66 66 65  '..#.# Side Effe
cc60: 63 74 73 3a 0a 23 09 4d 61 6e 69 70 75 6c 61 74  cts:.#.Manipulat
cc70: 65 73 20 74 68 65 20 74 72 65 65 20 6f 62 6a 65  es the tree obje
cc80: 63 74 20 77 68 6f 73 65 20 6e 61 6d 65 20 77 61  ct whose name wa
cc90: 73 20 67 69 76 65 6e 20 61 73 20 74 68 65 20 66  s given as the f
cca0: 69 72 73 74 0a 23 09 61 72 67 75 6d 65 6e 74 2e  irst.#.argument.
ccb0: 0a 23 0a 23 20 52 65 73 75 6c 74 73 3a 0a 23 09  .#.# Results:.#.
ccc0: 4e 6f 6e 65 2e 0a 0a 70 72 6f 63 20 3a 3a 68 74  None...proc ::ht
ccd0: 6d 6c 70 61 72 73 65 3a 3a 32 74 72 65 65 43 61  mlparse::2treeCa
cce0: 6c 6c 62 61 63 6b 20 7b 74 72 65 65 20 74 61 67  llback {tree tag
ccf0: 20 73 6c 61 73 68 20 70 61 72 61 6d 20 74 65 78   slash param tex
cd00: 74 42 65 68 69 6e 64 54 68 65 54 61 67 7d 20 7b  tBehindTheTag} {
cd10: 0a 20 20 20 20 23 20 54 68 69 73 20 63 6f 75 6c  .    # This coul
cd20: 64 20 62 65 20 74 61 62 6c 65 2d 64 72 69 76 65  d be table-drive
cd30: 6e 20 49 20 74 68 69 6e 6b 20 62 75 74 20 66 6f  n I think but fo
cd40: 72 20 6e 6f 77 20 74 68 65 20 73 77 69 74 63 68  r now the switch
cd50: 65 73 0a 20 20 20 20 23 20 73 68 6f 75 6c 64 20  es.    # should 
cd60: 77 6f 72 6b 20 66 69 6e 65 2e 0a 0a 20 20 20 20  work fine...    
cd70: 23 20 4e 6f 72 6d 61 6c 69 7a 65 20 74 61 67 20  # Normalize tag 
cd80: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20  information for 
cd90: 6c 61 74 65 72 20 63 6f 6d 70 61 72 69 73 6f 6e  later comparison
cda0: 73 2e 20 41 6c 73 6f 20 72 65 6d 6f 76 65 0a 20  s. Also remove. 
cdb0: 20 20 20 23 20 73 75 70 65 72 66 6c 75 6f 75 73     # superfluous
cdc0: 20 77 68 69 74 65 73 70 61 63 65 2e 20 44 6f 6e   whitespace. Don
cdd0: 27 74 20 66 6f 72 67 65 74 20 74 6f 20 64 65 63  't forget to dec
cde0: 6f 64 65 20 74 68 65 20 73 74 61 6e 64 61 72 64  ode the standard
cdf0: 0a 20 20 20 20 23 20 65 6e 74 69 74 69 65 73 2e  .    # entities.
ce00: 0a 0a 20 20 20 20 73 65 74 20 20 74 61 67 20 20  ..    set  tag  
ce10: 5b 73 74 72 69 6e 67 20 74 6f 6c 6f 77 65 72 20  [string tolower 
ce20: 24 74 61 67 5d 0a 20 20 20 20 73 65 74 20 20 74  $tag].    set  t
ce30: 65 78 74 42 65 68 69 6e 64 54 68 65 54 61 67 20  extBehindTheTag 
ce40: 5b 73 74 72 69 6e 67 20 74 72 69 6d 20 24 74 65  [string trim $te
ce50: 78 74 42 65 68 69 6e 64 54 68 65 54 61 67 5d 0a  xtBehindTheTag].
ce60: 20 20 20 20 69 66 20 7b 24 74 65 78 74 42 65 68      if {$textBeh
ce70: 69 6e 64 54 68 65 54 61 67 20 21 3d 20 7b 7d 7d  indTheTag != {}}
ce80: 20 7b 0a 09 73 65 74 20 74 65 78 74 20 5b 6d 61   {..set text [ma
ce90: 70 45 73 63 61 70 65 73 20 24 74 65 78 74 42 65  pEscapes $textBe
cea0: 68 69 6e 64 54 68 65 54 61 67 5d 0a 20 20 20 20  hindTheTag].    
ceb0: 7d 0a 0a 20 20 20 20 69 66 20 7b 22 24 73 6c 61  }..    if {"$sla
cec0: 73 68 22 20 3d 3d 20 22 2f 22 7d 20 7b 0a 09 23  sh" == "/"} {..#
ced0: 20 48 61 6e 64 6c 65 20 63 6c 6f 73 69 6e 67 20   Handle closing 
cee0: 74 61 67 73 2e 20 53 74 61 6e 64 61 72 64 20 6f  tags. Standard o
cef0: 70 65 72 61 74 69 6f 6e 20 69 73 20 74 6f 20 70  peration is to p
cf00: 6f 70 20 74 68 65 20 74 61 67 0a 09 23 20 66 72  op the tag..# fr
cf10: 6f 6d 20 74 68 65 20 73 74 61 63 6b 20 6f 66 20  om the stack of 
cf20: 6f 70 65 6e 20 74 61 67 73 2e 20 57 65 20 64 6f  open tags. We do
cf30: 6e 27 74 20 64 6f 20 74 68 69 73 20 66 6f 72 20  n't do this for 
cf40: 3c 2f 70 3e 20 61 6e 64 0a 09 23 20 3c 2f 6c 69  </p> and..# </li
cf50: 3e 2e 20 41 73 20 74 68 65 79 20 77 65 72 65 20  >. As they were 
cf60: 6f 70 74 69 6f 6e 61 6c 20 74 68 65 79 20 77 65  optional they we
cf70: 72 65 20 6e 65 76 65 72 20 70 75 73 68 65 64 20  re never pushed 
cf80: 6f 6e 74 6f 20 74 68 65 0a 09 23 20 73 74 61 63  onto the..# stac
cf90: 6b 20 28 57 65 6c 6c 2c 20 61 63 74 75 61 6c 6c  k (Well, actuall
cfa0: 79 20 74 68 65 79 20 61 72 65 20 6a 75 73 74 20  y they are just 
cfb0: 70 6f 70 70 65 64 20 69 6d 6d 65 64 69 61 74 65  popped immediate
cfc0: 6c 79 20 61 66 74 65 72 0a 09 23 20 74 68 65 79  ly after..# they
cfd0: 20 77 65 72 65 20 70 75 73 68 65 65 64 2c 20 73   were pusheed, s
cfe0: 65 65 20 62 65 6c 6f 77 29 2e 0a 0a 09 73 77 69  ee below)....swi
cff0: 74 63 68 20 2d 65 78 61 63 74 20 2d 2d 20 24 74  tch -exact -- $t
d000: 61 67 20 7b 0a 09 20 20 20 20 62 61 73 65 20 2d  ag {..    base -
d010: 20 6f 70 74 69 6f 6e 20 2d 20 6d 65 74 61 20 2d   option - meta -
d020: 20 6c 69 20 2d 20 70 20 7b 0a 09 09 23 20 49 67   li - p {...# Ig
d030: 6e 6f 72 65 2c 20 6e 6f 74 68 69 6e 67 20 74 6f  nore, nothing to
d040: 20 64 6f 2e 09 09 0a 09 20 20 20 20 7d 0a 09 20   do.....    }.. 
d050: 20 20 20 64 65 66 61 75 6c 74 20 7b 0a 09 09 23     default {...#
d060: 20 54 68 65 20 6d 6f 6d 65 6e 74 20 77 65 20 67   The moment we g
d070: 65 74 20 61 20 63 6c 6f 73 69 6e 67 20 74 61 67  et a closing tag
d080: 20 77 68 69 63 68 20 64 6f 65 73 20 6e 6f 74 20   which does not 
d090: 6d 61 74 63 68 0a 09 09 23 20 74 68 65 20 74 61  match...# the ta
d0a0: 67 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 20 77  g on the stack w
d0b0: 65 20 68 61 76 65 20 74 77 6f 20 70 6f 73 73 69  e have two possi
d0c0: 62 69 6c 69 74 69 65 73 20 6f 6e 20 68 6f 77 0a  bilities on how.
d0d0: 09 09 23 20 74 68 69 73 20 63 61 6d 65 20 69 6e  ..# this came in
d0e0: 74 6f 20 65 78 69 73 74 65 6e 63 65 20 74 6f 20  to existence to 
d0f0: 63 68 6f 6f 73 65 20 66 72 6f 6d 3a 0a 09 09 23  choose from:...#
d100: 0a 09 09 23 20 61 29 20 41 20 74 61 67 20 69 73  ...# a) A tag is
d110: 20 6e 6f 77 20 63 6c 6f 73 65 64 20 62 75 74 20   now closed but 
d120: 77 61 73 20 6e 65 76 65 72 20 6f 70 65 6e 65 64  was never opened
d130: 2e 0a 09 09 23 20 62 29 20 41 20 74 61 67 20 72  ....# b) A tag r
d140: 65 71 75 69 72 69 6e 67 20 61 6e 20 65 6e 64 20  equiring an end 
d150: 74 61 67 20 77 61 73 20 6f 70 65 6e 65 64 20 62  tag was opened b
d160: 75 74 20 74 68 65 20 65 6e 64 0a 09 09 23 20 20  ut the end...#  
d170: 20 20 74 61 67 20 77 61 73 20 6f 6d 69 74 74 65    tag was omitte
d180: 64 20 61 6e 64 20 77 65 20 6e 6f 77 20 61 72 65  d and we now are
d190: 20 61 74 20 61 20 74 61 67 20 77 68 69 63 68 20   at a tag which 
d1a0: 77 61 73 0a 09 09 23 20 20 20 20 6f 70 65 6e 65  was...#    opene
d1b0: 64 20 62 65 66 6f 72 65 20 74 68 65 20 6f 6e 65  d before the one
d1c0: 20 77 69 74 68 20 74 68 65 20 6f 6d 69 74 74 65   with the omitte
d1d0: 64 20 65 6e 64 20 74 61 67 2e 0a 0a 09 09 23 20  d end tag.....# 
d1e0: 4e 4f 54 45 3a 0a 09 09 23 20 50 61 67 65 73 20  NOTE:...# Pages 
d1f0: 64 65 6c 69 76 65 72 65 64 20 66 72 6f 6d 20 74  delivered from t
d200: 68 65 20 61 6d 61 7a 6f 6e 2e 75 6b 20 73 69 74  he amazon.uk sit
d210: 65 20 63 6f 6e 74 61 69 6e 20 62 6f 74 68 0a 09  e contain both..
d220: 09 23 20 63 61 73 65 73 3a 20 3c 2f 61 3e 20 77  .# cases: </a> w
d230: 69 74 68 6f 75 74 20 6f 70 65 6e 69 6e 67 2c 20  ithout opening, 
d240: 3c 62 3e 20 26 20 3c 66 6f 6e 74 3e 20 77 69 74  <b> & <font> wit
d250: 68 6f 75 74 0a 09 09 23 20 63 6c 6f 73 69 6e 67  hout...# closing
d260: 2e 20 41 6e 6f 74 68 65 72 20 65 72 72 6f 72 3a  . Another error:
d270: 20 3c 61 3e 3c 62 3e 3c 2f 61 3e 3c 2f 62 3e 2c   <a><b></a></b>,
d280: 20 69 2e 65 2e 20 6f 76 65 72 6c 61 70 70 69 6e   i.e. overlappin
d290: 67 0a 09 09 23 20 74 61 67 73 2e 20 46 6f 72 74  g...# tags. Fort
d2a0: 75 6e 61 74 65 6c 79 20 74 68 69 73 20 63 61 6e  unately this can
d2b0: 20 62 65 20 68 61 6e 64 6c 65 64 20 62 79 20 74   be handled by t
d2c0: 68 65 20 61 6c 67 6f 72 69 74 68 6d 0a 09 09 23  he algorithm...#
d2d0: 20 62 65 6c 6f 77 2c 20 69 6e 20 74 77 6f 20 63   below, in two c
d2e0: 79 63 6c 65 73 2c 20 6f 6e 65 20 6f 66 20 77 68  ycles, one of wh
d2f0: 69 63 68 20 69 73 20 63 61 73 65 20 28 62 29 2c  ich is case (b),
d300: 20 66 6f 6c 6c 6f 77 65 64 0a 09 09 23 20 62 79   followed...# by
d310: 20 63 61 73 65 20 28 61 29 2e 20 49 74 20 73 65   case (a). It se
d320: 65 6d 73 20 61 73 20 69 66 20 41 6d 61 7a 6f 6e  ems as if Amazon
d330: 2f 55 4b 20 62 65 6c 69 65 76 65 73 20 74 68 61  /UK believes tha
d340: 74 20 76 69 73 75 61 6c 0a 09 09 23 20 6d 61 72  t visual...# mar
d350: 6b 75 70 20 6c 69 6b 65 20 3c 62 3e 20 61 6e 64  kup like <b> and
d360: 20 3c 66 6f 6e 74 3e 20 69 73 20 61 6e 20 6f 70   <font> is an op
d370: 74 69 6f 6e 20 28 73 77 69 74 63 68 2d 6f 6e 29  tion (switch-on)
d380: 20 69 6e 73 74 65 61 64 0a 09 09 23 20 6f 66 20   instead...# of 
d390: 61 20 72 65 67 69 6f 6e 2e 0a 0a 09 09 23 20 41  a region.....# A
d3a0: 6c 67 6f 72 69 74 68 6d 20 75 73 65 64 20 68 65  lgorithm used he
d3b0: 72 65 20 74 6f 20 64 65 61 6c 20 77 69 74 68 20  re to deal with 
d3c0: 74 68 65 73 65 3a 0a 09 09 23 20 31 29 20 53 65  these:...# 1) Se
d3d0: 61 72 63 68 20 77 68 6f 6c 65 20 73 74 61 63 6b  arch whole stack
d3e0: 20 66 6f 72 20 74 68 65 20 6d 61 74 63 68 69 6e   for the matchin
d3f0: 67 20 6f 70 65 6e 69 6e 67 20 74 61 67 2e 0a 09  g opening tag...
d400: 09 23 20 20 20 20 49 66 20 74 68 65 72 65 20 69  .#    If there i
d410: 73 20 6f 6e 65 20 61 73 73 75 6d 65 20 63 61 73  s one assume cas
d420: 65 20 28 62 29 20 61 6e 64 20 70 6f 70 20 65 76  e (b) and pop ev
d430: 65 72 79 74 68 69 6e 67 0a 09 09 23 20 20 20 20  erything...#    
d440: 75 6e 74 69 6c 20 61 6e 64 20 69 6e 63 6c 75 64  until and includ
d450: 69 6e 67 20 74 68 69 73 20 6f 70 65 6e 69 6e 67  ing this opening
d460: 20 74 61 67 2e 0a 09 09 23 20 32 29 20 49 66 20   tag....# 2) If 
d470: 6e 6f 20 6d 61 74 63 68 69 6e 67 20 6f 70 65 6e  no matching open
d480: 69 6e 67 20 74 61 67 20 77 61 73 20 66 6f 75 6e  ing tag was foun
d490: 64 20 61 73 73 75 6d 65 20 63 61 73 65 0a 09 09  d assume case...
d4a0: 23 20 20 20 20 28 61 29 20 61 6e 64 20 69 67 6e  #    (a) and ign
d4b0: 6f 72 65 20 74 68 65 20 74 61 67 2e 0a 09 09 23  ore the tag....#
d4c0: 0a 09 09 23 20 50 61 72 74 20 28 31 29 20 61 6c  ...# Part (1) al
d4d0: 73 6f 20 73 75 62 73 75 6d 65 73 20 74 68 65 20  so subsumes the 
d4e0: 6e 6f 72 6d 61 6c 20 63 61 73 65 2c 20 69 2e 65  normal case, i.e
d4f0: 2e 20 74 68 65 0a 09 09 23 20 6d 61 74 63 68 69  . the...# matchi
d500: 6e 67 20 74 61 67 20 69 73 20 61 74 20 74 68 65  ng tag is at the
d510: 20 74 6f 70 20 6f 66 20 74 68 65 20 73 74 61 63   top of the stac
d520: 6b 2e 0a 0a 09 09 73 65 74 20 6e 6f 64 65 73 20  k.....set nodes 
d530: 5b 3a 3a 68 74 6d 6c 70 61 72 73 65 3a 3a 74 61  [::htmlparse::ta
d540: 67 73 20 70 65 65 6b 20 5b 3a 3a 68 74 6d 6c 70  gs peek [::htmlp
d550: 61 72 73 65 3a 3a 74 61 67 73 20 73 69 7a 65 5d  arse::tags size]
d560: 5d 0a 09 09 23 20 4e 6f 74 65 3a 20 46 69 72 73  ]...# Note: Firs
d570: 74 20 69 74 65 6d 20 69 73 20 74 6f 70 20 6f 66  t item is top of
d580: 20 73 74 61 63 6b 2c 20 6c 61 73 74 20 69 74 65   stack, last ite
d590: 6d 20 69 73 20 62 6f 74 74 6f 6d 20 6f 66 20 73  m is bottom of s
d5a0: 74 61 63 6b 20 21 0a 09 09 23 20 28 54 68 69 73  tack !...# (This
d5b0: 20 62 65 68 61 76 69 6f 75 72 20 6f 66 20 74 63   behaviour of tc
d5c0: 6c 6c 69 62 20 73 74 61 63 6b 73 20 69 73 20 6e  llib stacks is n
d5d0: 6f 74 20 64 6f 63 75 6d 65 6e 74 65 64 0a 09 09  ot documented...
d5e0: 23 20 2d 3e 20 77 65 20 73 68 6f 75 6c 64 20 75  # -> we should u
d5f0: 70 64 61 74 65 20 74 68 65 20 6d 61 6e 70 61 67  pdate the manpag
d600: 65 29 2e 0a 0a 09 09 23 66 6f 72 65 61 63 68 20  e).....#foreach 
d610: 6e 20 24 6e 6f 64 65 73 20 7b 6c 61 70 70 65 6e  n $nodes {lappen
d620: 64 20 74 73 74 72 69 6e 67 20 5b 70 20 67 65 74  d tstring [p get
d630: 20 24 6e 20 2d 6b 65 79 20 74 79 70 65 5d 7d 0a   $n -key type]}.
d640: 09 09 23 70 75 74 73 20 73 74 64 65 72 72 20 2d  ..#puts stderr -
d650: 2d 5b 6a 6f 69 6e 20 24 74 73 74 72 69 6e 67 5d  -[join $tstring]
d660: 2d 2d 0a 0a 09 09 73 65 74 20 6c 65 76 65 6c 20  --....set level 
d670: 31 0a 09 09 73 65 74 20 66 6f 75 6e 64 20 30 0a  1...set found 0.
d680: 09 09 66 6f 72 65 61 63 68 20 6e 20 24 6e 6f 64  ..foreach n $nod
d690: 65 73 20 7b 0a 09 09 20 20 20 20 73 65 74 20 74  es {...    set t
d6a0: 79 70 65 20 5b 24 74 72 65 65 20 67 65 74 20 24  ype [$tree get $
d6b0: 6e 20 74 79 70 65 5d 0a 09 09 20 20 20 20 69 66  n type]...    if
d6c0: 20 7b 30 20 3d 3d 20 5b 73 74 72 69 6e 67 20 63   {0 == [string c
d6d0: 6f 6d 70 61 72 65 20 24 74 61 67 20 24 74 79 70  ompare $tag $typ
d6e0: 65 5d 7d 20 7b 0a 09 09 09 23 20 46 6f 75 6e 64  e]} {....# Found
d6f0: 20 61 6e 20 65 61 72 6c 69 65 72 20 6f 70 65 6e   an earlier open
d700: 20 74 61 67 20 2d 3e 20 28 62 29 2e 0a 09 09 09   tag -> (b).....
d710: 73 65 74 20 66 6f 75 6e 64 20 31 0a 09 09 09 62  set found 1....b
d720: 72 65 61 6b 0a 09 09 20 20 20 20 7d 0a 09 09 20  reak...    }... 
d730: 20 20 20 69 6e 63 72 20 6c 65 76 65 6c 0a 09 09     incr level...
d740: 7d 0a 09 09 69 66 20 7b 24 66 6f 75 6e 64 7d 20  }...if {$found} 
d750: 7b 0a 09 09 20 20 20 20 3a 3a 68 74 6d 6c 70 61  {...    ::htmlpa
d760: 72 73 65 3a 3a 74 61 67 73 20 70 6f 70 20 24 6c  rse::tags pop $l
d770: 65 76 65 6c 0a 09 09 20 20 20 20 69 66 20 7b 24  evel...    if {$
d780: 6c 65 76 65 6c 20 3e 20 31 7d 20 7b 0a 09 09 09  level > 1} {....
d790: 23 66 6f 72 65 61 63 68 20 6e 20 24 6e 6f 64 65  #foreach n $node
d7a0: 73 20 7b 6c 61 70 70 65 6e 64 20 74 73 74 72 69  s {lappend tstri
d7b0: 6e 67 20 5b 24 74 72 65 65 20 67 65 74 20 24 6e  ng [$tree get $n
d7c0: 20 74 79 70 65 5d 7d 0a 09 09 09 23 70 75 74 73   type]}....#puts
d7d0: 20 73 74 64 65 72 72 20 22 5c 74 64 65 73 79 6e   stderr "\tdesyn
d7e0: 63 20 61 74 20 3c 24 74 61 67 3e 20 28 24 74 73  c at <$tag> ($ts
d7f0: 74 72 69 6e 67 29 20 3d 3e 20 70 6f 70 20 24 6c  tring) => pop $l
d800: 65 76 65 6c 22 0a 09 09 20 20 20 20 7d 0a 09 09  evel"...    }...
d810: 7d 20 65 6c 73 65 20 7b 0a 09 09 20 20 20 20 23  } else {...    #
d820: 66 6f 72 65 61 63 68 20 6e 20 24 6e 6f 64 65 73  foreach n $nodes
d830: 20 7b 6c 61 70 70 65 6e 64 20 74 73 74 72 69 6e   {lappend tstrin
d840: 67 20 5b 24 74 72 65 65 20 67 65 74 20 24 6e 20  g [$tree get $n 
d850: 74 79 70 65 5d 7d 0a 09 09 20 20 20 20 23 70 75  type]}...    #pu
d860: 74 73 20 73 74 64 65 72 72 20 22 5c 74 64 65 73  ts stderr "\tdes
d870: 79 6e 63 20 61 74 20 3c 24 74 61 67 3e 20 28 24  ync at <$tag> ($
d880: 74 73 74 72 69 6e 67 29 20 3d 3e 20 69 67 6e 6f  tstring) => igno
d890: 72 65 22 0a 09 09 7d 0a 09 20 20 20 20 7d 0a 09  re"...}..    }..
d8a0: 7d 0a 0a 09 23 20 49 66 20 74 68 65 72 65 20 69  }...# If there i
d8b0: 73 20 74 65 78 74 20 62 65 68 69 6e 64 20 61 20  s text behind a 
d8c0: 63 6c 6f 73 69 6e 67 20 74 61 67 20 58 20 69 74  closing tag X it
d8d0: 20 62 65 6c 6f 6e 67 73 20 74 6f 20 74 68 65 0a   belongs to the.
d8e0: 09 23 20 70 61 72 65 6e 74 20 74 61 67 20 6f 66  .# parent tag of
d8f0: 20 58 2e 0a 0a 09 69 66 20 7b 24 74 65 78 74 42   X....if {$textB
d900: 65 68 69 6e 64 54 68 65 54 61 67 20 21 3d 20 7b  ehindTheTag != {
d910: 7d 7d 20 7b 0a 09 20 20 20 20 23 20 41 74 74 61  }} {..    # Atta
d920: 63 68 20 74 68 65 20 74 65 78 74 20 62 65 68 69  ch the text behi
d930: 6e 64 20 74 68 65 20 63 6c 6f 73 69 6e 67 20 74  nd the closing t
d940: 61 67 20 74 6f 20 74 68 65 20 72 65 6f 70 65 6e  ag to the reopen
d950: 65 64 0a 09 20 20 20 20 23 20 63 6f 6e 74 65 78  ed..    # contex
d960: 74 2e 0a 0a 09 20 20 20 20 73 65 74 20 20 20 20  t....    set    
d970: 20 20 20 20 70 63 64 20 20 5b 24 74 72 65 65 20      pcd  [$tree 
d980: 69 6e 73 65 72 74 20 5b 3a 3a 68 74 6d 6c 70 61  insert [::htmlpa
d990: 72 73 65 3a 3a 74 61 67 73 20 70 65 65 6b 5d 20  rse::tags peek] 
d9a0: 65 6e 64 5d 0a 09 20 20 20 20 24 74 72 65 65 20  end]..    $tree 
d9b0: 73 65 74 20 24 70 63 64 20 20 74 79 70 65 20 50  set $pcd  type P
d9c0: 43 44 41 54 41 0a 09 20 20 20 20 24 74 72 65 65  CDATA..    $tree
d9d0: 20 73 65 74 20 24 70 63 64 20 20 64 61 74 61 20   set $pcd  data 
d9e0: 24 74 65 78 74 42 65 68 69 6e 64 54 68 65 54 61  $textBehindTheTa
d9f0: 67 0a 09 7d 0a 0a 20 20 20 20 7d 20 65 6c 73 65  g..}..    } else
da00: 20 7b 0a 09 23 20 48 61 6e 64 6c 65 20 6f 70 65   {..# Handle ope
da10: 6e 69 6e 67 20 74 61 67 73 2e 20 54 68 65 20 73  ning tags. The s
da20: 74 61 6e 64 61 72 64 20 6f 70 65 72 61 74 69 6f  tandard operatio
da30: 6e 20 66 6f 72 20 6d 6f 73 74 20 69 73 20 74 6f  n for most is to
da40: 0a 09 23 20 70 75 73 68 20 74 68 65 6d 20 6f 6e  ..# push them on
da50: 74 6f 20 74 68 65 20 73 74 61 63 6b 20 61 6e 64  to the stack and
da60: 20 74 68 75 73 20 6f 70 65 6e 20 61 20 6e 65 73   thus open a nes
da70: 74 65 64 20 63 6f 6e 74 65 78 74 2e 0a 09 23 20  ted context...# 
da80: 54 68 69 73 20 64 6f 65 73 20 6e 6f 74 20 68 61  This does not ha
da90: 70 70 65 6e 20 66 6f 72 20 62 6f 74 68 20 74 68  ppen for both th
daa0: 65 20 6f 70 74 69 6f 6e 61 6c 20 74 61 67 73 20  e optional tags 
dab0: 28 70 2c 20 6c 69 29 20 61 6e 64 0a 09 23 20 74  (p, li) and..# t
dac0: 68 65 20 6f 6e 65 73 20 77 68 69 63 68 20 64 6f  he ones which do
dad0: 6e 27 74 20 68 61 76 65 20 63 6c 6f 73 69 6e 67  n't have closing
dae0: 20 74 61 67 73 20 28 6d 65 74 61 2c 20 62 72 2c   tags (meta, br,
daf0: 20 6f 70 74 69 6f 6e 2c 0a 09 23 20 69 6e 70 75   option,..# inpu
db00: 74 2c 20 61 72 65 61 2c 20 69 6d 67 29 2e 0a 09  t, area, img)...
db10: 23 0a 09 23 20 54 68 65 20 74 65 78 74 20 63 6f  #..# The text co
db20: 6d 69 6e 67 20 77 69 74 68 20 74 68 65 20 74 61  ming with the ta
db30: 67 20 77 69 6c 6c 20 62 65 20 61 64 64 65 64 20  g will be added 
db40: 61 66 74 65 72 20 74 68 65 20 74 61 67 20 69 66  after the tag if
db50: 0a 09 23 20 69 74 20 69 73 20 61 20 74 61 67 20  ..# it is a tag 
db60: 77 69 74 68 6f 75 74 20 61 20 6d 61 74 63 68 69  without a matchi
db70: 6e 67 20 63 6c 6f 73 65 2c 20 65 6c 73 65 20 69  ng close, else i
db80: 74 20 77 69 6c 6c 20 62 65 20 61 64 64 65 64 0a  t will be added.
db90: 09 23 20 61 73 20 61 20 6e 6f 64 65 20 62 65 6c  .# as a node bel
dba0: 6f 77 20 74 68 65 20 74 61 67 20 28 61 73 20 69  ow the tag (as i
dbb0: 74 20 69 73 20 74 68 65 20 72 65 67 69 6f 6e 20  t is the region 
dbc0: 62 65 74 77 65 65 6e 20 74 68 65 0a 09 23 20 6f  between the..# o
dbd0: 70 65 6e 69 6e 67 20 61 6e 64 20 63 6c 6f 73 69  pening and closi
dbe0: 6e 67 20 74 61 67 20 61 6e 64 20 74 68 75 73 20  ng tag and thus 
dbf0: 6e 65 73 74 65 64 20 69 6e 73 69 64 65 29 2e 20  nested inside). 
dc00: 45 6d 70 74 79 20 74 65 78 74 0a 09 23 20 69 73  Empty text..# is
dc10: 20 69 67 6e 6f 72 65 64 20 75 6e 64 65 72 20 61   ignored under a
dc20: 6c 6c 20 63 69 72 63 63 75 6d 73 74 61 6e 63 65  ll circcumstance
dc30: 73 2e 0a 0a 09 73 65 74 20 20 20 20 20 20 20 20  s....set        
dc40: 6e 6f 64 65 20 5b 24 74 72 65 65 20 69 6e 73 65  node [$tree inse
dc50: 72 74 20 5b 3a 3a 68 74 6d 6c 70 61 72 73 65 3a  rt [::htmlparse:
dc60: 3a 74 61 67 73 20 70 65 65 6b 5d 20 65 6e 64 5d  :tags peek] end]
dc70: 0a 09 24 74 72 65 65 20 73 65 74 20 24 6e 6f 64  ..$tree set $nod
dc80: 65 20 74 79 70 65 20 24 74 61 67 0a 09 24 74 72  e type $tag..$tr
dc90: 65 65 20 73 65 74 20 24 6e 6f 64 65 20 64 61 74  ee set $node dat
dca0: 61 20 24 70 61 72 61 6d 0a 0a 09 69 66 20 7b 24  a $param...if {$
dcb0: 74 65 78 74 42 65 68 69 6e 64 54 68 65 54 61 67  textBehindTheTag
dcc0: 20 21 3d 20 7b 7d 7d 20 7b 0a 09 20 20 20 20 73   != {}} {..    s
dcd0: 77 69 74 63 68 20 2d 65 78 61 63 74 20 2d 2d 20  witch -exact -- 
dce0: 24 74 61 67 20 7b 0a 09 09 69 6e 70 75 74 20 2d  $tag {...input -
dcf0: 09 61 72 65 61 20 2d 20 69 6d 67 20 2d 20 62 72  .area - img - br
dd00: 20 7b 0a 09 09 20 20 20 20 73 65 74 20 70 63 64   {...    set pcd
dd10: 20 20 5b 24 74 72 65 65 20 69 6e 73 65 72 74 20    [$tree insert 
dd20: 5b 3a 3a 68 74 6d 6c 70 61 72 73 65 3a 3a 74 61  [::htmlparse::ta
dd30: 67 73 20 70 65 65 6b 5d 20 65 6e 64 5d 0a 09 09  gs peek] end]...
dd40: 7d 0a 09 09 64 65 66 61 75 6c 74 20 7b 0a 09 09  }...default {...
dd50: 20 20 20 20 73 65 74 20 70 63 64 20 20 5b 24 74      set pcd  [$t
dd60: 72 65 65 20 69 6e 73 65 72 74 20 24 6e 6f 64 65  ree insert $node
dd70: 20 65 6e 64 5d 0a 09 09 7d 0a 09 20 20 20 20 7d   end]...}..    }
dd80: 0a 09 20 20 20 20 24 74 72 65 65 20 73 65 74 20  ..    $tree set 
dd90: 24 70 63 64 20 74 79 70 65 20 50 43 44 41 54 41  $pcd type PCDATA
dda0: 0a 09 20 20 20 20 24 74 72 65 65 20 73 65 74 20  ..    $tree set 
ddb0: 24 70 63 64 20 64 61 74 61 20 24 74 65 78 74 42  $pcd data $textB
ddc0: 65 68 69 6e 64 54 68 65 54 61 67 0a 09 7d 0a 0a  ehindTheTag..}..
ddd0: 09 3a 3a 68 74 6d 6c 70 61 72 73 65 3a 3a 74 61  .::htmlparse::ta
dde0: 67 73 20 70 75 73 68 20 24 6e 6f 64 65 0a 0a 09  gs push $node...
ddf0: 23 20 53 70 65 63 69 61 6c 20 68 61 6e 64 6c 69  # Special handli
de00: 6e 67 3a 20 3c 70 3e 2c 20 3c 6c 69 3e 20 6d 61  ng: <p>, <li> ma
de10: 79 20 68 61 76 65 20 6e 6f 20 63 6c 6f 73 69 6e  y have no closin
de20: 67 20 74 61 67 20 3d 3e 20 70 6f 70 0a 09 23 20  g tag => pop..# 
de30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
de40: 3a 20 74 68 65 6d 20 69 6d 6d 65 64 69 61 74 65  : them immediate
de50: 6c 79 2e 0a 09 23 0a 09 23 20 53 70 65 63 69 61  ly...#..# Specia
de60: 6c 20 68 61 6e 64 6c 69 6e 67 3a 20 3c 6d 65 74  l handling: <met
de70: 61 3e 2c 20 3c 62 72 3e 2c 20 3c 6f 70 74 69 6f  a>, <br>, <optio
de80: 6e 3e 2c 20 3c 69 6e 70 75 74 3e 2c 20 3c 61 72  n>, <input>, <ar
de90: 65 61 3e 2c 0a 09 23 20 20 20 20 20 20 20 20 20  ea>,..#         
dea0: 20 20 20 20 20 20 20 20 3a 20 3c 69 6d 67 3e 3a          : <img>:
deb0: 20 6e 6f 20 63 6c 6f 73 69 6e 67 20 74 61 67 73   no closing tags
dec0: 20 66 6f 72 20 74 68 65 73 65 2e 0a 0a 09 73 77   for these....sw
ded0: 69 74 63 68 20 2d 65 78 61 63 74 20 2d 2d 20 24  itch -exact -- $
dee0: 74 61 67 20 7b 0a 09 20 20 20 20 68 72 20 2d 20  tag {..    hr - 
def0: 62 61 73 65 20 2d 20 6d 65 74 61 20 2d 20 6c 69  base - meta - li
df00: 20 2d 20 62 72 20 2d 20 6f 70 74 69 6f 6e 20 2d   - br - option -
df10: 20 69 6e 70 75 74 20 2d 20 61 72 65 61 20 2d 20   input - area - 
df20: 69 6d 67 20 2d 20 70 20 2d 20 68 31 20 2d 20 68  img - p - h1 - h
df30: 32 20 2d 20 68 33 20 2d 20 68 34 20 2d 20 68 35  2 - h3 - h4 - h5
df40: 20 2d 20 68 36 20 7b 0a 09 09 3a 3a 68 74 6d 6c   - h6 {...::html
df50: 70 61 72 73 65 3a 3a 74 61 67 73 20 70 6f 70 0a  parse::tags pop.
df60: 09 20 20 20 20 7d 0a 09 20 20 20 20 64 65 66 61  .    }..    defa
df70: 75 6c 74 20 7b 7d 0a 09 7d 0a 20 20 20 20 7d 0a  ult {}..}.    }.
df80: 7d 0a 0a 23 20 68 74 6d 6c 70 61 72 73 65 3a 3a  }..# htmlparse::
df90: 72 65 6d 6f 76 65 56 69 73 75 61 6c 46 6c 75 66  removeVisualFluf
dfa0: 66 20 2d 2d 0a 23 0a 23 09 54 68 69 73 20 63 6f  f --.#.#.This co
dfb0: 6d 6d 61 6e 64 20 77 61 6c 6b 73 20 61 20 74 72  mmand walks a tr
dfc0: 65 65 20 61 73 20 67 65 6e 65 72 61 74 65 64 20  ee as generated 
dfd0: 62 79 20 27 3a 3a 68 74 6d 6c 70 61 72 73 65 3a  by '::htmlparse:
dfe0: 3a 32 74 72 65 65 27 0a 23 09 61 6e 64 20 72 65  :2tree'.#.and re
dff0: 6d 6f 76 65 73 20 61 6c 6c 20 74 68 65 20 6e 6f  moves all the no
e000: 64 65 73 20 77 68 69 63 68 20 72 65 70 72 65 73  des which repres
e010: 65 6e 74 20 76 69 73 75 61 6c 20 74 61 67 73 20  ent visual tags 
e020: 61 6e 64 20 6e 6f 74 0a 23 09 73 74 72 75 63 74  and not.#.struct
e030: 75 72 61 6c 20 6f 6e 65 73 2e 20 54 68 65 20 70  ural ones. The p
e040: 75 72 70 6f 73 65 20 6f 66 20 74 68 65 20 63 6f  urpose of the co
e050: 6d 6d 61 6e 64 20 69 73 20 74 6f 20 6d 61 6b 65  mmand is to make
e060: 20 74 68 65 0a 23 09 74 72 65 65 20 65 61 73 69   the.#.tree easi
e070: 65 72 20 74 6f 20 6e 61 76 69 67 61 74 65 20 77  er to navigate w
e080: 69 74 68 6f 75 74 20 67 65 74 74 69 6e 67 20 62  ithout getting b
e090: 6f 67 67 65 64 20 64 6f 77 6e 20 69 6e 20 76 69  ogged down in vi
e0a0: 73 75 61 6c 0a 23 09 69 6e 66 6f 72 6d 61 74 69  sual.#.informati
e0b0: 6f 6e 20 6e 6f 74 20 72 65 6c 65 76 61 6e 74 20  on not relevant 
e0c0: 74 6f 20 74 68 65 20 73 65 61 72 63 68 2e 0a 23  to the search..#
e0d0: 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 09  .# Arguments:.#.
e0e0: 74 72 65 65 09 54 68 65 20 6e 61 6d 65 20 6f 66  tree.The name of
e0f0: 20 74 68 65 20 74 72 65 65 20 74 6f 20 63 75 74   the tree to cut
e100: 20 64 6f 77 6e 2e 0a 23 0a 23 20 53 69 64 65 20   down..#.# Side 
e110: 45 66 66 65 63 74 73 3a 0a 23 09 4d 6f 64 69 66  Effects:.#.Modif
e120: 69 65 73 20 74 68 65 20 73 70 65 63 69 66 69 65  ies the specifie
e130: 64 20 74 72 65 65 2e 0a 23 0a 23 20 52 65 73 75  d tree..#.# Resu
e140: 6c 74 73 3a 0a 23 09 4e 6f 6e 65 2e 0a 0a 70 72  lts:.#.None...pr
e150: 6f 63 20 3a 3a 68 74 6d 6c 70 61 72 73 65 3a 3a  oc ::htmlparse::
e160: 72 65 6d 6f 76 65 56 69 73 75 61 6c 46 6c 75 66  removeVisualFluf
e170: 66 20 7b 74 72 65 65 7d 20 7b 0a 20 20 20 20 24  f {tree} {.    $
e180: 74 72 65 65 20 77 61 6c 6b 20 72 6f 6f 74 20 2d  tree walk root -
e190: 6f 72 64 65 72 20 70 6f 73 74 20 6e 20 7b 0a 09  order post n {..
e1a0: 3a 3a 68 74 6d 6c 70 61 72 73 65 3a 3a 52 65 6d  ::htmlparse::Rem
e1b0: 6f 76 65 56 69 73 75 61 6c 46 6c 75 66 66 20 24  oveVisualFluff $
e1c0: 74 72 65 65 20 24 6e 0a 20 20 20 20 7d 0a 20 20  tree $n.    }.  
e1d0: 20 20 72 65 74 75 72 6e 0a 7d 0a 0a 23 20 68 74    return.}..# ht
e1e0: 6d 6c 70 61 72 73 65 3a 3a 72 65 6d 6f 76 65 46  mlparse::removeF
e1f0: 6f 72 6d 44 65 66 73 20 2d 2d 0a 23 0a 23 09 4c  ormDefs --.#.#.L
e200: 69 6b 65 20 27 3a 3a 68 74 6d 6c 70 61 72 73 65  ike '::htmlparse
e210: 3a 3a 72 65 6d 6f 76 65 56 69 73 75 61 6c 46 6c  ::removeVisualFl
e220: 75 66 66 27 20 74 68 69 73 20 63 6f 6d 6d 61 6e  uff' this comman
e230: 64 20 69 73 20 68 65 72 65 20 74 6f 0a 23 09 63  d is here to.#.c
e240: 75 74 20 64 6f 77 6e 20 6f 6e 20 74 68 65 20 73  ut down on the s
e250: 69 7a 65 20 6f 66 20 74 68 65 20 74 72 65 65 20  ize of the tree 
e260: 61 73 20 67 65 6e 65 72 61 74 65 64 20 62 79 0a  as generated by.
e270: 23 09 27 3a 3a 68 74 6d 6c 70 61 72 73 65 3a 3a  #.'::htmlparse::
e280: 32 74 72 65 65 27 2e 20 49 74 20 72 65 6d 6f 76  2tree'. It remov
e290: 65 73 20 61 6c 6c 20 6e 6f 64 65 73 20 72 65 70  es all nodes rep
e2a0: 72 65 73 65 6e 74 69 6e 67 20 66 6f 72 6d 73 0a  resenting forms.
e2b0: 23 09 61 6e 64 20 66 6f 72 6d 20 65 6c 65 6d 65  #.and form eleme
e2c0: 6e 74 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e  nts..#.# Argumen
e2d0: 74 73 3a 0a 23 09 74 72 65 65 09 54 68 65 20 6e  ts:.#.tree.The n
e2e0: 61 6d 65 20 6f 66 20 74 68 65 20 74 72 65 65 20  ame of the tree 
e2f0: 74 6f 20 63 75 74 20 64 6f 77 6e 2e 0a 23 0a 23  to cut down..#.#
e300: 20 53 69 64 65 20 45 66 66 65 63 74 73 3a 0a 23   Side Effects:.#
e310: 09 4d 6f 64 69 66 69 65 73 20 74 68 65 20 73 70  .Modifies the sp
e320: 65 63 69 66 69 65 64 20 74 72 65 65 2e 0a 23 0a  ecified tree..#.
e330: 23 20 52 65 73 75 6c 74 73 3a 0a 23 09 4e 6f 6e  # Results:.#.Non
e340: 65 2e 0a 0a 70 72 6f 63 20 3a 3a 68 74 6d 6c 70  e...proc ::htmlp
e350: 61 72 73 65 3a 3a 72 65 6d 6f 76 65 46 6f 72 6d  arse::removeForm
e360: 44 65 66 73 20 7b 74 72 65 65 7d 20 7b 0a 20 20  Defs {tree} {.  
e370: 20 20 24 74 72 65 65 20 77 61 6c 6b 20 72 6f 6f    $tree walk roo
e380: 74 20 2d 6f 72 64 65 72 20 70 6f 73 74 20 6e 20  t -order post n 
e390: 7b 0a 09 3a 3a 68 74 6d 6c 70 61 72 73 65 3a 3a  {..::htmlparse::
e3a0: 52 65 6d 6f 76 65 46 6f 72 6d 44 65 66 73 20 24  RemoveFormDefs $
e3b0: 74 72 65 65 20 24 6e 0a 20 20 20 20 7d 0a 20 20  tree $n.    }.  
e3c0: 20 20 72 65 74 75 72 6e 0a 7d 0a 0a 23 20 68 74    return.}..# ht
e3d0: 6d 6c 70 61 72 73 65 3a 3a 52 65 6d 6f 76 65 56  mlparse::RemoveV
e3e0: 69 73 75 61 6c 46 6c 75 66 66 20 2d 2d 0a 23 0a  isualFluff --.#.
e3f0: 23 09 49 6e 74 65 72 6e 61 6c 20 68 65 6c 70 65  #.Internal helpe
e400: 72 20 63 6f 6d 6d 61 6e 64 20 74 6f 0a 23 09 27  r command to.#.'
e410: 3a 3a 68 74 6d 6c 70 61 72 73 65 3a 3a 72 65 6d  ::htmlparse::rem
e420: 6f 76 65 56 69 73 75 61 6c 46 6c 75 66 66 27 2e  oveVisualFluff'.
e430: 20 44 6f 65 73 20 74 68 65 20 61 63 74 75 61 6c   Does the actual
e440: 20 77 6f 72 6b 2e 0a 23 0a 23 20 41 72 67 75 6d   work..#.# Argum
e450: 65 6e 74 73 3a 0a 23 09 74 72 65 65 09 54 68 65  ents:.#.tree.The
e460: 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 74 72 65   name of the tre
e470: 65 20 63 75 72 72 65 6e 74 6c 79 20 70 72 6f 63  e currently proc
e480: 65 73 73 65 64 0a 23 09 6e 6f 64 65 09 54 68 65  essed.#.node.The
e490: 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6e 6f 64   name of the nod
e4a0: 65 20 74 6f 20 6c 6f 6f 6b 20 61 74 2e 0a 23 0a  e to look at..#.
e4b0: 23 20 53 69 64 65 20 45 66 66 65 63 74 73 3a 0a  # Side Effects:.
e4c0: 23 09 4d 6f 64 69 66 69 65 73 20 74 68 65 20 73  #.Modifies the s
e4d0: 70 65 63 69 66 69 65 64 20 74 72 65 65 2e 0a 23  pecified tree..#
e4e0: 0a 23 20 52 65 73 75 6c 74 73 3a 0a 23 09 4e 6f  .# Results:.#.No
e4f0: 6e 65 2e 0a 0a 70 72 6f 63 20 3a 3a 68 74 6d 6c  ne...proc ::html
e500: 70 61 72 73 65 3a 3a 52 65 6d 6f 76 65 56 69 73  parse::RemoveVis
e510: 75 61 6c 46 6c 75 66 66 20 7b 74 72 65 65 20 6e  ualFluff {tree n
e520: 6f 64 65 7d 20 7b 0a 20 20 20 20 73 77 69 74 63  ode} {.    switc
e530: 68 20 2d 65 78 61 63 74 20 2d 2d 20 5b 24 74 72  h -exact -- [$tr
e540: 65 65 20 67 65 74 20 24 6e 6f 64 65 20 74 79 70  ee get $node typ
e550: 65 5d 20 7b 0a 09 68 6d 73 74 61 72 74 20 2d 20  e] {..hmstart - 
e560: 68 74 6d 6c 20 2d 20 66 6f 6e 74 20 2d 20 63 65  html - font - ce
e570: 6e 74 65 72 20 2d 20 64 69 76 20 2d 20 73 75 70  nter - div - sup
e580: 20 2d 20 62 20 2d 20 69 20 7b 0a 09 20 20 20 20   - b - i {..    
e590: 23 20 52 65 6d 6f 76 65 73 20 74 68 65 20 6e 6f  # Removes the no
e5a0: 64 65 2c 20 62 75 74 20 64 6f 65 73 20 6e 6f 74  de, but does not
e5b0: 20 61 66 66 65 63 74 20 74 68 65 20 6e 6f 64 65   affect the node
e5c0: 73 20 62 65 6c 6f 77 0a 09 20 20 20 20 23 20 69  s below..    # i
e5d0: 74 2e 20 54 68 65 73 65 20 61 72 65 20 6a 75 73  t. These are jus
e5e0: 74 20 6d 61 64 65 20 69 6e 74 6f 20 63 68 69 69  t made into chii
e5f0: 6c 64 72 65 6e 20 6f 66 20 74 68 65 20 70 61 72  ldren of the par
e600: 65 6e 74 20 6f 66 0a 09 20 20 20 20 23 20 74 68  ent of..    # th
e610: 69 73 20 6e 6f 64 65 2c 20 69 6e 20 69 74 73 20  is node, in its 
e620: 70 6c 61 63 65 2e 0a 0a 09 20 20 20 20 24 74 72  place....    $tr
e630: 65 65 20 63 75 74 20 24 6e 6f 64 65 0a 09 7d 0a  ee cut $node..}.
e640: 09 73 63 72 69 70 74 20 2d 20 6f 70 74 69 6f 6e  .script - option
e650: 20 2d 20 73 65 6c 65 63 74 20 2d 20 6d 65 74 61   - select - meta
e660: 20 2d 20 6d 61 70 20 2d 20 69 6d 67 20 7b 0a 09   - map - img {..
e670: 20 20 20 20 23 20 52 65 6d 6f 76 65 73 20 74 68      # Removes th
e680: 69 73 20 6e 6f 64 65 20 61 6e 64 20 65 76 65 72  is node and ever
e690: 79 74 68 69 6e 67 20 62 65 6c 6f 77 20 69 74 2e  ything below it.
e6a0: 0a 09 20 20 20 20 24 74 72 65 65 20 64 65 6c 65  ..    $tree dele
e6b0: 74 65 20 24 6e 6f 64 65 0a 09 7d 0a 09 64 65 66  te $node..}..def
e6c0: 61 75 6c 74 20 7b 0a 09 20 20 20 20 23 20 49 67  ault {..    # Ig
e6d0: 6e 6f 72 65 20 74 61 67 0a 09 7d 0a 20 20 20 20  nore tag..}.    
e6e0: 7d 0a 7d 0a 0a 23 20 68 74 6d 6c 70 61 72 73 65  }.}..# htmlparse
e6f0: 3a 3a 52 65 6d 6f 76 65 46 6f 72 6d 44 65 66 73  ::RemoveFormDefs
e700: 20 2d 2d 0a 23 0a 23 09 49 6e 74 65 72 6e 61 6c   --.#.#.Internal
e710: 20 68 65 6c 70 65 72 20 63 6f 6d 6d 61 6e 64 20   helper command 
e720: 74 6f 0a 23 09 27 3a 3a 68 74 6d 6c 70 61 72 73  to.#.'::htmlpars
e730: 65 3a 3a 72 65 6d 6f 76 65 46 6f 72 6d 44 65 66  e::removeFormDef
e740: 73 27 2e 20 44 6f 65 73 20 74 68 65 20 61 63 74  s'. Does the act
e750: 75 61 6c 20 77 6f 72 6b 2e 0a 23 0a 23 20 41 72  ual work..#.# Ar
e760: 67 75 6d 65 6e 74 73 3a 0a 23 09 74 72 65 65 09  guments:.#.tree.
e770: 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20  The name of the 
e780: 74 72 65 65 20 63 75 72 72 65 6e 74 6c 79 20 70  tree currently p
e790: 72 6f 63 65 73 73 65 64 0a 23 09 6e 6f 64 65 09  rocessed.#.node.
e7a0: 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20  The name of the 
e7b0: 6e 6f 64 65 20 74 6f 20 6c 6f 6f 6b 20 61 74 2e  node to look at.
e7c0: 0a 23 0a 23 20 53 69 64 65 20 45 66 66 65 63 74  .#.# Side Effect
e7d0: 73 3a 0a 23 09 4d 6f 64 69 66 69 65 73 20 74 68  s:.#.Modifies th
e7e0: 65 20 73 70 65 63 69 66 69 65 64 20 74 72 65 65  e specified tree
e7f0: 2e 0a 23 0a 23 20 52 65 73 75 6c 74 73 3a 0a 23  ..#.# Results:.#
e800: 09 4e 6f 6e 65 2e 0a 0a 70 72 6f 63 20 3a 3a 68  .None...proc ::h
e810: 74 6d 6c 70 61 72 73 65 3a 3a 52 65 6d 6f 76 65  tmlparse::Remove
e820: 46 6f 72 6d 44 65 66 73 20 7b 74 72 65 65 20 6e  FormDefs {tree n
e830: 6f 64 65 7d 20 7b 0a 20 20 20 20 73 77 69 74 63  ode} {.    switc
e840: 68 20 2d 65 78 61 63 74 20 2d 2d 20 5b 24 74 72  h -exact -- [$tr
e850: 65 65 20 67 65 74 20 24 6e 6f 64 65 20 74 79 70  ee get $node typ
e860: 65 5d 20 7b 0a 09 66 6f 72 6d 20 7b 0a 09 20 20  e] {..form {..  
e870: 20 20 24 74 72 65 65 20 64 65 6c 65 74 65 20 24    $tree delete $
e880: 6e 6f 64 65 0a 09 7d 0a 09 64 65 66 61 75 6c 74  node..}..default
e890: 20 7b 0a 09 20 20 20 20 23 20 49 67 6e 6f 72 65   {..    # Ignore
e8a0: 20 74 61 67 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a   tag..}.    }.}.
e8b0: 0a 23 20 68 74 6d 6c 70 61 72 73 65 3a 3a 52 65  .# htmlparse::Re
e8c0: 6f 72 64 65 72 20 2d 2d 0a 0a 23 09 49 6e 74 65  order --..#.Inte
e8d0: 72 6e 61 6c 20 68 65 6c 70 65 72 20 63 6f 6d 6d  rnal helper comm
e8e0: 61 6e 64 20 74 6f 20 27 3a 3a 68 74 6d 6c 70 61  and to '::htmlpa
e8f0: 72 73 65 3a 3a 32 74 72 65 65 27 2e 20 4d 6f 76  rse::2tree'. Mov
e900: 65 73 20 74 68 65 0a 23 09 6e 6f 64 65 73 20 62  es the.#.nodes b
e910: 65 74 77 65 65 6e 20 70 2f 70 2c 20 6c 69 2f 6c  etween p/p, li/l
e920: 69 20 61 6e 64 20 68 3c 69 3e 20 73 65 71 75 65  i and h<i> seque
e930: 6e 63 65 73 20 62 65 6c 6f 77 20 74 68 65 0a 23  nces below the.#
e940: 09 70 61 72 61 67 72 61 70 68 73 20 61 6e 64 20  .paragraphs and 
e950: 69 74 65 6d 73 2e 20 49 4f 57 2c 20 63 6f 72 72  items. IOW, corr
e960: 65 63 74 73 20 6d 69 73 63 6f 6e 73 74 72 75 63  ects misconstruc
e970: 74 69 6f 6e 73 20 66 6f 72 0a 23 09 74 68 65 20  tions for.#.the 
e980: 6f 70 74 69 6f 6e 61 6c 20 6e 6f 64 65 20 74 79  optional node ty
e990: 70 65 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e  pes..#.# Argumen
e9a0: 74 73 3a 0a 23 09 74 72 65 65 09 54 68 65 20 6e  ts:.#.tree.The n
e9b0: 61 6d 65 20 6f 66 20 74 68 65 20 74 72 65 65 20  ame of the tree 
e9c0: 63 75 72 72 65 6e 74 6c 79 20 70 72 6f 63 65 73  currently proces
e9d0: 73 65 64 0a 23 09 6e 6f 64 65 09 54 68 65 20 6e  sed.#.node.The n
e9e0: 61 6d 65 20 6f 66 20 74 68 65 20 6e 6f 64 65 20  ame of the node 
e9f0: 74 6f 20 6c 6f 6f 6b 20 61 74 2e 0a 23 0a 23 20  to look at..#.# 
ea00: 53 69 64 65 20 45 66 66 65 63 74 73 3a 0a 23 09  Side Effects:.#.
ea10: 4d 6f 64 69 66 69 65 73 20 74 68 65 20 73 70 65  Modifies the spe
ea20: 63 69 66 69 65 64 20 74 72 65 65 2e 0a 23 0a 23  cified tree..#.#
ea30: 20 52 65 73 75 6c 74 73 3a 0a 23 09 4e 6f 6e 65   Results:.#.None
ea40: 2e 0a 0a 70 72 6f 63 20 3a 3a 68 74 6d 6c 70 61  ...proc ::htmlpa
ea50: 72 73 65 3a 3a 52 65 6f 72 64 65 72 20 7b 74 72  rse::Reorder {tr
ea60: 65 65 20 6e 6f 64 65 7d 20 7b 0a 20 20 20 20 73  ee node} {.    s
ea70: 77 69 74 63 68 20 2d 65 78 61 63 74 20 2d 2d 20  witch -exact -- 
ea80: 5b 73 65 74 20 74 70 20 5b 24 74 72 65 65 20 67  [set tp [$tree g
ea90: 65 74 20 24 6e 6f 64 65 20 74 79 70 65 5d 5d 20  et $node type]] 
eaa0: 7b 0a 09 68 31 20 2d 20 68 32 20 2d 20 68 33 20  {..h1 - h2 - h3 
eab0: 2d 20 68 34 20 2d 20 68 35 20 2d 20 68 36 20 2d  - h4 - h5 - h6 -
eac0: 20 70 20 2d 20 6c 69 20 7b 0a 09 20 20 20 20 23   p - li {..    #
ead0: 20 4c 6f 6f 6b 20 66 6f 72 20 72 69 67 68 74 20   Look for right 
eae0: 73 69 62 6c 69 6e 67 73 20 75 6e 74 69 6c 20 74  siblings until t
eaf0: 68 65 20 6e 65 78 74 20 6e 6f 64 65 20 77 69 74  he next node wit
eb00: 68 20 61 0a 09 20 20 20 20 23 20 73 69 6d 69 6c  h a..    # simil
eb10: 61 72 20 74 79 70 65 20 28 6f 72 20 65 6e 64 20  ar type (or end 
eb20: 6f 66 20 6c 65 76 65 6c 29 20 61 6e 64 20 6d 6f  of level) and mo
eb30: 76 65 20 74 68 65 73 65 20 62 65 6c 6f 77 20 74  ve these below t
eb40: 68 69 73 0a 09 20 20 20 20 23 20 6e 6f 64 65 2e  his..    # node.
eb50: 0a 0a 09 20 20 20 20 77 68 69 6c 65 20 7b 31 7d  ...    while {1}
eb60: 20 7b 0a 09 09 73 65 74 20 73 69 62 6c 69 6e 67   {...set sibling
eb70: 20 5b 24 74 72 65 65 20 6e 65 78 74 20 24 6e 6f   [$tree next $no
eb80: 64 65 5d 0a 09 09 69 66 20 7b 0a 09 09 20 20 20  de]...if {...   
eb90: 20 28 24 73 69 62 6c 69 6e 67 20 3d 3d 20 7b 7d   ($sibling == {}
eba0: 29 20 7c 7c 0a 09 09 20 20 20 20 28 5b 6c 73 65  ) ||...    ([lse
ebb0: 61 72 63 68 20 2d 65 78 61 63 74 20 7b 68 31 20  arch -exact {h1 
ebc0: 68 32 20 68 33 20 68 34 20 68 35 20 68 36 20 70  h2 h3 h4 h5 h6 p
ebd0: 20 6c 69 7d 20 5b 24 74 72 65 65 20 67 65 74 20   li} [$tree get 
ebe0: 24 73 69 62 6c 69 6e 67 20 74 79 70 65 5d 5d 20  $sibling type]] 
ebf0: 21 3d 20 2d 31 29 0a 09 09 7d 20 7b 0a 09 09 20  != -1)...} {... 
ec00: 20 20 20 62 72 65 61 6b 0a 09 09 7d 0a 09 09 24     break...}...$
ec10: 74 72 65 65 20 6d 6f 76 65 20 24 6e 6f 64 65 20  tree move $node 
ec20: 65 6e 64 20 24 73 69 62 6c 69 6e 67 0a 09 20 20  end $sibling..  
ec30: 20 20 7d 0a 09 7d 0a 09 64 65 66 61 75 6c 74 20    }..}..default 
ec40: 7b 0a 09 20 20 20 20 23 20 49 67 6e 6f 72 65 20  {..    # Ignore 
ec50: 74 61 67 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a  tag..}.    }.}..
ec60: 23 20 23 23 23 20 23 23 23 23 23 23 23 23 23 20  # ### ######### 
ec70: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
ec80: 23 23 23 23 23 23 23 23 23 23 23 0a 0a 70 61 63  ###########..pac
ec90: 6b 61 67 65 20 70 72 6f 76 69 64 65 20 68 74 6d  kage provide htm
eca0: 6c 70 61 72 73 65 20 31 2e 32 2e 32 0a           lparse 1.2.2.