§
    
Á³g`  ã                   ó  — d dl Z d dlmZ d dlmZ d dlmZmZmZm	Z	 e j
        dk    rd dlmZ nd dlmZ  G d„ de¦  «        Zd	ed
e	e         dee         fd„Zd	edee         dee         dee         dee         f
d„Z	 dd	edee         deee                  dee         fd„Zedk    rad dlmZ e G d„ d¦  «        ¦   «         Z ed eddd¦  «         eddd¦  «         eddd¦  «        g¦  «        Z e ee¦  «        ¦  «         dS dS )é    N)ÚFraction)Úceil)ÚcastÚListÚOptionalÚSequence)é   é   )ÚProtocolc                   óJ   — e Zd ZU dZdZee         ed<   dZeed<   dZ	eed<   dS )ÚEdgez1Any object that defines an edge (such as Layout).NÚsizeé   ÚratioÚminimum_size)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚintÚ__annotations__r   r   © ó    úU/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pip/_vendor/rich/_ratio.pyr   r      sI   € € € € € € Ø;Ð;à€Dˆ(�3Œ-ÐÐÑØ€Eˆ3€N€N�NØ€L�#ÐÐÑÐÐr   r   ÚtotalÚedgesÚreturnc                 ó@  — d„ |D ¦   «         }t           }d|v rèd„ t          t          ||¦  «        ¦  «        D ¦   «         }| t          d„ |D ¦   «         ¦  «        z
  }|dk    rd„ t          ||¦  «        D ¦   «         S  ||t          d„ |D ¦   «         ¦  «        ¦  «        }|D ]$\  }}||j        z  |j        k    r|j        ||<    n8Œ% |d¦  «        }	|D ](\  }}t          ||j        z  |	z   d¦  «        \  }
}	|
||<   Œ)nd|v °èt          t          t                   |¦  «        S )	aŒ  Divide total space to satisfy size, ratio, and minimum_size, constraints.

    The returned list of integers should add up to total in most cases, unless it is
    impossible to satisfy all the constraints. For instance, if there are two edges
    with a minimum size of 20 each and `total` is 30 then the returned list will be
    greater than total. In practice, this would mean that a Layout object would
    clip the rows that would overflow the screen height.

    Args:
        total (int): Total number of characters.
        edges (List[Edge]): Edges within total space.

    Returns:
        List[int]: Number of characters for each edge.
    c                 ó    — g | ]}|j         pd ‘ŒS ©N)r   )Ú.0Úedges     r   ú
<listcomp>z!ratio_resolve.<locals>.<listcomp>%   s   € Ð3Ð3Ð3 TˆdŒiÐ˜4Ð3Ð3Ð3r   Nc                 ó&   — g | ]\  }\  }}|­
||f‘ŒS r    r   )r!   Úindexr   r"   s       r   r#   z!ratio_resolve.<locals>.<listcomp>,   s1   € ð 
ð 
ð 
á#�‘|˜˜dØˆ|ð �DˆMàˆ|ˆ|r   c              3   ó   K  — | ]}|pd V — Œ	dS )r   Nr   )r!   r   s     r   ú	<genexpr>z ratio_resolve.<locals>.<genexpr>2   s&   è è € Ð<Ð<¨d  	¨Ð<Ð<Ð<Ð<Ð<Ð<r   r   c                 ó.   — g | ]\  }}|€	|j         pdn|‘ŒS )Nr   )r   )r!   r   r"   s      r   r#   z!ratio_resolve.<locals>.<listcomp>5   s;   € ð ð ð á�D˜$ð .2¨\�$Ô#Ð( qø¸tðð ð r   c              3   ó.   K  — | ]\  }}|j         pd V — ŒdS )r   N)r   )r!   Ú_r"   s      r   r'   z ratio_resolve.<locals>.<genexpr>;   s,   è è € ÐKÐK±°°D˜DœJ˜O¨!ÐKÐKÐKÐKÐKÐKr   r   )
r   Ú	enumerateÚzipÚsumr   r   Údivmodr   r   r   )r   r   ÚsizesÚ	_FractionÚflexible_edgesÚ	remainingÚportionr%   r"   Ú	remainderr   s              r   Úratio_resolver5      s�  € ð" 4Ð3¨UÐ3Ñ3Ô3€Eå€Ið �%ˆ-ˆ-ð
ð 
å'0µ°U¸EÑ1BÔ1BÑ'CÔ'Cð
ñ 
ô 
ˆð �CÐ<Ð<°eÐ<Ñ<Ô<Ñ<Ô<Ñ<ˆ	Ø˜Š>ˆ>ðð å"% e¨UÑ"3Ô"3ðñ ô ð ð
 �)Ø•sÐKÐK¸NÐKÑKÔKÑKÔKñ
ô 
ˆð
 *ð 	ð 	‰KˆE�4Ø˜œÑ# tÔ'8Ò8Ð8Ø#Ô0��e‘à�ð 9ð "˜	 !™œˆIØ-ð $ð $‘��tÝ"(¨°4´:Ñ)=À	Ñ)IÈ1Ñ"MÔ"M‘��iØ#��e‘�ØðE �%ˆ-ˆ-õH ••S”	˜5Ñ!Ô!Ð!r   ÚratiosÚmaximumsÚvaluesc                 óT  — d„ t          ||¦  «        D ¦   «         }t          |¦  «        }|s
|dd…         S | }g }|j        }t          |||¦  «        D ]U\  }}	}
|rB|dk    r<t          |	t	          ||z  |z  ¦  «        ¦  «        } ||
|z
  ¦  «         ||z  }||z  }ŒJ ||
¦  «         ŒV|S )ad  Divide an integer total in to parts based on ratios.

    Args:
        total (int): The total to divide.
        ratios (List[int]): A list of integer ratios.
        maximums (List[int]): List of maximums values for each slot.
        values (List[int]): List of values

    Returns:
        List[int]: A list of integers guaranteed to sum to total.
    c                 ó    — g | ]\  }}|r|nd ‘ŒS ©r   r   )r!   r   Ú_maxs      r   r#   z ratio_reduce.<locals>.<listcomp>_   s%   € ÐLÐLÐL¡{ u¨d�tÐ"ˆeˆe ÐLÐLÐLr   Nr   )r,   r-   ÚappendÚminÚround)r   r6   r7   r8   Útotal_ratioÚtotal_remainingÚresultr=   r   ÚmaximumÚvalueÚdistributeds               r   Úratio_reducerF   Q   sæ   € ð MÐLµc¸&À(Ñ6KÔ6KÐLÑLÔL€FÝ�f‘+”+€KØð Ø�a�a�aŒyÐØ€OØ€FØŒ]€FÝ!$ V¨X°vÑ!>Ô!>ð ð Ñˆˆw˜Øð 	�[ 1’_�_Ý˜g¥u¨U°_Ñ-DÀ{Ñ-RÑ'SÔ'SÑTÔTˆKØˆF�5˜;Ñ&Ñ'Ô'Ð'Ø˜{Ñ*ˆOØ˜5Ñ ˆKˆKàˆF�5‰MŒMˆMˆMØ€Mr   Úminimumsc                 óp  — |rd„ t          ||¦  «        D ¦   «         }t          |¦  «        }|dk    s
J d¦   «         ‚| }g }|j        }|€dgt          |¦  «        z  }n|}t          ||¦  «        D ]F\  }}	|dk    r$t	          |	t          ||z  |z  ¦  «        ¦  «        }
n|}
 ||
¦  «         ||z  }||
z  }ŒG|S )a<  Distribute an integer total in to parts based on ratios.

    Args:
        total (int): The total to divide.
        ratios (List[int]): A list of integer ratios.
        minimums (List[int]): List of minimum values for each slot.

    Returns:
        List[int]: A list of integers guaranteed to sum to total.
    c                 ó    — g | ]\  }}|r|nd ‘ŒS r;   r   )r!   r   Ú_mins      r   r#   z$ratio_distribute.<locals>.<listcomp>   s%   € ÐPÐPÐP©;¨5°$˜4Ð&�%�% QÐPÐPÐPr   r   zSum of ratios must be > 0)r,   r-   r=   ÚlenÚmaxr   )r   r6   rG   r@   rA   Údistributed_totalr=   Ú	_minimumsr   ÚminimumrE   s              r   Úratio_distributerP   q   sõ   € ð ð QØPÐP½#¸fÀhÑ:OÔ:OÐPÑPÔPˆÝ�f‘+”+€KØ˜Š?ˆ?ˆ?Ð7‰?Œ?ˆ?à€OØ#%ÐØÔ%€FØÐØ�C�#˜f™+œ+Ñ%ˆ	ˆ	àˆ	Ý˜f iÑ0Ô0ð 'ð '‰ˆˆwØ˜Š?ˆ?Ý˜g¥t¨E°OÑ,CÀkÑ,QÑ'RÔ'RÑSÔSˆKˆKà)ˆKØˆˆ{ÑÔÐØ�uÑˆØ˜;Ñ&ˆˆØÐr   Ú__main__)Ú	dataclassc                   óF   — e Zd ZU dZee         ed<   dZeed<   dZeed<   dS )ÚENr   r   r   r   )	r   r   r   r   r   r   r   r   r   r   r   r   rT   rT   ˜   sE   € € € € € € ð #ˆˆh�sŒmÐ"Ð"Ñ"Øˆˆsˆˆ‰Øˆ�cÐÐÑÐÐr   rT   én   r   r    )ÚsysÚ	fractionsr   Úmathr   Útypingr   r   r   r   Úversion_infor   Úpip._vendor.typing_extensionsr   r   r5   rF   rP   r   ÚdataclassesrR   rT   ÚresolvedÚprintr-   r   r   r   ú<module>r_      s;  ðØ 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1àÔ�vÒÐØÐÐÐÐÐÐà6Ð6Ð6Ð6Ð6Ð6ðð ð ð ð ˆ8ñ ô ð ð:"˜ð :" X¨d¤^ð :"¸¸S¼	ð :"ð :"ð :"ð :"ðzØðØ˜Sœ	ðØ-1°#¬YðØ@DÀSÄ	ðà	ˆ#„Yðð ð ð ðB DHð!ð !Øð!Ø˜Sœ	ð!Ø-5°d¸3´iÔ-@ð!à	ˆ#„Yð!ð !ð !ð !ðH ˆzÒÐØ%Ð%Ð%Ð%Ð%Ð%àðð ð ð ð ñ ô ñ „Yðð ˆ}˜S 1 1 T¨1¨a¡=¤=°!°!°D¸!¸Q±-´-ÀÀÀ4ÈÈAÁÄÐ"OÑPÔP€HØ	€Eˆ#ˆ#ˆh‰-Œ-ÑÔÐÐÐð Ðr   