§
    tŠtj¬E  ã                  óÞ   — d Z ddlmZ ddlZddlmZ ddlZddlm	Z	 ddl
mZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ dddddœZ G d„ d¦  «        Zd#d„Zd$d„Zd%d„Zd&d „Zd%d!„Zd%d"„ZdS )'zn
Methods that can be shared by many array-like classes or subclasses:
    Series
    Index
    ExtensionArray
é    )ÚannotationsN)ÚAny)Úlib)Ú!maybe_dispatch_ufunc_to_dunder_op)Úmaybe_unbox_numpy_scalar)Ú
ABCNDFrame)Ú	roperator©Úextract_array)Úunpack_zerodim_and_deferÚmaxÚminÚsumÚprod)ÚmaximumÚminimumÚaddÚmultiplyc                  ó€  — e Zd Zd„ Z ed¦  «        d„ ¦   «         Z ed¦  «        d„ ¦   «         Z ed¦  «        d„ ¦   «         Z ed¦  «        d	„ ¦   «         Z ed
¦  «        d„ ¦   «         Z	 ed¦  «        d„ ¦   «         Z
d„ Z ed¦  «        d„ ¦   «         Z ed¦  «        d„ ¦   «         Z ed¦  «        d„ ¦   «         Z ed¦  «        d„ ¦   «         Z ed¦  «        d„ ¦   «         Z ed¦  «        d„ ¦   «         Zd„ Z ed¦  «        d„ ¦   «         Z ed¦  «        d„ ¦   «         Z ed ¦  «        d!„ ¦   «         Z ed"¦  «        d#„ ¦   «         Z ed$¦  «        d%„ ¦   «         Z ed&¦  «        d'„ ¦   «         Z ed(¦  «        d)„ ¦   «         Z ed*¦  «        d+„ ¦   «         Z ed,¦  «        d-„ ¦   «         Z ed.¦  «        d/„ ¦   «         Z ed0¦  «        d1„ ¦   «         Z ed2¦  «        d3„ ¦   «         Z ed4¦  «        d5„ ¦   «         Z ed6¦  «        d7„ ¦   «         Z  ed8¦  «        d9„ ¦   «         Z! ed:¦  «        d;„ ¦   «         Z"d<S )=ÚOpsMixinc                ó   — t           S ©N©ÚNotImplemented©ÚselfÚotherÚops      úS/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/core/arraylike.pyÚ_cmp_methodzOpsMixin._cmp_method%   ó   € ÝÐó    Ú__eq__c                óB   — |                       |t          j        ¦  «        S r   )r    ÚoperatorÚeq©r   r   s     r   r#   zOpsMixin.__eq__(   ó   € à×Ò ¥x¤{Ñ3Ô3Ð3r"   Ú__ne__c                óB   — |                       |t          j        ¦  «        S r   )r    r%   Úner'   s     r   r)   zOpsMixin.__ne__,   r(   r"   Ú__lt__c                óB   — |                       |t          j        ¦  «        S r   )r    r%   Últr'   s     r   r,   zOpsMixin.__lt__0   r(   r"   Ú__le__c                óB   — |                       |t          j        ¦  «        S r   )r    r%   Úler'   s     r   r/   zOpsMixin.__le__4   r(   r"   Ú__gt__c                óB   — |                       |t          j        ¦  «        S r   )r    r%   Úgtr'   s     r   r2   zOpsMixin.__gt__8   r(   r"   Ú__ge__c                óB   — |                       |t          j        ¦  «        S r   )r    r%   Úger'   s     r   r5   zOpsMixin.__ge__<   r(   r"   c                ó   — t           S r   r   r   s      r   Ú_logical_methodzOpsMixin._logical_methodC   r!   r"   Ú__and__c                óB   — |                       |t          j        ¦  «        S r   )r9   r%   Úand_r'   s     r   r:   zOpsMixin.__and__F   s   € à×#Ò# E­8¬=Ñ9Ô9Ð9r"   Ú__rand__c                óB   — |                       |t          j        ¦  «        S r   )r9   r	   Úrand_r'   s     r   r=   zOpsMixin.__rand__J   s   € à×#Ò# E­9¬?Ñ;Ô;Ð;r"   Ú__or__c                óB   — |                       |t          j        ¦  «        S r   )r9   r%   Úor_r'   s     r   r@   zOpsMixin.__or__N   ó   € à×#Ò# E­8¬<Ñ8Ô8Ð8r"   Ú__ror__c                óB   — |                       |t          j        ¦  «        S r   )r9   r	   Úror_r'   s     r   rD   zOpsMixin.__ror__R   ó   € à×#Ò# E­9¬>Ñ:Ô:Ð:r"   Ú__xor__c                óB   — |                       |t          j        ¦  «        S r   )r9   r%   Úxorr'   s     r   rH   zOpsMixin.__xor__V   rC   r"   Ú__rxor__c                óB   — |                       |t          j        ¦  «        S r   )r9   r	   Úrxorr'   s     r   rK   zOpsMixin.__rxor__Z   rG   r"   c                ó   — t           S r   r   r   s      r   Ú_arith_methodzOpsMixin._arith_methoda   r!   r"   Ú__add__c                óB   — |                       |t          j        ¦  «        S )a,  
        Get Addition of DataFrame and other, column-wise.

        Equivalent to ``DataFrame.add(other)``.

        Parameters
        ----------
        other : scalar, sequence, Series, dict or DataFrame
            Object to be added to the DataFrame.

        Returns
        -------
        DataFrame
            The result of adding ``other`` to DataFrame.

        See Also
        --------
        DataFrame.add : Add a DataFrame and another object, with option for index-
            or column-oriented addition.

        Examples
        --------
        >>> df = pd.DataFrame(
        ...     {"height": [1.5, 2.6], "weight": [500, 800]}, index=["elk", "moose"]
        ... )
        >>> df
               height  weight
        elk       1.5     500
        moose     2.6     800

        Adding a scalar affects all rows and columns.

        >>> df[["height", "weight"]] + 1.5
               height  weight
        elk       3.0   501.5
        moose     4.1   801.5

        Each element of a list is added to a column of the DataFrame, in order.

        >>> df[["height", "weight"]] + [0.5, 1.5]
               height  weight
        elk       2.0   501.5
        moose     3.1   801.5

        Keys of a dictionary are aligned to the DataFrame, based on column names;
        each value in the dictionary is added to the corresponding column.

        >>> df[["height", "weight"]] + {"height": 0.5, "weight": 1.5}
               height  weight
        elk       2.0   501.5
        moose     3.1   801.5

        When `other` is a :class:`Series`, the index of `other` is aligned with the
        columns of the DataFrame.

        >>> s1 = pd.Series([0.5, 1.5], index=["weight", "height"])
        >>> df[["height", "weight"]] + s1
               height  weight
        elk       3.0   500.5
        moose     4.1   800.5

        Even when the index of `other` is the same as the index of the DataFrame,
        the :class:`Series` will not be reoriented. If index-wise alignment is desired,
        :meth:`DataFrame.add` should be used with `axis='index'`.

        >>> s2 = pd.Series([0.5, 1.5], index=["elk", "moose"])
        >>> df[["height", "weight"]] + s2
               elk  height  moose  weight
        elk    NaN     NaN    NaN     NaN
        moose  NaN     NaN    NaN     NaN

        >>> df[["height", "weight"]].add(s2, axis="index")
               height  weight
        elk       2.0   500.5
        moose     4.1   801.5

        When `other` is a :class:`DataFrame`, both columns names and the
        index are aligned.

        >>> other = pd.DataFrame(
        ...     {"height": [0.2, 0.4, 0.6]}, index=["elk", "moose", "deer"]
        ... )
        >>> df[["height", "weight"]] + other
               height  weight
        deer      NaN     NaN
        elk       1.7     NaN
        moose     3.0     NaN
        )rO   r%   r   r'   s     r   rP   zOpsMixin.__add__d   s   € ðt ×!Ò! %­¬Ñ6Ô6Ð6r"   Ú__radd__c                óB   — |                       |t          j        ¦  «        S r   )rO   r	   Úraddr'   s     r   rR   zOpsMixin.__radd__À   ó   € à×!Ò! %­¬Ñ8Ô8Ð8r"   Ú__sub__c                óB   — |                       |t          j        ¦  «        S r   )rO   r%   Úsubr'   s     r   rV   zOpsMixin.__sub__Ä   ó   € à×!Ò! %­¬Ñ6Ô6Ð6r"   Ú__rsub__c                óB   — |                       |t          j        ¦  «        S r   )rO   r	   Úrsubr'   s     r   rZ   zOpsMixin.__rsub__È   rU   r"   Ú__mul__c                óB   — |                       |t          j        ¦  «        S r   )rO   r%   Úmulr'   s     r   r]   zOpsMixin.__mul__Ì   rY   r"   Ú__rmul__c                óB   — |                       |t          j        ¦  «        S r   )rO   r	   Úrmulr'   s     r   r`   zOpsMixin.__rmul__Ð   rU   r"   Ú__truediv__c                óB   — |                       |t          j        ¦  «        S r   )rO   r%   Útruedivr'   s     r   rc   zOpsMixin.__truediv__Ô   s   € à×!Ò! %­Ô)9Ñ:Ô:Ð:r"   Ú__rtruediv__c                óB   — |                       |t          j        ¦  «        S r   )rO   r	   Úrtruedivr'   s     r   rf   zOpsMixin.__rtruediv__Ø   s   € à×!Ò! %­Ô);Ñ<Ô<Ð<r"   Ú__floordiv__c                óB   — |                       |t          j        ¦  «        S r   )rO   r%   Úfloordivr'   s     r   ri   zOpsMixin.__floordiv__Ü   s   € à×!Ò! %­Ô):Ñ;Ô;Ð;r"   Ú__rfloordivc                óB   — |                       |t          j        ¦  «        S r   )rO   r	   Ú	rfloordivr'   s     r   Ú__rfloordiv__zOpsMixin.__rfloordiv__à   s   € à×!Ò! %­Ô)<Ñ=Ô=Ð=r"   Ú__mod__c                óB   — |                       |t          j        ¦  «        S r   )rO   r%   Úmodr'   s     r   rp   zOpsMixin.__mod__ä   rY   r"   Ú__rmod__c                óB   — |                       |t          j        ¦  «        S r   )rO   r	   Úrmodr'   s     r   rs   zOpsMixin.__rmod__è   rU   r"   Ú
