Ë
     V.jËv  ã                  óˆ  — d Z ddlmZ ddlmZ ddlZddlZddlZddl	Z	ddl
Z
ddlZddl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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!  ejD                  d«      Z# G d„ dejH                  «      Z%	 	 	 	 d/d„Z&e	jN                  dk(  rdZ(dZ)ndZ(dZ) G d„ dejT                  e#   «      Z+ G d„ dejX                  «      Z-	 d0	 	 	 d1d„Z.ej^                  d0d2d „«       Z0ej^                  	 d0	 	 	 	 	 d3d!„«       Z1ej^                  	 d0	 	 	 	 	 d3d"„«       Z2 G d#„ d$«      Z3ej^                  	 d0	 	 	 	 	 d4d%„«       Z4 G d&„ d'«      Z5d5d6d(„Z6d7d)„Z7ejp                  d*k(  rddl9Z9ej^                  d8d+„«       Z:d9d,„Z;yddl<Z<ddl=Z=ej^                  d8d-„«       Z:d9d.„Z;y):z¿
This module contains implementations for the termui module. To keep the
import time of Click down, some infrequently used functionality is
placed in this module and only imported as needed.
é    )ÚannotationsN)Úgettext)ÚStringIO)ÚPath)ÚTracebackTypeé   )Ú_default_text_stdout)ÚCYGWIN)Úget_best_encoding)Úisatty)Ú
strip_ansi)Úterm_len)ÚWIN)ÚClickException)ÚechoÚVc                  ó   — e Zd ZU ded<   y)Ú_BufferedTextPagerStreamú
t.BinaryIOÚbufferN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úTC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\click/_termui_impl.pyr   r   $   s   … ØÔr   r   c                ó    — t        | dd «      d uS )Nr   )Úgetattr©Ústreams    r   Ú_has_binary_bufferr"   (   s   € ô
 �6˜8 TÓ*°$Ð6Ð6r   ÚntÚÚ
z[?25lz[?25h
c                  ó6  — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Ze	dd„«       Z
e	dd	„«       Ze	dd
„«       Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd d„Zdd„Zdd„Zy)!ÚProgressBarNc                óÈ  — || _         || _        || _        || _        || _        || _        |	| _        |
| _        || _        |xs d| _	        |€t        «       }|€
t        «       }|| _        || _        || _        d| _        || _        |dk(  | _        |€ddlm}  ||d«      }|dk(  rd }|€,|€t)        d«      ‚t+        j,                  dt/        |«      «      }t1        |«      | _        || _        d| _        g | _        |  |  t9        j8                  «       x| _        | _        d| _        d| _         d | _!        d| _"        d | _#        tI        | j                  «      | _%        d | _&        y )NÚ r   )Úlength_hintéÿÿÿÿziterable or length is requiredzcabc.Iterable[V]F)'Ú	fill_charÚ
empty_charÚbar_templateÚinfo_sepÚhiddenÚshow_etaÚshow_percentÚshow_posÚitem_show_funcÚlabelr	   r   ÚfileÚcolorÚupdate_min_stepsÚ_completed_intervalsÚwidthÚ	autowidthÚoperatorr*   Ú	TypeErrorÚtÚcastÚrangeÚiterÚlengthÚposÚavgÚtimeÚstartÚlast_etaÚ	eta_knownÚfinishedÚ	max_widthÚenteredÚcurrent_itemr   Ú_is_attyÚ
_last_line)ÚselfÚiterablerB   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r:   r*   s                     r   Ú__init__zProgressBar.__init__9   s]  € ð& #ˆŒØ$ˆŒØ(ˆÔØ ˆŒØˆŒØ ˆŒØ(ˆÔØ ˆŒØ,ˆÔØš+ 2ˆŒ
àˆ<Ü'Ó)ˆDð ˆ|Ü“z�àˆŒ	ØˆŒ
Ø 0ˆÔØ$%ˆÔ!ØˆŒ
Ø$¨™zˆŒàˆ>Ý,á  ¨2Ó.ˆFà˜Š|Ø�ØÐØˆ~ÜÐ @ÓAÐAÜ—v‘vÐ0´%¸³-Ó@ˆHÜ&*¨8£nˆŒ	ØˆŒØˆŒØ "ˆŒÙÙÜ%)§Y¡Y£[Ð0ˆŒ
�T”]Ø$ˆŒØ#ˆŒØ%)ˆŒØ"ˆŒØ&*ˆÔÜ˜tŸy™yÓ)ˆŒØ&*ˆ�r   c                ó4   — d| _         | j                  «        | S )NT)rK   Úrender_progress©rO   s    r   Ú	__enter__zProgressBar.__enter__€   s   € ØˆŒØ×ÑÔØˆr   c                ó$   — | j                  «        y ©N)Úrender_finish)rO   Úexc_typeÚ	exc_valueÚtbs       r   Ú__exit__zProgressBar.__exit__…   s   € ð 	×ÑÕr   c                óp   — | j                   st        d«      ‚| j                  «        | j                  «       S )Nú.You need to use progress bars in a with block.)rK   ÚRuntimeErrorrS   Ú	generatorrT   s    r   Ú__iter__zProgressBar.__iter__�   s.   € Ø�|Š|ÜÐOÓPÐPØ×ÑÔØ�~‰~ÓÐr   c                ó*   — t        t        | «      «      S rW   )ÚnextrA   rT   s    r   Ú__next__zProgressBar.__next__“   s   € ô ”D˜“JÓÐr   c                ó¨   — | j                   s| j                  sy | j                  j                  t        «       | j                  j                  «        y rW   )r0   rM   r6   ÚwriteÚ	AFTER_BARÚflushrT   s    r   rX   zProgressBar.render_finish›   s0   € Ø�;Š;˜dŸmšmØØ�	‰	�‰œ	Ô"Ø�	‰	�‰Õr   c                ó„   — | j                   ryt        | j                  t        | j                  xs d«      xs dz  d«      S )Nç      ð?r   )rI   ÚminrC   ÚfloatrB   rT   s    r   ÚpctzProgressBar.pct¡   s5   € à�=Š=ØÜ�4—8‘8œu T§[¡[Ò%5°AÓ6Ò;¸!Ñ<¸cÓBÐBr   c                ó„   — | j                   syt        | j                   «      t        t        | j                   «      «      z  S ©Ng        )rD   Úsumrl   ÚlenrT   s    r   Útime_per_iterationzProgressBar.time_per_iteration§   s,   € à�xŠxØÜ�4—8‘8‹}œu¤S¨¯©£]Ó3Ñ3Ð3r   c                ó€   — | j                   �2| j                  s&| j                  | j                   | j                  z
  z  S yro   )rB   rI   rr   rC   rT   s    r   ÚetazProgressBar.eta­   s3   € à�;‰;Ð"¨4¯=ª=Ø×*Ñ*¨d¯k©k¸D¿H¹HÑ.DÑEÐEØr   c                óä   — | j                   rdt        | j                  «      }|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }|dkD  rdj                  |t	        d«      |||¬«      S |d›d|d›d|d›�S y	)
