Ë
    7^(h@š ã                   óv  — d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZmZmZ d dlmZmZ d dlm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z7 e/Z8e2Z9 G d„ de«      Z: ee:«      d„ «       Z;d„ Z<e<Z=d„ Z>y)é    N)ÚS)ÚAdd)ÚTuple)ÚFunction)ÚMul)ÚNumberÚRational)ÚPow)Údefault_sort_key)ÚSymbol)ÚSympifyError)Úrequires_partial)Ú
PRECEDENCEÚ
precedenceÚprecedence_traditional)ÚPrinterÚprint_function)Ússtr)Úhas_variety)Úsympy_deprecation_warning)Ú
prettyFormÚ
stringPict)ÚhobjÚvobjÚxobjÚxsymÚpretty_symbolÚpretty_atomÚpretty_use_unicodeÚgreek_unicodeÚUÚpretty_try_use_unicodeÚ	annotatedÚis_subscriptable_in_unicodeÚ
center_padÚrootc                   ó  — e Zd ZdZdZdddddddddddœ
Zdòd	„Zd
„ Zed„ «       Z	d„ Z
d„ Zd„ Zd„ Zdód„ZeZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZeZeZeZeZeZeZeZeZ eZ!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd „ Z(dôd!„Z)d"„ Z*d#„ Z+d$„ Z,d%„ Z-d&„ Z.dòd'„Z/dòd(„Z0d)„ Z1d*„ Z2d+„ Z3d,„ Z4d-„ Z5d.„ Z6d/„ Z7d0„ Z8d1„ Z9d2„ Z:d3„ Z;d4„ Z<d5„ Z=dõd6„Z>d7„ Z?d8„ Z@d9„ ZAd:„ ZBd;„ ZCd<„ ZDd=„ ZEd>„ ZFd?„ ZGd@„ ZHdA„ ZIdB„ ZJdC„ ZKdD„ ZLdE„ ZMdF„ ZNdG„ ZOdH„ ZPdI„ ZQdJ„ ZRdK„ ZSdL„ ZTdM„ ZUdN„ ZVdO„ ZWdP„ ZXdQ„ ZYdR„ ZZdS„ Z[dT„ Z\dU„ Z]i fdV„Z^dW„ Z_dX„ Z`dY„ ZadZ„ Zbd[„ Zcd\„ Zdd]„ Zed^„ Zfd_„ Zgdöd`„Zhda„ Zidb„ Zjdc„ Zkdd„ Zl	 	 d÷de„Zmdf„ Zndg„ Zodh„ Zpdi„ Zq	 	 	 dødk„Zrdl„ Zsedm„ «       Ztdn„ Zudo„ Zvdp„ Zwdq„ Zxdr„ Zyds„ Zzdt„ Z{du„ Z|dv„ Z}dw„ Z~dx„ Zdy„ Z€dz„ Z�d{„ Z‚d|„ Zƒd}„ Z„d~„ Z…d„ Z†d€„ Z‡d�„ Zˆd‚„ Z‰dƒ„ ZŠd„„ Z‹d…„ ZŒd†„ Z�d‡„ ZŽdˆ„ Z�d‰„ Z�dŠ„ Z‘d‹„ Z’dŒ„ Z“d�„ Z”dŽ„ Z•d�„ Z–d�„ Z—d‘„ Z˜d’„ Z™dòd“„Zšd”„ Z›d•„ Zœd–„ Z�d—„ Zžd˜„ ZŸd™„ Z dš„ Z¡d›„ Z¢dœ„ Z£d�„ Z¤dž„ Z¥dŸ„ Z¦d „ Z§d¡„ Z¨d¢„ Z©d£„ Zªd¤„ Z«d¥„ Z¬d¦„ Z­d§„ Z®d¨„ Z¯d©„ Z°dª„ Z±d«„ Z²e²Z³e²Z´e²Zµdddjd¬„ dfd­„Z¶d®„ Z·d¯„ Z¸d°„ Z¹d±„ Zºd²„ Z»d³„ Z¼d´„ Z½dµ„ Z¾d¶„ Z¿d·„ ZÀd¸„ ZÁd¹„ ZÂdº„ ZÃd»„ ZÄd¼„ ZÅd½„ ZÆd¾„ ZÇd¿„ ZÈdÀ„ ZÉdÁ„ ZÊdÂ„ ZËdÃ„ ZÌdÄ„ ZÍdÅ„ ZÎdÆ„ ZÏdÇ„ ZÐdÈ„ ZÑdÉ„ ZÒdÊ„ ZÓdË„ ZÔdÌ„ ZÕeÕZÖdÍ„ Z×dÎ„ ZØdÏ„ ZÙdÐ„ ZÚdÑ„ ZÛdÒ„ ZÜdÓ„ ZÝdÔ„ ZÞdÕ„ ZßdÖ„ Zàd×„ ZádØ„ ZâdÙ„ ZãdÚ„ ZädÛ„ ZådÜ„ ZædÝ„ ZçdÞ„ Zèdß„ Zédà„ Zêdá„ Zëdâ„ Zìdã„ Zídä„ Zîdå„ Zïdæ„ Zðdç„ Zñdè„ Zòdé„ Zódê„ Zôdë„ Zõdì„ Zödí„ Z÷dî„ Zødï„ Zùdð„ Zúdñ„ Zûy)ùÚPrettyPrinterz?Printer, which converts an expression into 2D ASCII-art figure.Ú_prettyNÚautoTÚplainÚi)
ÚorderÚ	full_precÚuse_unicodeÚ	wrap_lineÚnum_columnsÚuse_unicode_sqrt_charÚroot_notationÚmat_symbol_styleÚimaginary_unitÚperm_cyclicc                 ó(  — t        j                  | |«       t        | j                  d   t        «      s't        dj                  | j                  d   «      «      ‚| j                  d   dvr't        dj                  | j                  d   «      «      ‚y )Nr5   z&'imaginary_unit' must a string, not {})r,   Újz4'imaginary_unit' must be either 'i' or 'j', not '{}')r   Ú__init__Ú
isinstanceÚ	_settingsÚstrÚ	TypeErrorÚformatÚ
ValueError)ÚselfÚsettingss     úZ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/printing/pretty/pretty.pyr9   zPrettyPrinter.__init__/   sƒ   € Ü×Ñ˜˜xÔ(ä˜$Ÿ.™.Ð)9Ñ:¼CÔ@ÜÐD×KÑKÈDÏNÉNÐ[kÑLlÓmÓnÐnØ�^‰^Ð,Ñ-°ZÑ?ÜÐS×ZÑZÐ[_×[iÑ[iÐjzÑ[{Ó|Ó}Ð}ð @ó    c                 ó*   — t        t        |«      «      S ©N©r   r<   ©r@   Úexprs     rB   ÚemptyPrinterzPrettyPrinter.emptyPrinter7   s   € Üœ#˜d›)Ó$Ð$rC   c                 ó6   — | j                   d   ryt        «       S )Nr/   T)r;   r   )r@   s    rB   Ú_use_unicodezPrettyPrinter._use_unicode:   s   € à�>‰>˜-Ò(Øä%Ó'Ð'rC   c                 óX   —  | j                  |«      j                  di | j                  ¤ŽS )N© )Ú_printÚrenderr;   rG   s     rB   ÚdoprintzPrettyPrinter.doprintA   s%   € Ø'ˆt�{‰{˜4Ó ×'Ñ'Ñ9¨$¯.©.Ñ9Ð9rC   c                 ó   — |S rE   rM   ©r@   Úes     rB   Ú_print_stringPictzPrettyPrinter._print_stringPictE   s   € ØˆrC   c                 ó   — t        |«      S rE   )r   rR   s     rB   Ú_print_basestringzPrettyPrinter._print_basestringH   s   € Ü˜!‹}ÐrC   c                 ó’   — t        | j                  |j                  «      j                  «       Ž }t        |j	                  d«      Ž }|S )NÚatan2)r   Ú
_print_seqÚargsÚparensÚleft©r@   rS   Úpforms      rB   Ú_print_atan2zPrettyPrinter._print_atan2K   s:   € Ü˜DŸO™O¨A¯F©FÓ3×:Ñ:Ó<Ð=ˆÜ˜EŸJ™J wÓ/Ð0ˆØˆrC   c                 óD   — t        |j                  |«      }t        |«      S rE   )r   Únamer   )r@   rS   Ú	bold_nameÚsymbs       rB   Ú_print_SymbolzPrettyPrinter._print_SymbolP   s   € Ü˜QŸV™V YÓ/ˆÜ˜$ÓÐrC   c                 óF   — | j                  || j                  d   dk(  «      S )Nr4   Úbold)rd   r;   rR   s     rB   Ú_print_MatrixSymbolz!PrettyPrinter._print_MatrixSymbolT   s$   € Ø×!Ñ! ! T§^¡^Ð4FÑ%GÈ6Ñ%QÓRÐRrC   c                 ót   — | j                   d   }|dk(  r| j                  dk(  }t        t        ||¬«      «      S )Nr.   r*   é   )r.   )r;   Ú_print_levelr   r   )r@   rS   r.   s      rB   Ú_print_FloatzPrettyPrinter._print_FloatW   s<   € ð —N‘N ;Ñ/ˆ	Ø˜ÒØ×)Ñ)¨QÑ.ˆIÜœ$˜q¨IÔ6Ó7Ð7rC   c           	      óº  — |j                   }|j                  }| j                  |«      }t        |j	                  d«      Ž }t        |j                  d«      Ž }t        |j	                  | j                  t        d«      «      «      Ž }t        |j	                  d«      Ž }t        |j	                  | j                  |«      «      Ž }t        |j	                  d«      Ž }|S )Nú(ú)úMULTIPLICATION SIGN©Ú_expr1Ú_expr2rN   r   r\   Úrightr!   ©r@   rS   Úvec1Úvec2r^   s        rB   Ú_print_CrosszPrettyPrinter._print_Cross_   s®   € Ø�x‰xˆØ�x‰xˆØ—‘˜DÓ!ˆÜ˜EŸJ™J s›OÐ,ˆÜ˜EŸK™K¨Ó,Ð-ˆÜ˜EŸJ™J t§{¡{´1Ð5JÓ3KÓ'LÓMÐNˆÜ˜EŸJ™J s›OÐ,ˆÜ˜EŸJ™J t§{¡{°4Ó'8Ó9Ð:ˆÜ˜EŸJ™J s›OÐ,ˆØˆrC   c           	      óX  — |j                   }| j                  |«      }t        |j                  d«      Ž }t        |j	                  d«      Ž }t        |j                  | j                  t        d«      «      «      Ž }t        |j                  | j                  t        d«      «      «      Ž }|S )Nrm   rn   ro   ÚNABLA©Ú_exprrN   r   r\   rs   r!   ©r@   rS   Úvecr^   s       rB   Ú_print_CurlzPrettyPrinter._print_Curlk   s…   € Ø�g‰gˆØ—‘˜CÓ ˆÜ˜EŸJ™J s›OÐ,ˆÜ˜EŸK™K¨Ó,Ð-ˆÜ˜EŸJ™J t§{¡{´1Ð5JÓ3KÓ'LÓMÐNˆÜ˜EŸJ™J t§{¡{´1°W³:Ó'>Ó?Ð@ˆØˆrC   c           	      óX  — |j                   }| j                  |«      }t        |j                  d«      Ž }t        |j	                  d«      Ž }t        |j                  | j                  t        d«      «      «      Ž }t        |j                  | j                  t        d«      «      «      Ž }|S )Nrm   rn   úDOT OPERATORry   rz   r|   s       rB   Ú_print_DivergencezPrettyPrinter._print_Divergencet   s„   € Ø�g‰gˆØ—‘˜CÓ ˆÜ˜EŸJ™J s›OÐ,ˆÜ˜EŸK™K¨Ó,Ð-ˆÜ˜EŸJ™J t§{¡{´1°^Ó3DÓ'EÓFÐGˆÜ˜EŸJ™J t§{¡{´1°W³:Ó'>Ó?Ð@ˆØˆrC   c           	      óº  — |j                   }|j                  }| j                  |«      }t        |j	                  d«      Ž }t        |j                  d«      Ž }t        |j	                  | j                  t        d«      «      «      Ž }t        |j	                  d«      Ž }t        |j	                  | j                  |«      «      Ž }t        |j	                  d«      Ž }|S )Nrm   rn   r€   rp   rt   s        rB   Ú
_print_DotzPrettyPrinter._print_Dot}   s­   € Ø�x‰xˆØ�x‰xˆØ—‘˜DÓ!ˆÜ˜EŸJ™J s›OÐ,ˆÜ˜EŸK™K¨Ó,Ð-ˆÜ˜EŸJ™J t§{¡{´1°^Ó3DÓ'EÓFÐGˆÜ˜EŸJ™J s›OÐ,ˆÜ˜EŸJ™J t§{¡{°4Ó'8Ó9Ð:ˆÜ˜EŸJ™J s›OÐ,ˆØˆrC   c           	      óú   — |j                   }| j                  |«      }t        |j                  d«      Ž }t        |j	                  d«      Ž }t        |j                  | j                  t        d«      «      «      Ž }|S )Nrm   rn   ry   rz   ©r@   rS   Úfuncr^   s       rB   Ú_print_GradientzPrettyPrinter._print_Gradient‰   sc   € Ø�w‰wˆØ—‘˜DÓ!ˆÜ˜EŸJ™J s›OÐ,ˆÜ˜EŸK™K¨Ó,Ð-ˆÜ˜EŸJ™J t§{¡{´1°W³:Ó'>Ó?Ð@ˆØˆrC   c           	      óú   — |j                   }| j                  |«      }t        |j                  d«      Ž }t        |j	                  d«      Ž }t        |j                  | j                  t        d«      «      «      Ž }|S )Nrm   rn   Ú	INCREMENTrz   r…   s       rB   Ú_print_LaplacianzPrettyPrinter._print_Laplacian‘   sc   € Ø�w‰wˆØ—‘˜DÓ!ˆÜ˜EŸJ™J s›OÐ,ˆÜ˜EŸK™K¨Ó,Ð-ˆÜ˜EŸJ™J t§{¡{´1°[³>Ó'BÓCÐDˆØˆrC   c                 ó˜   — 	 t        t        |j                  j                  | ¬«      «      S # t        $ r | j                  |«      cY S w xY w)N)Úprinter)r   r   Ú	__class__Ú__name__ÚKeyErrorrI   rR   s     rB   Ú_print_AtomzPrettyPrinter._print_Atom™   sC   € ð	(äœk¨!¯+©+×*>Ñ*>ÈÔMÓNÐNøÜò 	(Ø×$Ñ$ QÓ'Ò'ð	(ús   ‚), ¬A	ÁA	c                 ój   — | j                   r| j                  |«      S ddg}| j                  |dd«      S )Nz-ooÚoorm   rn   )rK   r�   rY   )r@   rS   Úinf_lists      rB   Ú_print_RealszPrettyPrinter._print_Reals¬   s8   € Ø×ÒØ×#Ñ# AÓ&Ð&à˜t�}ˆHØ—?‘? 8¨S°#Ó6Ð6rC   c                 óè   — |j                   d   }| j                  |«      }|j                  r|j                  s"|j                  st        |j                  «       Ž }t        |j                  d«      Ž }|S ©Nr   ú!)rZ   rN   Ú
is_IntegerÚis_nonnegativeÚ	is_Symbolr   r[   r\   ©r@   rS   Úxr^   s       rB   Ú_print_subfactorialz!PrettyPrinter._print_subfactorial³   sX   € Ø�F‰F�1‰IˆØ—‘˜A“ˆà—’ !×"2Ò"2°q·{²{Ü §¡£Ð/ˆEÜ˜EŸJ™J s›OÐ,ˆØˆrC   c                 óè   — |j                   d   }| j                  |«      }|j                  r|j                  s"|j                  st        |j                  «       Ž }t        |j                  d«      Ž }|S r–   ©rZ   rN   r˜   r™   rš   r   r[   rs   r›   s       rB   Ú_print_factorialzPrettyPrinter._print_factorial¼   sY   € Ø�F‰F�1‰IˆØ—‘˜A“ˆà—’ !×"2Ò"2°q·{²{Ü §¡£Ð/ˆEÜ˜EŸK™K¨Ó,Ð-ˆØˆrC   c                 óè   — |j                   d   }| j                  |«      }|j                  r|j                  s"|j                  st        |j                  «       Ž }t        |j                  d«      Ž }|S )Nr   z!!rŸ   r›   s       rB   Ú_print_factorial2zPrettyPrinter._print_factorial2Å   sY   € Ø�F‰F�1‰IˆØ—‘˜A“ˆà—’ !×"2Ò"2°q·{²{Ü §¡£Ð/ˆEÜ˜EŸK™K¨Ó-Ð.ˆØˆrC   c                 óx  — |j                   \  }}| j                  |«      }| j                  |«      }dt        |j                  «       |j                  «       «      z  }t	        |j                  |«      Ž }t	        |j                  |«      Ž }t	        |j                  dd«      Ž }|j                  dz   dz  |_        |S )Nú rm   rn   ri   é   )rZ   rN   ÚmaxÚwidthr   Úabover[   Úbaseline)r@   rS   ÚnÚkÚn_pformÚk_pformÚbarr^   s           rB   Ú_print_binomialzPrettyPrinter._print_binomialÎ   s›   € Ø�v‰v‰ˆˆ1à—+‘+˜a“.ˆØ—+‘+˜a“.ˆà”#�g—m‘m“o w§}¡}£Ó7Ñ7ˆä˜GŸM™M¨#Ó.Ð/ˆÜ˜EŸK™K¨Ó0Ð1ˆÜ˜EŸL™L¨¨cÓ2Ð3ˆàŸ.™.¨1Ñ,¨qÑ0ˆŒàˆrC   c                 ó  — t        dt        |j                  «      z   dz   «      }| j                  |j                  «      }| j                  |j
                  «      }t        t        j                  |||«      dt         j                  iŽ}|S )Nr¤   Úbinding)	r   r   Úrel_oprN   ÚlhsÚrhsr   ÚnextÚOPEN©r@   rS   ÚopÚlÚrr^   s         rB   Ú_print_RelationalzPrettyPrinter._print_RelationalÞ   sg   € Ü˜œd 1§8¡8›nÑ,¨sÑ2Ó3ˆà�K‰K˜Ÿ™ÓˆØ�K‰K˜Ÿ™ÓˆÜœJŸO™O¨A¨r°1Ó5ÐO¼z¿¹ÑOˆØˆrC   c                 óÈ  — ddl m}m} | j                  r¾|j                  d   }| j                  |«      }t        ||«      r| j                  |t        d«      ¬«      S t        ||«      r| j                  |t        d«      ¬«      S |j                  r"|j                  st        |j                  «       Ž }t        |j                  t        d«      «      Ž S | j                  |«      S )Nr   )Ú
EquivalentÚImpliesÚNotEquiv)ÚaltcharÚNotArrowÚNot)Úsympy.logic.boolalgr½   r¾   rK   rZ   rN   r:   Ú_print_Equivalentr   Ú_print_ImpliesÚ
is_BooleanÚis_Notr   r[   r\   Ú_print_Function)r@   rS   r½   r¾   Úargr^   s         rB   Ú
_print_NotzPrettyPrinter._print_Notæ   sº   € ß=Ø×ÒØ—&‘&˜‘)ˆCØ—K‘K Ó$ˆEÜ˜#˜zÔ*Ø×-Ñ-¨c¼;ÀzÓ;RÐ-ÓSÐSÜ˜#˜wÔ'Ø×*Ñ*¨3¼ÀJÓ8OÐ*ÓPÐPà�~Š~ c§j¢jÜ" E§L¡L£NÐ3�ä˜uŸz™z¬+°eÓ*<Ó=Ð>Ð>à×'Ñ'¨Ó*Ð*rC   c                 óÔ  — |j                   }|rt        |j                   t        ¬«      }|d   }| j                  |«      }|j                  r"|j
                  st        |j                  «       Ž }|dd  D ]r  }| j                  |«      }|j                  r"|j
                  st        |j                  «       Ž }t        |j                  d|z  «      Ž }t        |j                  |«      Ž }Œt |S )N©Úkeyr   ri   ú %s )	rZ   Úsortedr   rN   rÆ   rÇ   r   r[   rs   )r@   rS   ÚcharÚsortrZ   rÉ   r^   Ú	pform_args           rB   Ú__print_BooleanzPrettyPrinter.__print_Boolean÷   sÇ   € Ø�v‰vˆÙÜ˜!Ÿ&™&Ô&6Ô7ˆDØ�1‰gˆØ—‘˜CÓ ˆà�>Š> #§*¢*Ü §¡£Ð/ˆEà˜˜�8ò 	8ˆCØŸ™ CÓ(ˆIà�~Š~ c§j¢jÜ&¨	×(8Ñ(8Ó(:Ð;�	ä §¡¨F°T©MÓ :Ð;ˆEÜ §¡¨IÓ 6Ð7‰Eð	8ð ˆrC   c                 óv   — | j                   r| j                  |t        d«      «      S | j                  |d¬«      S )NÚAndT©rÑ   ©rK   Ú_PrettyPrinter__print_Booleanr   rÈ   rR   s     rB   Ú
_print_AndzPrettyPrinter._print_And  ó9   € Ø×ÒØ×'Ñ'¨¬;°uÓ+=Ó>Ð>à×'Ñ'¨°Ð'Ó5Ð5rC   c                 óv   — | j                   r| j                  |t        d«      «      S | j                  |d¬«      S )NÚOrTrÖ   r×   rR   s     rB   Ú	_print_OrzPrettyPrinter._print_Or  s9   € Ø×ÒØ×'Ñ'¨¬;°tÓ+<Ó=Ð=à×'Ñ'¨°Ð'Ó5Ð5rC   c                 óv   — | j                   r| j                  |t        d«      «      S | j                  |d¬«      S )NÚXorTrÖ   r×   rR   s     rB   Ú
_print_XorzPrettyPrinter._print_Xor  rÚ   rC   c                 óv   — | j                   r| j                  |t        d«      «      S | j                  |d¬«      S )NÚNandTrÖ   r×   rR   s     rB   Ú_print_NandzPrettyPrinter._print_Nand  s9   € Ø×ÒØ×'Ñ'¨¬;°vÓ+>Ó?Ð?à×'Ñ'¨°Ð'Ó5Ð5rC   c                 óv   — | j                   r| j                  |t        d«      «      S | j                  |d¬«      S )NÚNorTrÖ   r×   rR   s     rB   Ú
_print_NorzPrettyPrinter._print_Nor$  rÚ   rC   c                 ó~   — | j                   r!| j                  ||xs t        d«      d¬«      S | j                  |«      S )NÚArrowFrÖ   r×   ©r@   rS   rÀ   s      rB   rÅ   zPrettyPrinter._print_Implies*  s?   € Ø×ÒØ×'Ñ'¨¨7Ò+J´kÀ'Ó6JÐQVÐ'ÓWÐWà×'Ñ'¨Ó*Ð*rC   c                 ó~   — | j                   r| j                  ||xs t        d«      «      S | j                  |d¬«      S )NÚEquivTrÖ   r×   ré   s      rB   rÄ   zPrettyPrinter._print_Equivalent0  s>   € Ø×ÒØ×'Ñ'¨¨7Ò+J´kÀ'Ó6JÓKÐKà×'Ñ'¨°Ð'Ó5Ð5rC   c           	      óœ   — | j                  |j                  d   «      }t        |j                  t	        d|j                  «       «      «      Ž S )Nr   Ú_)rN   rZ   r   r¨   r   r§   r]   s      rB   Ú_print_conjugatezPrettyPrinter._print_conjugate6  s9   € Ø—‘˜AŸF™F 1™IÓ&ˆÜ˜EŸK™K¬¨c°5·;±;³=Ó)AÓBÐDÐDrC   c                 ór   — | j                  |j                  d   «      }t        |j                  dd«      Ž }|S )Nr   ú|)rN   rZ   r   r[   r]   s      rB   Ú
_print_AbszPrettyPrinter._print_Abs:  s2   € Ø—‘˜AŸF™F 1™IÓ&ˆÜ˜EŸL™L¨¨cÓ2Ð3ˆØˆrC   c                 ó¬   — | j                   r8| j                  |j                  d   «      }t        |j	                  dd«      Ž }|S | j                  |«      S )Nr   ÚlfloorÚrfloor©rK   rN   rZ   r   r[   rÈ   r]   s      rB   Ú_print_floorzPrettyPrinter._print_floor?  sL   € Ø×ÒØ—K‘K §¡ q¡	Ó*ˆEÜ §¡¨X°xÓ @ÐAˆEØˆLà×'Ñ'¨Ó*Ð*rC   c                 ó¬   — | j                   r8| j                  |j                  d   «      }t        |j	                  dd«      Ž }|S | j                  |«      S )Nr   ÚlceilÚrceilrõ   r]   s      rB   Ú_print_ceilingzPrettyPrinter._print_ceilingG  sL   € Ø×ÒØ—K‘K §¡ q¡	Ó*ˆEÜ §¡¨W°gÓ >Ð?ˆEØˆLà×'Ñ'¨Ó*Ð*rC   c                 ó`  — t        |j                  «      r| j                  rt        d«      }nd}d }d}t	        |j
                  «      D ]�  \  }}| j                  |«      }t        |j                  |«      Ž }||z  }|j                  r|dkD  r|t        t        |«      «      z  }|€|}Œ`t        |j                  d«      Ž }t        |j                  |«      Ž }Œ� t        | j                  |j                  «      j                  «       dt        j                  iŽ}	t        |«      }
