
    \h0^                        S r SSKrSSKrSSKJrJr  SSKrSqS rSSK	J
r
  SSKJr  SSKJr  / S	QrS
qGS5S jrS rS rS rS r\" \5      rS\\R1                  S5      '   \ V s0 s H  o \" U 5      _M     sn r\R5                  S \ 5       5        \S   \S'   \S   \S'   S\S'   S rS r\ Vs0 s H  o\" U5      _M     snr\R5                  S \ 5       5        S rS r\" \5      r S\ \ R1                  S5      '   \  V s0 s H  o \" U 5      _M     sn r!\!R5                  S \  5       5        \S   \!S'   \S   \!S'   S\!S'   SSS S!S"S#S$S%S&S'S(.
r"S)S*S+S,S-S.S/S0S1S2S3S4S5.r#S6 r$S7 r%S8 r&S9 r'S: r(S; r)S< r*0 r+0 r,S= H  r-\$" \-5      \+\-'   M     S> H  r-\(" \-5      \,\-'   M     S? H  r.\%" \.5      \+\.'   M     \/" S@5       Vs/ s H  n\0" U5      PM     sn H  r1\&" \15      \+\1'   \)" \15      \,\1'   M     SA H  r2\'" \25      \+\2'   \*" \25      \,\2'   M     0 SBSC _SDSE _SFSG _SHSI _SJSK _SLSM _SNSO _SPSQ _SRSS _STSU _SVSW _SXSY _SZS[ _S\S] _S^S_ _S`Sa _SbSc _Sd Se Sf.Er3Sg r4Sh r5Si r6Sj r7Sk r8Sl r9Sm r:Sn r;0 So\7" So5      \4" So5      \8" So5      4So4_Sp\7" Sp5      \4" Sp5      \8" Sp5      4Sp4_Sq\7" Sq5      \5" Sq5      \9" Sq5      4Sq4_Sr\7" Sr5      \5" Sr5      \9" Sr5      4Sr4_Ss\7" St5      \4" Ss5      \8" Ss5      \6" Ss5      4Ss4_Su\7" St5      \4" Su5      \8" Su5      \6" Su5      4Su4_Sv\" Sw5      _Sx\" Sy5      _Sz\" S{5      _S|\" S}5      _S~\" S5      _S\" S5      _S\" S5      _S\" S5      _S\" S5      _S\" Sw5      \" S5      \" S5      4S4_S\" Sw5      \" S5      \" S5      4S4_\7" Sq5      \7" Sq5      \9" Sq5      4\" S5      4\7" Sr5      \7" Sr5      \9" Sr5      4\" S5      4\7" Sq5      \5" Sq5      \7" Sq5      4\" S5      4\7" Sr5      \5" Sr5      \7" Sr5      4\" S5      4\7" S5      \" S5      \" S5      4\" S45      4\" S5      S\" S5      \" S5      4\" S5      4\" S5      \" S5      \" S5      \" S5      S.
Er<SSSSSSSvSSSSSSSS.r=S r>S r?S r@\" S5      \" S5      \" S5      S.rAS rB\B" S5      \B" S5      \B" S5      \B" S5      \B" S5      \B" S5      \B" S5      \B" S5      \B" S5      \B" S5      \B" S5      \B" S5      \B" S5      \B" S5      \B" S5      S.rC0 SS_SS_SS_SS\" S5      4_SS\" S5      4_SS\" S5      4_SS_SS_SS_SS_SS_SS_SS\" S5      4_SS\" S5      (       a'  \" S5      (       a  \" S5      \" S5      -   \" S5      -   OS4_SS\" S5      (       a4  \" S5      (       a'  \" S5      (       a  \" S5      \" S5      -   \" S5      -   OS4_SS\" S5      4_rDS rE0 S\" S5      _S\" S5      _S\" S5      _S\" S5      =(       a    S\" S5      -   _S\" S5      _S\" S5      _S\" S5      _S\" S5      =(       a    \" S5      \" S5      -   _S\" S5      _S\" S5      _S\" S5      _S\" S5      _S\" S5      _S\" S5      _S\" S5      _S\" S5      _S\" S5      _0 S\" GS 5      _GS\" GS5      _GS\" GS5      _GS\" GS5      _GS\" GS5      _GS	\" S5      _GS
\" GS5      _GS\" GS5      _GS\" GS5      _GS\" GS5      _GSGS_GS\" GS5      _GS\" GS5      _GS\" GS5      _GS\" GS5      _GS\" GS5      _GS\" GS5      _E\" GS5      \" GS5      \" GS 5      \" GS!5      \" GS"5      \" GS#5      \" GS"5      \" GS#5      \" GS$5      \" GS%5      \" GS&5      \" Sy5      \" S{5      GS'.ErFGS6GS( jrGGS7GS) jrHGS* rI\JR                  \" \/" \L" GS+5      \L" GS,5      5      5      \" \/" \L" GS-5      \L" GS.5      5      5      -   5      rMGS/ rNGS0 rOGS1 rPGS2 rQGS8GS3 jrRGS8GS4 jrSgs  sn f s  snf s  sn f s  snf (9  z=Symbolic primitives + unicode/ASCII abstraction for pretty.py    N)ascii_lowercaseascii_uppercase c                 h     [         R                  " U 5      $ ! [         a    [        SU -  -  q gf = f)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    ^/var/www/auris/envauris/lib/python3.13/site-packages/sympy/printing/pretty/pretty_symbology.pyUr   
   s;    !!$'' 84??s    11)split_super_sub)greeks)sympy_deprecation_warning)
