+
    ‘°³j%€  ã                  óT  € R t ^ RIHt ^ RIHt ^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^RIHt ^RIHt ^R	IHt ^R
IHt ^RIHt ^RIHt ^RIHt ^RIHt ^RI H!t! ]PD                  ! R4      t#]PH                  R8X  d   Rt%Rt&MRt%Rt& ! R R]PN                  ]#,          4      t( ! R R4      t)R R lt*R7R R llt+]PX                  R7R R ll4       t-R  R! lt.]PX                  R7R" R# ll4       t/]PX                  R7R$ R% ll4       t0]PX                  R7R& R' ll4       t1 ! R( R)4      t2R8R* R+ llt3R, R- lt4]
Pj                  R.8X  d"   ^ RI6t6]PX                  R/ R0 l4       t7R1 R2 lt8R# ^ RI9t9^ RI:t:]PX                  R3 R4 l4       t7R5 R6 lt8R# )9z¿
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ÚVÚntÚÚ
z[?25lz[?25h
c                  ó   € ] tR t^+tR)R R lltR R ltR R ltR R	 ltR
 R ltR R lt	]
R R l4       t]
R R l4       t]
R R l4       tR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR*R" R# lltR$ R% ltR& R' ltR(tR# )+ÚProgressBarNc          "     ó\   € V ^8„  d   QhRRRRRRRRRRR	RR
RRRRRRRRRRRRRRRRRRRRR/# )é   Úiterablezcabc.Iterable[V] | NoneÚlengthz
int | NoneÚ	fill_charÚstrÚ
empty_charÚbar_templateÚinfo_sepÚhiddenÚboolÚshow_etaÚshow_percentúbool | NoneÚshow_posÚitem_show_funcz)t.Callable[[V | None], str | None] | NoneÚlabelú
str | NoneÚfilezt.TextIO | NoneÚcolorÚupdate_min_stepsÚintÚwidthÚreturnÚNone© )Úformats   "ÚS/home/luca/screen-checking/.venv/lib/python3.14/site-packages/click/_termui_impl.pyÚ__annotate__ÚProgressBar.__annotate__,   sÈ   € ÷ E+ñ E+à)ðE+ð ðE+ð ð	E+ð
 ðE+ð ðE+ð ðE+ð ðE+ð ðE+ð "ðE+ð ðE+ð BðE+ð ðE+ð ðE+ð ðE+ð  ð!E+ð" ð#E+ð$ 
