§
    	�’jIØ  ã                  óþ  — d dl mZ d dlmZmZmZ d dlmZ d dlZd dl	m
Z
 d dlmZmZmZmZmZmZ d dlZd dlmZmZ d dlmZ d d	lmZ d d
lmZmZ d dl m!Z! d dl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.c m/Z0 d dl1m2Z2 d dl3m4Z4 d dl5m.c m6c m7Z8 d dl5m9Z9m:Z: d dl;m<Z< erd dl=m>Z>m?Z?m@Z@mAZAmBZBmCZC d dlDmEZE  eFd ¦  «        ZG ejH        ejI        ¦  «        ZJdd„ZK ed¦  «         G d„ de9¦  «        ¦   «         ZLdS )é    )Úannotations)ÚCallableÚHashableÚIterator)Ú	timedeltaN)Ú	getsizeof)ÚTYPE_CHECKINGÚAnyÚLiteralÚSelfÚcastÚoverload)ÚindexÚlib)Ú
no_default)Úfunction)Úcache_readonlyÚ
set_module)ÚExtensionDtype)Úensure_platform_intÚensure_python_intÚis_floatÚ
is_integerÚ	is_scalarÚis_signed_integer_dtype)ÚABCTimedeltaIndex)Úops)Úextract_array)Úcheck_array_indexer)ÚIndexÚmaybe_extract_name)Úunpack_zerodim_and_defer)ÚAxisÚDtypeÚJoinHowÚ
NaPositionÚNumpySorterÚnpt©ÚSeriesÚstartÚintÚstepÚlower_limitÚreturnc                óZ   — || z
   t          |¦  «        z   }| t          |¦  «        |z  z   S )z?Returns the smallest element greater than or equal to the limit)Úabs)r+   r-   r.   Úno_stepss       úGC:\Projects\DSCons\.venv\Lib\site-packages\pandas\core\indexes\range.pyÚmin_fitting_elementr4   G   s3   € à Ñ&Ð'­3¨t©9¬9Ñ4Ð5€HØ•3�t‘9”9˜xÑ'Ñ'Ð'ó    Úpandasc                  ó´  ‡ — e Zd ZU dZdZedfZded<   ded<   ed¨d
„¦   «         Z		 	 	 	 	 	 d©dªd„Z
ed«d¬d„¦   «         Ze	 d­d®d„¦   «         Zed¯d„¦   «         Zed°d„¦   «         Zed±d„¦   «         Zd²d„Zd „ Zd!„ Zd³d&„Zed´d(„¦   «         Zed´d)„¦   «         Zed´d*„¦   «         Zed´d+„¦   «         Zdµd¶d-„Zed·d/„¦   «         Zed¸d0„¦   «         Zed¸d1„¦   «         Zed¸d2„¦   «         Zd¹d5„Zedºd6„¦   «         Z d´d7„Z!	 	 	 d»d¼ˆ fd?„Z"ed¸d@„¦   «         Z#d½dB„Z$d¾dD„Z%e&fd¿dF„Z'dÀdG„Z(dÁˆ fdI„Z)dÂdÃdJ„Z*dÄdN„Z+dÅdÆdQ„Z,dÅdÆdR„Z-	 	 dÅdÇˆ fdS„Z.dÅdÈdT„Z/dÅdÈdU„Z0dÉdV„Z1	 	 dÊdËdZ„Z2dÌˆ fd]„Z3e4d^d^d^d^d_œdÍdf„¦   «         Z5e4d^d^d^dgœdÎdj„¦   «         Z5e4d^d^d^d^d_œdÏdl„¦   «         Z5ddOdmdd_œdÏˆ fdn„Z5dµdÐˆ fdo„Z6dÑds„Z7dÒdt„Z8dÓˆ fdv„Z9d­ˆ fdw„	Z:	 d«dÔˆ fdy„Z;dÕˆ fd}„Z<	 dÖd×ˆ fd„Z=dØˆ fd€„Z>dÙˆ fd‚„Z?dÚˆ fd…„Z@d´d†„ZAed´d‡„¦   «         ZBˆ fdˆ„ZCdÛd‹„ZD eEdŒ¦  «        ˆ fd�„¦   «         ZFd¸dŽ„ZGd¸d�„ZHdÜdÝˆ fd“„ZIˆ fd”„ZJˆ fd•„ZKdÞˆ fd–„ZLdÀd—„ZMdÀd˜„ZNdÀd™„ZO	 	 	 dßdàd�„ZP	 	 	 	 	 dádâˆ fd¡„ZQ	 	 dãdäˆ fd§„ZRˆ xZSS )åÚ
RangeIndexa±  
    Immutable Index implementing a monotonic integer range.

    RangeIndex is a memory-saving special case of an Index limited to representing
    monotonic ranges with a 64-bit dtype. Using RangeIndex may in some instances
    improve computing speed.

    This is the default index type used
    by DataFrame and Series when no explicit index is provided by the user.

    Parameters
    ----------
    start : int, range, or other RangeIndex instance, default None
        If int and "stop" is not given, interpreted as "stop" instead.
    stop : int, default None
        The end value of the range (exclusive).
    step : int, default None
        The step size of the range.
    dtype : np.int64, default None
        Unused, accepted for homogeneity with other index types.
    copy : bool, default False
        Unused, accepted for homogeneity with other index types.
    name : object, optional
        Name to be stored in the index.

    Attributes
    ----------
    start
    stop
    step

    Methods
    -------
    from_range

    See Also
    --------
    Index : The base pandas Index type.

    Examples
    --------
    >>> list(pd.RangeIndex(5))
    [0, 1, 2, 3, 4]

    >>> list(pd.RangeIndex(-2, 4))
    [-2, -1, 0, 1, 2, 3]

    >>> list(pd.RangeIndex(0, 10, 2))
    [0, 2, 4, 6, 8]

    >>> list(pd.RangeIndex(2, -10, -3))
    [2, -1, -4, -7]

    >>> list(pd.RangeIndex(0))
    []

    >>> list(pd.RangeIndex(1, 0))
    []
    Ú
rangeindexzsigned integerÚrangeÚ_rangeú
np.ndarrayÚ_valuesr/   útype[libindex.Int64Engine]c                ó   — t           j        S ©N)ÚlibindexÚInt64Engine©Úselfs    r3   Ú_engine_typezRangeIndex._engine_type�   s   € åÔ#Ð#r5   NFÚdtypeúDtype | NoneÚcopyÚboolÚnameúHashable | Noner   c                ó.  — |                       |¦  «         t          ||| ¦  «        }t          || ¦  «        r|                     |¬¦  «        S t          |t          ¦  «        r|                      ||¬¦  «        S t          j        |||¦  «        rt          d¦  «        ‚|�t          |¦  «        nd}|€d|}}nt          |¦  «        }|�t          |¦  «        nd}|dk    rt          d¦  «        ‚t	          |||¦  «        }|                      ||¬¦  «        S )N©rJ   z,RangeIndex(...) must be called with integersr   é   zStep must not be zero)Ú_validate_dtyper!   Ú
isinstancerH   r:   Ú_simple_newÚcomÚall_noneÚ	TypeErrorr   Ú
ValueError)Úclsr+   Ústopr-   rF   rH   rJ   Úrngs           r3   Ú__new__zRangeIndex.__new__—   s-  € ð 	×Ò˜EÑ"Ô"Ð"Ý! $¨¨sÑ3Ô3ˆõ �e˜SÑ!Ô!ð 	5Ø—:’: 4�:Ñ(Ô(Ð(Ý˜�uÑ%Ô%ð 	5Ø—?’? 5¨t�?Ñ4Ô4Ð4õ Œ<˜˜t TÑ*Ô*ð 	LÝÐJÑKÔKÐKà,1Ð,=Õ! %Ñ(Ô(Ð(À1ˆàˆ<Ø˜U�4ˆEˆEå$ TÑ*Ô*ˆDà*.Ð*:Õ  Ñ&Ô&Ð&ÀˆØ�1Š9ˆ9ÝÐ4Ñ5Ô5Ð5å�E˜4 Ñ&Ô&ˆØ�Š˜s¨ˆÑ.Ô.Ð.r5   Údatac                ó¸   — t          |t          ¦  «        st          | j        › d|›d�¦  «        ‚|                      |¦  «         |                      ||¬¦  «        S )aË  
        Create :class:`pandas.RangeIndex` from a ``range`` object.

        This method provides a way to create a :class:`pandas.RangeIndex` directly
        from a Python ``range`` object. The resulting :class:`RangeIndex` will have
        the same start, stop, and step values as the input ``range`` object.
        It is particularly useful for constructing indices in an efficient and
        memory-friendly manner.

        Parameters
        ----------
        data : range
            The range object to be converted into a RangeIndex.
        name : str, default None
            Name to be stored in the index.
        dtype : Dtype or None
            Data type for the RangeIndex. If None, the default integer type will
            be used.

        Returns
        -------
        RangeIndex

        See Also
        --------
        RangeIndex : Immutable Index implementing a monotonic integer range.
        Index : Immutable sequence used for indexing and alignment.

        Examples
        --------
        >>> pd.RangeIndex.from_range(range(5))
        RangeIndex(start=0, stop=5, step=1)

        >>> pd.RangeIndex.from_range(range(2, -10, -3))
        RangeIndex(start=2, stop=-10, step=-3)
        z7(...) must be called with object coercible to a range, z was passedrM   )rP   r:   rT   Ú__name__rO   rQ   )rV   rZ   rJ   rF   s       r3   Ú
from_rangezRangeIndex.from_range»   sv   € õL ˜$¥Ñ&Ô&ð 	ÝØ”<ð .ð .Øð.ð .ð .ñô ð ð 	×Ò˜EÑ"Ô"Ð"Ø�Š˜t¨$ˆÑ/Ô/Ð/r5   Úvaluesc                óÈ   — t                                | ¦  «        }t          |t          ¦  «        sJ ‚||_        ||_        i |_        |                     ¦   «          d |_        |S r@   )	ÚobjectrY   rP   r:   r;   Ú_nameÚ_cacheÚ_reset_identityÚ_references)rV   r^   rJ   Úresults       r3   rQ   zRangeIndex._simple_newì   s_   € õ —’ Ñ$Ô$ˆå˜&¥%Ñ(Ô(Ð(Ð(Ð(àˆŒØˆŒØˆŒØ×ÒÑ Ô Ð Ø!ˆÔØˆr5   ÚNonec                ób   — |€d S | j         \  }} ||¦  «        st          d|› d|› �¦  «        ‚d S )Nz#Incorrect `dtype` passed: expected z, received )Ú_dtype_validation_metadatarU   )rV   rF   Úvalidation_funcÚexpecteds       r3   rO   zRangeIndex._validate_dtypeû   sZ   € àˆ=ØˆFà$'Ô$BÑ!ˆ˜Øˆ˜uÑ%Ô%ð 	ÝØR°hÐRÐRÈ5ÐRÐRñô ð ð	ð 	r5   útype[Index]c                ó   — t           S )z(return the class to use for construction)r    rC   s    r3   Ú_constructorzRangeIndex._constructor
  s	   € õ ˆr5   c                ód   — t          j        | j        | j        | j        t           j        ¬¦  «        S )z�
        An int array that for performance reasons is created only when needed.

        The constructed array is saved in ``_cache``.
        ©rF   )ÚnpÚaranger+   rW   r-   Úint64rC   s    r3   Ú_datazRangeIndex._data  s%   € õ Œy˜œ T¤Y°´	ÅÄÐJÑJÔJÐJr5   úlist[tuple[str, int]]c                óD   — | j         }d|j        fd|j        fd|j        fgS )z,return a list of tuples of start, stop, stepr+   rW   r-   )r;   r+   rW   r-   ©rD   rX   s     r3   Ú_get_data_as_itemszRangeIndex._get_data_as_items  s+   € àŒkˆØ˜#œ)Ð$ v¨s¬xÐ&8¸6À3Ä8Ð:LÐMÐMr5   c                ó¸   — d| j         i}|                     t          |                      ¦   «         ¦  «        ¦  «         t          j        t          | ¦  «        |fd fS )NrJ   )ra   ÚupdateÚdictrw   ÚibaseÚ
