
    g:^                        d Z ddlZddlZddlmZmZ ddlZdad Zddl	m
Z
 ddlmZ ddlmZ g d	Zd
ad:dZd Zd Zd Zd Z ee          Zdee                    d          <   d eD             Ze                    d eD                        ed         ed<   ed         ed<   ded<   d Zd Zd eD             Ze                    d eD                        d Zd Z ee          Z de e                     d          <   d e D             Z!e!                    d e D                        ed         e!d<   ed         e!d<   d e!d<   d!d"d#d$d%d&d'd(d)d*d+
Z"d,d-d.d/d0d1d2d3d4d5d6d7d8Z#d9 Z$d: Z%d; Z&d< Z'd= Z(d> Z)d? Z*i Z+i Z,d@D ]Z- e$e-          e+e-<   dAD ]Z- e(e-          e,e-<   dBD ]Z. e%e.          e+e.<   dC  e/dD          D             D ]Z0 e&e0          e+e0<    e)e0          e,e0<   dED ]Z1 e'e1          e+e1<    e*e1          e,e1<   i dFdG dHdI dJdK dLdM dNdO dPdQ dRdS dTdU dVdW dXdY dZd[ d\d] d^d_ d`da dbdc ddde dfdg dh di djZ2dk Z3dl Z4dm Z5dn Z6do Z7dp Z8dq Z9dr Z:i ds e6ds           e3ds           e7ds          fdsfdt e6dt           e3dt           e7dt          fdtfdu e6du           e4du           e8du          fdufdv e6dv           e4dv           e8dv          fdvfdw e6dx           e3dw           e7dw           e5dw          fdwfdy e6dx           e3dy           e7dy           e5dy          fdyfdz ed{          d| ed}          d~ ed          d ed          d ed          d ed          d ed          d ed          d ed          d ed{           ed           ed          fdfd ed{           ed           ed          fdf e6du           e6du           e8du          f ed          f e6dv           e6dv           e8dv          f ed          f e6du           e4du           e6du          f ed          f e6dv           e4dv           e6dv          f ed          f e6d           ed           ed          f ed7          f ed          d ed           ed          f ed          f ed           ed           ed           ed          d
Z;dddddddzddddddddZ<d Z=d Z>d Z? ed           ed           ed          dZ@d ZA eAd           eAd           eAd           eAd           eAd           eAd           eAd           eAd           eAd           eAd           eAd           eAd           eAd           eAd           eAd          dZBi ddÓddēddœdd edǦ          fdd edɦ          fdd ed˦          fdd͓ddϓddѓddӓddՓddדdd ed٦          fdd edۦ          r. edܦ          r# edۦ           edۦ          z    edܦ          z   ndfdd edަ          r9 edަ          r. edܦ          r# edަ           edަ          z    edܦ          z   ndfdd ed          fZCd ZDi d ed          d ed          d ed          d ed          od ed          z   d ed          d ed          d ed          d ed          o ed           ed          z   d ed          d ed          d ed          d ed          d ed          d ed          d ed          d ed           d ed          i d ed          d ed          d ed          d	 ed
          d ed          d ed          d ed          d ed          d ed          d ed          ddd ed          d ed          d ed          d ed          d ed          d  ed!           ed"           ed#           ed$           ed%           ed&           ed'           ed&           ed'           ed(           ed)           ed*           ed}           ed          d+ZEd;d,ZFd<d-ZGd. ZHeIJ                     e e/ eKd/           eKd0                               e e/ eKd1           eKd2                              z             ZLd3 ZMd4 ZNd5 ZOd6 ZPd=d8ZQd=d9ZRdS (>  z=Symbolic primitives + unicode/ASCII abstraction for pretty.py    N)ascii_lowercaseascii_uppercase c                 h    	 t          j        |           S # t          $ r t          d| z  z  aY dS w xY w)z
    Get a unicode character by name or, None if not found.

    This exists because older versions of Python use older unicode databases.
    zNo '%s' in unicodedata