ñ%E+ó    c                	óØ  € W0n         W@n        WPn        W`n        Wpn        W€n        W�n        W n        W°n        T;'       g    R V n	        Vf   \        4       pVf   \        4       pWÐn        Wàn        Wðn        ^ V n        VV n        V^ 8H  V n        Vf   ^ RIHp V! VR4      pVR8X  d   RpVf0   Vf   \)        R4      h\*        P,                  ! R\/        V4      4      p\1        V4      V n        W n        ^ V n        . V n        V  V  \8        P8                  ! 4       ;V n        V n        RV n        RV n         RV n!        RV n"        RV n#        \I        V P                  4      V n%        RV n&        R# )Ú N)Úlength_hintziterable or length is requiredzcabc.Iterable[V]Féÿÿÿÿ)'r   r   r   r   r   r!   r"   r$   r%   r&   r   r   r(   r)   r*   Ú_completed_intervalsr,   Ú	autowidthÚoperatorr7   Ú	TypeErrorÚtÚcastÚrangeÚiterr   ÚposÚavgÚtimeÚstartÚlast_etaÚ	eta_knownÚfinishedÚ	max_widthÚenteredÚcurrent_itemr
   Ú_is_attyÚ
_last_line)Úselfr   r   r   r   r   r   r   r!   r"   r$   r%   r&   r(   r)   r*   r,   r7   s   &&&&&&&&&&&&&&&&& r1   Ú__init__ÚProgressBar.__init__,   sE  € ð& #ŒØ$ŒØ(ÔØ ŒØŒØ ŒØ(ÔØ ŒØ,ÔØŸ+˜+ 2ˆŒ
àŠ<Ü'Ó)ˆDð Š|Ü“z�àŒ	ØŒ
Ø 0ÔØ$%ˆÔ!ØˆŒ
Ø$¨™zˆŒàŠ>Ý,á  ¨2Ó.ˆFà˜Œ|Ø�ØÒØŠ~ÜÐ @ÓAÐAÜ—v’vÐ0´%¸³-Ó@ˆHÜ&*¨8£nˆŒ	ØŒØˆŒØ "ˆŒÙÙÜ%)§Y¢Y£[Ð0ˆŒ
�T”]Ø$ˆŒØ#ˆŒØ%)ˆŒØ"ˆŒØ&*ˆÔÜ˜tŸy™yÓ)ˆŒØ&*ˆŽr4   c               ó   € V ^8„  d   QhRR/# )r   r-   zProgressBar[V]r/   )r0   s   "r1   r2   r3   s   s   € ÷ ñ ˜>ñ r4   c                	ó4   € R V n         V P                  4        V # )T)rI   Úrender_progress©rM   s   &r1   Ú	__enter__ÚProgressBar.__enter__s   s   € ØˆŒØ×ÑÔØˆr4   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   Úexc_typeztype[BaseException] | NoneÚ	exc_valuezBaseException | NoneÚtbzTracebackType | Noner-   r.   r/   )r0   s   "r1   r2   r3   x   s2   € ÷ ñ à,ðð (ðð !ð	ð
 
ñr4   c                	ó&   € V P                  4        R # ©N)Úrender_finish)rM   rW   rX   rY   s   &&&&r1   Ú__exit__ÚProgressBar.__exit__x   s   € ð 	×ÑÖr4   c               ó   € V ^8„  d   QhRR/# ©r   r-   zcabc.Iterator[V]r/   )r0   s   "r1   r2   r3   €   s   € ÷  ñ  Ð*ñ  r4   c                	ó|   € V P                   '       g   \        R 4      hV P                  4        V P                  4       # )ú.You need to use progress bars in a with block.)rI   ÚRuntimeErrorrR   Ú	generatorrS   s   &r1   Ú__iter__ÚProgressBar.__iter__€   s0   € Ø�|�|ˆ|ÜÐOÓPÐPØ×ÑÔØ�~‰~ÓÐr4   c               ó   € V ^8„  d   QhRR/# )r   r-   r   r/   )r0   s   "r1   r2   r3   †   s   € ÷  ñ  ˜!ñ  r4   c                	ó*   € \        \        V 4      4      # r[   )Únextr@   rS   s   &r1   Ú__next__ÚProgressBar.__next__†   s   € ô ”D˜“JÓÐr4   c               ó   € V ^8„  d   QhRR/# ©r   r-   r.   r/   )r0   s   "r1   r2   r3   Ž   s   € ÷ ñ ˜tñ r4   c                	óL  € V P                   '       d3   V P                  V P                   4       ^ V n         V P                  4        V P                  '       g   V P                  '       g   R# V P
                  P                  \        4       V P
                  P                  4        R# )é    N)	r9   Ú	make_steprR   r   rK   r(   ÚwriteÚ	AFTER_BARÚflushrS   s   &r1   r\   ÚProgressBar.render_finishŽ   sh   € ð ×$×$Ð$Ø�N‰N˜4×4Ñ4Ô5Ø()ˆDÔ%Ø× Ñ Ô"à�;�;ˆ;˜dŸmŸm˜mÙØ�	‰	�‰œ	Ô"Ø�	‰	�‰Ör4   c               ó   € V ^8„  d   QhRR/# ©r   r-   Úfloatr/   )r0   s   "r1   r2   r3   �   s   € ÷ Cñ C�Uñ Cr4   c                	ó²   € V P                   '       d   R # \        V P                  \        V P                  ;'       g    ^4      ;'       g    ^,          R 4      # )ç      ð?)rG   ÚminrA   rw   r   rS   s   &r1   ÚpctÚProgressBar.pctœ   s=   € à�=�=ˆ=ÙÜ�4—8‘8œu T§[¡[×%5Ð%5°AÓ6×;Ð;¸!Õ<¸cÓBÐBr4   c               ó   € V ^8„  d   QhRR/# rv   r/   )r0   s   "r1   r2   r3   £   s   € ÷ 4ñ 4 Eñ 4r4   c                	óš   € V P                   '       g   R # \        V P                   4      \        \        V P                   4      4      ,          # )ç        )rB   Úsumrw   ÚlenrS   s   &r1   Útime_per_iterationÚProgressBar.time_per_iteration¢   s.   € à�x�xˆxÙÜ�4—8‘8‹}œu¤S¨¯©£]Ó3Õ3Ð3r4   c               ó   € V ^8„  d   QhRR/# rv   r/   )r0   s   "r1   r2   r3   ©   s   € ÷ ñ �Uñ r4   c                	ó¢   € V P                   eA   V P                  '       g/   V P                  V P                   V P                  ,
          ,          # R# )Nr   )r   rG   r‚   rA   rS   s   &r1   ÚetaÚProgressBar.eta¨   s5   € à�;‰;Ò"¨4¯=¯=¨=Ø×*Ñ*¨d¯k©k¸D¿H¹HÕ.DÕEÐEÙr4   c               ó   € V ^8„  d   QhRR/# ©r   r-   r   r/   )r0   s   "r1   r2   r3   ®   s   € ÷ ñ ˜Cñ r4   c                	ó&  € V P                   '       d   \        V P                  4      pV^<,          pV^<,          pV^<,          pV^<,          pV^,          pV^,          pV^ 8”  d    RP                  V\	        R4      VVVR7      # VR RVR RVR 2# R# )é<   z#{d}{day_label} {h:02}:{m:02}:{s:02}Úd)rŒ   Ú	day_labelÚhÚmÚsÚ02Ú:r6   )rF   r+   r†   r0   Ú_)rM   r=   ÚsecondsÚminutesÚhourss   &    r1   Ú
format_etaÚ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°°'¸"°Ð>Ð>Ùr4   c               ó   € V ^8„  d   QhRR/# r‰   r/   )r0   s   "r1   r2   r3   Ã   s   € ÷ ñ ˜Cñ r4   c                	óx   € \        V P                  4      pV P                  e   VRV P                   2,          pV# )NÚ/)r   rA   r   )rM   rA   s   & r1   Ú
format_posÚProgressBar.format_posÃ   s3   € Ü�$—(‘(‹mˆØ�;‰;Ò"Ø�Q�t—{‘{�mÐ$Õ$ˆCØˆ
r4   c               ó   € V ^8„  d   QhRR/# r‰   r/   )r0   s   "r1   r2   r3   É   s   € ÷ 0ñ 0˜Cñ 0r4   c                	óP   € \        V P                  ^d,          4      R R2R,          # )éd   z 4Ú%ºé   NN)r+   r{   rS   s   &r1   Ú
format_pctÚProgressBar.format_pctÉ   s$   € Ü�d—h‘h •nÓ% bÐ)¨Ð+¨BÕ/Ð/r4   c               ó   € V ^8„  d   QhRR/# r‰   r/   )r0   s   "r1   r2   r3   Ì   s   € ÷ ñ ˜Cñ r4   c                	ó¾  € V P                   ef   \        V P                  V P                  ,          4      pV P                  V,          pW P
                  V P                  V,
          ,          ,          pV# V P                  '       d    V P                  V P                  ,          pV# \        V P
                  V P                  ;'       g    ^,          4      pV P                  ^ 8w  dg   V P                  V\        \        P                  ! V P                  V P                  ,          4      R,          R,           V P                  ,          4      &   RP                  V4      pV# )Ng       @g      à?r6   )r   r+   r{   r,   r   r   rG   Úlistr‚   ÚmathÚcosrA   Újoin)rM   Ú
bar_lengthÚbarÚcharss   &   r1   Ú
format_barÚProgressBar.format_barÌ   s  € Ø�;‰;Ò"Ü˜TŸX™X¨¯
©
Õ2Ó3ˆJØ—.‘. :Õ-ˆCØ—?‘? d§j¡j°:Õ&=Õ>Õ>ˆCð ˆ
ð �]�]ˆ]Ø—.‘. 4§:¡:Õ-ˆCð ˆ
ô ˜Ÿ™¨D¯J©J¯O¨O¸!Õ<Ó=ˆEØ×&Ñ&¨!Ô+ð —N‘Nð ÜÜŸš $§(¡(¨T×-DÑ-DÕ"DÓEÈÕKÈcÕQØŸ*™*õ%óñð —'‘'˜%“.ˆCØˆ
r4   c               ó   € V ^8„  d   QhRR/# r‰   r/   )r0   s   "r1   r2   r3   ß   s   € ÷ ñ  cñ r4   c           	     	óê  € V P                   p. pV P                  e   Vf   V P                  '       * pV P                  '       d    VP                  V P	                  4       4       V'       d    VP                  V P                  4       4       V P                  '       dD   V P                  '       d2   V P                  '       g    VP                  V P                  4       4       V P                  e1   V P                  V P                  4      pVe   VP                  V4       V P                  RV P                  RV P                  4       RV P                  P!                  V4      /,          P#                  4       # )Nr&   r­   Úinfo)r"   r   r$   Úappendrœ   r¤   r!   rF   rG   r—   r%   rJ   r   r&   r¯   r   r«   Úrstrip)rM   r"   Ú	info_bitsÚ	item_infos   &   r1   Úformat_progress_lineÚ ProgressBar.format_progress_lineß   s  € Ø×(Ñ(ˆàˆ	Ø�;‰;Ò" |Ò';Ø#Ÿ}™}Ô,ˆLà�=�=ˆ=Ø×Ñ˜TŸ_™_Ó.Ô/ßØ×Ñ˜TŸ_™_Ó.Ô/Ø�=�=ˆ=˜TŸ^Ÿ^˜^°D·M·M°MØ×Ñ˜TŸ_™_Ó.Ô/Ø×ÑÒ*Ø×+Ñ+¨D×,=Ñ,=Ó>ˆIØÒ$Ø× Ñ  Ô+ð ×Ñà˜Ÿ™Ø�t—‘Ó(Ø˜Ÿ™×*Ñ*¨9Ó5ðõ÷ ‰&‹(ð	r4   c               ó   € V ^8„  d   QhRR/# rm   r/   )r0   s   "r1   r2   r3   ú   s   € ÷ ,ñ , ñ ,r4   c                	ó°  € V P                   '       d   R # V P                  '       g[   V P                  V P                  8w  d>   V P                  V n        \	        V P                  V P
                  V P                  R7       R # . pV P                  '       d³   ^ R IpV P                  p^ V n	        \        V P                  4       4      p\        ^ VP                  4       P                  V,
          4      pWS8  dL   V P                  e>   VP!                  \"        4       VP!                  RV P                  ,          4       WPn        WPn	        V P                  pV P                  e   V P                  pVP!                  \"        4       V P                  4       p\        V4      pV P                  e   V P                  V8  d   W€n        VP!                  V4       VP!                  RWh,
          ,          4       RP%                  V4      pWpP                  8w  dE   Wpn        \	        WpP
                  V P                  RR7       V P
                  P'                  4        R # R # )N)r(   r)   Ú r6   F)r(   r)   Únl)r   rK   rL   r&   r   r(   r)   r:   Úshutilr,   r   r¸   ÚmaxÚget_terminal_sizeÚcolumnsrH   r´   Ú
BEFORE_BARr«   rs   )	rM   Úbufr¾   Ú	old_widthÚclutter_lengthÚ	new_widthÚclear_widthÚlineÚline_lens	   &        r1   rR   Ú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ØÔ$¨¯©Ò)CØ—
‘
œ:Ô&Ø—
‘
˜3 §¡Õ/Ô0Ø!*”Ø"ŒJà—j‘jˆØ�>‰>Ò%ØŸ.™.ˆKà�
‰
”:ÔØ×(Ñ(Ó*ˆÜ˜D“>ˆØ�>‰>Ò! T§^¡^°hÔ%>Ø%ŒNà�
‰
�4ÔØ�
‰
�3˜+Õ0Õ1Ô2Ø�w‰w�s‹|ˆð —?‘?Ô"Ø"ŒOÜ�ŸI™I¨T¯Z©Z¸EÕBØ�I‰I�O‰OÖñ #r4   c               ó    € V ^8„  d   QhRRRR/# )r   Ún_stepsr+   r-   r.   r/   )r0   s   "r1   r2   r3   (  s   € ÷ 1ñ 1 ð 1¨ñ 1r4   c                	ód  € V ;P                   V,          un         V P                  e#   V P                   V P                  8¼  d   RV n        \        P                  ! 4       V P                  ,
          R8  d   R # \        P                  ! 4       V n        V P                   '       d9   \        P                  ! 4       V P
                  ,
          V P                   ,          pM&\        P                  ! 4       V P
                  ,
          pV P                  RR  V.,           V n        V P                  R JV n        R # )NTry   iúÿÿÿ)rA   r   rG   rC   rE   rD   rB   rF   )rM   rÌ   Ústeps   && r1   rp   ÚProgressBar.make_step(  s»   € Ø�Š�GÕ�Ø�;‰;Ò" t§x¡x°4·;±;Ô'>Ø ˆDŒMä�IŠI‹K˜$Ÿ-™-Õ'¨3Ô.ÙäŸ	š	›ˆŒð
 �8�8ˆ8Ü—I’I“K $§*¡*Õ,°·±Õ8‰Dä—9’9“; §¡Õ+ˆDà—8‘8˜B˜C�= D 6Õ)ˆŒàŸ™¨DÐ0ˆŽr4   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rÌ   r+   rJ   zV | Noner-   r.   r/   )r0   s   "r1   r2   r3   >  s!   € ÷ *ñ *˜cð *°ð *ÀTñ *r4   c                óê   € Ve   W n         V ;P                  V,          un        V P                  V P                  8¼  d5   V P                  V P                  4       V P	                  4        ^ V n        R# R# )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.
N)rJ   r9   r*   rp   rR   )rM   rÌ   rJ   s   &&&r1   ÚupdateÚProgressBar.update>  s`   € ð  Ò#Ø ,Ôà×!Ò! WÕ,Õ!à×$Ñ$¨×(=Ñ(=Ô=Ø�N‰N˜4×4Ñ4Ô5Ø× Ñ Ô"Ø()ˆDÖ%ñ >r4   c               ó   € V ^8„  d   QhRR/# rm   r/   )r0   s   "r1   r2   r3   X  s   € ÷ ñ ˜ñ r4   c                	ó0   € R V n         RV n        RV n        R# )FNT)rF   rJ   rG   rS   s   &r1   ÚfinishÚProgressBar.finishX  s   € ØˆŒØ ˆÔØˆŽr4   c               ó   € V ^8„  d   QhRR/# r`   r/   )r0   s   "r1   r2   r3   ]  s   € ÷ #ñ #Ð+ñ #r4   c              #  óz  "  € V P                   '       g   \        R4      hV P                  '       g   V P                   Rj  x€L
  R# V P                   F?  pWn        V P
                  ^ 8X  d   V P                  4        Vx € V P                  ^4       KA  	  V P                  4        V P                  4        R#  Lw5i)z�Return a generator which yields the items added to the bar