Né<   é   r   z#{d}{day_label} {h:02}:{m:02}:{s:02}Úd)rx   Ú	day_labelÚhÚmÚsÚ02Ú:r)   )rH   Úintrt   ÚformatÚ_)rO   r>   ÚsecondsÚminutesÚhourss        r   Ú
format_etazProgressBar.format_eta³   s¡   € Ø�>Š>Ü�D—H‘H“ˆAØ˜"‘fˆGØ�"‰HˆAØ˜"‘fˆGØ�"‰HˆAØ˜‘FˆEØ�"‰HˆAØ�1ŠuØ<×CÑCØÜ ›fØØØð Dó ð ð   ˜ 1 W¨R L°°'¸"°Ð>Ð>Ør   c                ól   — t        | j                  «      }| j                  �|d| j                  › �z  }|S )NÚ/)ÚstrrC   rB   )rO   rC   s     r   Ú
format_poszProgressBar.format_posÈ   s3   € Ü�$—(‘(‹mˆØ�;‰;Ð"Ø�Q�t—{‘{�mÐ$Ñ$ˆCØˆ
r   c                ó@   — t        | j                  dz  «      d›d�dd  S )Néd   z 4Ú%r   )r   rm   rT   s    r   Ú
format_pctzProgressBar.format_pctÎ   s&   € Ü�d—h‘h ‘nÓ% bÐ)¨Ð+¨A¨BÐ/Ð/r   c                óF  — | j                   �Rt        | j                  | j                  z  «      }| j                  |z  }|| j
                  | j                  |z
  z  z  }|S | j                  r| j                  | j                  z  }|S t        | j
                  | j                  xs dz  «      }| j                  dk7  rU| j                  |t        t        j                  | j                  | j                  z  «      dz  dz   | j                  z  «      <   dj                  |«      }|S )Nr   r   g       @g      à?r)   )rB   r   rm   r:   r,   r-   rI   Úlistrr   ÚmathÚcosrC   Újoin)rO   Ú
bar_lengthÚbarÚcharss       r   Ú
format_barzProgressBar.format_barÑ   s  € Ø�;‰;Ð"Ü˜TŸX™X¨¯
©
Ñ2Ó3ˆJØ—.‘. :Ñ-ˆCØ�4—?‘? d§j¡j°:Ñ&=Ñ>Ñ>ˆCð ˆ
ð �]Š]Ø—.‘. 4§:¡:Ñ-ˆCð ˆ
ô ˜Ÿ™¨D¯J©JªO¸!Ñ<Ó=ˆEØ×&Ñ&¨!Ò+ð —N‘Nð ÜÜŸ™ $§(¡(¨T×-DÑ-DÑ"DÓEÈÑKÈcÑQØŸ*™*ñ%óñð —'‘'˜%“.ˆCØˆ
r   c                óŠ  — | j                   }g }| j                  �|€| j                   }| j                  r|j                  | j	                  «       «       |r|j                  | j                  «       «       | j                  r7| j                  r+| j                  s|j                  | j                  «       «       | j                  �.| j                  | j                  «      }|�|j                  |«       | j                  | j                  | j                  «       | j                  j!                  |«      dœz  j#                  «       S )N)r5   r”   Úinfo)r2   rB   r3   Úappendr‰   r�   r1   rH   rI   r…   r4   rL   r.   r5   r–   r/   r’   Úrstrip)rO   r2   Ú	info_bitsÚ	item_infos       r   Úformat_progress_linez ProgressBar.format_progress_lineä   s  € Ø×(Ñ(ˆàˆ	Ø�;‰;Ð" |Ð';Ø#Ÿ}™}Ð,ˆLà�=Š=Ø×Ñ˜TŸ_™_Ó.Ô/ÙØ×Ñ˜TŸ_™_Ó.Ô/Ø�=Š=˜TŸ^š^°D·M²MØ×Ñ˜TŸ_™_Ó.Ô/Ø×ÑÐ*Ø×+Ñ+¨D×,=Ñ,=Ó>ˆIØÐ$Ø× Ñ  Ô+ð ×ÑàŸ™Ø—‘Ó(ØŸ™×*Ñ*¨9Ó5ññ÷ ‰&‹(ð	r   c                óX  — | j                   ry | j                  sW| j                  | j                  k7  r=| j                  | _        t	        | j                  | j
                  | j                  ¬«       y g }| j                  r©dd l}| j                  }d| _	        t        | j                  «       «      }t        d|j                  «       j                  |z
  «      }||k  rF| j                  �:|j!                  t"        «       |j!                  d| j                  z  «       || _        || _	        | j                  }| j                  �| j                  }|j!                  t"        «       | j                  «       }t        |«      }| j                  �| j                  |k  r|| _        |j!                  |«       |j!                  d||z
  z  «       dj%                  |«      }|| j                  k7  rE|| _        t	        || j
                  | j                  d¬«       | j
                  j'                  «        y y )N)r6   r7   r   Ú r)   F)r6   r7   Únl)r0   rM   rN   r5   r   r6   r7   r;   Úshutilr:   r   r�   ÚmaxÚget_terminal_sizeÚcolumnsrJ   r™   Ú