__divmod__c                ó8   — |                       |t          ¦  «        S r   )rO   Údivmodr'   s     r   rv   zOpsMixin.__divmod__ì   s   € à×!Ò! %­Ñ0Ô0Ð0r"   Ú__rdivmod__c                óB   — |                       |t          j        ¦  «        S r   )rO   r	   Úrdivmodr'   s     r   ry   zOpsMixin.__rdivmod__ð   s   € à×!Ò! %­Ô):Ñ;Ô;Ð;r"   Ú__pow__c                óB   — |                       |t          j        ¦  «        S r   )rO   r%   Úpowr'   s     r   r|   zOpsMixin.__pow__ô   rY   r"   Ú__rpow__c                óB   — |                       |t          j        ¦  «        S r   )rO   r	   Úrpowr'   s     r   r   zOpsMixin.__rpow__ø   rU   r"   N)#Ú__name__Ú
__module__Ú__qualname__r    r   r#   r)   r,   r/   r2   r5   r9   r:   r=   r@   rD   rH   rK   rO   rP   rR   rV   rZ   r]   r`   rc   rf   ri   ro   rp   rs   rv   ry   r|   r   © r"   r   r   r   !   s‰  € € € € € ðð ð ð Ð˜hÑ'Ô'ð4ð 4ñ (Ô'ð4ð Ð˜hÑ'Ô'ð4ð 4ñ (Ô'ð4ð Ð˜hÑ'Ô'ð4ð 4ñ (Ô'ð4ð Ð˜hÑ'Ô'ð4ð 4ñ (Ô'ð4ð Ð˜hÑ'Ô'ð4ð 4ñ (Ô'ð4ð Ð˜hÑ'Ô'ð4ð 4ñ (Ô'ð4ðð ð ð Ð˜iÑ(Ô(ð:ð :ñ )Ô(ð:ð Ð˜jÑ)Ô)ð<ð <ñ *Ô)ð<ð Ð˜hÑ'Ô'ð9ð 9ñ (Ô'ð9ð Ð˜iÑ(Ô(ð;ð ;ñ )Ô(ð;ð Ð˜iÑ(Ô(ð9ð 9ñ )Ô(ð9ð Ð˜jÑ)Ô)ð;ð ;ñ *Ô)ð;ðð ð ð Ð˜iÑ(Ô(ðY7ð Y7ñ )Ô(ðY7ðv Ð˜jÑ)Ô)ð9ð 9ñ *Ô)ð9ð Ð˜iÑ(Ô(ð7ð 7ñ )Ô(ð7ð Ð˜jÑ)Ô)ð9ð 9ñ *Ô)ð9ð Ð˜iÑ(Ô(ð7ð 7ñ )Ô(ð7ð Ð˜jÑ)Ô)ð9ð 9ñ *Ô)ð9ð Ð˜mÑ,Ô,ð;ð ;ñ -Ô,ð;ð Ð˜nÑ-Ô-ð=ð =ñ .Ô-ð=ð Ð˜nÑ-Ô-ð<ð <ñ .Ô-ð<ð Ð˜mÑ,Ô,ð>ð >ñ -Ô,ð>ð Ð˜iÑ(Ô(ð7ð 7ñ )Ô(ð7ð Ð˜jÑ)Ô)ð9ð 9ñ *Ô)ð9ð Ð˜lÑ+Ô+ð1ð 1ñ ,Ô+ð1ð Ð˜mÑ,Ô,ð<ð <ñ -Ô,ð<ð Ð˜iÑ(Ô(ð7ð 7ñ )Ô(ð7ð Ð˜jÑ)Ô)ð9ð 9ñ *Ô)ð9ð 9ð 9r"   r   Úufuncúnp.ufuncÚmethodÚstrÚinputsr   Úkwargsc                ó¤  ‡ ‡‡‡‡‡‡‡‡— ddl m}m} ddlmŠ ddlmŠ t          ‰ ¦  «        }t          di |¤Ž}t          ‰ ‰‰g|¢R i |¤Ž}|t          ur|S t          j        j        |j        f}	|D ]k}
t          |
d¦  «        o|
j        ‰ j        k    }t          |
d¦  «        o+t          |
¦  «        j        |	vot!          |
‰ j        ¦  «         }|s|r	t          c S Œlt%          d„ |D ¦   «         ¦  «        }ˆfd„t'          ||d	¬
¦  «        D ¦   «         Št)          ‰¦  «        dk    röt+          |¦  «        }t)          |¦  «        dk    r*||h                     |¦  «        rt/          d‰› d�¦  «        ‚‰ j        }‰dd…         D ]G}t3          t'          ||j        d	¬
¦  «        ¦  «        D ] \  }\  }}|                     |¦  «        ||<   Œ!ŒHt7          t'          ‰ j        |d	¬
¦  «        ¦  «        Št%          ˆˆfd„t'          ||d	¬
¦  «        D ¦   «         ¦  «        }n)t7          t'          ‰ j        ‰ j        d	¬
¦  «        ¦  «        Š‰ j        dk    r:d„ |D ¦   «         }t)          |¦  «        dk    r|                     ¦   «         nd}d|iŠni Šˆˆfd„}ˆˆˆˆˆˆ fd„Šd|v rt?          ‰ ‰‰g|¢R i |¤Ž} ||¦  «        S ‰dk    rtA          ‰ ‰‰g|¢R i |¤Ž}|t          ur|S ‰ j        dk    rNt)          |¦  «        dk    s‰j!        dk    r0t%          d„ |D ¦   «         ¦  «        } tE          ‰‰¦  «        |i |¤Ž}nŒ‰ j        dk    r0t%          d„ |D ¦   «         ¦  «        } tE          ‰‰¦  «        |i |¤Ž}nQ‰dk    r3|s1|d         j#        }| $                    tE          ‰‰¦  «        ¦  «        }ntK          |d         ‰‰g|¢R i |¤Ž} ||¦  «        }|S )z˜
    Compatibility with numpy ufuncs.

    See also
    --------
    numpy.org/doc/stable/reference/arrays.classes.html#numpy.class.__array_ufunc__
    r   )Ú	DataFrameÚSeries)ÚNDFrame)ÚBlockManagerÚ__array_priority__Ú__array_ufunc__c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r   )Útype©Ú.0Úxs     r   ú	<genexpr>zarray_ufunc.<locals>.<genexpr>-  s(   è è € Ð*Ð*˜a•$�q‘'”'Ð*Ð*Ð*Ð*Ð*Ð*r"   c                ó:   •— g | ]\  }}t          |‰¦  «        ¯|‘ŒS r…   )Ú
issubclass)r–   r—   Útr�   s      €r   ú
<listcomp>zarray_ufunc.<locals>.<listcomp>.  s<   ø€ ð ð ð Ùˆa�½ÀAÀwÑ9OÔ9OðØ	ðð ð r"   T©Ústricté   zCannot apply ufunc z& to mixed DataFrame and Series inputs.Nc              3  ó\   •K  — | ]&\  }}t          |‰¦  «        r |j        di ‰¤Žn|V — Œ'd S )Nr…   )rš   Úreindex)r–   r—   r›   r�   Úreconstruct_axess      €€r   r˜   zarray_ufunc.<locals>.<genexpr>G  sb   øè è € ð 
ð 
á��1õ .8¸¸7Ñ-CÔ-CÐJˆIˆAŒIÐ)Ð)Ð(Ð)Ð)Ð)Èð
ð 
ð 
ð 
ð 
ð 
r"   c                ó<   — h | ]}t          |d ¦  «        ¯|j        ’ŒS )Úname)Úhasattrr¤   r•   s     r   ú	<setcomp>zarray_ufunc.<locals>.<setcomp>O  s)   € Ð>Ð>Ð>˜A­7°1°fÑ+=Ô+=Ð>�”Ð>Ð>Ð>r"   r¤   c                óf   •— ‰j         dk    rt          ˆfd„| D ¦   «         ¦  «        S  ‰| ¦  «        S )NrŸ   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S r   r…   )r–   r—   Ú_reconstructs     €r   r˜   z3array_ufunc.<locals>.reconstruct.<locals>.<genexpr>X  s+   øè è € Ð9Ð9¨Q˜˜ a™œÐ9Ð9Ð9Ð9Ð9Ð9r"   )ÚnoutÚtuple)Úresultr©   r†   s    €€r   Úreconstructz array_ufunc.<locals>.reconstructU  sA   ø€ ØŒ:˜Š>ˆ>åÐ9Ð9Ð9Ð9°&Ð9Ñ9Ô9Ñ9Ô9Ð9àˆ|˜FÑ#Ô#Ð#r"   c                óD  •— t          j        | ¦  «        r| S | j        ‰j        k    r‰dk    rt          ‚| S t	          | ‰¦  «        r‰                     | | j        ¬¦  «        } n ‰j        | fi ‰¤‰¤ddi¤Ž} t          ‰¦  «        dk    r|  	                    ‰¦  «        } | S )NÚouter)ÚaxesÚcopyFrŸ   )
r   Ú	is_scalarÚndimÚNotImplementedErrorÚ
isinstanceÚ_constructor_from_mgrr°   Ú_constructorÚlenÚ__finalize__)r¬   r�   Ú	alignablerˆ   r¢   Úreconstruct_kwargsr   s    €€€€€€r   r©   z!array_ufunc.<locals>._reconstruct\  sØ   ø€ ÝŒ=˜Ñ Ô ð 	ØˆMàŒ;˜$œ)Ò#Ð#Ø˜Ò Ð Ý)Ð)ØˆMÝ�f˜lÑ+Ô+ð 	à×/Ò/°¸V¼[Ð/ÑIÔIˆFˆFð '�TÔ&Øðð Ø*ðØ.@ðð ØGLðð ð ˆFõ ˆy‰>Œ>˜QÒÐØ×(Ò(¨Ñ.Ô.ˆFØˆr"   ÚoutÚreducec              3  ó>   K  — | ]}t          j        |¦  «        V — Œd S r   ©ÚnpÚasarrayr•   s     r   r˜   zarray_ufunc.<locals>.<genexpr>‹  s*   è è € Ð5Ð5¨•r”z !‘}”}Ð5Ð5Ð5Ð5Ð5Ð5r"   c              3  ó8   K  — | ]}t          |d ¬¦  «        V — ŒdS )T)Úextract_numpyNr
   r•   s     r   r˜   zarray_ufunc.<locals>.<genexpr>‘  s/   è è € ÐLÐLÀ•} Q°dÐ;Ñ;Ô;ÐLÐLÐLÐLÐLÐLr"   Ú__call__r…   )&Úpandas.core.framer�   rŽ   Úpandas.core.genericr�   Úpandas.core.internalsr�   r”   Ú_standardize_out_kwargr   r   rÀ   Úndarrayr’   r¥   r‘   rµ   Ú_HANDLED_TYPESr«   Úzipr¸   ÚsetÚissubsetr´   r°   Ú	enumerateÚunionÚdictÚ_AXIS_ORDERSr³   ÚpopÚdispatch_ufunc_with_outÚdispatch_reduction_ufuncrª   ÚgetattrÚ_mgrÚapplyÚdefault_array_ufunc)r   r†   rˆ   rŠ   r‹   r�   rŽ   Úclsr¬   Úno_deferÚitemÚhigher_priorityÚhas_array_ufuncÚtypesÚ	set_typesr°   ÚobjÚiÚax1Úax2Únamesr¤   r­   Úmgrr�   r�   r©   rº   r¢   r»   s   ```                     @@@@@@r   Úarray_ufuncræ     sV  øøøøøøøøø€ ðð ð ð ð ð ð ð ð ,Ð+Ð+Ð+Ð+Ð+Ø2Ð2Ð2Ð2Ð2Ð2å
