+
    ‹°³ja5 ã                  óx  € ^ RI Ht ^ RIHtHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIt^RIHt ^RIHtHt ^R	IHt ^R
IHtHt ^RIHt ^RIHtHt ^RIHtHt ^RIHt ^RIH t  ^RI!H"t" ^RI#H$t$ ^ RI%H&t&  ! R R4      t'R t(R t) ! R R]]4      t*]! R4      t+R R lt,R!R lt-R t.^RI/H0t0 ^RI1H2t2 ^RI3H4t4H5t5 R# )"é    )Úannotations)ÚTYPE_CHECKINGÚClassVar)Údefaultdict)Úreduce)ÚproductN)Úsympify)ÚBasicÚ_args_sortkey)ÚS)ÚAssocOpÚAssocOpDispatcher)Úcacheit)Úinteger_nthrootÚtrailing)Ú	fuzzy_notÚ_fuzzy_group)ÚExpr)Úglobal_parameters)ÚKindDispatcher©Ú	bottom_up)Úsiftc                  ó*   € ] tR t^tRtRtRtRtRtRt	R# )Ú	NC_MarkerF© N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úis_OrderÚis_MulÚ	is_NumberÚis_PolyÚis_commutativeÚ__static_attributes__r   ó    ÚO/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/core/mul.pyr   r      s   † Ø€HØ€FØ€IØ€Gà„Nr'   r   c                ó2   € V P                  \        R 7       R# )©ÚkeyN)Úsortr   ©Úargss   &r(   Ú_mulsortr/   "   s   € à‡I�I”-€IÖ r'   c                 ó  € . p. p\        V 4      p \        P                  pV  F�  pVP                  '       d7   VP	                  4       w  rVV P                  V4       VP                  V4       KK  VP                  '       d   W4,          pKg  VP                  '       d   VP                  V4       KŒ  VP                  V4       KŸ  	  \        V4       V\        P                  Jd   VP                  ^ V4       \        P                  W,           4      # )aÀ  Return a well-formed unevaluated Mul: Numbers are collected and
put in slot 0, any arguments that are Muls will be flattened, and args
are sorted. Use this when args have changed but you still want to return
an unevaluated Mul.

Examples
========

>>> from sympy.core.mul import _unevaluated_Mul as uMul
>>> from sympy import S, sqrt, Mul
>>> from sympy.abc import x
>>> a = uMul(*[S(3.0), x, S(2)])
>>> a.args[0]
6.00000000000000
>>> a.args[1]
x

Two unevaluated Muls with the same arguments will
always compare as equal during testing:

>>> m = uMul(sqrt(2), sqrt(3))
>>> m == uMul(sqrt(3), sqrt(2))
True
>>> u = Mul(sqrt(3), sqrt(2), evaluate=False)
>>> m == uMul(u)
True
>>> m == Mul(*m.args)
False

)Úlistr   ÚOner"   Úargs_cncÚextendr#   r%   Úappendr/   ÚinsertÚMulÚ
_from_args)r.   ÚcargsÚncargsÚcoÚaÚa_cÚa_ncs   *      r(   Ú_unevaluated_Mulr?   '   s¾   € ð> €EØ€FÜ�‹:€DÜ	
�‰€BÛˆØ�8�8ˆ8ØŸ
™
›‰IˆCØ�K‰K˜ÔØ�M‰M˜$ÖØ�[�[ˆ[Ø�GŠBØ××ÐØ�L‰L˜ŽOà�M‰M˜!Öñ ô ˆU„OØ	”—‘ƒØ�‰�Q˜ÔÜ�>‰>˜%�,Ó'Ð'r'   c                  óÚ  a € ] tR t^[t$ RtRMtRt]t]	! RRR7      t
R]R&   ]R 4       t]'       d   RR/R	 R
 llt]R R l4       tR tR t]R 4       tR t]R 4       tR t]R 4       t]R 4       t]RR/R l4       tRNR ltROR lt]R 4       tR t ]R 4       t!]V 3R l4       t"R t#R t$RPR lt%]R  4       t&]RQR! l4       t']R" 4       t(]R# 4       t)]R$ 4       t*]R% 4       t+]R& 4       t,R' t-R( t.R) t/R* t0R+ t1R, t2R- t3R. t4R/ t5R0 t6R1 t7R2 t8R3 t9R4 t:R5 t;R6 t<R7 t=R8 t>R9 t?R: t@R; tAR< tBR= tCR> tDR? tER@ tFRA tGRB tHRC tIRD tJRRRE ltKRF tLRG tMRH tNRI tORSRJ ltPRQRK ltQ]RL 4       tRRMtSV ;tT# )Tr7   a~  
Expression representing multiplication operation for algebraic field.

.. deprecated:: 1.7

   Using arguments that aren't subclasses of :class:`~.Expr` in core
   operators (:class:`~.Mul`, :class:`~.Add`, and :class:`~.Pow`) is
   deprecated. See :ref:`non-expr-args-deprecated` for details.

Every argument of ``Mul()`` must be ``Expr``. Infix operator ``*``
on most scalar objects in SymPy calls this class.

Another use of ``Mul()`` is to represent the structure of abstract
multiplication so that its arguments can be substituted to return
different class. Refer to examples section for this.

``Mul()`` evaluates the argument unless ``evaluate=False`` is passed.
The evaluation logic includes:

1. Flattening
    ``Mul(x, Mul(y, z))`` -> ``Mul(x, y, z)``

2. Identity removing
    ``Mul(x, 1, y)`` -> ``Mul(x, y)``

3. Exponent collecting by ``.as_base_exp()``
    ``Mul(x, x**2)`` -> ``Pow(x, 3)``

4. Term sorting
    ``Mul(y, x, 2)`` -> ``Mul(2, x, y)``

Since multiplication can be vector space operation, arguments may
have the different :obj:`sympy.core.kind.Kind()`. Kind of the
resulting object is automatically inferred.

Examples
========

>>> from sympy import Mul
>>> from sympy.abc import x, y
>>> Mul(x, 1)
x
>>> Mul(x, x)
x**2

If ``evaluate=False`` is passed, result is not evaluated.

>>> Mul(1, 2, evaluate=False)
1*2
>>> Mul(x, x, evaluate=False)
x*x

``Mul()`` also represents the general structure of multiplication
operation.

>>> from sympy import MatrixSymbol
>>> A = MatrixSymbol('A', 2,2)
>>> expr = Mul(x,y).subs({y:A})
>>> expr
x*A
>>> type(expr)
<class 'sympy.matrices.expressions.matmul.MatMul'>

See Also
========

MatMul

TÚMul_kind_dispatcher)ÚcommutativezClassVar[Expr]Úidentityc                	óH   € R  V P                    4       pV P                  ! V!  # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5i©N)Úkind©Ú.0r<   s   & r(   Ú	<genexpr>ÚMul.kind.<locals>.<genexpr>¬   s   é € Ð/¡Y —V–V£Yùó   ‚)r.   Ú_kind_dispatcher)ÚselfÚ	arg_kindss   & r(   rG   ÚMul.kindª   s!   € á/ T§Y¢YÓ/ˆ	Ø×$Ò$ iÑ0Ð0r'   Úevaluatec               ó$   € V ^8„  d   QhRRRRRR/# )é   r.   zExpr | complexrQ   ÚboolÚreturnr   r   )Úformats   "r(   Ú__annotate__ÚMul.__annotate__±   s!   € ÷ 	ñ 	 ð 	¸$ð 	Èñ 	r'   c               	ó   € R # rF   r   )ÚclsrQ   r.   s   &$*r(   Ú__new__ÚMul.__new__±   s   € Ùr'   c               ó   € V ^8„  d   QhRR/# )rS   rU   ztuple[Expr, ...]r   )rV   s   "r(   rW   rX   µ   s   € ÷ 	ñ 	Ð*ñ 	r'   c                	ó   € R # rF   r   ©rN   s   &r(   r.   ÚMul.args´   s   € ár'   c                	óz   € W ) 8X  d   R # V P                   ^ ,          pVP                  ;'       d    VP                  # ©F)r.   r#   Úis_extended_negative)rN   Úcs   & r(   Úcould_extract_minus_signÚMul.could_extract_minus_sign¸   s1   € Ø�EŒ?ÙØ�I‰I�a�LˆØ�{‰{×5Ð5˜q×5Ñ5Ð5r'   c                	óŒ  € V P                  4       w  rV^ ,          \        P                  Jd   V) pV\        P                  Jdg   V^ ,          P                  '       dD   \        V4      pV\        P                  J d   V^ ,          ) V^ &   M V^ ;;,          V,          uu&   M
V3V,           pV P                  W P                  4      # ©r   )	Úas_coeff_mulr   ÚComplexInfinityr2   r#   r1   ÚNegativeOner8   r%   )rN   rd   r.   s   &  r(   Ú__neg__ÚMul.__neg__¾   s—   € Ø×#Ñ#Ó%‰ˆØ��7œ!×+Ñ+Ó+Ø�ˆAØ”A—E‘E‹>Ø�A�w× × Ð Ü˜D“z�ØœŸ™Ó%Ø# A�w˜h�D˜’Gà˜—G˜q•L”Gà�t˜d•{�Ø�‰˜t×%8Ñ%8Ó9Ð9r'   c           
     ó!  a"a6€ ^ RI Hp ^ RIHo6 Rp\	        V4      ^8X  Ed/   Vw  po"S"P
                  '       d
   S"Tupo"VS".pV\        P                  Jg   Q hVP
                  '       dÝ   VP                  '       gË   S"P                  4       w  po"S"P                  '       d¦   V\        P                  Jd8   WE,          pV\        P                  J d   S"pMV ! WE,          S"RR7      pV.. R3pMZ\        P                  '       dE   S"P                  '       d3   \        S"P                   Uu. uF  p\!        WH4      NK  	  up!  p	V	.. R3pV'       d   V# . p
. p. p\        P                  p. p. p\        P"                  p/ pRpV EFù  pVP$                  '       d   VP'                  V4      w  ppVP(                  '       d�   VP                  '       d   VP+                  VP                  4       M^VP                   F9  pVP                  '       d   VP-                  V4       K(  VP-                  V4       K;  	  VP-                  \.        4       KÊ  VP0                  '       dª   V\        P2                  J g'   V\        P4                  J d)   VP                  '       d   \        P2                  .. R3u # VP0                  '       g   \7        WÒ4      '       d4   VV,          pV\        P2                  J d   \        P2                  .. R3u # EK…  \7        VV4      '       d   VP9                  V4      pEK«  V\        P4                  J d2   V'       g   \        P2                  .. R3u # \        P4                  pEKð  V'       g{   \7        V\        4      '       de   \:        ;QJ d&    R VP                   4       F  '       g   K   RM	  RM! R VP                   4       4      '       d   \        P2                  .. R3u # V\        P<                  J d   V\        P>                  ,          pEK   VP                  '       EdI   VPA                  4       w  o"pVPB                  '       Ed   S"P0                  '       dû   VP
                  '       d¯   VPD                  '       d   V\G        S"V4      ,          pEK%  VPH                  '       d   VP-                  \G        S"V4      4       EKU  S"PH                  '       d   VV,          pS") o"S"\        P                  Jd"   VPK                  S". 4      P-                  V4       EK«  S"PL                  '       g   VPN                  '       d   VP-                  S"V34       EKå  VP-                  S"V34       EKû  V\.        Jd   VP-                  V4       V'       g   EK!  VPQ                  ^ 4      pV'       g   VP-                  V4       K7  VPQ                  4       pVPA                  4       w  ppVPA                  4       w  ppVV,           pVV8X  dU   VP                  '       gC   VV,          pVP                  '       d   VP-                  V4       K½  VPS                  ^ V4       KÑ  VP+                  VV.4       Kæ  	  R pV! V4      pV! V4      p\U        ^4       EFü  p. pRp V EF«  w  o"pVP                  '       dÙ   S"P                  '       g   S"P(                  '       d³   \:        ;QJ dL    V"3R	 l\        P4                  \        PV                  \        PX                  3 4       F  '       g   K   RMA	  RM=! V"3R	 l\        P4                  \        PV                  \        PX                  3 4       4      '       d   \        P2                  .. R3u u # Kñ  V\        P                  J d!   S"P0                  '       d   VS",          pEK#  S"p!V\        P                  JdO   \G        S"V4      p!V!PB                  '       d1   S"PB                  '       g   S"pV!PA                  4       w  o"pS"V8w  d   Rp V
P-                  X!4       VP-                  S"V34       EK®  	  V '       d<   \	        V U"Uu0 uF  w  p"pV"kK
  	  upp"4      \	        V4      8w  d   . p