|dkD  dk7  r|
t        t        |«      «      z  }
t        |
j                  t        j                   |«      Ž }
|
j"                  dz   |
_        t        t        j$                  |
|	«      Ž }
t        j&                  |
_        |
S )NúPARTIAL DIFFERENTIALÚdr   ri   r¤   r±   F)r   rH   rK   r!   ÚreversedÚvariable_countrN   r   r\   r˜   r<   rs   r[   ÚFUNCÚbelowr   ÚLINEr©   rµ   ÚMULr±   )r@   ÚderivÚderiv_symbolrœ   Úcount_total_derivÚsymÚnumÚsÚdsÚfr^   s              rB   Ú_print_DerivativezPrettyPrinter._print_DerivativeO  sx  € Ü˜EŸJ™JÔ'¨D×,=Ò,=ÜÐ3Ó4‰LàˆLØˆØÐä  ×!5Ñ!5Ó6ò 	-‰HˆC�Ø—‘˜CÓ ˆAÜ˜QŸV™V LÓ1Ð2ˆBØ Ñ$Ðà—N’N¨¨aªØœ¤C¨£HÓ-Ñ-�àˆyØ‘ä §¡¨£Ð-�Ü §¡¨£Ð,‘ð	-ô Ø&*§k¡k°%·*±*Ó&=×&DÑ&DÓ&FðHÜ—O‘OñHˆô ˜<Ó(ˆà Ñ! eÒ+Øœ:¤cÐ*;Ó&<Ó=Ñ=ˆEä˜EŸK™K¬
¯©¸Ó;Ð<ˆØŸ™¨!Ñ+ˆŒÜœJŸO™O¨E°1Ó5Ð6ˆÜ"Ÿ™ˆŒàˆrC   c                 óÖ  — ddl m}m} | |«       k(  r!t        d«      }t	        |j                  «       Ž S  ||j                  «       «      j                  }|g k(  r4| j                  |j                  dz
  «      }t	        |j                  «       Ž S t        d«      }|D ]L  }| j                  t        t        |«      «      j                  dd«      «      }t	        |j                  |«      Ž }ŒN |S )Nr   ©ÚPermutationÚCycleÚ ri   ú,)Ú sympy.combinatorics.permutationsr  r  r   r   r[   ÚlistÚcyclic_formrN   Úsizer<   ÚtupleÚreplacers   )r@   Údcr  r  ÚcycÚdc_listr,   r¹   s           rB   Ú_print_CyclezPrettyPrinter._print_Cyclet  sÀ   € ßGà‘“Š=Ü˜R“.ˆCÜ˜sŸz™z›|Ð,Ð,á˜bŸg™g›iÓ(×4Ñ4ˆà�bŠ=Ø—+‘+˜bŸg™g¨™kÓ*ˆCÜ˜sŸz™z›|Ð,Ð,ä˜‹nˆØò 	,ˆAØ—‘œC¤ a£›M×1Ñ1°#°rÓ:Ó;ˆAÜ˜cŸi™i¨›lÐ+‰Cð	,ð ˆ
rC   c                 óX  — ddl m}m} |j                  }|�t	        d|› d�ddd¬«       n| j
                  j                  d	d
«      }|r| j                   ||«      «      S |j                  }t        t        t        |«      «      «      }t        d«      }d
}t        ||«      D ]q  \  }	}
| j                  |	«      }| j                  |
«      }t        |j!                  |«      Ž }|rd}nt        |j#                  d«      Ž }t        |j%                  |«      Ž }Œs t        |j'                  «       Ž S )Nr   r  zw
                Setting Permutation.print_cyclic is deprecated. Instead use
                init_printing(perm_cyclic=z).
                z1.6z#deprecated-permutation-print_cyclicé   )Údeprecated_since_versionÚactive_deprecations_targetÚ
stacklevelr6   Tr  Fr¤   )r  r  r  Úprint_cyclicr   r;   Úgetr  Ú
array_formr  ÚrangeÚlenr   ÚziprN   r   r  r\   rs   r[   )r@   rH   r  r  r6   ÚlowerÚupperÚresultÚfirstÚur¹   Ús1Ús2Úcols                 rB   Ú_print_Permutationz PrettyPrinter._print_Permutation‡  s  € ßGà!×.Ñ.ˆØÐ"Ü%ð+à+6¨-ð 8ðð */Ø+PØöð Ÿ.™.×,Ñ,¨]¸DÓAˆKáØ×$Ñ$¡U¨4£[Ó1Ð1à—‘ˆÜ”Uœ3˜u›:Ó&Ó'ˆä˜B“ˆØˆÜ˜˜uÓ%ò 	4‰DˆAˆqØ—‘˜Q“ˆBØ—‘˜Q“ˆBÜ˜bŸh™h r›lÐ+ˆCÙØ‘ä  #§(¡(¨3£-Ð0�Ü §¡¨cÓ!2Ð3‰Fð	4ô ˜6Ÿ=™=›?Ð+Ð+rC   c                 ó  — |j                   }| j                  |«      }|j                  rt        |j	                  «       Ž }|}|j
                  D ]W  }| j                  |d   «      }|j                  «       dkD  rt        |j	                  «       Ž }t        |j                  d|«      Ž }ŒY d}d }|j
                  D �]¥  }	|j                  «       }
|
dz   }| j                   }|r|dz  }t        d|«      }t        |«      }|j                  ||
z
  dz  z   |_        t        |	«      dkD  �rt        |	«      dk(  rt        d«      }| j                  |	d   «      }t        |	«      dk(  r(| j                  |	d   «      }| j                  |	d   «      }|rnt        ddj                  «       z
  «      }t        |j                  d	|z  «      Ž }t        dd
j                  «       z
  «      }t        |j                  d	|z  «      Ž }t        |j                  «      Ž }t        |j!                  «      Ž }|st        |j                  d	«      Ž }|r|}d}�Œ�t        |j                  |«      Ž }�Œ¨ t        |j                  |«      Ž }t        j"                  |_        |S )Nr   ri   z dTr¥   Úintr  é   r¤   é   F)ÚfunctionrN   Úis_Addr   r[   Úlimitsr§   rs   ÚheightrK   r   r©   r&  r¦   r\   r¨   r  r  r±   )r@   Úintegralr  ÚprettyFrÉ   rœ   Ú	prettyArgÚ	firsttermr	  ÚlimÚhÚHÚ
ascii_modeÚvintr^   ÚprettyAÚprettyBÚspcs                     rB   Ú_print_IntegralzPrettyPrinter._print_Integral¬  sa  € Ø×Ñˆð —+‘+˜a“.ˆà�8Š8Ü  '§.¡.Ó"2Ð3ˆGð ˆØ—‘ò 	:ˆAØŸ™ A a¡DÓ)ˆIà�‰Ó  1Ò$Ü&¨	×(8Ñ(8Ó(:Ð;�	ä˜cŸi™i¨¨iÓ8Ð9‰Cð	:ð ˆ	ØˆØ—?‘?ó .	/ˆCà—
‘
“ˆAØ�A‘ˆAð "×.Ñ.Ð.ˆJÙØ�Q‘�ä˜˜q“>ˆDô ˜tÓ$ˆEØ Ÿ\™\Ø�A‘˜ñ-ñ ˆEŒNô �3‹x˜!‹|ô �s“8˜q’=Ü(¨›n�GØ"Ÿk™k¨#¨a©&Ó1�GÜ�s“8˜q’=Ø"Ÿk™k¨#¨a©&Ó1�GØ"Ÿk™k¨#¨a©&Ó1�Gáô ˜a  W§]¡]£_Ñ!4Ó5�CÜ(¨'¯,©,°s¸S±yÓ*AÐB�Gä˜a  W§]¡]£_Ñ!4Ó5�CÜ(¨'¯-©-¸¸c¹	Ó*BÐC�Gä" E§K¡K°Ó$8Ð9�Ü" E§K¡K°Ó$8Ð9�áÜ" E§K¡K°Ó$4Ð5�áØ�Ø!’	ä §¡ u£Ð.’ð].	/ô` ˜CŸH™H Q›KÐ(ˆÜ"Ÿ™ˆŒØˆrC   c                 ó  — |j                   }| j                  |«      }t        dd«      }t        dd«      }t        dd«      }| j                  rt        dd«      }t        dd«      }|j	                  «       }d}d}	d}
|j
                  D �]Z  }| j                  |«      \  }}|dz   d	z  d
z  dz
  }||z   ||dz
  z  z   |z   |z   g}t        |dz   «      D ]%  }|j                  d|z   d|dz
  z  z   |z   dz   «       Œ' t        d«      }t         |j                  |Ž Ž }t        |	|j	                  «       «      }	|r|j	                  «       }
t        |j                  |«      Ž }t        |j                  |«      Ž }|r	d|_        d}|j	                  «       }t        d«      }t         |j                  dg|dz
  z  Ž Ž }t        |j!                  |«      Ž }t        |j!                  |«      Ž }�Œ] |	|
dz  z   |_        t        j"                  |_        |S )Nrí   ri   rð   ú-ÚUpTackTr   r¥   é   r3  r¤   r  F)ÚtermrN   r   rK   r8  r7  Ú'_PrettyPrinter__print_SumProduct_Limitsr%  Úappendr   r   Ústackr¦   r¨   r  r©   rs   r  r±   )r@   rH   r†   Úpretty_funcÚhorizontal_chrÚ
corner_chrÚvertical_chrÚfunc_heightr+  Ú	max_upperÚsign_heightr=  Úpretty_lowerÚpretty_upperr§   Ú
sign_linesrí   Úpretty_signr8  Úpaddings                       rB   Ú_print_ProductzPrettyPrinter._print_Product÷  s1  € Ø�y‰yˆØ—k‘k $Ó'ˆä˜c 1›ˆÜ˜#˜q“\ˆ
Ü˜C “|ˆà×Òä! # q›\ˆNÜ˜h¨Ó*ˆJà!×(Ñ(Ó*ˆàˆØˆ	Øˆà—;‘;ó 	FˆCØ)-×)GÑ)GÈÓ)LÑ&ˆL˜,à  1‘_¨Ñ)¨QÑ.°Ñ2ˆEØ(¨:Ñ5¸È5ÐQRÉ7Ñ9SÑTÐWaÑaÐdrÑrÐsˆJÜ˜;¨™?Ó+ò _�Ø×!Ñ! #¨Ñ"4¸¸uÀQ¹w¹Ñ"HÈ<Ñ"WÐZ]Ñ"]Õ^ð_ô % R›.ˆKÜ$Ð&7 k×&7Ñ&7¸Ð&DÐEˆKô ˜I |×':Ñ':Ó'<Ó=ˆIáØ)×0Ñ0Ó2�ä$ k×&7Ñ&7¸Ó&EÐFˆKÜ$ k×&7Ñ&7¸Ó&EÐFˆKáØ'(�Ô$Ø�à ×'Ñ'Ó)ˆFÜ  “nˆGÜ  - '§-¡-°#°¸À¹
Ñ1CÐ"DÐEˆGÜ$ k×&7Ñ&7¸Ó&@ÐAˆKä$ k×&7Ñ&7¸Ó&DÐEŠKð;	Fð>  )¨;¸©>Ñ9ˆÔÜ(Ÿn™nˆÔØÐrC   c                 ó\   ‡ — ˆ fd„}‰ j                  |d   «      } ||d   |d   «      }||fS )Nc                 óº   •— t        dt        d«      z   dz   «      }‰j                  | «      }‰j                  |«      }t        t        j                  |||«      Ž }|S )Nr¤   ú==)r   r   rN   r   rµ   )r³   r´   r¸   r¹   rº   r^   r@   s         €rB   Úprint_startz<PrettyPrinter.__print_SumProduct_Limits.<locals>.print_start.  sS   ø€ Ü˜C¤$ t£*Ñ,¨sÑ2Ó3ˆBØ—‘˜CÓ ˆAØ—‘˜CÓ ˆAÜ¤
§¡°°2°qÓ 9Ð:ˆEØˆLrC   r¥   r   ri   )rN   )r@   r=  r^  ÚprettyUpperÚprettyLowers   `    rB   Ú__print_SumProduct_Limitsz'PrettyPrinter.__print_SumProduct_Limits-  s;   ø€ ô	ð —k‘k # a¡&Ó)ˆÙ! # a¡&¨#¨a©&Ó1ˆØ˜KÐ'Ð'rC   c                 óÞ  — | j                    }d„ }|j                  }| j                  |«      }|j                  rt	        |j                  «       Ž }|j                  «       dz   }d}d}d}	|j                  D �]I  }
| j                  |
«      \  }}t        ||j                  «       «      } |||j                  «       |j                  «       |«      \  }}}}t        d«      }t	         |j                  |Ž Ž }|r|j                  «       }	t	        |j                  |«      Ž }t	        |j                  |«      Ž }|r8|xj                  ||j                  «       dz  |j                  z
  z
  z  c_        d}t        d«      }t	         |j                  dg|z  Ž Ž }t	        |j!                  |«      Ž }t	        |j!                  |«      Ž }�ŒL s|nd}||	dz  z   |z   |_        t        j"                  |_        |S )Nc                 ó’  — dd„}t        | d«      }|dz  }|dz   }| dz  }g }	|rá|	j                  d|z  dz   «       |	j                  dd|dz
  z  z  «       t        d|«      D ]!  }
|	j                  d|
z  ›dd||
z
  z  ›�«       Œ# |r|	j                  d|z  ›dd||z
  z  ›�«       t        t        d|«      «      D ]!  }
|	j                  d|
z  ›d	d||
z
  z  ›�«       Œ# |	j                  d	d|dz
  z  z   d
z   «       |||z   |	|fS ||z   }||z   }t	        dd«      }|	j                  d|z  «       t        d|«      D ](  }
|	j                  d|
z  ›|d   ›d||
z
  dz
  z  ›�«       Œ* t        t        d|«      «      D ](  }
|	j                  d|
z  ›|d   ›d||
z
  dz
  z  ›�«       Œ* |	j                  |d   |z  «       ||d|z  z   |	|fS )Nc                 óÐ   — |rt        | «      |kD  r| S |t        | «      z
  }|dv s|t        d«      vr| d|z  z   S |dz  }d|z  }|dk(  rd|z  | z   S || z   d|t        |«      z
  z  z   S )N)ú<^>ú<re  r¤   r¥   ú>)r&  r  )r	  ÚwidÚhowÚneedÚhalfÚleads         rB   Úadjustz6PrettyPrinter._print_Sum.<locals>.asum.<locals>.adjust=  s†   € Ùœc !›f sšlØ�HØœS ›V‘|�Ø˜,Ñ&¨#´T¸%³[Ñ*@Ø˜s 4™x™<Ð'Ø˜Q‘w�Ø˜4‘x�Ø˜#’:Ø˜t™8 a™<Ð'Ø˜a‘x # t¬c°$«iÑ'7Ñ"8Ñ8Ð8rC   r¥   ri   rí   r¤   z\%s`ú\rn   ú/r  Úsumr4  r   é   )Nre  )r¦   rL  r%  rþ   r   )Ú	hrequiredr(  r)  Ú	use_asciirm  r>  rý   ÚwÚmoreÚlinesr,   Úvsums               rB   Úasumz&PrettyPrinter._print_Sum.<locals>.asum<  sü  € ó
9ô �I˜qÓ!ˆAØ�1‘ˆAØ�A‘ˆAØ˜q‘=ˆDàˆEÙØ—‘˜S !™W s™]Ô+Ø—‘˜W¨¨Q°©U©Ñ4Ô5Ü˜q !›ò B�AØ—L‘L¨S°«U°C¸¸Q¹²KÐ!@ÕAðBáØ—L‘L¨C°«G°S¸!¸a¹%²[Ð!AÔBÜ!¤%¨¨1£+Ó.ò A�AØ—L‘L¨C°«E°3¸¸A¹²;Ð!?Õ@ðAà—‘˜S 3¨¨A©¡;Ñ.°Ñ4Ô5Ø˜!˜d™( E¨4Ð/Ð/à˜‘H�Ø˜‘H�Ü˜E 1“~�Ø—‘˜S !™WÔ%Ü˜q !›ò O�AØ—L‘L¨S°ªU°D¸²G¸SÀ!ÀaÁ%È!Á)º_Ð!MÕNðOä!¤%¨¨1£+Ó.ò O�AØ—L‘L¨S°ªU°D¸²G¸SÀ!ÀaÁ%È!Á)º_Ð!MÕNðOà—‘˜T !™W a™[Ô)Ø˜!˜a ™f™* e¨TÐ1Ð1rC   r¥   Tr   r  Fr¤   )rK   r5  rN   r6  r   r[   r8  r7  rK  r¦   r§   r   rM  r¨   r  r©   rs   r  r±   )r@   rH   r@  rx  r  r:  r?  r+  rS  rT  r=  r`  r_  rý   r>  ÚslinesÚ
adjustmentÚ
prettySignÚpadÚascii_adjustments                       rB   Ú
_print_SumzPrettyPrinter._print_Sum9  sò  € Ø×*Ñ*Ð*ˆ
ò(	2ðT �M‰Mˆà—+‘+˜a“.ˆà�8Š8Ü  '§.¡.Ó"2Ð3ˆGà�N‰NÓ˜qÑ ˆð ˆØˆ	Øˆà—;‘;ó 	=ˆCØ'+×'EÑ'EÀcÓ'JÑ$ˆK˜ä˜I {×'9Ñ'9Ó';Ó<ˆIñ (,Ø�;×$Ñ$Ó&¨×(9Ñ(9Ó(;¸Zó(IÑ$ˆAˆq�&˜*ä# B›ˆJÜ#Ð%5 Z×%5Ñ%5°vÐ%>Ð?ˆJáØ(×/Ñ/Ó1�ä# Z×%5Ñ%5°kÓ%BÐCˆJÜ# Z×%5Ñ%5°kÓ%BÐCˆJáà× Ò  A¨¯©Ó)9¸1Ñ)<Ø)0×)9Ñ)9ñ*:ñ %;ñ ;Õ à�ô ˜R“.ˆCÜ˜i˜cŸi™i¨#¨¨q©Ð1Ð2ˆCÜ# Z×%5Ñ%5°cÓ%:Ð;ˆJä  *×"2Ñ"2°7Ó";Ð<ŠGð9	=ñ@ .8™:¸QÐØ$ {°A¡~Ñ5Ð8HÑHˆÔä$Ÿ.™.ˆŒØˆrC   c                 ó\  — |j                   \  }}}}| j                  |«      }t        |«      t        d   k  rt	        |j                  dd«      Ž }t	        d«      }| j                  |«      }| j                  r/t	        |j                  t        dd«      › t        d«      › �«      Ž }nt	        |j                  d«      Ž }t	        |j                  | j                  |«      «      Ž }t        |«      d	k(  s"|t        j                  t        j                  fv rd
}n0| j                  r$t        |«      dk(  rt        d«      n
t        d«      }t	        |j                  | j                  |«      «      Ž }t	        |j                  |«      Ž }t	        |j                  |«      dt        j                  iŽ}|S )Nr   rm   rn   r=  rG  ri   rè   z->z+-r  ú+ÚSuperscriptPlusÚSuperscriptMinusr±   )rZ   rN   r   r   r   r[   rK   rs   r   r   r<   r   ÚInfinityÚNegativeInfinityr  r  )	r@   r¹   rS   ÚzÚz0ÚdirÚEÚLimÚLimArgs	            rB   Ú_print_LimitzPrettyPrinter._print_Limitš  sX  € ØŸ™‰ˆˆ1ˆb�#à�K‰K˜‹NˆÜ�a‹=œJ uÑ-Ò-Ü˜AŸH™H S¨#Ó.Ð/ˆAÜ˜Óˆà—‘˜Q“ˆØ×ÒÜ §¡´°c¸1³°¼{È7Ó?SÐ>TÐ.UÓ!VÐW‰Fä §¡¨dÓ!3Ð4ˆFÜ˜VŸ\™\¨$¯+©+°b«/Ó:Ð;ˆäˆs‹8�tÒ˜r¤a§j¡j´!×2DÑ2DÐ%EÑEØ‰Cà× Ò Ü8;¸C»ÀCº”kÐ"3Ô4Ì[ÐYkÓMl�ä˜VŸ\™\¨$¯+©+°cÓ*:Ó;Ð<ˆä˜#Ÿ)™) FÓ+Ð,ˆÜ˜#Ÿ)™) A›,Ð?´
·±Ñ?ˆàˆ
rC   c           	      óú  — |}i }t        |j                  «      D ]7  }t        |j                  «      D ]  }| j                  |||f   «      |||f<   Œ Œ9 d}d}dg|j                  z  }t        |j                  «      D ]I  }t	        t        |j                  «      D �cg c]  }|||f   j                  «       ‘Œ c}xs dg«      ||<   ŒK d}	t        |j                  «      D �]  }d}
t        |j                  «      D ]¥  }|||f   }|j                  «       ||   k  sJ ‚t        |j                  «       ||   «      \  }}t        |j                  |«      Ž }t        |j                  |«      Ž }|
€|}
Œut        |
j                  d|z  «      Ž }
t        |
j                  |«      Ž }
Œ§ |	€|
}	ŒÈt        |«      D ]  }t        |	j                  d«      Ž }	Œ t        |	j                  |
«      Ž }	�Œ |	€t        d«      }	|	S c c}w )zL
        This method factors out what is essentially grid printing.
        r¥   ri   éÿÿÿÿr   Nr¤   r  )r%  ÚrowsÚcolsrN   r¦   r§   r%   r   rs   r\   r  )r@   rS   ÚMÚMsr,   r8   ÚhsepÚvsepÚmaxwÚDÚD_rowr	  r\   rs   rí   s                  rB   Ú_print_matrix_contentsz$PrettyPrinter._print_matrix_contents¶  s  € ð ˆØˆÜ�q—v‘v“ò 	0ˆAÜ˜1Ÿ6™6“]ò 0�ØŸ;™; q¨¨A¨¡wÓ/��1�a�4’ñ0ð	0ð
 ˆØˆð ˆt�a—f‘f‰}ˆä�q—v‘v“ò 	LˆAÜ´U¸1¿6¹6³]ÖC°˜2˜a ˜d™8Ÿ>™>Õ+ÒCÒJÈÀsÓKˆD�ŠGð	Lð ˆä�q—v‘v“ó %	,ˆAàˆEÜ˜1Ÿ6™6“]ò 4�Ø�q˜!�t‘H�ð —w‘w“y D¨¡GÒ+Ð+Ð+ô
 )¨¯©«°D¸±GÓ<‘��eä §¡¨£Ð/�Ü §¡ t£Ð-�ð �=Ø�EØä" E§K¡K°°D±Ó$9Ð:�Ü" E§K¡K°£NÐ3‘ð14ð4 ˆyØ�Øô ˜4“[ò .�Ü §¡¨£Ð-‘ð.ô ˜AŸG™G E›NÐ+ŠAðK%	,ðN ˆ9Ü˜2“ˆAàˆùò_ Ds   ÂG8
c                 óˆ   — | j                  |«      }|j                  «       dz  |_        t        |j	                  ||«      Ž }|S )Nr¥   )r—  r8  r©   r   r[   )r@   rS   ÚlparensÚrparensr•  s        rB   Ú_print_MatrixBasezPrettyPrinter._print_MatrixBaseù  s=   € Ø×'Ñ'¨Ó*ˆØ—X‘X“Z ‘]ˆŒ
Ü˜Ÿ™ ¨'Ó2Ð3ˆØˆrC   c                 ó<  — |j                   }|j                  rqddlm} t	        ||«      r| j                  |j                  dd¬«      S | j                  |«      }|j                  «       dz  |_	        t        |j                  dd«      Ž S | j                  |dd¬«      S )Nr   ©ÚBlockMatrixrð   )r™  rš  r¥   )rÉ   Úis_MatrixExprÚ&sympy.matrices.expressions.blockmatrixrž  r:   r›  ÚblocksrN   r8  r©   r   r[   )r@   rS   Úmatrž  r•  s        rB   Ú_print_Determinantz PrettyPrinter._print_Determinantÿ  sŠ   € Ø�e‰eˆØ×ÒÝJÜ˜#˜{Ô+Ø×-Ñ-¨c¯j©jÀ#ÈsÐ-ÓSÐSØ—‘˜CÓ ˆAØŸ™› Q™ˆAŒJÜ˜qŸx™x¨¨SÓ1Ð2Ð2à×)Ñ)¨#°sÀCÐ)ÓHÐHrC   c                 óf   — | j                   rd}nd}| j                  |j                  d d |d„ ¬«      S )Nu   âŠ—ú.*c                 ó,   — t        | «      t        d   k  S ©Nr   ©r   r   ©rœ   s    rB   ú<lambda>z4PrettyPrinter._print_TensorProduct.<locals>.<lambda>  ó   € Ô#9¸!Ó#<Ä
È5Ñ@QÑ#Q€ rC   ©Úparenthesize©rK   rY   rZ   )r@   rH   Úcircled_timess      rB   Ú_print_TensorProductz"PrettyPrinter._print_TensorProduct  s<   € à×ÒØ$‰Mà ˆMØ�‰˜tŸy™y¨$°°mÙQð ó Sð 	SrC   c                 óf   — | j                   rd}nd}| j                  |j                  d d |d„ ¬«      S )Nu   âˆ§z/\c                 ó,   — t        | «      t        d   k  S r§  r¨  r©  s    rB   rª  z3PrettyPrinter._print_WedgeProduct.<locals>.<lambda>  r«  rC   r¬  r®  )r@   rH   Úwedge_symbols      rB   Ú_print_WedgeProductz!PrettyPrinter._print_WedgeProduct  s<   € à×ÒØ#‰Là ˆLØ�‰˜tŸy™y¨$°°lÙQð ó Sð 	SrC   c                 óÊ   — | j                  |j                  «      }t        |j                  dd«      Ž }|j	                  «       dz  |_        t        |j                  d«      Ž }|S )Nrm   rn   r¥   Útr)rN   rÉ   r   r[   r8  r©   r\   )r@   rS   r•  s      rB   Ú_print_TracezPrettyPrinter._print_Trace  sR   € Ø�K‰K˜Ÿ™ÓˆÜ˜Ÿ™  SÓ)Ð*ˆØ—X‘X“Z ‘]ˆŒ
Ü˜Ÿ™˜Ó/Ð0ˆØˆrC   c                 ó|  — ddl m} t        |j                  |«      rv|j                  j
                  r`|j                  j
                  rJ| j                  t        |j                  j                  d|j                  |j                  fz  z   «      «      S | j                  |j                  «      }t        |j                  «       Ž }| j                  |j                  |j                  fd¬«      j                  dd¬«      d   }t        t        j                  ||«      d	t        j                  iŽ}||_        ||_        |S )