_new_IndexÚtype)rD   Úds     r3   Ú
__reduce__zRangeIndex.__reduce__  sN   € Ø�T”ZÐ ˆØ	�Š•�d×-Ò-Ñ/Ô/Ñ0Ô0Ñ1Ô1Ð1ÝÔ¥$ t¡*¤*¨a °$Ð6Ð6r5   c                ó´   — t          d|                      ¦   «         ¦  «        }| j        �.|                     dt	          j        | j        ¦  «        f¦  «         |S )zH
        Return a list of tuples of the (attr, formatted_value)
        zlist[tuple[str, str | int]]NrJ   )r   rw   ra   Úappendr{   Údefault_pprint)rD   Úattrss     r3   Ú_format_attrszRangeIndex._format_attrs&  sQ   € õ Ð2°D×4KÒ4KÑ4MÔ4MÑNÔNˆØŒ:Ð!Ø�LŠL˜&¥%Ô"6°t´zÑ"BÔ"BÐCÑDÔDÐDØˆr5   Úheaderú	list[str]Úna_repÚstrc               ó  ‡— t          | j        ¦  «        s|S t          | j        d         ¦  «        }t          | j        d         ¦  «        }t          t          |¦  «        t          |¦  «        ¦  «        Š|ˆfd„| j        D ¦   «         z   S )Nr   éÿÿÿÿc                ó   •— g | ]	}|d ‰› �›‘Œ
S )ú<© )Ú.0ÚxÚ
max_lengths     €r3   ú
<listcomp>z2RangeIndex._format_with_header.<locals>.<listcomp>7  s'   ø€ ÐCÐCÐC°!˜AÐ- 
Ð-Ð-Ð-ÐCÐCÐCr5   )Úlenr;   rˆ   Úmax)rD   r…   r‡   Úfirst_val_strÚlast_val_strr�   s        @r3   Ú_format_with_headerzRangeIndex._format_with_header/  s�   ø€ å�4”;ÑÔð 	ØˆMÝ˜DœK¨œNÑ+Ô+ˆÝ˜4œ; rœ?Ñ+Ô+ˆÝ�˜]Ñ+Ô+­S°Ñ->Ô->Ñ?Ô?ˆ
àÐCÐCÐCÐC°t´{ÐCÑCÔCÑCÐCr5   r,   c                ó   — | j         j        S )aÁ  
        The value of the `start` parameter (``0`` if this was not supplied).

        This property returns the starting value of the `RangeIndex`. If the `start`
        value is not explicitly provided during the creation of the `RangeIndex`,
        it defaults to 0.

        See Also
        --------
        RangeIndex : Immutable index implementing a range-based index.
        RangeIndex.stop : Returns the stop value of the `RangeIndex`.
        RangeIndex.step : Returns the step value of the `RangeIndex`.

        Examples
        --------
        >>> idx = pd.RangeIndex(5)
        >>> idx.start
        0

        >>> idx = pd.RangeIndex(2, -10, -3)
        >>> idx.start
        2
        )r;   r+   rC   s    r3   r+   zRangeIndex.start;  s   € ð4 Œ{Ô Ð r5   c                ó   — | j         j        S )aø  
        The value of the `stop` parameter.

        This property returns the `stop` value of the RangeIndex, which defines the
        upper (or lower, in case of negative steps) bound of the index range. The
        `stop` value is exclusive, meaning the RangeIndex includes values up to but
        not including this value.

        See Also
        --------
        RangeIndex : Immutable index representing a range of integers.
        RangeIndex.start : The start value of the RangeIndex.
        RangeIndex.step : The step size between elements in the RangeIndex.

        Examples
        --------
        >>> idx = pd.RangeIndex(5)
        >>> idx.stop
        5

        >>> idx = pd.RangeIndex(2, -10, -3)
        >>> idx.stop
        -10
        )r;   rW   rC   s    r3   rW   zRangeIndex.stopW  s   € ð4 Œ{ÔÐr5   c                ó   — | j         j        S )aK  
        The value of the `step` parameter (``1`` if this was not supplied).

        The ``step`` parameter determines the increment (or decrement in the case
        of negative values) between consecutive elements in the ``RangeIndex``.

        See Also
        --------
        RangeIndex : Immutable index implementing a range-based index.
        RangeIndex.stop : Returns the stop value of the RangeIndex.
        RangeIndex.start : Returns the start value of the RangeIndex.

        Examples
        --------
        >>> idx = pd.RangeIndex(5)
        >>> idx.step
        1

        >>> idx = pd.RangeIndex(2, -10, -3)
        >>> idx.step
        -3

        Even if :class:`pandas.RangeIndex` is empty, ``step`` is still ``1`` if
        not supplied.

        >>> idx = pd.RangeIndex(1, 0)
        >>> idx.step
        1
        )r;   r-   rC   s    r3   r-   zRangeIndex.steps  s   € ð@ Œ{ÔÐr5   c                óh   ‡— | j         Št          ‰¦  «        t          ˆfd„dD ¦   «         ¦  «        z   S )zD
        Return the number of bytes in the underlying data.
        c              3  óR   •K  — | ]!}t          t          ‰|¦  «        ¦  «        V — Œ"d S r@   )r   Úgetattr)rŽ   Ú	attr_namerX   s     €r3   ú	<genexpr>z$RangeIndex.nbytes.<locals>.<genexpr>›  sI   øè è € ð $
ð $
àõ •g˜c 9Ñ-Ô-Ñ.Ô.ð$
ð $
ð $
ð $
ð $
ð $
r5   )r+   rW   r-   )r;   r   Úsumrv   s    @r3   ÚnbyteszRangeIndex.nbytes•  sQ   ø€ ð
 ŒkˆÝ˜‰~Œ~¥ð $
ð $
ð $
ð $
à6ð$
ñ $
ô $
ñ !
ô !
ñ 
ð 	
r5   Údeepc                ó   — | j         S )aè  
        Memory usage of my values

        Parameters
        ----------
        deep : bool
            Introspect the data deeply, interrogate
            `object` dtypes for system-level memory consumption

        Returns
        -------
        bytes used

        Notes
        -----
        Memory usage does not include memory consumed by elements that
        are not components of the array if deep=False

        See Also
        --------
        numpy.ndarray.nbytes
        )r    )rD   r¡   s     r3   Úmemory_usagezRangeIndex.memory_usage   s   € ð. Œ{Ðr5   únp.dtypec                ó   — t           S r@   )Ú_dtype_int64rC   s    r3   rF   zRangeIndex.dtype¹  s   € åÐr5   c                ó   — dS )z%return if the index has unique valuesTr�   rC   s    r3   Ú	is_uniquezRangeIndex.is_unique½  s	   € ð ˆtr5   c                óH   — | j         j        dk    pt          | ¦  «        dk    S ©Nr   rN   ©r;   r-   r’   rC   s    r3   Úis_monotonic_increasingz"RangeIndex.is_monotonic_increasingÂ  ó!   € àŒ{Ô !Ò#Ð5¥s¨4¡y¤y°A¢~Ð5r5   c                óH   — | j         j        dk     pt          | ¦  «        dk    S rª   r«   rC   s    r3   Úis_monotonic_decreasingz"RangeIndex.is_monotonic_decreasingÆ  r­   r5   Úkeyr
   c                ó„   — t          |¦  «         	 t          |¦  «        }n# t          t          f$ r Y dS w xY w|| j        v S ©NF)Úhashr   rT   ÚOverflowErrorr;   )rD   r°   s     r3   Ú__contains__zRangeIndex.__contains__Ê  sU   € ÝˆS‰	Œ	ˆ	ð	Ý# CÑ(Ô(ˆCˆCøÝ�=Ð)ð 	ð 	ð 	Ø�5�5ð	øøøà�d”kÐ!Ð!s   ‘! ¡6µ6c                ó   — dS )NÚintegerr�   rC   s    r3   Úinferred_typezRangeIndex.inferred_typeÒ  s   € àˆyr5   c                óŽ  — t          |¦  «        s#t          |¦  «        r`|                      ¦   «         rLt          |¦  «        }	 | j                             |¦  «        S # t
          $ r}t          |¦  «        |‚d}~ww xY wt          |t          ¦  «        rt          |¦  «        ‚|  	                    |¦  «         t          |¦  «        ‚)ap  
        Get integer location for requested label.

        Parameters
        ----------
        key : int or float
            Label to locate. Integer-like floats (e.g. 3.0) are accepted and
            treated as the corresponding integer. Non-integer floats and other
            non-integer labels are not valid and will raise KeyError or
            InvalidIndexError.

        Returns
        -------
        int
            Integer location of the label within the RangeIndex.

        Raises
        ------
        KeyError
            If the label is not present in the RangeIndex or the label is a
            non-integer value.
        InvalidIndexError
            If the label is of an invalid type for the RangeIndex.

        See Also
        --------
        RangeIndex.get_slice_bound : Calculate slice bound that corresponds to
            given label.
        RangeIndex.get_indexer : Computes indexer and mask for new index given
            the current index.
        RangeIndex.get_non_unique : Returns indexer and masks for new index given
            the current index.
        RangeIndex.get_indexer_for : Returns an indexer even when non-unique.

        Examples
        --------
        >>> idx = pd.RangeIndex(5)
        >>> idx.get_loc(3)
        3

        >>> idx = pd.RangeIndex(2, 10, 2)  # values [2, 4, 6, 8]
        >>> idx.get_loc(6)
        2
        N)
r   r   r,   r;   r   rU   ÚKeyErrorrP   r   Ú_check_indexing_error)rD   r°   Únew_keyÚerrs       r3   Úget_loczRangeIndex.get_locÙ  sÂ   € õZ �c‰?Œ?ð 	-�x¨™}œ}ð 	-°·²Ñ1AÔ1Að 	-Ý˜#‘h”hˆGð-Ø”{×(Ò(¨Ñ1Ô1Ð1øÝð -ð -ð -Ý˜s‘m”m¨Ð,øøøøð-øøøå�c�8Ñ$Ô$ð 	 Ý˜3‘-”-ÐØ×"Ò" 3Ñ'Ô'Ð'Ý�s‰mŒmÐs   ÁA Á
A<Á'A7Á7A<Útargetr    Úmethodú
str | NoneÚlimitú
int | Noneúnpt.NDArray[np.intp]c                óþ  •— t          j        |||¦  «        r%t          ¦   «                              ||||¬¦  «        S | j        dk    r| j        | j        | j        }}}n%| j        d d d…         }|j        |j        |j        }}}t          j	        |¦  «        }	|	|z
  }