V! V4      pEKý   M	  / p#V F'  w  o"pV#PK                  V. 4      P-                  S"4       K)  	  V#P[                  4        F  w  po"V ! S"!  V#V&   K  	  T
P+                  V#P[                  4        UU"u. uF  w  pp"V'       g   K  \G        V"V4      NK  	  up"p4       / p$VP[                  4        F.  w  o"pV$PK                  \        V!  . 4      P-                  S"4       K0  	  ?. p%V$P[                  4        F¬  w  po"V ! S"!  o"VP\                  ^8X  d   V\G        S"V4      ,          pK2  VP^                  VP\                  8”  dM   \a        VP^                  VP\                  4      w  p&p'V\G        S"V&4      ,          p\c        V'VP\                  4      pV%P-                  S"V34       K®  	  ?$\e        \f        4      p(^ pV\	        V%4      8  Ed   V%V,          w  pp)V^8X  d   V^,          pK/  . p*\U        V^,           \	        V%4      4       EF  p+V%V+,          w  p,p-VPi                  V,4      p.V.\        P                  Jg   K7  V)V-,           pVP\                  ^8X  d   V\G        V.V4      ,          pMzVP^                  VP\                  8”  dM   \a        VP^                  VP\                  4      w  p&p'V\G        V.V&4      ,          p\c        V'VP\                  4      pV*P-                  V.V34       V,V.,          V-3V%V+&   VV.,          pV\        P                  J g   EK   M	  V\        P                  Jd�   \G        VV)4      p/V/P0                  '       d   VV/,          pMt\j        Pm                  V/4       F[  p/V/P0                  '       d   VV/,          pK   V/PB                  '       g   Q hV/P                  w  pp)V(V),          P-                  V4       K]  	  V%P+                  V*4       V^,          pEK+  V(P[                  4        F  w  po"V ! S"!  V(V&   K  	  V'       dØ   VPo                  4       w  p!p\a        V!V4      w  p0p!V0^,          '       d   V) pV^8X  d!   V
P-                  \        P<                  4       M|V!'       du   \c        V!V4      pV(P[                  4        F)  w  po"VV8X  g   K  S"PL                  '       g   K#  S") V(V&    M-	  V
P-                  \G        \        Pp                  VRR7      4       T
P+                  V(P[                  4        UU"u. uF  w  pp"\G        V"V4      NK  	  up"p4       V\        PV                  \        PX                  39   d%   R
 p1V1! V
^4      w  p
p2V1! VV24      w  pp2VV2,          pV\        P4                  J dz   V
 U3u. uF0  p3\s        V3P                  4      '       d   V3Pt                  e   K.  V3NK2  	  p
p3V U3u. uF0  p3\s        V3P                  4      '       d   V3Pt                  e   K.  V3NK2  	  pp3M¬VP                  '       d›   \:        ;QJ d    V63R lV 4       F  '       g   K   RM	  RM! V63R lV 4       4      '       d   V.VV3# \:        ;QJ d    R V
 4       F  '       g   K   RM	  RM! R V
 4       4      '       d   \        P2                  .. V3# V.. V3# . p4V
 F1  pVP0                  '       d   VV,          pK   V4P-                  V4       K3  	  T4p
\w        V
4       V\        P                  Jd   V
PS                  ^ V4       \        P                  '       dŸ   V'       g—   \	        V
4      ^8X  d‡   V
^ ,          P0                  '       dn   V
^ ,          Px                  '       dU   V
^,          P                  '       d<   V
^ ,          p\        V
^,          P                   U5u. uF  p5VV5,          NK  	  up5!  .p
W«V3# u upi u upp"i u up"pi u up"pi u up3i u up3i u up5i )a6  Return commutative, noncommutative and order arguments by
combining related terms.

Notes
=====
    * In an expression like ``a*b*c``, Python process this through SymPy
      as ``Mul(Mul(a, b), c)``. This can have undesirable consequences.

      -  Sometimes terms are not combined as one would like:
         {c.f. https://github.com/sympy/sympy/issues/4596}

        >>> from sympy import Mul, sqrt
        >>> from sympy.abc import x, y, z
        >>> 2*(x + 1) # this is the 2-arg Mul behavior
        2*x + 2
        >>> y*(x + 1)*2
        2*y*(x + 1)
        >>> 2*(x + 1)*y # 2-arg result will be obtained first
        y*(2*x + 2)
        >>> Mul(2, x + 1, y) # all 3 args simultaneously processed
        2*y*(x + 1)
        >>> 2*((x + 1)*y) # parentheses can control this behavior
        2*y*(x + 1)

        Powers with compound bases may not find a single base to
        combine with unless all arguments are processed at once.
        Post-processing may be necessary in such cases.
        {c.f. https://github.com/sympy/sympy/issues/5728}

        >>> a = sqrt(x*sqrt(y))
        >>> a**3
        (x*sqrt(y))**(3/2)
        >>> Mul(a,a,a)
        (x*sqrt(y))**(3/2)
        >>> a*a*a
        x*sqrt(y)*sqrt(x*sqrt(y))
        >>> _.subs(a.base, z).subs(z, a.base)
        (x*sqrt(y))**(3/2)

      -  If more than two terms are being multiplied then all the
         previous terms will be re-processed for each new argument.
         So if each of ``a``, ``b`` and ``c`` were :class:`Mul`
         expression, then ``a*b*c`` (or building up the product
         with ``*=``) will process all the arguments of ``a`` and
         ``b`` twice: once when ``a*b`` is computed and again when
         ``c`` is multiplied.

         Using ``Mul(a, b, c)`` will process all arguments once.

    * The results of Mul are cached according to arguments, so flatten
      will only be called once for ``Mul(a, b, c)``. If you can
      structure a calculation so the arguments are most likely to be
      repeats then this can save time in computing the answer. For
      example, say you had a Mul, M, that you wished to divide by ``d[i]``
      and multiply by ``n[i]`` and you suspect there are many repeats
      in ``n``. It would be better to compute ``M*n[i]/d[i]`` rather
      than ``M/d[i]*n[i]`` since every time n[i] is a repeat, the
      product, ``M*n[i]`` will be returned without flattening -- the
      cached value will be returned. If you divide by the ``d[i]``
      first (and those are more unique than the ``n[i]``) then that will
      create a new Mul, ``M/d[i]`` the args of which will be traversed
      again when it is multiplied by ``n[i]``.

      {c.f. https://github.com/sympy/sympy/issues/5706}

      This consideration is moot if the cache is turned off.

    NB
    --
      The validity of the above notes depends on the implementation
      details of Mul and flatten which may change at any time. Therefore,
      you should only consider them when your code is highly performance
      sensitive.

      Removal of 1 from the sequence is already handled by AssocOp.__new__.
)ÚAccumBounds)Ú
MatrixExprNF©rQ   c              3  ó¾   "  € T FS  p\         P                  V4       F7  pV\        P                  \        P                  \        P
                  39   x € K9  	  KU  	  R # 5irF   )r7   Ú	make_argsr   ÚNegativeInfinityrj   ÚInfinity)rI   Ú__Ú_s   &  r(   rJ   ÚMul.flatten.<locals>.<genexpr>†  sJ   é € ð :Aá$˜¬c¯m©m¸BÖ.?¨ð œ!×,Ñ,¬a×.?Ñ.?ÄÇÁÐLÖLÙ.?ñ MÛ$ùs   ‚AATc           
     óð  € / pV  FT  w  r#VP                  4       pVP                  V/ 4      P                  V^,          . 4      P                  V^ ,          4       KV  	  VP                  4        F)  w  r%VP                  4        F  w  rg\	        V!  WV&   K  	  K+  	  . pVP                  4        F@  w  r#TP                  VP                  4        U	U
u. uF  w  ršW*V	,          3NK  	  up
p	4       KB  	  V# u up
p	i ©é   )Úas_coeff_MulÚ
setdefaultr5   ÚitemsÚAddr4   )Úc_powersÚcommon_bÚbÚer;   ÚdÚdiÚliÚnew_c_powersÚtrd   s   &          r(   Ú_gatherÚMul.flatten.<locals>._gatherã  sÓ   € ØˆHÛ ‘�Ø—^‘^Ó%�Ø×#Ñ# A rÓ*×5Ñ5Ø�q•E˜2óß%™v b¨¥ež}ñ !ð !Ÿ™Ö(‘�ØŸg™gži‘F�BÜ ™H�A“Eó (ñ )ð ˆLØ Ÿ™Ö(‘�Ø×#Ñ#¸!¿'¹'¼)Ô$D¹)±$°! a¨1­£X¹)Ò$DÖEñ )àÐùó %Es   ÃC2c              3  óB   <"  € T F  pVSP                   9   x € K  	  R # 5irF   r-   )rI   Úinftyr‚   s   & €r(   rJ   rx     s$   øé € ð 6;ñ&:˜Eð 7<¸q¿v¹v¶oó&:ùs   ƒc                ó¢   € . pV  FE  pVP                   '       d   K  VP                  '       d   VR,          pK4  VP                  V4       KG  	  W!3# ©r{   éÿÿÿÿ)Úis_extended_positiverc   r5   )Úc_partÚ
coeff_signÚ
new_c_partrˆ   s   &&  r(   Ú_handle_for_ooÚ#Mul.flatten.<locals>._handle_for_oo¤  sR   € Ø�
Û�AØ×-×-Ð-Ù Ø×-×-Ð-Ø" bÕ(˜
Ù Ø×%Ñ% aÖ(ñ  ð "Ð-Ð-r'   c              3  ó<   <"  € T F  p\        VS4      x € K  	  R # 5irF   )Ú
isinstance)rI   rd   rp   s   & €r(   rJ   rx   Â  s   øé € Ð>±g°”:˜a ×,Ð,³gùs   ƒc              3  ó>   "  € T F  qP                   R 8H  x € K  	  R# 5i©FN©Ú	is_finite)rI   rd   s   & r(   rJ   rx   Ä  s   é € Ð8±¨A—;‘; %Ö'³ùó   ‚)=Ú!sympy.calculus.accumulationboundsro   Úsympy.matrices.expressionsrp   ÚlenÚis_Rationalr   r2   Úis_zeror|   Úis_Addr   Ú
distributer%   r   r.   Ú_keep_coeffÚZeror!   Úas_expr_variablesr"   r4   r5   r   r#   ÚNaNrj   r—   Ú__mul__ÚanyÚImaginaryUnitÚHalfÚas_base_expÚis_PowÚ
is_IntegerÚPowÚis_negativer}   Úis_positiveÚ
is_integerÚpopr6   Úrangeru   rt   r~   ÚqÚpÚdivmodÚRationalr   r1   Úgcdr7   rs   Úas_numer_denomrk   r   Úis_extended_realr/   r›   )7rZ   Úseqro   Úrvr<   ÚrÚarÚarbÚbiÚnewbr‘   Únc_partÚnc_seqÚcoeffr€   Únum_expÚneg1eÚpnum_ratÚorder_symbolsÚorµ   rƒ   Úo1Úb1Úe1Úb2Úe2Únew_expÚo12r‰   Úir‡   Úchangedr¶   r‚   Úinv_exp_dictÚcomb_eÚnum_ratÚe_iÚepÚpnewÚeiÚgrowÚjÚbjÚejÚgÚobjÚnr”   r’   rd   Ú_newÚfrp   s7   &&                                `                   @r(   ÚflattenÚMul.flattenÍ   sù  ù€ õ^ 	BÝ9ØˆÜˆs‹8�q�=Ø‰DˆAˆqØ�}�}ˆ}Ø˜!���1Ø˜!�f�ØœAŸE™E“>Ð!�>Ø�}�}ˆ} Q§Y§Y YØ—~‘~Ó'‘��1Ø—8—8�8Ø¤§¡“~à�S˜Ø¤§¡›;Ø"#™Cá"% a¥c¨1°uÔ"=˜CØ!˜U B¨˜_™Ü*×5×5Ð5¸!×:J×:JÐ:JÜ"À!Ç&Â&Ó$IÁ&¸B¤[°Ö%7Á&Ñ$IÑJ˜Ø"˜V R¨Ð-˜ßØ�	ð ˆØˆàˆä—‘ˆð ˆð ˆô —‘ˆàˆð ˆô ˆAà�z�zˆzØ#$×#6Ñ#6°}Ó#EÑ ��=ð �x�xˆxØ×#×#Ð#Ø—J‘J˜qŸv™vÕ&ð ŸVœV˜Ø×+×+Ð+ØŸJ™J qžMà"ŸM™M¨!Ö,ñ	 $ð —J‘JœyÔ)áð ——�ØœŸ™“: ¬!×*;Ñ*;Ó!;ÀÇ	Ç	À	äŸE™E˜7 B¨Ð,Ò,Ø—_—_�_¬
°5×(FÒ(FØ˜Q•J�EØ¤§¡“~ä !§¡˜w¨¨DÐ0Ò0Úä˜A˜{×+Ò+ØŸ	™	 %Ó(�Úà”a×'Ñ'Ó'ßäŸE™E˜7 B¨Ð,Ò,Ü×)Ñ)�Úçœz¨!¬S×1Ò1·c³cñ :AàŸfšfó:A·c·c²cñ :AàŸfšfó:A÷ 7Aò 7Aô Ÿ™�w  DÐ(Ò(à”a—o‘oÓ%ØœŸ™•�Úà×!×!Ñ!ð —}‘}“‘��1ð —8—8‘8Ø—{—{�{ð
 Ÿ=Ÿ=˜=Ø Ÿ|Ÿ|˜|Ø %¬¨Q°«Õ 2 Ú (Ø!"§§ Ø #§
¡
¬3¨q°!«9Ô 5Ú (Ø!"§§ Ø %¨¥
 Ø%& B Ø ¬¯©›~Ø (× 3Ñ 3°A°rÓ :× AÑ AÀ!Ô DÚ$ØŸ]Ÿ]˜]¨a¯l¯l¨lØ#ŸN™N¨A¨q¨6Ô2Ú$à—‘  A ×'ð
 œIÓ%Ø—M‘M !Ô$÷ ’fØŸ
™
 1›�Aß"ØŸ™ qÔ)Ù ð !Ÿ™›�BØŸ^™^Ó-‘F�B˜ØŸ]™]›_‘F�B˜Ø  2�g�Gð
 ˜R”x¨¯¯¨Ø  G�m˜ð ×-×-Ð-ØŸJ™J sœOÙ$à"ŸM™M¨!¨SÖ1ð  Ÿ™¨¨A wÖ/ñ{ òX	 ñ ˜8Ó$ˆñ ˜'Ó"ˆô0 �q—ˆAØˆLØˆGÜ ‘��1Ø—9—9�9àŸŸ˜ A§H§H H·#³#ô 6;Ü&'×&7Ñ&7¼¿¹Ü&'×&8Ñ&8ñ&:ó6;·#·#²#ô 6;Ü&'×&7Ñ&7¼¿¹Ü&'×&8Ñ&8ñ&:ó6;÷ 3;ò 3;ô !"§¡˜w¨¨DÐ0Ô0ÙØœŸ™“:Ø—{—{�{Ø �
˜Ú Ø�AØœAŸE™E“>Ü˜A˜q›	�Að —x—x�x¨¯¯¨Ø˜Ø Ÿ}™}›™˜˜1Ø œ7Ø&*˜GØ—‘˜aÔ Ø×#Ñ# Q¨ F×+ñ1 !÷6 œ3Ù".ô 0Ù".™$˜!˜Q“A¡,ò 0ó 1Ü47¸Ó4EôFð �Ù" <Ó0“áñI ðP ˆã‰DˆAˆqØ×#Ñ# A rÓ*×1Ñ1°!Ö4ñ à ×&Ñ&Ö(‰DˆAˆqÙ! 1™gˆL˜‹Oñ )à�‰¨\×-?Ñ-?Ô-AÔGÑ-A¡T Q¨ÄQ”y”s˜1˜a–yÑ-AÒGÔHð ˆØ—N‘NÖ$‰DˆAˆqØ×Ñœc 1™g rÓ*×1Ñ1°!Ö4ñ %àð ˆØ—L‘L–N‰DˆAˆqÙ�Q‘ˆAØ�s‰s�aŒxØœ˜Q ›Õ"�ÙØ�s‰s�Q—S‘SŒyÜ  §¡ a§c¡cÓ*‘��RØœ˜Q ›Õ$�Ü˜R §¡Ó%�Ø�N‰N˜A˜q˜6Ö"ñ #ð ô œ4Ó ˆØˆØ”#�g“,ÕØ˜Q•Z‰FˆB�Ø�QŒwØ�Q•�ÙØˆDÜ˜1˜q�5¤# g£,×/�Ø  �‘��BØ—F‘F˜2“J�ØœAŸE™E•>ð ˜R��AØ—s‘s˜a”xØ¤ Q¨£Õ*™àŸ3™3 §¡œ9Ü&,¨Q¯S©S°!·#±#Ó&6™G˜C Ø!¤S¨¨C£[Õ0˜EÜ (¨¨Q¯S©SÓ 1˜AØŸ™ Q¨ FÔ+à"$ Q¥$¨ �G˜A‘Jà˜A��BØœQŸU™U–{Ùñ) 0ð* œŸ™‹Ü˜"˜b“k�Ø—=—=�=Ø˜S•L‘Eô  #Ÿ}™}¨SÖ1˜ØŸ=Ÿ=˜=Ø! S�LšEà#&§:§: :Ð- :Ø%(§X¡X™F˜B Ø  �HŸO™O¨BÖ/ñ  2ð �N‰N˜4Ô Ø��F‹Að —J‘J–L‰DˆAˆqÙ˜1‘gˆD�‹Gñ !÷ à×(Ñ(Ó*‰DˆAˆqä˜!˜Q“<‰DˆAˆqØ�1�uŒuØ˜�à�AŒvØ—‘œaŸo™oÕ.ßô !  A›�Ø ŸJ™JžL‘D�A�qØ˜E–z a§m§m¢mØ#$ "˜˜Q™Ùñ )ð —M‘M¤#¤a§m¡m°UÀUÔ"KÔLð 	�‰¨T¯Z©Z¬\Ô:©\¡T Q¨”s˜1˜a–y©\Ò:Ô;ð ”Q—Z‘Z¤×!3Ñ!3Ð4Ô4ò	.ñ "0°¸Ó!:ÑˆF�JÙ"0°¸*Ó"EÑˆG�ZØ�ZÕˆEð ”A×%Ñ%Ó%ñ "(ó Q¡˜A´	¸!¿)¹)×0DÒ0DØ01×0BÑ0B÷ �a¡ˆFð Qá")ó S¡'˜Q´)¸A¿I¹I×2FÒ2FØ23×2DÑ2D÷ �q¡'ˆGð SˆGð �]�]ˆ]÷ ‹sÔ>±gÓ>�s�sŠsÔ>±gÓ>×>Ò>Ø�w ¨Ð6Ð6ß‹sÑ8±Ó8�s�sŠsÑ8±Ó8×8Ò8ÜŸ™�w  MÐ1Ð1Ø�7˜B Ð-Ð-ð ˆÛˆAØ�{�{ˆ{Ø˜•
’à—‘˜A–ñ	 ð
 ˆô 	�Ôð œŸ™ÓØ�M‰M˜!˜UÔ#ô ×(×(Ð(·¼SÀ»[ÈAÔ=MØ�q•	×#×#Ð#¨¨q­	×(;×(;Ð(;ÀÀqÅ	×@P×@PÐ@Pà˜1•IˆEÜ¨V°A­Y¯^ª^Ó<©^¨˜E !ŸG˜G©^Ñ<Ñ=Ð>ˆFà Ð-Ð-ùò] %Jùót 0ùó  HùóJ ;ùò2QùòSùòD =sG   Ä'AA!á(AA&äAA,
äAA,
öAA2
ø+AA8ùAA8ù+AA=úAA=ÁAABc                	óš  € V P                  R R7      w  r#VP                  '       dK   \        V Uu. uF  p\        WAR R7      NK  	  up!  \        \        P	                  V4      VR R7      ,          # VP
                  '       Ed   VP                  ^8X  dñ   V P                  '       dß   V P                  4       ^,          pVP
                  '       d¶   \        V^,          4      P                  4       w  rg\        V^4      w  rhV'       d~   \        V^4      w  rxV'       dh   ^ RIHp	 \        V4      V,          p
\        W¡P                   ,          ^V	! V4      \"        P$                  ,          ,           VP                   ,          4      # \        WR R7      pVP
                  '       g   VP&                  '       d   VP)                  4       # V# u upi )F)Úsplit_1rq   ©Úsign)r3   r®   r7   r¯   r8   r    rµ   Úis_imaginaryÚas_real_imagÚabsrº   r   Ú$sympy.functions.elementary.complexesré   r	   r?   r¶   r   rª   Úis_FloatÚ_eval_expand_power_base)rN   Úexptr9   Úncr‚   r<   rá   r„   rˆ   ré   r¾   r¶   s   &&          r(   Ú_eval_powerÚMul._eval_powerá  sO  € ð —M‘M¨%�MÓ0‰	ˆà�?�?ˆ?Ü¹uÓE¹u¸!œ˜Q¨u×5¹uÑEÑFÜ”C—N‘N 2Ó&¨°uÔ=õ>ð >à××Ñ §¡¨!¤Ø× × Ð Ø×%Ñ%Ó'¨Õ*�Ø—=—=�=Ü˜q �s›8×2Ñ2Ó4‘D�AÜ*¨1¨aÓ0‘D�AßÜ.¨q°!Ó4™˜ßÝQÜ '¨£
¨1¥˜AÜ#3°A·v±vµIÀÁDÈÃGÌAÏOÉOÕD[Õ@[Ð^b×^dÑ^dÕ?dÓ#eÐeä� UÔ+ˆà××Ð˜tŸ}Ÿ}˜}Ø×,Ñ,Ó.Ð.àˆùò) Fs   °Gc                	ó    € ^^ V P                   3# )é   )r   ©rZ   s   &r(   Ú	class_keyÚMul.class_keyý  s   € à�!�S—\‘\Ð!Ð!r'   c                	óL  € V P                  4       w  r#V\        P                  J dF   VP                  '       d   \        P
                  ! W14      ) pM1VP                  V4      pVe   TpV) pM\        P
                  ! W4      pVP                  '       d   VP                  4       # V# rF   )r|   r   rk   r"   r   Ú_eval_evalfÚ	is_numberÚexpand)rN   Úprecrd   Úmr½   Úmnews   &&    r(   rú   ÚMul._eval_evalf  s„   € Ø× Ñ Ó"‰ˆØ”—‘ÓØ�x�xˆxÜ×)Ò)¨!Ó2Ð2‘à—}‘} TÓ*�ØÒ#Ø�AØ�R‘ä×$Ò$ TÓ0ˆBØ�<�<ˆ<Ø—9‘9“;ÐØˆ	r'   c                ó¸   € ^RI Hp V P                  4       w  r#V\        P                  Jd   \        R4      hV! ^ 4      P                  V! V4      P                  3# )z+
Convert self to an mpmath mpc if possible
)ÚFloatz7Cannot convert Mul to mpc. Must be of the form Number*I)Únumbersr  r|   r   rª   ÚAttributeErrorÚ_mpf_)rN   r  Úim_partÚ	imag_units   &   r(   Ú_mpc_Ú	Mul._mpc_  sO   € õ
 	#Ø!×.Ñ.Ó0ÑˆØœAŸO™OÓ+ô !Ð!ZÓ[Ð[á�a“—‘¡ g£× 4Ñ 4Ð5Ð5r'   c                óÂ   € V P                   p\        V4      ^8X  d   \        P                  V 3# \        V4      ^8X  d   V# V^ ,          V P                  ! VR,          !  3# )aÿ  Return head and tail of self.

This is the most efficient way to get the head and tail of an
expression.

- if you want only the head, use self.args[0];
- if you want to process the arguments of the tail then use
  self.as_coef_mul() which gives the head and a tuple containing
  the arguments of the tail when treated as a Mul.
- if you want the coefficient when self is treated as an Add
  then use self.as_coeff_add()[0]

Examples
========

>>> from sympy.abc import x, y
>>> (3*x*y).as_two_terms()
(3, x*y)
ºr{   NN)r.   rŸ   r   r2   Ú_new_rawargs)rN   r.   s   & r(   Úas_two_termsÚMul.as_two_terms   sV   € ð* �y‰yˆäˆt‹9˜Œ>Ü—5‘5˜$�;ÐÜ�‹Y˜!Œ^ØˆKð ˜•7˜D×-Ò-¨t°B­xÑ8Ð8Ð8r'   Úrationalc               	óÞ  a€ S'       d:   \        V P                  V3R  lRR7      w  rEV P                  ! V!  \        V4      3# V P                  pV^ ,          P                  '       dv   V'       d   V^ ,          P
                  '       d   V^ ,          VR,          3# V^ ,          P                  '       d*   \        P                  V^ ,          ) 3VR,          ,           3# \        P                  V3# )c                ó$   <€ V P                   ! S!  # rF   )Úhas)ÚxÚdepss   &€r(   Ú<lambda>Ú"Mul.as_coeff_mul.<locals>.<lambda>B  s   ø€ ¨q¯uªu°dª|r'   T)Úbinaryr  )
r   r.   r  Útupler#   r    rc   r   rk   r2   )rN   r  r  ÚkwargsÚl1Úl2r.   s   &$j,   r(   ri   ÚMul.as_coeff_mul?  s±   ø€ çÜ˜$Ÿ)™)Ô%;ÀDÔI‰FˆBØ×$Ò$ bÑ)¬5°«9Ð4Ð4Ø�y‰yˆØ��7××Ðß˜t A�w×2×2Ð2Ø˜A•w  R¥Ð(Ð(Ø�a•×-×-Ð-Ü—}‘}¨¨Q­ x k°D¸µHÕ&<Ð<Ð<Ü�u‰u�dˆ{Ðr'   c                ó”  € V P                   ^ ,          V P                   R,          r2VP                  '       d�   V'       d   VP                  '       d,   \        V4      ^8X  d   W#^ ,          3# W P                  ! V!  3# VP
                  '       d*   \        P                  V P                  ! V) 3V,           !  3# \        P                  V 3# )z3
Efficiently extract the coefficient of a product.
r  )	r.   r#   r    rŸ   r  rc   r   rk   r2   )rN   r  rÅ   r.   s   &&  r(   r|   ÚMul.as_coeff_MulL  sš   € ð —i‘i •l D§I¡I¨b¥Mˆtà�?�?ˆ?ß˜u×0×0Ð0Ü�t“9 ”>Ø  q¥'˜>Ð)à ×"3Ò"3°TÑ":Ð:Ð:Ø×+×+Ð+Ü—}‘} d×&7Ò&7¸E¸6¸)ÀdÕ:JÑ&LÐLÐLÜ�u‰u�dˆ{Ðr'   c                	ó  € ^ RI HpHpHp . p. p. p\        P
                  p	V P                   EF  p
V
P                  4       w  r¼VP                  '       d   VP                  V4       K;  VP                  '       d)   VP                  V\        P                  ,          4       Ku  V
P                  '       dˆ   V'       d   V
P                  4       MRp\        V4       F.  w  rÎWí8X  g   K  VP                  V! V4      ^,          4       Wl  KÜ  	  V
P                  '       d   Wš,          p	Kú  VP                  V
4       EK  VP                  V
4       EK"  	  V P                  ! V!  pVP!                  R4      V8X  d   R# \#        V4      ^,          '       d   V! VP%                  ^ 4      4      pM\        P&                  pV P                  ! Wx,           !  pVV! V4      ,          VV! V4      ,          rËV	^8X  do   V^8X  d>   VP                  '       d   V\        P&                  3# \        P&                  VV,          3# V\        P&                  J d   W¼3# V) V,          VV,          3# ^RIHp V! V	RR7      P                  4       w  ppV\        P&                  J d/   VV,          VV,          ,
          VV,          VV,          ,           3# V) V,          VV,          rËVV,          VV,          ,
          VV,          VV,          ,           3# )r   )ÚAbsÚimÚreNÚignore)Ú
expand_mulF)Údeep)rí   r   r!  r"  r   r2   r.   rë   r¡   r5   rª   r%   Ú	conjugateÚ	enumerater¢   ÚfuncÚgetrŸ   r³   r¥   Úfunctionr$  )rN   r%  Úhintsr   r!  r"  ÚotherÚcoeffrÚcoeffiÚaddtermsr<   r¾   rÒ   Úaconjr  rþ   ÚimcoÚrecor$  ÚaddreÚaddims   &&,                  r(   rë   ÚMul.as_real_imag\  s:  € ßDÑDØˆØˆØˆÜ—5‘5ˆØ—•ˆAØ—>‘>Ó#‰DˆAØ�y�yˆyØ—‘˜aÖ Ø——�Ø—‘˜a¤§¡Õ/Ö0Ø×!×!Ð!ß).˜Ÿ™œ°D�ä% eÖ,‘D�AØ–zØŸ™¡c¨!£f¨a¥iÔ0Ø!˜HÚñ	 -ð —x—x�xØ �šàŸ™ QŸà—‘˜Q—ñ) ð* �IŠI�uÑˆØ�9‰9�XÓ !Ô#ÙÜˆv‹;˜�?Œ?Ù�f—j‘j “mÓ$‰Dô —6‘6ˆDØ�yŠy˜6�?Ñ,ˆØ‘R˜“U•
˜D¡ A£�Jˆ1Ø�qŒ=Ø�AŒvØ—<—<�<Ø ¤!§&¡&˜>Ð)äŸF™F D¨¥IÐ.Ð.Ø”q—v‘v‹~Ø�v�Ø�E˜!•G˜T !�VÐ$Ð$Ý(Ù! (°Ô7×DÑDÓF‰ˆˆuØ”1—6‘6‹>Ø�e•G˜a �gÕ% q¨¥w°°5µÕ'8Ð9Ð9à�5˜•7˜D �FˆqØ�e•G˜a �gÕ% q¨¥w°°5µÕ'8Ð9Ð9r'   c           	     ó\  € \        V 4      pV^8X  d   V ^ ,          P                  # . p\        P                  V RV^,           4      p\        P                  W^,          R 4      pV UUu. uF  qT F  p\        WV4      NK  	  K  	  ppp\	        V!  p\        P
                  ! V4      # u uppi )zS
Helper function for _eval_expand_mul.

sums must be a list of instances of Basic.
N)rŸ   r.   r7   Ú_expandsumsr   rs   )ÚsumsÚLÚtermsÚleftÚrightr<   r‚   Úaddeds   &       r(   r7  ÚMul._expandsums“  s’   € ô �‹IˆØ�Œ6Ø˜•7—<‘<ÐØˆÜ�‰˜t E Q¨¥T˜{Ó+ˆÜ—‘ ¨¥T U Ó,ˆá$(Ô8¡D˜q²%¨Q”�Q–±%‘¡DˆÑ8Ü�U‘ˆÜ�}Š}˜UÓ#Ð#ùó 9s   Á*B(c                	ó  € ^ RI Hp T pV! W1P                  RR4      4      w  rEVP                  '       d:   WE3 Uu. uF)  pVP                  '       d   VP                  ! R/ VB MTNK+  	  upw  rEWE,          pVP                  '       g   V# . . Rr˜pVP
                   Fi  p
V
P                  '       d   VP                  V
4       Rp	K*  V
P                  '       d   VP                  V
4       KO  VP                  \        V
4      4       Kk  	  V	'       g   V# V P                  ! V!  pV'       dÜ   VP                  RR4      pV P                  P                  V4      p. pV F�  pV P                  W~4      pVP                  '       dg   \        ;QJ d&    R VP
                   4       F  '       g   K   RM	  RM! R VP
                   4       4      '       d   V'       d   VP	                  4       pVP                  V4       KŸ  	  \        V!  # V# u upi )r   ©ÚfractionÚexactFTr%  c              3  ó8   "  € T F  qP                   x € K  	  R # 5irF   )r¢   rH   s   & r(   rJ   Ú'Mul._eval_expand_mul.<locals>.<genexpr>Ê  s   é € Ð'A¹&°Q¯®»&ùrL   r   )Úsympy.simplify.radsimprA  r)  r"   Ú_eval_expand_mulr.   r¢   r5   r%   r
   r(  r7  r©   r   )rN   r+  rA  Úexprrá   r„   rÒ   Úplainr8  ÚrewriteÚfactorr%  r:  r.   Útermrˆ   s   &,              r(   rF  ÚMul._eval_expand_mul¦  s—  € Ý3ð ˆá˜Ÿi™i¨°Ó7Ó8‰ˆØ�8�8ˆ8à™ó!Ù�Að 45·8·8°8�A×&Ò&Ñ/¨Ò/ÀÒBÙñ!‰DˆAà�sˆØ�{�{ˆ{ØˆKà! 2 u�WˆØ—i”iˆFØ�}�}ˆ}Ø—‘˜FÔ#Ø’à×(×(Ð(Ø—L‘L Ö(à—K‘K¤ f£Ö.ñ  ÷ ØˆKà—I’I˜uÑ%ˆEßØ—y‘y ¨Ó/�ØŸ	™	×-Ñ-¨dÓ3�Ø�Û!�DØŸ	™	 %Ó.�AØ—x—x�x§C£CÑ'A¸!¿&º&Ó'A§C§C¢CÑ'A¸!¿&º&Ó'A×$AÒ$AÇdØ×.Ñ.Ó0˜Ø—K‘K –Nñ	 "ô
 ˜D‘zÐ!à�ùòA!s   ºHÁHc           
     	ó`  € \        V P                  4      p. p\        \        V4      4       Fj  pW$,          P	                  V4      pV'       g   K$  VP                  \        R  VRV V.,           W$^,           R ,           \        P                  4      4       Kl  	  \        P                  ! V4      # )c                ó   € W,          # rF   r   )r  Úys   &&r(   r  Ú&Mul._eval_derivative.<locals>.<lambda>Ú  s   € °¶r'   N)r1   r.   r´   rŸ   Údiffr5   r   r   r2   r   Úfromiter)rN   Úsr.   r:  rÒ   r„   s   &&    r(   Ú_eval_derivativeÚMul._eval_derivativeÑ  s…   € ä�D—I‘I‹ˆØˆÜ”s˜4“yÖ!ˆAØ•—‘˜Q“ˆAß‰qð —‘œVÑ$4°t¸B¸Q°xÀ1À#µ~ÈÐQRÍUÈVÈÕ7TÔWX×W\ÑW\Ó]Ö^ñ "ô �|Š|˜EÓ"Ð"r'   c                	ó¾  <€ ^RI Hp ^RIHpHpHp \        WV34      '       g   \        SV `!  W4      # ^RI	H
p V P                  p\        V4      p	\        V\        V34      '       dq   . p
^ RIHp V! W’4       FS  w  rÍ\!        \#        WÈ4       UUu. uF  w  rïVP%                  W34      NK  	  upp!  pV
P'                  VV,          4       KU  	  \)        V
!  # ^ RIHp ^ RIHp ^ RIHp V! RV	,          VR	7      pV\7        V4      ,
          pV! V4      pV\9        \;        VV4      4      ,          V! V4      ,          \!        \=        V	^,
          4       Uu. uF#  pVV,          P%                  WV,          34      NK%  	  up!  ,          VR
,          P%                  VV! ^ V4      34      ,          V Uu. uF  qî^ V3NK	  	  upppV! V.VO5!  # u uppi u upi u upi )r{   )ÚAppliedUndef)ÚSymbolÚsymbolsÚDummy)ÚInteger)Ú!multinomial_coefficients_iterator)ÚSum)Ú	factorial)ÚMaxzk1:%irö   r�   )r*  rW  ÚsymbolrX  rY  rZ  r—   ÚsuperÚ_eval_derivative_n_timesr  r[  r.   rŸ   ÚintÚsympy.ntheory.multinomialr\  r7   ÚziprQ  r5   r   Úsympy.concrete.summationsr]  Ú(sympy.functions.combinatorial.factorialsr^  Ú(sympy.functions.elementary.miscellaneousr_  ÚsumÚprodÚmapr´   )rN   rS  rá   rW  rX  rY  rZ  r[  r.   rþ   r:  r\  Úkvalsrd   ÚkÚargr¶   r]  r^  r_  ÚklastÚnfactrˆ   rƒ   ÚlÚ	__class__s   &&&                      €r(   rb  ÚMul._eval_derivative_n_timesÝ  sš  ø€ å*ß2Ñ2Ü˜!¨FÐ3×4Ò4ô ‘7Ñ3°AÓ9Ð9Ý$Ø�y‰yˆÜ�‹IˆÜ�aœ#˜w˜×(Ò(àˆEÝSÙ=¸aÖC‘�Ü¼¸UÔ9IÔJÑ9I©v¨q˜#Ÿ(™( A 6Ö*Ñ9IÒJÑK�Ø—‘˜Q �UÖ#ñ Dô ˜‘;ÐÝ1ÝFÝ@Ù˜ !�¨Ô/ˆØ”C˜“J•ˆÙ˜!“ˆà”$”s˜9 eÓ,Ó-Õ-©i¸Ó.>Õ>Ü´u¸Q¸q½S´zÓB±z°!�$�q•'—,‘, ¨¥8˜}Ö-±zÑBÑCõDà��H�M‰M˜1™c ! U›mÐ,Ó-õ.ñ !&Ó&¡˜1��A‹Y¡Ñ&ð	 ˆñ
 �1ˆz�q‹zÐùó Kùò Cùâ&s   ÂGÅ)G