during construction, and updates the progress bar *after* the
yielded block returns.
rb   N)	rI   rc   rK   r@   rJ   r9   rR   rÒ   rÖ   )rM   Úrvs   & r1   rd   ÚProgressBar.generator]  sŽ   é € ð �|�|ˆ|ÜÐOÓPÐPà�}�}ˆ}Ø—y‘y× Ò à—i”i�Ø$&Ô!ð
 ×,Ñ,°Ô1Ø×(Ñ(Ô*à’Ø—‘˜A–ñ  ð �K‰KŒMØ× Ñ Ö"ñ !ùs   ‚/B;²B;ÁB9ÁA8B;)r9   rK   rL   r:   rB   r   r)   rJ   r   rI   rF   r(   r   rG   r   r   r%   r@   r&   rE   r   rH   rA   r!   r"   r$   rD   r*   r,   )NÚ#r¼   z%(bar)sz  FTNFNNNNr£   é   r[   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rN   rT   r]   re   rj   r\   Úpropertyr{   r‚   r†   r—   rœ   r¤   r¯   r¸   rR   rp   rÒ   rÖ   rd   Ú__static_attributes__r/   r4   r1   r   r   +   s˜   † ÷E+õNõ
õ õ õð ôCó ðCð
 ô4ó ð4ð
 ôó ðõ
õ*õ0õõ&õ6,õ\1÷,*õ4÷
#ñ #r4   r   c                  ób   € ] tR tRtRtR R ltR R ltR R ltR	 R
 ltR R lt	R R lt
RtR# )Ú_PagerWriteri  a(  Wrap a pager's output stream to strip ANSI styling when colors are
disabled.

The wrapped stream is owned by the pager strategy that produced it, so this
wrapper never closes it: ``_pipepager`` closes its pipe to signal EOF to the
pager process, ``_tempfilepager`` closes and removes its temporary file, and
``_nullpager`` leaves an external stream such as ``sys.stdout`` untouched.

The ``color`` attribute lets :func:`click.echo` detect that ANSI stripping
is handled here, so it doesn't strip a second time (see
:func:`._compat.should_strip_ansi`).
c               ó$   € V ^8„  d   QhRRRRRR/# )r   Ústreamút.TextIOr)   r    r-   r.   r/   )r0   s   "r1   r2   Ú_PagerWriter.__annotate__�  s!   € ÷ ñ ˜xð °ð ¸ñ r4   c                	ó   € Wn         W n        R # r[   ©Ú_streamr)   )rM   rç   r)   s   &&&r1   rN   Ú_PagerWriter.__init__�  s   € ØŒØŽ
r4   c               ó    € V ^8„  d   QhRRRR/# )r   Útextr   r-   r+   r/   )r0   s   "r1   r2   ré   ‘  s   € ÷ (ñ (˜#ð ( #ñ (r4   c                	ór   € V P                   '       g   \        V4      pV P                  P                  V4      # r[   )r)   r   rì   rq   ©rM   rï   s   &&r1   rq   Ú_PagerWriter.write‘  s*   € Ø�z�zˆzÜ˜dÓ#ˆDà�|‰|×!Ñ! $Ó'Ð'r4   c               ó    € V ^8„  d   QhRRRR/# )r   Úlineszcabc.Iterable[str]r-   r.   r/   )r0   s   "r1   r2   ré   —  s   € ÷ ñ Ð 2ð °tñ r4   c                	ó:   € V F  pV P                  V4       K  	  R # r[   )rq   )rM   rô   rÈ   s   && r1   Ú
writelinesÚ_PagerWriter.writelines—  s   € ÛˆDØ�J‰J�tÖó r4   c               ó   € V ^8„  d   QhRR/# rm   r/   )r0   s   "r1   r2   ré   ›  s   € ÷ ñ �tñ r4   c                	ó:   € V P                   P                  4        R # r[   ©rì   rs   rS   s   &r1   rs   Ú_PagerWriter.flush›  s   € Ø�‰×ÑÖr4   c               ó   € V ^8„  d   QhRR/# rm   r/   )r0   s   "r1   r2   ré   ž  s   € ÷ ñ �tñ r4   c                	ó:   € V P                   P                  4        R # r[   rú   rS   s   &r1   ÚcloseÚ_PagerWriter.closež  s   € ð 	�‰×ÑÖr4   c               ó    € V ^8„  d   QhRRRR/# )r   Únamer   r-   zt.Anyr/   )r0   s   "r1   r2   ré   £  s   € ÷ +ñ + ð +¨ñ +r4   c                	ó.   € \        V P                  V4      # r[   )Úgetattrrì   )rM   r  s   &&r1   Ú__getattr__Ú_PagerWriter.__getattr__£  s   € Ü�t—|‘| TÓ*Ð*r4   rë   N)rÞ   rß   rà   rá   Ú__doc__rN   rq   rö   rs   rþ   r  rã   r/   r4   r1   rå   rå     s*   † ñõõ(õõõ÷
+ñ +r4   rå   c               ó    € V ^8„  d   QhRRRR/# )r   Ú	cmd_partsú	list[str]r-   ztuple[Path, list[str]] | Noner/   )r0   s   "r1   r2   r2   §  s   € ÷ 8ñ 8 ið 8Ð4Qñ 8r4   c                ó¦   € V '       g   R# ^ RI pVP                  V ^ ,          4      pV'       g   R# \        V4      P                  4       V R,          3# )a‹  Resolve a pager ``argv`` to an absolute command path and its parameters.