ˆt‰*Œ*€Cå#Ð-Ð- fÐ-Ð-€Fõ /¨t°U¸FÐVÀVÐVÐVÐVÈvÐVÐV€FØ•^Ð#Ð#Øˆõ 	Œ
Ô"ØÔð€Hð
 ð "ð "ˆå�DÐ.Ñ/Ô/ð BØÔ'¨$Ô*AÒAð 	õ
 �DÐ+Ñ,Ô,ð :Ý�T‘
”
Ô*°(Ð:ð:å˜t TÔ%8Ñ9Ô9Ð9ð 	ð
 ð 	"˜oð 	"Ý!Ð!Ð!Ð!ð	"õ Ð*Ð* 6Ð*Ñ*Ô*Ñ*Ô*€Eðð ð ð Ý˜& %°Ð5Ñ5Ô5ðñ ô €Iõ ˆ9�~„~˜ÒÐõ
 ˜‘J”Jˆ	Ýˆy‰>Œ>˜AÒÐ 9¨fÐ"5×">Ò">¸yÑ"IÔ"IÐõ &ØS eÐSÐSÐSñô ð ð ŒyˆØ˜Q˜R˜R”=ð 	)ð 	)ˆCõ "+­3¨t°S´XÀdÐ+KÑ+KÔ+KÑ!LÔ!Lð )ð )‘�‘:�C˜ØŸ)š) C™.œ.��Q‘�ð)õ  ¥ DÔ$5°tÀDÐ IÑ IÔ IÑJÔJÐÝð 