Nr   ©ÚMatrixSymbolz_%d%dú, ©Ú	delimiterú[ú]©r\   rs   r±   )Úsympy.matricesrº  r:   Úparentr,   Ú	is_numberr8   rN   r   ra   r   r[   rY   r   rµ   r   Ú
prettyFuncÚ
prettyArgs)r@   rH   rº  rÄ  ÚprettyIndicesr^   s         rB   Ú_print_MatrixElementz"PrettyPrinter._print_MatrixElement%  s  € Ý/Ü�t—{‘{ LÔ1Ø—F‘F×$Ò$¨¯©×)9Ò)9Ø—;‘;Ü˜4Ÿ;™;×+Ñ+¨g¸¿¹ÀÇÁÐ8HÑ.HÑHÓIóKð Kð Ÿ™ T§[¡[Ó1ˆJÜ# Z×%6Ñ%6Ó%8Ð9ˆJØ ŸO™O¨T¯V©V°T·V±VÐ,<È˜Oó ß‘f #¨S�fÓ1°!ñ5ˆMäÜ—_‘_ Z°Ó?ðA¤z§¡ñ AˆEð  *ˆEÔØ,ˆEÔàˆLrC   c                 ó  ‡ — ddl m} ‰ j                  |j                  «      }t	        |j                  |«      st        |j                  «       Ž }ˆ fd„}‰ j                   ||j                  |j                  j                  «       ||j                  |j                  j                  «      fd¬«      j                  dd¬«      d   }t        t        j                  ||«      d	t
        j                  iŽ}||_        ||_        |S )
Nr   r¹  c                 ó–   •— t        | «      } | d   dk(  r| d= | d   dk(  rd| d<   | d   |k(  rd| d<   t        ‰j                  | d¬«      Ž S )Nr¥   ri   r   r  ú:r¼  )r  r   rY   )rœ   Údimr@   s     €rB   Úppslicez1PrettyPrinter._print_MatrixSlice.<locals>.ppslice@  s^   ø€ Ü�Q“ˆAØ�‰t�qŠyØ�a�DØ�‰t�qŠyØ��!‘Ø�‰t�sŠ{Ø��!‘Ü˜tŸ™¨q¸C˜Ó@ÐAÐArC   r»  r¼  r¾  r¿  rÀ  r±   )rÁ  rº  rN   rÂ  r:   r   r[   rY   ÚrowslicerŽ  Úcolslicer�  r   rµ   r   rÄ  rÅ  )r@   Úmrº  rÄ  rÌ  rÅ  r^   s   `      rB   Ú_print_MatrixSlicez PrettyPrinter._print_MatrixSlice:  sß   ø€ å/Ø—[‘[ §¡Ó*ˆ
Ü˜!Ÿ(™( LÔ1Ü# Z×%6Ñ%6Ó%8Ð9ˆJô	Bð —_‘_¡g¨a¯j©j¸!¿(¹(¿-¹-Ó&HÙ�A—J‘J §¡§¡Ó.ð&0Ø;?ð %ó AßAGÁÈSÐX[ÀÓA\Ð]^ñ`ˆ
ô Ü&0§o¡o°jÀ*Ó&MðOÜ—O‘OñOˆð &ˆÔØ%ˆÔàˆrC   c                 óà   — |j                   }| j                  |«      }ddlm}m} t        ||«      s.t        ||«      s"|j                  rt        |j                  «       Ž }|t        d«      z  }|S )Nr   ©rº  rž  ÚT)	rÉ   rN   rÁ  rº  rž  r:   rŸ  r   r[   )r@   rH   r¢  r^   rº  rž  s         rB   Ú_print_TransposezPrettyPrinter._print_TransposeU  s[   € Ø�h‰hˆØ—‘˜CÓ ˆß<Ü˜3 Ô-Ü˜3 Ô,°×1BÒ1BÜ §¡£Ð/ˆEØœ
 3›Ñ(ˆØˆrC   c                 ó&  — |j                   }| j                  |«      }| j                  rt        t	        d«      «      }nt        d«      }ddlm}m} t        ||«      s.t        ||«      s"|j                  rt        |j                  «       Ž }||z  }|S )NÚDaggerr€  r   rÒ  )rÉ   rN   rK   r   r   rÁ  rº  rž  r:   rŸ  r[   )r@   rH   r¢  r^   Údagrº  rž  s          rB   Ú_print_AdjointzPrettyPrinter._print_Adjoint_  sw   € Ø�h‰hˆØ—‘˜CÓ ˆØ×ÒÜœ[¨Ó2Ó3‰Cä˜S“/ˆCß<Ü˜3 Ô-Ü˜3 Ô,°×1BÒ1BÜ §¡£Ð/ˆEØ�s‘
ˆØˆrC   c                 ó¦   — |j                   j                  dk(  r| j                  |j                   d   «      S | j                  |j                   «      S )N©ri   ri   ©r   r   )r¡  ÚshaperN   )r@   ÚBs     rB   Ú_print_BlockMatrixz PrettyPrinter._print_BlockMatrixm  s<   € Ø�8‰8�>‰>˜VÒ#Ø—;‘;˜qŸx™x¨™~Ó.Ð.Ø�{‰{˜1Ÿ8™8Ó$Ð$rC   c                 ó|  — d }|j                   D ]ª  }| j                  |«      }|€|}Œ|j                  «       d   }t        |«      j	                  «       r.t        t        j                  |d«      Ž }| j                  |«      }nt        t        j                  |d«      Ž }t        t        j                  ||«      Ž }Œ¬ |S )Nr   r¤   ú + )rZ   rN   Úas_coeff_mmulr   Úcould_extract_minus_signr   r   rµ   )r@   rH   r	  Úitemr^   Úcoeffs         rB   Ú_print_MatAddzPrettyPrinter._print_MatAddr  s©   € ØˆØ—I‘Iò 	;ˆDØ—K‘K Ó%ˆEØˆyØ‘à×*Ñ*Ó,¨QÑ/�Ü�U“8×4Ñ4Ô6Ü"¤J§O¡O°A°sÓ$;Ð<�AØ ŸK™K¨Ó-‘Eä"¤J§O¡O°A°uÓ$=Ð>�AÜ¤
§¡°°5Ó 9Ð:‘ð	;ð ˆrC   c                 ól  — t        |j                  «      }ddlm} ddlm} ddlm} t        |«      D ]n  \  }}t        |t        |||f«      rAt        |j                  «      dkD  r)t        | j                  |«      j                  «       Ž ||<   Œ[| j                  |«      ||<   Œp t        j                  |Ž S )Nr   ©ÚHadamardProduct)ÚKroneckerProduct©ÚMatAddri   )r  rZ   Ú#sympy.matrices.expressions.hadamardrè  Ú$sympy.matrices.expressions.kroneckerré  Ú!sympy.matrices.expressions.mataddrë  Ú	enumerater:   r   r&  r   rN   r[   Ú__mul__)r@   rH   rZ   rè  ré  rë  r,   Úas           rB   Ú_print_MatMulzPrettyPrinter._print_MatMulƒ  s–   € Ü�D—I‘I‹ˆÝGÝIÝ<Ü˜d“Oò 	)‰DˆAˆqÜ˜1œs F¨OÐ=MÐNÔOÜ˜DŸI™I›¨Ò*Ü$ d§k¡k°!£n×&;Ñ&;Ó&=Ð>��Q’àŸ+™+ a›.��Q’ð	)ô ×!Ñ! 4Ð(Ð(rC   c                 óX   — | j                   rt        t        d«      «      S t        d«      S )NÚIdentityMatrixÚI©rK   r   r   rG   s     rB   Ú_print_IdentityzPrettyPrinter._print_Identity‘  s&   € Ø×ÒÜœkÐ*:Ó;Ó<Ð<ä˜c“?Ð"rC   c                 óX   — | j                   rt        t        d«      «      S t        d«      S )NÚ
ZeroMatrixÚ0rö  rG   s     rB   Ú_print_ZeroMatrixzPrettyPrinter._print_ZeroMatrix—  s%   € Ø×ÒÜœk¨,Ó7Ó8Ð8ä˜c“?Ð"rC   c                 óX   — | j                   rt        t        d«      «      S t        d«      S )NÚ	OneMatrixÚ1rö  rG   s     rB   Ú_print_OneMatrixzPrettyPrinter._print_OneMatrix�  s%   € Ø×ÒÜœk¨+Ó6Ó7Ð7ä˜c“?Ð"rC   c                 óž   — t        |j                  «      }t        |«      D ]  \  }}| j                  |«      ||<   Œ t	        j
                  |Ž S rE   )r  rZ   rï  rN   r   rð  ©r@   rH   rZ   r,   rñ  s        rB   Ú_print_DotProductzPrettyPrinter._print_DotProduct£  sH   € Ü�D—I‘I‹ˆä˜d“Oò 	%‰DˆAˆqØ—k‘k !“nˆD�ŠGð	%ä×!Ñ! 4Ð(Ð(rC   c                 ó  — | j                  |j                  «      }ddlm} t	        |j                  |«      s,|j                  j
                  rt        |j                  «       Ž }|| j                  |j                  «      z  }|S )Nr   r¹  )	rN   ÚbaserÁ  rº  r:   rŸ  r   r[   Úexp)r@   rH   r^   rº  s       rB   Ú_print_MatPowzPrettyPrinter._print_MatPowª  s]   € Ø—‘˜DŸI™IÓ&ˆÝ/Ü˜$Ÿ)™) \Ô2°t·y±y×7NÒ7NÜ §¡£Ð/ˆEØ˜Ÿ™ D§H¡HÓ-Ñ.ˆØˆrC   c           	      óª   ‡‡‡— ddl mŠ ddlmŠ ddlmŠ | j                  rt        d«      }nd}| j                  |j                  d d |ˆˆˆfd„¬«      S )	Nr   rç  rê  ©ÚMatMulÚRingr¥  c                 ó"   •— t        | ‰‰‰f«      S rE   ©r:   )rœ   rè  rë  r	  s    €€€rB   rª  z6PrettyPrinter._print_HadamardProduct.<locals>.<lambda>»  s   ø€ ¤z°!°f¸fÀoÐ5VÓ'W€ rC   r¬  )
rì  rè  rî  rë  Ú!sympy.matrices.expressions.matmulr	  rK   r   rY   rZ   )r@   rH   Údelimrè  rë  r	  s      @@@rB   Ú_print_HadamardProductz$PrettyPrinter._print_HadamardProduct²  sK   ú€ ÝGÝ<Ý<Ø×ÒÜ Ó'‰EàˆEØ�‰˜tŸy™y¨$°°eÝWð ó Yð 	YrC   c                 óŽ  — | j                   rt        d«      }n| j                  d«      }| j                  |j                  «      }| j                  |j                  «      }t        |j                  «      t        d   k  rt        |j                  «       Ž }t        t        j                  ||«      dt        j                  iŽ}||z  S )Nr
  ú.r   r±   )rK   r   rN   r  r  r   r   r   r[   r   rµ   r  )r@   rH   ÚcircÚpretty_baseÚ
pretty_expÚpretty_circ_exps         rB   Ú_print_HadamardPowerz"PrettyPrinter._print_HadamardPower½  s¡   € à×ÒÜ˜vÓ&‰Dà—;‘;˜sÓ#ˆDØ—k‘k $§)¡)Ó,ˆØ—[‘[ §¡Ó*ˆ
Ü�d—h‘hÓ¤*¨UÑ"3Ò3Ü# Z×%6Ñ%6Ó%8Ð9ˆJÜ$ä�_‰_˜T :Ó.ð
Ü—O‘Oñ
ˆð ˜OÑ+Ð+rC   c                 ó¢   ‡‡— ddl mŠ ddlmŠ | j                  rdt        d«      › d�}nd}| j                  |j                  d d |ˆˆfd„¬«      S )	Nr   rê  r  r¤   ÚTensorProductz x c                 ó    •— t        | ‰‰f«      S rE   r  )rœ   rë  r	  s    €€rB   rª  z7PrettyPrinter._print_KroneckerProduct.<locals>.<lambda>Õ  s   ø€ ¤z°!°f¸fÐ5EÓ'F€ rC   r¬  )rî  rë  r  r	  rK   r   rY   rZ   )r@   rH   r  rë  r	  s      @@rB   Ú_print_KroneckerProductz%PrettyPrinter._print_KroneckerProductÍ  sR   ù€ Ý<Ý<Ø×ÒØœ OÓ4Ð5°QÐ7‰EàˆEØ�‰˜tŸy™y¨$°°eÜFð ó Hð 	HrC   c                 ó€   — | j                  |j                  j                  «      }t        |j	                  dd«      Ž }|S ©Nr¾  r¿  )rN   ÚlamdarH   r   r[   )r@   ÚXr•  s      rB   Ú_print_FunctionMatrixz#PrettyPrinter._print_FunctionMatrix×  s2   € Ø�K‰K˜Ÿ™Ÿ™Ó%ˆÜ˜Ÿ™  cÓ*Ð+ˆØˆrC   c                 ó   — |j                   dk(  sC|j                   |j                  }}t        |t        |dd¬«      d¬«      }| j	                  |«      S | j                  d«      | j                  |j                  «      z  S )Nri   r�  F©Úevaluate)r  Údenr   r
   Ú
_print_MulrN   )r@   rH   r  r#  Úress        rB   Ú_print_TransferFunctionz%PrettyPrinter._print_TransferFunctionÜ  sd   € Ø�x‰x˜1Š}Ø—x‘x §¡�ˆCÜ�cœ3˜s B°Ô7À%ÔHˆCØ—?‘? 3Ó'Ð'à—;‘;˜q“> $§+¡+¨d¯h©hÓ"7Ñ7Ð7rC   c                 óÚ   — t        |j                  «      }t        |j                  «      D ]-  \  }}t        | j	                  |«      j                  «       Ž ||<   Œ/ t        j                  |Ž S rE   )r  rZ   rï  r   rN   r[   rð  r  s        rB   Ú_print_SerieszPrettyPrinter._print_Seriesä  s[   € Ü�D—I‘I‹ˆÜ˜dŸi™iÓ(ò 	;‰DˆAˆqÜ  $§+¡+¨a£.×"7Ñ"7Ó"9Ð:ˆD�ŠGð	;ä×!Ñ! 4Ð(Ð(rC   c                 óÚ  — ddl m} t        |j                  «      }g }t	        |«      D ]¯  }t        ||«      rgt        |j                  «      dkD  rO| j                  |«      }|j                  «       dz  |_	        |j                  t        |j                  «       Ž «       Œv| j                  |«      }|j                  «       dz  |_	        |j                  |«       Œ± t        j                  |Ž S )Nr   )ÚMIMOParallelri   r¥   )Úsympy.physics.control.ltir*  r  rZ   rþ   r:   r&  rN   r8  r©   rL  r   r[   rð  )r@   rH   r*  rZ   Úpretty_argsrñ  Ú
expressions          rB   Ú_print_MIMOSerieszPrettyPrinter._print_MIMOSeriesê  sÆ   € Ý:Ü�D—I‘I‹ˆØˆÜ˜$“ò 	/ˆAÜ˜1˜lÔ+´°D·I±I³ÀÒ0BØ!Ÿ[™[¨›^�
Ø&0×&7Ñ&7Ó&9¸1Ñ&<�
Ô#Ø×"Ñ"¤:¨z×/@Ñ/@Ó/BÐ#CÕDà!Ÿ[™[¨›^�
Ø&0×&7Ñ&7Ó&9¸1Ñ&<�
Ô#Ø×"Ñ" :Õ.ð	/ô ×!Ñ! ;Ð/Ð/rC   c                 ó.  — d }|j                   D ]ƒ  }| j                  |«      }|€|}Œt        t        j                  |«      Ž }|j                  «       dz  |_        t        t        j                  |d«      Ž }t        t        j                  ||«      Ž }Œ… |S )Nr¥   rà  )rZ   rN   r   r   rµ   r8  r©   )r@   rH   r	  rã  r^   s        rB   Ú_print_ParallelzPrettyPrinter._print_Parallelù  s‡   € ØˆØ—I‘Iò 	;ˆDØ—K‘K Ó%ˆEØˆyØ‘ä¤
§¡°Ó 2Ð3�ØŸX™X›Z¨™]�”
Ü¤
§¡°°5Ó 9Ð:�Ü¤
§¡°°5Ó 9Ð:‘ð	;ð ˆrC   c                 ó‚  — ddl m} d }|j                  D ]§  }| j                  |«      }|€|}Œt	        t        j                  |«      Ž }|j                  «       dz  |_        t	        t        j                  |d«      Ž }t        ||«      r|j                  «       dz
  |_        t	        t        j                  ||«      Ž }Œ© |S )Nr   )ÚTransferFunctionMatrixr¥   rà  ri   )
r+  r2  rZ   rN   r   r   rµ   r8  r©   r:   )r@   rH   r2  r	  rã  r^   s         rB   Ú_print_MIMOParallelz!PrettyPrinter._print_MIMOParallel  s¦   € ÝDØˆØ—I‘Iò 
	;ˆDØ—K‘K Ó%ˆEØˆyØ‘ä¤
§¡°Ó 2Ð3�ØŸX™X›Z¨™]�”
Ü¤
§¡°°5Ó 9Ð:�Ü˜dÐ$:Ô;Ø!"§¡£¨a¡�A”JÜ¤
§¡°°5Ó 9Ð:‘ð
	;ð ˆrC   c                 ób  — ddl m}m} |j                   |dd|j                  «      }}t        ||«      rt        |j                  «      n|g}t        |j                  |«      rt        |j                  j                  «      n|j                  g}t        ||«      r!t        |j                  |«      r |g |¢|¢­Ž }n­t        ||«      r@t        |j                  |«      r*|j                  |k(  r ||Ž }nv |g |¢|j                  ‘­Ž }nat        ||«      r+t        |j                  |«      r||k(  r ||Ž }n4 ||g|¢­Ž }n*||k(  r ||Ž }n|j                  |k(  r ||Ž }n
 |g |¢|¢­Ž }t        t        j                  | j                  |«      «      Ž }	|	j                  «       dz  |	_        |j                  dk(  rt        t        j                  |	d«      Ž nt        t        j                  |	d«      Ž }	t        t        j                  |	| j                  |«      «      Ž }	| j                  |«      |	z  S )Nr   )ÚTransferFunctionÚSeriesri   r¥   r�  rà  ú - )Úsympy.physics.controlr5  r6  Úsys1Úvarr:   r  rZ   Úsys2r   r   rµ   rN   r8  r©   Úsign)
r@   rH   r5  r6  r  ÚtfÚnum_arg_listÚden_arg_listr#  Údenoms
             rB   Ú_print_FeedbackzPrettyPrinter._print_Feedback  sÚ  € ßBà—)‘)Ñ-¨a°°D·H±HÓ=ˆRˆÜ)3°C¸Ô)@”t˜CŸH™H”~ÀsÀeˆä�t—y‘y &Ô)ô ˜DŸI™IŸN™NÔ+Ø04·	±	¨{ð 	ô �c˜6Ô"¤z°$·)±)¸VÔ'DÙÐ6˜,Ð6¨Ò6‰CÜ˜˜VÔ$¬°D·I±IÐ?OÔ)PØ�y‰y˜BŠÙ˜lÐ+‘áÐ6˜lÐ6¨D¯I©IÒ6‘Ü˜Ð-Ô.´:¸d¿i¹iÈÔ3PØ�bŠyÙ˜lÐ+‘á˜SÐ0 <Ò0‘à�bŠyÙ˜lÐ+‘Ø—‘˜b’Ù˜lÐ+‘áÐ:˜lÐ:¨\Ò:�äœJŸO™O¨D¯K©K¸«OÓ<Ð=ˆØŸ™›¨Ñ*ˆŒØ>B¿i¹iÈ2ºo”
œJŸO™O¨E°5Ó9Ñ:ÜœZŸ_™_¨U°EÓ:Ð;ð 	äœJŸO™O¨E°4·;±;¸sÓ3CÓDÐEˆà�{‰{˜3Ó Ñ%Ð%rC   c                 óæ  — ddl m}m} | j                   ||j                  |j
                  «      «      }| j                  |j
                  «      }t        t        j                  |«      Ž }|j                  dk(  rt        t        j                  d|«      Ž nt        t        j                  d|«      Ž }t        t        j                  |«      Ž }d|_        t        t        j                  |d«      Ž }|j                  «       dz  |_        t        j                  |t        d«      «      }t        |j
                  |«      r|j                  «       d	z
  |_        t        t        j                  ||«      Ž }|S )
Nr   )Ú
MIMOSeriesr2  r�  zI + zI - z-1 r¥   r¤   ri   )r8  rC  r2  rN   r;  r9  r   r   rµ   r<  rs   r[   r©   r8  rð  r:   )r@   rH   rC  r2  Úinv_matÚplantÚ	_feedbacks          rB   Ú_print_MIMOFeedbackz!PrettyPrinter._print_MIMOFeedback;  s!  € ßLà—+‘+™j¨¯©°D·I±IÓ>Ó?ˆØ—‘˜DŸI™IÓ&ˆÜ¤
§¡°Ó 8Ð9ˆ	ØHLÏ	É	ÐUWÊ”J¤
× 0Ñ 0°¸Ó CÑDÜœZ×-Ñ-¨f°iÓ@ÐAð 	ä¤
× 1Ñ 1°)Ó <Ð=ˆ	Øˆ	ÔÜ¤
× 0Ñ 0°¸EÓ BÐCˆ	Ø&×-Ñ-Ó/°Ñ2ˆ	ÔÜ×&Ñ& y´*¸S³/ÓBˆ	Ü�d—i‘iÐ!7Ô8Ø!*×!1Ñ!1Ó!3°aÑ!7ˆIÔÜ¤
§¡°	¸5Ó AÐBˆ	ØÐrC   c                 óÈ   — | j                  |j                  «      }|j                  «       dz
  |_        | j                  r	t
        d   nd}t        |j                  |«      Ž }|S )Nri   Útauz{t})rN   Ú	_expr_matr8  r©   rK   r    r   rs   )r@   rH   r¢  Ú	subscripts       rB   Ú_print_TransferFunctionMatrixz+PrettyPrinter._print_TransferFunctionMatrixM  sR   € Ø�k‰k˜$Ÿ.™.Ó)ˆØ—z‘z“| aÑ'ˆŒØ,0×,=Ò,=”M %Ò(À6ˆ	Ü˜#Ÿ)™) IÓ.Ð/ˆØˆ