BEFORE_BARr’   rh   )	rO   Úbufr¡   Ú	old_widthÚclutter_lengthÚ	new_widthÚclear_widthÚlineÚline_lens	            r   rS   zProgressBar.render_progressÿ   s£  € Ø�;Š;Øà�}Š}à�‰ $§*¡*Ò,Ø"&§*¡*�”Ü�T—Z‘Z d§i¡i°t·z±zÕBØàˆà�>Š>ÛàŸ
™
ˆIØˆDŒJÜ% d×&?Ñ&?Ó&AÓBˆNÜ˜A˜v×7Ñ7Ó9×AÑAÀNÑRÓSˆIØ˜9Ò$¨¯©Ð)CØ—
‘
œ:Ô&Ø—
‘
˜3 §¡Ñ/Ô0Ø!*�”Ø"ˆDŒJà—j‘jˆØ�>‰>Ð%ØŸ.™.ˆKà�
‰
”:ÔØ×(Ñ(Ó*ˆÜ˜D“>ˆØ�>‰>Ð! T§^¡^°hÒ%>Ø%ˆDŒNà�
‰
�4ÔØ�
‰
�3˜+¨Ñ0Ñ1Ô2Ø�w‰w�s‹|ˆð �4—?‘?Ò"Ø"ˆDŒOÜ�˜DŸI™I¨T¯Z©Z¸EÕBØ�I‰I�O‰OÕð #r   c                ó  — | xj                   |z  c_         | j                  � | j                   | j                  k\  rd| _        t        j                  «       | j                  z
  dk  ry t        j                  «       | _        | j                   r/t        j                  «       | j
                  z
  | j                   z  }n!t        j                  «       | j
                  z
  }| j                  dd  |gz   | _        | j                  d u| _        y )NTrj   iúÿÿÿ)rC   rB   rI   rE   rG   rF   rD   rH   )rO   Ún_stepsÚsteps      r   Ú	make_stepzProgressBar.make_step-  s¹   € Ø�Š�GÑ�Ø�;‰;Ð" t§x¡x°4·;±;Ò'>Ø ˆDŒMä�I‰I‹K˜$Ÿ-™-Ñ'¨3Ò.ØäŸ	™	›ˆŒð
 �8Š8Ü—I‘I“K $§*¡*Ñ,°·±Ñ8‰Dä—9‘9“; §¡Ñ+ˆDà—8‘8˜B˜C�= D 6Ñ)ˆŒàŸ™¨DÐ0ˆ�r   c                óØ   — |�|| _         | xj                  |z  c_        | j                  | j                  k\  r3| j                  | j                  «       | j	                  «        d| _        yy)a  Update the progress bar by advancing a specified number of
        steps, and optionally set the ``current_item`` for this new
        position.

        :param n_steps: Number of steps to advance.
        :param current_item: Optional item to set as ``current_item``
            for the updated position.

        .. versionchanged:: 8.0
            Added the ``current_item`` optional parameter.

        .. versionchanged:: 8.0
            Only render when the number of steps meets the
            ``update_min_steps`` threshold.
        Nr   )rL   r9   r8   r°   rS   )rO   r®   rL   s      r   ÚupdatezProgressBar.updateC  sb   € ð  Ð#Ø ,ˆDÔà×!Ò! WÑ,Õ!à×$Ñ$¨×(=Ñ(=Ò=Ø�N‰N˜4×4Ñ4Ô5Ø× Ñ Ô"Ø()ˆDÕ%ð >r   c                ó.   — d| _         d | _        d| _        y )NFT)rH   rL   rI   rT   s    r   ÚfinishzProgressBar.finish]  s   € ØˆŒØ ˆÔØˆ�r   c              #  óX  K  — | j                   st        d«      ‚| j                  s| j                  E d{  –—†  y| j                  D ]=  }|| _        | j
                  dk(  r| j                  «        |–— | j                  d«       Œ? | j                  «        | j                  «        y7 Œr­w)z¨Return a generator which yields the items added to the bar
        during construction, and updates the progress bar *after* the
        yielded block returns.
        r^   Nr   r   )	rK   r_   rM   rA   rL   r9   rS   r²   r´   )rO   Úrvs     r   r`   zProgressBar.generatorb  s�   è ø€ ð �|Š|ÜÐOÓPÐPà�}Š}Ø—y‘y× Ñ à—i”i�Ø$&�Ô!ð
 ×,Ñ,°Ò1Ø×(Ñ(Ô*à’Ø—‘˜A•ð  ð �K‰KŒMØ× Ñ Õ"ð !ús   ‚3B*µB(¶A3B*)NÚ#rŸ   z%(bar)sz  FTNFNNNNr   é   )"rP   zcabc.Iterable[V] | NonerB   z
int | Noner,   rˆ   r-   rˆ   r.   rˆ   r/   rˆ   r0   Úboolr1   r¹   r2   úbool | Noner3   r¹   r4   z)t.Callable[[V | None], str | None] | Noner5   ú
str | Noner6   zt.TextIO | Noner7   rº   r8   r   r:   r   ÚreturnÚNone)r¼   zProgressBar[V])rY   ztype[BaseException] | NonerZ   zBaseException | Noner[   zTracebackType | Noner¼   r½   )r¼   zcabc.Iterator[V])r¼   r   ©r¼   r½   )r¼   rl   ©r¼   rˆ   )r®   r   r¼   r½   rW   )r®   r   rL   zV | Noner¼   r½   )r   r   r   rQ   rU   r\   ra   rd   rX   Úpropertyrm   rr   rt   r…   r‰   r�   r–   r�   rS   r°   r²   r´   r`   r   r   r   r'   r'   8   s¢  „ ð "ØØØ%ØØØØ$(ØØDHØ Ø $Ø!Ø !Øð#E+à)ðE+ð ðE+ð ð	E+ð
 ðE+ð ðE+ð ðE+ð ðE+ð ðE+ð "ðE+ð ðE+ð BðE+ð ðE+ð ðE+ð ðE+ð  ð!E+ð" ð#E+ð$ 