N)unicodedatalookupKeyErrorunicode_warnings)names    b/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/printing/pretty/pretty_symbology.pyUr   
   sK    !$'''   84??tts    11)split_super_sub)greeks)sympy_deprecation_warning)
greek_unicodesubsupxsymvobjhobjpretty_symbol	annotated
center_padcenterFc                 r    | t           S | r"t          rt          j        t                     dat           }| a |S )z8Set whether pretty-printer should use unicode by defaultNr   )_use_unicoder
   warningswarn)flaguse_unicode_prevs     r   pretty_use_unicoder!   )   sG     |   &'''#L    c                  :   t          t          j        dd          } | dS g }|t                                          z  }|t
                                          z  }|D ]/}| dS 	 |                    |            # t          $ r Y  dS w xY wt          d           dS )z>See if unicode output is available and leverage it if possibleencodingNT)	getattrsysstdoutr   valuesatoms_tableencodeUnicodeEncodeErrorr!   )r$   symbolsss      r   pretty_try_use_unicoder.   :   s     sz:t44H G }##%%%G {!!###G  9FF	HHX! 	 	 	FFF	 ts   $A::
B	B	c                  8    t          ddd           t          |  S )Nzv
        The sympy.printing.pretty.pretty_symbology.xstr() function is
        deprecated. Use str() instead.
        z1.7z$deprecated-pretty-printing-functions)deprecated_since_versionactive_deprecations_target)r   str)argss    r   xstrr4   Y   s2    	 "'#I    :r"   c                 J    t          d|                                 z            S )NzGREEK SMALL LETTER %sr   upperls    r   <lambda>r:   e   s    a'!''))344 r"   c                 J    t          d|                                 z            S )NzGREEK CAPITAL LETTER %sr6   r8   s    r   r:   r:   f   s    a)AGGII566 r"   lamdalambdac                 .    i | ]}|t          |          S  g.0Ls     r   