Æ4Gc                	óÞ   € ^ RI Hp V P                  ^ ,          p\        V P                  R,          !  pVP	                  WV,           4      V! WQV4      ,          V! WAV4      V,          ,           # )r   )Údifference_deltar  )Úsympy.series.limitseqru  r.   r7   Úsubs)rN   rá   ÚstepÚddÚarg0Úrests   &&&   r(   Ú_eval_difference_deltaÚMul._eval_difference_deltaý  s[   € Ý@Ø�y‰y˜�|ˆÜ�D—I‘I˜b•MÑ"ˆØ—	‘	˜! �XÓ&©¨D°TÓ):Õ:¹RÀÈÓ=NØõ>õ ð 	r'   c                	óÚ   € V P                  4       w  r4\        P                  V4      p\        V4      ^8X  d4   V P                  P                  W4      pV^ ,          P                  WR4      # R# ©r{   N)r|   r7   rs   rŸ   rr  Ú_combine_inverseÚmatches)rN   rG  Ú	repl_dictrÅ   r:  Únewexprs   &&&   r(   Ú_matches_simpleÚMul._matches_simple  sW   € à×(Ñ(Ó*‰ˆÜ—‘˜eÓ$ˆÜˆu‹:˜Œ?Ø—n‘n×5Ñ5°dÓBˆGØ˜•8×#Ñ# GÓ7Ð7Ùr'   c                	óL  € \        V4      pV P                  '       d%   VP                  '       d   V P                  WV4      # V P                  VP                  Jd   R # V P                  4       w  rEVP                  4       w  rgWF3 Uu. uF  qˆ;'       g    ^.NK  	  upw  rF\	        V!  p	\	        V!  p
V	P                  W¢V4      pV'       g	   WF8w  d   R # \        P                  V4      p\        P                  V4      p\        P                  WWV4      pT;'       g    R # u upi rF   )r	   r%   Ú_matches_commutativer3   r7   r�  Ú_matches_expand_powsÚ_matches_noncomm)rN   rG  r‚  ÚoldÚc1Únc1Úc2Únc2rd   Úcomm_mul_selfÚcomm_mul_exprs   &&&&       r(   r�  ÚMul.matches  s  € Ü�t‹}ˆØ××Ð 4×#6×#6Ð#6Ø×,Ñ,¨T¸cÓBÐBØ× Ñ ¨×(;Ñ(;Ó;Ùð —-‘-“/‰ˆØ—-‘-“/‰ˆØ%'¡HÓ-¡H˜q—(�(˜�s’(¡HÑ-‰ˆô ˜R™ˆÜ˜R™ˆà!×)Ñ)¨-ÀCÓHˆ	÷ ˜RœXÙô ×&Ñ& sÓ+ˆÜ×&Ñ& sÓ+ˆä×(Ñ(¨°9Ó=ˆ	à× Ð ˜DÐ ùò) .s   ÂD!ÂD!c                	óâ   € . pV  Ff  pVP                   '       dA   VP                  ^ 8”  d0   VP                  VP                  .VP                  ,          4       KU  VP	                  V4       Kh  	  V# rh   )r­   Úexpr4   Úbaser5   )Úarg_listÚnew_argsrn  s   &  r(   rˆ  ÚMul._matches_expand_pows-  sR   € àˆÛˆCØ�z�zˆz˜cŸg™g¨œkØ—‘ §¡ 
¨S¯W©WÕ 4Ö5à—‘ Ö$ñ	 ð
 ˆr'   c                óÂ  € Vf   / pMVP                  4       p. pRpVw  rV/ pV\        V4      8  d®   V\        V 4      8  dž   W,          pVP                  '       d   \        P	                  Wt4       \        P                  WtW4      p	V	'       d1   V	w  r«VP                  V