ó%E+óNð
à,ðð (ðð !ð	ð
 
óó ó óð òCó ðCð
 ò4ó ð4ð
 òó ðó
ó*ó0óó&ó6,ó\1ô,*ó4ô
#r   r'   c                  ó,   ‡ — e Zd Zdˆ fd„Zdˆ fd„Zˆ xZS )ÚMaybeStripAnsic               ó4   •— t        ‰| �  |fi |¤Ž || _        y rW   )ÚsuperrQ   r7   )rO   r!   r7   ÚkwargsÚ	__class__s       €r   rQ   zMaybeStripAnsi.__init__…  s   ø€ Ü‰Ñ˜Ñ* 6Ò*Øˆ�
r   c                óP   •— | j                   st        |«      }t        ‰| �  |«      S rW   )r7   r   rÄ   rf   )rO   ÚtextrÆ   s     €r   rf   zMaybeStripAnsi.write‰  s#   ø€ Ø�zŠzÜ˜dÓ#ˆDÜ‰w‰}˜TÓ"Ð"r   )r!   zt.IO[bytes]r7   r¹   rÅ   út.Any)rÈ   rˆ   r¼   r   )r   r   r   rQ   rf   Ú__classcell__)rÆ   s   @r   rÂ   rÂ   „  s   ø„ õ÷#ñ #r   rÂ   c                ó  — t        «       }|€
t        «       }t        t        j                  «      rt        |«      st        || «      S t        j                  t        j                  j                  dd«      «      }|rt        rt        || «      S t        || «      S t        j                  j                  d«      dv rt        || «      S t        st        j                  j                  d«      rt        dg| «      S t        dg| «      S )z2Decide what method to use for paging through text.ÚPAGERr)   ÚTERM)ÚdumbÚemacsÚos2ÚmoreÚless)r	   r   r   ÚsysÚstdinÚ
_nullpagerÚshlexÚsplitÚosÚenvironÚgetr   Ú_tempfilepagerÚ
_pipepagerÚplatformÚ
startswith)r7   ÚstdoutÚpager_cmd_partss      r   Ú_pager_contextmanagerrá   �  sÍ   € ô "Ó#€Fð €~Ü“ˆä”#—)‘)Ô¤F¨6¤NÜ˜& %Ó(Ð(ô —k‘k¤"§*¡*§.¡.°¸"Ó"=Ó>€OÙÝÜ! /°5Ó9Ð9Ü˜/¨5Ó1Ð1ä	‡z�z‡~�~�fÓÐ!2Ñ2Ü˜& %Ó(Ð(Ý
Œc�l‰l×%Ñ% eÔ,Ü˜v˜h¨Ó.Ð.Ü�v�h Ó&Ð&r   c              #  óD  K  — t        | ¬«      5 \  }}} t        |«      rt        |j                  | |¬«      }n(t	        |t
        j                  «      rt        || |¬«      }	 |–— |j                  «        	 ddd«       y# |j                  «        w xY w# 1 sw Y   yxY w­w)zòContext manager.
    Yields a writable file-like object which can be used as an output pager.
    .. versionadded:: 8.4
    :param color: controls if the pager supports ANSI colors or not.  The
                  default is autodetection.
    )r7   )r7   ÚencodingN)rá   r"   rÂ   r   Ú
isinstancer>   ÚBinaryIOrh   )r7   r!   rã   s      r   Úget_pager_fileræ   ®  s�   è ø€ ô 
 UÕ	+Ñ/H°¸À%ô ˜fÔ%ä# F§M¡M¸ÈÔR‰FÜ˜¤§
¡
Ô+ä# F°%À(ÔKˆFð	ØŠLà�L‰L�N÷ 
,Ð	+øð �L‰L�Nú÷ 
,Ð	+üs5   ‚B �ABÁ!A?Á%BÁ6	B Á?BÂBÂBÂB c              #  ó>  K  — | st        «       xs
 t        «       }|ddf–— yddl}| d   }| dd }|j                  |«      }|st        «       xs
 t        «       }|ddf–— yt	        |«      j                  «       }|j                  }ddl}	t        t        j                  «      }