<dictcomp>rE   m   s     000QAaDD000r"   c              #   ~   K   | ]8}|d                                           |dd         z   t          |          fV  9dS r      Nr7   GrB   s     r   	<genexpr>rK   n   sF      IIaadjjllQqrrU*AaDD1IIIIIIr"   LamdaLambdau   ςvarsigmac                 J    t          d|                                 z            S NzMATHEMATICAL BOLD SMALL %sr6   r8   s    r   r:   r:   v   s    a,qwwyy899 r"   c                 J    t          d|                                 z            S )NzMATHEMATICAL BOLD CAPITAL %sr6   r8   s    r   r:   r:   w   s    a.:;; r"   c                 .    i | ]}|t          |          S r?   )b)rC   r9   s     r   rE   rE   y   s     111A1Q44111r"   c              #   8   K   | ]}|t          |          fV  d S N)BrB   s     r   rK   rK   z   s,      77!Q!I777777r"   c                 J    t          d|                                 z            S rP   r6   r8   s    r   r:   r:   }   s    q-		9:: r"   c                 J    t          d|                                 z            S )NzMATHEMATICAL BOLD CAPITAL  %sr6   r8   s    r   r:   r:   ~   s    q017799<== r"   c                 .    i | ]}|t          |          S r?   r@   rB   s     r   rE   rE      s     :::!a1:::r"   c              #   ~   K   | ]8}|d                                           |dd         z   t          |          fV  9dS rG   rI   rB   s     r   rK   rK      sF      SS11Q4::<<!ABB%/16SSSSSSr"   u   𝛓ZEROONETWOTHREEFOURFIVESIXSEVENEIGHTNINE)
0123456789z	PLUS SIGNMINUSzEQUALS SIGNzLEFT PARENTHESISzRIGHT PARENTHESISzLEFT SQUARE BRACKETzRIGHT SQUARE BRACKETzLEFT CURLY BRACKETzRIGHT CURLY BRACKETzCURLY BRACKET	SUMMATIONINTEGRAL)+-=()[]{}{}sumintc                 J    t          d|                                 z            S )NzLATIN SUBSCRIPT SMALL LETTER %sr6   letters    r   r:   r:          a9FLLNNJKK r"   c                 J    t          d|                                 z            S )NzGREEK SUBSCRIPT SMALL LETTER %sr6   r   s    r   r:   r:      r   r"   c                 <    t          dt          |          z            S NzSUBSCRIPT %sr   
digit_2txtdigits    r   r:   r:      s    aE)::;; r"   c                 <    t          dt          |          z            S r   r   	symb_2txtsymbs    r   r:   r:      s    a4899 r"   c                 J    t          d|                                 z            S )Nz!SUPERSCRIPT LATIN SMALL LETTER %sr6   r   s    r   r:   r:      s    a;fllnnLMM r"   c                 <    t          dt          |          z            S NzSUPERSCRIPT %sr   r   s    r   r:   r:      s    a(:e+<<== r"   c                 <    t          dt          |          z            S r   r   r   s    r   r:   r:      s    a(9T?:;; r"   aeioruvxhklmnpstin)betagammarhophichic                 ,    g | ]}t          |          S r?   )r2   )rC   is     r   
<listcomp>r      s    	$	$	$Q#a&&	$	$	$r"   
   z+-=()mathringc                 "    t          | d          S )Nu   ̊center_accentr-   s    r   r:   r:      s    -+EFF r"   ddddotc                 "    t          | d          S )Nu   ⃜r   r   s    r   r:   r:      s    a)HII r"   dddotc                 "    t          | d          S )Nu   ⃛r   r   s    r   r:   r:      s    }Q(HII r"   ddotc                 "    t          | d          S )Nu   ̈r   r   s    r   r:   r:      s    mA'@AA r"   dotc                 "    t          | d          S )Nu   ̇r   r   s    r   r:   r:      s    ]1&?@@ r"   checkc                 "    t          | d          S )Nu   ̌r   r   s    r   r:   r:          }Q(=>> r"   brevec                 "    t          | d          S )Nu   ̆r   r   s    r   r:   r:      r   r"   acutec                 "    t          | d          S )Nu   ́r   r   s    r   r:   r:          }Q(DEE r"   gravec                 "    t          | d          S )N   ̀r   r   s    r   r:   r:      r   r"   tildec                 "    t          | d          S )Nu   ̃r   r   s    r   r:   r:      r   r"   hatc                 "    t          | d          S )Nu   ̂r   r   s    r   r:   r:          ]1&GHH r"   barc                 "    t          | d          S )Nu   ̅r   r   s    r   r:   r:      s    ]1&>?? r"   vecc                 "    t          | d          S )Nu   ⃗r   r   s    r   r:   r:      r   r"   primec                     | dz   S Nu   ′r?   r   s    r   r:   r:      s
    q} r"   prmc                     | dz   S r   r?   r   s    r   r:   r:      s
    Q{] r"   normc                     d| z   dz   S )Nu   ‖r?   r   s    r   r:   r:      s    023MM r"   avgc                     d| z   dz   S )Nu   ⟨u   ⟩r?   r   s    r   r:   r:      s    :1<=cc r"   c                     d| z   dz   S N|r?   r   s    r   r:   r:          (*+>> r"   c                     d| z   dz   S r   r?   r   s    r   r:   r:      r   r"   )absmagc                 <    t          dt          |          z            S )Nz%s UPPER HOOKr   r   s    r   r:   r:          1_y677 r"   c                 <    t          dt          |          z            S )Nz%s UPPER CORNERr   r   s    r   r:   r:          1&4899 r"   c                 <    t          dt          |          z            S )Nz%s MIDDLE PIECEr   r   s    r   r:   r:      r   r"   c                 <    t          dt          |          z            S )Nz%s EXTENSIONr   r   s    r   r:   r:      s    1^io566 r"   c                 <    t          dt          |          z            S )Nz%s LOWER HOOKr   r   s    r   r:   r:      r   r"   c                 <    t          dt          |          z            S )Nz%s LOWER CORNERr   r   s    r   r:   r:      r   r"   c                 <    t          dt          |          z            S )Nz%s TOPr   r   s    r   r:   r:      s    1X	$/00 r"   c                 <    t          dt          |          z            S )Nz	%s BOTTOMr   r   s    r   r:   r:      s    1[9T?233 r"   ru   rv   rw   rx   ry   r{   rz   r   zBOX DRAWINGS LIGHT VERTICALTeez$BOX DRAWINGS LIGHT UP AND HORIZONTALUpTackz&BOX DRAWINGS LIGHT DOWN AND HORIZONTALzcorner_up_centre(_extzLEFT PARENTHESIS EXTENSIONz)_extzRIGHT PARENTHESIS EXTENSIONz(_lower_hookzLEFT PARENTHESIS LOWER HOOKz)_lower_hookzRIGHT PARENTHESIS LOWER HOOKz(_upper_hookzLEFT PARENTHESIS UPPER HOOKz)_upper_hookzRIGHT PARENTHESIS UPPER HOOK<z5BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFTz5BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT>z
LEFT FLOORzRIGHT FLOORzLEFT CEILINGzRIGHT CEILINGr}   zTOP HALF INTEGRALzBOTTOM HALF INTEGRAL_OVERLINEzN-ARY SUMMATIONzBOX DRAWINGS LIGHT HORIZONTALzLOW LINE)
lfloorrfloorlceilrceilr}   r|   rs   r   /\)r   r   r   ru   )r   r   r   rv   ))rw   rw   rw   rw   ))rx   rx   rx   rx   ))r   r   r   r   ry   ))r   r   r   r   rz   )r   r   )r   r   )z | z  /z/  rs   r   r   )ru   rv   rw   rx   ry   rz   r   r   r   r}   rs   r   r   r   c                 2   |dk    rt          d          t          rt          }nt          }||          }dx}x}x}}t	          |t
                    s|}n`t	          |d         t
                    r|d         }	|d         }n|}	|	d         }	 |	d         }|	d         }|	d         }n# t          $ r Y nw xY w||}||}||}||dz  dk    r|dz  }n|}|dk    r|S g }
|dz
  dz  }|dz
  |dz  z
  }|
|gz  }
|
|g|z  z  }
|
|g|z  z  }
|
|g|z  z  }
|
|gz  }
|
S )zVConstruct spatial object of given length.

    return: [] of equal-length strings
    r   zLength should be greater than 0NrH         )
ValueErrorr   _xobj_unicode_xobj_ascii
isinstancetuple
IndexError)r   length_xobjvinfoc1topbotmidextvlongresnextnmids                r   xobjr   E  s    {{:;;;  $KEBsSeU## eAh&& 	!HEqBBEAh	(C(C(CC 	 	 	D	 
z
{
{
QJ1 aKF {{	
CQJ?DQJ$q& DC5LCC5:CC5:CC5:CC5LCJs   B$ $
B10B1c                 H    d                     t          | |                    S )zBConstruct vertical object of a given height

       see: xobj
    
joinr   )r   heights     r   r   r     s     
 99d4((***r"   c                 H    d                     t          | |                    S )zCConstruct horizontal object of a given width

       see: xobj
    r   r   )r   widths     r   r   r     s     
 77Du%%'''r"   zSQUARE ROOTz	CUBE ROOTzFOURTH ROOT)r   r      c                 &    t          d| z            S )NzVULGAR FRACTION %s)r   )txts    r   r:   r:     s    '#-.. r"   zONE HALFz	ONE THIRDz
TWO THIRDSzONE QUARTERzTHREE QUARTERSz	ONE FIFTHz
TWO FIFTHSzTHREE FIFTHSzFOUR FIFTHSz	ONE SIXTHzFIVE SIXTHSz
ONE EIGHTHzTHREE EIGHTHSzFIVE EIGHTHSzSEVEN EIGHTHS))rH   r   )rH   r   )r   r   )rH   r  )r   r  )rH      )r   r  )r   r  )r  r  )rH      )r  r  )rH      )r   r  )r  r  )   r  z==)rt   rt   )r   r   )r   r   z<=zLESS-THAN OR EQUAL TOz>=zGREATER-THAN OR EQUAL TOz!=zNOT EQUAL TO:=)r
  r
  +=)r  r  -=)r  r  *=)r  r  /=)r  r  %=)r  r  *zDOT OPERATORz-->zEM DASHzBLACK RIGHT-POINTING TRIANGLEz==>zBOX DRAWINGS DOUBLE HORIZONTAL.zRING OPERATORc                 J    t           |          }t          r|d         S |d         S )zget symbology for a 'character'rH   r   )_xsymr   )symops     r   r   r     s%    	sB !u!ur"   Exp1zSCRIPT SMALL EPizGREEK SMALL LETTER PIInfinityINFINITYNegativeInfinityImaginaryUnitzDOUBLE-STRUCK ITALIC SMALL IEmptySetz	EMPTY SETNaturalszDOUBLE-STRUCK CAPITAL N	Naturals0zSUBSCRIPT ZEROIntegerszDOUBLE-STRUCK CAPITAL Z	RationalszDOUBLE-STRUCK CAPITAL QRealszDOUBLE-STRUCK CAPITAL R	ComplexeszDOUBLE-STRUCK CAPITAL CUniversez$MATHEMATICAL DOUBLE-STRUCK CAPITAL UIdentityMatrixz$MATHEMATICAL DOUBLE-STRUCK CAPITAL I
ZeroMatrixz%MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO	OneMatrixz$MATHEMATICAL DOUBLE-STRUCK DIGIT ONEDifferentialzDOUBLE-STRUCK ITALIC SMALL DUnionUNION	ElementOfz
ELEMENT OFSmallElementOfzSMALL ELEMENT OFSymmetricDifference	INCREMENTIntersectionINTERSECTIONRingMultiplicationzMULTIPLICATION SIGNTensorProductzN-ARY CIRCLED TIMES OPERATORDotszHORIZONTAL ELLIPSISzModifier Letter Low RingEmptySequenceSuperscriptPluszSUPERSCRIPT PLUS SIGNSuperscriptMinuszSUPERSCRIPT MINUSDaggerDAGGERDegreezDEGREE SIGNAndzLOGICAL ANDOrz
LOGICAL ORzNOT SIGNNORNANDXORzLEFT RIGHT DOUBLE ARROWz#LEFT RIGHT DOUBLE ARROW WITH STROKEzRIGHTWARDS ARROWzRIGHTWARDS ARROW FROM BARzRIGHTWARDS ARROW WITH STROKE)NotNorNandXorEquivNotEquivImplies
NotImpliesArrowArrowFromBarNotArrow	TautologyContradictionc                     t           r5|&| dk    r |j        d         dk    rt          d          S t          |          S ||S t	          d          )z'return pretty representation of an atomNr  imaginary_unitjzDOUBLE-STRUCK ITALIC SMALL Jzonly unicode)r   	_settingsr   r)   r	   )	atom_namedefaultprinters      r   pretty_atomrS    sa     	'9#?#?GDUVfDgknDnDn3444y))N~&&&r"   c                   
 t           s| S t          |           \  }}}
fd
 
|          }d } ||t                    }| ||t                    }nd}|V|r(|dd                    
fd|D                       z   z  }|r(|dd                    
fd|D                       z   z  }|S d                    |          }d                    |          }	d	                    |||	g          S )
z(return pretty representation of a symbolc           
         |rt                               |           }nt                              |           }||S t          t                                          d d          D ]}|                                                     |          rWt          |           t          |          k    r7t	          |          | d t          |                    |                    c S |rd	                    d | D                       S | S )Nc                      t          |           S rU   len)ks    r   r:   z2pretty_symbol.<locals>.translate.<locals>.<lambda>9  s    SVV r"   T)keyreverser   c                 (    g | ]}t           |         S r?   )bold_unicode)rC   cs     r   r   z4pretty_symbol.<locals>.translate.<locals>.<listcomp>=  s    777LO777r"   )
greek_bold_unicodegetr   sortedmodifier_dictkeyslowerendswithrX  r   )r-   	bold_namegGrZ  	translates       r   rh  z pretty_symbol.<locals>.translate2  s    	&#''**BB""1%%B>I-,,..OOTRRR 	O 	OCwwyy!!#&& O3q66#c((??$S)))AjCyjM9*M*MNNNNN 	97777Q777888r"   c                     g }| D ]j}                     |          }|<	 d                    fd|D                       }n# t          t          f$ r Y  d S w xY w|                    |           k|S )Nr   c                      g | ]
}|         S r?   r?   )rC   r^  mappings     r   r   z6pretty_symbol.<locals>.pretty_list.<locals>.<listcomp>J  s    %<%<%<Qgaj%<%<%<r"   )r`  r   	TypeErrorr	   append)r9   rk  resultr-   prettys    `   r   pretty_listz"pretty_symbol.<locals>.pretty_listD  s     	" 	"A[[^^F~ WW%<%<%<%<!%<%<%<==FF!8,      444 MM&!!!!s   !AAANr   c                 (    g | ]} |          S r?   r?   rC   r-   rf  rh  s     r   r   z!pretty_symbol.<locals>.<listcomp>Y  s%    !H!H!Ha))Ay"9"9!H!H!Hr"   __c                 (    g | ]} |          S r?   r?   rr  s     r   r   z!pretty_symbol.<locals>.<listcomp>[  s%    #J#J#JIIa$;$;#J#J#Jr"    r   )r   r   r   r   r   )	symb_namerf  r   supssubsrp  pretty_supspretty_subssups_resultsubs_resultrh  s    `        @r   r   r   '  sT     &y11D$     9T9%%D
 
 
 +dC((K!k$,,  	JC!H!H!H!H!H4!H!H!HIIIID 	LD#J#J#J#J#JT#J#J#JKKKKDhh{++hh{++77D+{3444r"   c                 D    ddd}ddd}t           r||          S ||          S )a  
    Return a stylised drawing of the letter ``letter``, together with
    information on how to put annotations (super- and subscripts to the
    left and to the right) on it.

    See pretty.py functions _print_meijerg, _print_hyper on how to use this
    information.
    )r   r   r   r   u   ┌─
├─
╵)r   r   r   rH   u   ╭─╮
│╶┐
╰─╯)FrJ   )r   r   r   r   z _
|_
|
)r   r   r   rH   z __
/__
\_|)r   )r   
ucode_pics
ascii_picss      r   r   r   d  sM    7L	 J )+ J
  "&!!&!!r"   r   u   ͯu   ⃐u   ⃰c                 .    t          |           t          v S )z,Check whether symbol is a unicode modifier. )ord_remove_combining)r  s    r   is_combiningr    s     s88(((r"   c                 d    t          |           dz  dz   }| d|         }| |d         }||z   |z   S )a  
    Returns a string with accent inserted on the middle character. Useful to
    put combining accents on symbol names, including multi-character names.

    Parameters
    ==========

    string : string
        The string to place the accent in.
    accent : string
        The combining accent to insert

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Combining_character
    .. [2] https://en.wikipedia.org/wiki/Combining_Diacritical_Marks

    r   rH   NrW  )stringaccentmidpoint	firstpart
secondparts        r   r   r     sE    . 6{{a!#Hyy!I		"Jv
**r"   c                 P    t          |                     t                              S )zxUnicode combining symbols (modifiers) are not ever displayed as
    separate symbols and thus should not be counted
    )rX  rh  r  )lines    r   
line_widthr    s     t~~/00111r"   c                 4    t          d | D                       S )av  
    Checks whether a string is subscriptable in unicode or not.

    Parameters
    ==========

    subscript: the string which needs to be checked

    Examples
    ========

    >>> from sympy.printing.pretty.pretty_symbology import is_subscriptable_in_unicode
    >>> is_subscriptable_in_unicode('abc')
    False
    >>> is_subscriptable_in_unicode('123')
    True

    c              3   (   K   | ]}|t           v V  d S rU   )r   )rC   	characters     r   rK   z.is_subscriptable_in_unicode.<locals>.<genexpr>  s'      ;;IyC;;;;;;r"   )all)	subscripts    r   is_subscriptable_in_unicoder    s!    & ;;;;;;;;r"   ru  c                 f    | |k    rt          d          || z
  }|dz  }||z
  }||z  }||z  }||fS )z
    Return the padding strings necessary to center a string of
    wstring characters wide in a wtarget wide space.

    The line_width wstring should always be less or equal to wtarget
    or else a ValueError will be raised.
    znot enough space for stringr   )r   )wstringwtargetfillcharwdeltawleftwrightleftrights           r   r   r     sX     6777wFaKEe^FeDvE;r"   c                 t    t          t          |           ||          \  }}d                    || |g          S )zhReturn a centered string of length determined by `line_width`
    that uses `fillchar` for padding.
    r   )r   r  r   )r  r  r  r  r  s        r   r   r     s:     Z//AAKD%77D&%()))r"   rU   )NN)F)ru  )S__doc__r&   r   r  r   r   r   r
   r   sympy.printing.conventionsr   sympy.core.alphabetsr   sympy.utilities.exceptionsr   __all__r   r!   r.   r4   rA   rJ   listgreek_lettersindexr   updaterS   rV   r]  gbGBgreek_bold_lettersr_  r   r   LSUBGSUBDSUBSSUBLSUPDSUPSSUPr   r   r9   glrangedr-   rb  HUPCUPMIDEXTHLOCLOTOPBOTr   r   r   r   r   rootVFfracr  r   r)   rS  r   r   dictfromkeysr  r  r  r   r  r  r   r   r?   r"   r   <module>r     s)   C C 



  3 3 3 3 3 3 3 3        7 6 6 6 6 6 ' ' ' ' ' ' @ @ @ @ @ @0 0 0    "  >	 	 	 5466V/6m!!(++ , 10-000   II=III I I I (0h '0h @j  :9;;11111   77777 7 7 7 ;:==T&\\ 9@ %++H55 6 ;:'9:::    SS@RSSS S S S,W5 8 ,W5 8 !J :   
 !" !  	$ LKKK;;99MM==;; 
  AT!WWCFF	  AT!WWCFF