4       V'       d   V F  pW¼,          W,&   K  	  V'       g   R# VP                  4       pVw  rVK½  V# )zÓNon-commutative multiplication matcher.

`nodes` is a list of symbols within the matcher multiplication
expression, while `targets` is a list of arguments in the
multiplication expression being matched against.
N)r   r   )ÚcopyrŸ   Úis_Wildr7   Ú_matches_add_wildcardÚ_matches_new_statesr4   r³   )ÚnodesÚtargetsr‚  ÚagendaÚstateÚnode_indÚ
target_indÚwildcard_dictÚnodeÚstates_matchesÚ
new_statesÚnew_matchesÚmatchs   &&&          r(   r‰  ÚMul._matches_noncomm7  sÏ   € ð ÒØ‰Ià!Ÿ™Ó(ˆIð ˆàˆØ$Ñˆàˆàœ3˜w›<Ô'¨H´s¸5³zÔ,AØ•?ˆDà�|�|ˆ|Ü×)Ñ)¨-Ô?ä ×4Ñ4°]Ø5:óEˆNçØ*8Ñ'�
Ø—‘˜jÔ)ßÛ!,˜Ø+6Õ+=˜	Ó(ñ "-çÙàŸ
™
›�Ø',Ñ$�™*àÐr'   c                	óF   € Vw  r#W 9   d   W,          w  rEWC3W&   R # W33W&   R # rF   r   )Ú
dictionaryr   r¡  r¢  ÚbeginÚends   &&    r(   r›  ÚMul._matches_add_wildcardb  s0   € à$ÑˆØÔ!Ø#Õ-‰JˆEØ$)Ð#6ˆJÓ à$.Ð#;ˆJÓ r'   c                	óF  € Vw  rEW$,          pW5,          pV\        V4      ^,
          8¼  d   V\        V4      ^,
          8  d   R# VP                  '       dÒ   \        P                  WW#4      pV'       d²   \        P	                  V W$4      p	V	 FN  p
W
,          w  r¼W,          w  rÞW;V^,            pW=V^,            p\        VV4       F  w  ppVV8w  g   K    R# 	  KP  	  WE^,           3.pV\        V4      ^,
          8  d"   VP                  V^,           V^,           34       VV3# R# V\        V4      ^,
          8¼  d   V\        V4      ^,
          8  d   R# VP                  V4      pV'       d   V^,           V^,           3.V3# Wg8X  d   V^,           V^,           3.R3# R# r  )rŸ   rš  r7   Ú_matches_match_wildsÚ_matches_get_other_nodesre  r5   r�  )r«  r   r�  rž  r¡  r¢  r¤  ÚtargetÚmatch_attemptÚother_node_indsÚindÚother_beginÚ	other_endÚ
curr_beginÚcurr_endÚother_targetsÚcurrent_targetsÚcurrr,  Ú	new_states   &&&&                r(   rœ  ÚMul._matches_new_statesk  s“  € à$ÑˆØ�ˆØÕ$ˆð œ˜W›¨Õ)Ô)¨h¼¸U»Àa½Ô.GÙà�<�<ˆ<Ü×4Ñ4°ZØ5:óEˆMçô #&×">Ñ">¸zØ?Dó#P�ã*�CØ-7­_Ñ*�KØ+5Õ+?Ñ(�Jà$+¸	ÀA½Ð$F�MØ&-¸ÀA½Ð&F�Oä'*¨?¸MÖ'J™˜˜eØ 5ž=Û#'ó (Kñ +ð '°Q­Ð7Ð8�	àœc %›j¨1�nÔ,Ø×$Ñ$ h°¥l°JÀµNÐ%CÔDØ  -Ð/Ð/ñ/ ð8 œ3˜u›:¨�>Ô)¨j¼3¸w»<È!Õ;KÔ.KÙà ŸL™L¨Ó0ˆMçØ! A� z°A¥~Ð6Ð7¸ÐFÐFØ”Ø! A� z°A¥~Ð6Ð7¸Ð=Ð=ár'   c                ó¢   € W!,          pW,          w  rVW5V^,            p\        V4      ^8”  d
   \        V!  MV^ ,          pVP                  V4      # )z@Determine matches of a wildcard with sub-expression in `target`.)rŸ   r7   r�  )	r«  Úwildcard_indr�  rž  Úwildcardr¬  r­  r:  Úmults	   &&&&     r(   r°  ÚMul._matches_match_wilds   sN   € ð Õ&ˆØÕ-‰
ˆØ˜c A�gÐ&ˆä! %›j¨1œnŒs�EŠ{°%¸µ(ˆØ×Ñ Ó%Ð%r'   c                ó^   € W,          pV  Uu. uF  qAV,          V8X  g   K  VNK  	  up# u upi )z8Find other wildcards that may have already been matched.r   )r«  r�  r¡  Úind_noderµ  s   &&&  r(   r±  ÚMul._matches_get_other_nodesª  s.   € ð •?ˆÙ)ÓD™z˜°3­Z¸8Ñ-C—�™zÑDÐDùÒDs   �*¡*c                ód  € ^ RI Hp ^RIHp W8X  d   \        P
                  # R pV! W4      '       g   V! W4      '       d   \        P
                  # \        ;QJ d    R W3 4       F  '       g   K   RM	  RM! R W3 4       4      '       Edr   V! R4      p\        P                  V/pV\        P                  /pV P                  V4      P                  4       pVP                  V4      P                  4       p	\        V	4      p
\        V	P                  4       4       FO  pW¸9   g   K  W‹;;,          V	P                  V4      ,          uu&   W‹,          '       d   K>  VP                  V4       KQ  	  \        V	4      V
8w  d�   \        VP                  4        UUu. uF  w  rÍWÍ,          NK  	  upp!  P                  V4      p \        V	P                  4        UUu. uF  w  rÍWÍ,          NK  	  upp!  P                  V4      pW,          pV! V4      pVP                   '       d   V# T# u uppi u uppi )z›
Returns lhs/rhs, but treats arguments like symbols, so things
like oo/oo return 1 (instead of a nan) and ``I`` behaves like
a symbol instead of sqrt(-1).
)Úsignsimp)rZ  c                ó°   € V P                   '       dD   VP                  '       d2   V P                  ^ 4      VP                  4       P                  ^ 4      8H  # R# )r   F)rî   Úis_comparableÚ__add__Úevalf)rq  r¾   s   &&r(   ÚcheckÚ#Mul._combine_inverse.<locals>.check¼  s<   € Ø�z�zˆz˜aŸoŸo˜oð —y‘y “| q§w¡w£y×'8Ñ'8¸Ó';Ñ;Ð;Ùr'   c              3  ó`   "  € T F$  qP                   ;'       g    VP                  x € K&  	  R # 5irF   )r­   r"   ©rI   rÒ   s   & r(   rJ   Ú'Mul._combine_inverse.<locals>.<genexpr>Å  s!   é € Ð8©Z¨�x‰x×#Ð#˜1Ÿ8™8Ô#«Zùó   ‚.™.TFÚI)Úsympy.simplify.simplifyrÈ  r`  rZ  r   r2   r©   rª   ÚxreplaceÚas_powers_dictrŸ   r  Úkeysr³   r7   r~   r#   )ÚlhsÚrhsrÈ  rZ  rÍ  r„   Ú_iÚi_r<   r‚   ÚblenrÁ   rm  Úvr½   Úsrvs   &&              r(   r€  ÚMul._combine_inverse°  s“  € õ 	5Ý!ØŒ:Ü—5‘5ˆLò	ñ ��?Š?™e CŸošoÜ—5‘5ˆLß‹3Ñ8¨c©ZÓ8�3�3Š3Ñ8¨c©ZÓ8×8Ó8ñ �c“
ˆAÜ—/‘/ 1Ð%ˆBØ”Q—_‘_Ð%ˆBØ—‘˜RÓ ×/Ñ/Ó1ˆAØ—‘˜RÓ ×/Ñ/Ó1ˆAÜ�q“6ˆDÜ˜AŸF™F›H–o�Ø–7Ø—E˜QŸU™U 2›YÕ&“EØŸ5ž5ØŸ™˜bž	ñ	 &ô
 �1‹v˜Œ~Ü¨Q¯W©W¬YÔ7©Y¡T Q˜AŸD˜D©YÒ7Ñ8×AÑAÀ"ÓE�Ü¨Q¯W©W¬YÔ7©Y¡T Q˜AŸD˜D©YÒ7Ñ8×AÑAÀ"ÓE�Ø�WˆÙ�r‹lˆØ—m—m�mˆsÐ+¨Ð+ùó	 8ùÛ7s   ÆH&
ÇH,
c                	óÀ   € \        \        4      pV P                   F>  pVP                  4       P	                  4        F  w  r4W;;,          V,          uu&   K  	  K@  	  V# rF   )r   rc  r.   rÖ  r~   )rN   r„   rK  r‚   rƒ   s   &    r(   rÖ  ÚMul.as_powers_dictÚ  sJ   € ÜœÓˆØ—I”IˆDØ×+Ñ+Ó-×3Ñ3Ö5‘�Ø—˜•	•ó 6ñ ð ˆr'   c           	     	óÂ   € \        \        V P                   Uu. uF  qP                  4       NK  	  up!  4      w  r#V P                  ! V!  V P                  ! V!  3# u upi rF   )r1   re  r.   rº   r(  )rN   rã   ÚnumersÚdenomss   &   r(   rº   ÚMul.as_numer_denomá  sR   € ô œcÀÇ	Â	Ó#JÁ	¸1×$4Ñ$4Ö$6Á	Ñ#JÑKÓL‰ˆØ�yŠy˜&Ñ! 4§9¢9¨fÑ#5Ð5Ð5ùò $Ks   ™Ac                	óH  € R p. p^ pV P                    F{  pVP                  4       w  rVVP                  '       g
   V^,          pVf   TpM3Wa8w  g   V^8”  g   VP                  '       g   V \        P
                  3u # VP                  V4       K}  	  V P                  ! V!  V3# rF   )r.   r¬   r%   r®   r   r2   r5   r(  )rN   rÍ   Úbasesrñ   rþ   r‚   rƒ   s   &      r(   r¬   ÚMul.as_base_expè  s�   € ØˆØˆØˆØ—”ˆAØ—=‘=“?‰DˆAØ×#×#Ð#Ø�a•�ØŠzØ‘Ø”˜B œF¨!¯,¯,¨,ØœQŸU™U�{Ò"Ø�L‰L˜ŽOñ ð �yŠy˜%Ñ  "Ð$Ð$r'   c                	ó    a€ \         ;QJ d)    V3R  lV P                   4       F  '       d   K   R# 	  R# ! V3R  lV P                   4       4      # )c              3  óD   <"  € T F  qP                  S4      x € K  	  R # 5irF   )Ú_eval_is_polynomial©rI   rK  Úsymss   & €r(   rJ   Ú*Mul._eval_is_polynomial.<locals>.<genexpr>ø  s   øé € ÐH¹i°d×+Ñ+¨D×1Ð1»iùó   ƒ FT©Úallr.   ©rN   rí  s   &fr(   rë  ÚMul._eval_is_polynomial÷  s4   ø€ ß‹sÔH¸d¿iºiÓH�sŒsÐHŠsÐHˆsÔH¸d¿iºiÓHÓHÐHr'   c                	ó    a€ \         ;QJ d)    V3R  lV P                   4       F  '       d   K   R# 	  R# ! V3R  lV P                   4       4      # )c              3  óD   <"  € T F  qP                  S4      x € K  	  R # 5irF   )Ú_eval_is_rational_functionrì  s   & €r(   rJ   Ú1Mul._eval_is_rational_function.<locals>.<genexpr>û  s   øé € ÐOÁY¸T×2Ñ2°4×8Ð8ÃYùrï  FTrð  rò  s   &fr(   rö  ÚMul._eval_is_rational_functionú  s4   ø€ ß‹sÔOÀTÇYÂYÓO�sŒsÐOŠsÐOˆsÔOÀTÇYÂYÓOÓOÐOr'   c                	óJ   aa€ \        VV3R  lV P                   4       RR7      # )c              3  óF   <"  € T F  qP                  SS4      x € K  	  R # 5irF   )Úis_meromorphic)rI   rn  r<   r  s   & €€r(   rJ   Ú+Mul._eval_is_meromorphic.<locals>.<genexpr>þ  s   øé € ÐKÁ¸#×/Ñ/°°1×5Ð5Ãùs   ƒ!T©Ú
quick_exit©r   r.   )rN   r  r<   s   &ffr(   Ú_eval_is_meromorphicÚMul._eval_is_meromorphicý  s   ù€ ÜÕKÀÇÂÓKØ'+ô-ð 	-r'   c                	ó    a€ \         ;QJ d)    V3R  lV P                   4       F  '       d   K   R# 	  R# ! V3R  lV P                   4       4      # )c              3  óD   <"  € T F  qP                  S4      x € K  	  R # 5irF   )Ú_eval_is_algebraic_exprrì  s   & €r(   rJ   Ú.Mul._eval_is_algebraic_expr.<locals>.<genexpr>  s   øé € ÐLÁ)¸$×/Ñ/°×5Ð5Ã)ùrï  FTrð  rò  s   &fr(   r  ÚMul._eval_is_algebraic_expr  s4   ø€ ß‹sÔLÀ$Ç)Â)ÓL�sŒsÐLŠsÐLˆsÔLÀ$Ç)Â)ÓLÓLÐLr'   c                	ó:   € \        R  V P                   4       4      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irF   )r%   rH   s   & r(   rJ   ÚMul.<lambda>.<locals>.<genexpr>  s   é € ð 5-Ù"+˜Q×Ö£)ùrL   rÿ  r_   s   &r(   r  ÚMul.<lambda>  s   € ¬ñ 5-Ø"&§)¢)ó5-ô )-r'   c                	óŠ  € \        R  V P                   4       4      pVRJ d¡   \        ;QJ d&    R V P                   4       F  '       g   K   RM	  RM! R V P                   4       4      '       dS   \        ;QJ d&    R V P                   4       F  '       g   K   RM	  RM! R V P                   4       4      '       d   R# R# V# )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irF   )Ú
is_complexrH   s   & r(   rJ   Ú'Mul._eval_is_complex.<locals>.<genexpr>  s   é € Ð<±)¨QŸLžL³)ùrL   Fc              3  ó8   "  € T F  qP                   x € K  	  R # 5irF   )Úis_infiniterH   s   & r(   rJ   r  
  s   é € Ð4©) Q—=–=«)ùrL   Tc              3  ó<   "  € T F  qP                   R Jx € K  	  R# 5ir™   ©r¡   rH   s   & r(   rJ   r    s   é € ÐA±y°!—y‘y¨Õ-³yùó   ‚N)r   r.   r©   )rN   Úcomps   & r(   Ú_eval_is_complexÚMul._eval_is_complex  sz   € ÜÑ<°$·)²)Ó<Ó<ˆØ�5‹=ß‹sÑ4¨$¯)ª)Ó4�s�sŠsÑ4¨$¯)ª)Ó4×4Ò4ß“3ÑA°t·y²yÓA—3—3’3ÑA°t·y²yÓA×AÒAÙÙØˆr'   c                	ó<  € R ;rV P                    F‡  pVP                  '       d   VR Jd   Ru # RpK#  VP                  '       d   VR Jd   Ru # RpKC  VR J d   VP                  f   VR Jd   Ru # RpVR J g   Kk  VP                  e   K{  VR Jd   Ru # RpK‰  	  W3# )FNT)NN)r.   r¡   r  )rN   Ú	seen_zeroÚseen_infiniter<   s   &   r(   Ú_eval_is_zero_infinite_helperÚ!Mul._eval_is_zero_infinite_helper  s¦   € ðX %*Ð)ˆ	à—”ˆAØ�y�yˆyØ ¨Ó-Ø%Ò%Ø ’	Ø——�Ø EÓ)Ø%Ò%Ø $’à Ó%¨!¯)©)Ò*;Ø$¨EÓ1Ø)Ò)Ø $�IØ  EÕ)¨a¯m©mÔ.CØ ¨Ó-Ø)Ò)Ø$(’Mñ# ð& Ð'Ð'r'   c                	óV   € V P                  4       w  rVR J d   R # VRJ d	   VR J d   R# R# )FTN©r  ©rN   r  r  s   &  r(   Ú_eval_is_zeroÚMul._eval_is_zeroS  s5   € ð $(×#EÑ#EÓ#GÑ ˆ	à˜ÓÙØ˜$Ó =°EÓ#9Ùár'   c                	óV   € V P                  4       w  rVR J d	   VRJ d   R # VRJ d   R# R# )TFNr  r  s   &  r(   Ú_eval_is_infiniteÚMul._eval_is_infinite_  s5   € ð $(×#EÑ#EÓ#GÑ ˆ	à˜DÓ  Y°%Ó%7ÙØ˜eÓ#Ùár'   c                	ó  € \        R  V P                   4       RR7      pV'       d   V# VRJ dS   \        ;QJ d&    R V P                   4       F  '       d   K   RM	  RM! R V P                   4       4      '       d   R# R# R# )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irF   )Úis_rationalrH   s   & r(   rJ   Ú(Mul._eval_is_rational.<locals>.<genexpr>o  s   é € Ð;±¨AŸ-ž-³ùrL   Trý  Fc              3  ó<   "  € T F  qP                   R J x € K  	  R# 5ir™   r  rH   s   & r(   rJ   r'  t  ó   é € Ð9©y¨!—9‘9 Õ%«yùr  N©r   r.   rñ  ©rN   r¾   s   & r(   Ú_eval_is_rationalÚMul._eval_is_rationaln  s]   € ÜÑ;°·²Ó;ÈÔMˆßØˆHØ�%‹Zç‹sÑ9¨t¯yªyÓ9�s�sŠsÑ9¨t¯yªyÓ9×9Ò9Ùñ :ñ r'   c                	ó  € \        R  V P                   4       RR7      pV'       d   V# VRJ dS   \        ;QJ d&    R V P                   4       F  '       d   K   RM	  RM! R V P                   4       4      '       d   R# R# R# )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irF   )Úis_algebraicrH   s   & r(   rJ   Ú)Mul._eval_is_algebraic.<locals>.<genexpr>x  s   é € Ð<±)¨QŸ.ž.³)ùrL   Trý  Fc              3  ó<   "  € T F  qP                   R J x € K  	  R# 5ir™   r  rH   s   & r(   rJ   r1  }  r)  r  Nr*  r+  s   & r(   Ú_eval_is_algebraicÚMul._eval_is_algebraicw  s]   € ÜÑ<°$·)²)Ó<ÈÔNˆßØˆHØ�%‹Zç‹sÑ9¨t¯yªyÓ9�s�sŠsÑ9¨t¯yªyÓ9×9Ò9Ùñ :ñ r'   c                	óL  a€ V P                  4       pVR J d   R # . p. pR pV P                   EFš  pR pVP                  '       d3   \        V4      \        P
                  Jd   VP                  V4       KH  KJ  VP                  '       dj   VP                  4       w  rx\        V4      \        P
                  Jd   VP                  V4       V\        P
                  Jd   VP                  V4       KÃ  KÅ  VP                  '       dÄ   VP                  4       w  ršV	P                  '       d   V