|€L|dk(  rGt        j                  j                  dd«      › d	j                  |«      › �}|sd
|
d<   d}n
d|v sd|v rd}|€d}|	j                  t        |«      g|z   d|	j                  |
dd¬«      }t!        j"                  t         j$                  |j&                  «      }t)        |«      }	 |||f–— 	 |j1                  «        	 	 |j3                  «        y# t*        $ r Y Œ/t,        $ r}|j/                  «        |‚d}~ww xY w# t*        $ r Y ŒKw xY w# t4        $ r Y nw xY wŒ^# 	 |j1                  «        n# t*        $ r Y nw xY w	 	 |j3                  «        w # t4        $ r Y nw xY wŒ"xY w­w)aÞ  Page through text by feeding it to another program.

    Invokes the pager via :class:`subprocess.Popen` with an ``argv`` list
    produced by :func:`shlex.split`. The command is resolved to an absolute
    path with :func:`shutil.which` as recommended by the
    :mod:`subprocess` docs for Windows compatibility.

    Invoking a pager through this might support colors: if piping to
    ``less`` and the user hasn't decided on colors, ``LESS=-R`` is set
    automatically.
    úutf-8FNr   r   rÒ   ÚLESSr)   rŸ   ú-RTÚrÚRÚreplace)ÚshellrÔ   ÚenvÚerrorsrÈ   )r	   r   r¡   Úwhichr   ÚabsoluteÚnameÚ
subprocessÚdictrØ   rÙ   rÚ   r’   ÚPopenrˆ   ÚPIPEr>   r?   rå   rÔ   r   ÚBrokenPipeErrorÚ	ExceptionÚ	terminateÚcloseÚwaitÚKeyboardInterrupt)Ú	cmd_partsr7   rß   r¡   ÚcmdÚ
cmd_paramsÚcmd_filepathÚcmd_pathÚcmd_namerô   rï   Ú
less_flagsÚcrÔ   rã   Úes                   r   rÜ   rÜ   Æ  sF  è ø€ ñ  Ü%Ó'Ò5¬8«:ˆØ�g˜uÐ$Ò$Øãà
�A‰,€CØ˜1˜2�€Jà—<‘< Ó$€LÙÜ%Ó'Ò5¬8«:ˆØ�g˜uÐ$Ò$Øô
 �LÓ!×*Ñ*Ó,€HØ�}‰}€Hãô Œr�z‰zÓ
€Cð €}˜ VÒ+ÜŸ
™
Ÿ™ v¨rÓ2Ð3°C·H±H¸ZÓ4HÐ3IÐJˆ
ÙØˆC�‰KØ‰EØ�JÑ #¨Ñ"3ØˆEà€}Øˆà×ÑÜ	ˆX‹ˆ˜*Ñ$ØØ�o‰oØØØð 	ó 	€Aô �F‰F”1—:‘:˜qŸw™wÓ'€EÜ  Ó'€Hð#Ø�X˜uÐ$Ò$ð	Ø�K‰KŒMð ðØ—‘”ð øôC ò áÜò ð
 	
�‰ŒØˆûðûô ò 	Ùð	ûô %ò Ùðúð øð	Ø�K‰K�Møô ò 	Ùð	úð ðØ—‘”ð øô %ò Ùðúð üsÌ   ‚EHÅF	 Å&F6 Å6HÅ8G ÆHÆ		F3ÆG ÆF3ÆF.Æ.F3Æ3G Æ6	GÆ?HÇGÇHÇ	GÇHÇGÇHÇHÇG(Ç'HÇ(	G4Ç1HÇ3G4Ç4HÇ9H
È	HÈ
	HÈHÈHÈHÈHc              #  óÈ  K  — | st        «       xs
 t        «       }|ddf–— yddl}ddl}| d   }|j	                  |«      }|st        «       xs
 t        «       }|ddf–— yt        |«      j                  «       }ddl}t        t        j                  «      }	|€d}|j                  dd¬«      }
	 t        j                  t        j                  |
«      |	|f–— |
j                  «        |
j!                  «        |j#                  t%        |«      |
j&                  g«       t)        j*                  |
j&                  «       y# t)        j*                  |
j&                  «       w xY w­w)a   Page through text by invoking a program on a temporary file.

    Used as the primary pager strategy on Windows (where piping to
    ``more`` adds spurious ``\r\n``), and as a fallback on other
    platforms. The command is resolved to an absolute path with
    :func:`shutil.which`.
    rè   FNr   Úwb)ÚmodeÚdelete)r	   r   r¡   rô   rñ   r   rò   Útempfiler   rÓ   rß   ÚNamedTemporaryFiler>   r?   rå   rh   rû   Úcallrˆ   ró   rØ   Úunlink)rþ   r7   rß   r¡   rô   rÿ   r  r  r  rã   Úfs              r   rÛ   rÛ   .  s  è ø€ ñ Ü%Ó'Ò5¬8«:ˆØ�g˜uÐ$Ò$ØãÛà
�A‰,€Cà—<‘< Ó$€LÙÜ%Ó'Ò5¬8«:ˆØ�g˜uÐ$Ò$Øô
 �LÓ!×*Ñ*Ó,€Hãä ¤§¡Ó,€HØ€}Øˆð 	×#Ñ#¨°eÐ#Ó<€AðÜ�f‰f”Q—Z‘Z Ó# X¨uÐ4Ò4Ø	�‰Œ	Ø	�‰Œ	Ø�‰œ˜X›¨¯©Ð/Ô0ä