ð 
ð 
ð 
ð 
å˜F E°$Ð7Ñ7Ô7ð
ñ 
ô 
ñ 
ô 
ˆˆõ
  ¥ DÔ$5°t´yÈÐ NÑ NÔ NÑOÔOÐà„y�A‚~€~Ø>Ð> Ð>Ñ>Ô>ˆÝ! %™jœj¨Ašo˜oˆu�yŠy‰{Œ{ˆ{°4ˆØ$ d˜^ÐÐàÐð$ð $ð $ð $ð $ð $ðð ð ð ð ð ð ð ð ð ð0 �€€å(¨¨u°fÐP¸vÐPÐPÐPÈÐPÐPˆØˆ{˜6Ñ"Ô"Ð"à�ÒÐå)¨$°°vÐQÀÐQÐQÐQÈ&ÐQÐQˆØ�Ð'Ð'ØˆMð
 „y�1‚}€}�#˜f™+œ+¨š/˜/¨U¬Z¸!ª^¨^õ Ð5Ð5¨fÐ5Ñ5Ô5Ñ5Ô5ˆð (•˜ Ñ'Ô'¨Ð:°6Ð:Ð:ˆˆØ	Œ�aŠˆåÐLÐLÀVÐLÑLÔLÑLÔLˆØ'•˜ Ñ'Ô'¨Ð:°6Ð:Ð:ˆˆà	�:Ò	Ð	 fÐ	ð �QŒiŒnˆØ—’�7 5¨&Ñ1Ô1Ñ2Ô2ˆˆõ % V¨A¤Y°°vÐQÀÐQÐQÐQÈ&ÐQÐQˆð ˆ[˜Ñ Ô €FØ€Mr"   ÚreturnrÐ   c                 ó„   — d| vr;d| v r7d| v r3|                       d¦  «        }|                       d¦  «        }||f}|| d<   | S )z²
    If kwargs contain "out1" and "out2", replace that with a tuple "out"

    np.divmod, np.modf, np.frexp can have either `out=(out1, out2)` or
    `out1=out1, out2=out2)`
    r¼   Úout1Úout2)rÒ   )r‹   ré   rê   r¼   s       r   rÈ   rÈ   ¤  s\   € ð �FÐÐ˜v¨Ð/Ð/°F¸fÐ4DÐ4DØ�zŠz˜&Ñ!Ô!ˆØ�zŠz˜&Ñ!Ô!ˆØ�TˆlˆØˆˆu‰Ø€Mr"   c                ó2  — |                      d¦  «        }|                      dd¦  «        } t          ||¦  «        |i |¤Ž}|t          u rt          S t          |t          ¦  «        rgt          |t          ¦  «        r t          |¦  «        t          |¦  «        k    rt          ‚t          ||d¬¦  «        D ]\  }}	t          ||	|¦  «         Œ|S t          |t          ¦  «        r#t          |¦  «        dk    r	|d         }nt          ‚t          |||¦  «         |S )zz
    If we have an `out` keyword, then call the ufunc without `out` and then
    set the result into the given `out`.
    r¼   ÚwhereNTr�   rŸ   r   )	rÒ   rÕ   r   rµ   r«   r¸   r´   rË   Ú_assign_where)