P                  '       g   R;rdV
P                  '       dC   TP                  V\        P                  J d   ^M\        V\        P                  4      4       EKd  V'       g,   V
P                  '       d   Q hV
P                   '       d   Q h R#  R#  R# 	  V'       g   V'       g   R# R pR pR p^RIHo V'       gK   V'       dC   \&        ;QJ d    V3R lV 4       F  '       d   K   R M	  RM! V3R lV 4       4      '       d   R # V'       d   R# V! V4      '       d   V! V4      '       d   R # V! V4      '       d   V^.8X  d   R# V! V4      '       d3   V! V4      '       d%   \)        VRR / ^,
          P                  '       d   R # \+        V4      ^8X  dœ   V^ ,          pVP,                  '       d�   VP.                  '       do   \1        V Uu. uF.  pVP.                  '       g   K  VP                  4       ^,          NK0  	  up!  \3        VP4                  4      ,
          P6                  '       d   R# \+        V4      ^8X  d¢   V^ ,          pVP,                  '       d…   VP.                  '       dq   \1        V Uu. uF.  pVP.                  '       g   K  VP                  4       ^,          NK0  	  up!  \3        VP4                  4      ,
          P                  '       d   R # R# R# R# R# u upi u upi )	FTNc                ój   € \         ;QJ d    R  V  4       F  '       d   K   R# 	  R# ! R  V  4       4      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irF   )Úis_oddrÐ  s   & r(   rJ   Ú9Mul._eval_is_integer.<locals>.<lambda>.<locals>.<genexpr>¬  s   é € Ð3±¨AŸxžx³ùrL   FT©rñ  ©r  s   &r(   r  Ú&Mul._eval_is_integer.<locals>.<lambda>¬  s'   € Ÿ3›3Ñ3±Ó3Ÿ3œ3Ð3š3Ð3˜3Ñ3±Ó3Ô3r'   c                ój   € \         ;QJ d    R  V  4       F  '       d   K   R# 	  R# ! R  V  4       4      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irF   ©Úis_evenrÐ  s   & r(   rJ   r9  ­  ó   é € Ð5±1¨a§	¦	³1ùrL   FTr:  r;  s   &r(   r  r<  ­  ó'   € ŸC›CÑ5±1Ó5ŸCœCÐ5šCÐ5˜CÑ5±1Ó5Ô5r'   c                ój   € \         ;QJ d    R  V  4       F  '       g   K   R# 	  R# ! R  V  4       4      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irF   r?  rÐ  s   & r(   rJ   r9  ®  rA  rL   TF)r©   r;  s   &r(   r  r<  ®  rB  r'   )Úis_gtc              3  óR   <"  € T F  pS! V\         P                  4      x € K  	  R # 5irF   )r   r2   )rI   rw   rE  s   & €r(   rJ   Ú'Mul._eval_is_integer.<locals>.<genexpr>±  s    øé € ð 37Ù)5 A‘�aœŸ™—�«ùs   ƒ$'rQ   )r,  r.   r²   rì   r   r2   r5   r    rº   r­   r¬   r°   r«   r¯   rk   r±   r¡   Ú