�	‰	�!—&‘&ÕøŒ�	‰	�!—&‘&Õüs   ‚B,E"Â/A/D> Ä E"Ä>!EÅE"c                  ó6   — e Zd Zdd„Zdd„Zedd„«       Zd	d„Zy)
Ú
_SkipClosec                ó   — || _         y rW   r    )rO   r!   s     r   rQ   z_SkipClose.__init__b  s	   € Øˆ�r   c                ó.   — t        | j                  |«      S rW   )r   r!   )rO   ró   s     r   Ú__getattr__z_SkipClose.__getattr__e  s   € Ü�t—{‘{ DÓ)Ð)r   c                ó@   — t        | j                  j                  «      S rW   )r  r!   r   rT   s    r   r   z_SkipClose.bufferh  s   € ä˜$Ÿ+™+×,Ñ,Ó-Ð-r   c                 ó   — y rW   r   rT   s    r   rû   z_SkipClose.closel  s   € Ør   N)r!   zt.IO[t.Any]r¼   r½   )ró   rˆ   r¼   rÉ   )r¼   r   r¾   )r   r   r   rQ   r  rÀ   r   rû   r   r   r   r  r  a  s%   „ óó*ð ò.ó ð.ôr   r  c              #  óJ   K  — t        | «      }|€d}t        | «      ||f–— y­w)z¹Simply print unformatted text. This is the ultimate fallback. Don't close the
    output stream in this case, since it's coming from elsewhere rather than our
    internal helpers.
    NF)r   r  )r!   r7   rã   s      r   rÕ   rÕ   p  s.   è ø€ ô ! Ó(€Hà€}Øˆä
�VÓ
˜h¨Ð
-Ó-ùs   ‚!#c                  ó”   — e Zd Z	 	 	 	 d	 	 	 	 	 	 	 	 	 d	d„Zd
d„Zdd„Zej                  dd„«       Zej                  dd„«       Zdd„Zy)ÚEditorNc                ó<   — || _         || _        || _        || _        y rW   )Úeditorrï   Úrequire_saveÚ	extension)rO   r  rï   r  r  s        r   rQ   zEditor.__init__�  s!   € ð ˆŒØˆŒØ(ˆÔØ"ˆ�r   c                óÌ   — | j                   �| j                   S dD ]'  }t        j                  j                  |«      }|sŒ%|c S  t        ryddlm} dD ]  } ||«      €Œ|c S  y)N)ÚVISUALÚEDITORÚnotepadr   )rñ   )zsensible-editorÚvimÚnanoÚvi)r  rØ   rÙ   rÚ   r   r¡   rñ   )rO   Úkeyr¶   rñ   r  s        r   Ú
get_editorzEditor.get_editor�  sc   € Ø�;‰;Ð"Ø—;‘;ÐÛ%ˆCÜ—‘—‘ Ó$ˆBÚØ’	ð &õ Øå ã6ˆFÙ�V‹}Ñ(Ø’ð 7ð r   c                ó  — ddl }ddl}| j                  «       }d}| j                  r9t        j
                  j                  «       }|j                  | j                  «       	 |j                   |j                  |«      t        |«      z   |¬«      }|j                  «       }|dk7  r$t        t        d«      j                  |¬«      «      ‚y# t        $ r+}t        t        d«      j                  ||¬«      «      |‚d}~ww xY w)z Open files in the user's editor.r   N)Úargsrï   z{editor}: Editing failed)r  z{editor}: Editing failed: {e})r  r  )rÖ   rô   r&  rï   rØ   rÙ   Úcopyr²   rö   r×   r�   rü   r   r�   r€   ÚOSError)	rO   Ú	filenamesrÖ   rô   r  rÙ   r  Ú	exit_coder  s	            r   Ú
edit_fileszEditor.edit_filesž  sî   € ãÛà—‘Ó"ˆØ)-ˆà�8Š8Ü—j‘j—o‘oÓ'ˆGØ�N‰N˜4Ÿ8™8Ô$ð	ð × Ñ Ø �U—[‘[ Ó(¬4°	«?Ñ:Øð !ó ˆAð Ÿ™›ˆIØ˜AŠ~Ü$ÜÐ0Ó1×8Ñ8ÀÐ8ÓGóð ð øô ò 	Ü ÜÐ1Ó2×9Ñ9ÀÈ1Ð9ÓMóàðûð	ús   Á!A(C
 Ã
	C>Ã&C9Ã9C>c                 ó   — y rW   r   ©rO   rÈ   s     r   ÚeditzEditor.edit¼  s   € Ø=@r   c                 ó   — y rW   r   r/  s     r   r0  zEditor.editÁ  s   € Ø47r   c                ó–  — dd l }|€d}njt        |t        t        f«      r|}nQ|r|j	                  d«      s|dz  }t
        r"|j                  dd«      j                  d«      }n|j                  d«      }|j                  d| j                  ¬«      \  }}	 t        j                  |d	«      5 }|j                  |«       d d d «       t        j                  |t        j                  j                  |«      t        j                  j!                  |«      d
z
  f«       t        j                  j!                  |«      }| j#                  |f«       | j$                  r9t        j                  j!                  |«      |k(  r	 t        j&                  |«       y t)        |d«      5 }|j+                  «       }d d d «       t        |t        t        f«      rt        j&                  |«       S j-                  d«      j                  dd«      t        j&                  |«       S # 1 sw Y   �Œ]xY w# 1 sw Y   ŒyxY w# t        j&                  |«       w xY w)Nr   r   r%   z