The command is looked up with :func:`shutil.which`, which the
:mod:`subprocess` docs recommend on every platform for an unqualified name:
https://docs.python.org/3/library/subprocess.html#popen-constructor

Returns ``None`` when there is no command to run or it is not on the path,
leaving the caller to pick a fallback.
Nr¢   )r¾   Úwhichr   Úabsolute)r  r¾   Úcmd_filepaths   &  r1   Ú_resolve_pager_commandr  §  sD   € ÷ Ùãà—<‘< 	¨!¥Ó-€LçÙô �Ó×&Ñ&Ó(¨)°B­-Ð7Ð7r4   c               ó    € V ^8„  d   QhRRRR/# )r   r)   r#   r-   z.t.ContextManager[tuple[t.TextIO, bool | None]]r/   )r0   s   "r1   r2   r2   Ã  s   € ÷ *3ñ *3Øð*3à3ñ*3r4   c                ó~  € \        4       pVf   \        4       p\        \        P                  4      '       d   \        V4      '       g   \        W4      # \        P                  ! \        P                  P                  RR4      4      pV'       d   \        pMj\        P                  P                  R4      R9   d   \        W4      # \        ;'       g     \        P                  P                  R4      pV'       d   R.MR.p\        V4      pVf   \        W4      # Vw  rVV'       d   \        WVV 4      # \!        WVV 4      # )z2Decide what method to use for paging through text.ÚPAGERr6   ÚTERMÚos2ÚmoreÚless)ÚdumbÚemacs)r   r   r
   ÚsysÚstdinÚ