|
|z  dk    |
dk    z  |	|k     z  }d|
| <   |
|         |z  |
|<   || j        k    rt          | ¦  «        dz
  |
|         z
  |
|<   t          |
¦  «        S )N)rÀ   Ú	tolerancerÂ   r   rŠ   rN   )rR   Úany_not_noneÚsuperÚ_get_indexerr-   r+   rW   r;   rp   Úasarrayr’   r   )rD   r¿   rÀ   rÂ   rÆ   r+   rW   r-   ÚreverseÚtarget_arrayÚlocsÚvalidÚ	__class__s               €r3   rÉ   zRangeIndex._get_indexer  s  ø€ õ Ô˜F I¨uÑ5Ô5ð 	Ý‘7”7×'Ò'Ø˜v°À%ð (ñ ô ð ð Œ9�qŠ=ˆ=Ø $¤
¨D¬I°t´y˜�4ˆEˆEð ”k $ $ B $Ô'ˆGØ '¤¨w¬|¸W¼\˜�4ˆEå”z &Ñ)Ô)ˆØ˜eÑ#ˆØ˜‘ Ò! d¨a¢iÑ0°LÀ4Ò4GÑHˆØˆˆeˆV‰Ø˜5”k DÑ(ˆˆU‰à�4”9ÒÐå˜d™)œ) a™-¨$¨u¬+Ñ5ˆD�‰KÝ" 4Ñ(Ô(Ð(r5   c                ó   — dS )zA
        Should an integer key be treated as positional?
        Fr�   rC   s    r3   Ú_should_fallback_to_positionalz)RangeIndex._should_fallback_to_positional/  s	   € ð
 ˆur5   ú	list[int]c                ó*   — t          | j        ¦  «        S r@   )Úlistr;   rC   s    r3   ÚtolistzRangeIndex.tolist8  s   € Ý�D”KÑ Ô Ð r5   úIterator[int]c              #  ó$   K  — | j         E d{V —† dS )a7  
        Return an iterator of the values.

        Returns
        -------
        iterator
            An iterator yielding ints from the RangeIndex.

        Examples
        --------
        >>> idx = pd.RangeIndex(3)
        >>> for x in idx:
        ...     print(x)
        0
        1
        2
        N©r;   rC   s    r3   Ú__iter__zRangeIndex.__iter__;  s(   è è € ð$ ”;ÐÐÐÐÐÐÐÐÐr5   r   c                óB  — |t           u r| j        n|}|j        j        dk    rt	          ||t
          j        d¬¦  «        S |j        j        dk    rµ|j        dk    rªt          |¦  «        dk    rJ|d         }t          ||| j
        z   | j
        ¦  «        }t          | ¦  «                             ||¬¦  «        S t          j        |¦  «        }t          |t          ¦  «        r$t          | ¦  «                             ||¬¦  «        S | j                             ||¬¦  «        S )a„  
        Create a new RangeIndex with the same class as the caller, don't copy the
        data, use the same object attributes with passed in attributes taking
        precedence.

        *this is an internal non-public method*

        Parameters
        ----------
        values : the values to create the new RangeIndex, optional
        name : Label, defaults to self.name
        ÚfF)rJ   rF   rH   ÚirN   r   rM   )r   ra   rF   Úkindr    rp   Úfloat64Úndimr’   r:   r-   r}   rQ   r{   Úmaybe_sequence_to_rangerP   rm   )rD   r^   rJ   r+   Ú	new_rangeÚmaybe_ranges         r3   Ú_shallow_copyzRangeIndex._shallow_copyO  s  € ð "¥ZÐ/Ð/ˆtŒzˆz°TˆàŒ<Ô Ò#Ð#Ý˜ dµ"´*À5ÐIÑIÔIÐIØŒ<Ô Ò#Ð#¨¬°qÒ(8Ð(8õ �6‰{Œ{˜aÒÐØ˜qœ	�Ý! %¨°´Ñ):¸D¼IÑFÔF�	Ý˜D‘z”z×-Ò-¨i¸dÐ-ÑCÔCÐCÝÔ7¸Ñ?Ô?ˆKÝ˜+¥uÑ-Ô-ð FÝ˜D‘z”z×-Ò-¨kÀÐ-ÑEÔEÐEØÔ ×,Ò,¨V¸$Ð,Ñ?Ô?Ð?r5   c                óz   — t          | ¦  «                             | j        | j        ¬¦  «        }| j        |_        |S ©NrM   )r}   rQ   r;   ra   rb   )rD   re   s     r3   Ú_viewzRangeIndex._viewl  s2   € Ý�d‘”×'Ò'¨¬¸$¼*Ð'ÑEÔEˆØœˆŒØˆr5   Úpreserve_namesc                óæ   •— t          |t          | ¦  «        ¦  «        s1|j        j        dk    r!|                      |j        |j        ¬¦  «        }t          ¦   «                              |||¦  «        S )NrÜ   rM   )	rP   r}   rF   rÝ   rã   r=   rJ   rÈ   Ú_wrap_reindex_result)rD   r¿   Úindexerrç   rÏ   s       €r3   ré   zRangeIndex._wrap_reindex_resultq  sc   ø€ Ý˜&¥$ t¡*¤*Ñ-Ô-ð 	J°&´,Ô2CÀsÒ2JÐ2JØ×'Ò'¨¬¸V¼[Ð'ÑIÔIˆFÝ‰wŒw×+Ò+¨F°G¸^ÑLÔLÐLr5   c                ól   — |                       ||¬¦  «        d         }|                      |¬¦  «        }|S )a×  
        Make a copy of this object.

        Name is set on the new object.

        Parameters
        ----------
        name : Label, optional
            Set name for new object.
        deep : bool, default False
            If True attempts to make a deep copy of the RangeIndex.
                Else makes a shallow copy.

        Returns
        -------
        RangeIndex
            RangeIndex refer to new object which is a copy of this object.

        See Also
        --------
        RangeIndex.delete: Make new RangeIndex with passed location(-s) deleted.
        RangeIndex.drop: Make new RangeIndex with passed list of labels deleted.

        Notes
        -----
        In most cases, there should be no functional difference from using
        ``deep``, but if ``deep`` is passed it will attempt to deepcopy.

        Examples
        --------
        >>> idx = pd.RangeIndex(3)
        >>> new_idx = idx.copy()
        >>> idx is new_idx
        False
        )rJ   r¡   r   rM   )Ú_validate_namesÚ_rename)rD   rJ   r¡   Ú	new_indexs       r3   rH   zRangeIndex.copyv  s;   € ðH ×#Ò#¨°DÐ#Ñ9Ô9¸!Ô<ˆØ—L’L d�LÑ+Ô+ˆ	ØÐr5   ÚmethúLiteral['min', 'max']úint | floatc                óÀ   — t          | ¦  «        dz
  }|dk    rt          j        S |dk    r| j        dk    s|dk    r| j        dk     r| j        S | j        | j        |z  z   S )NrN   rŠ   Úminr   r“   )r’   rp   Únanr-   r+   )rD   rï   r2   s      r3   Ú_minmaxzRangeIndex._minmaxž  sc   € Ý�t‘9”9˜q‘=ˆØ�rŠ>ˆ>Ý”6ˆMØ�eŠmˆm ¤	¨A¢ °4¸5²=°=ÀTÄYÐQRÂ]À]Ø”:ÐàŒz˜DœI¨Ñ0Ñ0Ð0r5   TÚskipnac                ó~   — t          j        |¦  «         t          j        ||¦  «         |                      d¦  «        S )z#The minimum value of the RangeIndexró   )ÚnvÚvalidate_minmax_axisÚvalidate_minrõ   ©rD   Úaxisrö   ÚargsÚkwargss        r3   ró   zRangeIndex.min§  ó7   € å
Ô Ñ%Ô%Ð%Ý
Œ˜˜fÑ%Ô%Ð%Ø�|Š|˜EÑ"Ô"Ð"r5   c                ó~   — t          j        |¦  «         t          j        ||¦  «         |                      d¦  «        S )z#The maximum value of the RangeIndexr“   )rø   rù   Úvalidate_maxrõ   rû   s        r3   r“   zRangeIndex.max­  rÿ   r5   c                ó`  •— t          j        |¦  «         t          | ¦  «        dk    r* t          t	          ¦   «         d|› �¦  «        ||¬¦  «        S |dk    r| j        dk    rdS t          | ¦  «        dz
  S |dk    r| j        dk    rt          | ¦  «        dz
  S dS t          d|›d�¦  «        ‚)	Nr   Úarg©rü   rö   ró   rN   r“   zmeth=z must be max or min)rø   rù   r’   rœ   rÈ   r-   rU   )rD   rï   rü   rö   rÏ   s       €r3   Ú
_argminmaxzRangeIndex._argminmax³  sÆ   ø€ õ 	Ô Ñ%Ô%Ð%Ýˆt‰9Œ9˜Š>ˆ>Ø1•7�5™7œ7 L¨$ L LÑ1Ô1ØØðñ ô ð ð �UŠ]ˆ]ØŒy˜1Š}ˆ}Ø�qå˜4‘y”y 1‘}Ð$Ø�UŠ]ˆ]ØŒy˜1Š}ˆ}Ý˜4‘y”y 1‘}Ð$à�qåÐ: Ð:Ð:Ð:Ñ;Ô;Ð;r5   c                ó\   — t          j        ||¦  «         |                      d||¬¦  «        S )Nró   r  )rø   Úvalidate_argminr  rû   s        r3   ÚargminzRangeIndex.argminÌ  ó-   € Ý
Ô˜4 Ñ(Ô(Ð(Ø�Š˜u¨4¸ˆÑ?Ô?Ð?r5   c                ó\   — t          j        ||¦  «         |                      d||¬¦  «        S )Nr“   r  )rø   Úvalidate_argmaxr  rû   s        r3   ÚargmaxzRangeIndex.argmaxÐ  r	  r5   c                ó–  — |                      dd¦  «        }|                      dd¦  «         t          j        ||¦  «         d\  }}}| j        j        dk    r)|rt          | ¦  «        }n?t          | ¦  «        dz
  dd}}}n(|rt          | ¦  «        dz
  dd}}}nt          | ¦  «        }t          j        |||t          j        ¬	¦  «        S )