rC   c                 óÀ   — ddl m} |j                  }|j                  }|j                  }|j
                  } |||g||gg«      }| j                  |j                  «      S )Nr   r�  )r   rž  Ú_AÚ_BÚ_CÚ_DrN   r¡  )r@   rH   rž  ÚArÝ  ÚCr•  r¢  s           rB   Ú_print_StateSpacezPrettyPrinter._print_StateSpaceT  sS   € ÝFØ�G‰GˆØ�G‰GˆØ�G‰GˆØ�G‰GˆÙ˜A˜q˜6 A q 6Ð*Ó+ˆØ�{‰{˜3Ÿ:™:Ó&Ð&rC   c                 ó`	  — ddl m} | j                  st        d«      ‚||j                  k(  rt        |j                  j                  «      S g }g }t        ||«      r|j                  «       j                  «       }nd|fg}|D ]ë  \  }}t        |j                  j                  «       «      }|j                  d„ ¬«       |D ]«  \  }	}
|
dk(  r|j                  d|	j                  z   «       ng|
dk(  r|j                  d	|	j                  z   «       nC| j                  |
«      j                  «       d   }|j                  |d
z   |	j                  z   «       |j                  |	j                  «       Œ­ Œí |d   j!                  d«      r|d   dd  |d<   n|d   j!                  d
«      r|d   dd  |d<   g }dg}g }t#        |«      D �]   \  }}|j                  d«       d|v sŒ|}|j%                  ||   d«      }t'        dd«      |v rct)        t+        |«      «      D ]K  }d||<   ||   t'        dd«      k(  sŒ||dz      dk(  sŒ'|d | t'        dd«      z   d
z   ||   z   ||dz   d  z   } nY nWt'        dd«      |v rI|j-                  t'        dd«      «      }|dk7  r)d||<   |d | t'        dd«      z   d
z   ||   z   ||dz   d  z   }|||<   �Œ |D �cg c]  }|j/                  d«      ‘Œ }}t1        d„ |D «       «      }d|v rHt#        |«      D ]:  \  }}t+        |«      dk(  sŒ|j3                  dd
t+        |d   «      z  «       d||<   Œ< t#        |«      D �]+  \  }}|j                  t+        |||      «      «       t)        |«      D ]÷  }|dz   t+        |«      k  rŽ|t+        |«      k\  r2|j                  d
t5        |d d «      dt+        |«      dz
  z  z   z  «       |||   k(  r|||   xx   |||      dz   z  cc<   Œv||xx   ||   d
|d   t+        ||   «      z
  dz   z  z   z  cc<   Œ¢|t+        |«      k\  r2|j                  d
t5        |d d «      dt+        |«      dz
  z  z   z  «       ||xx   d
|d   dz   z  z  cc<   Œù �Œ. t        dj7                  |D �cg c]  }|d d ‘Œ	 c}«      «      S c c}w c c}w )Nr   )ÚVectorz:ASCII pretty printing of BasisDependent is not implementedc                 ó(   — | d   j                  «       S ©Nr   )Ú__str__r©  s    rB   rª  z5PrettyPrinter._print_BasisDependent.<locals>.<lambda>m  s   € ¨A¨a©D¯L©L«N€ rC   rÌ   ri   r  r�  z(-1) r¤   rà  r3  ú
z)_extz)_lower_hookc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrE   )r&  )Ú.0rœ   s     rB   ú	<genexpr>z6PrettyPrinter._print_BasisDependent.<locals>.<genexpr>¦  s   è ø€ Ò, Aœ˜QŸÑ,ùs   ‚éýÿÿÿ)Úsympy.vectorrV  rK   ÚNotImplementedErrorÚzeror   Ú_pretty_formr:   ÚseparateÚitemsr  Ú
componentsrÑ   rL  rN   r[   Ú
startswithrï  r  r   r%  r&  ÚrfindÚsplitr¦   Úinsertrp  Újoin)r@   rH   rV  Úo1Úvectstrsrd  ÚsystemÚvectÚ
inneritemsr«   ÚvÚarg_strÚlengthsÚstrsÚflagr,   ÚpartstrÚtempstrÚparenÚindexrœ   Ú
n_newlinesÚpartsr8   r	  s                            rB   Ú_print_BasisDependentz#PrettyPrinter._print_BasisDependent]  s  € Ý'à× Ò Ü%Ð&bÓcÐcà�4—9‘9ÒÜ˜dŸi™i×4Ñ4Ó5Ð5ØˆØˆÜ�d˜FÔ#Ø—M‘M“O×)Ñ)Ó+‰Eà˜�Y�KˆEØ!ò 	0‰LˆF�DÜ˜dŸo™o×3Ñ3Ó5Ó6ˆJØ�O‰OÑ":ˆOÔ;Ø"ò 0‘��1ð ˜’6Ø—I‘I˜bØŸn™nñ-õ .ð ˜"’WØ—I‘I˜gØŸn™nñ-õ .ð #Ÿk™kØóß!™6›8 Añ'�Gð —I‘I˜g¨™m¨a¯n©nÑ<Ô=Ø—‘ §¡Õ/ñ%0ð	0ð0 ˆa‰5×Ñ˜EÔ"Ø�q‘E˜!˜"�IˆBˆqŠEØ�‰U×Ñ˜cÔ"Ø�q‘E˜!˜"�IˆBˆq‰EàˆØˆtˆØˆÜ# B›-ó 	 ‰JˆAˆwØ�K‰K˜ŒNà�wŠØ!�Ø!Ÿ/™/¨(°1©+°rÓ:�Ü˜ Ó# wÑ.Ü!&¤s¨7£|Ó!4ò "˜Ø"#˜˜Q™Ø" 5™>¬T°'¸1Ó-=Ó=À'È%ÐRSÉ)ÑBTÐX\ÓB\ð '.¨f¨u o¼¸WÀaÓ8HÑ&HØ+.ñ'/Ø2:¸1±+ñ'>Ø@GÈÐPQÉ	È
Ð@Sñ'T˜Gá!ñ"ô ˜.¨!Ó,°Ñ7ð $ŸM™M¬$¨~¸qÓ*AÓB�EØ ’{Ø"#˜˜Q™Ø")¨&¨5 /´D¸ÈÓ4KÑ"KØ'*ñ#+Ø.6°q©kñ#:Ø<CÀEÈAÁIÀJÐ<Oñ#P˜à��1“ð1	 ð4 &(Ö( ˆa�g‰g�d�mÐ(ˆÐ(ÜÑ,¨Ô,Ó,ˆ
à�‰9Ü% b›Mò  ‘��5Ü�u“: “?Ø—L‘L  C¬3¨u°Q©x«=Ñ$9Ô:Ø�D˜’Gð ô
 " "›ó 	3‰HˆAˆuØ�N‰Nœ3˜u T¨!¡W™~Ó.Ô/Ü˜:Ó&ò 3�Ø�Q‘3œ#˜e›*Ò$ØœC ›I’~ØŸ™ C¬3¨w°s¸¨|Ó+<Ø+,¬c°'«l¸1©nÑ+=ñ,>ñ %?ô @à˜D ™G’|Ø˜T !™W›¨¨t°A©w©¸%Ñ)?Ñ?œà˜Q› 5¨¡8¨c°7¸2±;Ü36°u¸Q±x³=ñ4Aà34ñ45ñ /6ñ $6ñ 6œð œC ›I’~ØŸ™ C¬3¨w°s¸¨|Ó+<Ø+,¬c°'«l¸1©nÑ+=ñ,>ñ %?ô @à˜“G˜s G¨B¡K°¡MÑ2Ñ2”Gò3ð	3ô& ˜$Ÿ)™)°TÖ$:° Q s¨¢VÒ$:Ó;Ó<Ð<ùò9 )ùò8 %;s   Ë	R&ÒR+c           	      óh  ‡
— ddl mŠ
 |j                  «       dk(  r| j                  |d   «      S g gt	        |j                  «       «      D �cg c]  }g ‘Œ c}z   }|j
                  D �cg c]  }t        t	        |«      «      ‘Œ }}ˆ
fd„}t        j                  |Ž D ]Ó  }|d   j                  ||   «       d}t	        |j                  «       dz
  dd«      D ]—  }t        ||dz      «      |j
                  |   k  r Œ`|r||   j                  ||dz      «       nJ||   j                   |||dz      «      «       t        ||dz      «      dk(  r |||   d   gg«      ||   d<   | }g ||dz   <   Œ™ ŒÕ |d   d   }	|j                  «       dz  dk(  r	 ||	g«      }	| j                  |	«      S c c}w c c}w )	Nr   )ÚImmutableMatrixrM   c                 ó   •—  ‰| d¬«      S )NFr!  rM   )rœ   r}  s    €rB   rª  z0PrettyPrinter._print_NDimArray.<locals>.<lambda>Ì  s   ø€ ™¨°EÔ:€ rC   r�  Tri   r¥   )Úsympy.matrices.immutabler}  ÚrankrN   r%  rÜ  r  Ú	itertoolsÚproductrL  r&  )r@   rH   r,   Ú	level_strÚshape_rangesr¢  Úouter_iÚevenÚback_outer_iÚout_exprr}  s             @rB   Ú_print_NDimArrayzPrettyPrinter._print_NDimArrayÃ  sÁ  ø€ Ý<à�9‰9‹;˜!ÒØ—;‘;˜t B™xÓ(Ð(à�D¬¨d¯i©i«kÓ(:Ö; 1šBÒ;Ñ;ˆ	Ø04·
±
Ö;¨1œœU 1›X�Ð;ˆÐ;ã:ˆÜ ×(Ñ(¨,Ð7ò 	/ˆGØ�b‰M× Ñ   g¡Ô/ØˆDÜ % d§i¡i£k°!¡m°R¸Ó <ò /�Ü�y ¨a¡Ñ0Ó1°D·J±J¸|Ñ4LÒLÙÙØ˜lÑ+×2Ñ2°9¸\È!¹^Ñ3LÕMà˜lÑ+×2Ñ2±3Ø! ,¨q¡.Ñ1ó43ô 4ä˜9 \°AÑ%5Ñ6Ó7¸1Ò<Ù69Ø'¨Ñ5°bÑ9Ð:Ð;ó7=˜	 ,Ñ/°Ñ3à�x�Ø,.�	˜, q™.Ò)ñ/ð	/ð" ˜Q‘< ‘?ˆØ�9‰9‹;˜‰?˜aÒÙ˜H˜:“ˆHà�{‰{˜8Ó$Ð$ùò3 <ùÚ;s   Á	F*Á(F/c           
      óf  — t        |«      }t        d|j                  «       z  «      }t        d|j                  «       z  «      }d }d }|D �]µ  }	| j                  |	j                  d   «      }
|	|v s|rT||	j                  k(  rE|	j                  rt        t        j                  |d«      Ž }nt        t        j                  |d«      Ž }|	|v rMt        t        j                  |
d«      Ž }
t        t        j                  |
| j                  ||	   «      «      Ž }
d}nd}|	j                  rht        |j                  |
«      Ž }t        |j                  d|
j                  «       z  «      Ž }t        |j                  d|
j                  «       z  «      Ž }ngt        |j                  |
«      Ž }t        |j                  d|
j                  «       z  «      Ž }t        |j                  d|
j                  «       z  «      Ž }|	j                  }�Œ¸ t        |j                  |«      Ž }t        |j                  |«      Ž }|S )Nr¤   r   r  ú=TF)
r   r§   rN   rZ   Úis_upr   rµ   rs   r¨   r  )r@   ra   ÚindicesÚ	index_mapÚcenterÚtopÚbotÚlast_valenceÚprev_maprx  ÚindpicÚpicts               rB   Ú_printer_tensor_indicesz%PrettyPrinter._printer_tensor_indicesä  sÐ  € Ü˜DÓ!ˆÜ˜˜VŸ\™\›^Ñ+Ó,ˆÜ˜˜VŸ\™\›^Ñ+Ó,ˆàˆØˆàó 	'ˆEØ—[‘[ §¡¨A¡Ó/ˆFØ˜)Ñ#©°lÀeÇkÁkÒ6QØ—;’;Ü$¤j§o¡o°c¸3Ó&?Ð@‘Cä$¤j§o¡o°c¸3Ó&?Ð@�CØ˜	Ñ!Ü#¤Z§_¡_°V¸SÓ%AÐB�Ü#¤Z§_¡_°V¸T¿[¹[ÈÐSXÑIYÓ=ZÓ%[Ð\�Ø‘à �Ø�{Š{Ü  #§)¡)¨FÓ"3Ð4�Ü# V§\¡\°#°f·l±l³nÑ2DÓ%EÐF�Ü  #§)¡)¨C°·±³Ñ,>Ó"?Ð@‘ä  #§)¡)¨FÓ"3Ð4�Ü# V§\¡\°#°f·l±l³nÑ2DÓ%EÐF�Ü  #§)¡)¨C°·±³Ñ,>Ó"?Ð@�Ø Ÿ;™;ŠLð+	'ô. ˜6Ÿ<™<¨Ó,Ð-ˆÜ˜4Ÿ:™: c›?Ð+ˆØˆrC   c                 óx   — |j                   d   j                  }|j                  «       }| j                  ||«      S rX  )rZ   ra   Úget_indicesr–  )r@   rH   ra   r�  s       rB   Ú_print_TensorzPrettyPrinter._print_Tensor  s6   € Ø�y‰y˜‰|× Ñ ˆØ×"Ñ"Ó$ˆØ×+Ñ+¨D°'Ó:Ð:rC   c                 óº   — |j                   j                  d   j                  }|j                   j                  «       }|j                  }| j                  |||«      S rX  )rH   rZ   ra   r˜  rŽ  r–  )r@   rH   ra   r�  rŽ  s        rB   Ú_print_TensorElementz"PrettyPrinter._print_TensorElement  sJ   € Ø�y‰y�~‰~˜aÑ ×%Ñ%ˆØ—)‘)×'Ñ'Ó)ˆØ—N‘Nˆ	Ø×+Ñ+¨D°'¸9ÓEÐErC   c                 ó<  — |j                  «       \  }}|D �cg c]M  }t        |«      t        d   k  r%t        | j	                  |«      j                  «       Ž n| j	                  |«      ‘ŒO }}t        j                  |Ž }|rt        |j                  |«      Ž S |S c c}w r§  )Ú!_get_args_for_traditional_printerr   r   r   rN   r[   rð  r\   )r@   rH   r<  rZ   r,   r^   s         rB   Ú_print_TensMulzPrettyPrinter._print_TensMul  s£   € Ø×;Ñ;Ó=‰
ˆˆdð ö
ð ô # 1Ó%¬
°5Ñ(9Ò9ô ˜Ÿ™ A›×-Ñ-Ó/Ñ0Ø?C¿{¹{È1»~ñNð
ˆð 
ô
 ×"Ñ" DÐ)ˆÙÜ˜uŸz™z¨$Ó/Ð0Ð0àˆLùò
s   ˜ABc                 óô   — |j                   D �cg c]M  }t        |«      t        d   k  r%t        | j	                  |«      j                  «       Ž n| j	                  |«      ‘ŒO }}t        j                  |Ž S c c}w r§  )rZ   r   r   r   rN   r[   Ú__add__)r@   rH   r,   rZ   s       rB   Ú_print_TensAddzPrettyPrinter._print_TensAdd  sz   € ð —Y‘Yö
ð ô # 1Ó%¬
°5Ñ(9Ò9ô ˜Ÿ™ A›×-Ñ-Ó/Ñ0Ø?C¿{¹{È1»~ñNð
ˆð 
ô
 ×!Ñ! 4Ð(Ð(ùò
s   �AA5c                 ó`   — |j                   d   }|j                  s| }| j                  |«      S rX  )rZ   rŒ  rN   )r@   rH   r  s      rB   Ú_print_TensorIndexz PrettyPrinter._print_TensorIndex'  s,   € Ø�i‰i˜‰lˆØ�zŠzØ�$ˆCØ�{‰{˜3ÓÐrC   c                 ó  — | j                   rt        d«      }nd}d }t        |j                  «      D ]]  }| j	                  |«      }t        |j                  |«      Ž }|€|}Œ0t        |j                  d«      Ž }t        |j                  |«      Ž }Œ_ t        | j	                  |j                  «      j                  «       dt
        j                  iŽ}t        |«      }t        |j                  «      dkD  r'|| j	                  t        |j                  «      «      z  }t        |j                  t        j                  |«      Ž }|j                  dz   |_        t        t        j                   ||«      Ž }t
        j"                  |_        |S )Nrü   rý   r¤   r±   ri   )rK   r!   rþ   Ú	variablesrN   r   r\   rs   rH   r[   r   r&  r  r   r  r©   rµ   r  r±   )	r@   r  r  rœ   Úvariabler	  r
  r  r^   s	            rB   Ú_print_PartialDerivativez&PrettyPrinter._print_PartialDerivative-  sA  € Ø×ÒÜÐ3Ó4‰LàˆLØˆä  §¡Ó1ò 	-ˆHØ—‘˜HÓ%ˆAÜ˜QŸV™V LÓ1Ð2ˆBàˆyØ‘ä §¡¨£Ð-�Ü §¡¨£Ð,‘ð	-ô Ø&*§k¡k°%·*±*Ó&=×&DÑ&DÓ&FðHÜ—O‘OñHˆô ˜<Ó(ˆäˆu�‰Ó !Ò#Ø˜4Ÿ;™;¤s¨5¯?©?Ó';Ó<Ñ<ˆEä˜EŸK™K¬
¯©¸Ó;Ð<ˆØŸ™¨!Ñ+ˆŒÜœJŸO™O¨E°1Ó5Ð6ˆÜ"Ÿ™ˆŒàˆrC   c           	      ó˜  ‡‡— i Št        |j                  «      D ]ƒ  \  }}| j                  |j                  «      ‰|df<   |j                  dk(  rt        d«      ‰|df<   ŒFt        t        d«      j                  | j                  |j                  «      «      Ž ‰|df<   Œ… d}d}t        |j                  «      }t        d«      D �‡cg c]   Št        ˆˆfd„t        |«      D «       «      ‘Œ" }}d }	t        |«      D �]  }
d }t        d«      D ]«  Š‰|
‰f   }|j                  «       |‰   k  sJ ‚|‰   |j                  «       z
  }|dz  }||z
  }t        |j                  d|z  «      Ž }t        |j                  d|z  «      Ž }|€|}Œ{t        |j                  d|z  «      Ž }t        |j                  |«      Ž }Œ­ |	€|}	ŒÄt        |«      D ]  }t        |	j                  d«      Ž }	Œ t        |	j                  |«      Ž }	�Œ t        |	j                  d	d
«      Ž }	|	j                  «       dz  |	_        t
        j                   |	_        |	S c c}w )Nr   TÚ	otherwiseri   zfor r¥   c              3   óH   •K  — | ]  }‰|‰f   j                  «       –— Œ y ­wrE   )r§   )r\  r,   ÚPr8   s     €€rB   r]  z1PrettyPrinter._print_Piecewise.<locals>.<genexpr>\  s   øè ø€ Ò=¨�A�a˜�d‘G—M‘M—OÑ=ùs   ƒ"r¤   ú{r  )rï  rZ   rN   rH   Úcondr   rs   r&  r%  r¦   r§   r\   r  r[   r8  r©   r¶   r±   )r@   Úpexprrª   Úecr’  r“  Úlen_argsr8   r”  r•  r,   r–  ÚpÚwdeltaÚwleftÚwrightrí   r«  s          `         @rB   Ú_print_PiecewisezPrettyPrinter._print_PiecewiseM  sD  ù€ àˆÜ˜uŸz™zÓ*ò 	E‰EˆAˆrØ—k‘k "§'¡'Ó*ˆAˆa�ˆd‰GØ�w‰w˜$ŠÜ$ [Ó1��!�Q�$’ä$Ü Ó'×-Ñ-¨d¯k©k¸"¿'¹'Ó.BÓCðE��!�Q�$’ð	Eð ˆØˆÜ�u—z‘z“?ˆô ˜q›÷#Øô Ô=¬U°8«_Ô=Õ=ð #ˆð #ð
 ˆä�x“ó 	,ˆAØˆEÜ˜1“Xò 4�Ø�a˜�d‘G�Ø—w‘w“y D¨¡GÒ+Ð+Ð+à˜a™ 1§7¡7£9Ñ,�Ø !™�Ø %™�ä §¡¨¨F©
Ó 3Ð4�Ü §¡ s¨5¡yÓ 1Ð2�à�=Ø�EØä" E§K¡K°°D±Ó$9Ð:�Ü" E§K¡K°£NÐ3‘ð!4ð" ˆyØ�Øô ˜4“[ò .�Ü §¡¨£Ð-‘ð.ô ˜AŸG™G E›NÐ+ŠAð7	,ô: ˜Ÿ™  bÓ)Ð*ˆØ—X‘X“Z ‘]ˆŒ
Ü—O‘OˆŒ	ØˆùòO#s   Ã%Ic                 óN   — ddl m} | j                  |j                  |«      «      S )Nr   )Ú	Piecewise)Ú$sympy.functions.elementary.piecewiser·  rN   Úrewrite)r@   Úiter·  s      rB   Ú
_print_ITEzPrettyPrinter._print_ITE…  s   € ÝBØ�{‰{˜3Ÿ;™; yÓ1Ó2Ð2rC   c                 óœ   — d }|D ]7  }|}|€|}Œ
t        |j                  d«      Ž }t        |j                  |«      Ž }Œ9 |€t        d«      }|S )Nr»  r¤   )r   rs   r   )r@   rp  r•  rñ  r±  s        rB   Ú_hprint_veczPrettyPrinter._hprint_vec‰  s^   € Øˆàò 	,ˆAØˆAØˆyØ‘ä §¡¨£Ð.�Ü §¡¨£
Ð+‘ð	,ð ˆ9Ü˜3“ˆAàˆrC   c                 ó  — |r%| j                   s| j                  |d|f|||d¬«      S | j                  ||f|||¬«      }t        t        d|j	                  «       «      |j
                  ¬«      }| j                  |||f|||¬«      S )Nrð   T)r\   rs   r½  Úifascii_nougly)r\   rs   r½  ©r©   )rK   rY   r   r   r8  r©   )	r@   Úp1Úp2r\   rs   r½  r¿  ÚtmpÚseps	            rB   Ú_hprint_vseparatorz PrettyPrinter._hprint_vseparator˜  s’   € Ù $×"3Ò"3Ø—?‘? B¨¨R =°tÀ5Ø-6Àtð #ó Mð Mà�o‰o˜r 2˜i¨d¸%È9ˆoÓUˆÜœ˜c 3§:¡:£<Ó0¸3¿<¹<ÔHˆØ�‰  C¨˜}°4¸uØ)2ð ó 4ð 	4rC   c           	      ó”  — |j                   D �cg c]  }| j                  |«      ‘Œ }}|j                  D �cg c]  }| j                  |«      ‘Œ }}| j                  |j                  «      }|j	                  «       dz  |_        d }||fD ]F  }| j                  |«      }	|€|	}Œt        |j                  d«      Ž }t        |j                  |	«      Ž }ŒH |j	                  «       dz  |_        t        |j                  d«      Ž }t        |j                  d«      Ž }| j                  ||«      }t        |j                  dd«      Ž }|j	                  «       dz  dz
  }
|j	                  «       |
z
  dz
  }t        d«      \  }}}}}t        d|
|z
  z  |z   d||z
  z  z   |
|z   ¬«      }|dz   dz  }t        |j                  | j                  t        |j                   «      «      «      Ž }t        |j                  | j                  t        |j                  «      «      «      Ž }|
|z   |_        t        |j                  d|«      Ž }|S c c}w c c}w )	Nr¥   r¤   rm   rn   ri   ÚFrZ  rÀ  )ÚaprN   ÚbqÚargumentr8  r©   r½  r   r  r\   rs   rÅ  r[   r#   r&  )r@   rS   rñ  rÈ  ÚbrÉ  r«  r•  rp  r–  r¨   r  ÚszÚtÚaddÚimgrÇ  s                    rB   Ú_print_hyperzPrettyPrinter._print_hyper¡  s  € à&'§d¡dÖ+ ˆd�k‰k˜!�nÐ+ˆÐ+Ø&'§d¡dÖ+ ˆd�k‰k˜!�nÐ+ˆÐ+à�K‰K˜Ÿ
™
Ó#ˆØ—X‘X“Z ‘]ˆŒ
ð ˆØ�b�ò 	0ˆAØ×$Ñ$ QÓ'ˆEØˆyØ‘ä §¡¨£Ð-�Ü §¡¨£Ð/‘ð	0ð —X‘X“Z ‘]ˆŒ
ô ˜Ÿ™˜s›Ð$ˆÜ˜Ÿ™ ›Ð%ˆð ×#Ñ# A qÓ)ˆô ˜Ÿ™  cÓ*Ð+ˆð —‘“
˜A‘ Ñ!ˆØ—‘“
˜UÑ" QÑ&ˆä& s›^ÑˆˆAˆq�#�sÜ�t˜u q™yÑ)¨CÑ/°$¸%À!¹)Ñ2DÑDØ %¨¡
ô,ˆà�A‰v˜‰kˆä˜Ÿ™˜tŸ{™{¬3¨q¯t©t«9Ó5Ó6Ð7ˆÜ˜Ÿ™ §¡¬C°·±«IÓ 6Ó7Ð8ˆØ˜S‘[ˆŒ
ä˜Ÿ™  Q›Ð(ˆàˆùòY ,ùÚ+s
   �I ·Ic                 óð  — i }|j                   D �cg c]  }| j                  |«      ‘Œ c}|d<   |j                  D �cg c]  }| j                  |«      ‘Œ c}|d<   |j                  D �cg c]  }| j                  |«      ‘Œ c}|d<   |j                  D �cg c]  }| j                  |«      ‘Œ c}|d<   | j                  |j
                  «      }|j                  «       dz  |_        i }|D ]  }| j                  ||   «      ||<   Œ t        d«      D ]²  }t        |d|f   j                  «       |d|f   j                  «       «      }	t        d«      D ]p  }
||
|f   }|	|j                  «       z
  dz  }|	|z
  |j                  «       z
  }t        |j                  d|z  «      Ž }t        |j                  d|z  «      Ž }|||
|f<   Œr Œ´ t        |d   j                  d	|d   «      Ž }t        |j                  d«      Ž }t        |d   j                  d	|d   «      Ž }t        |j                  |«      Ž }|j                  «       dz  |_        t        |j                  d«      Ž }t        |j                  d«      Ž }| j!                  ||«      }t        |j#                  d
d«      Ž }|j                  «       dz  dz
  }|j                  «       |z
  dz
  }t%        d«      \  }}}}}t        d||z
  z  |z   d||z
  z  z   ||z   ¬«      }| j                  t'        |j(                  «      «      }| j                  t'        |j*                  «      «      }| j                  t'        |j                  «      «      }| j                  t'        |j                   «      «      }d„ } |||«      \  }} |||«      \  }}t        |j                  d|«      Ž }t        |j                  d|«      Ž }|j                  |z
  dz
  }|dkD  rt        |j                  d|z  «      Ž }t        |j                  |«      Ž } ||_        t        |j                  | «      Ž }||z   |_        t        |j                  d|«      Ž }|S c c}w c c}w c c}w c c}w )NrÛ  )r   ri   )ri   r   rÚ  r¥   r   ri   r¤   z  rm   rn   ÚGrZ  rÀ  c                 óÒ   — | j                  «       |j                  «       z
  }|dk(  r| |fS |dkD  r| t        |j                  d|z  «      Ž fS t        | j                  d| z  «      Ž |fS )Nr   r¤   )r§   r   r\   )rÁ  rÂ  Údiffs      rB   rm  z,PrettyPrinter._print_meijerg.<locals>.adjust
  sk   € Ø—8‘8“: §¡£