_nullpagerÚshlexÚsplitÚosÚenvironÚgetr   ÚplatformÚ
startswithr  Ú_tempfilepagerÚ
_pipepager)r)   ÚstdoutÚpager_cmd_partsÚuse_tempfileÚresolvedÚcmd_pathÚ
cmd_paramss   &      r1   Ú_pager_contextmanagerr*  Ã  sï   € ô "Ó#€Fð ‚~Ü“ˆä”#—)‘)×Ò¤F¨6§N¢NÜ˜&Ó(Ð(ô —k’k¤"§*¡*§.¡.°¸"Ó"=Ó>€Oçô ‰ä�:‰:�>‰>˜&Ó!Ð%6Ô6Ü˜fÓ,Ð,ä×<Ð<œcŸl™l×5Ñ5°eÓ<ˆß&2˜6™(¸¸ˆä% oÓ6€HàÒä˜&Ó(Ð(à#Ñ€HçÜ˜h°EÓ:Ð:ä�h¨EÓ2Ð2r4   c               ó    € V ^8„  d   QhRRRR/# )r   r)   r#   r-   z!t.Generator[t.TextIO, None, None]r/   )r0   s   "r1   r2   r2   ñ  s   € ÷ ñ ˜+ð Ð1Rñ r4   c              #  ó<  "  € \        V R7      ;_uu_ 4       w  r\        V\        V 4      R7      p \        P                  ! \        P
                  V4      x € VP                  4         RRR4       R#   TP                  4        i ; i  + '       g   i     R# ; i5i)zãContext manager.

Yields a writable file-like object which can be used as an output pager.

.. versionadded:: 8.4.0

:param color: controls if the pager supports ANSI colors or not.  The
              default is autodetection.
)r)   N)r*  rå   r    r=   r>   ÚTextIOrs   )r)   rç   Úwriters   &  r1   Úget_pager_filer/  ð  sk   é € ô 
 U×	+Õ	+©°ô ˜f¬D°«KÔ8ˆð	Ü—&’&œŸ™ 6Ó*Ò*à�L‰L�N÷ 
,Ñ	+øð �L‰L�Nú÷ 
,×	+Ð	+üs3   ‚B—B±'A3ÁBÁ)
BÁ3BÂBÂB	Â	Bc               ó$   € V ^8„  d   QhRRRRRR/# )r   Úless_envr   r)  r	  r-   r    r/   )r0   s   "r1   r2   r2     s!   € ÷ ñ  #ð °9ð Àñ r4   c                óŽ  €  \         P                  ! V 4      pW!,           pV F~  pVP                  R4      '       d   VP	                  4       R8X  d    R# K4  VP                  R4      '       g   KM  \        V4      ^8”  g   K_  RVR,          P	                  4       9   g   K}   R# 	  R#   \         d    T P                  4       p L«i ; i)a_  Detect a raw-control-characters request in a ``less`` invocation.

Parses the tokens of the ``LESS`` environment variable and the command
line: only short-option clusters (``-R``, ``-rX``, ``-XrY``) and the
``--raw-control-chars`` long option request raw mode. Filenames and
long-option values may carry the letter ``r`` without being such a
request.
z--z--raw-control-charsTÚ-Úrr¢   F)r  r  Ú
ValueErrorr!  Úcasefoldr�   )r1  r)  Ú
env_tokensÚtokensÚtokens   &&   r1   Ú_less_uses_raw_moder:    s©   € ð&Ü—[’[ Ó*ˆ
ð
 Õ$€FãˆØ×Ñ˜D×!Ò!Ø�~‰~ÓÐ#8Ô8Úñ 9à×Ñ˜c×"Ô"¤s¨5£z°A¦~Ø�e˜B•i×(Ñ(Ó*Ö*Úñ ñ øô ô &ð —^‘^Ó%Š
ð&ús   ‚B& Â&CÃCc               ó(   € V ^8„  d   QhRRRRRRRR/# ©	r   r(  r   r)  r	  r)   r#   r-   ú(t.Iterator[tuple[t.TextIO, bool | None]]r/   )r0   s   "r1   r2   r2   %  s2   € ÷ Sñ SØðSØ )ðSØ2=ðSà-ñSr4   c           	   #  ó˜  "  € ^ RI p\        \        P                  4      pV P                  p\
        '       d   VP                  4       pVfS   VR8X  dL   \        P                  P                  RR4      p\        Wa4      '       d   RpMV'       g   V'       g   RVR&   RpVP                  \        V 4      .V,           RVP                  VRRR	7      p\        P                  ! \        P                  VP                  4      p W‚3x €  TP'                  4          TP)                  4        R#   \          d     L2\"         d   p	TP%                  4        T	hRp	?	ii ; i  \          d     LRi ; i  \*         d     Kd  i ; i   TP'                  4        M  \          d     Mi ; i  TP)                  4        i   \*         d     K!  i ; i; i5i)
a  Page through text by feeding it to another program.

Invokes the pager via :class:`subprocess.Popen` with an ``argv`` list.

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.
Nr  ÚLESSr6   Tú-RFÚreplace)Úshellr  ÚenvÚerrorsrï   )Ú
subprocessÚdictr  r  Ústemr   r6  r  r:  ÚPopenr   ÚPIPEr=   r>   r-  r  ÚBrokenPipeErrorÚ	ExceptionÚ	terminaterþ   ÚwaitÚKeyboardInterrupt)
r(  r)  r)   rE  rC  Úcmd_namer1  Úcr  Úes
   &&&       r1   r#  r#  $  s¡  é € ó ô Œr�z‰zÓ