0  Bd2hhCGG	$	$%%))	$	$	$  AT!WWCFT!WWCFF	  AT!WWCFT!WWCFFFF II II	
 AA 
@@ >> >> EE EE >> 
HH 
?? 
HH $$  
""!0 MM12 
cc34 ?>>>7  > 87999966779900330 ss3xxS33s88=sC	0
 ss3xxS33s88=sC0 ss3xxS33s88=sC0 ss3xxS33s88=sC0 ss4yy##c((CCHHcc#hhH#N0 ss4yy##c((CCHHcc#hhH#N0 AA;<<0 
AADEE0 AAFGG0A:;;0 AA;<<0  AA;<<!0" AA<==#0$ AA;<<%0& AA<=='0( AA;<<AUVVAUVVXY\^)00 AA;<<AUVVAUVVXY\^108  #s3xxS33s88=qqO"s3xxS33s88=qq?O?OP"s3xxS33s88=qq?P?PQ"s3xxS33s88=qq?Q?QR"s5zz11-@+A+A11E[C\C\^`a`abl`m`mn q!XYY[^`a`abl`m`mopop  ri  pj  pj  k  mn  mn  o@  mA  mA  B A-..AjMM AEFFAEFF_0 0 0j &% %$**%%#  9 @A A AH+ + +( ( ( 	qq~~q  /. BzNNB{OOB|B}B  B{OOB|B~B}B{OOB}B|BB~B (	:	:	 :	 	D!!+,,-		
 	D!!.//0	 	D!!N##$	 	<	 	<	 	<	 	<	 	<	 	<	 C>""#	 