Ñ*ˆDØ�qŠyØ˜2�v�Ø˜’Øœ: r§w¡w¨s°4©xÓ'8Ð9Ð9Ð9ä! 2§7¡7¨3°¨u©9Ó#5Ð6¸Ð:Ð:rC   r»  )ÚanrN   ÚaotherÚbmÚbotherrÊ  r8  r©   r½  r%  r¦   r§   r   r\   rs   r  rÅ  r[   r#   r&  rÈ  rÉ  )!r@   rS   rp  rñ  rË  r«  ÚvpÚidxr,   r”  r8   r	  r\   rs   ÚD1ÚD2r•  r¨   r  rÌ  rÍ  rÎ  rÏ  rÇ  ÚppÚpqÚpmÚpnrm  ÚpuÚplÚhtr±  s!                                    rB   Ú_print_meijergzPrettyPrinter._print_meijergÑ  s  € ð ˆØ-.¯T©TÖ2¨�T—[‘[ •^Ò2ˆˆ&‰	Ø-.¯X©XÖ6¨�T—[‘[ •^Ò6ˆˆ&‰	Ø-.¯T©TÖ2¨�T—[‘[ •^Ò2ˆˆ&‰	Ø-.¯X©XÖ6¨�T—[‘[ •^Ò6ˆˆ&‰	à�K‰K˜Ÿ
™
Ó#ˆØ—X‘X“Z ‘]ˆŒ
àˆØò 	/ˆCØ×&Ñ& q¨¡vÓ.ˆBˆsŠGð	/ô �q“ò 	ˆAÜ�r˜1˜a˜&‘z×'Ñ'Ó)¨2¨q°!¨f©:×+;Ñ+;Ó+=Ó>ˆDÜ˜1“Xò �Ø˜˜1�v‘J�Ø˜qŸw™w›yÑ(¨QÑ.�Ø˜t™ a§g¡g£iÑ/�Ü §¡ s¨T¡zÓ 2Ð3�Ü §¡¨¨e©Ó 4Ð5�Ø��A�q�6’
ñð	ô ˜˜F™×)Ñ)¨$°°6±
Ó;Ð<ˆÜ˜Ÿ™ #›Ð'ˆÜ˜˜F™×)Ñ)¨$°°6±
Ó;Ð<ˆÜ˜Ÿ™ ›Ð%ˆð —X‘X“Z ‘]ˆŒ
ô ˜Ÿ™˜s›Ð$ˆÜ˜Ÿ™ ›Ð%ˆð ×#Ñ# A qÓ)ˆô ˜Ÿ™  cÓ*Ð+ˆð —‘“
˜A‘ Ñ!ˆØ—‘“
˜UÑ" QÑ&ˆä& s›^ÑˆˆAˆq�#�sÜ�t˜u q™yÑ)¨CÑ/°$¸%À!¹)Ñ2DÑDØ %¨¡
ô,ˆð �[‰[œ˜QŸT™T›Ó#ˆØ�[‰[œ˜QŸT™T›Ó#ˆØ�[‰[œ˜QŸT™T›Ó#ˆØ�[‰[œ˜QŸT™T›Ó#ˆò	;ñ ˜˜B“‰ˆˆBÙ˜˜B“‰ˆˆBÜ˜Ÿ™ $¨Ó+Ð,ˆÜ˜Ÿ™ $¨Ó+Ð,ˆà�Z‰Z˜%Ñ !Ñ#ˆØ�Š6Ü˜RŸX™X d¨2¡gÓ.Ð/ˆBÜ˜Ÿ™ ›Ð%ˆàˆŒ
Ü˜Ÿ™ ›
Ð#ˆà˜S‘[ˆŒ
ä˜Ÿ™  Q›Ð(ˆàˆùò] 3ùÚ6ùÚ2ùÚ6s   ‘Q$½Q)Á)Q.ÂQ3c                 ón   — t        t        dd«      «      }|| j                  |j                  d   «      z  S )NÚExp1rS   r   )r   r   rN   rZ   )r@   rS   r  s      rB   Ú_print_ExpBasezPrettyPrinter._print_ExpBase%  s1   € ô œ+ f¨cÓ2Ó3ˆØ�t—{‘{ 1§6¡6¨!¡9Ó-Ñ-Ð-rC   c                 ó,   — t        t        dd«      «      S )Nræ  rS   )r   r   rR   s     rB   Ú_print_Exp1zPrettyPrinter._print_Exp1+  s   € Üœ+ f¨cÓ2Ó3Ð3rC   c                 óX   — | j                  |j                  |j                  ||||¬«      S )N)rÑ   Ú	func_namer\   rs   )Ú_helper_print_functionr†   rZ   )r@   rS   rÑ   rë  r\   rs   s         rB   rÈ   zPrettyPrinter._print_Function.  s-   € ð ×*Ñ*¨1¯6©6°1·6±6ÀÐPYÐ`dÐlqÐ*ÓrÐrrC   c                 ó(   — | j                  |d¬«      S ©NrS  ©rë  ©rÈ   rR   s     rB   Ú_print_mathieuczPrettyPrinter._print_mathieuc4  ó   € Ø×#Ñ# A°Ð#Ó5Ð5rC   c                 ó(   — | j                  |d¬«      S ©Nr   rï  rð  rR   s     rB   Ú_print_mathieuszPrettyPrinter._print_mathieus7  rò  rC   c                 ó(   — | j                  |d¬«      S )NzC'rï  rð  rR   s     rB   Ú_print_mathieucprimez"PrettyPrinter._print_mathieucprime:  ó   € Ø×#Ñ# A°Ð#Ó6Ð6rC   c                 ó(   — | j                  |d¬«      S )NzS'rï  rð  rR   s     rB   Ú_print_mathieusprimez"PrettyPrinter._print_mathieusprime=  rø  rC   r»  c	                 ób  — |rt        |t        ¬«      }|st        |d«      r|j                  }|r| j	                  t        |«      «      }	n%t        | j	                  |«      j                  «       Ž }	|rX| j                  rt        d«      }
nd}
| j	                  |
«      }
t        t        j                  |	|
«      dt        j                  iŽ}	t        | j                  ||¬«      j                  ||¬«      Ž }t        t        j                  |	|«      dt        j                  iŽ}|	|_        ||_        |S )NrÌ   rŽ   zModifier Letter Low Ringr  r±   r¼  rÀ  )rÏ   r   ÚhasattrrŽ   rN   r   r   r[   rK   r   r   rµ   r  rY   r   rÄ  rÅ  )r@   r†   rZ   rÑ   rë  r½  Úelementwiser\   rs   rÄ  r  rÅ  r^   s                rB   rì  z$PrettyPrinter._helper_print_function@  s  € ñ Ü˜$Ô$4Ô5ˆDáœW T¨:Ô6ØŸ™ˆIáØŸ™¤V¨IÓ%6Ó7‰Jä# T§[¡[°Ó%6×%=Ñ%=Ó%?Ð@ˆJáØ× Ò Ü"Ð#=Ó>‘à�Ø—;‘;˜tÓ$ˆDÜ#ä—‘ ¨TÓ2ðÜ"Ÿ™ñˆJô
   §¡°À Ó!K×!RÑ!RØ6:À%ð "Só "Ið Jˆ
ô Ü&0§o¡o°jÀ*Ó&MðOÜ—O‘OñOˆð &ˆÔØ%ˆÔàˆrC   c                 ób   — |j                   }|j                  }|g}| j                  ||dd¬«      S )Nr  T)r½  rý  )r5  rH   rì  )r@   rS   r†   rÉ   rZ   s        rB   Ú_print_ElementwiseApplyFunctionz-PrettyPrinter._print_ElementwiseApplyFunctione  s6   € Ø�z‰zˆØ�f‰fˆØˆuˆØ×*Ñ*¨4°ÀÐQUÐ*ÓVÐVrC   c                 óÞ   — ddl m} ddlm}m} ddlm} ddlm} ddl	m
} ddlm} |t        d   dg|t        d	   d	g|t        d
   dg|t        d   dg|t        d   dg|t        d   dg|ddgiS )Nr   )ÚKroneckerDelta)ÚgammaÚ
lowergamma)Úlerchphi)Úbeta)Ú
DiracDelta)ÚChiÚdeltaÚGammaÚPhir  r  ÚBetarÝ  r  )Ú(sympy.functions.special.tensor_functionsr  Ú'sympy.functions.special.gamma_functionsr  r  Ú&sympy.functions.special.zeta_functionsr  Ú&sympy.functions.special.beta_functionsr  Ú'sympy.functions.special.delta_functionsr  Ú'sympy.functions.special.error_functionsr  r    )r@   r  r  r  r  r  r  r  s           rB   Ú_special_function_classesz'PrettyPrinter._special_function_classesk  s�   € åKßMÝCÝ?ÝFÝ?Ø¤¨wÑ!7¸Ð AØœ gÑ.°Ð8Øœ=¨Ñ/°Ð<Øœ]¨7Ñ3°WÐ=Ø”} VÑ,¨cÐ2Øœ]¨7Ñ3°WÐ=Ø�e˜U�^ð%ð 	%rC   c                 ó<  — | j                   D ]n  }t        ||«      sŒ|j                  |j                  k(  sŒ*| j                  rt	        | j                   |   d   «      c S t	        | j                   |   d   «      c S  |j                  }t	        t        |«      «      S )Nr   ri   )r  Ú
issubclassrŽ   rK   r   r   )r@   rH   Úclsrë  s       rB   Ú_print_FunctionClassz"PrettyPrinter._print_FunctionClass{  sŒ   € Ø×1Ñ1ò 	NˆCÜ˜$ Õ$¨¯©¸#¿,¹,Ó)FØ×$Ò$Ü% d×&DÑ&DÀSÑ&IÈ!Ñ&LÓMÒMä% d×&DÑ&DÀSÑ&IÈ!Ñ&LÓMÒMð	Nð —M‘Mˆ	Üœ-¨	Ó2Ó3Ð3rC   c                 ó$   — | j                  |«      S rE   )rI   rG   s     rB   Ú_print_GeometryEntityz#PrettyPrinter._print_GeometryEntity…  s   € à× Ñ  Ó&Ð&rC   c                 óî   — | j                  |j                  d   «      }| j                  r;t        |«      r0| j	                   t        d|z  «      |j                  d   «      «      S | j	                  |«      S )Nr   zLi_%sri   ©rN   rZ   rK   r$   rÈ   r   ©r@   rS   rK  s      rB   Ú_print_polylogzPrettyPrinter._print_polylog‰  se   € Ø—K‘K §¡ q¡	Ó*ˆ	Ø×ÒÔ!<¸YÔ!GØ×'Ñ'Ð(E¬°¸9Ñ1DÓ(EÀaÇfÁfÈQÁiÓ(PÓQÐQØ×#Ñ# AÓ&Ð&rC   c                 óV   — | j                   r	t        d   nd}| j                  ||¬«      S )Nr
  r  rï  ©rK   r    rÈ   ©r@   rS   rë  s      rB   Ú_print_lerchphizPrettyPrinter._print_lerchphi�  s,   € Ø,0×,=Ò,=”M %Ò(À:ˆ	Ø×#Ñ# A°Ð#Ó;Ð;rC   c                 óV   — | j                   r	t        d   nd}| j                  ||¬«      S )NÚetaÚdirichlet_etarï  r  r  s      rB   Ú_print_dirichlet_etaz"PrettyPrinter._print_dirichlet_eta“  s,   € Ø,0×,=Ò,=”M %Ò(À?ˆ	Ø×#Ñ# A°Ð#Ó;Ð;rC   c                 ó*  — | j                   r	t        d   nd}|j                  d   t        j                  u rKt        | j                  |j                  d   «      j                  «       Ž }t        |j                  |«      Ž }|S | j                  ||¬«      S )NÚthetaÚ	Heavisideri   r   rï  )
rK   r    rZ   r   ÚHalfr   rN   r[   r\   rÈ   )r@   rS   rë  r^   s       rB   Ú_print_HeavisidezPrettyPrinter._print_Heaviside—  s|   € Ø.2×.?Ò.?”M 'Ò*À[ˆ	Ø�6‰6�!‰9œŸ™ÑÜ §¡¨A¯F©F°1©IÓ 6× =Ñ =Ó ?Ð@ˆEÜ §
¡
¨9Ó 5Ð6ˆEØˆLà×'Ñ'¨°YÐ'Ó?Ð?rC   c                 ó(   — | j                  |d¬«      S rô  rð  rR   s     rB   Ú_print_fresnelszPrettyPrinter._print_fresnels   rò  rC   c                 ó(   — | j                  |d¬«      S rî  rð  rR   s     rB   Ú_print_fresnelczPrettyPrinter._print_fresnelc£  rò  rC   c                 ó(   — | j                  |d¬«      S )NÚAirï  rð  rR   s     rB   Ú_print_airyaizPrettyPrinter._print_airyai¦  rø  rC   c                 ó(   — | j                  |d¬«      S )NÚBirï  rð  rR   s     rB   Ú_print_airybizPrettyPrinter._print_airybi©  rø  rC   c                 ó(   — | j                  |d¬«      S )NzAi'rï  rð  rR   s     rB   Ú_print_airyaiprimez PrettyPrinter._print_airyaiprime¬  ó   € Ø×#Ñ# A°Ð#Ó7Ð7rC   c                 ó(   — | j                  |d¬«      S )NzBi'rï  rð  rR   s     rB   Ú_print_airybiprimez PrettyPrinter._print_airybiprime¯  r6  rC   c                 ó(   — | j                  |d¬«      S )NÚWrï  rð  rR   s     rB   Ú_print_LambertWzPrettyPrinter._print_LambertW²  rò  rC   c                 ó(   — | j                  |d¬«      S )NÚCovrï  rð  rR   s     rB   Ú_print_CovariancezPrettyPrinter._print_Covarianceµ  r6  rC   c                 ó(   — | j                  |d¬«      S )NÚVarrï  rð  rR   s     rB   Ú_print_VariancezPrettyPrinter._print_Variance¸  r6  rC   c                 ó(   — | j                  |d¬«      S )Nr«  rï  rð  rR   s     rB   Ú_print_Probabilityz PrettyPrinter._print_Probability»  rò  rC   c                 ó,   — | j                  |ddd¬«      S )Nrˆ  r¾  r¿  )rë  r\   rs   rð  rR   s     rB   Ú_print_Expectationz PrettyPrinter._print_Expectation¾  s   € Ø×#Ñ# A°¸3ÀcÐ#ÓJÐJrC   c           	      ó2  — |j                   }|j                  }| j                  rdt        d«      › d�}nd}t	        |«      dk(  r|d   j
                  r|d   }| j                  |«      }t        t        j                  ||| j                  |«      «      ddiŽS )Nr¤   ÚArrowFromBarú -> ri   r   r±   rq  )
rH   Ú	signaturerK   r   r&  Ú	is_symbolrN   r   r   rµ   )r@   rS   rH   ÚsigÚarrowÚvar_forms         rB   Ú_print_LambdazPrettyPrinter._print_LambdaÁ  s‹   € Ø�v‰vˆØ�k‰kˆØ×ÒØœ NÓ3Ð4°AÐ6‰EàˆEÜˆs‹8�qŠ=˜S ™V×-Ò-Ø�a‘&ˆCØ—;‘;˜sÓ#ˆäœ:Ÿ?™?¨8°U¸D¿K¹KÈÓ<MÓNÐZÐXYÑZÐZrC   c                 óð  — | j                  |j                  «      }|j                  rt        d„ |j                  D «       «      st	        |j
                  «      dkD  �rlt        |j                  d«      Ž }t	        |j
                  «      dkD  r1t        |j                  | j                  |j
                  «      «      Ž }nHt	        |j
                  «      r3t        |j                  | j                  |j
                  d   «      «      Ž }| j                  r%t        |j                  dt        d«      › d�«      Ž }nt        |j                  d«      Ž }t	        |j                  «      dkD  r1t        |j                  | j                  |j                  «      «      Ž }n3t        |j                  | j                  |j                  d   «      «      Ž }t        |j                  «       Ž }t        |j                  d«      Ž }|S )	Nc              3   óB   K  — | ]  }|t         j                  k7  –— Œ y ­wrE   )r   ÚZero)r\  r±  s     rB   r]  z-PrettyPrinter._print_Order.<locals>.<genexpr>Ð  s   è ø€ Ò?¨q˜q¤A§F¡F�{Ñ?ùs   ‚ri   ú; r   r¤   rè   rH  ÚO)rN   rH   ÚpointÚanyr&  r¥  r   rs   rK   r   r[   r\   ©r@   rH   r^   s      rB   Ú_print_OrderzPrettyPrinter._print_OrderÎ  sk  € Ø—‘˜DŸI™IÓ&ˆØ�JŠJœ3Ñ?°D·J±JÔ?Ô?Üˆt�~‰~Ó Ó"Ü §¡¨DÓ 1Ð2ˆEÜ�4—>‘>Ó" QÒ&Ü" E§K¡K°·±¸D¿N¹NÓ0KÓ$LÐM‘Ü�T—^‘^Ô$Ü" E§K¡K°·±¸D¿N¹NÈ1Ñ<MÓ0NÓ$OÐP�Ø× Ò Ü" E§K¡K°!´KÀÓ4HÐ3IÈÐ0KÓ$LÐM‘ä" E§K¡K°Ó$7Ð8�Ü�4—:‘:‹ Ò"Ü" E§K¡K°·±¸D¿J¹JÓ0GÓ$HÐI‘ä" E§K¡K°·±¸D¿J¹JÀq¹MÓ0JÓ$KÐL�Ü˜EŸL™L›NÐ+ˆÜ˜EŸJ™J s›OÐ,ˆØˆrC   c                 óü  — | j                   rŒ| j                  |j                  d   |j                  d   z
  «      }| j                  |j                  d   «      }t        d«      }t        |j	                  |«      Ž }t        |j	                  d«      Ž }||z  }|S | j                  |j                  d   «      }| j                  |j                  d   |j                  d   z
  «      }| j                  |ddd«      }||z  S )Nr   ri   r¥   rf  rg  r¤   )rK   rN   rZ   r   rs   rY   )r@   rS   Úshiftrª   r  r^   s         rB   Ú_print_SingularityFunctionz(PrettyPrinter._print_SingularityFunctionã  sÖ   € Ø×ÒØ—K‘K §¡ q¡	¨!¯&©&°©)Ñ 3Ó4ˆEØ—‘˜AŸF™F 1™IÓ&ˆAÜ˜c“?ˆDÜ˜tŸz™z¨%Ó0Ð1ˆDÜ˜tŸz™z¨#›Ð/ˆDØ˜!‘GˆEØˆLà—‘˜AŸF™F 1™IÓ&ˆAØ—K‘K §¡ q¡	¨!¯&©&°©)Ñ 3Ó4ˆEØ—?‘? 5¨#¨s°CÓ8ˆDØ˜‘7ˆNrC   c                 óV   — | j                   r	t        d   nd}| j                  ||¬«      S )Nr  rÝ  rï  r  r  s      rB   Ú_print_betazPrettyPrinter._print_betaò  s,   € Ø-1×->Ò->”M &Ò)ÀCˆ	Ø×#Ñ# A°Ð#Ó;Ð;rC   c                 ó,   — d}| j                  ||¬«      S )NzB'rï  rð  r  s      rB   Ú_print_betainczPrettyPrinter._print_betaincö  s   € Øˆ	Ø×#Ñ# A°Ð#Ó;Ð;rC   c                 ó,   — d}| j                  ||¬«      S )Nrõ  rï  rð  r  s      rB   Ú_print_betainc_regularizedz(PrettyPrinter._print_betainc_regularizedú  s   € Øˆ	Ø×#Ñ# A°Ð#Ó;Ð;rC   c                 óV   — | j                   r	t        d   nd}| j                  ||¬«      S ©Nr	  rï  r  r  s      rB   Ú_print_gammazPrettyPrinter._print_gammaþ  ó,   € Ø.2×.?Ò.?”M 'Ò*ÀWˆ	Ø×#Ñ# A°Ð#Ó;Ð;rC   c                 óV   — | j                   r	t        d   nd}| j                  ||¬«      S rb  r  r  s      rB   Ú_print_uppergammazPrettyPrinter._print_uppergamma  rd  rC   c                 óV   — | j                   r	t        d   nd}| j                  ||¬«      S )Nr  r  rï  r  r  s      rB   Ú_print_lowergammazPrettyPrinter._print_lowergamma  s,   € Ø.2×.?Ò.?”M 'Ò*À\ˆ	Ø×#Ñ# A°Ð#Ó;Ð;rC   c                 ót  — | j                   �rt        |j                  «      dk(  r¯t        t        d   «      }| j                  |j                  d   «      }t        |j                  «       Ž }| j                  |j                  d   «      }t        |j                  «       Ž }||z  }t        |j                  d«      Ž }t        |j                  |«      Ž }|S | j                  |j                  d   «      }t        |j                  «       Ž }t        |j                  t        d   «      Ž }|S | j                  |«      S )Nr¥   r  ri   r   r¤   )
rK   r&  rZ   r   r    rN   r[   rs   r\   rÈ   )r@   rS   rñ  rË  Úcr^   s         rB   Ú_print_DiracDeltazPrettyPrinter._print_DiracDelta
  sý   € Ø×ÓÜ�1—6‘6‹{˜aÒÜœ}¨WÑ5Ó6�Ø—K‘K §¡ q¡	Ó*�Ü §¡£
Ð+�Ø—K‘K §¡ q¡	Ó*�Ü §¡£
Ð+�Ø˜1™�Ü" E§K¡K°Ó$4Ð5�Ü" E§K¡K°£NÐ3�Ø�Ø—K‘K §¡ q¡	Ó*ˆEÜ §¡£Ð/ˆEÜ §
¡
¬=¸Ñ+AÓ BÐCˆEØˆLà×'Ñ'¨Ó*Ð*rC   c                 óî   — | j                  |j                  d   «      }| j                  r;t        |«      r0| j	                   t        d|z  «      |j                  d   «      «      S | j	                  |«      S )Nr   zE_%sri   r  r  s      rB   Ú_print_expintzPrettyPrinter._print_expint  se   € Ø—K‘K §¡ q¡	Ó*ˆ	Ø×ÒÔ!<¸YÔ!GØ×'Ñ'Ð(D¬°¸)Ñ1CÓ(DÀQÇVÁVÈAÁYÓ(OÓPÐPØ×#Ñ# AÓ&Ð&rC   c                 óð   — t        d«      }t        | j                  |j                  «      j                  «       Ž }t        t	        j
                  ||«      dt         j                  iŽ}||_        ||_        |S )Nr  r±   )	r   rY   rZ   r[   r   rµ   r   rÄ  rÅ  )r@   rS   rÄ  rÅ  r^   s        rB   Ú
_print_ChizPrettyPrinter._print_Chi#  sk   € ô   Ó&ˆ
Ü §¡°·±Ó!8×!?Ñ!?Ó!AÐBˆ
äÜ&0§o¡o°jÀ*Ó&MðOÜ—O‘OñOˆð &ˆÔØ%ˆÔàˆrC   c                 ó2  — | j                  |j                  d   «      }t        |j                  «      dk(  r|}n0| j                  |j                  d   «      }| j                  ||«      }t	        |j                  «       Ž }t	        |j                  d«      Ž }|S )Nr   ri   rˆ  )rN   rZ   r&  rÅ  r   r[   r\   )r@   rS   Úpforma0r^   Úpforma1s        rB   Ú_print_elliptic_ezPrettyPrinter._print_elliptic_e2  s|   € Ø—+‘+˜aŸf™f Q™iÓ(ˆÜˆq�v‰v‹;˜!ÒØ‰Eà—k‘k !§&¡&¨¡)Ó,ˆGØ×+Ñ+¨G°WÓ=ˆEÜ˜EŸL™L›NÐ+ˆÜ˜EŸJ™J s›OÐ,ˆØˆrC   c                 óœ   — | j                  |j                  d   «      }t        |j                  «       Ž }t        |j	                  d«      Ž }|S )Nr   ÚK)rN   rZ   r   r[   r\   r]   s      rB   Ú_print_elliptic_kzPrettyPrinter._print_elliptic_k=  s?   € Ø—‘˜AŸF™F 1™IÓ&ˆÜ˜EŸL™L›NÐ+ˆÜ˜EŸJ™J s›OÐ,ˆØˆrC   c                 óü   — | j                  |j                  d   «      }| j                  |j                  d   «      }| j                  ||«      }t        |j	                  «       Ž }t        |j                  d«      Ž }|S )Nr   ri   rÇ  )rN   rZ   rÅ  r   r[   r\   )r@   rS   rq  rr  r^   s        rB   Ú_print_elliptic_fzPrettyPrinter._print_elliptic_fC  sg   € Ø—+‘+˜aŸf™f Q™iÓ(ˆØ—+‘+˜aŸf™f Q™iÓ(ˆØ×'Ñ'¨°Ó9ˆÜ˜EŸL™L›NÐ+ˆÜ˜EŸJ™J s›OÐ,ˆØˆrC   c                 ó  — | j                   r	t        d   nd}| j                  |j                  d   «      }| j                  |j                  d   «      }t	        |j                  «      dk(  r| j                  ||«      }n`| j                  |j                  d   «      }| j                  ||d¬«      }t        |j                  d«      Ž }t        |j                  |«      Ž }t        |j                  «       Ž }t        |j                  |«      Ž }|S )NÚPir   ri   r¥   F©r¿  rR  )	rK   r    rN   rZ   r&  rÅ  r   r\   r[   )r@   rS   ra   rq  rr  r^   Úpforma2Úpformas           rB   Ú_print_elliptic_piz PrettyPrinter._print_elliptic_piK  sß   € Ø&*×&7Ò&7Œ}˜TÒ"¸TˆØ—+‘+˜aŸf™f Q™iÓ(ˆØ—+‘+˜aŸf™f Q™iÓ(ˆÜˆq�v‰v‹;˜!ÒØ×+Ñ+¨G°WÓ=‰Eà—k‘k !§&¡&¨¡)Ó,ˆGØ×,Ñ,¨W°gÈeÐ,ÓTˆFÜ §¡¨TÓ!2Ð3ˆFÜ §¡¨GÓ 4Ð5ˆEÜ˜EŸL™L›NÐ+ˆÜ˜EŸJ™J tÓ,Ð-ˆØˆrC   c                 óv   — | j                   rt        t        d«      «      S | j                  t	        d«      «      S )NÚphiÚGoldenRatio©rK   r   r   rN   r   rG   s     rB   Ú_print_GoldenRatioz PrettyPrinter._print_GoldenRatioZ  s/   € Ø×ÒÜœm¨EÓ2Ó3Ð3Ø�{‰{œ6 -Ó0Ó1Ð1rC   c                 óv   — | j                   rt        t        d«      «      S | j                  t	        d«      «      S )Nr  Ú
EulerGammar‚  rG   s     rB   Ú_print_EulerGammazPrettyPrinter._print_EulerGamma_  s/   € Ø×ÒÜœm¨GÓ4Ó5Ð5Ø�{‰{œ6 ,Ó/Ó0Ð0rC   c                 ó6   — | j                  t        d«      «      S )NrÒ  )rN   r   rG   s     rB   Ú_print_CatalanzPrettyPrinter._print_Cataland  s   € Ø�{‰{œ6 #›;Ó'Ð'rC   c                 óf  — | j                  |j                  d   «      }|j                  t        j                  kD  rt        |j                  «       Ž }t        |j                  d«      Ž }t        |j                  | j                  |j                  d   «      «      Ž }t        j                  |_        |S )Nr   z mod ri   )rN   rZ   r±   r   r  r[   rs   r¶   rV  s      rB   Ú
_print_ModzPrettyPrinter._print_Modg  s   € Ø—‘˜DŸI™I a™LÓ)ˆØ�=‰=œ:Ÿ>™>Ò)Ü §¡£Ð/ˆEÜ˜EŸK™K¨Ó0Ð1ˆÜ˜EŸK™K¨¯©°D·I±I¸a±LÓ(AÓBÐCˆÜ"Ÿ™ˆŒØˆrC   c                 óp  — | j                  ||¬«      }g g }}d„ }t        |«      D �]^  \  }}|j                  rp|j                  «       r`|j	                  d¬«      \  }	}
|	dk(  rt        |
ddiŽ}nt        |	 g|
¢­ddiŽ}| j                  |«      }|j                   |||«      «       Œƒ|j                  r2|j                  dkD  r#|j                  d «       |j                  |«       ŒÁ|j                  r0|dk  r+| j                  | «      }|j                   |||«      «       Œý|j                  r6|j                  t        | j                  |«      j                  «       Ž «       �Œ?|j                  | j                  |«      «       �Œa |rœd	}|D ]  }|€Œ|j                  «       dkD  sŒ n d}|D ]t  }||   d}}|dk  r| d	}}|r>t        t        |j                   «      «      t        t        |j                  «      «      z  }n| j                  |«      }|r	 |||«      }|||<   Œv t        j"                  |Ž S )
N©r-   c                 óF  — |dk(  r| j                  «       dkD  rd}nd}nd}| j                  t        j                  kD  s| j                  t        j                  k(  rt        | j                  «       Ž }n| }t        j                  ||«      }t        |dt        j                  iŽS )z'Prepend a minus sign to a pretty form. r   ri   z- rG  r7  r±   )r8  r±   r   ÚNEGÚADDr   r[   rµ   )r^   rx  Ú	pform_negr±  s       rB   Úpretty_negativez1PrettyPrinter._print_Add.<locals>.pretty_negativet  sƒ   € ð ˜ŠzØ—<‘<“> AÒ%Ø $‘Ià #‘Ià!�	à—‘¤
§¡Ò.Ø—=‘=¤J§N¡NÒ2Ü §¡£Ð/‘à�Ü—‘ 	¨1Ó-ˆAô °qÐ9¤j§n¡nÑ9Ð9rC   F)Úrationalr�  r"  ri   r   T)Ú_as_ordered_termsrï  Úis_Mulrâ  Úas_coeff_mulr   rN   rL  Úis_RationalÚqÚ	is_NumberÚis_Relationalr   r[   r8  r<   r±  r   )r@   rH   r-   ÚtermsÚpformsr�  r‘  r,   rJ  rä  ÚotherÚnegtermr^   ÚlargeÚnegatives                  rB   Ú
_print_AddzPrettyPrinter._print_Addp  s  € Ø×&Ñ& t°5Ð&Ó9ˆØ˜b�ˆò	:ô* ! Ó'ó 	1‰GˆAˆtØ�{Š{˜t×<Ñ<Ô>Ø#×0Ñ0¸%Ð0Ó@‘��uØ˜B’;Ü! 5Ð9°5Ñ9‘Gä! 5 &ÐA¨5ÒA¸5ÑA�GØŸ™ GÓ,�Ø—‘™o¨e°QÓ7Õ8Ø×!Ò! d§f¡f¨q¢jØ—‘˜dÔ#Ø—‘˜qÕ!Ø—’ D¨1¢HØŸ™ T EÓ*�Ø—‘™o¨e°QÓ7Õ8Ø×#Ò#Ø—‘œj¨$¯+©+°dÓ*;×*BÑ*BÓ*DÐEÖFà—‘˜dŸk™k¨$Ó/Ö0ð%	1ñ( ØˆEàò �ØÑ$¨¯©«¸!Ó);Ùðð �àò "�Ø!& q¡¨5�h�à˜!’8Ø&* U¨D˜(�DáÜ&¤s¨4¯6©6£{Ó3´J¼sÀ4Ç6Á6»{Ó4KÑK‘Eà ŸK™K¨Ó-�EáÙ+¨E°1Ó5�Eà!��q’	ð"ô  ×!Ñ! 6Ð*Ð*rC   c                 óF  ‡— ddl mŠ |j                  }|d   t        j                  u st        d„ |dd  D «       «      r}t        t        | j                  |«      «      }|d   dk(  }|rt        ddd«      |d<   t        j                  |Ž }|r.t        d|j                  z   |j                  |j                  «      }|S g }g }| j                  dvr|j                  «       }nt        |j                  «      }t!        |ˆfd	„¬
«      }|D �]S  }|j"                  r«|j$                  rŸ|j&                  j(                  r‰|j&                  j*                  rs|j&                  dk7  r3|j-                  t/        |j0                  |j&                   d¬«      «       ŒŠ|j-                  t/        |j0                  |j&                   «      «       Œ»|j(                  r||t        j2                  urj|j4                  dk7  r$|j-                  t7        |j4                  «      «       |j8                  dk7  s�Œ|j-                  t7        |j8                  «      «       �ŒC|j-                  |«       �ŒV |D �	cg c]  }	| j                  |	«      ‘Œ }}	|D �
cg c]  }
| j                  |
«      ‘Œ }}
t;        |«      dk(  rt        j                  |Ž S t;        |«      dk(  r.|j-                  | j                  t        j                  «      «       t        j                  |Ž t        j                  |Ž z  S c c}	w c c}
w )Nr   )ÚQuantityc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrE   )r:   r   )r\  rÉ   s     rB   r]  z+PrettyPrinter._print_Mul.<locals>.<genexpr>À  s   è ø€ Ò"O¸s¤:¨c´6×#:Ñ"Oùs   ‚ri   z-1rþ  rG  )ÚoldÚnonec                 óp   •— t        | ‰«      xs( t        | t        «      xr t        | j                  ‰«      S rE   )r:   r
   r  )rœ   r¢  s    €rB   rª  z*PrettyPrinter._print_Mul.<locals>.<lambda>Ö  s1   ø€ ¬*°Q¸Ó*Aò +KÜ  ¤CÓ(ÒI¬Z¸¿¹ÀÓ-Ið rC   rÌ   r�  Fr!  )Úsympy.physics.unitsr¢  rZ   r   ÚOnerU  r  ÚmaprN   r   rð  r	  r©   r±   r-   Úas_ordered_factorsrÏ   Úis_commutativeÚis_Powr  r–  Úis_negativerL  r
   r  rƒ  r±  r	   r—  r&  )r@   r‚  rZ   ÚstrargsÚnegoneÚobjrñ  rË  rã  ÚaiÚbir¢  s              @rB   r$  zPrettyPrinter._print_Mul¸  so  ø€ Ý0ð �|‰|ˆØ�‰7”a—e‘eÑœsÑ"OÀdÈ1È2ÀhÔ"OÔOÜœ3˜tŸ{™{¨DÓ1Ó2ˆGð ˜Q‘Z 4Ñ'ˆFÙÜ'¨¨Q°Ó2�˜‘
Ü×$Ñ$ gÐ.ˆCÙÜ   s§u¡u¡¨c¯l©l¸C¿K¹KÓH�ØˆJàˆØˆà�:‰:˜_Ñ,Ø×-Ñ-Ó/‰Dä˜Ÿ™Ó%ˆDô �dó !Kô Lˆð ó 	ˆDØ×"Ò" t§{¢{°t·x±x×7KÒ7KÐPT×PXÑPX×PdÒPdØ—8‘8˜r’>Ø—H‘HœS §¡¨T¯X©X¨IÀÔFÕGà—H‘HœS §¡¨T¯X©X¨IÓ6Õ7Ø×!Ò! d´!·*±*Ñ&<Ø—6‘6˜Q’;Ø—H‘Hœh t§v¡vÓ.Ô0Ø—6‘6˜Q”;Ø—H‘Hœh t§v¡vÓ.Ö0à—‘˜–ð	ð ()Ö) ˆT�[‰[˜�_Ð)ˆÐ)Ø'(Ö) ˆT�[‰[˜�_Ð)ˆÐ)ô ˆq‹6�QŠ;Ü×%Ñ% qÐ)Ð)ä�1‹v˜Š{Ø—‘˜$Ÿ+™+¤a§e¡eÓ,Ô.Ü×%Ñ% qÐ)¬*×*<Ñ*<¸aÐ*@Ñ@Ð@ùò *ùÚ)s   É LÉ>Lc                 óD  ‡	‡
— | j                  |«      }| j                  d   rm| j                  ra|dk(  r\|j                  «       dk(  rI|j	                  «       dk(  s|j
                  r*|j                  rt        |j                  t        d   «      Ž S t        dd«      Š	t        dd«      ‰	z   }| j                  |«      }|j                  «       dk7  r&| j                  |«      | j                  d|z  «      z  S |dk(  rdnt        |«      j                  d«      }t        |«      dkD  rdt        |«      dz
  z  |z   }t        |dz   |z   «      }d	|_        |j                  «       dz
  Š
t        dj!                  ˆ	ˆ
fd
„t#        ‰
«      D «       «      «      }‰
dz
  |_        t        |j%                  |«      Ž }t'        d|j                  «      |_        t        t)        dd|j	                  «       z   «      «      }t        |j+                  |«      Ž }t        |j                  |«      Ž }|S )Nr2   r¥   ri   ro  rn  r  r¤   rZ  r   c              3   óF   •K  — | ]  }d ‰|z
  dz
  z  ‰z   d |z  z   –— Œ y­w)r¤   ri   NrM   )r\  r,   Ú_zZÚ