r   r†   rˆ   rŠ   r‹   r¼   rì   r¬   ÚarrÚress
             r   rÓ   rÓ   ³  s  € ð �*Š*�UÑ
Ô
€CØ�JŠJ�w Ñ%Ô%€Eà#�W�U˜FÑ#Ô# VÐ6¨vÐ6Ð6€Fà•ÐÐÝÐå�&�%Ñ Ô ð å˜#�uÑ%Ô%ð 	&­¨S©¬µS¸±[´[Ò)@Ð)@Ý%Ð%å˜C °Ð5Ñ5Ô5ð 	+ð 	+‰HˆC�Ý˜#˜s EÑ*Ô*Ð*Ð*àˆ
å�#•uÑÔð &Ýˆs‰8Œ8�qŠ=ˆ=Ø�a”&ˆCˆCå%Ð%å�#�v˜uÑ%Ô%Ð%Ø€Jr"   ÚNonec                óH   — |€	|| dd…<   dS t          j        | ||¦  «         dS )zV
    Set a ufunc result into 'out', masking with a 'where' argument if necessary.
    N)rÀ   Úputmask)r¼   r¬   rì   s      r   rí   rí   Ö  s4   € ð €}àˆˆAˆAˆA‰ˆˆå
Œ
�3˜˜vÑ&Ô&Ð&Ð&Ð&r"   c                ó�   ‡ — t          ˆ fd„|D ¦   «         ¦  «        st          ‚ˆ fd„|D ¦   «         } t          ||¦  «        |i |¤ŽS )z�
    Fallback to the behavior we would get if we did not define __array_ufunc__.

    Notes
    -----
    We are assuming that `self` is among `inputs`.
    c              3  ó    •K  — | ]}|‰u V — Œ	d S r   r…   ©r–   r—   r   s     €r   r˜   z&default_array_ufunc.<locals>.<genexpr>é  s'   øè è € Ð)Ð)˜Qˆq�DˆyÐ)Ð)Ð)Ð)Ð)Ð)r"   c                óD   •— g | ]}|‰ur|nt          j        |¦  «        ‘ŒS r…   r¿   rõ   s     €r   rœ   z'default_array_ufunc.<locals>.<listcomp>ì  s-   ø€ ÐHÐHÐH¸A�q �}�}�!�!­"¬*°Q©-¬-ÐHÐHÐHr"   )Úanyr´   rÕ   )r   r†   rˆ   rŠ   r‹   Ú