€Cð �}‰}€Hß
ƒsð
 ×$Ñ$Ó&ˆà‚}˜ VÔ+Ü—:‘:—>‘> &¨"Ó-ˆÜ˜x×4Ò4Ø‰Eß§*ØˆC�‰KØˆEà×ÑÜ	ˆX‹ˆ˜*Õ$ØØ�o‰oØØØð 	ó 	€Aô �FŠF”1—8‘8˜QŸW™WÓ%€Eð#ØˆlÒð	Ø�K‰KŒMð ðØ—‘”ñ øôC ô áÜô ð
 	
�‰ŒØˆûðûô ô 	Ùð	ûô %ô Úðûð%	Ø�K‰K�Møô ô 	Ùð	úð ðØ—‘”ð øô %ô Úðÿsß   ‚BG
ÂG
ÂA(G
Ä D* ÄE ÄG
ÄE, Ä(G
Ä*EÄ5E> Ä7EÅ EÅEÅEÅE> ÅE)Å&G
Å(E)Å)G
Å,E;Å7G
Å:E;Å;G
Å>GÆ FÆGÆFÆGÆFÆGÆ$F5Æ4GÆ5GÇ GÇGÇGÇG
c               ó(   € V ^8„  d   QhRRRRRRRR/# r<  r/   )r0   s   "r1   r2   r2   |  s,   € ÷ ñ ØðØ )ðØ2=ðà-ñr4   c              #  ó*  "  € ^ RI p^ RIp\        \        P                  4      pVP                  RVRRR7      p \        P                  ! \        P                  V4      V3x € VP                  4        VP                  4        VP                  \        V 4      .VOVP                  N4       VP                  4        \        P                  ! VP                  4       R#   TP                  4        \        P                  ! TP                  4       i ; i5i)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 invoked with any parameters from ``PAGER``
followed by the temporary file name.
NÚwrA  F)ÚmodeÚencodingrD  Údelete)rE  Útempfiler	   r  r$  ÚNamedTemporaryFiler=   r>   r-  rs   rþ   Úcallr   r  r  Úunlink)r(  r)  r)   rE  rX  rV  Úfs   &&&    r1   r"  r"  {  sÄ   é € ó Ûä ¤§¡Ó,€Hð 	×#Ñ#Ø˜8¨I¸eð 	$ó 	€AðÜ�fŠf”Q—X‘X˜qÓ! 5Ð(Ò(Ø	�‰Œ	Ø	�‰Œ	Ø�‰œ˜X›Ð<¨Ð<°Q·V±VÐ<Ô=ð 	
�‰Œ	Ü
�	Š	�!—&‘&Öøð 	
�‰Œ	Ü
�	Š	�!—&‘&Õüs   ‚7DºA2C Â,2DÃ2DÄDc               ó$   € V ^8„  d   QhRRRRRR/# )r   rç   rè   r)   r#   r-   r=  r/   )r0   s   "r1   r2   r2   Ÿ  s$   € ÷ 	ñ 	Øð	Ø(ð	à-ñ	r4   c              #  ó   "  € W3x € R# 5i)a  Simply print unformatted text. This is the ultimate fallback.

The stream comes from elsewhere (typically ``sys.stdout``), so its lifecycle
is left untouched: :class:`_PagerWriter` never closes what it wraps, and it
is the only thing :func:`get_pager_file` hands to the caller.
Nr/   )rç   r)   s   &&r1   r  r  ž  s   é € ð ˆ-Ôùs   ‚
c                  óž   € ] tR tRtRR R lltR R ltR R lt]P                  R	 R
 l4       t	]P                  R R l4       t	R R lt	Rt
R# )ÚEditori«  Nc          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   Úeditorr'   rC  zcabc.Mapping[str, str] | NoneÚrequire_saver    Ú	extensionr   r-   r.   r/   )r0   s   "r1   r2   ÚEditor.__annotate__¬  s<   € ÷ 
#ñ 
#àð
#ð +ð
#ð ð	
#ð
 ð
#ð 
ñ
#r4   c                	ó6   € Wn         W n        W0n        W@n        R # r[   )rb  rC  rc  rd  )rM   rb  rC  rc  rd  s   &&&&&r1   rN   ÚEditor.__init__¬  s   € ð ŒØŒØ(ÔØ"Žr4   c               ó   € V ^8„  d   QhRR/# r‰   r/   )r0   s   "r1   r2   re  ¸  s   € ÷ ñ ˜Cñ r4   c                	óø   € V P                   e   V P                   # R F.  p\        P                  P                  V4      pV'       g   K,  Vu # 	  \        '       d   R# ^ RIHp R F  pV! V4      f   K  Vu # 	  R# )NÚnotepad)r  Úvi)ÚVISUALÚEDITOR)zsensible-editorÚvimÚnano)rb  r  r  r  r   r¾   r  )rM   ÚkeyrÚ   r  rb  s   &    r1   Ú
get_editorÚEditor.get_editor¸  sg   € Ø�;‰;Ò"Ø—;‘;ÐÛ%ˆCÜ—‘—‘ Ó$ˆBß‰rØ’	ñ &÷ ‹3Ùå ã6ˆFÙ�V‹}Ô(Ø’ñ 7ñ r4   c               ó    € V ^8„  d   QhRRRR/# )r   Ú	filenamesz%cabc.Iterable[str | os.PathLike[str]]r-   r.   r/   )r0   s   "r1   r2   re  É  s   € ÷ ñ Ð$Ið Èdñ r4   c                ó  € ^ RI p^ RIpV P                  4       pRpV P                  '       d:   \        P
                  P                  4       pVP                  V P                  4        VP                  VP                  ! V4      \        V4      ,           VR7      pVP                  4       pV^ 8w  d%   \        \        R4      P                  VR7      4      hR#   \         d+   p\        \        R4      P                  YHR7      4      ThRp?ii ; i)z Open files in the user's editor.N)ÚargsrC  z{editor}: Editing failed)rb  z{editor}: Editing failed: {e})rb  rQ  )r  rE  rq  rC  r  r  ÚcopyrÒ   rH  r  r¨   rM  r   r“   r0   ÚOSError)	rM   rt  r  rE  rb  r  rP  Ú	exit_coderQ  s	   &&       r1   Ú
