Ë
    ª2Úi¬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y)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"y<)=ÚOpsMixinc                ó   — t         S ©N©ÚNotImplemented©ÚselfÚotherÚops      úL/var/www/html/acx/venv/lib/python3.12/site-packages/pandas/core/arraylike.pyÚ_cmp_methodzOpsMixin._cmp_method%   ó   € ÜÐó    Ú__eq__c                óB   — | j                  |t        j                  «      S r   )r    ÚoperatorÚeq©r   r   s     r   r#   zOpsMixin.__eq__(   ó   € à×Ñ ¤x§{¡{Ó3Ð3r"   Ú__ne__c                óB   — | j                  |t        j                  «      S r   )r    r%   Úner'   s     r   r)   zOpsMixin.__ne__,   r(   r"   Ú__lt__c                óB   — | j                  |t        j                  «      S r   )r    r%   Últr'   s     r   r,   zOpsMixin.__lt__0   r(   r"   Ú__le__c                óB   — | j                  |t        j                  «      S r   )r    r%   Úler'   s     r   r/   zOpsMixin.__le__4   r(   r"   Ú__gt__c                óB   — | j                  |t        j                  «      S r   )r    r%   Úgtr'   s     r   r2   zOpsMixin.__gt__8   r(   r"   Ú__ge__c                óB   — | j                  |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   — | j                  |t        j                  «      S r   )r9   r%   Úand_r'   s     r   r:   zOpsMixin.__and__F   s   € à×#Ñ# E¬8¯=©=Ó9Ð9r"   Ú__rand__c                óB   — | j                  |t        j                  «      S r   )r9   r	   Úrand_r'   s     r   r=   zOpsMixin.__rand__J   s   € à×#Ñ# E¬9¯?©?Ó;Ð;r"   Ú__or__c                óB   — | j                  |t        j                  «      S r   )r9   r%   Úor_r'   s     r   r@   zOpsMixin.__or__N   ó   € à×#Ñ# E¬8¯<©<Ó8Ð8r"   Ú__ror__c                óB   — | j                  |t        j                  «      S r   )r9   r	   Úror_r'   s     r   rD   zOpsMixin.__ror__R   ó   € à×#Ñ# E¬9¯>©>Ó:Ð:r"   Ú__xor__c                óB   — | j                  |t        j                  «      S r   )r9   r%   Úxorr'   s     r   rH   zOpsMixin.__xor__V   rC   r"   Ú__rxor__c                óB   — | j                  |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   — | j                  |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Ð6r"   Ú__radd__c                óB   — | j                  |t        j                  «      S r   )rO   r	   Úraddr'   s     r   rR   zOpsMixin.__radd__À   ó   € à×!Ñ! %¬¯©Ó8Ð8r"   Ú__sub__c                óB   — | j                  |t        j                  «      S r   )rO   r%   Úsubr'   s     r   rV   zOpsMixin.__sub__Ä   ó   € à×!Ñ! %¬¯©Ó6Ð6r"   Ú__rsub__c                óB   — | j                  |t        j                  «      S r   )rO   r	   Úrsubr'   s     r   rZ   zOpsMixin.__rsub__È   rU   r"   Ú__mul__c                óB   — | j                  |t        j                  «      S r   )rO   r%   Úmulr'   s     r   r]   zOpsMixin.__mul__Ì   rY   r"   Ú__rmul__c                óB   — | j                  |t        j                  «      S r   )rO   r	   Úrmulr'   s     r   r`   zOpsMixin.__rmul__Ð   rU   r"   Ú__truediv__c                óB   — | j                  |t        j                  «      S r   )rO   r%   Útruedivr'   s     r   rc   zOpsMixin.__truediv__Ô   s   € à×!Ñ! %¬×)9Ñ)9Ó:Ð:r"   Ú__rtruediv__c                óB   — | j                  |t        j                  «      S r   )rO   r	   Úrtruedivr'   s     r   rf   zOpsMixin.__rtruediv__Ø   s   € à×!Ñ! %¬×);Ñ);Ó<Ð<r"   Ú__floordiv__c                óB   — | j                  |t        j                  «      S r   )rO   r%   Úfloordivr'   s     r   ri   zOpsMixin.__floordiv__Ü   s   € à×!Ñ! %¬×):Ñ):Ó;Ð;r"   Ú__rfloordivc                óB   — | j                  |t        j                  «      S r   )rO   r	   Ú	rfloordivr'   s     r   Ú__rfloordiv__zOpsMixin.__rfloordiv__à   s   € à×!Ñ! %¬×)<Ñ)<Ó=Ð=r"   Ú__mod__c                óB   — | j                  |t        j                  «      S r   )rO   r%   Úmodr'   s     r   rp   zOpsMixin.__mod__ä   rY   r"   Ú__rmod__c                óB   — | j                  |t        j                  «      S r   )rO   r	   Úrmodr'   s     r   rs   zOpsMixin.__rmod__è   rU   r"   Ú