relationalrE  rñ  r7   rŸ   r®   r@  r   r   r¶   Úis_nonnegative)rN   r&  Ú
numeratorsÚdenominatorsÚunknownr<   Úhitrá   r„   r‚   rƒ   ÚalloddÚallevenÚanyevenrÒ   rE  s   &              @r(   Ú_eval_is_integerÚMul._eval_is_integerƒ  s/  ø€ Ø×,Ñ,Ó.ˆØ˜%ÓÙàˆ
ØˆØˆØ—•ˆAØˆCØ�|�|ˆ|Ü�q“6¤§¡Ó&Ø×%Ñ% aÖ(ñ 'à——�Ø×'Ñ'Ó)‘�Ü�q“6¤§¡Ó&Ø×%Ñ% aÔ(ØœAŸE™E“>Ø ×'Ñ'¨Ö*ñ "à——�Ø—}‘}“‘�Ø—|—|�|¨1¯<¯<¨<Ø$(Ð(�CØ—=—=�=Ø ×'Ñ'¨Q´!·&±&«[©Ü˜AœqŸ}™}Ó-÷/çà Ÿ}Ÿ}˜}Ð,Ð,à ŸyŸy˜yÐ(˜=Úò âñ9 ÷< §GÙá3ˆÙ5ˆÙ5ˆå%ßŸl¯s«sô 37Ù)5ó37¯s¯sªsô 37Ù)5ó37÷ 07ò 07áßÙÙ�J×Ò¡G¨L×$9Ò$9ÙÙ�Z× Ò  \°a°SÔ%8ÙÙ�Z× Ò ¡V¨L÷ &ò &Ü˜LÐ9°5Ñ9¸AÕ=ß‘+öáÜˆ|Ó Ô!Ø˜Q•ˆAØ�|�|ˆ| §	§	 	ô Ù"ó1Ù"ð 23Ø&'§i¥iô -˜!Ÿ-™-›/¨!×,Ð,Ù"ñ1ñ 2Ü4<¸Q¿S¹S³MõBç(™.ö)ñ  Üˆz‹?˜aÔØ˜1•ˆAØ�|�|ˆ| §	§	 	ô Ù$ó3Ù$ð 23Ø()¯	­	ô -˜!Ÿ-™-›/¨!×,Ð,Ù$ñ3ñ 4Ü6>¸q¿s¹s³mõDç%™+ö&ñ !ñ&ñ !*‰|ñ  ùò	1ùò3s   ÌPÌPÎ/P!ÏP!c                	ó6  € \         ;QJ d&    R  V P                   4       F  '       g   K   RM	  RM! R  V P                   4       4      pT;'       dI    \        ;QJ d&    R V P                   4       F  '       d   K   R# 	  R# ! R V P                   4       4      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irF   )Úis_polar©rI   rn  s   & r(   rJ   Ú%Mul._eval_is_polar.<locals>.<genexpr>Ò  s   é € Ð:±	¨Ÿž³	ùrL   TFc              3  ó`   "  € T F$  qP                   ;'       g    VP                  x € K&  	  R # 5irF   )rU  r±   rV  s   & r(   rJ   rW  Ô  s!   é € ÐE¹9°C—‘×/Ð/ §¡Ô/»9ùrÒ  )r©   r.   rñ  )rN   Ú	has_polars   & r(   Ú_eval_is_polarÚMul._eval_is_polarÑ  su   € ß“CÑ:°·	²	Ó:—C—C’CÑ:°·	²	Ó:Ó:ˆ	Ø÷ Fð Fß‹CÑE¸4¿9º9ÓE�CŒCð	FÚð	FØÑE¸4¿9º9ÓEÓEð	Fr'   c                	ó$   € V P                  R 4      # ©T)Ú_eval_real_imagr_   s   &r(   Ú_eval_is_extended_realÚMul._eval_is_extended_realÖ  s   € Ø×#Ñ# DÓ)Ð)r'   c                	ó0  € R pRpV P                    EF.  pVP                  ;'       g    VP                  R J d   VP                  R J d    R # VP                  '       d
   V'       * pKV  VP                  '       d‡   V'       g}   VP
                  pV'       g   VR J d   TpKŽ  V'       dU   \        ;QJ d&    R V P                    4       F  '       d   K   R M	  RM! R V P                    4       4      '       d    R#  R# Kì  Kî  VP                  R J d   V'       d    R# TpEK  VP                  R J d   V'       d    R# TpEK.   R# 	  V'       d9   VP                  R J d   V'       d   V# VP                  R J d   V'       g   V# R# R# VR J d   V# V'       d   V# R# )FNc              3  ó8   "  € T F  qP                   x € K  	  R # 5irF   rš   rH   s   & r(   rJ   Ú&Mul._eval_real_imag.<locals>.<genexpr>è  s   é € Ð>±I¨qŸ{ž{³IùrL   T)r.   r  r  r»   rê   r¡   rñ  )rN   ÚrealÚzeroÚt_not_re_imrˆ   Úzs   &&    r(   r^  ÚMul._eval_real_imagÙ  s@  € ØˆØˆà—•ˆAØ—‘×-Ð- §¡°%Ó7¸A×<NÑ<NÐRWÓ<WÚØ——�Ø”x’Ø×#×#Ð#ßØŸ	™	�Aß ¨£Ø šßß›3Ñ>°D·I²IÓ>Ÿ3Ÿ3š3Ñ>°D·I²IÓ>×>Ò>Ú#'Úñ ñ	 ð ×#Ñ# uÓ,çÚØ“Ø—‘ 5Ó(ßÚØ“âñ1 ÷4 Ø×+Ñ+¨uÓ4ßØ�KØ×'Ñ'¨5Ó0ßØ�Kñ ñ 1ð �U‹]ØˆKßØˆKñ r'   c                	óÄ   € \         ;QJ d&    R  V P                   4       F  '       d   K   RM	  RM! R  V P                   4       4      '       d   V P                  R4      # R# )c              3  ód   "  € T F&  qP                   R J ;'       d    VP                  x € K(  	  R# 5ir™   )r¡   r›   rH   s   & r(   rJ   Ú)Mul._eval_is_imaginary.<locals>.<genexpr>  s&   é € ÐE¹9°a�y‰y˜EÐ!×1Ð1 a§k¡kÔ1»9ùs   ‚0›0FTN)rñ  r.   r^  r_   s   &r(   Ú_eval_is_imaginaryÚMul._eval_is_imaginary  sB   € ß‹3ÑE¸4¿9º9ÓE�3�3Š3ÑE¸4¿9º9ÓE×EÒEØ×'Ñ'¨Ó.Ð.ñ Fr'   c                	ó$   € V P                  R 4      # r]  ©Ú_eval_herm_antihermr_   s   &r(   Ú_eval_is_hermitianÚMul._eval_is_hermitian  s   € Ø×'Ñ'¨Ó-Ð-r'   c                	ó$   € V P                  R 4      # rb   ro  r_   s   &r(   Ú_eval_is_antihermitianÚMul._eval_is_antihermitian
  s   € Ø×'Ñ'¨Ó.Ð.r'   c                	ó  € V P                    FR  pVP                  e   VP                  f    R # VP                  '       d   K6  VP                  '       d
   V'       * pKQ   R # 	  VRJd   V# V P                  4       pV'       d   R# VRJ d   V# R # )NFT)r.   Úis_hermitianÚis_antihermitianr  )rN   Úhermrˆ   r¡   s   &&  r(   rp  ÚMul._eval_herm_antiherm  s   € Ø—”ˆAØ�~‰~Ò%¨×);Ñ);Ò)CÚØ�~�~ˆ~ÙØ×#×#Ð#Ø”x’âñ ð �uÓØˆKà×$Ñ$Ó&ˆßÙØ˜ÓØˆKñ r'   c                	óÎ  € V P                    F„  pVP                  pV'       dg   \        V P                   4      pVP                  V4       \        ;QJ d    R  V 4       F  '       d   K   RM	  RM! R  V 4       4      '       d    R#  R# Ve   Kƒ   R# 	  \        ;QJ d&    R V P                    4       F  '       d   K   RM	  RM! R V P                    4       4      '       d   R# R# )c              3  óv   "  € T F/  qP                   ;'       d    \        VP                  4      R J x € K1  	  R# 5i)TN)r&  r   r¡   ©rI   r  s   & r(   rJ   Ú*Mul._eval_is_irrational.<locals>.<genexpr>'  s*   é € ÐXÑQWÈAŸ™×>Ð>¬)°A·I±IÓ*>À4ÕGÓQWùs   ‚9™ 9FTNc              3  ó8   "  € T F  qP                   x € K  	  R # 5irF   )Úis_realr}  s   & r(   rJ   r~  ,  s   é € Ð,¡)˜Q�yŽy£)ùrL   )r.   Úis_irrationalr1   Úremoverñ  )rN   rˆ   r<   Úotherss   &   r(   Ú_eval_is_irrationalÚMul._eval_is_irrational!  s™   € Ø—”ˆAØ—‘ˆAßÜ˜dŸi™i›�Ø—‘˜aÔ ß“3ÑXÑQWÓX—3—3’3ÑXÑQWÓX×XÒXÚÚØŒyÚñ ÷ ‹3Ñ, $§)¢)Ó,�3�3Š3Ñ, $§)¢)Ó,×,Ò,Ùñ -r'   c                ó$   € V P                  ^4      # )a3  Return True if self is positive, False if not, and None if it
cannot be determined.

Explanation
===========

This algorithm is non-recursive and works by keeping track of the
sign which changes when a negative or nonpositive is encountered.
Whether a nonpositive or nonnegative is seen is also tracked since
the presence of these makes it impossible to return True, but
possible to return False if the end result is nonpositive. e.g.

    pos * neg * nonpositive -> pos or zero -> None is returned
    pos * neg * nonnegative -> neg or zero -> False is returned
©Ú_eval_pos_negr_   s   &r(   Ú_eval_is_extended_positiveÚMul._eval_is_extended_positive/  s   € ð  ×!Ñ! !Ó$Ð$r'   c                	óv  € R ;r#V P                    EF  pVP                  '       d   K  VP                  '       d   V) pK/  VP                  '       dU   \        ;QJ d&    R V P                    4       F  '       d   K   R M	  RM! R V P                    4       4      '       d    R #  R# VP
                  '       d   V) pRpK®  VP                  '       d   RpKÄ  VP                  R J d   V) pV'       d    R# RpKæ  VP                  R J d   V'       d    R# RpEK   R# 	  V^8X  d   VR J d	   VR J d   R# V^ 8  d   R # R# )Fc              3  ó8   "  € T F  qP                   x € K  	  R # 5irF   rš   rH   s   & r(   rJ   Ú$Mul._eval_pos_neg.<locals>.<genexpr>I  s   é € Ð6©I q—{–{«IùrL   TN)	r.   r�   rc   r¡   rñ  Úis_extended_nonpositiveÚis_extended_nonnegativer±   r°   )rN   ré   Úsaw_NONÚsaw_NOTrˆ   s   &&   r(   rˆ  ÚMul._eval_pos_negA  sþ   € Ø!Ð!ˆØ—•ˆAØ×%×%Ð%ÙØ×'×'Ð'Ø�u’Ø——�ß“3Ñ6¨D¯IªIÓ6—3—3’3Ñ6¨D¯IªIÓ6×6Ò6Ú ÚØ×*×*Ð*Ø�u�Ø’Ø×*×*Ð*Ø’ð —‘ %Ó'Ø�u�ßÚØ’Ø—‘ %Ó'ßÚØ“âñ7 ð8 �1Œ9˜ EÓ)¨g¸Ó.>ÙØ�!Œ8Ùñ r'   c                	ó$   € V P                  R4      # rŽ   r‡  r_   s   &r(   Ú_eval_is_extended_negativeÚMul._eval_is_extended_negatived  s   € Ø×!Ñ! "Ó%Ð%r'   c                	ó¸  € V P                  4       pVR Jd   V# ^ RIHp V! V 4      w  r4VP                  '       d–   VP                  '       d„   \        \        P                  V4       Uu. uF.  pVP                  '       g   K  VP                  4       ^,          NK0  	  up!  \        VP                  4      ,
          P                  '       d   R# R# R ^rvV P                   Fr  p\        V4      \        P                  J d   K"  VP                  '       d    R# VRJ d   M2V^8w  d   Wx,           P                   '       d   RpMVP                  f   RpTpKt  	  V# u upi )Tr@  FN)rQ  rE  rA  r®   r@  r   r7   rs   r¬   r   r¶   r±   r.   rì   r   r2   r8  )	rN   r²   rA  rá   r„   rÒ   r¾   Úaccrˆ   s	   &        r(   Ú_eval_is_oddÚMul._eval_is_oddg  s  € Ø×*Ñ*Ó,ˆ
Ø˜TÓ!ØÐå3Ù˜‹~‰ˆØ�<�<ˆ<˜AŸIŸI˜Iô Ü—M‘M !Ô$ó3Ù$ð ./Ø()¯	­	ô )�a—m‘m“o a×(Ð(Ù$ñ3ñ 4Ü6>¸q¿s¹s³mõDç!‘kö"ñ ÙØ�qˆ3Ø—”ˆAÜ�1‹vœŸ™‹ÙØ�y�yˆyÚØ�E‹zØØ˜”˜s�w×.×.Ð.Ø‘Ø—‘Ò"Ø�ØŠCñ ð ˆùò%3s   Á)EÂEc                	ó‚  € ^ RI Hp V! V 4      w  r#VP                  '       d˜   VP                  '       d„   \	        \
        P                  V4       Uu. uF.  pVP                  '       g   K  VP                  4       ^,          NK0  	  up!  \        VP                  4      ,
          P                  '       d   R# R# R# R# u upi )r   r@  FN)rE  rA  r®   r@  r   r7   rs   r¬   r   r¶   rI  )rN   rA  rá   r„   rÒ   s   &    r(   Ú_eval_is_evenÚMul._eval_is_even…  sš   € Ý3Ù˜‹~‰ˆØ�<�<ˆ<˜AŸIŸI˜Iô Ü—M‘M !Ô$ó3Ù$ð ./Ø()¯	­	ô )�a—m‘m“o a×(Ð(Ù$ñ3ñ 4Ü6>¸q¿s¹s³mõDç$‘nö%ñ ñ%ñ	 &‰<ùò3s   ÁB<Á*B<c                óØ   € ^ pV P                    FN  pVP                  '       d   VP                  '       g    R# V^,
          P                  '       g   KE  V^,          pKP  	  V^8”  d   R# R# )zÄ
Here we count the number of arguments that have a minimum value
greater than two.
If there are more than one of such a symbol then the result is composite.
Else, the result cannot be determined.
NT)r.   r²   r±   )rN   Únumber_of_argsrn  s   &  r(   Ú_eval_is_compositeÚMul._eval_is_composite‘  sW   € ð ˆØ—9”9ˆCØ—N—N�N s§§ ÚØ�A•×"×"Ò"Ø !Õ#’ñ	 ð ˜AÔÙñ r'   c           	     	óÂ  a(a)a*a+a,€ ^ RI Ho, ^ RIHp ^ RIHo+ ^ RIHp VP                  '       g   R# VP                  ^ ,          P                  '       dj   VP                  ^ ,          ^ 8  dR   V P                  ^ ,          P                  '       d/   V P                  ^ ,          ^ 8  d   V P                  V) V) 4      # R# R o(V(V+3R lpV(3R lpR	 pRpV! V 4      w  ršT pV
\        P                  JdS   V	P                  W4      V
P                  W4      ,          pVP                  '       g   VP                  W4      # W°8w  d   TpVP                  ^ ,          pVP                  ^ ,          pRpVP                  '       d+   VP                  '       d   WÜ8w  d   VP                  V4      pMVP                  '       d   V# V! V4      w  o)pV! V4      w  o*pV'       d�   VP                  '       do   \!        V4      ^8w  d_   \        V! \!        V4      V4      4      pS)P#                  V4       VS)9   d   S)V;;,          V,          uu&   MVS)V&   WÍV,          ,          pM^pR
p\%        V4      \%        V4      8”  d   RpMÖ\%        S*4      \%        S)4      8”  d   RpMºV Uu0 uF  pV^ ,          kK  	  upP'                  V Uu0 uF  pV^ ,          kK  	  up4      '       d   RpMr\)        S*4      P'                  \)        S)4      4      '       d   RpMF\*        ;QJ d!    V)V*V,3R lS* 4       F  '       g   K   R
M	  RM! V)V*V,3R lS* 4       4      '       d   RpV'       g   V# S*'       g   RpM[. pS*P-                  4        F:  w  ppS)V,          pVP/                  V! VV4      4       VR,          '       d   K8  Vu # 	  \1        V4      pV'       g0   Rp\3        \%        V4      4       F  pV! VV,          !  VV&   K  	  EM}^ p\%        V4      pT;'       g    \        P4                  p. p^ pV'       Edô   VV,           \%        V4      8:  EdÜ   Rp. p\3        V4       EF  pVVV,           ,          ^ ,          VV,          ^ ,          8w  d    EMvV^ 8X  d=   VP/                  V! VVV,           ,          ^,          VV,          ^,          4      4       MˆVV^,
          8X  d=   VP/                  V! VVV,           ,          ^,          VV,          ^,          4      4       M>VVV,           ,          ^,          VV,          ^,          8w  d    EM¼VP/                  ^4       V^,          pEK  	  \1        V4      p V '       EdŠ   V^8X  dl   V'       d   \1        VV 4      p \7        VV 4      V! VV,          ^ ,          VV,          ^,          V V^ ,          ^,          ,          ,
          4      ,          VV&   EM^p V! VV,          ^ ,          VV,          ^,          V V^ ,          ^,          ,          ,
          4      p!Tp"VV,           ^,
          p#VV#,          ^ ,          VV#,          ^,          V VR,          ^,          ,          ,
          3p$V$^,          '       dP   VV,           \%        V4      8  d   V!V",          V$.VVVV,           % M6V! V$!  p$V!V",          V$,          .VVVV,           % MV!V",          .VVVV,           % VV ,          pVV ,          pR