linelengths     €€rB   r]  z0PrettyPrinter._print_nth_root.<locals>.<genexpr>  s5   øè ø€ ò (
àð �˜a‘ !Ñ#Ñ$ sÑ*¨S°©UÕ2ñ(
ùs   ƒ!rí   )rN   r;   rK   r8  r§   r˜   r™   r   r\   Únth_rootr   r<   Úljustr&  r   r©   rj  r%  rs   r¦   r   r¨   )r@   r  r&   ÚbprettyÚrootsignÚrprettyr  Údiagonalr	  rµ  r¶  s            @@rB   Ú_print_nth_rootzPrettyPrinter._print_nth_rootõ  sÝ  ù€ Ø—+‘+˜dÓ#ˆð �N‰NÐ2Ò3¸×8IÒ8IØ˜’	˜gŸn™nÓ.°!Ò3Ø—‘“ AÒ%Ø—_’_¨×)<Ò)<Ü˜wŸ|™|¬H°Q©KÓ8Ð9Ð9ô �3˜‹lˆÜ˜˜a“= 3Ñ&ˆà—+‘+˜dÓ#ˆà�>‰>Ó˜qÒ Ø—;‘;˜tÓ$ d§k¡k°!°D±&Ó&9Ñ9Ð9à˜A’I‰b¤3 w£<×#5Ñ#5°aÓ#8ˆÜˆs‹8�aŠ<ØœC ›H q™LÑ)¨HÑ4ˆHä˜c D™j¨8Ñ3Ó4ˆØˆÔà—^‘^Ó%¨Ñ)ˆ
Ü˜dŸi™iô (
ä˜:Ó&ô(
ó 
ó ˆð
 '¨™NˆÔä˜xŸ~™~¨hÓ7Ð8ˆô    7×#3Ñ#3Ó4ˆÔä”t˜C  W§]¡]£_Ñ!4Ó5Ó6ˆÜ˜Ÿ™ aÓ(Ð)ˆÜ˜Ÿ™˜xÓ(Ð)ˆØˆrC   c                 óà  — ddl m} |j                  «       \  }}|j                  rØ|t        j
                  u rt        d«      | j                  |«      z  S  ||«      \  }}|t        j                  u rQ|j                  rE|j                  s9|j                  s|j                  r!| j                  d   r| j                  ||«      S |j                  r/|dk  r*t        d«      | j                  t        || d¬«      «      z  S |j                   rCt        | j                  |«      j#                  «       Ž j%                  | j                  |«      «      S | j                  |«      | j                  |«      z  S )Nr   )Úfractionrþ  r3   Fr!  )Úsympy.simplify.simplifyr¿  Úas_base_expr«  r   ÚNegativeOner   rN   r¨  Úis_Atomr˜   r–  rš   r;   r½  r
   r™  r[   Ú__pow__)r@   Úpowerr¿  rË  rS   rª   rý   s          rB   Ú
_print_PowzPrettyPrinter._print_Pow!  s  € Ý4Ø× Ñ Ó"‰ˆˆ1Ø×ÒØ”A—M‘MÑ!Ü! #“ t§{¡{°1£~Ñ5Ð5Ù˜A“;‰DˆAˆqØ”A—E‘E‰z˜aŸiši°·²À!Ç-Â-ÐST×S^ÒS^ØŸ™ Ò7Ø×+Ñ+¨A¨qÓ1Ð1Ø�}Š}  Q¢Ü! #“ t§{¡{´3°q¸1¸"ÀuÔ3MÓ'NÑNÐNà�?Š?Ü˜tŸ{™{¨1›~×4Ñ4Ó6Ð7×?Ñ?ÀÇÁÈAÃÓOÐOà�{‰{˜1‹~˜tŸ{™{¨1›~Ñ-Ð-rC   c                 ó>   — | j                  |j                  d   «      S rX  )rN   rZ   rG   s     rB   Ú_print_UnevaluatedExprz$PrettyPrinter._print_UnevaluatedExpr3  s   € Ø�{‰{˜4Ÿ9™9 Q™<Ó(Ð(rC   c                 óŽ  — |dk(  r=|dk  r$t        t        |«      t         j                  ¬«      S t        t        |«      «      S t        |«      dk\  rut        |«      dk\  rg|dk  r9t        t        |«      t         j                  ¬«      t        t        |«      «      z  S t        t        |«      «      t        t        |«      «      z  S y )Nri   r   )r±   é
   )r   r<   rŽ  Úabs)r@   r±  r—  s      rB   Ú__print_numer_denomz!PrettyPrinter.__print_numer_denom6  s–   € Ø�Š6Ø�1ŠuÜ!¤# a£&´*·.±.ÔAÐAä!¤# a£&Ó)Ð)Ü�‹V�rŠ\œc !›f¨šlà�1ŠuÜ!¤# a£&´*·.±.ÔAÄ*ÌSÐQRËVÓBTÑTÐTô
 "¤# a£&Ó)¬*´S¸³VÓ*<Ñ<Ð<àrC   c                 óx   — | j                  |j                  |j                  «      }|�|S | j                  |«      S rE   )Ú!_PrettyPrinter__print_numer_denomr±  r—  rI   ©r@   rH   r*  s      rB   Ú_print_RationalzPrettyPrinter._print_RationalH  s8   € Ø×)Ñ)¨$¯&©&°$·&±&Ó9ˆàÐØˆMà×$Ñ$ TÓ*Ð*rC   c                 óx   — | j                  |j                  |j                  «      }|�|S | j                  |«      S rE   )rÎ  Ú	numeratorÚdenominatorrI   rÏ  s      rB   Ú_print_FractionzPrettyPrinter._print_FractionP  s:   € Ø×)Ñ)¨$¯.©.¸$×:JÑ:JÓKˆàÐØˆMà×$Ñ$ TÓ*Ð*rC   c                 ó\  — t        |j                  «      dk\  rXt        |j                  «      sC| j                  |j                  d   «      | j                  t        |j                  «      «      z  S | j                  rt        d«      nd}| j                  |j                  d d d|z  d„ ¬«      S )Nri   r   ÚMultiplicationrœ   rÎ   c                 óR   — | j                   xs | j                  xs | j                  S rE   )Úis_UnionÚis_IntersectionÚis_ProductSet©Úsets    rB   rª  z1PrettyPrinter._print_ProductSet.<locals>.<lambda>^  s+   € ¸C¿L¹Lò =LØ#&×#6Ñ#6ò=LØ:=×:KÑ:Kð rC   r¬  )r&  Úsetsr   rN   rK   r   rY   )r@   r±  Ú	prod_chars      rB   Ú_print_ProductSetzPrettyPrinter._print_ProductSetX  s�   € Üˆq�v‰v‹;˜!Ò¤K°·±Ô$7Ø—;‘;˜qŸv™v a™yÓ)¨T¯[©[¼¸Q¿V¹V»Ó-EÑEÐEà9=×9JÒ9JœÐ$4Ô5ÐPSˆIØ—?‘? 1§6¡6¨4°°vÀ	Ñ7Iñ1Lð #ó Mð MrC   c                 ó`   — t        |j                  t        ¬«      }| j                  |ddd«      S )NrÌ   r¬  ú}r»  )rÏ   rZ   r   rY   )r@   r	  rd  s      rB   Ú_print_FiniteSetzPrettyPrinter._print_FiniteSeta  s(   € Ü�q—v‘vÔ#3Ô4ˆØ�‰˜u c¨3°Ó6Ð6rC   c                 óR  — | j                   rt        d«      }nd}|j                  j                  r<|j                  j                  r&|j
                  j                  r|ddd|f}n°|ddd|f}n¨|j                  j                  r||d   |j
                  z
  |d   f}ny|j                  j                  r#t        |«      }t        |«      t        |«      |f}n@t        |«      dkD  r't        |«      }t        |«      t        |«      ||d   f}nt        |«      }| j                  |ddd	«      S )
NÚDotsú...r�  r   ri   r4  r¬  rá  r»  )rK   r   ÚstartÚis_infiniteÚstopÚstepÚis_positiveÚiterrµ   r&  r  rY   )r@   r	  ÚdotsÚprintsetÚits        rB   Ú_print_RangezPrettyPrinter._print_Rangee  sÿ   € à×ÒÜ˜vÓ&‰DàˆDà�7‰7×Ò 1§6¡6×#5Ò#5Ø�v‰v×!Ò!Ø  Q¨¨4Ð/‘à  A r¨4Ð/‘Ø�W‰W× Ò Ø˜Q˜r™U Q§V¡V™^¨Q¨r©UÐ2‰HØ�V‰V×ÒÜ�a“ˆBÜ˜B“x¤ b£¨4Ð/‰HÜ�‹V�aŠZÜ�a“ˆBÜ˜B“x¤ b£¨4°°2±Ð6‰Hä˜Q“xˆHà�‰˜x¨¨c°4Ó9Ð9rC   c                 óø   — |j                   |j                  k(  r | j                  |j                  d d dd«      S |j                  rd}nd}|j
                  rd}nd}| j                  |j                  d d ||«      S )	Nri   r¬  rá  rm   r¾  rn   r¿  r¥   )ræ  ÚendrY   rZ   Ú	left_openÚ
right_open©r@   r,   r\   rs   s       rB   Ú_print_IntervalzPrettyPrinter._print_Interval~  sp   € Ø�7‰7�a—e‘eÒØ—?‘? 1§6¡6¨"¨1 :¨s°CÓ8Ð8ð �{Š{Ø‘à�à�|Š|Ø‘à�à—?‘? 1§6¡6¨"¨1 :¨t°UÓ;Ð;rC   c                 óJ   — d}d}| j                  |j                  d d ||«      S )Nrf  rg  r¥   ©rY   rZ   rô  s       rB   Ú_print_AccumulationBoundsz'PrettyPrinter._print_AccumulationBounds�  s)   € ØˆØˆà�‰˜qŸv™v b q˜z¨4°Ó7Ð7rC   c                 ób   — dt        dd«      z  }| j                  |j                  d d |d„ ¬«      S )NrÎ   ÚIntersectionrª   c                 óR   — | j                   xs | j                  xs | j                  S rE   )rÚ  rØ  Úis_ComplementrÛ  s    rB   rª  z3PrettyPrinter._print_Intersection.<locals>.<lambda>š  s+   € ¸×8IÑ8Iò 9AØ"Ÿ|™|ò9AØ/2×/@Ñ/@ð rC   r¬  ©r   rY   rZ   ©r@   r,  r½  s      rB   Ú_print_Intersectionz!PrettyPrinter._print_Intersection•  s=   € àœ[¨¸Ó=Ñ=ˆ	à�‰˜qŸv™v t¨T°9ñ-Að ó Bð 	BrC   c                 ób   — dt        dd«      z  }| j                  |j                  d d |d„ ¬«      S )NrÎ   ÚUnionr!   c                 óR   — | j                   xs | j                  xs | j                  S rE   )rÚ  rÙ  rü  rÛ  s    rB   rª  z,PrettyPrinter._print_Union.<locals>.<lambda>¢  s-   € ¸×8IÑ8Iò 9HØ"×2Ñ2ò9HØ69×6GÑ6Gð rC   r¬  rý  )r@   r,  Úunion_delimiters      rB   Ú_print_UnionzPrettyPrinter._print_Union�  s=   € à ¤;¨w¸Ó#<Ñ<ˆà�‰˜qŸv™v t¨T°?ñ-Hð ó Ið 	IrC   c                 óˆ   — | j                   st        d«      ‚dt        d«      z  }| j                  |j                  d d |«      S )Nz?ASCII pretty printing of SymmetricDifference is not implementedrÎ   ÚSymmetricDifference)rK   r`  r   rY   rZ   )r@   r,  Úsym_delimeters      rB   Ú_print_SymmetricDifferencez(PrettyPrinter._print_SymmetricDifference¥  s@   € Ø× Ò Ü%Ð&gÓhÐhà¤Ð-BÓ!CÑCˆà�‰˜qŸv™v t¨T°=ÓAÐArC   c                 óH   — d}| j                  |j                  d d |d„ ¬«      S )Nz \ c                 óR   — | j                   xs | j                  xs | j                  S rE   )rÚ  rÙ  rØ  rÛ  s    rB   rª  z1PrettyPrinter._print_Complement.<locals>.<lambda>²  s(   €  c×&7Ñ&7ò '/¸3×;NÑ;Nò '/Ø"%§,¡,ð rC   r¬  r÷  rþ  s      rB   Ú_print_ComplementzPrettyPrinter._print_Complement­  s.   € àˆ	à�‰˜qŸv™v t¨T°9ñ/ð ó 0ð 	0rC   c                 óÎ  ‡— | j                   rt        d«      ŠndŠ|j                  }|j                  }|j                  }| j                  |j                  «      }t        |«      dk(  r3| j                  |d   ‰|d   fd¬«      }| j                  ||ddd	d¬
«      S t        ˆfd„t        ||«      D «       «      }| j                  |d d d¬«      }| j                  ||ddd	d¬
«      S )NÚSmallElementOfÚinri   r   r¤   r¼  r¬  rá  T©r\   rs   r¿  r½  c              3   óB   •K  — | ]  \  }}|d ‰d |dfD ]  }|–— Œ Œ y­w)r¤   r»  NrM   )r\  r:  Úsetvr8   Úinns       €rB   r]  z0PrettyPrinter._print_ImageSet.<locals>.<genexpr>Ë  s7   øè ø€ ò <¡	  TØ  S¨#¨t°TÐ:ò<Àaœ!ð <˜!ñ <ùs   ƒr�  r  )rK   r   r  Ú	base_setsrI  rN   rH   r&  rY   rÅ  r  r'  )	r@   ÚtsÚfunrÝ  rI  rH   r   Úpargsr  s	           @rB   Ú_print_ImageSetzPrettyPrinter._print_ImageSetµ  s  ø€ Ø×ÒÜÐ.Ó/‰CàˆCØ�h‰hˆØ�|‰|ˆØ—M‘Mˆ	Ø�{‰{˜3Ÿ8™8Ó$ˆô ˆy‹>˜QÒØ—‘ ¨1¡¨s°D¸±GÐ <Ø*-ð  ó /ˆAà×*Ñ*¨4°Ø03¸3Ø:>È#ð +ó Oð Oô ó <¬S°¸DÓ-Aô <ó <ˆEà—‘  c r 
°b�Ó9ˆAØ×*Ñ*¨4°Ø03¸3Ø:>È#ð +ó Oð OrC   c                 ó´  — | j                   rt        d«      }t        d«      }nd}d}| j                  t        |j                  «      «      }t        |j                  dd «      }|�*| j                  |j                  j                  «       «      }nN| j                  |j                  «      }| j                   r'| j                  |«      }t        |j                  «       Ž }|j                  t        j                  u r| j                  ||dddd	¬
«      S | j                  |j                  «      }| j                  |||||fd	¬«      }| j                  ||dddd	¬
«      S )Nr  rÕ   r  ÚandÚas_exprr¬  rá  Tr¤   r  r¼  )rK   r   rY   r   r  ÚgetattrÚ	conditionrN   r  r   r[   Úbase_setr   ÚUniversalSetrÅ  )	r@   r  r  Ú_andr¥  r  r­  r  rS  s	            rB   Ú_print_ConditionSetz!PrettyPrinter._print_ConditionSetÒ  sB  € Ø×ÒÜÐ.Ó/ˆCô ˜uÓ%‰DàˆCØˆDà—O‘O¤E¨"¯&©&£MÓ2ˆ	Ü˜"Ÿ,™,¨	°4Ó8ˆØÐØ—;‘;˜rŸ|™|×3Ñ3Ó5Ó6‰Dà—;‘;˜rŸ|™|Ó,ˆDØ× Ò Ø—{‘{ 4Ó(�Ü! 4§;¡;£=Ð1�à�;‰;œ!Ÿ.™.Ñ(Ø×*Ñ*¨9°dÀØ14ÀTØ58ð +ó :ð :ð �{‰{˜2Ÿ;™;Ó'ˆØ�O‰O˜Y¨¨T°4¸Ð>Ø&)ð ó +ˆà×&Ñ& y°!¸#ÀSØ6:Àcð 'ó Kð 	KrC   c                 ó2  — | j                   rt        d«      }nd}| j                  |j                  «      }| j	                  |j
                  «      }| j	                  |j                  «      }| j                  |||fd¬«      }| j                  ||dddd¬«      S )	Nr  r  r¤   r¼  r¬  rá  Tr  )rK   r   rY   r¥  rN   rH   rÝ  rÅ  )r@   r  r  r¥  rH   ÚprodsetsrS  s          rB   Ú_print_ComplexRegionz"PrettyPrinter._print_ComplexRegionñ  s—   € Ø×ÒÜÐ.Ó/‰CàˆCØ—O‘O B§L¡LÓ1ˆ	Ø�{‰{˜2Ÿ7™7Ó#ˆØ—;‘;˜rŸw™wÓ'ˆà�O‰O˜Y¨¨XÐ6Ø&)ð ó +ˆà×&Ñ& t¨Q°SÀØ6:Àcð 'ó Kð 	KrC   c           	      óú   — |j                   \  }}| j                  rMdt        d«      › d�}t        t	        j
                  | j                  |«      || j                  |«      «      ddiŽS t        t        |«      «      S )Nr¤   Ú	ElementOfr±   rq  )rZ   rK   r   r   r   rµ   rN   r   )r@   rS   r:  rÜ  Úels        rB   Ú_print_ContainszPrettyPrinter._print_Containsÿ  sz   € Ø—6‘6‰ˆˆSØ×ÒØ”[ Ó-Ð.¨aÐ0ˆBÜœzŸ™¨t¯{©{¸3Ó/?Ø/1°4·;±;¸sÓ3Có Eð QØNOñQð Qô œd 1›gÓ&Ð&rC   c                 óf  — |j                   j                  t        j                  u rA|j                  j                  t        j                  u r| j                  |j                  «      S | j                  rt        d«      }nd}| j                  |j                  «       «      | j                  |«      z   S )Nrä  rå  )rÕ  Úformular   rQ  ÚbnrN   Úa0rK   r   r   Útruncate)r@   r	  rì  s      rB   Ú_print_FourierSeriesz"PrettyPrinter._print_FourierSeries	  sw   € Ø�4‰4�<‰<œ1Ÿ6™6Ñ! a§d¡d§l¡l´a·f±fÑ&<Ø—;‘;˜qŸt™tÓ$Ð$Ø×ÒÜ˜vÓ&‰DàˆDØ�‰˜qŸz™z›|Ó,¨t¯{©{¸4Ó/@Ñ@Ð@rC   c                 ó8   — | j                  |j                  «      S rE   )r   Úinfinite©r@   r	  s     rB   Ú_print_FormalPowerSeriesz&PrettyPrinter._print_FormalPowerSeries	  s   € Ø�‰˜qŸz™zÓ*Ð*rC   c                 óÂ   — t        | j                  |j                  «      j                  «       Ž }| j                  t	        d«      «      }t        |j                  |«      Ž S )NÚSetExpr)r   rN   rÜ  r[   r   rs   )r@   ÚseÚ