edit_filesÚEditor.edit_filesÉ  sì   € ãÛà—‘Ó"ˆØ)-ˆà�8�8ˆ8Ü—j‘j—o‘oÓ'ˆGØ�N‰N˜4Ÿ8™8Ô$ð	ð × Ñ Ø—[’[ Ó(¬4°	«?Õ:Øð !ó ˆAð Ÿ™›ˆIØ˜AŒ~Ü$ÜÐ0Ó1×8Ñ8ÀÐ8ÓGóð ñ øô ô 	Ü ÜÐ1Ó2×9Ñ9ÀÐ9ÓMóàðûð	ús   Á'A.C ÃDÃ"%DÄDc               ó    € V ^8„  d   QhRRRR/# )r   rï   zbytes | bytearrayr-   zbytes | Noner/   )r0   s   "r1   r2   re  è  s   € ×@Ñ@Ð*Ð@¨|Ñ@r4   c                	ó   € R # r[   r/   rñ   s   &&r1   ÚeditÚEditor.editç  s   € Ù=@r4   c               ó    € V ^8„  d   QhRRRR/# )r   rï   r'   r-   r/   )r0   s   "r1   r2   re  í  s   € ×7Ñ7˜Ð7¨
Ñ7r4   c                	ó   € R # r[   r/   rñ   s   &&r1   r~  r  ì  s   € Ù47r4   c               ó    € V ^8„  d   QhRRRR/# )r   rï   zstr | bytes | bytearray | Noner-   zstr | bytes | Noner/   )r0   s   "r1   r2   re  ï  s   € ÷ -ñ -Ð7ð -Ð<Nñ -r4   c                	ó>  € ^ RI pVf   RpM†\        V\        \        34      '       d   TpMgV'       d!   VP	                  R4      '       g
   VR,          p\
        '       d#   VP                  RR4      P                  R4      pMVP                  R4      pVP                  RV P                  R7      w  rE \        P                  ! VR	4      ;_uu_ 4       pVP                  V4       RRR4       \        P                  ! V\        P                  P                  V4      \        P                  P!                  V4      ^,
          34       \        P                  P!                  V4      pV P#                  V34       V P$                  '       d>   \        P                  P!                  V4      V8X  d    \        P&                  ! V4       R# \)        VR