greek_unicodesubsupxsymvobjhobjpretty_symbol	annotated
center_padcenterFc                     U c  [         $ U (       a'  [        (       a  [        R                  " [        5        Sq[         nU q U$ )z8Set whether pretty-printer should use unicode by defaultr   )_use_unicoder
   warningswarn)flaguse_unicode_prevs     r   pretty_use_unicoder!   )   s<     |  &'#L    c                     [        [        R                  SS5      n U c  g/ nU[        R	                  5       -  nU[
        R	                  5       -  nU H  nUc    g UR                  U 5        M     [        S5        g! [         a       gf = f)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.   9   s     szz:t4H G }##%%G {!!##G9	HHX  t	 " 		s   A<<
B
	B
c                  (    [        SSSS9  [        U 6 $ )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   X   s#    	 "'#I :r"   c                 :    [        SU R                  5       -  5      $ )NzGREEK SMALL LETTER %sr   upperls    r   <lambda>r:   d   s    a'!'')34r"   c                 :    [        SU R                  5       -  5      $ )NzGREEK CAPITAL LETTER %sr6   r8   s    r   r:   r:   e   s    a)AGGI56r"   lamdalambdac              #   h   #    U  H(  oS    R                  5       USS -   [        U5      4v   M*     g7fr      Nr7   G.0Ls     r   	<genexpr>rF   m   s,     I=adjjlQqrU*AaD1=   02LamdaLambdau   ςvarsigmac                 :    [        SU R                  5       -  5      $ NzMATHEMATICAL BOLD SMALL %sr6   r8   s    r   r:   r:   u   s    a,qwwy89r"   c                 :    [        SU R                  5       -  5      $ )NzMATHEMATICAL BOLD CAPITAL %sr6   r8   s    r   r:   r:   v   s    a.:;r"   c              #   :   #    U  H  o[        U5      4v   M     g 7fN)BrC   s     r   rF   rF   y   s     7!!Is   c                 :    [        SU R                  5       -  5      $ rL   r6   r8   s    r   r:   r:   |   s    q-	9:r"   c                 :    [        SU R                  5       -  5      $ )NzMATHEMATICAL BOLD CAPITAL  %sr6   r8   s    r   r:   r:   }   s    q01779<=r"   c              #   h   #    U  H(  oS    R                  5       USS -   [        U5      4v   M*     g7fr?   rA   rC   s     r   rF   rF      s.     S@R1Q4::<!AB%/16@RrG   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                 :    [        SU R                  5       -  5      $ )NzLATIN SUBSCRIPT SMALL LETTER %sr6   letters    r   r:   r:          a9FLLNJKr"   c                 :    [        SU R                  5       -  5      $ )NzGREEK SUBSCRIPT SMALL LETTER %sr6   rx   s    r   r:   r:      rz   r"   c                 ,    [        S[        U    -  5      $ NzSUBSCRIPT %sr   
digit_2txtdigits    r   r:   r:      s    aE)::;r"   c                 ,    [        S[        U    -  5      $ r}   r   	symb_2txtsymbs    r   r:   r:      s    a489r"   c                 :    [        SU R                  5       -  5      $ )Nz!SUPERSCRIPT LATIN SMALL LETTER %sr6   rx   s    r   r:   r:      s    a;fllnLMr"   c                 ,    [        S[        U    -  5      $ NzSUPERSCRIPT %sr~   r   s    r   r:   r:      s    a(:e+<<=r"   c                 ,    [        S[        U    -  5      $ r   r   r   s    r   r:   r:      s    a(9T?:;r"   aeioruvxhklmnpstin)betagammarhophichi
   z+-=()mathringc                     [        U S5      $ )Nu   ̊center_accentr-   s    r   r:   r:      s    -+EFr"   ddddotc                     [        U S5      $ )Nu   ⃜r   r   s    r   r:   r:      s    a)HIr"   dddotc                     [        U S5      $ )Nu   ⃛r   r   s    r   r:   r:      s    }Q(HIr"   ddotc                     [        U S5      $ )Nu   ̈r   r   s    r   r:   r:      s    mA'@Ar"   dotc                     [        U S5      $ )Nu   ̇r   r   s    r   r:   r:      s    ]1&?@r"   checkc                     [        U S5      $ )Nu   ̌r   r   s    r   r:   r:          }Q(=>r"   brevec                     [        U S5      $ )Nu   ̆r   r   s    r   r:   r:      r   r"   acutec                     [        U S5      $ )Nu   ́r   r   s    r   r:   r:          }Q(DEr"   gravec                     [        U S5      $ )N   ̀r   r   s    r   r:   r:      r   r"   tildec                     [        U S5      $ )Nu   ̃r   r   s    r   r:   r:      r   r"   hatc                     [        U S5      $ )Nu   ̂r   r   s    r   r:   r:          ]1&GHr"   barc                     [        U S5      $ )Nu   ̅r   r   s    r   r:   r:      s    ]1&>?r"   vecc                     [        U S5      $ )Nu   ⃗r   r   s    r   r:   r:      r   r"   primec                     U S-   $ Nu   ′ r   s    r   r:   r:      s    q}r"   prmc                     U S-   $ r   r   r   s    r   r:   r:      s    Q{]r"   normc                     SU -   S-   $ )Nu   ‖r   r   s    r   r:   r:      s    023MMr"   avgc                     SU -   S-   $ )Nu   ⟨u   ⟩r   r   s    r   r:   r:      s    :1<=ccr"   c                     SU -   S-   $ N|r   r   s    r   r:   r:          (*+>>r"   c                     SU -   S-   $ r   r   r   s    r   r:   r:      r   r"   )absmagc                 ,    [        S[        U    -  5      $ )Nz%s UPPER HOOKr   r   s    r   r:   r:          1_y67r"   c                 ,    [        S[        U    -  5      $ )Nz%s UPPER CORNERr   r   s    r   r:   r:          1&489r"   c                 ,    [        S[        U    -  5      $ )Nz%s MIDDLE PIECEr   r   s    r   r:   r:      r   r"   c                 ,    [        S[        U    -  5      $ )Nz%s EXTENSIONr   r   s    r   r:   r:      s    1^io56r"   c                 ,    [        S[        U    -  5      $ )Nz%s LOWER HOOKr   r   s    r   r:   r:      r   r"   c                 ,    [        S[        U    -  5      $ )Nz%s LOWER CORNERr   r   s    r   r:   r:      r   r"   c                 ,    [        S[        U    -  5      $ )Nz%s TOPr   r   s    r   r:   r:      s    1X	$/0r"   c                 ,    [        S[        U    -  5      $ )Nz	%s BOTTOMr   r   s    r   r:   r:      s    1[9T?23r"   rn   ro   rp   rq   rr   rt   rs   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 CEILINGrv   zTOP HALF INTEGRALzBOTTOM HALF INTEGRAL_OVERLINEzN-ARY SUMMATIONzBOX DRAWINGS LIGHT HORIZONTALzLOW LINE)
lfloorrfloorlceilrceilrv   ru   rl   r   /\)r   r   r   rn   )r   r   r   ro   ))rp   rp   rp   rp   ))rq   rq   rq   rq   ))r   r   r   r   rr   ))r   r   r   r   rs   )r   r   )r   r   )z | z  /z/  rl   r   r   )rn   ro   rp   rq   rr   rs   r   r   r   rv   rl   r   r   r   c                    US::  a  [        S5      e[        (       a  [        nO[        nX    nS=n=n=pg[	        U[
        5      (       d  UnO:[	        US   [
        5      (       a  US   n	US   nOUn	U	S   n U	S   nU	S   nU	S   nUc  UnUc  UnUc  UnUb  US-  S:X  a  US-  nOUnUS:X  a  U$ / n
US-
  S-  nUS-
  US-  -
  nX/-  n
X/U-  -  n
X/U-  -  n
X/U-  -  n
X/-  n
U
$ ! [         a     Npf = f)zNConstruct spatial object of given length.

return: [] of equal-length strings
r   zLength should be greater than 0Nr@         )
ValueErrorr   _xobj_unicode_xobj_ascii
isinstancetuple
IndexError)r   length_xobjvinfoc1topbotmidextvlongresnextnmids                r   xobjr   D  sm    {:;; |KEBseU##eAh&&!HEqBEAh	(C(C(C 
z
{
{
QJ1 aKF {	
CQJ?DQJ$q& D5LC5:C5:C5:C5LCJ?  		s   8C+ +
C87C8c                 6    SR                  [        X5      5      $ )z7Construct vertical object of a given height

see: xobj

joinr   )r   heights     r   r   r     s    
 99d4(**r"   c                 6    SR                  [        X5      5      $ )z8Construct horizontal object of a given width

see: xobj
r   r   )r   widths     r   r   r     s    
 77D%''r"   zSQUARE ROOTz	CUBE ROOTzFOURTH ROOT)r   r      c                     [        SU -  5      $ )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))r@   r   )r@   r   )r   r   )r@   r   )r   r   )r@      )r   r   )r   r   )r   r   )r@      )r   r   )r@      )r   r   )r   r   )   r   z==)rm   rm   )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                 >    [         U    n[        (       a  US   $ US   $ )zget symbology for a 'character'r@   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                     [         (       a0  Ub$  U S:X  a  UR                  S   S:X  a  [        S5      $ [        U    $ Ub  U$ [	        S5      e)z'return pretty representation of an atomr  imaginary_unitjzDOUBLE-STRUCK ITALIC SMALL Jzonly unicode)r   	_settingsr   r)   r	   )	atom_namedefaultprinters      r   pretty_atomrJ    sU    |9#?GDUDUVfDgknDn344y))N~&&r"   c                   ^ [         (       d  U $ [        U 5      u  p#nU4S jmT" X!5      nS nU" U[        5      nUb  U" U[        5      nOSnUcl  U(       a.  USSR	                  U Vs/ s H  nT" X5      PM     sn5      -   -  nU(       a.  USSR	                  U Vs/ s H  nT" X5      PM     sn5      -   -  nU$ SR	                  U5      n	SR	                  U5      n
SR	                  X)U
/5      $ s  snf s  snf )z(return pretty representation of a symbolc           
        > U(       a  [         R                  U 5      nO[        R                  U 5      nUb  U$ [        [        R                  5       S SS9 Hf  nU R                  5       R                  U5      (       d  M)  [        U 5      [        U5      :  d  MC  [        U   " T" U S [        U5      *  U5      5      s  $    U(       a)  SR                  U  Vs/ s H  n[        U   PM     sn5      $ U $ s  snf )Nc                     [        U 5      $ rO   len)ks    r   r:   2pretty_symbol.<locals>.translate.<locals>.<lambda>8  s    SVr"   T)keyreverser   )greek_bold_unicodegetr   sortedmodifier_dictkeyslowerendswithrO  r   bold_unicode)r-   	bold_namegGrR  c	translates        r   r_   pretty_symbol.<locals>.translate1  s    #''*B""1%B>I-,,.OTRCwwy!!#&&3q6#c(?$S))AjCyM9*MNN S 77Q7QLOQ788 8s   C3c                     / nU  HM  nUR                  U5      nUc%   SR                  U Vs/ s H  oQU   PM	     sn5      nUR	                  U5        MO     U$ s  snf ! [        [        4 a       g f = f)Nr   )rU  r   	TypeErrorr	   append)r9   mappingresultr-   prettyr^  s         r   pretty_list"pretty_symbol.<locals>.pretty_listC  sx    A[[^F~ WW!%<!Qaj!%<=F MM&!  	 &=!8,   s!   AA
AAA10A1Nr   __ r   )r   r   r   r   r   )	symb_namer\  r   supssubsrg  pretty_supspretty_subsr-   sups_resultsubs_resultr_  s              @r   r   r   &  s     <&y1D T%D
 dC(K!$, C4!H4a)A"94!HIIIDDT#JTIa$;T#JKKKDhh{+hh{+77D{344 "I#Js   )C2C7c                 <    SSS.nSSS.n[         (       a  X   $ X    $ )z
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   r@   u   ╭─╮
│╶┐
╰─╯)FrB   )r   r   r   r   z _
|_
|
)r   r   r   r@   z __
/__
\_|)r   )ry   
ucode_pics
ascii_picss      r   r   r   c  s<    7L	J )+J
 |!!!!r"   r   u   ͯu   ⃐u   ⃰c                 &    [        U 5      [        ;   $ )z,Check whether symbol is a unicode modifier. )ord_remove_combining)r  s    r   is_combiningry    s     s8(((r"   c                 D    [        U 5      S-  S-   nU SU nXS nX1-   U-   $ )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   r@   NrN  )stringaccentmidpoint	firstpart
secondparts        r   r   r     s;    . 6{a!#Hy!I	"J
**r"   c                 >    [        U R                  [        5      5      $ )zpUnicode combining symbols (modifiers) are not ever displayed as
separate symbols and thus should not be counted
)rO  r_  rx  )lines    r   
line_widthr    s     t~~/011r"   c                 &    [        S U  5       5      $ )aF  
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   2   #    U  H  o[         ;   v   M     g 7frO   )r   )rD   	characters     r   rF   .is_subscriptable_in_unicode.<locals>.<genexpr>  s     ;ICs   )all)	subscripts    r   is_subscriptable_in_unicoder    s    & ;;;;r"   c                 R    X:  a  [        S5      eX-
  nUS-  nX4-
  nX$-  nX%-  nXg4$ )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     sF     677FaKE^FDE;r"   c                 V    [        [        U 5      X5      u  p4SR                  X0U/5      $ )z`Return 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/AKD77D%())r"   rO   )NN)F)rj  )T__doc__r&   r   r{  r   r   r   r
   r   sympy.printing.conventionsr   sympy.core.alphabetsr   sympy.utilities.exceptionsr   __all__r   r!   r.   r4   grB   listgreek_lettersindexr   updatebrP   r[  gbGBgreek_bold_lettersrT  r   r   LSUBGSUBDSUBSSUBLSUPDSUPSSUPr   r   r9   glranger2   dr-   rW  HUPCUPMIDEXTHLOCLOTOPBOTr   r   r   r   r   rootVFfracr
  r   r)   rJ  r   r   dictfromkeysrw  rx  ry  r   r  r  r   r   )rE   r9   is   000r   <module>r     s    C 
  3   7 ' @0  >	 56V/6m!!(+ , #00-QAaD-0   I=I I (0h '0h @j  :;!01A1Q41   77 7 ;=&\ 9@ %++H5 6 (::'9!1g'9:    S@RS S,W5 8 ,W5 8 !J :  
 !" ! 	$ LK;9M=; 
A!WCF 
 
A!WCF 
 1B2hCG 1  )	$)Q#a&)	$A!WCF!WCF 
% 
A!WCF!WCF 
F I I	
 A 
@ > > E E > 
H 
? 
H $  
"!0 M12 
c34 ?>7> 899679030 s3xS3s8=sC	0
 s3xS3s8=sC0 s3xS3s8=sC0 s3xS3s8=sC0 s4y#c(CHc#hH#N0 s4y#c(CHc#hH#N0 A;<0 
ADE0 AFG0:;0 A;<0  A;<!0" A<=#0$ A;<%0& A<='0( A;<UVUVXY\^)00 A;<UVUVXY\^108  #3xS3s8=qO"3xS3s8=q?OP"3xS3s8=q?PQ"3xS3s8=q?QR"5z1-@+A1E[C\^`abl`mn !XY[^`abl`mop  ri  pj  k  mn  o@  mA  B -.jM EFEF_0j &% %$**%%#  9@AH+( 	~ / zN{O|} {O|~}{O}|~(	:	:	 :	 	D!+,-		
 	D!./0	 	D!N#$	 	<	 	<	 	<	 	<	 	<	 	<	 C>"#	 
E23I,,122 Y<!I,.-./8<>	" 
E .//.//-.. 56./0-./
 59:#	. C?#$/	66
q!126 	q!896 q}	6
 q}F#*2E6 q!?@6 q~6 q!:;6 q!:;  4 !:; !12 36 q!:;6 q!:;6  q!:;!6" q!:;#6$ q!GH%6& q!GH'6( q!HI)6* q!GH+6, q!?@-6. qz/60 q162 q!34364 q~566 q0768 q196: q!67;6< q!?@=6> q!67?6@ q!;<A6B C6D q!89E6F q!45G6H q{I6J q/K6N 
q/O6P 	qQ6R  !} x y x !:; !FG !:; !FG !34 !<= !?@ !GH !IJk6r':5z"6 MM$uS1M-NPSTxPy'z"{"5-O)PRUVtRu#vw#x y )+:2<,**U 1 2 ;v 
%s   &a2aaa"