pretty_setÚpretty_names       rB   Ú_print_SetExprzPrettyPrinter._print_SetExpr	  sK   € Ü §¡¨R¯V©VÓ!4×!;Ñ!;Ó!=Ð>ˆ
Ø—k‘k¤&¨Ó"3Ó4ˆÜ˜;×,Ñ,¨ZÓ8Ð9Ð9rC   c                 ó�  — | j                   rt        d«      }nd}t        |j                  j                  «      dkD  s"t        |j
                  j                  «      dkD  rt        d«      ‚|j                  t        j                  u rY|j
                  }||j                  |dz
  «      |j                  |dz
  «      |j                  |dz
  «      |j                  |«      f}nX|j
                  t        j                  u s|j                  dkD  r"|d d }|j                  |«       t        |«      }nt        |«      }| j                  |«      S )	Nrä  rå  r   z@Pretty printing of sequences with symbolic bound not implementedr3  r¥   ri   r4  )rK   r   r&  ræ  Úfree_symbolsrè  r`  r   r„  rä  rƒ  ÚlengthrL  r  Ú_print_list)r@   r	  rì  rè  rí  s        rB   Ú_print_SeqFormulazPrettyPrinter._print_SeqFormula	  s  € Ø×ÒÜ˜vÓ&‰DàˆDäˆq�w‰w×#Ñ#Ó$ qÒ(¬C°·±×0CÑ0CÓ,DÀqÒ,HÜ%Ð&hÓiÐià�7‰7”a×(Ñ(Ñ(Ø—6‘6ˆDØ˜aŸg™g d¨Q¡hÓ/°·±¸À¹Ó1BØ—‘˜˜q™Ó! 1§7¡7¨4£=ð2‰Hà�V‰V”q—z‘zÑ! Q§X¡X°¢\Ø˜˜!�uˆHØ�O‰O˜DÔ!Ü˜X“‰Hä˜Q“xˆHØ×Ñ Ó)Ð)rC   c                  ó   — y)NFrM   r©  s    rB   rª  zPrettyPrinter.<lambda>3	  s   � rC   c                 ó>  — g }|D ]U  }| j                  |«      }	 ||«      rt        |	j                  «       Ž }	|r|j                  |«       |j                  |	«       ŒW |st	        d«      }
nt        t	        j
                  |Ž Ž }
t        |
j                  |||¬«      Ž }
|
S )Nr  r{  )rN   r   r[   rL  r   rµ   )r@   Úseqr\   rs   r½  r­  r¿  r›  rã  r^   r	  s              rB   rY   zPrettyPrinter._print_seq2	  s˜   € ð ˆØò 	!ˆDØ—K‘K Ó%ˆEÙ˜DÔ!Ü" E§L¡L£NÐ3�ÙØ—‘˜iÔ(Ø�M‰M˜%Õ ð	!ñ Ü˜2“‰AäœJŸO™O¨VÐ4Ð5ˆAä˜Ÿ™  u¸^˜ÓLÐMˆØˆrC   c                 ó˜   — d }|D ]5  }|€|}Œt        |j                  |«      Ž }t        |j                  |«      Ž }Œ7 |€t        d«      S |S )Nr  )r   rs   )r@   r½  rZ   r^   rÉ   s        rB   rj  zPrettyPrinter.joinF	  s\   € Øˆàò 	6ˆCØˆ}Ø‘ä" E§K¡K°	Ó$:Ð;�Ü" E§K¡K°Ó$4Ð5‘ð	6ð ˆ=Ü˜b“>Ð!àˆLrC   c                 ó(   — | j                  |dd«      S r  ©rY   )r@   r¹   s     rB   r;  zPrettyPrinter._print_listU	  s   € Ø�‰˜q # sÓ+Ð+rC   c                 óÔ   — t        |«      dk(  rHt        t        j                  | j	                  |d   «      d«      Ž }t        |j                  ddd¬«      Ž S | j                  |dd«      S )Nri   r   r  rm   rn   Tr{  )r&  r   r   rµ   rN   r[   rY   )r@   rÍ  Úptuples      rB   Ú_print_tuplezPrettyPrinter._print_tupleX	  s\   € Üˆq‹6�QŠ;Ü¤§¡°·±¸Q¸q¹TÓ1BÀCÓ!HÐIˆFÜ˜vŸ}™}¨S°#Àd˜}ÓKÐLÐLà—?‘? 1 c¨3Ó/Ð/rC   c                 ó$   — | j                  |«      S rE   )rE  rG   s     rB   Ú_print_TuplezPrettyPrinter._print_Tuple_	  s   € Ø× Ñ  Ó&Ð&rC   c                 ó  — t        |j                  «       t        ¬«      }g }|D ]U  }| j                  |«      }| j                  ||   «      }t	        t        j                  |d|«      Ž }|j                  |«       ŒW | j                  |dd«      S )NrÌ   z: r¬  rá  )	rÏ   Úkeysr   rN   r   r   rµ   rL  rY   )r@   rý   rI  rd  r«   ru  ÚVr	  s           rB   Ú_print_dictzPrettyPrinter._print_dictb	  s   € Ü�a—f‘f“hÔ$4Ô5ˆØˆàò 	ˆAØ—‘˜A“ˆAØ—‘˜A˜a™DÓ!ˆAÜœJŸO™O¨A¨t°QÓ7Ð8ˆAà�L‰L˜�Oð	ð �‰˜u c¨3Ó/Ð/rC   c                 ó$   — | j                  |«      S rE   )rK  )r@   rý   s     rB   Ú_print_DictzPrettyPrinter._print_Dicto	  s   € Ø×Ñ Ó"Ð"rC   c                 ó˜   — |st        d«      S t        |t        ¬«      }| j                  |«      }t        |j	                  ddd¬«      Ž }|S )Nzset()rÌ   r¬  rá  Tr{  )r   rÏ   r   rY   r[   ©r@   r	  rd  Úprettys       rB   Ú
_print_setzPrettyPrinter._print_setr	  sI   € ÙÜ˜gÓ&Ð&Ü�qÔ.Ô/ˆØ—‘ Ó'ˆÜ˜VŸ]™]¨3°ÀD˜]ÓIÐJˆØˆrC   c                 ó*  — |st        d«      S t        |t        ¬«      }| j                  |«      }t        |j	                  ddd¬«      Ž }t        |j	                  ddd¬«      Ž }t        t        j                  t        |«      j                  |«      Ž }|S )	Nzfrozenset()rÌ   r¬  rá  Tr{  rm   rn   )	r   rÏ   r   rY   r[   r   rµ   ÚtyperŽ   rO  s       rB   Ú_print_frozensetzPrettyPrinter._print_frozensetz	  s�   € ÙÜ˜mÓ,Ð,Ü�qÔ.Ô/ˆØ—‘ Ó'ˆÜ˜VŸ]™]¨3°ÀD˜]ÓIÐJˆÜ˜VŸ]™]¨3°ÀD˜]ÓIÐJˆÜœZŸ_™_¬T°!«W×-=Ñ-=¸vÓFÐGˆØˆrC   c                 óX   — | j                   rt        t        d«      «      S t        d«      S )NÚUniverser  rö  r0  s     rB   Ú_print_UniversalSetz!PrettyPrinter._print_UniversalSet„	  s&   € Ø×ÒÜœk¨*Ó5Ó6Ð6ä˜nÓ-Ð-rC   c                 ó*   — t        t        |«      «      S rE   ©r   r   )r@   Úrings     rB   Ú_print_PolyRingzPrettyPrinter._print_PolyRingŠ	  ó   € Üœ$˜t›*Ó%Ð%rC   c                 ó*   — t        t        |«      «      S rE   rY  )r@   Úfields     rB   Ú_print_FracFieldzPrettyPrinter._print_FracField�	  s   € Üœ$˜u›+Ó&Ð&rC   c                 ó*   — t        t        |«      «      S rE   rF   )r@   Úelms     rB   Ú_print_FreeGroupElementz%PrettyPrinter._print_FreeGroupElement�	  s   € Üœ#˜c›(Ó#Ð#rC   c                 ó*   — t        t        |«      «      S rE   rY  )r@   Úpolys     rB   Ú_print_PolyElementz PrettyPrinter._print_PolyElement“	  r\  rC   c                 ó*   — t        t        |«      «      S rE   rY  )r@   Úfracs     rB   Ú_print_FracElementz PrettyPrinter._print_FracElement–	  r\  rC   c                 ó²   — |j                   r-| j                  |j                  «       j                  «       «      S | j                  |j                  «       «      S rE   )Ú
is_aliasedrN   Úas_polyr  rG   s     rB   Ú_print_AlgebraicNumberz$PrettyPrinter._print_AlgebraicNumber™	  s<   € Ø�?Š?Ø—;‘;˜tŸ|™|›~×5Ñ5Ó7Ó8Ð8à—;‘;˜tŸ|™|›~Ó.Ð.rC   c                 óÐ   — | j                  |j                  d¬«      |j                  g}t        | j	                  |«      j                  «       Ž }t        |j                  d«      Ž }|S )NÚlexrŒ  ÚCRootOf)r   rH   rx  r   rY   r[   r\   ©r@   rH   rZ   r^   s       rB   Ú_print_ComplexRootOfz"PrettyPrinter._print_ComplexRootOfŸ	  sU   € Ø—‘ §	¡	°�Ó7¸¿¹ÐDˆÜ˜DŸO™O¨DÓ1×8Ñ8Ó:Ð;ˆÜ˜EŸJ™J yÓ1Ð2ˆØˆrC   c                 óF  — | j                  |j                  d¬«      g}|j                  t        j                  ur*|j                  | j                  |j                  «      «       t        | j                  |«      j                  «       Ž }t        |j                  d«      Ž }|S )Nrn  rŒ  ÚRootSum)r   rH   r  r   ÚIdentityFunctionrL  rN   r   rY   r[   r\   rp  s       rB   Ú_print_RootSumzPrettyPrinter._print_RootSum¥	  sz   € Ø—‘ §	¡	°�Ó7Ð8ˆà�8‰8œ1×-Ñ-Ñ-Ø�K‰K˜Ÿ™ D§H¡HÓ-Ô.ä˜DŸO™O¨DÓ1×8Ñ8Ó:Ð;ˆÜ˜EŸJ™J yÓ1Ð2ˆàˆrC   c                 ó~   — | j                   rt        d«      › d�}nd}t        t        ||j                  z  «      «      S )NÚIntegersz_%dzGF(%d))rK   r   r   r   Úmod)r@   rH   Úforms      rB   Ú_print_FiniteFieldz PrettyPrinter._print_FiniteField°	  s:   € Ø×ÒÜ! *Ó-Ð.¨cÐ2‰DàˆDäœ-¨¨t¯x©x©Ó8Ó9Ð9rC   c                 óX   — | j                   rt        t        d«      «      S t        d«      S )Nrw  ÚZZrö  rG   s     rB   Ú_print_IntegerRingz PrettyPrinter._print_IntegerRing¸	  s&   € Ø×ÒÜœk¨*Ó5Ó6Ð6ä˜dÓ#Ð#rC   c                 óX   — | j                   rt        t        d«      «      S t        d«      S )NÚ	RationalsÚQQrö  rG   s     rB   Ú_print_RationalFieldz"PrettyPrinter._print_RationalField¾	  s&   € Ø×ÒÜœk¨+Ó6Ó7Ð7ä˜dÓ#Ð#rC   c                 óÊ   — | j                   rt        d«      }nd}|j                  rt        |«      S | j	                  t        |dz   t        |j                  «      z   «      «      S )NÚRealsÚRRrí   ©rK   r   Úhas_default_precisionr   rN   r   r<   Ú	precision©r@   ÚdomainÚprefixs      rB   Ú_print_RealFieldzPrettyPrinter._print_RealFieldÄ	  sV   € Ø×ÒÜ  Ó)‰FàˆFà×'Ò'Ü˜fÓ%Ð%à—;‘;œ}¨V°c©\¼CÀ×@PÑ@PÓ<QÑ-QÓRÓSÐSrC   c                 óÊ   — | j                   rt        d«      }nd}|j                  rt        |«      S | j	                  t        |dz   t        |j                  «      z   «      «      S )NÚ	ComplexesÚCCrí   r…  rˆ  s      rB   Ú_print_ComplexFieldz!PrettyPrinter._print_ComplexFieldÏ	  sV   € Ø×ÒÜ  Ó-‰FàˆFà×'Ò'Ü˜fÓ%Ð%à—;‘;œ}¨V°c©\¼CÀ×@PÑ@PÓ<QÑ-QÓRÓSÐSrC   c                 óv  — t        |j                  «      }|j                  j                  sJt	        t	        d«      j                  | j                  |j                  «      «      Ž }|j                  |«       | j                  |dd«      }t	        |j                  | j                  |j                  «      «      Ž }|S ©Núorder=r¾  r¿  ©r  Úsymbolsr-   Ú
is_defaultr   rs   rN   rL  rY   r\   r‰  ©r@   rH   rZ   r-   r^   s        rB   Ú_print_PolynomialRingz#PrettyPrinter._print_PolynomialRingÚ	  ó‡   € Ü�D—L‘LÓ!ˆà�z‰z×$Ò$Ü¤
¨8Ó 4× :Ñ :¸4¿;¹;ÀtÇzÁzÓ;RÓ SÐTˆEØ�K‰K˜Ôà—‘  c¨3Ó/ˆÜ˜EŸJ™J t§{¡{°4·;±;Ó'?Ó@ÐAˆàˆrC   c                 óv  — t        |j                  «      }|j                  j                  sJt	        t	        d«      j                  | j                  |j                  «      «      Ž }|j                  |«       | j                  |dd«      }t	        |j                  | j                  |j                  «      «      Ž }|S )Nr’  rm   rn   r“  r–  s        rB   Ú_print_FractionFieldz"PrettyPrinter._print_FractionFieldæ	  r˜  rC   c                 ó2  — |j                   }t        |j                  «      t        |j                  «      k7  r|dt        |j                  «      z   fz   }| j	                  |dd«      }t        |j                  | j                  |j                  «      «      Ž }|S r‘  )	r”  r<   r-   Údefault_orderrY   r   r\   rN   r‰  )r@   rH   Úgr^   s       rB   Ú_print_PolynomialRingBasez'PrettyPrinter._print_PolynomialRingBaseò	  sw   € Ø�L‰LˆÜˆt�z‰z‹?œc $×"4Ñ"4Ó5Ò5Ø�X¤ D§J¡J£Ñ/Ð1Ñ1ˆAØ—‘  3¨Ó,ˆÜ˜EŸJ™J t§{¡{°4·;±;Ó'?Ó@ÐAˆàˆrC   c                 óÀ  — |j                   D �cg c]  }| j                  ||j                  ¬«      ‘Œ! }}t        | j	                  d|«      j                  dd¬«      Ž }|j                  D �cg c]  }| j                  |«      ‘Œ }}t        t        d«      j                  | j                  |j                  «      «      Ž }t        t        d«      j                  | j                  |j                  «      «      Ž }| j	                  d|g|z   ||gz   «      }t        |j                  «       Ž }t        |j                  |j                  j                  «      Ž }|S c c}w c c}w )NrŒ  r»  r¾  r¿  rÀ  zdomain=r’  )Úexprsr   r-   r   rj  r[   ÚgensrN   rs   r‰  r\   r�   rŽ   )	r@   ÚbasisrÉ   r   Úgenr¡  r‰  r-   r^   s	            rB   Ú_print_GroebnerBasisz"PrettyPrinter._print_GroebnerBasisû	  s,  € à"Ÿ[™[ö+Øð —/‘/ #¨U¯[©[�/Õ9ð +ˆð +ä˜DŸI™I d¨EÓ2×9Ñ9¸sÈ#Ð9ÓNÐOˆà-2¯Z©ZÖ9 c�—‘˜SÕ!Ð9ˆÐ9äÜ˜	Ó"×(Ñ(¨¯©°U·\±\Ó)BÓCðEˆäÜ˜Ó!×'Ñ'¨¯©°E·K±KÓ(@ÓAðCˆð —	‘	˜$  ¨$¡°&¸%°Ñ @ÓAˆä˜EŸL™L›NÐ+ˆÜ˜EŸJ™J u§¡×'?Ñ'?Ó@ÐAˆàˆùò!+ùò :s   �$EÁ,Ec                 ó¨  — | j                  |j                  «      }t        |j                  «       Ž }|j	                  «       dkD  r|j	                  «       nd}t        t        d|«      |j                  ¬«      }t        |j                  |«      Ž }|j                  }|j	                  «       dz
  |_        t        |j                  | j                  t        |j                  |j                  «      D �cg c]E  }| j                  | j                  |d   «      t        d«      | j                  |d   «      fd¬«      ‘ŒG c}«      «      Ž }||_        |S c c}w )	Nri   r¥   rð   rÀ  r   r]  r  r¼  )rN   rH   r   r[   r8  r   r   r©   rs   rY   r'  r¥  rT  r   )r@   rS   r^   r>  ÚrvertrË  rp  s          rB   Ú_print_SubszPrettyPrinter._print_Subs
  s  € Ø—‘˜AŸF™FÓ#ˆÜ˜EŸL™L›NÐ+ˆà#Ÿl™l›n¨qÒ0ˆE�L‰LŒN°aˆÜœ4  Q›<°%·.±.ÔAˆÜ˜EŸK™K¨Ó.Ð/ˆà�N‰NˆØŸ™›¨!Ñ+ˆŒÜ˜EŸK™K¨¯©ä'*¨1¯;©;¸¿¹Ó'@ö9Cà"#ð �O‰O˜TŸ[™[¨¨1©Ó.´°T³
¸D¿K¹KÈÈ!ÉÓ<MÐNØð õ ò9Có )Dó Eð Fˆð ˆŒØˆùò9Cs   Ã0A
Ec                 ó  — t        |«      }| j                  |j                  d   «      }t        d|j                  «       z  «      }t        |j	                  |«      Ž }t        |j                  |«      Ž }t        |j                  «      dk(  r|S |j                  \  }}|}t        | j                  |g«      j                  «       Ž }	t        t        j                  ||	«      dt         j                  iŽ}||_        |	|_        |S )Nr   r¤   ri   r±   )r   rN   rZ   r§   r  rs   r&  rY   r[   r   rµ   r   rÄ  rÅ  )
r@   rS   ra   r^   rÉ   rÒ   rÏ  rœ   rÄ  rÅ  s
             rB   Ú_print_number_functionz$PrettyPrinter._print_number_function
  sÞ   € ô ˜4Ó ˆØ�k‰k˜!Ÿ&™& ™)Ó$ˆÜ˜s 3§9¡9£;™Ó/ˆ	Ü 	§¡°Ó 4Ð5ˆ	Ü˜EŸK™K¨	Ó2Ð3ˆÜˆq�v‰v‹;˜!ÒØˆLØ�v‰v‰ˆˆ1àˆ
Ü §¡°!°Ó!5×!<Ñ!<Ó!>Ð?ˆ
ÜÜ&0§o¡o°jÀ*Ó&MðOÜ—O‘OñOˆà%ˆÔØ%ˆÔØˆrC   c                 ó&   — | j                  |d«      S )Nrˆ  ©r©  rR   s     rB   Ú_print_eulerzPrettyPrinter._print_euler3
  ó   € Ø×*Ñ*¨1¨cÓ2Ð2rC   c                 ó&   — | j                  |d«      S )NrS  r«  rR   s     rB   Ú_print_catalanzPrettyPrinter._print_catalan6
  r­  rC   c                 ó&   — | j                  |d«      S )NrÝ  r«  rR   s     rB   Ú_print_bernoullizPrettyPrinter._print_bernoulli9
  r­  rC   c                 ó&   — | j                  |d«      S )NÚLr«  rR   s     rB   Ú_print_lucaszPrettyPrinter._print_lucas>
  r­  rC   c                 ó&   — | j                  |d«      S )NrÇ  r«  rR   s     rB   Ú_print_fibonaccizPrettyPrinter._print_fibonacciA
  r­  rC   c                 ó&   — | j                  |d«      S )NrÓ  r«  rR   s     rB   Ú_print_tribonaccizPrettyPrinter._print_tribonacciD
  r­  rC   c                 óp   — | j                   r| j                  |t        d   «      S | j                  |d«      S )Nr  Ú	stieltjes)rK   r©  r    rR   s     rB   Ú_print_stieltjeszPrettyPrinter._print_stieltjesG
  s6   € Ø×ÒØ×.Ñ.¨q´-ÀÑ2HÓIÐIà×.Ñ.¨q°+Ó>Ð>rC   c                 ó0  — | j                  |j                  d   «      }t        |j                  t        d«      «      Ž }t        |j                  | j                  |j                  d   «      «      Ž }| j                  rt        t        d«      «      }nt        d«      }|}t        |j                  d|j                  «       z  «      Ž }t        |j                  d|j                  «       z  «      Ž }t        |j                  |«      dt        j                  iŽS )Nr   r  ri   r  rý   r¤   r±   )rN   rZ   r   rs   rK   r   r   r\   r§   r  ÚPOW)r@   rS   r^   rñ  rË  r�  r‘  s          rB   Ú_print_KroneckerDeltaz#PrettyPrinter._print_KroneckerDeltaM
  sÏ   € Ø—‘˜AŸF™F 1™IÓ&ˆÜ˜EŸK™K¬