__divmod__c                ó.   — | j                  |t        «      S r   )rO   Údivmodr'   s     r   rv   zOpsMixin.__divmod__ì   s   € à×!Ñ! %¬Ó0Ð0r"   Ú__rdivmod__c                óB   — | j                  |t        j                  «      S r   )rO   r	   Úrdivmodr'   s     r   ry   zOpsMixin.__rdivmod__ð   s   € à×!Ñ! %¬×):Ñ):Ó;Ð;r"   Ú__pow__c                óB   — | j                  |t        j                  «      S r   )rO   r%   Úpowr'   s     r   r|   zOpsMixin.__pow__ô   rY   r"   Ú__rpow__c                óB   — | j                  |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ñ ˜hÓ'ñ4ó (ð4ñ ˜hÓ'ñ4ó (ð4ñ ˜hÓ'ñ4ó (ð4ñ ˜hÓ'ñ4ó (ð4ñ ˜hÓ'ñ4ó (ð4òñ ˜iÓ(ñ:ó )ð:ñ ˜jÓ)ñ<ó *ð<ñ ˜hÓ'ñ9ó (ð9ñ ˜iÓ(ñ;ó )ð;ñ ˜iÓ(ñ9ó )ð9ñ ˜jÓ)ñ;ó *ð;òñ ˜iÓ(ñY7ó )ðY7ñv ˜jÓ)ñ9ó *ð9ñ ˜iÓ(ñ7ó )ð7ñ ˜jÓ)ñ9ó *ð9ñ ˜iÓ(ñ7ó )ð7ñ ˜jÓ)ñ9ó *ð9ñ ˜mÓ,ñ;ó -ð;ñ ˜nÓ-ñ=ó .ð=ñ ˜nÓ-ñ<ó .ð<ñ ˜mÓ,ñ>ó -ð>ñ ˜iÓ(ñ7ó )ð7ñ ˜jÓ)ñ9ó *ð9ñ ˜lÓ+ñ1ó ,ð1ñ ˜mÓ,ñ<ó -ð<ñ ˜iÓ(ñ7ó )ð7ñ ˜jÓ)ñ9ó *ñ9r"   r   c                ó†  ‡ ‡‡‡‡‡‡‡‡— ddl m}m} ddlmŠ ddlmŠ t        ‰ «      }t        di |¤Ž}t        ‰ ‰‰g|¢­i |¤Ž}|t        ur|S t        j                  j                  |j                  f}	|D ]s  }
t        |
d«      xr |
j                  ‰ j                  kD  }t        |
d«      xr0 t        |
«      j                  |	vxr t!        |
‰ j"                  «       }|s|sŒmt        c S  t%        d„ |D «       «      }t'        ||d¬	«      D ��cg c]  \  }}t)        |‰«      sŒ|‘Œ c}}Št+        ‰«      d
kD  rÔt-        |«      }t+        |«      d
kD  r"||hj/                  |«      rt1        d‰› d�«      ‚‰ j2                  }‰d
d D ]B  }t5        t'        ||j2                  d¬	«      «      D ]  \  }\  }}|j7                  |«      ||<   Œ ŒD t9        t'        ‰ j:                  |d¬	«      «      Št%        ˆˆfd„t'        ||d¬	«      D «       «      }n+t9        t'        ‰ j:                  ‰ j2                  d¬	«      «      Š‰ j<                  d
k(  rK|D �ch c]  }t        |d«      sŒ|j>                  ’Œ }}t+        |«      d
k(  r|jA                  «       nd}d|iŠni Šˆˆfd„}ˆˆˆˆˆˆ fd„Šd|v rtC        ‰ ‰‰g|¢­i |¤Ž} ||«      S ‰dk(  rtE        ‰ ‰‰g|¢­i |¤Ž}|t        ur|S ‰ j<                  d
kD  rBt+        |«      d
kD  s‰jF                  d
kD  r%t%        d„ |D «       «      } tI        ‰‰«      |i |¤Ž}nz‰ j<                  d
k(  r%t%        d„ |D «       «      } tI        ‰‰«      |i |¤Ž}nF‰dk(  r-|s+|d   jJ                  }|jM                  tI        ‰‰«      «      }ntO        |d   ‰‰g|¢­i |¤Ž} ||«      }|S c c}}w c c}w )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  ó2   K  — | ]  }t        |«      –— Œ y ­wr   )Útype©Ú.0Úxs     r   ú	<genexpr>zarray_ufunc.<locals>.<genexpr>-  s   è ø€ Ò*˜a”$�q—'Ñ*ùs   ‚T©Ústricté   zCannot apply ufunc z& to mixed DataFrame and Series inputs.Nc              3  ód   •K  — | ]'  \  }}t        |‰«      r |j                  di ‰¤Žn|–— Œ) y ­w)Nr…   )Ú
issubclassÚreindex)r�   r‘   Útr‰   Úreconstruct_axess      €€r   r’   zarray_ufunc.<locals>.<genexpr>G  s:   øè ø€ ò 
á��1ô .8¸¸7Ô-CˆIˆA�I‰IÑ)Ð(Ò)ÈÓJñ
ùs   ƒ-0Únamec                óZ   •— ‰j                   dkD  rt        ˆfd„| D «       «      S  ‰| «      S )Nr•   c              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wr   r…   )r�   r‘   Ú_reconstructs     €r   r’   z3array_ufunc.<locals>.reconstruct.<locals>.<genexpr>X  s   øè ø€ Ò9¨Q™ aŸÑ9ùs   ƒ)ÚnoutÚtuple)Úresultrž   Úufuncs    €€r   Úreconstructz array_ufunc.<locals>.reconstructU  s*   ø€ Ø�:‰:˜Š>äÓ9°&Ô9Ó9Ð9á˜FÓ#Ð#r"   c                óF  •— t        j                  | «      r| S | j                  ‰j                  k7  r‰dk(  rt        ‚| S t	        | ‰«      r‰j                  | | j                  ¬«      } n ‰j                  | fi ‰¤‰¤ddi¤Ž} t        ‰«      dk(  r| j                  ‰«      } | S )NÚouter)ÚaxesÚcopyFr•   )
r   Ú	is_scalarÚndimÚNotImplementedErrorÚ
isinstanceÚ_constructor_from_mgrr¦   Ú_constructorÚlenÚ__finalize__)r¡   rŠ   Ú	alignableÚmethodrš   Úreconstruct_kwargsr   s    €€€€€€r   rž   z!array_ufunc.<locals>._reconstruct\  s¬   ø€ Ü�=‰=˜Ô ØˆMà�;‰;˜$Ÿ)™)Ò#Ø˜Ò Ü)Ð)ØˆMÜ�f˜lÔ+à×/Ñ/°¸V¿[¹[Ð/ÓI‰Fð '�T×&Ñ&ØñØ*ðØ.@ñØGLòˆFô ˆy‹>˜QÒØ×(Ñ(¨Ó.ˆFØˆr"   ÚoutÚreducec              3  óF   K  — | ]  }t        j                  |«      –— Œ y ­wr   )ÚnpÚasarrayr�   s     r   r’   zarray_ufunc.<locals>.<genexpr>‹  s   è ø€ Ò5¨”r—z‘z !—}Ñ5ùs   ‚!c              3  ó6   K  — | ]  }t        |d ¬«      –— Œ y­w)T)Úextract_numpyNr
   r�   s     r   r’   zarray_ufunc.<locals>.<genexpr>‘  s   è ø€ ÒLÀ”} Q°d×;Ð;ÑLùs   ‚Ú__call__r…   )(Úpandas.core.framer‡   rˆ   Úpandas.core.genericr‰   Úpandas.core.internalsrŠ   rŽ   Ú_standardize_out_kwargr   r   r¶   ÚndarrayrŒ   Úhasattrr‹   r«   Ú_HANDLED_TYPESr    Úzipr—   r®   ÚsetÚissubsetrª   r¦   Ú	enumerateÚunionÚdictÚ_AXIS_ORDERSr©   r›   ÚpopÚdispatch_ufunc_with_outÚdispatch_reduction_ufuncrŸ   ÚgetattrÚ_mgrÚapplyÚdefault_array_ufunc) r   r¢   r±   ÚinputsÚkwargsr‡   rˆ   Úclsr¡   Úno_deferÚitemÚhigher_priorityÚhas_array_ufuncÚtypesr‘   r™   Ú	set_typesr¦   ÚobjÚiÚax1Úax2Únamesr›   r£   ÚmgrrŠ   r‰   rž   r°   rš   r²   s    ```                       @@@@@@r   Úarray_ufuncrß     sá  ÿø€ ÷õ ,Ý2ä
ˆt‹*€Cä#Ñ- fÑ-€Fô /¨t°U¸FÐVÀVÒVÈvÑV€FØ”^Ñ#Øˆô 	�
‰
×"Ñ"Ø×Ñð€Hð
 ò "ˆä�DÐ.Ó/ò BØ×'Ñ'¨$×*AÑ*AÑAð 	ô
 �DÐ+Ó,ò :Ü�T“
×*Ñ*°(Ð:ò:ä˜t T×%8Ñ%8Ó9Ð9ð 	ñ
 šoÜ!Ò!ð"ô Ñ* 6Ô*Ó*€Eä˜& %°Ô5÷Ùˆa�¼ÀAÀwÕ9OŠó€Iô ˆ9ƒ~˜Òô
 ˜“Jˆ	Üˆy‹>˜AÒ 9¨fÐ"5×">Ñ">¸yÔ"Iô &Ø% e WÐ,RÐSóð ð �y‰yˆØ˜Q˜R�=ò 	)ˆCô "+¬3¨t°S·X±XÀdÔ+KÓ!Lò )‘�‘:�C˜ØŸ)™) C›.��Q’ñ)ð	)ô  ¤ D×$5Ñ$5°tÀDÔ IÓJÐÜô 
ä˜F E°$Ô7ô
ó 
‰ô
  ¤ D×$5Ñ$5°t·y±yÈÔ NÓOÐà‡y�y�A‚~Ø!'Ö>˜A¬7°1°fÕ+=�—“Ð>ˆÐ>Ü! %›j¨Ašoˆu�y‰yŒ{°4ˆØ$ d˜^ÑàÐõ$÷ñ ð0 ��ä(¨¨u°fÐP¸vÒPÈÑPˆÙ˜6Ó"Ð"à�Òä)¨$°°vÐQÀÒQÈ&ÑQˆØœÑ'ØˆMð
 ‡y�y�1‚}œ#˜f›+¨š/¨U¯Z©Z¸!ª^ô Ñ5¨fÔ5Ó5ˆð (”˜ Ó'¨Ð:°6Ñ:‰Ø	�‰�aŠäÑLÀVÔLÓLˆØ'”˜ Ó'¨Ð:°6Ñ:‰à	�:Ò	¡fð �Q‰i�n‰nˆØ—‘œ7 5¨&Ó1Ó2‰ô % V¨A¡Y°°vÐQÀÒQÈ&ÑQˆñ ˜Ó €FØ€MùógùòB ?s   ÄN8Ä%N8ÉN>ÉN>c                 ót   — d| vr3d| v r/d| v r+| j                  d«      }| j                  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¾   ¤  sM   € ð �FÑ˜v¨Ñ/°F¸fÑ4DØ�z‰z˜&Ó!ˆØ�z‰z˜&Ó!ˆØ�TˆlˆØˆˆu‰Ø€Mr"   c                ó¾  — |j                  d«      }|j                  dd«      } t        ||«      |i |¤Ž}|t        u rt        S t        |t        «      rRt        |t        «      rt        |«      t        |«      k7  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€Fà”ÑÜÐä�&œ%Ô ä˜#œuÔ%¬¨S«´S¸³[Ò)@Ü%Ð%ä˜C °Ô5ò 	+‰HˆC�Ü˜#˜s EÕ*ð	+ð ˆ
ä�#”uÔÜˆs‹8�qŠ=Ø�a‘&‰Cä%Ð%ä�#�v˜uÔ%Ø€Jr"   c                óB   — |€|| dd yt        j                  | ||«       y)zV
    Set a ufunc result into 'out', masking with a 'where' argument if necessary.
    N)r¶   Úputmask)r³   r¡   rä   s      r   rå   rå   Ö  s"   € ð €}àˆ‰A‰ä
�
‰
�3˜˜vÕ&r"   c                ó¶   ‡ — t        ˆ fd„|D «       «      st        ‚|D �cg c]  }|‰ ur|nt        j                  |«      ‘Œ }} t	        ||«      |i |¤ŽS c c}w )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 –— Œ
 y ­wr   r…   )r�   r‘   r   s     €r   r’   z&default_array_ufunc.<locals>.<genexpr>é  s   øè ø€ Ò)˜Qˆq�DŒyÑ)ùs   ƒ)Úanyrª   r¶   r·   rÌ   )r   r¢   r±   rÐ   rÑ   r‘   Ú
new_inputss   `      r   rÏ   rÏ   á  s^   ø€ ô Ó) &Ô)Ô)Ü!Ð!àAGÖH¸A�q ‘}‘!¬"¯*©*°Q«-Ñ7ÐH€JÐHà!Œ7�5˜&Ó! :Ð8°Ñ8Ð8ùò Is    "Ac                ó\  — |dk(  sJ ‚t        |«      dk7  s|d   | urt        S |j                  t        vrt        S t        |j                     }t	        | |«      st        S | j
                  dkD  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ÜÐà‡~�~Ô.Ñ.ÜÐä# E§N¡NÑ3€Kô �4˜Ô%ÜÐà‡y�y�1‚}Ü�dœJÔ'à%*ˆF�>Ñ"à˜Ñð ˆF�6‰Nð (ŒW�T˜;Ó'Ñ?¨uÐ?¸Ñ?€FÜ% fÓ-€FØ€Mr"   )r¢   únp.ufuncr±   ÚstrrÐ   r   rÑ   r   )ÚreturnrÇ   )r¢   rô   r±   rõ   )rö   ÚNone)Ú__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     sq   ðñõ #ã Ý ã å Ý Gå <Ý 1å !Ý 2Ý ;ð ØØØñ	Ð ÷Y9ñ Y9ó@`óFó óF'ó9ô %r"   