z	utf-8-sigrè   zeditor-)ÚprefixÚsuffixr  é   Úrb)r  rä   ÚbytesÚ	bytearrayÚendswithr   rí   ÚencodeÚmkstempr  rØ   Úfdopenrf   ÚutimeÚpathÚgetatimeÚgetmtimer-  r  r  ÚopenÚreadÚdecode)	rO   rÈ   r  ÚdataÚfdró   r  Ú	timestampr¶   s	            r   r0  zEditor.editÄ  s¸  € Ûàˆ<Ø&)‰DÜ˜œu¤iÐ0Ô1Ø‰Dá˜DŸM™M¨$Ô/Ø˜‘�åØ—|‘| D¨&Ó1×8Ñ8¸ÓE‘à—{‘{ 7Ó+�à×#Ñ#¨9¸T¿^¹^Ð#ÓL‰ˆˆDð	Ü—‘˜2˜tÔ$¨Ø—‘˜”÷ %ô �H‰H�TœBŸG™G×,Ñ,¨TÓ2´B·G±G×4DÑ4DÀTÓ4JÈQÑ4NÐOÔPô Ÿ™×(Ñ(¨Ó.ˆIà�O‰O˜T˜GÔ$à× Ò ¤R§W¡W×%5Ñ%5°dÓ%;¸yÒ%HØô �I‰I�d�Oô �d˜DÔ! QØ—V‘V“X�÷ "ô ˜$¤¬	Ð 2Ô3Øô �I‰I�d�Oð —9‘9˜[Ó)×1Ñ1°&¸$Ó?ä�I‰I�d�O÷3 %Ñ$ú÷" "Ð!ûô �I‰I�d�OúsI   ÂH1 Â+HÂ=B<H1 ÆH1 ÆH%Æ-H1 Ç" H1 ÈH"ÈH1 È%H.È*H1 È1I)NNTz.txt)
r  r»   rï   zcabc.Mapping[str, str] | Noner  r¹   r  rˆ   r¼   r½   r¿   )r+  zcabc.Iterable[str]r¼   r½   )rÈ   zbytes | bytearrayr¼   zbytes | None)rÈ   r»   r¼   r»   )rÈ   zstr | bytes | bytearray | Noner¼   zstr | bytes | None)	r   r   r   rQ   r&  r-  r>   Úoverloadr0  r   r   r   r  r  €  s|   „ ð "Ø-1Ø!Øð
#àð
#ð +ð
#ð ð	
#ð
 ð
#ð 
ó
#óó"ð< ‡Z�ZÚ@ó Ø@ð ‡Z�ZÚ7ó Ø7ô-r   r  c                ó6  — dd l }dd„}t        j                  dk(  r~dg}|r|j                  d«       |r|j                  d«       |j                   || «      «       t	        dd«      }	 |j                  ||¬	«      j                  «       |j                  «        S t        r8|r || «      } d
d| g}	 |j                  |«      S 	 t        j                  | «       yt        re|r* || «      } dt        j                  j                  | «      g}n'dg}|r|j                  d«       |j                  | «       	 |j                  |«      S 	 |r*t        j                  j                   || «      «      xs d} n || «      } |j                  d| g«      }|r|j                  «       S y# |j                  «        w xY w# t        $ r Y yw xY w# t        $ r Y yw xY w# t        $ r Y yw xY w# t        $ r/ | j!                  d«      r|s|sdd l}|j	                  | «       Y yY yw xY w)Nr   c                óJ   — ddl m} | j                  d«      r || dd  «      } | S )Nr   )Úunquotezfile://é   )Úurllib.parserJ  rÞ   )ÚurlrJ  s     r   Ú_unquote_filezopen_url.<locals>._unquote_file÷  s&   € Ý(à�>‰>˜)Ô$Ù˜#˜a˜b˜'Ó"ˆCàˆ
r   ÚdarwinrA  z-Wrê   z	/dev/nullÚw)ÚstderrÚexplorerz/select,é   Úcygstartz-wÚ.zxdg-open)zhttp://zhttps://r   )rM  rˆ   r¼   rˆ   )rô   rÓ   rÝ   r™   rA  rö   rü   rû   r   r  r*  rØ   Ú	startfiler
   r>  ÚdirnamerÞ   Ú
webbrowser)	rM  rü   Úlocaterô   rN  r(  Únullr  rX  s	            r   Úopen_urlr[  ô  sø  € Ûóô ‡|�|�xÒØˆxˆÙØ�K‰K˜ÔÙØ�K‰K˜ÔØ�‰‘M #Ó&Ô'Ü�K Ó%ˆð	Ø×#Ñ# D°Ð#Ó6×;Ñ;Ó=à�J‰J�LÝ	ÙÙ Ó$ˆCØ 
¨CÐ0ˆDðØ!—‘ tÓ,Ð,ðÜ—‘˜SÔ!ð Ý	ÙÙ Ó$ˆCØ¤§¡§¡°Ó 4Ð5‰Dà�<ˆDÙØ—‘˜DÔ!Ø�K‰K˜Ôð	Ø—?‘? 4Ó(Ð(ð
ÙÜ—'‘'—/‘/¡-°Ó"4Ó5Ò<¸‰Cá Ó$ˆCØ×Ñ˜j¨#Ð.Ó/ˆÙØ—6‘6“8ˆOØøðM �J‰J�Lûô ò Ùðûô
 ò Ùðûô ò 	áð	ûô ò Ø�>‰>Ð1Ô2¹6É$Ûà�O‰O˜CÔ ÙÙðúsU   Á) F Â0F3 ÃG Ä2G ÅAG  ÆF0Æ3	F?Æ>F?Ç	GÇGÇ	GÇGÇ 3HÈHc                óx   — | dk(  r
t        «       ‚| dk(  rt        s
t        «       ‚| dk(  rt        r
t        «       ‚y y )NÚÚÚ)rý   r   ÚEOFError)Úchs    r   Ú_translate_ch_to_excrb  :  s;   € Ø	ˆV‚|ÜÓ!Ð!à	ˆV‚|�CÜ‹jÐà	ˆV‚|�Ü‹jÐð €|r   Úwin32c               #  ó   K  — d–— y ­w)Nr+   r   r   r   r   Úraw_terminalre  H  s   è ø€ à‹ùs   ‚c                ó8  — | r<t        j                  t         j                  g t        f   t        j
                  «      }n;t        j                  t         j                  g t        f   t        j                  «      } |«       }|dv r