zÞ
        Returns the indices that would sort the index and its
        underlying data.

        Returns
        -------
        np.ndarray[np.intp]

        See Also
        --------
        numpy.ndarray.argsort
        Ú	ascendingTrÝ   N©NNNr   rN   rŠ   ro   )	Úpoprø   Úvalidate_argsortr;   r-   r’   rp   rq   Úintp)rD   rý   rþ   r  r+   rW   r-   s          r3   ÚargsortzRangeIndex.argsortÔ  sÏ   € ð —J’J˜{¨DÑ1Ô1ˆ	Ø�
Š
�6˜4Ñ Ô Ð Ý
Ô˜D &Ñ)Ô)Ð)à,Ñˆˆt�TØŒ;Ô˜aÒÐØð :Ý˜D™	œ	��å$'¨¡I¤I°¡M°2°r˜T�t��Øð 	Ý # D¡	¤	¨A¡¨r°2˜�4ˆEˆEå˜‘I”IˆEåŒy˜  dµ"´'Ð:Ñ:Ô:Ð:r5   ÚsortÚuse_na_sentinelú'tuple[npt.NDArray[np.intp], RangeIndex]c                óþ   — |rI| j         dk     r>t          j        t          | ¦  «        dz
  ddt          j        ¬¦  «        }| d d d…         }n/t          j        t          | ¦  «        t          j        ¬¦  «        }| }||fS )Nr   rN   rŠ   ro   )r-   rp   rq   r’   r  )rD   r  r  ÚcodesÚuniquess        r3   Ú	factorizezRangeIndex.factorizeò  sv   € ð
 ð 	�D”I ’M�MÝ”I�c $™iœi¨!™m¨R°½2¼7ÐCÑCÔCˆEØ˜4˜4˜R˜4”jˆGˆGå”I�c $™iœi­r¬wÐ7Ñ7Ô7ˆEØˆGØ�gˆ~Ðr5   Úotherr`   c                ó�   •— t          |t          ¦  «        r| j        |j        k    S t          ¦   «                              |¦  «        S )zL
        Determines if two Index objects contain the same elements.
        )rP   r8   r;   rÈ   Úequals)rD   r  rÏ   s     €r3   r  zRangeIndex.equalsÿ  s<   ø€ õ �e�ZÑ(Ô(ð 	/Ø”; %¤,Ò.Ð.Ý‰wŒw�~Š~˜eÑ$Ô$Ð$r5   .©Úreturn_indexerr  Úna_positionr°   r  úLiteral[False]r  r   r&   úCallable | Nonec               ó   — d S r@   r�   ©rD   r  r  r   r°   s        r3   Úsort_valueszRangeIndex.sort_values  s	   € ð ˆsr5   )r  r   r°   úLiteral[True]útuple[Self, np.ndarray]c               ó   — d S r@   r�   r$  s        r3   r%  zRangeIndex.sort_values  s	   € ð #& #r5   úSelf | tuple[Self, np.ndarray]c               ó   — d S r@   r�   r$  s        r3   r%  zRangeIndex.sort_values  s	   € ð *-¨r5   Úlastc               ó”  •— |�%t          ¦   «                              ||||¬¦  «        S | }d}|r| j        dk     r| d d d…         }d}n| j        dk    r| d d d…         }d}|rf|r3t          j        t          | ¦  «        dz
  ddt          j        ¬¦  «        }n-t          j        t          | ¦  «        t          j        ¬¦  «        }||fS |S )Nr  Fr   rŠ   TrN   ro   )rÈ   r%  r-   rp   rq   r’   r  )	rD   r  r  r   r°   Úsorted_indexÚinverse_indexerrê   rÏ   s	           €r3   r%  zRangeIndex.sort_values%  sí   ø€ ð ˆ?Ý‘7”7×&Ò&Ø-Ø#Ø'Øð	 'ñ ô ð ð  ˆLØ#ˆOØð 'Ø”9˜q’=�=Ø#'¨¨¨"¨¤:�LØ&*�OøØ”˜Q’�Ø# D D b Dœz�Ø"&�àð 	 Øð >Ýœ)¥C¨¡I¤I°¡M°2°rÅÄÐIÑIÔI��åœ)¥C¨¡I¤IµR´WÐ=Ñ=Ô=�Ø Ð(Ð(àÐr5   c                óx  •— t          |t          ¦  «        s#t          ¦   «                              ||¬¦  «        S | j        dk     r| j        d d d…         n| j        }|j        dk     r|j        d d d…         n|j        }t          |j        |j        ¦  «        }t          |j	        |j	        ¦  «        }||k    r|  
                    t          ¦  «        S |                      |j        |j        ¦  «        \  }}}	|j        |j        z
  |z  r|  
                    t          ¦  «        S |j        |j        |j        z
  |j        z  |z  |z  z   }
|j        |j        z  |z  }t          |
||¦  «        }t          |||¦  «        }| j        dk     o
|j        dk     |j        dk     ur|d d d…         }|  
                    |¦  «        S )N©r  r   rŠ   )rP   r8   rÈ   Ú_intersectionr-   r;   r“   r+   ró   rW   rQ   Ú_empty_rangeÚ_extended_gcdr4   r:   )rD   r  r  ÚfirstÚsecondÚint_lowÚint_highÚgcdÚsÚ_Ú	tmp_startÚnew_stepÚ	new_startrá   rÏ   s                 €r3   r1  zRangeIndex._intersectionK  s´  ø€ õ ˜%¥Ñ,Ô,ð 	;Ý‘7”7×(Ò(¨°TÐ(Ñ:Ô:Ð:à%)¤Y°¢] ]�”˜D˜D˜b˜DÔ!Ð!¸¼ˆØ',¤z°A¢~ ~�”˜d˜d ˜dÔ#Ð#¸5¼<ˆõ �e”k 6¤<Ñ0Ô0ˆÝ�u”z 6¤;Ñ/Ô/ˆØ�wÒÐØ×#Ò#¥LÑ1Ô1Ð1ð ×&Ò& u¤z°6´;Ñ?Ô?‰	ˆˆQ�ð ŒK˜&œ,Ñ&¨#Ñ-ð 	2Ø×#Ò#¥LÑ1Ô1Ð1ð ”K 6¤<°%´+Ñ#=ÀÄÑ"KÈsÑ"RÐUVÑ"VÑVˆ	Ø”: ¤Ñ+¨sÑ2ˆõ (¨	°8¸WÑEÔEˆ	Ý˜) X¨xÑ8Ô8ˆ	àŒI˜ŠMÐ,˜eœj¨1šn°i´nÀqÒ6HÐIÐIØ! $ $ B $œˆIà×Ò 	Ñ*Ô*Ð*r5   ÚaÚbútuple[int, int, int]c                óv   — d\  }}d\  }}||}}|r%||z  }	|||	|z  z
  }}|||	|z  z
  }}|||	|z  z
  }}|°%|||fS )z¼
        Extended Euclidean algorithms to solve Bezout's identity:
           a*x + b*y = gcd(x, y)
        Finds one particular solution for x, y: s, t
        Returns: gcd, s, t
        )r   rN   )rN   r   r�   )
rD   r>  r?  r9  Úold_sÚtÚold_tÚrÚold_rÚquotients
             r3   r3  zRangeIndex._extended_gcds  s   € ð ‰ˆˆ5Ø‰ˆˆ5Ø�aˆ5ˆØð 	/Ø ‘zˆHØ˜% (¨Q¡,Ñ.�1ˆEØ˜% (¨Q¡,Ñ.�1ˆEØ˜% (¨Q¡,Ñ.�1ˆEð	 ð 	/ð
 �e˜UÐ"Ð"r5   c                ó¨   — |sdS | j         sdS t          |¦  «        dk    r|j        | j         j        z  rdS |j        | j         v o|d         | j         v S )z)Check if other range is contained in selfTFrN   rŠ   )r;   r’   r-   r+   )rD   r  s     r3   Ú_range_in_selfzRangeIndex._range_in_self„  sc   € ð ð 	Ø�4ØŒ{ð 	Ø�5Ýˆu‰:Œ:˜Š>ˆ>˜eœj¨4¬;Ô+;Ñ;ˆ>Ø�5ØŒ{˜dœkÐ)ÐF¨e°B¬i¸4¼;Ð.FÐFr5   úbool | Nonec                óP  •— t          |t          ¦  «        �rm|dv s,|du �rd| j        dk    �rX|                      |j        ¦  «        �r=| j        | j        }}| j        | j        t          | ¦  «        dz
  z  z   }|j        |j        }}|j        |j        t          |¦  «        dz
  z  z   }| j        dk     r|| |}}}|j        dk     r|| |}}}t          | ¦  «        dk    r2t          |¦  «        dk    rt          | j        |j        z
  ¦  «        x}}n+t          | ¦  «        dk    r|}nt          |¦  «        dk    r|}t          ||¦  «        }	t          ||¦  «        }
||k    rš||z
  |z  dk    r/||z
  |k    r&||z
  |k    r t          | ¦  «        |	|
|z   |¦  «        S |dz  dk    rUt          ||z
  ¦  «        |dz  k    r<t          ||z
  ¦  «        |dz  k    r# t          | ¦  «        |	|
|dz  z   |dz  ¦  «        S n‰||z  dk    r<||z
  |z  dk    r/||z   |k    r&||z
  |k    r t          | ¦  «        |	|
|z   |¦  «        S nD||z  dk    r;||z
  |z  dk    r/||z   |k    r&||z
  |k    r t          | ¦  «        |	|
|z   |¦  «        S t          ¦   «                              ||¬¦  «        S )a�  
        Form the union of two Index objects and sorts if possible

        Parameters
        ----------
        other : Index or array-like

        sort : bool or None, default None
            Whether to sort (monotonically increasing) the resulting index.
            ``sort=None|True`` returns a ``RangeIndex`` if possible or a sorted
            ``Index`` with an int64 dtype if not.
            ``sort=False`` can return a ``RangeIndex`` if self is monotonically
            increasing and other is fully contained in self. Otherwise, returns
            an unsorted ``Index`` with an int64 dtype.

        Returns
        -------
        union : Index
        ©NTFr   rN   é   r0  )rP   r8   r-   rI  r;   r+   r’   r1   ró   r“   r}   rÈ   Ú_union)rD   r  r  Ústart_sÚstep_sÚend_sÚstart_oÚstep_oÚend_oÚstart_rÚend_rrÏ   s              €r3   rN  zRangeIndex._union�  sþ  ø€ õ( �e�ZÑ(Ô(ñ 3	KØ�|Ð#Ð#Ø˜�‘ $¤)¨a¢-¡-°D×4GÒ4GÈÌÑ4UÔ4U¡-ð #'¤*¨d¬i˜�Øœ
 T¤Yµ#°d±)´)¸a±-Ñ%@Ñ@�Ø"'¤+¨u¬z˜�Øœ e¤jµC¸±J´JÀ±NÑ&CÑC�Ø”9˜q’=�=Ø-2°V°G¸W U˜V�GØ”: ’>�>Ø-2°V°G¸W U˜V�GÝ�t‘9”9 ’>�>¥c¨%¡j¤j°A¢o oÝ&)¨$¬*°u´{Ñ*BÑ&CÔ&CÐC�F˜V˜VÝ˜‘Y”Y !’^�^Ø#�F�FÝ˜‘Z”Z 1’_�_Ø#�FÝ˜g wÑ/Ô/�Ý˜E 5Ñ)Ô)�Ø˜VÒ#Ð#à  7Ñ*¨fÑ4¸Ò9Ð9Ø$ u™_°Ò7Ð7Ø$ u™_°Ò7Ð7à)�t D™zœz¨'°5¸6±>À6ÑJÔJÐJà !™ qš˜Ý  ¨7Ñ!2Ñ3Ô3°vÀ±zÒAÐAÝ  ¨¡Ñ/Ô/°6¸A±:Ò=Ð=ð  *�t D™zœz¨'°5¸6ÀA¹:Ñ3EÀvÐPQÁzÑRÔRÐRøà˜f‘_¨Ò)Ð)à  7Ñ*¨fÑ4¸Ò9Ð9Ø$ vÑ-°Ò8Ð8Ø" V™^¨uÒ4Ð4à)�t D™zœz¨'°5¸6±>À6ÑJÔJÐJøØ˜f‘_¨Ò)Ð)à  7Ñ*¨fÑ4¸Ò9Ð9Ø$ vÑ-°Ò8Ð8Ø" V™^¨uÒ4Ð4à)�t D™zœz¨'°5¸6±>À6ÑJÔJÐJå‰wŒw�~Š~˜e¨$ˆ~Ñ/Ô/Ð/r5   c                ór  •— |                       |¦  «         |                      |¦  «         |                      |¦  «        \  }}t          |t          ¦  «        s#t          ¦   «                              ||¬¦  «        S |dur)| j        dk     r| d d d…                              |¦  «        S t          j	        | |¦  «        }| j        dk     r| j
        d d d…         n| j
        }|                      |¦  «        }|j        dk     r|d d d…         }t          |¦  «        dk    r|                      |¬¦  «        S t          |¦  «        t          | ¦  «        k    r| d d…                              |¦  «        S t          |¦  «        dk    r‹|d         | d         k    r
| dd …         S |d         | d         k    r
| d d…         S t          | ¦  «        dk    r|d         | d         k    r| d d d…         S t          ¦   «                              ||¬¦  «        S t          |¦  «        dk    r.|d         |d         k    r|d         |d         k    r
| dd…         S |j        |j        k    rÅ|d         |j        k    r+t          |d         |j        z   |j        |j        ¦  «        }�nc|d         |d         k    r#t          |j        |d         |j        ¦  «        }�n.|j
        |dd…         k    rt          |¦  «        dz
  }|d d |…         }nýt          ¦   «                              ||¬¦  «        S t          | ¦  «        dk    sJ ‚|j        |j        dz  k    r�|d         |d         k    r$|d         |d         |d	         fv r|dd d…         }n||d         |d         k    r$|d         |d         |d	         fv r|d d d…         }nFt          ¦   «                              ||¬¦  «        S t          ¦   «                              ||¬¦  «        S || j
        ur|d d d…         }t#          | ¦  «                             ||¬¦  «        }	|	S )
Nr0  Fr   rŠ   rM   rN   é   rM  éþÿÿÿ)Ú_validate_sort_keywordÚ_assert_can_do_setopÚ_convert_can_do_setoprP   r8   rÈ   Ú_differencer-   r   Úget_op_result_namer;   Úintersectionr’   Úrenamer+   r:   rW   r}   rQ   )rD   r  r  Úresult_nameÚres_namer4  ÚoverlapÚnew_rngr-   rî   rÏ   s             €r3   r]  zRangeIndex._differenceÚ  s0  ø€ à×#Ò# DÑ)Ô)Ð)Ø×!Ò! %Ñ(Ô(Ð(Ø!×7Ò7¸Ñ>Ô>Ñˆˆ{å˜%¥Ñ,Ô,ð 	9Ý‘7”7×&Ò& u°4Ð&Ñ8Ô8Ð8à�uÐÐ ¤¨Q¢ Ø˜˜˜"˜”:×)Ò)¨%Ñ0Ô0Ð0åÔ)¨$°Ñ6Ô6ˆà%)¤Y°¢] ]�”˜D˜D˜b˜DÔ!Ð!¸¼ˆØ×#Ò# EÑ*Ô*ˆØŒ<˜!ÒÐØ˜d˜d ˜d”mˆGåˆw‰<Œ<˜1ÒÐØ—;’; H�;Ñ-Ô-Ð-Ýˆw‰<Œ<�3˜t™9œ9Ò$Ð$Ø˜˜˜”8—?’? 8Ñ,Ô,Ð,õ ˆw‰<Œ<˜1ÒÐØ�qŒz˜T !œWÒ$Ð$Ø˜A˜B˜B”x�à˜”˜t BœxÒ'Ð'Ø˜C˜R˜C”yÐ å�T‘”˜a’� G¨A¤J°$°q´'Ò$9Ð$9Ø˜C˜C˜a˜C”yÐ õ ‘w”w×*Ò*¨5°tÐ*Ñ<Ô<Ð<å�‰\Œ\˜QÒÐ 7¨1¤:°°q´Ò#9Ð#9¸gÀb¼kÈUÐSUÌYÒ>VÐ>Và˜˜"˜”:ÐàŒ<˜5œ:Ò%Ð%Ø�qŒz˜Uœ[Ò(Ð(å ¨¤¨e¬jÑ 8¸%¼*ÀeÄjÑQÔQ�‘Ø˜”  b¤	Ò)Ð)å ¤¨W°Q¬Z¸¼ÑDÔD�‘Ø” 5¨¨2¨¤;Ò.Ð.å˜5‘z”z A‘~�Ø   $ œ-��õ ‘w”w×*Ò*¨5°tÐ*Ñ<Ô<Ð<õ
 �t‘9”9˜q’=�=�=�=àŒ|˜uœz¨A™~Ò-Ð-Ø˜1”:  q¤Ò)Ð)¨g°b¬k¸eÀB¼iÈÈrÌÐ=SÐ.SÐ.Sà# A D q Dœk�G�Gà˜Q”Z 5¨¤8Ò+Ð+°¸´ÀÀbÄ	È5ÐQSÌ9Ð?UÐ0UÐ0Uà# C C a Cœj�G�Gõ !™7œ7×.Ò.¨u¸4Ð.Ñ@Ô@Ð@õ ‘w”w×*Ò*¨5°tÐ*Ñ<Ô<Ð<à˜œÐ#Ð#Ø˜d˜d ˜d”mˆGÝ˜‘J”J×*Ò*¨7¸Ð*ÑBÔBˆ	àÐr5   ra  c                ó(  •— t          |t          ¦  «        r|�#t          ¦   «                              |||¦  «        S |                      |¦  «        }|                     | ¦  «        }|                     |¦  «        }|�|                     |¦  «        }|S r@   )rP   r8   rÈ   Úsymmetric_differenceÚ
differenceÚunionr`  )rD   r  ra  r  ÚleftÚrightre   rÏ   s          €r3   rf  zRangeIndex.symmetric_difference1  sŠ   ø€ õ ˜%¥Ñ,Ô,ð 	J°Ð0@Ý‘7”7×/Ò/°°{ÀDÑIÔIÐIà�Š˜uÑ%Ô%ˆØ× Ò  Ñ&Ô&ˆØ—’˜EÑ"Ô"ˆàÐ"Ø—]’] ;Ñ/Ô/ˆFØˆr5   Úhowr%   úFtuple[Index, npt.NDArray[np.intp] | None, npt.NDArray[np.intp] | None]c                óØ   •— t          |t          ¦  «        s1|j        j        dk    r!|                      |j        |j        ¬¦  «        }t          ¦   «                              |||¬¦  «        S )NrÜ   rM   )rk  r  )	rP   r8   rF   rÝ   rã   r=   rJ   rÈ   Ú_join_empty)rD   r  rk  r  rÏ   s       €r3   rn  zRangeIndex._join_empty?  sb   ø€ õ ˜%¥Ñ,Ô,ð 	G°´Ô1AÀSÒ1HÐ1HØ×&Ò& u¤}¸5¼:Ð&ÑFÔFˆEÝ‰wŒw×"Ò" 5¨c¸Ð"Ñ=Ô=Ð=r5   ri  c                ó8  •— t          |t          | ¦  «        ¦  «        sc|                      |j        |j        ¬¦  «        }t          |t          | ¦  «        ¦  «        s#t          ¦   «                              ||¬¦  «        S |}|                      |¦  «        r|dk    r|n| }|d d fS |dk    r| }d }|                     |¦  «        }n«|dk    r|}|                      |¦  «        }d }n‹|dk    r@|  	                    |¦  «        }|                      |¦  «        }|                     |¦  «        }nE|dk    r?|  
                    |¦  «        }|                      |¦  «        }|                     |¦  «        }|€d nt          |¦  «        }|€d nt          |¦  «        }|||fS )NrM   )rk  rj  ri  ÚinnerÚouter)rP   r}   rã   r=   rJ   rÈ   Ú_join_monotonicr  Úget_indexerr_  rh  r   )	rD   r  rk  Úmaybe_riÚ	ret_indexÚ