4      ;_uu_ 4       pVP+                  4       pRRR4       \        V\        \        34      '       d   X\        P&                  ! V4       # XP-                  R4      P                  RR4      \        P&                  ! V4       #   + '       g   i     ELƒ; i  + '       g   i     L�; i  \        P&                  ! T4       i ; i)ro   Nr4   r   z
z	utf-8-sigzutf-8zeditor-)ÚprefixÚsuffixÚwbÚrb)rX  Ú
isinstanceÚbytesÚ	bytearrayÚendswithr   rA  ÚencodeÚmkstemprd  r  Úfdopenrq   ÚutimeÚpathÚgetatimeÚgetmtimerz  rc  r[  ÚopenÚreadÚdecode)	rM   rï   rX  ÚdataÚfdr  r\  Ú	timestamprÚ   s	   &&       r1   r~  r  ï  sÍ  € ÛàŠ<Ø&)‰DÜ˜œu¤iÐ0×1Ò1Ø‰Dç˜DŸM™M¨$×/Ò/Ø˜•�ç‹sØ—|‘| D¨&Ó1×8Ñ8¸ÓE‘à—{‘{ 7Ó+�à×#Ñ#¨9¸T¿^¹^Ð#ÓL‰ˆð	Ü—’˜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Ò3Øô �IŠI�d�Oð —9‘9˜[Ó)×1Ñ1°&¸$Ó?ä�IŠI�d�O÷3 %×$Ð$ú÷" "×!ûô �IŠI�d�OúsO   Â2J ÃIÃ#B$J Æ$J ÇJ ÇI1Ç*%J È& J ÉI.	É(	J É1J	É<J ÊJ)rb  rC  rd  rc  )NNTz.txt)rÞ   rß   rà   rá   rN   rq  rz  r=   Úoverloadr~  rã   r/   r4   r1   r`  r`  «  sC   † ÷
#õõ"ð< ‡Z�ZÜ@ó Ø@ð ‡Z�ZÜ7ó Ø7÷-ñ -r4   r`  c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úurlr   rM  r    Úlocater-   r+   r/   )r0   s   "r1   r2   r2     s.   € ÷ Cñ C�#ð C˜Tð C°4ð CÀCñ Cr4   c                óø  € ^ RI pR R lp\        P                  R8X  dŠ   R.pV'       d   VP                  R4       V'       d   VP                  R4       VP                  V! V 4      4       \	        RR	4      p VP                  WVR
7      P                  4       VP                  4        # \        '       dA   V'       d    V! V 4      p RRV .p VP                  V4      #  \        P                  ! V 4       ^ # \        '       dr   V'       d+   V! V 4      p R\        P                  P                  V 4      .pM-R.pV'       d   VP                  R4       VP                  V 4        VP                  V4      #  V'       d1   \        P                  P                  V! V 4      4      ;'       g    Rp MV! V 4      p VP                  RV .4      pV'       d   VP                  4       # ^ #   TP                  4        i ; i  \         d     ^# i ; i  \         d     ^# i ; i  \         d     ^# i ; i  \         dD    T P!                  R4      '       d)   T'       g!   T'       g   ^ RIpTP	                  T 4        ^ #  ^# i ; i)ro   Nc               ó    € V ^8„  d   QhRRRR/# )r   r›  r   r-   r/   )r0   s   "r1   r2   Úopen_url.<locals>.__annotate__"  s   € ÷ ñ ˜3ð  3ñ r4   c                ó^   € ^ RI Hp V P                  R4      '       d   V! V R,          4      p V # )ro   )Úunquotezfile://:é   NN)Úurllib.parser¡  r!  )r›  r¡  s   & r1   Ú_unquote_fileÚopen_url.<locals>._unquote_file"  s'   € Ý(à�>‰>˜)×$Ò$Ù˜#˜b�'Ó"ˆCàˆ
r4   Údarwinr“  z-Wr@  z	/dev/nullrT  )ÚstderrÚexplorerz/select,Úcygstartz-wÚ.zxdg-open)zhttp://zhttps://)rE  r  r   r´   r“  rH  rM  rþ   r   rZ  rx  r  Ú	startfiler   r�  Údirnamer!  Ú
webbrowser)	r›  rM  rœ  rE  r¤  rv  ÚnullrP  r­  s	   &&&      r1   Ú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Ò2¿6Ï$Ûà�O‰O˜CÔ ÚÚðúsr   Á9G  ÃG5 ÃH Å!H Å3H+ Å;+H+ Æ'&H+ ÇH+ Ç G2Ç5HÈHÈHÈHÈH(È'H(È+)I9ÉI9ÉI9É8I9c               ó    € V ^8„  d   QhRRRR/# )r   Úchr   r-   r.   r/   )r0   s   "r1   r2   r2   e  s   € ÷ ñ ˜Sð  Tñ r4   c                ó    € V R 8X  d   \        4       hV R8X  d   \        '       g   \        4       hV R8X  d   \        '       d   \        4       hR# R# )ÚÚÚN)rN  r   ÚEOFError)r±  s   &r1   Ú_translate_ch_to_excr·  e  s?   € Ø	ˆV„|ÜÓ!Ð!à	ˆV„|ŸC›CÜ‹jÐà	ˆV„|Ÿ›Ü‹jÐñ �|r4   Úwin32c               ó   € V ^8„  d   QhRR/# ©r   r-   zcabc.Iterator[int]r/   )r0   s   "r1   r2   r2   t  s   € ÷ ñ Ð,ñ r4   c               #  ó   "  € Rx € R# 5i)r£   Nr8   r/   r/   r4   r1   Úraw_terminalr¼  s  s
   é € àŒùs   ‚	c               ó    € V ^8„  d   QhRRRR/# ©r   r   r    r-   r   r/   )r0   s   "r1   r2   r2   w  s   € ÷ ,ñ ,�dð ,˜sñ ,r4   c                ód  € V '       dB   \         P                  ! \         P                  . \        3,          \        P
                  4      pM@\         P                  ! \         P                  . \        3,          \        P                  4      pV! 4       pVR9   d   W!! 4       ,          p\        V4       V# )Ú )rÀ  ô   Ã )r=   r>   ÚCallabler   ÚmsvcrtÚgetwcheÚgetwchr·  )r   ÚfuncrÚ   s   &  r1   ÚgetcharrÇ  w  ss   € ÷> Ü—6’6œ!Ÿ*™* R¬ WÕ-¬v¯~©~Ó>‰Dä—6’6œ!Ÿ*™* R¬ WÕ-¬v¯}©}Ó=ˆDá‹VˆàÐ!Ô!ð �$“&�LˆBä˜RÔ Øˆ	r4   c               ó   € V ^8„  d   QhRR/# rº  r/   )r0   s   "r1   r2   r2   ª  s   € ÷ ñ Ð,ñ r4   c               #  óÐ  "  € \        \        P                  4      '       g   \        R 4      p V P	                  4       pM \        P                  P	                  4       pRp  \
        P                  ! V4      p \        P                  ! V4       Vx € \
        P                  ! V\
        P                  V4       \        P                  P                  4        V e   V P                  4        R# R#   \
        P                  ! T\
        P                  T4       \        P                  P                  4        T e   T P                  4        i i ; i  \
        P                   d     R# i ; i5i)z/dev/ttyN)r
   r  r  r“  ÚfilenoÚtermiosÚ	tcgetattrÚttyÚsetrawÚ	tcsetattrÚ	TCSADRAINr$  rs   rþ   Úerror)r\  r—  Úold_settingss      r1   r¼  r¼  ©  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&ÁE
 Á6C, ÂAE
 Ã(E&Ã,AEÅE
 Å
E#ÅE&Å"E#Å#E&c               ó    € V ^8„  d   QhRRRR/# r¾  r/   )r0   s   "r1   r2   r2   Ä  s   € ÷ ñ �dð ˜sñ r4   c                ó†  € \        4       ;_uu_ 4       p\        P                  ! V^ 4      P                  \	        \
        P                  4      R4      pV '       d?   \        \
        P                  4      '       d    \
        P                  P                  V4       \        V4       VuuRRR4       #   + '       g   i     R# ; i)é    rA  N)r¼  r  r”  r•  r	   r  r  r
   r$  rq   r·  )r   r—  r±  s   &  r1   rÇ  rÇ  Ä  sk   € Ü�^Œ^˜rÜ—’˜˜R“×'Ñ'Ô(9¼#¿)¹)Ó(DÀiÓPˆBçœœsŸz™z×*Ò*Ü—
‘
× Ñ  Ô$ä  Ô$Ø÷ �^�^‹^ús   “BB/Â/C 	r[   )FF);r  Ú
__future__r   Úcollections.abcÚabcÚcabcÚ
contextlibr©   r  r  r  rC   Útypingr=   r   r“   Úior   Úpathlibr   Útypesr   Ú_compatr   r   r	   r
   r   r   r   Ú
exceptionsr   Úutilsr   ÚTypeVarr   r  rÂ   rr   ÚGenericr   rå   r  r*  Úcontextmanagerr/  r:  r#  r"  r  r`  r¯  r·  r   rÃ  r¼  rÇ  rË  rÍ  r/   r4   r1   Ú<module>rå     s‡  ðñõ #å Û Û Û 	Û Û 
Û Û Ý  Ý Ý Ý å )Ý Ý &Ý Ý Ý Ý Ý &Ý à‡I‚IˆcƒN€ð ‡7�7ˆd„?Ø€JØ�Ià€JØ€IôQ#�!—)‘)˜A•,ô Q#÷h
%+ñ %+õP8÷8*3ðZ ×Ñöó ðõ.ð8 ×ÑöSó ðSðl ×Ñöó ððD ×Ñö	ó ð	÷qñ q÷hCõLð ‡<�<�7ÔÛà×Ñôó ð÷,ó^ Ûà×Ñôó ð÷4r4   