pV'       g   VP/                  V4       V^,          pEKü  V'       g   V# VP9                  \3        V\%        V4      4      4       V F"  pV! VV,          !  P;                  W4      VV&   K$  	  Vf   Tp%MVf   Tp%M\1        VV4      p%. p&S) Fp  pVS*9   d9   S)V,          S*V,          V%,          ,
          p'V&P/                  V! VV'4      4       KB  V&P/                  V! VP;                  W4      S)V,          4      4       Kr  	  V'       d   V'       g   \7        VV4      .V&,           p&VVP<                  ! V&!  ,          VP<                  ! V!  ,          # u upi u upi )r   rè   )Úmultiplicity)Ú	powdenestr@  Nc                ó˜   € ^ RI Hp V P                  '       g   \        W4      '       d   V P	                  4       # V \
        P                  3# )r   )r“  )Ú&sympy.functions.elementary.exponentialr“  r­   r—   r¬   r   r2   )r<   r“  s   & r(   Úbase_expÚ Mul._eval_subs.<locals>.base_exp²  s4   € õ CØ�x�xˆxœ: a×-Ò-Ø—}‘}“Ð&Ø”a—e‘e�8ˆOr'   c                ón  <€ \        \        4      . r!\        P                  V 4       F‰  pS	! V4      pS! V4      w  rEV\        P
                  Jd'   VP                  4       w  rg\        WEV,          4      pTpVP                  '       d   W;;,          V,          uu&   Kw  VP                  WE.4       K‹  	  W3# )zÁbreak up powers of eq when treated as a Mul:
   b**(Rational*e) -> b**e, Rational