E23!I,,=122=11Y<<!!I,,.A-../ /8<>	" 
E A.//9 A.//	9
 A-..911566A.//0A-../ /
 59:#	. C?##$/	6  6
qq!1226 	qq!8996 qq}}	6
 qq}}F#*2E6 qq!?@@6 qq~~6 qq!:;;6 qq!:;;  4 q!:;; q!122 36 qq!:;;6 qq!:;;6  qq!:;;!6" qq!:;;#6$ qq!GHH%6& qq!GHH'6( qq!HII)6* qq!GHH+6, qq!?@@-6 6. qqzz/60 qq162 qq!344364 qq~~566 qq00768 qq1196: qq!677;6< qq!?@@=6> qq!677?6@ qq!;<<A6B C6D qq!899E6F qq!455G6H qq{{I6J qq//K6N 
qq//O6P 	qqQ6 6R  !q}} qxx qyy qxx q!:;; q!FGG q!:;; q!FGG q!344 q!<== q!?@@ q!GHH q!IJJk6 6 6r' ' ' ':5 :5 :5 :5z" " "6 MM$$uuSS1M-N-NPSPSTxPyPy'z'z"{"{"d55-O)P)PRURUVtRuRu#v#vww#x y y ) ) )+ + +:2 2 2< < <,   ** * * * * *r"   