join_indexÚlidxÚridxrÏ   s	           €r3   rr  zRangeIndex._join_monotonicF  s²  ø€ õ ˜%¥ d¡¤Ñ,Ô,ð 	Ø×)Ò)¨%¬-¸e¼jÐ)ÑIÔIˆHÝ˜h­¨T©
¬
Ñ3Ô3ð ?Ý‘w”w×.Ò.¨u¸#Ð.Ñ>Ô>Ð>ØˆEà�;Š;�uÑÔð 	)Ø!$¨¢ ˜˜°TˆIØ˜d DÐ(Ð(à�&Š=ˆ=ØˆJØˆDØ×$Ò$ ZÑ0Ô0ˆDˆDØ�GŠ^ˆ^ØˆJØ×#Ò# JÑ/Ô/ˆDØˆDˆDØ�GŠ^ˆ^Ø×*Ò*¨5Ñ1Ô1ˆJØ×#Ò# JÑ/Ô/ˆDØ×$Ò$ ZÑ0Ô0ˆDˆDØ�GŠ^ˆ^ØŸš EÑ*Ô*ˆJØ×#Ò# JÑ/Ô/ˆDØ×$Ò$ ZÑ0Ô0ˆDà�|ˆtˆtÕ)<¸TÑ)BÔ)BˆØ�|ˆtˆtÕ)<¸TÑ)BÔ)BˆØ˜4 Ð%Ð%r5   c                ó6  •— t          |¦  «        ra|dt          | ¦  «         fv r
| dd …         S |dt          | ¦  «        dz
  fv r
| d d…         S t          | ¦  «        dk    r|dv r| d d d…         S nˆt          j        |¦  «        rtt          j        t          j        |t
          j        ¬¦  «        t          | ¦  «        ¦  «        }t          |t          ¦  «        r| |         }|  
                    |d¬	¦  «        S t          ¦   «                              |¦  «        S )
Nr   rN   rŠ   rX  )rN   rY  rM  ro   Fr0  )r   r’   r   Úis_list_likeÚmaybe_indices_to_slicerp   rÊ   r  rP   Úslicerg  rÈ   Údelete)rD   ÚlocÚslcr  rÏ   s       €r3   r}  zRangeIndex.deletem  s  ø€ õ �c‰?Œ?ð 	:Ø�q�3˜t™9œ9˜*�oÐ%Ð%Ø˜A˜B˜B”x�Ø�r�3˜t™9œ9 q™=Ð)Ð)Ð)Ø˜C˜R˜C”yÐ Ý�4‰yŒy˜AŠ~ˆ~ #¨ . .Ø˜C˜C˜a˜C”yÐ øåÔ˜cÑ"Ô"ð 	:ÝÔ,­R¬Z¸Å2Ä7Ð-KÑ-KÔ-KÍSÐQUÉYÌYÑWÔWˆCå˜#�uÑ%Ô%ð :ð ˜Sœ	�Ø—’ u°5�Ñ9Ô9Ð9å‰wŒw�~Š~˜cÑ"Ô"Ð"r5   r~  c                ób  •— t          |¦  «        st          |¦  «        �rît          | ¦  «        dk    r\|dk    rVt          |¦  «        rGt          ||| j        z   | j        ¦  «        }t          | ¦  «                             || j        ¬¦  «        S t          | ¦  «        �ro| j        }|dk    re|| d         | j        z
  k    rQt          |j	        |j        z
  |j
        |j        ¦  «        }t          | ¦  «                             || j        ¬¦  «        S |t          | ¦  «        k    re|| d         | j        z   k    rQt          |j	        |j
        |j        z   |j        ¦  «        }t          | ¦  «                             || j        ¬¦  «        S t          | ¦  «        dk    rr|| d         | j        dz  z   k    r[t          | j        dz  ¦  «        }t          | j	        | j
        |¦  «        }t          | ¦  «                             || j        ¬¦  «        S t          ¦   «                              ||¦  «        S )Nr   rM   rŠ   rM  )r   r   r’   r:   r-   r}   rQ   ra   r;   r+   rW   r,   rÈ   Úinsert)rD   r~  Úitemrd  rX   r-   rÏ   s         €r3   r�  zRangeIndex.insertƒ  sã  ø€ Ý�dÑÔð 	L�x¨™~œ~ñ 	Lõ �4‰yŒy˜AŠ~ˆ~ #¨¢( (­z¸$Ñ/?Ô/? (Ý  d¨T¬YÑ&6¸¼	ÑBÔB�Ý˜D‘z”z×-Ò-¨g¸D¼JÐ-ÑGÔGÐGÝ�T‘”ñ LØ”k�Ø˜!’8�8 ¨¨Q¬°$´)Ñ(;Ò ;Ð ;Ý# C¤I°´Ñ$8¸#¼(ÀCÄHÑMÔM�GÝ ™:œ:×1Ò1°'ÀÄ