commutatives come back as a dictionary {b**e: Rational}
noncommutatives come back as a list [(b**e, Rational)]
)
r   rc  r7   rs   r   r2   ri   r¯   r%   r5   )
Úeqrd   rñ   r<   r‚   rƒ   r;   rw   r¦  r£  s
   &       €€r(   ÚbreakupÚMul._eval_subs.<locals>.breakup»  s‘   ø€ ô #¤3Ó'¨�Ü—]‘] 2Ö&�Ù˜a“L�Ù! !›‘�ØœAŸE™E“>ØŸn™nÓ.‘G�RÜ˜A �t›�AØ�AØ×#×#Ð#Ø—D˜A•I•Dà—I‘I˜q˜fÖ%ñ 'ð �7ˆNr'   c                ó<   <€ S! V 4      w  r\        WV,          4      # )zŠ
Put rational back with exponent; in general this is not ok, but
since we took it from the exponent for analysis, it's ok to put
it back.
©r¯   )r‚   r;   rƒ   r¦  s   && €r(   ÚrejoinÚMul._eval_subs.<locals>.rejoinÐ  s   ø€ ñ ˜a“[‰FˆQÜ�q˜B�$“<Ðr'   c                ó´   € VP                   V P                   ,          '       d$   V P                   VP                   ,          '       g   \        W,          4      # ^ # )z®if b divides a in an extractive way (like 1/4 divides 1/2
but not vice versa, and 2/5 does not divide 1/3) then return
the integer number of times it divides, else return 0.
)rµ   rc  )r<   r‚   s   &&r(   ÚndivÚMul._eval_subs.<locals>.ndivÚ  s3   € ð
 —3‘3˜Ÿ™—9”9 A§C¡C¨!¯#©#§I¤IÜ˜1�3“x�Ùr'   TFc              3  ób   <"  € T F$  pS! SV,          4      S! SV,          4      8g  x € K&  	  R # 5irF   r   )rI   r‚   rd   Úold_cré   s   & €€€r(   rJ   Ú!Mul._eval_subs.<locals>.<genexpr>$  s&   øé € Ð=±u°!‘�a˜•d“™t E¨!¥H›~Ö-³uùs   ƒ,/r�   )rí   ré   Úsympy.ntheory.factor_r¢  Úsympy.simplify.powsimpr£  rE  rA  r"   r.   r#   Ú_subsr   r2   r    Úextract_multiplicativelyrì   r³   rŸ   Ú
differenceÚsetr©   r~   r5   Úminr´   ru   r¯   r4   rw  r(  )-rN   rŠ  Únewr¢  rA  rª  r®  r±  r½   rá   r„   Úself2Úco_selfÚco_oldÚco_xmulrñ   Úold_ncrÂ  Úco_residualÚokrÒ   ÚcdidÚratr‚   Úold_eÚc_eÚncdidÚtakeÚlimitÚfailedrM  rÜ   Úndorq  ÚmidÚirr¾   ÚdoÚmargsrƒ   r¦  rd   r´  r£  ré   s-   &&&                                     @@@@@r(   Ú
_eval_subsÚMul._eval_subs¢  s»  ü€ Ý=Ý6Ý4Ý3à�z�zˆzÙð �8‰8�A�;× × Ð  S§X¡X¨a¥[°1¤_Ø�y‰y˜�|×%×%Ð%Ø—9‘9˜Q•< !Ô#ØŸ:™: s d¨S¨DÓ1Ð1Ùò	ö	õ*	 ò	ð ˆÙ˜‹~‰ˆØˆØ”A—E‘E‹>Ø—G‘G˜CÓ% a§g¡g¨cÓ&7Õ7ˆEØ—<—<�<Ø—{‘{ 3Ó,Ð,ØŒ}Ø�ð —*‘*˜Q•-ˆØ—‘˜!•ˆØˆØ××Ð '×"5×"5Ð"5ð Ô Ø!×:Ñ:¸6ÓB�øØ××ÐØˆIñ ˜%“.‰ˆˆBÙ! #›,‰ˆ�÷ �w×*×*Ð*¬s°6«{¸aÔ/?Ü‘\¤# f£+¨wÓ7Ó8ˆDØ�E‰E�'ŒNØ˜Œ{Ø�&—	˜TÕ!”	à ��&‘	Ø!¨$¥,Õ.‰KàˆKð ˆÜˆv‹;œ˜R›Ô à‰BÜ�‹Zœ#˜a›&Ô à‰BÙ"Ó#™F�qˆa��dˆd™FÑ#×.Ñ.¹bÓ/A¹b¸°°!·°¹bÑ/A×BÒBà‰BÜ�‹Z×"Ñ"¤3 q£6×*Ò*à‰Bß‹SÖ=±uÓ=�S�SŠSÖ=±uÓ=×=Ò=àˆBßØˆIçØ‰DàˆCØ#Ÿk™kžm‘
��EØ˜•d�Ø—
‘
™4  UÓ+Ô,Ø˜2—w–wØ’Iñ	 ,ô
 �s“8ˆDçØˆEÜœ3˜r›7–^�Ù  1¥™��1“ó $ð ˆEÜ�v“;ˆDØ×&Ð&œAŸJ™JˆEØˆFØˆAß�%˜A �H¬¨B«Õ/Ø�ð �Ü˜tŸ�AØ˜!˜a�%•y •| v¨a¥y°¥|Ô3ÚØ˜aœØŸ
™
¡4¨¨1¨q­5­	°!­°f¸QµiÀµlÓ#CÕDØ˜d Q�hœØŸ
™
¡4¨¨1¨q­5­	°!­°f¸QµiÀµlÓ#CÕDØ˜A �E� 1�¨°­°1­Ô5ÚàŸ
™
 1œØ˜•F“Añ %ô ˜c›(�Cß�sØ 1œ9ß#Ü&)¨$°£n Ü$'¨¨S£M±&¸¸A½¸q½Ø$& q¥E¨!¥H¨s°6¸!µ9¸Qµ<Õ/?Õ$?ó3Aõ %A˜B˜q›Eð #$˜Cñ !' r¨!¥u¨Q¥x°°Aµ°qµ¸CØ$*¨1¥I¨a¥Lõ=1õ 21ó !2˜Að
 #&˜Cð "# T¥¨A¥˜BØ!# B¥¨¥¨B¨r­F°1­I¸Ø!'¨¥¨A¥õ9/õ -/ð !0˜Aà  ŸtœtØ#$ t¥8¬c°"«gÔ#5Ø67¸µe¸Q°Z B q¨¨T­¡Ná(.°©
 AØ67¸µe¸Aµg°Y B q¨¨T­¡Nð
 34°Cµ%°  1 Q¨¥X à �˜Ø �˜Ø"˜ßð —M‘M !Ô$Ø�Q•“÷ Ø�Ið —‘œe A¤s¨2£wÓ/Ô0Û�AÙ" B q¥E™N×/Ñ/°Ó9�B�q“Eñ  ð
 Š<Ø‰BØŠ]Ø‰Bä�U˜DÓ!ˆBàˆÛˆAØ�EŒzð �a•D˜5 �8 B�;Õ&�Ø—‘™V A q›\Ö*à—‘™V A§F¡F¨3Ó$4°a¸µdÓ;Ö<ñ ÷ Ÿô ˜˜d“^Ð$ uÕ,ˆEØ˜5Ÿ:š: uÑ-Õ-¨e¯jªj¸"©oÕ=Ð=ùòU $ùÒ/As   ÊaÊ=ac                	ó<  a € ^RI Hp ^ RIHp ^ RIHp R p. p	 V P                   FE  p
V
P                  V4      w  r¼VP                  V4      '       g   V	P                  W¬34       KA  \        h	  \        R V	 4       4      p. pV	 F~  w  r¯T! W-,
          VP                  '       d   TM^ ,           4      pV
P                  VVW4R7      pVP                  4       pVe   VV8  d   VVV,
          ,          pVP                  V4       K€  	  \&        P(                  pT Uu. uF  p\2        P4                  ! T4      NK  	  pp\7        T!   Fk  pT Uu. uF  pT! TT4      NK  	  pp\9        T!  w  pp\        T4      pTT,
          P:                  '       g   KM  T\=        T!  TT,          ,          ,          pKm  	  T 3R lo T P?                  T4      '       dG   ^ RI H!p ^ RI"H#p  S ! Y4      T8¼  g   T! Y4      T! TT4      8w  d   TT! Y,          T4      ,          pT# TT 8w  dt   T T,
          PI                  T^ 4      \&        P(                  8X  d2   T^ 8”  d+   T PK                  YTR7      pT\&        P(                  8X  d   T# TT! Y,          T4      ,          pT#   \        \        \         T3 dÚ    \#        \        R T	 4       4      4      pTP$                  '       d   \&        P(                  pT P                   U
u. uF!  qªP                  Y! Y-,
          4      Y4R7      NK#  	  Mu up
i pp
^ RIHp T! T P.                  ! T!  P1                  4       R	R
R7      pTP                  T4      '       d   TT! Y,          T4      ,          pTu # i ; iu upi u upi   T d     ELƒi ; i)r{   )Ú	PoleError)Úceiling)ÚOrderc                óÒ   € V P                  V4      pV^ ,          P                  V4      '       d    V P                  V4      pV# V#   \         d    T \        P
                  3u # i ; irh   )Úas_coeff_exponentr  ÚleadtermÚ
ValueErrorr   r¥   )rK  r  Últs   && r(   Ú	coeff_expÚ$Mul._eval_nseries.<locals>.coeff_exp¯  s`   € Ø×'Ñ'¨Ó*ˆBØ�!�u�y‰y˜�|Š|ð(ØŸ™ qÓ)�Bð ˆI�2ˆIøô "ô (Ø¤§¡˜<Ò'ð(ús   ±A ÁA&Á%A&c              3  óh   "  € T F(  q^,          P                   '       g   K  V^,          x € K*  	  R# 5ir  ©rû   ©rI   rˆ   s   & r(   rJ   Ú$Mul._eval_nseries.<locals>.<genexpr>Â  s    é € Ð:¡4˜a¨Q­4¯>­>”T�Q�q—T’T£4ùó   ‚2¡2)rá   ÚlogxÚcdirc              3  óh   "  € T F(  q^,          P                   '       g   K  V^,          x € K*  	  R# 5ir  rà  rá  s   & r(   rJ   râ  Ñ  s    é € ÐB©4 a°Qµ4·>µ>œT˜Q˜qŸTšT«4ùrã  )Úpowsimpr“  T)Úcombiner%  c           	     óè  <a€ V SJ d   \         P                  # V P                  '       d   \         P                  # V P                  '       d!   \        VV3R  lV P                   4       4      # V P                  '       d+   \        V P                   Uu. uF  pS! VS4      NK  	  up!  # V P                  '       d%   S! V P                  S4      V P                  ,          # \         P                  # u upi )c              3  ó6   <"  € T F  pS! VS4      x € K  	  R # 5irF   r   )rI   r<   Ú
max_degreer  s   & €€r(   rJ   Ú8Mul._eval_nseries.<locals>.max_degree.<locals>.<genexpr>ë  s   øé € Ð<±V°™: a¨×+Ð+³Vùs   ƒ)r   r2   Úis_Atomr¥   r¢   Úmaxr.   r"   r   r­   r”  r“  )rƒ   r  r<   rë  s   &f €r(   rë  Ú%Mul._eval_nseries.<locals>.max_degreeå  s¢   ù€ Ø�A‹vÜ—u‘u�Ø�y�yˆyÜ—v‘v�Ø�x�xˆxÜÕ<°Q·V²VÓ<Ó<Ð<Ø�x�xˆxÜ°q·v²vÓ>±v°!™Z¨¨1Ö-±vÑ>Ñ?Ð?Ø�x�xˆxÙ! !§&¡&¨!Ó,¨Q¯U©UÕ2Ð2Ü—6‘6ˆMùò ?s   ÂC/)ÚPolynomialError)Údegree©rä  rå  )&r*  rÕ  Ú#sympy.functions.elementary.integersrÖ  Úsympy.series.orderr×  r.   rÚ  r  r5   rÛ  ri  rû   ÚnseriesÚgetnÚNotImplementedErrorÚ	TypeErrorr	   rI  r   r¥   r·  rç  r(  rü   r   rs   r   re  r°   r7   Úis_polynomialÚsympy.polys.polyerrorsrð  Úsympy.polys.polytoolsrñ  rw  Ú_eval_as_leading_term)!rN   r  rá   rä  rå  rÕ  rÖ  r×  rÝ  Úordsrˆ   rÅ   r“  Ún0Úfacsrþ   Ún1rS  Únsrç  ÚresrJ  Úords2ÚfacrK  Úords3ÚcoeffsÚpowersÚpowerrð  rñ  rÜ  rë  s!   &&&&&                           @r(   Ú_eval_nseriesÚMul._eval_nseriesª  s  ø€ Ý'Ý?Ý,ò	ð ˆð	Ø—Y”Y�ØŸZ™Z¨›]‘
�Ø—y‘y —|’|Ø—K‘K  Ö)ä$Ð$ñ ô Ñ:¡4Ó:Ó:ˆBØˆDÛ‘�Ù˜Q�V¨A¯K¯K¨K¡q¸QÕ?Ó@�Ø—I‘I˜a 2¨D�IÓ<�Ø—V‘V“X�Ø’>Ø˜B”wØ˜R "�W�˜Ø—‘˜A–ñ ô. �f‰fˆÙ59Ó:±T¨6”—’˜vÖ&±TˆÐ:ä˜E”?ˆCÙ47Ó8±C¨D‘Y˜t QÖ'±CˆEÐ8Ü  %™[‰NˆF�FÜ˜“KˆEØ˜•	×&×&Ò&Ø”s˜F‘| Q¨¥XÕ.Õ.’ñ #õ	ð ×Ñ˜a× Ò Ý>Ý4ðÙ˜dÓ&¨!Ô+©v°d«Á&ÈÈaÃ.Ô/PØ™5 ¥ q›>Õ)�Cð �
à�$Œ;Ø�s•
× Ñ   AÓ&¬!¯&©&Ô0°Q¸´UØ×/Ñ/°À4Ð/ÓH�ØœŸ™”<Ø�JØ‘5˜�˜q“>Õ!ˆCØˆ
øôm Ô/´¸IÐFô 	ô œÑB©4ÓBÓBÓCˆBØ× × Ð Ü—V‘V�ØQU×QZÒQZÓ[ÑQZÈA—I‘I˜a 7¨1­4£=°t�IÖGÒQZùÒ[ˆDÐ[Ý6Ù˜$Ÿ)š) TÑ*×1Ñ1Ó3¸UÈÔNˆCØ�w‰w�u�~Š~Ø‘u˜Q�T 1“~Õ%�ØŠJð	üò ;ùò 9øð2 #ô Úðús>   šC-J ÄNÅNÇ7N ÊA"NË5'LÌA$NÎNÎNÎNc                	ó€   € V P                   ! V P                   Uu. uF  qDP                  WVR 7      NK  	  up!  # u upi )rò  )r(  r.   Úas_leading_term)rN   r  rä  rå  rˆ   s   &&&& r(   rü  ÚMul._eval_as_leading_term  s5   € Ø�yŠyÈtÏyÊyÓYÉyÈ!×,Ñ,¨QÀÐ,ÖEÉyÑYÑZÐZùÒYs   ›;c                	óz   € V P                   ! V P                   Uu. uF  qP                  4       NK  	  up!  # u upi rF   )r(  r.   r&  ©rN   rˆ   s   & r(   Ú_eval_conjugateÚMul._eval_conjugate  s+   € Ø�yŠy°$·)²)Ó<±)¨QŸ;™;ž=±)Ñ<Ñ=Ð=ùÒ<s   ›8c                	óŽ   € V P                   ! V P                  R R R1,           Uu. uF  qP                  4       NK  	  up!  # u upi ©Nr�   )r(  r.   Ú	transposer  s   & r(   Ú_eval_transposeÚMul._eval_transpose  s3   € Ø�yŠy°$·)±)¹D¸b¸D¶/ÓB±/¨QŸ;™;ž=±/ÑBÑCÐCùÒBó   ¥Ac                	óŽ   € V P                   ! V P                  R R R1,           Uu. uF  qP                  4       NK  	  up!  # u upi r  )r(  r.   Úadjointr  s   & r(   Ú_eval_adjointÚMul._eval_adjoint  s3   € Ø�yŠy°·	±	¹$¸B¸$¶Ó@±¨1Ÿ9™9ž;±Ñ@ÑAÐAùÒ@r  c                óô   € \         P                  p. pV P                   FF  pVP                  WR7      w  rgW6,          pV\         P                  Jg   K5  VP	                  V4       KH  	  W0P
                  ! V!  3# )a  Return the tuple (R, self/R) where R is the positive Rational
extracted from self.

Examples
========

>>> from sympy import sqrt
>>> (-3*sqrt(2)*(2 - 2*sqrt(2))).as_content_primitive()
(6, -sqrt(2)*(1 - sqrt(2)))

See docstring of Expr.as_content_primitive for more examples.
)ÚradicalÚclear)r   r2   r.   Úas_content_primitiver5   r(  )rN   r  r  Úcoefr.   r<   rd   r¶   s   &&&     r(   r  ÚMul.as_content_primitive  sf   € ô �u‰uˆØˆØ—”ˆAØ×)Ñ)°'Ð)ÓG‰DˆAØ�IˆDØœŸ™�~Ø—‘˜A–ñ	 ð —Y’Y Ñ%Ð%Ð%r'   c                ód   a€ V P                  4       w  r#VP                  V3R lR7       W#,           # )zÖTransform an expression into an ordered list of factors.

Examples
========

>>> from sympy import sin, cos
>>> from sympy.abc import x, y

>>> (2*x*y*sin(x)*cos(x)).as_ordered_factors()
[2, x, y, sin(x), cos(x)]

c                ó(   <€ V P                  SR 7      # ))Úorder)Úsort_key)rG  r$  s   &€r(   r  Ú(Mul.as_ordered_factors.<locals>.<lambda>9  s   ø€  D§M¡M¸ MÔ$>r'   r*   )r3   r,   )rN   r$  ÚcpartÚncparts   &f  r(   Úas_ordered_factorsÚMul.as_ordered_factors+  s)   ø€ ð Ÿ™›‰ˆØ�
‰
Ô>ˆ
Ô?Ø�~Ðr'   c                	ó4   € \        V P                  4       4      # rF   )r  r)  r_   s   &r(   Ú_sorted_argsÚMul._sorted_args<  s   € ä�T×,Ñ,Ó.Ó/Ð/r'   r   rb   r]  )NFrF   rh   )FT)Ur   r   r   r    Ú__doc__Ú	__slots__r"   r   Ú
_args_typer   rM   Ú__annotations__ÚpropertyrG   r   r[   r.   re   rl   Úclassmethodrä   rò   r÷   rú   r  r   r  ri   r|   rë   Ústaticmethodr7  rF  rT  rb  r|  r„  r�  rˆ  r‰  r›  rœ  r°  r±  r€  rÖ  rº   r¬   rë  rö  r   r  Ú_eval_is_commutativer  r  r  r"  r,  r3  rQ  rZ  r_  r^  rl  rq  rt  rp  r„  r‰  rˆ  r”  r˜  r›  rŸ  rÒ  r	  rü  r  r  r  r  r)  r,  r&   Ú__classcell__)rr  s   @r(   r7   r7   [   s·  ø‡ ñDðJ €Ià€Fà€JÙ%Ð&;ÈÔNÐàÓàñ1ó ð1÷ ð	¸t÷ 	ð 
ô	ó 
ð	ò6ò:ð ñQ.ó ðQ.òfð8 ñ"ó ð"òð  ñ6ó ð6ð ñ9ó ð9ð< ð
¨4ó 
ó ð
ôô 5:ðn ñ$ó ð$ò$)ðV ñ	#ó ð	#ð ôó ðò>òô!ð@ ñó ðð ó(ó ð(ðT ñ<ó ð<ð ñ2ó ð2ðh ñ&ó ð&ð ñEó ðEð
 ñ',ó ð',òRò6ò%òIòPò-òMñ-ÐòòA(òF
ò
òòòL!ò\Fò
*ò(òT/ò.ò/òò(ò%ò$!òF&òò<
òò"F>ôPYòv[ò>òDòBô&ô4ð" ñ0ó ö0r'   r7   Úmulc                ó6   € \        \        P                  W4      # )aK  Return product of elements of a. Start with int 1 so if only
   ints are included then an int result is returned.

Examples
========

>>> from sympy import prod, S
>>> prod(range(3))
0
>>> type(_) is int
True
>>> prod([S(2), 3])
6
>>> _.is_Integer
True

You can start the product at something other than 1:

>>> prod([1, 2], 3)
6

)r   Úoperatorr7  )r<   Ústarts   &&r(   rj  rj  C  s   € ô. ”(—,‘, Ó)Ð)r'   c           	     ó  € V P                   '       g   VP                   '       d   YrMW,          # V\        P                  J d   V # V \        P                  J d   V# V \        P                  J d   V'       g   V) # VP                  '       Ed   V'       gö   V P
                  '       dä   V P                  ^8w  dÓ   VP                   Uu. uF  qDP                  4       NK  	  ppV UUu. uF  w  rg\        W`4      V3NK  	  ppp\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       dQ   \        P                  ! V Uu. uF/  p\        P                  V^ ,          ^8X  d
   VR,          MT4      NK1  	  up4      # \        WRR7      # VP                  '       d‹   \        VP                  4      pV^ ,          P                   '       d6   V^ ;;,          V ,          uu&   V^ ,          ^8X  d   VP!                  ^ 4       MVP#                  ^ V 4       \        P                  V4      # W,          pVP                   '       d)   VP                   '       g   \        P                  W34      pV# u upi u uppi u upi )a�  Return ``coeff*factors`` unevaluated if necessary.

If ``clear`` is False, do not keep the coefficient as a factor
if it can be distributed on a single factor such that one or
more terms will still have integer coefficients.

If ``sign`` is True, allow a coefficient of -1 to remain factored out.

Examples
========

>>> from sympy.core.mul import _keep_coeff
>>> from sympy.abc import x, y
>>> from sympy import S

>>> _keep_coeff(S.Half, x + 2)
(x + 2)/2
>>> _keep_coeff(S.Half, x + 2, clear=False)
x/2 + 1
>>> _keep_coeff(S.Half, (x + 2)*y, clear=False)
y*(x + 2)/2
>>> _keep_coeff(S(-1), x + y)
-x - y
>>> _keep_coeff(S(-1), x + y, sign=True)
-(x + y)
c              3  ó>   "  € T F  w  rVP                   x € K  	  R # 5irF   )r®   )rI   rd   rw   s   &  r(   rJ   Ú_keep_coeff.<locals>.<genexpr>‡  s   é € Ð1©D¡D A�1—<–<«Dùrœ   TFr  rq   )r#   r   r2   rk   r¢   r    rµ   r.   r|   r¤   r©   r   r8   r7   r"   r1   r³   r6   )	rÅ   Úfactorsr  ré   rÒ   r.   rd   rþ   rÑ  s	   &&&&     r(   r¤   r¤   ]  s×  € ð6 �?�?ˆ?Ø××ÐØ"‘Uà•=Ð Ø”!—%‘%ÓØˆØ”—‘ƒ~ØˆØ	”!—-‘-Ó	¯ØˆxˆØ	��‰ß˜×*×*Ð*¨u¯w©w¸!¬|Ø.5¯lªlÓ;©l¨—N‘NÖ$©lˆDÐ;Ù;?Ô@¹4±4°1”[ Ó*¨AÓ.¹4ˆDÑ@ß‹sÑ1©DÓ1�s�sŠsÑ1©DÓ1×1Ò1Ü—~’~Ù8<ó'>Ù8<°1ô (+§~¡~Ø˜q�T QœY�A�b–E¨Aö(/Ù8<ñ'>ó ?ð ?ä�5¨EÔ2Ð2Ø	��ˆÜ�W—\‘\Ó"ˆØ��8××ÐØ�!�H˜Õ‹HØ�Q�x˜1Œ}Ø—	‘	˜!”øà�L‰L˜˜EÔ"Ü�~‰~˜eÓ$Ð$à�MˆØ�;�;ˆ;˜w×0×0Ð0Ü—‘ Ð/Ó0ˆAØˆùò' <ùÛ@ùò'>s   ÃI8Ã&I=Å5Jc                ó   € R  p\        W4      # )c                óò   € V P                   '       d`   V P                  4       w  rVP                  '       d<   VP                  '       d*   \	        VP
                   Uu. uF  q1V,          NK  	  up!  # V # u upi rF   )r"   r|   r#   r¢   Ú_unevaluated_Addr.   )rƒ   rd   r¾   Úris   &   r(   rÐ  Úexpand_2arg.<locals>.do›  sW   € Ø�8�8ˆ8Ø—>‘>Ó#‰DˆAØ�{�{ˆ{˜qŸxŸx˜xÜ'¸¿ºÓ)@¹°2¨B¯$¨$¹Ñ)@ÑAÐAØˆùò *As   ÁA4r   )rƒ   rÐ  s   & r(   Úexpand_2argrD  š  s   € òô �QÓÐr'   )r¸   r­  )r   rA  rz   )TF)6Ú
__future__r   Útypingr   r   Úcollectionsr   Ú	functoolsr   Ú	itertoolsr   r9  r	   Úbasicr
   r   Ú	singletonr   Ú
operationsr   r   Úcacher   Úintfuncr   r   Úlogicr   r   rG  r   Ú
parametersr   rG   r   Ú	traversalr   Úsympy.utilities.iterablesr   r   r/   r?   r7   r7  rj  r¤   rD  r  r¸   r  r¯   Úaddr   rA  r   r'   r(   Ú<module>rT     s‹   ðÝ "ß *å #Ý Ý Û å ß 'Ý ß 2Ý ß .ß *Ý Ý )Ý  Ý  Ý *÷
ñ ò!ò
1(ôhc0ˆ$�ô c0ñJ? ˜Ó€ô*ô4;òzõ Ý ß &Ñ &r'   