new_inputss   `     r   rØ   rØ   á  sh   ø€ õ Ð)Ð)Ð)Ð) &Ð)Ñ)Ô)Ñ)Ô)ð "Ý!Ð!àHÐHÐHÐHÀÐHÑHÔH€Jà!�7�5˜&Ñ!Ô! :Ð8°Ð8Ð8Ð8r"   c                ó„  — |dk    sJ ‚t          |¦  «        dk    s
|d         | urt          S |j        t          vrt          S t          |j                 }t	          | |¦  «        st          S | j        dk    r#t          | t          ¦  «        rd|d<   d|vrd|d<    t          | |¦  «        dddi|¤Ž}t          |¦  «        }|S )	z@
    Dispatch ufunc reductions to self's reduction methods.
    r½   rŸ   r   FÚnumeric_onlyÚaxisÚskipnar…   )
r¸   r   r‚   ÚREDUCTION_ALIASESr¥   r³   rµ   r   rÕ   r   )r   r†   rˆ   rŠ   r‹   Úmethod_namer¬   s          r   rÔ   rÔ   ñ  sé   € ð �XÒÐÐÐå
ˆ6�{„{�aÒÐ˜6 !œ9¨DÐ0Ð0ÝÐà„~Õ.Ð.Ð.ÝÐå# E¤NÔ3€Kõ �4˜Ñ%Ô%ð ÝÐà„y�1‚}€}Ý�d�JÑ'Ô'ð 	+à%*ˆF�>Ñ"à˜ÐÐð ˆF�6‰Nð (�W�T˜;Ñ'Ô'Ð?Ð?¨uÐ?¸Ð?Ð?€FÝ% fÑ-Ô-€FØ€Mr"   )r†   r‡   rˆ   r‰   rŠ   r   r‹   r   )rç   rÐ   )r†   r‡   rˆ   r‰   )rç   rð   )Ú__doc__Ú
__future__r   r%   Útypingr   ÚnumpyrÀ   Úpandas._libsr   Úpandas._libs.ops_dispatchr   Úpandas.core.dtypes.castr   Úpandas.core.dtypes.genericr   Úpandas.corer	   Úpandas.core.constructionr   Úpandas.core.ops.commonr   rý   r   ræ   rÈ   rÓ   rí   rØ   rÔ   r…   r"   r   ú<module>r
     sœ  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð à Ð Ð Ð Ð Ð Ø GÐ GÐ GÐ GÐ GÐ Gà <Ð <Ð <Ð <Ð <Ð <Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1à !Ð !Ð !Ð !Ð !Ð !Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ð ØØØð	ð Ð ðY9ð Y9ð Y9ð Y9ð Y9ñ Y9ô Y9ð Y9ð@`ð `ð `ð `ðFð ð ð ð ð  ð  ð  ðF'ð 'ð 'ð 'ð9ð 9ð 9ð 9ð %ð %ð %ð %ð %ð %r"   