Ð1ÑKÔKÐKà�C ™IœIÒ%Ð%¨$°$°r´(¸T¼YÑ2FÒ*FÐ*FÝ# C¤I¨s¬x¸#¼(Ñ/BÀCÄHÑMÔM�GÝ ™:œ:×1Ò1°'ÀÄ
Ð1ÑKÔKÐKå˜‘Y”Y !’^�^¨°°Q´¸$¼)Àa¹-Ñ0GÒ(GÐ(Gå˜tœy¨1™}Ñ-Ô-�DÝ# D¤J°´	¸4Ñ@Ô@�GÝ ™:œ:×1Ò1°'ÀÄ
Ð1ÑKÔKÐKå‰wŒw�~Š~˜c 4Ñ(Ô(Ð(r5   Úindexesúlist[Index]c                ó   •— t          d„ |D ¦   «         ¦  «        sNt          ¦   «                              ||¦  «        }|j        j        dk    r|                      |j        ¦  «        S |S t          |¦  «        dk    r|d         S t          t          t                   |¦  «        }dx}x}}g }d}	d}
|D ]B}t          |¦  «        r1|                     |¦  «         |	r|
�|
                     |¦  «        }	Œ@|}
ŒC|D �]{}|j        }|€$|j        }|€t          |¦  «        dk    r|j        }n“|€‘|j        |k    r||	r.t!          j        |d         j        t          |¦  «        ¦  «        }nt!          j        d„ |D ¦   «         ¦  «        }|                      |d¬	¦  «        }|                     |¦  «        c S |j        |z
  }||j        k    rt          |¦  «        dk    p|duo
|j        |k    }|r||	r.t!          j        |d         j        t          |¦  «        ¦  «        }nt!          j        d
„ |D ¦   «         ¦  «        }|                      |d¬	¦  «        }|                     |¦  «        c S |�|d         |z   }�Œ}|rD|€|d         j        n|}t          |¦  «        dk    r|d         j        }t          ||||¬¦  «        S t          t,          |¬¦  «        S )a‹  
        Overriding parent method for the case of all RangeIndex instances.

        When all members of "indexes" are of type RangeIndex: result will be
        RangeIndex if possible, Index with an int64 dtype otherwise. E.g.:
        indexes = [RangeIndex(3), RangeIndex(3, 6)] -> RangeIndex(6)
        indexes = [RangeIndex(3), RangeIndex(4, 6)] -> Index([0,1,2,4,5], dtype='int64')
        c              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S r@   )rP   r8   ©rŽ   r�   s     r3   rž   z%RangeIndex._concat.<locals>.<genexpr>¥  s,   è è € Ð>Ð>°•:˜a¥Ñ,Ô,Ð>Ð>Ð>Ð>Ð>Ð>r5   rÜ   rN   r   NTc                ó   — g | ]	}|j         ‘Œ