°3«Ó8Ð9ˆÜ˜EŸK™K¨¯©°A·F±F¸1±IÓ(>Ó?Ð@ˆØ×ÒÜœ=¨Ó1Ó2‰Aä˜3“ˆAØˆÜ˜!Ÿ&™&  Q§W¡W£Y¡Ó/Ð0ˆÜ˜!Ÿ'™' # a§g¡g£i¡-Ó0Ð1ˆÜ°3·9±9¸S³>ÐB¤*§.¡.ÑBÐBrC   c                 ó²  — t        |d«      rG| j                  d«      }t        |j                  | j                  |j	                  «       «      «      Ž }|S t        |d«      r™| j                  d«      }t        |j                  | j                  |j
                  «      «      Ž }t        |j                  | j                  d«      «      Ž }t        |j                  | j                  |j                  «      «      Ž }|S t        |d«      rC| j                  d«      }t        |j                  | j                  |j
                  «      «      Ž }|S | j                  d «      S )NÚ
as_booleanzDomain: rÜ  z in r”  z
Domain on )rü  rN   r   rs   rÀ  r”  rÜ  )r@   rý   r^   s      rB   Ú_print_RandomDomainz!PrettyPrinter._print_RandomDomainZ
  s  € Ü�1�lÔ#Ø—K‘K 
Ó+ˆEÜ §¡¨D¯K©K¸¿¹»Ó,GÓ HÐIˆEØˆLÜ�Q˜ÔØ—K‘K 
Ó+ˆEÜ §¡¨D¯K©K¸¿	¹	Ó,BÓ CÐDˆEÜ §¡¨D¯K©K¸Ó,?Ó @ÐAˆEÜ §¡¨D¯K©K¸¿¹Ó,>Ó ?Ð@ˆEØˆLÜ�Q˜	Ô"Ø—K‘K Ó-ˆEÜ §¡¨D¯K©K¸¿	¹	Ó,BÓ CÐDˆEØˆLà—;‘;˜tÓ$Ð$rC   c                 óÄ   — 	 |j                   �*| j                  |j                   j                  |«      «      S 	 | j                  t	        |«      «      S # t        $ r Y Œ%w xY wrE   )rZ  rN   Úto_sympyr   Úrepr©r@   r±  s     rB   Ú
_print_DMPzPrettyPrinter._print_DMPl
  s[   € ð	Ø�v‰vÐ!à—{‘{ 1§6¡6§?¡?°1Ó#5Ó6Ð6ð "ð
 �{‰{œ4 ›7Ó#Ð#øô ò 	Ùð	ús   ‚5A Á	AÁAc                 ó$   — | j                  |«      S rE   )rÆ  rÅ  s     rB   Ú
_print_DMFzPrettyPrinter._print_DMFu
  s   € Ø�‰˜qÓ!Ð!rC   c                 óJ   — | j                  t        |j                  «      «      S rE   ©rN   r   ra   )r@   Úobjects     rB   Ú_print_ObjectzPrettyPrinter._print_Objectx
  s   € Ø�{‰{œ=¨¯©Ó5Ó6Ð6rC   c                 óÄ   — t        d«      }| j                  |j                  «      }| j                  |j                  «      }|j	                  ||«      d   }t        |«      S )Nz-->r   )r   rN   r‰  Úcodomainrs   r   )r@   ÚmorphismrL  r‰  rÎ  Útails         rB   Ú_print_MorphismzPrettyPrinter._print_Morphism{
  sQ   € Ü�U“ˆà—‘˜XŸ_™_Ó-ˆØ—;‘;˜x×0Ñ0Ó1ˆØ�|‰|˜E 8Ó,¨QÑ/ˆä˜$ÓÐrC   c                 ó¨   — | j                  t        |j                  «      «      }| j                  |«      }t	        |j                  d|«      d   «      S )NrÊ  r   )rN   r   ra   rÑ  r   rs   )r@   rÏ  r6  Úpretty_morphisms       rB   Ú_print_NamedMorphismz"PrettyPrinter._print_NamedMorphism„
  sF   € Ø—k‘k¤-°·±Ó">Ó?ˆØ×.Ñ.¨xÓ8ˆÜ˜+×+Ñ+¨C°ÓAÀ!ÑDÓEÐErC   c                 óh   — ddl m} | j                   ||j                  |j                  d«      «      S )Nr   )ÚNamedMorphismÚid)Úsympy.categoriesrÖ  rÔ  r‰  rÎ  )r@   rÏ  rÖ  s      rB   Ú_print_IdentityMorphismz%PrettyPrinter._print_IdentityMorphism‰
  s0   € Ý2Ø×(Ñ(Ù˜(Ÿ/™/¨8×+<Ñ+<¸dÓCóEð 	ErC   c                 ó@  — t        d«      }|j                  D �cg c]  }t        |j                  «      ‘Œ }}|j	                  «        |j                  |«      dz   }| j                  |«      }| j                  |«      }t        |j                  |«      d   «      S c c}w )Nr  rÊ  r   )
r   re  r   ra   Úreverserj  rN   rÑ  r   rs   )r@   rÏ  ÚcircleÚ	componentÚcomponent_names_listÚcomponent_namesr6  rÓ  s           rB   Ú_print_CompositeMorphismz&PrettyPrinter._print_CompositeMorphismŽ
  sœ   € ä�c“ˆð
 .6×-@Ñ-@ö BØ )ô !.¨i¯n©nÕ =ð  BÐð  Bà×$Ñ$Ô&Ø Ÿ+™+Ð&:Ó;¸cÑAˆà—k‘k /Ó2ˆØ×.Ñ.¨xÓ8ˆÜ˜+×+Ñ+¨OÓ<¸QÑ?Ó@Ð@ùò Bs   šBc                 óJ   — | j                  t        |j                  «      «      S rE   rÊ  )r@   Úcategorys     rB   Ú_print_CategoryzPrettyPrinter._print_Category�
  s   € Ø�{‰{œ=¨¯©Ó7Ó8Ð8rC   c                 ó>  — |j                   s| j                  t        j                  «      S | j                  |j                   «      }|j                  r>dt        d«      z  }| j                  |j                  «      d   }|j                  ||«      }t        |d   «      S )NrÎ   z==>r   )ÚpremisesrN   r   ÚEmptySetÚconclusionsr   rs   r   )r@   ÚdiagramÚpretty_resultÚresults_arrowÚpretty_conclusionss        rB   Ú_print_DiagramzPrettyPrinter._print_Diagram 
  s‹   € Ø×Òà—;‘;œqŸz™zÓ*Ð*àŸ™ G×$4Ñ$4Ó5ˆØ×ÒØ"¤T¨%£[Ñ0ˆMà!%§¡¨W×-@Ñ-@Ó!AÀ!Ñ!DÐØ)×/Ñ/ØÐ1ó3ˆMô ˜-¨Ñ*Ó+Ð+rC   c                 ó  — ddl m}  |t        |j                  «      D ��cg c]<  }t        |j                  «      D �cg c]  }|||f   r|||f   n
t        d«      ‘Œ c}‘Œ> c}}«      }| j                  |«      S c c}w c c}}w )Nr   )ÚMatrixr¤   )rÁ  rî  r%  r8  r§   r   r—  )r@   Úgridrî  r,   r8   Úmatrixs         rB   Ú_print_DiagramGridz PrettyPrinter._print_DiagramGrid¯
  s‚   € Ý)Ùä"'¨¯©Ó"4÷6àô $)¨¯©Ó#4ö6Øð )-¨Q°¨Tª
˜$˜q !˜tš*¼¸s»ÑCô 6ó 6ó 7ˆð ×*Ñ*¨6Ó2Ð2ùò6ùó 6s   ¡B 
½ A;ÁB 
Á;B 
c                 ó(   — | j                  |dd«      S r  rB  ©r@   rÏ  s     rB   Ú_print_FreeModuleElementz&PrettyPrinter._print_FreeModuleElement¶
  s   € à�‰˜q # sÓ+Ð+rC   c           
      óÂ   — |j                   D ��cg c]+  }|D �cg c]  }|j                  j                  |«      ‘Œ c}‘Œ- }}}| j                  |dd«      S c c}w c c}}w ©Nrf  rg  )r¡  rZ  rÃ  rY   )r@   r�  r£  r�  r¡  s        rB   Ú_print_SubModulezPrettyPrinter._print_SubModuleº
  sL   € Ø=>¿V¹V×D°c¨SÖ1¨�—‘—‘ Õ#Ô1ÐDˆÑDØ�‰˜t S¨#Ó.Ð.ùò 2ùÓDs   �	A™"A»AÁAc                 óp   — | j                  |j                  «      | j                  |j                  «      z  S rE   )rN   rZ  r€  ©r@   r�  s     rB   Ú_print_FreeModulezPrettyPrinter._print_FreeModule¾
  s'   € Ø�{‰{˜1Ÿ6™6Ó" D§K¡K°·±Ó$7Ñ7Ð7rC   c                 ó²   — |j                   j                  }| j                  |j                  j                  D �cg c]  \  } ||«      ‘Œ c}dd«      S c c}w rö  )rZ  rÃ  rY   Ú_moduler¡  )r@   r�  r  rœ   s       rB   Ú_print_ModuleImplementedIdealz+PrettyPrinter._print_ModuleImplementedIdealÁ
  s>   € Ø�f‰f�o‰oˆØ�‰°!·)±)·.±.ÖA©3¨A¡ A¥ÒAÀ3ÈÓLÐLùÒAs   ºAc                 óp   — | j                  |j                  «      | j                  |j                  «      z  S rE   )rN   rZ  Ú
base_ideal©r@   ÚRs     rB   Ú_print_QuotientRingz!PrettyPrinter._print_QuotientRingÅ
  s'   € Ø�{‰{˜1Ÿ6™6Ó" T§[¡[°·±Ó%>Ñ>Ð>rC   c                 ó¢   — | j                  |j                  j                  |«      «      | j                  |j                  j                  «      z   S rE   )rN   rZ  rÃ  rÿ  r   s     rB   Ú_print_QuotientRingElementz(PrettyPrinter._print_QuotientRingElementÈ
  s6   € Ø�{‰{˜1Ÿ6™6Ÿ?™?¨1Ó-Ó.°·±¸Q¿V¹V×=NÑ=NÓ1OÑOÐOrC   c                 ó„   — | j                  |j                  «      | j                  |j                  j                  «      z   S rE   )rN   ÚdataÚmoduleÚkilled_moduleró  s     rB   Ú_print_QuotientModuleElementz*PrettyPrinter._print_QuotientModuleElementË
  s-   € Ø�{‰{˜1Ÿ6™6Ó" T§[¡[°·±×1GÑ1GÓ%HÑHÐHrC   c                 óp   — | j                  |j                  «      | j                  |j                  «      z  S rE   )rN   r  r  rù  s     rB   Ú_print_QuotientModulez#PrettyPrinter._print_QuotientModuleÎ
  s'   € Ø�{‰{˜1Ÿ6™6Ó" T§[¡[°·±Ó%AÑAÐArC   c                 ó&  — | j                  |j                  «       «      }|j                  «       dz  |_        t	        |j                  d| j                  |j                  «      dt        dd«      z  | j                  |j                  «      «      Ž }|S )Nr¥   z : z %s> rG  )	rN   Ú_sympy_matrixr8  r©   r   rs   r‰  r   rÎ  )r@   r>  rð  r^   s       rB   Ú_print_MatrixHomomorphismz'PrettyPrinter._print_MatrixHomomorphismÑ
  sq   € Ø—‘˜QŸ_™_Ó.Ó/ˆØ Ÿ-™-›/¨QÑ.ˆŒÜ˜FŸL™L¨°·±¸A¿H¹HÓ0EØ”d˜3 “lÑ" D§K¡K°·
±
Ó$;ó=ð >ˆàˆrC   c                 ó8   — | j                  |j                  «      S rE   ©rN   ra   )r@   Úmanifolds     rB   Ú_print_ManifoldzPrettyPrinter._print_ManifoldØ
  s   € Ø�{‰{˜8Ÿ=™=Ó)Ð)rC   c                 ó8   — | j                  |j                  «      S rE   r  )r@   Úpatchs     rB   Ú_print_PatchzPrettyPrinter._print_PatchÛ
  s   € Ø�{‰{˜5Ÿ:™:Ó&Ð&rC   c                 ó8   — | j                  |j                  «      S rE   r  )r@   Úcoordss     rB   Ú_print_CoordSystemz PrettyPrinter._print_CoordSystemÞ
  s   € Ø�{‰{˜6Ÿ;™;Ó'Ð'rC   c                 ó�   — |j                   j                  |j                     j                  }| j	                  t        |«      «      S rE   )Ú
_coord_sysr”  Ú_indexra   rN   r   )r@   r^  Ústrings      rB   Ú_print_BaseScalarFieldz$PrettyPrinter._print_BaseScalarFieldá
  s6   € Ø×!Ñ!×)Ñ)¨%¯,©,Ñ7×<Ñ<ˆØ�{‰{œ=¨Ó0Ó1Ð1rC   c                 ó®   — t        d«      dz   |j                  j                  |j                     j                  z   }| j                  t        |«      «      S )Nrü   rí   )r!   r  r”  r  ra   rN   r   )r@   r^  r	  s      rB   Ú_print_BaseVectorFieldz$PrettyPrinter._print_BaseVectorFieldå
  sF   € ÜÐ$Ó%¨Ñ+¨e×.>Ñ.>×.FÑ.FÀuÇ|Á|Ñ.T×.YÑ.YÑYˆØ�{‰{œ=¨Ó+Ó,Ð,rC   c                 ó|  — | j                   rt        d«      }nd}|j                  }t        |d«      rM|j                  j
                  |j                     j                  }| j                  |dz   t        |«      z   «      S | j                  |«      }t        |j                  «       Ž }t        |j                  |«      Ž S )NÚDifferentialrý   r  r¤   )rK   r   Ú_form_fieldrü  r  r”  r  ra   rN   r   r   r[   r\   )r@   rÔ  rý   r^  r  r^   s         rB   Ú_print_Differentialz!PrettyPrinter._print_Differentialé
  s�   € Ø×ÒÜ˜NÓ+‰AàˆAØ× Ñ ˆÜ�5˜,Ô'Ø×%Ñ%×-Ñ-¨e¯l©lÑ;×@Ñ@ˆFØ—;‘;˜q 3™w¬°vÓ)>Ñ>Ó?Ð?à—K‘K Ó&ˆEÜ §¡£Ð/ˆEÜ˜uŸz™z¨!›}Ð-Ð-rC   c                 óÌ   — | j                  |j                  d   «      }t        |j                  d|j                  j
                  z  «      Ž }t        |j                  d«      Ž }|S )Nr   z%s(rn   )rN   rZ   r   r\   r�   rŽ   rs   )r@   r±  r^   s      rB   Ú	_print_TrzPrettyPrinter._print_Tr÷
  sR   € à—‘˜AŸF™F 1™IÓ&ˆÜ˜EŸJ™J u°·±×0DÑ0DÑ'EÓFÐGˆÜ˜EŸK™K¨Ó,Ð-ˆØˆrC   c                 óô   — | j                  |j                  d   «      }t        |j                  «       Ž }| j                  r t        |j                  t        d   «      Ž }|S t        |j                  d«      Ž }|S )Nr   Únu©rN   rZ   r   r[   rK   r\   r    r]   s      rB   Ú_print_primenuzPrettyPrinter._print_primenuþ
  sj   € Ø—‘˜AŸF™F 1™IÓ&ˆÜ˜EŸL™L›NÐ+ˆØ×ÒÜ §
¡
¬=¸Ñ+>Ó ?Ð@ˆEð ˆô  §
¡
¨4Ó 0Ð1ˆEØˆrC   c                 óô   — | j                  |j                  d   «      }t        |j                  «       Ž }| j                  r t        |j                  t        d   «      Ž }|S t        |j                  d«      Ž }|S )Nr   ÚOmegar(  r]   s      rB   Ú_print_primeomegazPrettyPrinter._print_primeomega  sj   € Ø—‘˜AŸF™F 1™IÓ&ˆÜ˜EŸL™L›NÐ+ˆØ×ÒÜ §
¡
¬=¸Ñ+AÓ BÐCˆEð ˆô  §
¡
¨7Ó 3Ð4ˆEØˆrC   c                 óÞ   — |j                   j                   dk(  rD| j                  r| j                  t        d«      «      }|S | j                  t	        d«      «      }|S | j                  |«      S )NÚdegreeÚDegreeé°   )ra   rK   rN   r   ÚchrrI   r]   s      rB   Ú_print_QuantityzPrettyPrinter._print_Quantity  s_   € Ø�6‰6�;‰;˜(Ò"Ø× Ò ØŸ™¤K°Ó$9Ó:�ð ˆLð Ÿ™¤C¨£HÓ-�ØˆLà×$Ñ$ QÓ'Ð'rC   c                 óô   — t        dt        |j                  «      z   dz   «      }| j                  |j                  «      }| j                  |j
                  «      }t        t        j                  |||«      Ž }|S )Nr¤   )r   r   r¸   rN   r³   r´   r   rµ   r·   s         rB   Ú_print_AssignmentBasez#PrettyPrinter._print_AssignmentBase  s^   € ä˜œd 1§4¡4›jÑ(¨3Ñ.Ó/ˆà�K‰K˜Ÿ™ÓˆØ�K‰K˜Ÿ™ÓˆÜœJŸO™O¨A¨r°1Ó5Ð6ˆØˆrC   c                 ó8   — | j                  |j                  «      S rE   r  r0  s     rB   Ú
_print_StrzPrettyPrinter._print_Str#  s   € Ø�{‰{˜1Ÿ6™6Ó"Ð"rC   rE   )F)T)r¾  r¿  )NNr  F)FNrm   rn   )FNr»  Frm   rn   )ürŽ   Ú
__module__Ú__qualname__Ú__doc__ÚprintmethodÚ_default_settingsr9   rI   ÚpropertyrK   rP   rT   rV   r_   rd   Ú_print_RandomSymbolrg   rk   rw   r~   r�   rƒ   r‡   rŠ   r�   Ú_print_InfinityÚ_print_NegativeInfinityÚ_print_EmptySetÚ_print_NaturalsÚ_print_Naturals0Ú_print_IntegersÚ_print_RationalsÚ_print_ComplexesÚ_print_EmptySequencer”   r�   r    r¢   r¯   r»   rÊ   rØ   rÙ   rÝ   rà   rã   ræ   rÅ   rÄ   rî   rñ   rö   rú   r  r  r0  rE  rZ  rK  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(  r.  r0  r3  rA  rG  rL  rT  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  r  r  r   r$  r)  r+  r-  r0  r3  r5  r8  r;  r>  rA  rC  rE  rN  rW  rZ  r\  r^  r`  rc  rf  rh  rk  rm  ro  rs  rv  rx  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'  r-  r1  r7  r<  Ú_print_SeqPerÚ_print_SeqAddÚ_print_SeqMulrY   rj  r;  rE  rG  rK  rM  rQ  rT  rW  r[  r_  rb  re  rh  rl  rq  ru  rz  r}  r�  r‹  r�  r—  rš  rž  r¤  r§  r©  r¬  r¯  r±  Ú_print_bellr´  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  r  r  r  r#  r%  r)  r,  r2  r4  r6  rM   rC   rB   r(   r(      sŠ  „ ÙIØ€Kð ØØØØØ!%ØØ#ØØñÐó~ò%ð ñ(ó ð(ò:òòòó
 ð (ÐòSò8ò
òòò
òòò(ð "€OØ)ÐØ!€OØ!€OØ"ÐØ!€OØ"ÐØ"Ðà&Ðò7òòòòò ò+ó"ò*6ò6ò6ò6ò6ó+ó6òEòò
+ò+ò#òJò&",òJIòV4òl
(ò_òBò8AóFò
IòSòSòòò*ò6òò%ò
ò")ò#ò#ò#ò)òò	Yò,ò Hòò
8ò)ò0òòò""&òHò$ò'òd=òL%ðB @Bó !òF;ò
Fòò)ò òò@6òp3òó4ò.ò`Ròh.ò4ð CFØ!ósò6ò6ò7ò7ð HLØGJØ%(ó#òJWð ñ%ó ð%ò4ò'ò'ò<ò<ò@ò6ò6ò7ò7ò8ò8ò6ò8ò8ò6òKò[òò*ò<ò<ò<ò<ò<ò<ò+ò&'òò	òòòò2ò
1ò
(òóF+òP:Aòz*òX.ò$)òò$+ò+òMò7ò:ò2<ò"8òBòIòBò0òOò:Kò>Kò'òAò+ò:ò
*ð* &€MØ%€MØ%€Mà#'¨t¸tÙ(¸óò(ò,ò0ò'ò0ò#òòò.ò&ò'ò$ò&ò&ò/òò	ò:ò$ò$ò	Tò	Tò
ò
òòò&ò"ò(3ò3ò3ð #€Kò3ò3ò3ò?òCò%ò$$ò"ò7ò òFò
Eò
Aò9ò,ò3ò,ò/ò8òMò?òPòIòBòò*ò'ò(ò2ò-ò.òòòò(òó#rC   r(   c                 ó¦   — t        |«      }|j                  d   }t        |«      }	 |j                  | «      t        |«       S # t        |«       w xY w)zƒReturns a string containing the prettified form of expr.

    For information on keyword arguments see pretty_print function.

    r/   )r(   r;   r   rP   )rH   rA   rÝ  r/   Úuflags        rB   rP  rP  '  sK   € ô 
�xÓ	 €Bð —,‘,˜}Ñ-€KÜ˜{Ó+€Eð"Ø�z‰z˜$Óä˜5Õ!øÔ˜5Õ!ús   §A ÁAc                 ó.   — t        t        | fi |¤Ž«       y)aÒ  Prints expr in pretty form.

    pprint is just a shortcut for this function.

    Parameters
    ==========

    expr : expression
        The expression to print.

    wrap_line : bool, optional (default=True)
        Line wrapping enabled/disabled.

    num_columns : int or None, optional (default=None)
        Number of columns before line breaking (default to None which reads
        the terminal width), useful when using SymPy without terminal.

    use_unicode : bool or None, optional (default=None)
        Use unicode characters, such as the Greek letter pi instead of
        the string pi.

    full_prec : bool or string, optional (default="auto")
        Use full precision.

    order : bool or string, optional (default=None)
        Set to 'none' for long expressions if slow; default is None.

    use_unicode_sqrt_char : bool, optional (default=True)
        Use compact single-character square root symbol (when unambiguous).

    root_notation : bool, optional (default=True)
        Set to 'False' for printing exponents of the form 1/n in fractional form.
        By default exponent is printed in root form.

    mat_symbol_style : string, optional (default="plain")
        Set to "bold" for printing MatrixSymbols using a bold mathematical symbol face.
        By default the standard face is used.

    imaginary_unit : string, optional (default="i")
        Letter to use for imaginary unit when use_unicode is True.
        Can be "i" (default) or "j".
    N)ÚprintrP  )rH   Úkwargss     rB   Úpretty_printrP  :  s   € ôV 
Œ&�Ñ
 ˜Ñ
 Õ!rC   c                 óz   — ddl m} ddlm} d|vrd|d<    |t	        | fi |¤Žj                   |«       «      «       y)a‡  Prints expr using the pager, in pretty form.

    This invokes a pager command using pydoc. Lines are not wrapped
    automatically. This routine is meant to be used with a pager that allows
    sideways scrolling, like ``less -S``.

    Parameters are the same as for ``pretty_print``. If you wish to wrap lines,
    pass ``num_columns=None`` to auto-detect the width of the terminal.

    r   )Úpager)Úgetpreferredencodingr1   i ¡ N)ÚpydocrR  ÚlocalerS  rP  Úencode)rH   rA   rR  rS  s       rB   Úpager_printrW  j  s=   € õ Ý+Ø˜HÑ$Ø"(ˆ�ÑÙ	Œ&�Ñ
"˜Ñ
"×
)Ñ
)Ñ*>Ó*@Ó
AÕBrC   )?r�  Ú
sympy.corer   Úsympy.core.addr   Úsympy.core.containersr   Úsympy.core.functionr   Úsympy.core.mulr   Úsympy.core.numbersr   r	   Úsympy.core.powerr
   Úsympy.core.sortingr   Úsympy.core.symbolr   Úsympy.core.sympifyr   Úsympy.printing.conventionsr   Úsympy.printing.precedencer   r   r   Úsympy.printing.printerr   r   Úsympy.printing.strr   Úsympy.utilities.iterablesr   Úsympy.utilities.exceptionsr   Ú sympy.printing.pretty.stringpictr   r   Ú&sympy.printing.pretty.pretty_symbologyr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r·  Úpprint_use_unicodeÚpprint_try_use_unicoder(   rP  rP  ÚpprintrW  rM   rC   rB   ú<module>rm     s    ðÛ å Ý Ý 'Ý (Ý ß /Ý  Ý /Ý $Ý +Ý 7ß TÑ Tß :Ý #Ý 1Ý @ç C÷b÷ b÷ b÷ bð
 (Ð Ø/Ð ôF,#�Gô F,#ñRX �Óñ"ó ð"ò$+"ðZ 
€óCrC   