| |«       z  }t        |«       |S )N)Ú ô   Ã )r>   r?   ÚCallablerˆ   ÚmsvcrtÚgetwcheÚgetwchrb  )r   Úfuncr¶   s      r   Úgetcharrn  L  ss   € ñ> Ü—6‘6œ!Ÿ*™* R¬ WÑ-¬v¯~©~Ó>‰Dä—6‘6œ!Ÿ*™* R¬ WÑ-¬v¯}©}Ó=ˆDá‹VˆàÐ!Ñ!ð ‘$“&‰LˆBä˜RÔ Øˆ	r   c               #  óª  K  — t        t        j                  «      st        d«      } | j	                  «       }n t        j                  j	                  «       }d } 	 t        j                  |«      }	 t        j                  |«       |–— t        j                  |t
        j                  |«       t        j                  j                  «        | �| j                  «        y y # t        j                  |t
        j                  |«       t        j                  j                  «        | �| j                  «        w w xY w# t
        j                  $ r Y y w xY w­w)Nz/dev/tty)r   rÓ   rÔ   rA  ÚfilenoÚtermiosÚ	tcgetattrÚttyÚsetrawÚ	tcsetattrÚ	TCSADRAINrß   rh   rû   Úerror)r  rE  Úold_settingss      r   re  re  ~  sø   è ø€ ô
 ”c—i‘iÔ Ü�ZÓ ˆAØ—‘“‰Bä—‘×!Ñ!Ó#ˆBØˆAð	Ü"×,Ñ,¨RÓ0ˆLðÜ—
‘
˜2”Ø’ä×!Ñ! "¤g×&7Ñ&7¸ÔFÜ—
‘
× Ñ Ô"à�=Ø—G‘G•Ið !øô ×!Ñ! "¤g×&7Ñ&7¸ÔFÜ—
‘
× Ñ Ô"à�=Ø—G‘G•Ið !ûä�}‰}ò 	Ùð	üsD   ‚AEÁD: Á/C ÂAD: ÃEÃAD7Ä7D: Ä:EÅEÅEÅEc                óJ  — t        «       5 }t        j                  |d«      j                  t	        t
        j                  «      d«      }| r8t        t
        j                  «      rt
        j                  j                  |«       t        |«       |cd d d «       S # 1 sw Y   y xY w)Né    rí   )re  rØ   rB  rC  r   rÓ   rÔ   r   rß   rf   rb  )r   rE  ra  s      r   rn  rn  ™  sd   € ÜŒ^˜rÜ—‘˜˜R“×'Ñ'Ô(9¼#¿)¹)Ó(DÀiÓPˆBáœœsŸz™zÔ*Ü—
‘
× Ñ  Ô$ä  Ô$Ø÷ �^Š^ús   ‹BBÂB")r!   zt.BinaryIO | t.TextIOr¼   z%t.TypeGuard[_BufferedTextPagerStream]rW   )r7   rº   r¼   z9t.ContextManager[tuple[t.BinaryIO | t.TextIO, str, bool]])r7   rº   r¼   z!t.Generator[t.TextIO, None, None])rþ   z	list[str]r7   rº   r¼   z3t.Iterator[tuple[t.BinaryIO | t.TextIO, str, bool]])r!   zt.TextIOr7   rº   r¼   z&t.Iterator[tuple[t.TextIO, str, bool]])FF)rM  rˆ   rü   r¹   rY  r¹   r¼   r   )ra  rˆ   r¼   r½   )r¼   zcabc.Iterator[int])r   r¹   r¼   rˆ   )>Ú__doc__Ú
__future__r   Úcollections.abcÚabcÚcabcÚ
contextlibÚior�   rØ   rÖ   rÓ   rE   Útypingr>   r   r�   r   Úpathlibr   Útypesr   Ú_compatr	   r
   r   r   r   r   r   Ú
exceptionsr   Úutilsr   ÚTypeVarr   ÚProtocolr   r"   ró   r¥   rg   ÚGenericr'   ÚTextIOWrapperrÂ   rá   Úcontextmanagerræ   rÜ   rÛ   r  rÕ   r  r[  rb  rÝ   rj  re  rn  rq  rs  r   r   r   Ú<module>r�     s   ðñõ #å Û Û 	Û Û 	Û Û 
Û Û Ý  Ý Ý Ý å )Ý Ý &Ý Ý Ý Ý Ý &Ý à€A‡I�IˆcƒN€ô˜qŸz™zô ð7Ø!ð7à*ó7ð ‡7�7ˆd‚?Ø€JØ�Ià€JØ€IôI#�!—)‘)˜A‘,ô I#ôX
#�R×%Ñ%ô #ð ð'Øð'à>ó'ð> ×Ñóó ðð. ×Ñà/3ðdØðdØ!,ðdà8òdó ðdðN ×Ñà/3ð/Øð/Ø!,ð/à8ò/ó ð/÷dñ ð ×Ñà+/ð.Øð.Ø(ð.à+ò.ó ð.÷qñ qôhCóLð ‡<�<�7ÒÛà×Ñòó ðô,ó^ Ûà×Ñòó ðô4r   