S r�   ©r=   r‡  s     r3   r‘   z&RangeIndex._concat.<locals>.<listcomp>Ï  s   € Ð0PÐ0PÐ0P¸q°´Ð0PÐ0PÐ0Pr5   F©rH   c                ó   — g | ]	}|j         ‘Œ
S r�   r‰  r‡  s     r3   r‘   z&RangeIndex._concat.<locals>.<listcomp>Þ  s   € Ð,LÐ,LÐ,L¸1¨Q¬YÐ,LÐ,LÐ,Lr5   rŠ   rM   )ÚallrÈ   Ú_concatrF   rÝ   rã   r=   r’   r   rÔ   r8   r�   r  r;   r+   r-   rp   ÚtileÚconcatenaterm   r`  rW   r2  )rD   rƒ  rJ   re   Úrng_indexesr+   r-   Únext_Únon_empty_indexesÚall_same_indexÚprevÚobjrX   r^   Únon_consecutiverW   rÏ   s                   €r3   r�  zRangeIndex._concatœ  s0  ø€ õ Ð>Ð>°gÐ>Ñ>Ô>Ñ>Ô>ð 	Ý‘W”W—_’_ W¨dÑ3Ô3ˆFØŒ|Ô  CÒ'Ð'Ø×)Ò)¨&¬.Ñ9Ô9Ð9ØˆMå�‰\Œ\˜QÒÐØ˜1”:Ðå�4¥
Ô+¨WÑ5Ô5ˆà#Ð#ˆÐ#��uð ÐØˆØ"&ˆØð 	#ð 	#ˆCÝ�3‰xŒxð #Ø!×(Ò(¨Ñ-Ô-Ð-Ø!ð #ØÐ'Ø)-¯ª°SÑ)9Ô)9˜˜à"˜øà$ð $	'ñ $	'ˆCØ”*ˆCàˆ}àœ	�Ø�<¥C¨¡H¤H¨q¢L LØœ8�DøØ�à”9 Ò%Ð%Ø%ð RÝ!#¤Ø-¨aÔ0Ô8½#Ð>OÑ:PÔ:Pñ"ô "˜˜õ "$¤Ð0PÐ0PÀKÐ0PÑ0PÔ0PÑ!QÔ!Q˜Ø!×.Ò.¨v¸EÐ.ÑBÔB�FØ!Ÿ=š=¨Ñ.Ô.Ð.Ð.Ð.à”y 5Ñ(�à# s¤xÒ/Ð@µC¸±H´H¸q²Lð Ø˜TÐ!Ð8 c¤i°5Ò&8ð ð ð +Ø!ð NÝœWØ)¨!Ô,Ô4µcÐ:KÑ6LÔ6Lñô �F�Fõ  œ^Ð,LÐ,LÀÐ,LÑ,LÔ,LÑMÔM�FØ×*Ò*¨6¸Ð*Ñ>Ô>�Ø—}’} TÑ*Ô*Ð*Ð*Ð*àÐØ˜Bœ $™�ùàð 	<ð 27°Ð$ RÔ(Ô-Ð-ÀEˆDÝÐ$Ñ%Ô%¨Ò*Ð*Ø(¨Ô+Ô0�Ý˜e T¨4°dÐ;Ñ;Ô;Ð;õ �,¨TÐ2Ñ2Ô2Ð2r5   c                ó*   — t          | j        ¦  «        S )z5
        return the length of the RangeIndex
        )r’   r;   rC   s    r3   Ú__len__zRangeIndex.__len__ñ  s   € õ �4”;ÑÔÐr5   c                ó    — t          | ¦  «        S r@   )r’   rC   s    r3   ÚsizezRangeIndex.size÷  s   € å�4‰yŒyÐr5   c           	     ó|  •— t          j        |¦  «        }|t          u rt          d¦  «        }t	          |t          ¦  «        r|                      |¦  «        S t          |¦  «        rRt          |¦  «        }	 | j        |         S # t          $ r(}t          d|› dt          | ¦  «        › �¦  «        |‚d}~ww xY wt          |¦  «        rt          d¦  «        ‚t          j        |¦  «        r…t	          t          |dd¦  «        t          ¦  «        r|                     t"          d¬¦  «        }nt%          j        |t"          ¬¦  «        }t)          | j        |¦  «         t%          j        |¦  «        }	 |                      |¦  «        S # t.          t0          f$ r$ t3          ¦   «                              |¦  «        cY S w xY w)	zE
        Conserve RangeIndex type for scalar and slice keys.
        Núindex ú' is out of bounds for axis 0 with size zuonly integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indicesrF   F)rF   Úna_valuero   )r   Úitem_from_zerodimÚEllipsisr|  rP   Ú_getitem_slicer   r,   r;   Ú
IndexErrorr’   r   rR   Úis_bool_indexerrœ   r   Úto_numpyrI   rp   rÊ   r   ÚflatnonzeroÚtakerT   rU   rÈ   Ú__getitem__)rD   r°   r¼   r½   rÏ   s       €r3   r§  zRangeIndex.__getitem__û  sÀ  ø€ õ Ô# CÑ(Ô(ˆØ•(ˆ?ˆ?Ý˜‘+”+ˆCÝ�c�5Ñ!Ô!ð 	&Ø×&Ò& sÑ+Ô+Ð+Ý˜‰_Œ_ð 	&Ý˜#‘h”hˆGðØ”{ 7Ô+Ð+øÝð ð ð Ý ØT˜SÐTÐTÍÈTÉÌÐTÐTñô àðøøøøðøøøõ �s‰^Œ^ð 	&Ýð+ñô ð õ Ô  Ñ%Ô%ð 	&Ý�' # w°Ñ5Ô5µ~ÑFÔFð 2Ø—l’l­¸�lÑ>Ô>��å”j ­DÐ1Ñ1Ô1�Ý ¤¨SÑ1Ô1Ð1Ý”. Ñ%Ô%ˆCð	,Ø—9’9˜S‘>”>Ð!øÝ�:Ð&ð 	,ð 	,ð 	,Ý‘7”7×&Ò& sÑ+Ô+Ð+Ð+Ð+ð	,øøøs*   Á7B Â
B6Â#B1Â1B6Å1F Æ2F;Æ:F;Úslobjr|  c                ón   — | j         |         }t          | ¦  «                             || j        ¬¦  «        S )zH
        Fastpath for __getitem__ when we know we have a slice.
        rM   )r;   r}   rQ   ra   )rD   r¨  Úress      r3   r¡  zRangeIndex._getitem_slice  s1   € ð Œk˜%Ô ˆÝ�D‰zŒz×%Ò% c°´
Ð%Ñ;Ô;Ð;r5   Ú__floordiv__c                ó  •— t          |¦  «        rÚ|dk    rÔt          | ¦  «        dk    s| j        |z  dk    rf| j        |z  dk    rX| j        |z  }| j        |z  }|t          | ¦  «        |z  z   }t	          |||pd¦  «        }|                      || j        ¬¦  «        S t          | ¦  «        dk    r:| j        |z  }t	          ||dz   d¦  «        }|                      || j        ¬¦  «        S t          ¦   «                              |¦  «        S )Nr   rN   rM   )	r   r’   r+   r-   r:   rQ   ra   rÈ   r«  )rD   r  r+   r-   rW   rá   rÏ   s         €r3   r«  zRangeIndex.__floordiv__&  s  ø€ å�eÑÔð 
	D ¨!¢ Ý�4‰yŒy˜AŠ~ˆ~ $¤*¨uÑ"4¸Ò"9Ð"9¸d¼iÈ%Ñ>OÐSTÒ>TÐ>TØœ
 eÑ+�Ø”y EÑ)�Ø�s 4™yœy¨4Ñ/Ñ/�Ý! %¨¨t¨y°qÑ9Ô9�	Ø×'Ò'¨	¸¼
Ð'ÑCÔCÐCÝ�4‰yŒy˜AŠ~ˆ~Øœ
 eÑ+�Ý! %¨°©°AÑ6Ô6�	Ø×'Ò'¨	¸¼
Ð'ÑCÔCÐCå‰wŒw×#Ò# EÑ*Ô*Ð*r5   c                ó   — d| j         vS ©Nr   rØ   ©rD   rý   rþ   s      r3   rŒ  zRangeIndex.all9  s   € Ø˜œÐ#Ð#r5   c                ó*   — t          | j        ¦  «        S r@   )Úanyr;   r¯  s      r3   r±  zRangeIndex.any<  s   € Ý�4”;ÑÔÐr5   r   ÚdecimalsúSelf | Indexc                óì   •— |dk    r|                       ¦   «         S | j        d| z  z  dk    r&| j        d| z  z  dk    r|                       ¦   «         S t          ¦   «                              |¬¦  «        S )a  
        Round each value in the Index to the given number of decimals.

        Parameters
        ----------
        decimals : int, optional
            Number of decimal places to round to. If decimals is negative,
            it specifies the number of positions to the left of the decimal point
            e.g. ``round(11.0, -1) == 10.0``.

        Returns
        -------
        Index or RangeIndex
            A new Index with the rounded values.

        Examples
        --------
        >>> import pandas as pd
        >>> idx = pd.RangeIndex(10, 30, 10)
        >>> idx.round(decimals=-1)
        RangeIndex(start=10, stop=30, step=10)
        >>> idx = pd.RangeIndex(10, 15, 1)
        >>> idx.round(decimals=-1)
        Index([10, 10, 10, 10, 10], dtype='int64')
        r   é
   )r²  )rH   r+   r-   rÈ   Úround)rD   r²  rÏ   s     €r3   r¶  zRangeIndex.roundC  sq   ø€ ð4 �qŠ=ˆ=Ø—9’9‘;”;ÐØŒZ˜"˜x˜i™-Ñ'¨1Ò,Ð,°´¸RÀ(À¹]Ñ1JÈaÒ1OÐ1Oà—9’9‘;”;Ðå‘7”7—=’=¨(�=Ñ3Ô3Ð3r5   c                óÖ   •— t          |t          ¦  «        r2| j        |j        k    r"t          ¦   «                              | |¦  «        S t          ¦   «                              ||¦  «        S r@   )rP   r8   r;   rÈ   Ú_cmp_method)rD   r  ÚoprÏ   s      €r3   r¸  zRangeIndex._cmp_methode  sW   ø€ Ý�e�ZÑ(Ô(ð 	1¨T¬[¸E¼LÒ-HÐ-Hå‘7”7×&Ò& t¨RÑ0Ô0Ð0Ý‰wŒw×"Ò" 5¨"Ñ-Ô-Ð-r5   c           	     ó¦  •— t          |t          ¦  «        rt          S t          |t          t          j        f¦  «        r"t          ¦   «                              ||¦  «        S t          j	        t          |dd¦  «        d¦  «        r"t          ¦   «                              ||¦  «        S |t          j        t          j        t          j        t          j        t          j        t          j        t&          t          j        fv r"t          ¦   «                              ||¦  «        S d}|t          j        t          j        t          j        t          j        fv r|}t3          |dd¬¦  «        }| }	 |rWt	          j        d¬¦  «        5   ||j        |¦  «        }ddd¦  «         n# 1 swxY w Y   t9          |¦  «        r|st:          ‚n|t          j        k    r|j         n|j        }t	          j        d¬¦  «        5   ||j        |¦  «        } ||j         |¦  «        }ddd¦  «         n# 1 swxY w Y   t          j!        | |¦  «        }	 tE          | ¦  «        ||||	¬¦  «        }
tG          d	„ |||fD ¦   «         ¦  «        s|
 $                    d
¦  «        }
|
S # t:          tJ          tL          f$ r% t          ¦   «                              ||¦  «        cY S w xY w)z‘
        Parameters
        ----------
        other : Any
        op : callable that accepts 2 params
            perform the binary op
        rF   NÚmT)Úextract_numpyÚextract_rangeÚignore)rŒ  rM   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r@   )r   r‡  s     r3   rž   z+RangeIndex._arith_method.<locals>.<genexpr>¬  s(   è è € ÐEÐE¨•z !‘}”}ÐEÐEÐEÐEÐEÐEr5   rÞ   )'rP   r   ÚNotImplementedr   rp   Útimedelta64rÈ   Ú_arith_methodr   Úis_np_dtyperœ   ÚoperatorÚpowr   ÚrpowÚmodÚrmodÚfloordivÚ	rfloordivÚdivmodÚrdivmodÚmulÚrmulÚtruedivÚrtruedivr   Úerrstater-   r   rU   Úrsubr+   rW   r^  r}   rŒ  ÚastyperT   ÚZeroDivisionError)rD   r  r¹  r-   rj  ri  ÚrstepÚrstartÚrstoprb  re   rÏ   s              €r3   rÂ  zRangeIndex._arith_methodk  s-  ø€ õ �eÕ.Ñ/Ô/ð 		4å!Ð!Ý˜¥	­2¬>Ð:Ñ;Ô;ð 	4õ ‘7”7×(Ò(¨°Ñ3Ô3Ð3ÝŒ_�W U¨G°TÑ:Ô:¸CÑ@Ô@ð 	4å‘7”7×(Ò(¨°Ñ3Ô3Ð3àÝŒLÝŒHÝŒLÝŒHÝÔÝŒMÝÝŒKð	
ð 	
ð 	
õ ‘7”7×(Ò(¨°Ñ3Ô3Ð3à $ˆØ•(”,¥¤­(Ô*:½C¼LÐIÐIÐIØˆDõ ˜e°4ÀtÐLÑLÔLˆØˆð 	4àð DÝ”[ XÐ.Ñ.Ô.ð 3ð 3Ø ˜D ¤¨EÑ2Ô2�Eð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3õ
 " %Ñ(Ô(ð %°ð %Ý$Ð$ð%ð
 ')­C¬H¢n n˜œ˜
˜
¸$¼)�å” Ð*Ñ*Ô*ð -ð -Ø˜˜DœJ¨Ñ.Ô.�Ø˜˜4œ9 eÑ,Ô,�ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -õ Ô-¨d°EÑ:Ô:ˆHØ•T˜$‘Z”Z ¨¨u¸8ÐDÑDÔDˆFõ
 ÐEÐE¨v°u¸eÐ.DÐEÑEÔEÑEÔEð 2ØŸš yÑ1Ô1�àˆMøå�IÕ'8Ð9ð 	4ð 	4ð 	4å‘7”7×(Ò(¨°Ñ3Ô3Ð3Ð3Ð3ð	4øøøs\   Å)J Æ FÆJ ÆF"Æ"J Æ%F"Æ&AJ Ç6#H%ÈJ È%H)È)J È,H)È-A&J Ê9KËKc                óø   •— t          | ¦  «        dk    s|                      ¦   «         dk    r|                      ¦   «         S |                      ¦   «         dk    r|  S t	          ¦   «                              ¦   «         S r®  )r’   ró   rH   r“   rÈ   Ú__abs__)rD   rÏ   s    €r3   rÙ  zRangeIndex.__abs__µ  s\   ø€ Ýˆt‰9Œ9˜Š>ˆ>˜TŸXšX™ZœZ¨1š_˜_Ø—9’9‘;”;ÐØ�XŠX‰ZŒZ˜1Š_ˆ_Ø�5ˆLå‘7”7—?’?Ñ$Ô$Ð$r5   c                ó€   — t          | j         | j         | j         ¦  «        }|                      || j        ¬¦  «        S rå   )r:   r+   rW   r-   rQ   rJ   rv   s     r3   Ú__neg__zRangeIndex.__neg__½  s:   € Ý�T”Z�K $¤) ¨d¬i¨ZÑ8Ô8ˆØ×Ò ¨$¬)ÐÑ4Ô4Ð4r5   c                ó*   — |                       ¦   «         S r@   rŠ  rC   s    r3   Ú__pos__zRangeIndex.__pos__Á  s   € Ø�yŠy‰{Œ{Ðr5   c                óÎ   — t          | ¦  «        dk    r|                      ¦   «         S t          | j         | j         | j         ¦  «        }|                      || j        ¬¦  «        S )Nr   rM   )r’   rH   r:   r+   rW   r-   rQ   rJ   rv   s     r3   Ú
__invert__zRangeIndex.__invert__Ä  sW   € Ýˆt‰9Œ9˜Š>ˆ>Ø—9’9‘;”;ÐÝ�T”Z�K $¤) ¨d¬i¨ZÑ8Ô8ˆØ×Ò ¨$¬)ÐÑ4Ô4Ð4r5   rü   r#   Ú
allow_fillc                ó@  — |rt          j        d|¦  «         t          |¦  «        rt          d¦  «        ‚t	          |¦  «        }|                      |||¦  «         t          |¦  «        dk    r$ t          | ¦  «        t          | j	        ¬¦  «        S | 
                    ¦   «         }|t          | ¦  «        k    r"t          d|› dt          | ¦  «        › �¦  «        ‚|                     ¦   «         }|t          | ¦  «         k     r"t          d|› dt          | ¦  «        › �¦  «        ‚|                     | j        d¬¦  «        }|dk     r|t          | ¦  «        z  }| j        d	k    r
|| j        z  }| j        dk    r
|| j        z  }|                      || j	        ¬¦  «        S )
Nr�   z!Expected indices to be array-liker   rM   rœ  r�  Úsafe)ÚcastingrN   )rø   Úvalidate_taker   rT   r   Ú_maybe_disallow_fillr’   r}   r2  rJ   r“   r¢  ró   rÓ  rF   r-   r+   rã   )	rD   Úindicesrü   rà  Ú
fill_valuerþ   Úind_maxÚind_minÚtakens	            r3   r¦  zRangeIndex.takeÌ  s§  € ð ð 	)ÝÔ˜R Ñ(Ô(Ð(Ý�WÑÔð 	AÝÐ?Ñ@Ô@Ð@Ý% gÑ.Ô.ˆð 	×!Ò! *¨j¸'ÑBÔBÐBåˆw‰<Œ<˜1ÒÐØ•4˜‘:”:�l°´Ð;Ñ;Ô;Ð;à—k’k‘m”mˆGØ�#˜d™)œ)Ò#Ð#Ý ØX˜WÐXÐXÍSÐQUÉYÌYÐXÐXñô ð ð —k’k‘m”mˆGØ�#˜d™)œ)˜Ò#Ð#Ý ØX˜WÐXÐXÍSÐQUÉYÌYÐXÐXñô ð ð —N’N 4¤:°v�NÑ>Ô>ˆEØ˜Š{ˆ{Ø�˜T™œÑ"�ØŒy˜AŠ~ˆ~Ø˜œÑ"�ØŒz˜QŠˆØ˜œÑ#�à×!Ò! %¨d¬iÐ!Ñ8Ô8Ð8r5   Ú	normalizeÚdropnar*   c                ó.  •— ddl m} |�&t          ¦   «                              |||||¬¦  «        S |rdnd}t	          j        t          | ¦  «        t          j        ¬¦  «        }|r|t          | ¦  «        z  } |||                      ¦   «         |¬¦  «        S )Nr   r)   )rë  r  r  Úbinsrì  Ú
proportionÚcountro   )r   rJ   )	r6   r*   rÈ   Úvalue_countsrp   Úonesr’   rr   rH   )
rD   rë  r  r  rî  rì  r*   rJ   rZ   rÏ   s
            €r3   rñ  zRangeIndex.value_countsô  s¼   ø€ ð 	"Ð!Ð!Ð!Ð!Ð!àÐÝ‘7”7×'Ò'Ø#ØØ#ØØð (ñ ô ð ð  )Ð5ˆ|ˆ|¨gˆÝIKÌÝ�‰IŒI�RœXðJ
ñ J
ô J
ˆð ð 	$Ø�#˜d™)œ)Ñ#ˆDØˆv�d $§)¢)¡+¤+°DÐ9Ñ9Ô9Ð9r5   ÚsideúLiteral['left', 'right']ÚsorterúNumpySorter | Noneúnpt.NDArray[np.intp] | np.intpc                ó  •— |dvs|�$t          ¦   «                              |||¬¦  «        S d}t          |¦  «        rd}t          j        |g¦  «        }nt          j        |¦  «        }|j        j        dvr$t          ¦   «                              |||¬¦  «        S | j        dk     x}r%| j	        d d d…         }|j
        }|j        }	|dk    }
n| j
        }| j        }	|d	k    }
||z
  t          |
¦  «        z
  |	z  d
z   }|rt          | ¦  «        |z
  }t          j        t          j        |t          | ¦  «        ¦  «        d¦  «        }|r&t          j        |                     ¦   «         ¦  «        S |                     t          j        d¬¦  «        S )N>   ri  rj  )Úvalueró  rõ  FTÚiur   rŠ   rj  ri  rN   rŠ  )rÈ   Úsearchsortedr   rp   ÚarrayrÊ   rF   rÝ   r-   r;   r+   r,   r’   ÚmaximumÚminimumr  r‚  rÓ  )rD   rù  ró  rõ  Ú
was_scalarÚarray_valueÚfliprX   r+   r-   Úshiftre   rÏ   s               €r3   rû  zRangeIndex.searchsorted  sˆ  ø€ ð Ð(Ð(Ð(¨FÐ,>Ý‘7”7×'Ò'¨e¸$ÀvÐ'ÑNÔNÐNàˆ
Ý�UÑÔð 	,ØˆJÝœ( E 7Ñ+Ô+ˆKˆKåœ* UÑ+Ô+ˆKØÔÔ!¨Ð-Ð-Ý‘7”7×'Ò'¨e¸$ÀvÐ'ÑNÔNÐNà”I ’MÐ"ˆ4ð 	#Ø”+˜d˜d ˜dÔ#ˆCØ”IˆEØ”8ˆDØ˜G’OˆEˆEà”JˆEØ”9ˆDØ˜F’NˆEØ Ñ%­¨E©
¬
Ñ2°tÑ;¸aÑ?ˆØð 	(Ý˜‘Y”Y Ñ'ˆFÝ”�BœJ v­s°4©y¬yÑ9Ô9¸1Ñ=Ô=ˆØð 	*Ý”7˜6Ÿ;š;™=œ=Ñ)Ô)Ð)Ø�}Š}�RœW¨5ˆ}Ñ1Ô1Ð1r5   )r/   r>   )NNNNFN)rF   rG   rH   rI   rJ   rK   r/   r   )NN)rZ   r:   rF   rG   r/   r   r@   )r^   r:   rJ   rK   r/   r   )rF   rG   r/   rf   )r/   rk   )r/   r<   )r/   rt   )r…   r†   r‡   rˆ   r/   r†   )r/   r,   )F)r¡   rI   r/   r,   )r/   r¤   )r/   rI   )r°   r
   r/   rI   )r/   rˆ   r  )r¿   r    rÀ   rÁ   rÂ   rÃ   r/   rÄ   )r/   rÒ   )r/   rÖ   )rJ   r   )r/   r   )rç   rI   r²   )rJ   rK   r¡   rI   r/   r   )rï   rð   r/   rñ   rL  )rö   rI   r/   rñ   )rï   rð   rö   rI   r/   r,   )rö   rI   r/   r,   )r/   rÄ   )FT)r  rI   r  rI   r/   r  )r  r`   r/   rI   )
r  r!  r  rI   r   r&   r°   r"  r/   r   )
r  r&  r  rI   r   r&   r°   r"  r/   r'  )
r  rI   r  rI   r   r&   r°   r"  r/   r)  )r  r    r  rI   )r>  r,   r?  r,   r/   r@  )r  r:   r/   rI   )r  r    r  rJ  )ra  rK   r/   r    )r  r    rk  r%   r  rI   r/   rl  )ri  )r  r    rk  r%   r/   rl  )r/   r    )r~  r,   r/   r    )rƒ  r„  rJ   r   r/   r    )r¨  r|  r/   r   )r   )r²  r,   r/   r³  )r/   r³  )r   TN)rü   r#   rà  rI   r/   r³  )FTFNT)
rë  rI   r  rI   r  rI   rì  rI   r/   r*   )ri  N)ró  rô  rõ  rö  r/   r÷  )Tr\   Ú
__module__Ú__qualname__Ú__doc__Ú_typr   rh   Ú__annotations__ÚpropertyrE   rY   Úclassmethodr]   rQ   rO   r   rm   rs   rw   r   r„   r–   r+   rW   r-   r    r£   rF   r¨   r¬   r¯   rµ   r¸   r¾   rÉ   rÑ   rÕ   rÙ   r   rã   ræ   ré   rH   rõ   ró   r“   r  r  r  r  r  r  r   r%  r1  r3  rI  rN  r]  rf  rn  rr  r}  r�  r�  r˜  rš  r§  r¡  r"   r«  rŒ  r±  r¶  r¸  rÂ  rÙ  rÛ  rÝ  rß  r¦  rñ  rû  Ú__classcell__)rÏ   s   @r3   r8   r8   M   s-	  ø€ € € € € € ð:ð :ðx €DØ"9Ð;KÐ!LÐØ€M€M�MØÐÐÑàð$ð $ð $ñ „Xð$ð ØØØ"ØØ $ð"/ð "/ð "/ð "/ð "/ðH ð+0ð +0ð +0ð +0ñ „[ð+0ð` à48ðð ð ð ñ „[ðð ðð ð ñ „[ðð ðð ð ñ „^ðð
 ðKð Kð Kñ „^ðKðNð Nð Nð Nð
7ð 7ð 7ðð ð ðDð Dð Dð Dð ð!ð !ð !ñ „Xð!ð6 ð ð  ð  ñ „Xð ð6 ð ð  ð  ñ „Xð ðB ð
ð 
ð 
ñ „^ð
ðð ð ð ð ð2 ðð ð ñ „Xðð ðð ð ñ „Xðð ð6ð 6ð 6ñ „^ð6ð ð6ð 6ð 6ñ „^ð6ð"ð "ð "ð "ð ðð ð ñ „Xðð6ð 6ð 6ð 6ðv "Ø Øð)ð )ð )ð )ð )ð )ð )ð< ðð ð ñ „^ðð!ð !ð !ð !ðð ð ð ð( 6@ð @ð @ð @ð @ð @ð:ð ð ð ð
Mð Mð Mð Mð Mð Mð
&ð &ð &ð &ð &ðP1ð 1ð 1ð 1ð#ð #ð #ð #ð #ð#ð #ð #ð #ð #ð Øð	<ð <ð <ð <ð <ð <ð <ð2@ð @ð @ð @ð @ð@ð @ð @ð @ð @ð;ð ;ð ;ð ;ð@ Ø $ðð ð ð ð ð%ð %ð %ð %ð %ð %ð ð *-ØØ"%Ø"ðð ð ð ð ñ „Xðð ð
 Ø"%Ø"ð&ð &ð &ð &ð &ñ „Xð&ð ð  #ØØ"%Ø"ð-ð -ð -ð -ð -ñ „Xð-ð  %ØØ"(Ø#ð! ð ! ð ! ð ! ð ! ð ! ð ! ð ! ðL&+ð &+ð &+ð &+ð &+ð &+ð &+ðP#ð #ð #ð #ð"	Gð 	Gð 	Gð 	GðI0ð I0ð I0ð I0ð I0ð I0ðVUð Uð Uð Uð Uð Uðp @Dðð ð ð ð ð ð ð>ð >ð >ð >ð >ð >ð ,2ð!&ð !&ð !&ð !&ð !&ð !&ð !&ðN#ð #ð #ð #ð #ð #ð,)ð )ð )ð )ð )ð )ð2S3ð S3ð S3ð S3ð S3ð S3ðj ð  ð  ð  ð ðð ð ñ „Xðð",ð ",ð ",ð ",ð ",ðH<ð <ð <ð <ð Ð˜nÑ-Ô-ð+ð +ð +ð +ñ .Ô-ð+ð$$ð $ð $ð $ð ð  ð  ð  ð 4ð  4ð  4ð  4ð  4ð  4ð  4ðD.ð .ð .ð .ð .ðH4ð H4ð H4ð H4ð H4ðT%ð %ð %ð %ð %ð %ð5ð 5ð 5ð 5ðð ð ð ð5ð 5ð 5ð 5ð ØØð&9ð &9ð &9ð &9ð &9ðT  ØØØØð:ð :ð :ð :ð :ð :ð :ð: *0Ø%)ð	!2ð !2ð !2ð !2ð !2ð !2ð !2ð !2ð !2ð !2ð !2r5   r8   )r+   r,   r-   r,   r.   r,   r/   r,   )MÚ
__future__r   Úcollections.abcr   r   r   Údatetimer   rÄ  Úsysr   Útypingr	   r
   r   r   r   r   Únumpyrp   Úpandas._libsr   rA   r   Úpandas._libs.libr   Úpandas.compat.numpyr   rø   Úpandas.util._decoratorsr   r   Úpandas.core.dtypes.baser   Úpandas.core.dtypes.commonr   r   r   r   r   r   Úpandas.core.dtypes.genericr   Úpandas.corer   Úpandas.core.commonÚcoreÚcommonrR   Úpandas.core.constructionr   Úpandas.core.indexersr   Úpandas.core.indexes.baserƒ  Úbaser{   r    r!   Úpandas.core.ops.commonr"   Úpandas._typingr#   r$   r%   r&   r'   r(   r6   r*   r:   r2  rF   rr   r¦   r4   r8   r�   r5   r3   ú<module>r"     sj  ðØ "Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð ð ð
 Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð ðð ð ð ð ð ð ð ð (Ð 'Ð 'Ð 'Ð 'Ð 'Ø .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð
 3Ð 2Ð 2Ð 2Ð 2Ð 2ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 9Ð 8Ð 8Ð 8Ð 8Ð 8à Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð <Ð ;Ð ;Ð ;Ð ;Ð ;àð 
ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ÐÐÐÐÐàˆu�Q‰xŒx€ØˆrŒx˜œÑ!Ô!€ð(ð (ð (ð (ð €ˆHÑÔða2ð a2ð a2ð a2ð a2�ñ a2ô a2ñ Ôða2ð a2ð a2r5   