+
    "Ý³j*à  ã                    óð  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RI	H
t
Ht ^ RIHt ^ RIHtHt ^ RIHtHtHtHtHt ^ RIHt ^RIHt ^R	IHtHtHtHtH t H!t!H"t"H#t# ]'       d   ^RIHt$ ^R
I%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/H0t0 ^RI1H2t2H3t3H4t4 ^RI5H6t6 ]Pn                  ! 4       t8]R 4       t9]]93R lt:R t;]! ^R7      R R l4       t<R R lt=]! ^R7      R R l4       t>R R lt?R R lt@R R ltAR R ltB]
! RR 7       ! R! R"4      4       tCR# R$ ltDR%]@! ^/^k^U4      R&]@! ^H^ ^x4      R']@! ^˜^Ö^­4      R(]?! ^ð4      R)]?! ^Ö4      R*]?! ^Ù4      R+]?! ^Ó4      R,]?! ^Í4      R-]?! ^ì4      R.]?! ^4      R/]?! ^-4      R0]?! ^z4      R1]?! ^"4      R2]?! ^í4      R3]?! ^v4      /tE]PŒ                  ! 4       tG]D! 4       tHR4sIR5 R6 ltJR7 R8 ltKR9 R: ltL ! R; R<]M4      tN ! R= R>]O]4      tP ! R? R@4      tQ ! RA RB]Q4      tRR# )Cé    N)ÚcontextmanagerÚnullcontext)Ú	dataclassÚreplace)ÚEnum)Ú	lru_cacheÚwraps)ÚIterableÚOptionalÚUnionÚTYPE_CHECKINGÚSequence)Úwarn)ÚLogBar)Ú _running_in_notebook_environmentÚattach_progress_barÚdetach_progress_barÚ_record_progress_activityÚmark_progress_bar_dirtyÚrender_lockÚrender_progress_stackÚ_log_headless_state_once)ÚANSI_BOLD_RESETÚ
ANSI_RESETÚBLOCK_PARTIAL_CHARSÚSUBCELL_RESOLUTIONÚTITLE_BASE_COLORÚTITLE_HIGHLIGHT_COLORÚCellBarRendererÚcached_display_atomsÚ
strip_ansiÚtruncate_ansiÚvisible_length)ÚRenderBackendStateÚrender_backend_stateÚterminal_size)Úauto_iterablec               #  ó   "  € Rx € R# 5i)zFSmall local stand-in for environments without `nullcontext()` support.N© r)   ó    ÚP/home/luca/screen-checking/.venv/lib/python3.14/site-packages/logbar/progress.pyÚ_fallback_nullcontextr,   2   s
   é € õ 
ùs   ‚	c                ó@   € \        V 4      '       d   V ! 4       # V! 4       # )z>Return a working nullcontext object across supported runtimes.)Úcallable)Ú_nullcontextÚ	_fallbacks   &&r+   Ú_safe_nullcontextr1   9   s   € ô �×ÒÙ‹~ÐÙ‹;Ðr*   c                ó0   a € \        S 4      V 3R l4       pV# )zCSerialize one progress-bar API call through the shared render lock.c                 óÐ   <€ \        V R R4      '       d   S! V .VO5/ VB # V P                  4       w  r4V;_uu_ 4        S! V .VO5/ VB uuRRR4       #   + '       g   i     R# ; i)Ú	_headlessFN)ÚgetattrÚ_render_lock_context)ÚselfÚargsÚkwargsÚcontextÚ_Úmethods   &*,  €r+   ÚwrapperÚ_render_locked.<locals>.wrapperD   s\   ø€ ô �4˜ e×,Ò,Ù˜$Ð0 Ò0¨Ñ0Ð0Ø×.Ñ.Ó0‰
ˆßŠWÙ˜$Ð0 Ò0¨Ñ0÷ �W�W‹Wús   ½AÁA%	)r	   )r<   r=   s   f r+   Ú_render_lockedr?   A   s"   ø€ ô ˆ6ƒ]ô1ó ð1ð €Nr*   ©Úmaxsizec                ó$   € V ^8„  d   QhR\         /# ©é   Úreturn©Úbool)Úformats   "r+   Ú__annotate__rI   Q   s   € ÷ Iñ I¤ñ Ir*   c                 ó–   € \         P                  P                  RR4      p \        V 4      P	                  4       P                  4       R9  # )z2Read the global animation toggle once per process.ÚLOGBAR_ANIMATIONÚ1>   Ú0ÚnoÚoffÚfalse)ÚosÚenvironÚgetÚstrÚstripÚlower©Úvalues    r+   Ú_env_animation_enabledrY   P   s;   € ô �J‰J�N‰NÐ-¨sÓ3€EÜˆu‹:×ÑÓ×#Ñ#Ó%Ð-HÑHÐHr*   c                óh   € V ^8„  d   QhR\         \        \        \        3,          ,          R\        /# ©rD   rX   rE   )r   r   rT   Úint)rH   s   "r+   rI   rI   X   s'   € ÷ ñ ¤h¬u´S¼#°X­Õ&?ð ÄCñ r*   c                óœ   € V f   ^#  \        \        V 4      P                  4       4      p\        ^T4      #   \        \        3 d     ^# i ; i)zCNormalize logical progress render intervals to a safe integer >= 1.)r\   rT   rU   Ú	TypeErrorÚ
ValueErrorÚmax)rX   Ú
normalizeds   & r+   Ú_normalize_output_intervalrb   X   sP   € ð ‚}ÙðÜœ˜U›×)Ñ)Ó+Ó,ˆ
ô ˆq�*ÓÐøô ”zÐ"ô Úðús   ˆ"6 ¶AÁ
Ac                ó$   € V ^8„  d   QhR\         /# rC   ©r\   )rH   s   "r+   rI   rI   g   s   € ÷ ^ñ ^¤sñ ^r*   c                 óT   € \        \        P                  P                  RR4      4      # )zFGlobal default for how many logical progress updates occur per render.ÚLOGBAR_PROGRESS_OUTPUT_INTERVALrL   )rb   rQ   rR   rS   r)   r*   r+   Ú_env_progress_output_intervalrg   f   s    € ô &¤b§j¡j§n¡nÐ5VÐX[Ó&\Ó]Ð]r*   c                ó0   € V ^8„  d   QhR\         R\        /# )rD   ÚcoderE   ©r\   rT   )rH   s   "r+   rI   rI   m   s   € ÷  ñ  ”#ð  œ#ñ  r*   c                ó   € RV  R2# )z(Build a 256-color foreground SGR escape.z[38;5;Úmr)   )ri   s   &r+   Ú_fg_256rm   m   s   € ð ˜�v˜QÐÐr*   c                óH   € V ^8„  d   QhR\         R\         R\         R\        /# )rD   ÚredÚgreenÚbluerE   rj   )rH   s   "r+   rI   rI   s   s(   € ÷ .ñ .”ð .œSð .¬ð .´ñ .r*   c                ó   € RV  RV RV R2# )z(Build a truecolor foreground SGR escape.z[38;2;Ú;rl   r)   )ro   rp   rq   s   &&&r+   Ú_fg_rgbrt   s   s   € ð ˜�u˜A˜e˜W A d V¨1Ð-Ð-r*   c                ó0   € V ^8„  d   QhR\         R\         /# r[   rd   )rH   s   "r+   rI   rI   y   s   € ÷ #ñ #”cð #œcñ #r*   c                ó.   € \        ^ \        ^ÿV 4      4      # )z2Clamp one RGB channel to the ANSI truecolor range.)r`   ÚminrW   s   &r+   Ú
_clamp_rgbrx   y   s   € ô ˆq”#�c˜5“/Ó"Ð"r*   c                óF   € V ^8„  d   QhR\         \        ,          R\        /# )rD   ÚcolorrE   ©r   rT   )rH   s   "r+   rI   rI      s   € ÷ ñ œ(¤3�-ð ¬Cñ r*   c                óð  € V '       g   R# V P                  R4      '       d   V # \        V \        4      '       d$   \        P	                  V P                  4       4      MRpV'       d   V# \        V \        4      '       d+   V P                  4       '       d   \        \        V 4      4      # \        V \        4      '       d¯   \        P                  ! RV 4      pV'       d�   VP                  ^4      p\        V4      ^8X  d   R V 4       w  rEpM9\        VR,          ^4      p\        VR,          ^4      p\        VR,          ^4      p\        \        V4      \        V4      \        V4      4      # \        V 4      # )	zCNormalize named, numeric, hex, or raw ANSI colors into SGR escapes.Ú z[Nz!#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})c              3   óH   "  € T F  p\        V^,          ^4      x € K  	  R# 5i)rD   Nrd   )Ú.0Úchs   & r+   Ú	<genexpr>Ú!_resolve_color.<locals>.<genexpr>”   s   é € Ð?±Y¨rœ3˜r A�v rŸ?˜?³Yùs   ‚ ":r   rD   N:rD   é   N:rƒ   é   N)Ú
startswithÚ
isinstancerT   Ú_STYLE_COLOR_NAMESrS   rV   Úisdigitrm   r\   ÚreÚ	fullmatchÚgroupÚlenrt   rx   )rz   ÚnamedÚ	hex_matchÚ	hex_valueÚrÚgÚbs   &      r+   Ú_resolve_colorr“      s  € ÷ Ùà×Ñ˜× Ò Øˆä5?ÀÄs×5KÒ5KÔ×"Ñ" 5§;¡;£=Ô1ÐQU€EßØˆä�%œ×Ò %§-¡-§/¢/Ü”s˜5“zÓ"Ð"ä�%œ×ÒÜ—L’LÐ!EÀuÓMˆ	ßØ!Ÿ™¨Ó*ˆIÜ�9‹~ Ô"Ù?±YÓ?‘�‘aä˜	 #�¨Ó+�Ü˜	 #�¨Ó+�Ü˜	 #�¨Ó+�Üœ: a›=¬*°Q«-¼ÀA»ÓGÐGäˆu‹:Ðr*   T)Úfrozenc                   ó.  a € ] tR t^žt o RtRtRt]tRt	Rt
RtRtRtV 3R lR ltV 3R	 lR
 ltV 3R lR ltRV 3R lR lltV 3R lR ltV 3R lR ltR]/V 3R lR lltV 3R lR lt]! ^R7      ]3V 3R lR ll4       tV 3R lR ltV 3R ltRtV tR# ) ÚProgressStylez<Immutable description of how a progress bar should be drawn.õ   â–ˆÚ-r}   FNc                ó$   <€ V ^8„  d   QhRS[ RR/# ©rD   ÚcharrE   r–   ©rT   )rH   Ú__classdict__s   "€r+   rI   ÚProgressStyle.__annotate__¬   s   ø€ ÷ -ñ -¡3ð -¨?ñ -r*   c                ó   € \        WR7      # )z2Return a copy with a different fully filled glyph.)Ú	fill_char©r   ©r7   r›   s   &&r+   Úwith_fill_charÚProgressStyle.with_fill_char¬   ó   € ô �tÔ,Ð,r*   c                ó$   <€ V ^8„  d   QhRS[ RR/# rš   rœ   )rH   r�   s   "€r+   rI   rž   ±   s   ø€ ÷ .ñ .¡Cð .¨Oñ .r*   c                ó   € \        WR7      # )z0Return a copy with a different empty-cell glyph.)Ú
empty_charr¡   r¢   s   &&r+   Úwith_empty_charÚProgressStyle.with_empty_char±   s   € ô �tÔ-Ð-r*   c                óD   <€ V ^8„  d   QhRS[ S[S[,          ,          RR/# )rD   ÚcharsrE   r–   )r   r   rT   )rH   r�   s   "€r+   rI   rž   ¶   s(   ø€ ÷ Rñ R¡H©X±c­]Õ$;ð RÀñ Rr*   c                óB   € \        Ye   \        V4      R7      # RR7      # )z+Return a copy with a new partial-fill ramp.)Ú	fill_rampr)   ©r   Útuple)r7   r¬   s   &&r+   Úwith_fill_rampÚProgressStyle.with_fill_ramp¶   s    € ô �tÒ7H¤u¨U£|ÔQÐQÈbÔQÐQr*   c          
      ó†   <€ V ^8„  d   QhRS[ S[S[,          ,          RS[ S[,          RS[ S[,          RS[ S[,          RR/# )rD   ÚfillÚemptyÚgradientÚ
head_colorrE   r–   )r   r   rT   rG   )rH   r�   s   "€r+   rI   rž   »   sR   ø€ ÷ ñ á‘x¡•}Õ%ðñ ™�}ðñ ™4•.ð	ñ
 ™S•Mðð 
ñr*   c                óž   € T pVe   \        V\        V4      R7      pVe   \        WRR7      pVe   \        WSR7      pVe   \        WTR7      pV# )z:Return a copy with updated palette, empty, or head colors.)Úfill_colors)Úempty_color©r¶   ©r·   r¯   )r7   r´   rµ   r¶   r·   Ústyles   &&&&& r+   Úwith_colorsÚProgressStyle.with_colors»   sT   € ð ˆØÒÜ˜E¬u°T«{Ô;ˆEØÒÜ˜EÔ5ˆEØÒÜ˜EÔ5ˆEØÒ!Ü˜EÔ9ˆEØˆr*   c                ó4   <€ V ^8„  d   QhRS[ S[,          RR/# rš   r{   )rH   r�   s   "€r+   rI   rž   Ï   s   ø€ ÷ -ñ -¡8©C¥=ð -°_ñ -r*   c                ó   € \        WR7      # )z$Return a copy with a new head glyph.)Ú	head_charr¡   r¢   s   &&r+   Úwith_head_charÚProgressStyle.with_head_charÏ   r¥   r*   c                óB   <€ V ^8„  d   QhRS[ RS[ RS[S[S[3,          /# )rD   Úfilledrµ   rE   ©r\   r°   rT   )rH   r�   s   "€r+   rI   rž   Ô   s*   ø€ ÷ 
ñ 
™Sð 
©ð 
±±s¹C°xµñ 
r*   c                óJ   € V P                  W,           V\        ,          R7      # )z2Render the bar using whole filled and empty cells.©Útotal_cellsÚfilled_units)Úrender_unitsr   )r7   rÆ   rµ   s   &&&r+   ÚrenderÚProgressStyle.renderÔ   s*   € ð × Ñ Ø�ØÔ"4Õ4ð !ó 
ð 	
r*   Úunits_per_cellc          
      óH   <€ V ^8„  d   QhRS[ RS[ RS[ RS[S[S[3,          /# )rD   rÊ   rË   rÏ   rE   rÇ   )rH   r�   s   "€r+   rI   rž   Ü   s;   ø€ ÷ ñ áðñ ðñ
 ðñ 
‰s‘Cˆx�ñr*   c               ó€  € V P                  VR7      pVP                  VVR7      pVP                  p\        ^ \	        V4      4      p\        ^\	        V4      4      pWx,          p	\        ^ \        \	        V4      V	4      4      p\        W(4      w  r«\        YzV'       d   ^M^ ,           4      pV P                  Wl4      pWm3# )z:Render the bar using sub-cell units for smoother progress.)rÏ   rÉ   )Ú_bar_rendererrÌ   Úplainr`   r\   rw   ÚdivmodÚ_render_colored_bar)r7   rÊ   rË   rÏ   ÚrendererÚresultrÓ   ÚwidthÚ
resolutionÚtotal_unitsÚ
full_cellsÚpartial_unitsÚoccupied_cellsÚrendereds   &&&$          r+   rÌ   ÚProgressStyle.render_unitsÜ   s·   € ð ×%Ñ%°^Ð%ÓDˆØ×&Ñ&Ø#Ø%ð 'ó 
ˆð —‘ˆä�A”s˜;Ó'Ó(ˆÜ˜œC Ó/Ó0ˆ
ØÕ(ˆÜ˜1œc¤# lÓ"3°[ÓAÓBˆÜ$*¨<Ó$DÑ!ˆ
Ü˜U·}±!È!Õ$LÓMˆà×+Ñ+¨EÓBˆØˆÐr*   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[ /# )rD   rÓ   rÝ   rE   ©rT   r\   )rH   r�   s   "€r+   rI   rž   ö   s'   ø€ ÷ G!ñ G!©ð G!¹cð G!Ácñ G!r*   c                ó’  € V P                   '       g'   V P                  '       g   V P                  '       g   V# \        V4      pV^ 8X  d   R# . pV P                  '       d   V^ 8”  d
   V^,
          MRpV^ 8¼  d   TMTpV P                   pV'       EdÖ   V^ 8”  EdÎ   VRV p\        V4      p	V P                  '       dÇ   V	^8”  dÀ   V^8”  d¹   V^,
          p
V	^,
          p^ p^ pWÆ8  d›   V^,           V
,          V,           ^,
          V,          pWæ8”  d   TpWì8:  d
   V^,           pW},          pV'       d   VP                  V4       VP                  WŒV 4       V'       d   VP                  \        4       TpV^,          pK   EM V	^8X  d\   V^ ,          pV'       d9   VP                  V4       VP                  V4       VP                  \        4       M°VP                  V4       Mž\        V4       Fs  pVVV	,          ,          pV'       dA   VP                  V4       VP                  VV,          4       VP                  \        4       K[  VP                  VV,          4       Ku  	  MV^ 8”  d   VP                  VRV 4       V^ 8¼  dH   VP                  V P                  4       VP                  W,          4       VP                  \        4       W#8  db   V P                  pV'       d;   VP                  V4       VP                  WR 4       VP                  \        4       MVP                  WR 4       RP                  V4      # )z@Apply fill, head, and empty colors to an already-rasterized bar.r}   Néÿÿÿÿ)	r¹   rº   r·   rŒ   r¶   Úappendr   ÚrangeÚjoin)r7   rÓ   rÝ   rØ   ÚsegmentsÚhead_idxÚfill_endÚpaletteÚ
fill_plainÚpalette_lenÚscale_nÚscale_dÚstartÚpÚendrz   Úidxrº   s   &&&               r+   rÕ   Ú!ProgressStyle._render_colored_barö   s“  € ð ××Ð¨×(8×(8Ð(8ÀÇÇÀØˆLä�E“
ˆØ�AŒ:Ùà ˆØ)-¯¯¨¸^ÈaÔ=O�> AÖ%ÐUWˆØ'¨1œ}‘8°.ˆà×"Ñ"ˆßˆ7�x !•|Ø˜y Ð)ˆJÜ˜g›,ˆKØ�}�}ˆ} ¨q¤°^ÀaÔ5GØ(¨1Õ,�Ø%¨�/�Ø�Ø�ØÔ&Ø �E WÕ,¨wÕ6¸Õ:¸wÕF�CØ”~Ø&˜Ø”|Ø# a�i˜Ø#�J�EßØ Ÿ™¨Ô.Ø—O‘O J°SÐ$9Ô:ßØ Ÿ™¬
Ô3Ø�EØ˜•F’Añ 'ð  Ô!Ø �
�ßØ—O‘O EÔ*Ø—O‘O JÔ/Ø—O‘O¤JÕ/à—O‘O JÕ/ä  ž?�CØ# C¨+Õ$5Õ6�EßØ Ÿ™¨Ô.Ø Ÿ™¨
°3­Ô8Ø Ÿ™¬
Ö3à Ÿ™¨
°3­Ö8ò +ð ˜Œ\Ø�O‰O˜E ) 8Ð,Ô-à�qŒ=Ø�O‰O˜DŸO™OÔ,Ø�O‰O˜E�OÔ,Ø�O‰OœJÔ'àÔ!Ø×*Ñ*ˆKßØ—‘ Ô,Ø—‘  oÐ 6Ô7Ø—‘¤
Õ+à—‘  oÐ 6Ô7à�w‰w�xÓ Ð r*   r@   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )rD   rÏ   rE   )r\   r   )rH   r�   s   "€r+   rI   rž   @  s   ø€ ÷ 	
ñ 	
©Cð 	
Éñ 	
r*   c                ór   € \        V P                  V P                  V P                  V P                  VR7      # )z0Build the low-level bar renderer for this style.)r    r¨   rÂ   Úpartial_charsrÏ   )r   r    r¨   rÂ   r®   )r7   rÏ   s   &&r+   rÒ   ÚProgressStyle._bar_renderer?  s0   € ô Ø—n‘nØ—‘Ø—n‘nØŸ.™.Ø)ô
ð 	
r*   c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# )rD   rò   ÚtotalrE   rj   )rH   r�   s   "€r+   rI   rž   K  s"   ø€ ÷ +ñ +¡ð +©Sð +±Sñ +r*   c                ój  € V P                   '       g   R# V P                   pV P                  '       dk   \        V4      ^8”  d[   V^8”  dT   W^,
          ,          p\        \	        V\        V4      ^,
          ,          4      \        V4      ^,
          4      pW5,          # W1\        V4      ,          ,          # )z0Choose the fill color for one occupied bar cell.r}   )r¹   r¶   rŒ   rw   r\   )r7   rò   rù   rê   ÚposÚpalette_indexs   &&&   r+   Ú_select_colorÚProgressStyle._select_colorK  s‡   € ð ××ÐÙà×"Ñ"ˆØ�=�=ˆ=œS ›\¨AÔ-°%¸!´)Ø �Õ#ˆCÜ¤ C¬3¨w«<¸!Õ+;Õ$<Ó =¼sÀ7»|ÈaÕ?OÓPˆMØÕ)Ð)àœS ›\Õ)Õ*Ð*r*   c                óÆ   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[ ;R&   S[;R&   S[S[ ,          ;R&   S[S[ ,          ;R	&   # )
rD   Únamer    r¨   r®   r¹   rº   r¶   rÂ   r·   )rT   r   rG   r   )rH   r�   s   "€r+   rI   rž   ž   s‰   ø‡ ‚ ñ �Iñ	 ñ
 Ññ ñ Ññ ñ ™�}Ñ2ñ ñ ™#•Ñ#ñ ñ Ññ ñ Ññ ñ ™�}Ñ#ñ ñ ™•Ñ$ò r*   r)   ©NNNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r    r¨   r   r®   r¹   rº   r¶   rÂ   r·   r£   r©   r±   r¾   rÃ   rÍ   r   rÌ   rÕ   r   rÒ   rý   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r�   s   @r+   r–   r–   ž   sÄ   ø‡ € áFð €IØ€JØ2€IØ!#€KØ€KØ€HØ#€IØ $€J÷-ð -÷
.ð .÷
Rð R÷
ò ÷(-ð -÷

ð 
ðð
 1÷ò ÷4G!ð G!ñR �qÔØ2D÷ 	
ñ 	
ó ð	
÷+ð +÷[ ƒ r*   r–   c                óF   € V ^8„  d   QhR\         \        \        3,          /# rC   )ÚdictrT   r–   )rH   s   "r+   rI   rI   Z  s    € ÷ Tñ T¤$¤s¬MÐ'9Õ":ñ Tr*   c                 ó®  a€ / oR V3R llp V ! \        RRR\        R,          \        R,          3\        R,          R	R\        R
,          R7      4       V ! \        RRR\        R,          \        R,          \        R,          3\        R,          R	R\        R,          R7      4       V ! \        RRR\        R,          \        R,          \        R,          3\        R,          R	R\        R,          R7      4       V ! \        RRRR7      4       V ! \        RRR\        R,          \        R,          3\        R,          RR\        R ,          R7      4       S# )!z>Create the built-in named progress styles shipped with LogBar.c                ó$   € V ^8„  d   QhR\         /# ©rD   r½   ©r–   )rH   s   "r+   rI   Ú._register_default_styles.<locals>.__annotate___  s   € ÷ #ñ #”=ñ #r*   c                ó&   <€ V SV P                   &   R# )z;Register one built-in style by name in the local style map.N)r   )r½   Ústyless   &€r+   ÚaddÚ%_register_default_styles.<locals>.add_  s   ø€ ð #ˆˆu�z‰zÓr*   Úemerald_glowr—   u   â–‘ÚemeraldÚspringÚslateTÚmint)r   r    r¨   r¹   rº   r¶   rÂ   r·   Úsunsetu   â–‰ô   Â·ÚamberÚpeachÚroseÚeveningÚ	carnationÚoceanu   â–“Údeep_seaÚaquaÚfoamÚmonor˜   )r   r    r¨   Úmatrixu   â–®ÚcharcoalFÚlime)r–   r‡   )r  r  s    @r+   Ú_register_default_stylesr*  Z  sf  ø€ ð €F÷#ð #ñ
 ÜØØØä" 9Õ-Ü" 8Õ,ðô +¨7Õ3ØØÜ)¨&Õ1ô	
ôñ  ÜØØØä" 7Õ+Ü" 7Õ+Ü" 6Õ*ðô
 +¨9Õ5ØØÜ)¨+Õ6ô	
ôñ" ÜØØØä" :Õ.Ü" 6Õ*Ü" 6Õ*ðô
 +¨7Õ3ØØÜ)¨&Õ1ô	
ôñ" ÜØØØô	
ôñ ÜØØØä" 9Õ-Ü" 8Õ,ðô +¨:Õ6ØØÜ)¨&Õ1ô	
ôð  €Mr*   r  r  r  r  r  r  r  r!  r   r#  r$  r%  r'  r(  r)  r  c                ó:   € V ^8„  d   QhR\         \        ,          /# rC   ©ÚlistrT   )rH   s   "r+   rI   rI   È  s   € ÷ (ñ (œd¤3�iñ (r*   c                 óz   € \         ;_uu_ 4        \        \        4      uuRRR4       #   + '       g   i     R# ; i)z9Return the registered style names in stable sorted order.N)Ú_STYLE_LOCKÚsortedÚ_PROGRESS_STYLESr)   r*   r+   Úprogress_style_namesr2  È  s   € ÷ 
ŽÜÔ&Ó'÷ 
��‹úó   �)©:	c                óR   € V ^8„  d   QhR\         \        \        3,          R\        /# ©rD   r½   rE   ©r   rT   r–   )rH   s   "r+   rI   rI   Ï  s(   € ÷ 
oñ 
oœe¤C¬Ð$6Õ7ð 
o¼Mñ 
or*   c           	     ó  € \        V \        4      '       d   V # \        ;_uu_ 4        V \        9   d   \        V ,          uuRRR4       #  RRR4       \	        RV  RRP                  \        4       4       24      h  + '       g   i     L8; i)z=Resolve either a style name or an already-built style object.NzUnknown progress style 'z'. Available styles: z, )r†   r–   r/  r1  ÚKeyErrorræ   r2  ©r½   s   &r+   Úget_progress_styler:  Ï  sm   € ô �%œ×'Ò'Øˆç	ŽØÔ$Ô$Ü# EÕ*÷ 
ŠØ$÷ 
ô Ð-¨e¨WÐ4IÈ$Ï)É)ÔThÓTjÓJkÐIlÐmÓ
nÐn÷	 
�ús   §A;Á;B	c                ó(   € V ^8„  d   QhR\         RR/# ©rD   r½   rE   Nr  )rH   s   "r+   rI   rI   Ü  s   € ÷ -ñ -¤=ð -°Tñ -r*   c                ó‚   € \         ;_uu_ 4        V \        V P                  &   RRR4       R#   + '       g   i     R# ; i)z+Register or replace a named progress style.N)r/  r1  r   r9  s   &r+   Úregister_progress_styler>  Ü  s$   € ÷ 
ŽØ',Ô˜Ÿ™Ñ$÷ 
��Šús   �-­>	c                   ó:   a a€ ] tR tRt oRtRV 3R lltRtVtV ;t# )ÚProgressBarWarningiä  zDWarning subclass used for compatibility with older cleanup behavior.c                óÚ   <€ VeR   V! RV P                   P                  ,           R,           \        V4      P                  4       ,           R,           4       R# \        SV `  ! V.VO5/ VB  R# )z>Optionally emit the warning immediately to a file-like writer.NÚ
z: )Ú	__class__r  rT   ÚrstripÚsuperÚ__init__)r7   ÚmsgÚfp_writeÚaÚkrC  s   &&&*,€r+   rF  ÚProgressBarWarning.__init__ç  sT   ø€ ð ÒÙ�T˜DŸN™N×3Ñ3Õ3°dÕ:¼SÀ»X¿_¹_Ó=NÕNÐQUÕUÖVä‰GÒ˜SÐ* 1Ò*¨Ô*r*   r)   ©N)	r  r  r  r  r  rF  r  r	  Ú__classcell__©rC  r�   s   @@r+   r@  r@  ä  s   ù‡ € ÙN÷+÷ +r*   r@  c                   ó"   € ] tR tRtRtRtRtRtR# )Ú
RenderModeiï  zDControl whether progress bars redraw automatically during iteration.ÚAUTOÚMANUALr)   N)r  r  r  r  r  rQ  rR  r  r)   r*   r+   rP  rP  ï  s   † ÙNà€DØ„Fr*   rP  c                   óè  a € ] tR tRt o Rt]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R	 lR
 l4       t	RVRR/V 3R lR lllt
V 3R lR ltV 3R lR ltR t]V 3R lR l4       t]RWV 3R lR ll4       t]V 3R lR l4       t]V 3R lR l4       t]RXV 3R lR ll4       t]RYV 3R lR ll4       t]RWV 3R  lR! ll4       t]V 3R" lR# l4       t]V 3R$ lR% l4       t]V 3R& lR' l4       t]R( 4       t]R) 4       tR* tV 3R+ lR, lt]RVV 3R- lR. ll4       t]R/ 4       tV 3R0 lR1 ltRZV 3R2 lR3 llt R[V 3R4 lR5 llt!RVV 3R6 lR7 llt"]R\V 3R8 lR9 ll4       t#RVR: lt$RVR;RR<R/V 3R= lR> lllt%R]V 3R? lR@ llt&V 3RA lRB lt'V 3RC lRD lt(RWV 3RE lRF llt)RG t*RH t+]RI 4       t,]RJ 4       t-RK t.RL t/RM t0]1RN 4       t2RO t3V 3RP lRQ lt4]RR 4       t5RS t6]RT 4       t7RUt8V t9R# )^ÚProgressBariö  zGDeterministic progress bar that can render inline or in a shared stack.c                ó0   <€ V ^8„  d   QhRS[ S[,          /# rC   r,  )rH   r�   s   "€r+   rI   ÚProgressBar.__annotate__ú  s   ø€ ÷ &ñ &¡¡c¥ñ &r*   c                ó   € \        4       # )z1List the names of all registered progress styles.)r2  ©Úclss   &r+   Úavailable_stylesÚProgressBar.available_stylesù  s   € ô $Ó%Ð%r*   c                ó$   <€ V ^8„  d   QhRS[ RR/# r<  r  )rH   r�   s   "€r+   rI   rV     s   ø€ ÷ 'ñ '¡=ð '°Tñ 'r*   c                ó   € \        V4       R# )z9Register a style through the class-level convenience API.N)r>  )rY  r½   s   &&r+   Úregister_styleÚProgressBar.register_styleÿ  s   € ô 	  Ö&r*   c                ó<   <€ V ^8„  d   QhRS[ S[S[3,          RS[/# r5  r6  )rH   r�   s   "€r+   rI   rV    s%   ø€ ÷ ñ ¡e©C±Ð,>Õ&?ð ÁMñ r*   c                óÖ   € \         ;_uu_ 4        \        V\        4      '       d   \        V4       TpM\	        V4      pVP
                  sVuuRRR4       #   + '       g   i     R# ; i)z9Set the process-wide default style for new progress bars.N)r/  r†   r–   r>  r:  r   Ú_DEFAULT_STYLE_NAME)rY  r½   Úresolveds   && r+   Úset_default_styleÚProgressBar.set_default_style  sH   € ÷ Ž[Ü˜%¤×/Ò/Ü'¨Ô.Ø ‘ä-¨eÓ4�ð #+§-¡-ÐØ÷ �[�[‹[ús   �=AÁA(	c                ó    <€ V ^8„  d   QhRS[ /# rC   r  )rH   r�   s   "€r+   rI   rV    s   ø€ ÷ ;ñ ;™mñ ;r*   c                óz   € \         ;_uu_ 4        \        \        4      uuRRR4       #   + '       g   i     R# ; i)z.Return the current process-wide default style.N)r/  r:  rb  rX  s   &r+   Údefault_styleÚProgressBar.default_style  s   € ÷ Ž[Ü%Ô&9Ó:÷ �[�[‹[úr3  NÚoutput_intervalc                óh   <€ V ^8„  d   QhRS[ S[S[S[S[3,          RS[R,          RS[S[,          /# )rD   ÚiterableÚownerÚ
LogBarTyperj  )r   r
   r\   r  Úsetr   )rH   r�   s   "€r+   rI   rV    s@   ø€ ÷ ?*ñ ?*á™¡#¡t©SÐ0Õ1ð?*ñ ˜Õ%ð?*ñ
 "¡#�ñ?*r*   c               óT  € RV n         \        P                  V n        RV n        RV n        ^ V n        RV n        RV n        RV n	        ^ V n
        RV n        V P                  4       V n        V P                  P                  V n        RV n        ^ V n        ^ V n        \'        V4      pV'       d   TMTV n        ^ V n        ^ V n        \.        P.                  ! 4       V n        V P.                  V n        RV n        \5        Vf   \7        4       MT4      V n        RV n        \=        \>        P@                  \B        \E        4       R7      pVPF                  V n$        V PH                  '       d   \K        V4       RV n&        ^ V n'        W n(        RV n)        RV n*        RV n+        RV n,        RV n-        R# )z?Create a progress bar around an iterable or a total step count.Fr}   gš™™™™™¹?N©ÚstreamÚsize_providerÚnotebookTç        ).Ú
_iteratingrP  rQ  Ú_render_modeÚ_titleÚ_title_plainÚ_title_widthÚ_title_paddingÚ	_subtitleÚ_subtitle_plainÚ_subtitle_widthÚ_subtitle_paddingrh  Ú_styler   Ú_style_nameÚclosedÚmax_title_lenÚmax_subtitle_lenr'   rl  Ú
bar_lengthÚcurrent_iter_stepÚtimeÚ_title_animation_startÚ_title_animation_periodrb   rg   Ú_output_intervalÚ_last_output_stepr%   ÚsysÚstdoutr&   r   Úheadlessr4   r   Úui_show_left_stepsÚui_show_left_steps_offsetÚ_owner_loggerÚ_attached_loggerÚ	_attachedÚ_last_rendered_lineÚ_logbar_dirty_trackedÚ_next_title_refresh_at)r7   rl  rm  rj  Ú	auto_iterÚ_backend_states   &&&$  r+   rF  ÚProgressBar.__init__  su  € ð  ˆŒä&ŸO™OˆÔàˆŒØˆÔØˆÔØ ˆÔØˆŒØ!ˆÔØ ˆÔØ!#ˆÔØ×(Ñ(Ó*ˆŒØŸ;™;×+Ñ+ˆÔØˆŒð ˆÔØ !ˆÔô " (Ó+ˆ	ß%.™	°HˆŒàˆŒØ!"ˆÔÜ—I’I“KˆŒ	Ø&*§i¡iˆÔ#Ø'*ˆÔ$Ü :Ø/>Ò/FÔ)Ô+ÈOó!
ˆÔð 15ˆÔô
 .Ü—:‘:Ü'Ü5Ó7ô
ˆð
 (×0Ñ0ˆŒØ�>�>ˆ>Ü$ ^Ô4à"&ˆÔØ)*ˆÔ&à"ÔØ8<ˆÔØˆŒØ#%ˆÔ Ø%)ˆÔ"Ø&)ˆÖ#r*   c                ó$   <€ V ^8„  d   QhRS[ RR/# )rD   ÚtitlerE   Nrœ   )rH   r�   s   "€r+   rI   rV  \  s   ø€ ÷ Sñ S©ð S°ñ Sr*   c                ó¸   € Wn         \        V4      V n        \        V4      V n        R\        ^ V P                  V P                  ,
          4      ,          V n        R# )z:Cache plain-text and width metadata for the current title.Ú N)rx  r!   ry  r#   rz  r`   rƒ  r{  )r7   r›  s   &&r+   Ú_update_title_cacheÚProgressBar._update_title_cache\  sH   € ð ŒÜ& uÓ-ˆÔÜ*¨5Ó1ˆÔØ!¤C¨¨4×+=Ñ+=À×@QÑ@QÕ+QÓ$RÕRˆÖr*   c                ó$   <€ V ^8„  d   QhRS[ RR/# )rD   ÚsubtitlerE   Nrœ   )rH   r�   s   "€r+   rI   rV  d  s   ø€ ÷ \ñ \©sð \°tñ \r*   c                ó¸   € Wn         \        V4      V n        \        V4      V n        R\        ^ V P                  V P                  ,
          4      ,          V n        R# )z=Cache plain-text and width metadata for the current subtitle.r�  N)r|  r!   r}  r#   r~  r`   r„  r  )r7   r¡  s   &&r+   Ú_update_subtitle_cacheÚ"ProgressBar._update_subtitle_cached  sH   € ð "ŒÜ)¨(Ó3ˆÔÜ-¨hÓ7ˆÔØ!$¤s¨1¨d×.CÑ.CÀd×FZÑFZÕ.ZÓ'[Õ![ˆÖr*   c                ó@   € V P                   '       d   \        V 4       V # )z:Mark the bar for stack redraw if it is currently attached.)r“  r   ©r7   s   &r+   Ú_mark_dirtyÚProgressBar._mark_dirtyl  s   € ð �>�>ˆ>Ü# DÔ)Øˆr*   c                ó&   <€ V ^8„  d   QhRS[ RS[/# ©rD   ÚnowrE   ©ÚfloatrG   )rH   r�   s   "€r+   rI   rV  t  s   ø€ ÷ ñ ©Eð ±dñ r*   c                ó6  € V P                   '       d)   V P                  '       d   V P                  4       '       g
   RV n        R# \	        V P
                  R4      pV P                  ^ 8:  d   W,           V n        R# WP                  8  d   R# W,           V n        R# )zBAdvance time-based title animation state for shared refresh loops.ru  Fç�íµ ÷Æ°>T)r“  rx  Ú_should_animate_titler–  r`   r‰  )r7   r«  Úperiods   && r+   Ú_tick_background_refreshÚ$ProgressBar._tick_background_refreshs  sw   € ð �~�~ˆ~ T§[§[ [¸×8RÑ8R×8TÒ8TØ*-ˆDÔ'Ùä�T×1Ñ1°4Ó8ˆØ×&Ñ&¨!Ô+Ø*-­,ˆDÔ'Ùà×,Ñ,Ô,Ùà&)¥lˆÔ#Ùr*   c                óF   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          /# )rD   Úshow_left_stepsÚleft_steps_offset)r   rG   r\   )rH   r�   s   "€r+   rI   rV  ‡  s%   ø€ ÷ "ñ "Ù%¡d�^ð"á'©�}ñ"r*   c                óJ   € Ve   Wn         Ve   W n        V P                  4       # )z=Update left-side step labels without changing progress state.)r�  r�  r§  )r7   rµ  r¶  s   &&&r+   ro  ÚProgressBar.set†  s+   € ð Ò&Ø&5Ô#àÒ(Ø->Ô*Ø×ÑÓ!Ð!r*   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r  r6  )rH   r�   s   "€r+   rI   rV  •  s   ø€ ÷ "ñ "™5¡¡mÐ!3Õ4ñ "r*   c                óf   € \        V4      pW n        VP                  V n        V P	                  4       # )z.Swap the active named or custom drawing style.)r:  r€  r   r�  r§  )r7   r½   rc  s   && r+   r½   ÚProgressBar.style”  s.   € ô & eÓ,ˆØŒØ#Ÿ=™=ˆÔØ×ÑÓ!Ð!r*   c                ó    <€ V ^8„  d   QhRS[ /# )rD   Úintervalrd   )rH   r�   s   "€r+   rI   rV  ž  s   ø€ ÷ "ñ "©ñ "r*   c                óB   € \        V4      V n        V P                  4       # )z:Render after at least `interval` logical progress updates.)rb   rŠ  r§  )r7   r½  s   &&r+   rj  ÚProgressBar.output_interval�  s    € ô !;¸8Ó DˆÔØ×ÑÓ!Ð!r*   c                óL   <€ V ^8„  d   QhRS[ S[S[3,          RS[S[,          /# )rD   r´   rµ   )r   rT   r–   r   )rH   r�   s   "€r+   rI   rV  ¥  s)   ø€ ÷ "ñ "™™s¡MÐ1Õ2ð "Á8ÉCÅ=ñ "r*   c                óº  € \        V\        4      '       d   V P                  V4      # \        V\        4      '       d?   \        ;_uu_ 4        V\
        9   d   V P                  V4      uuRRR4       #  RRR4       \        V\        4      '       d	   V'       g   \        R4      hV P                  pVP                  V4      pVe   VP                  V4      pVP                  f   VP                  R4      pM,VP                  VP                  8X  d   VP                  V4      pW@n        VP                  V n        V P                  4       #   + '       g   i     LÞ; i)z9Override the fill and optional empty glyphs for this bar.Nz0fill must be a non-empty string or a named style)r†   r–   r½   rT   r/  r1  r_   r€  r£   r©   rÂ   rÃ   r    r   r�  r§  )r7   r´   rµ   Úprevious_styler½   s   &&&  r+   r´   ÚProgressBar.fill¤  s
  € ô �dœM×*Ò*Ø—:‘:˜dÓ#Ð#Ü�dœC× Ò ß–ØÔ+Ô+ØŸ:™: dÓ+÷ ’Ø+÷ ô ˜$¤×$Ò$¯DÜÐOÓPÐPàŸ™ˆØ×-Ñ-¨dÓ3ˆàÒØ×)Ñ)¨%Ó0ˆEà×#Ñ#Ò+Ø×(Ñ(¨Ó.‰EØ×%Ñ%¨×)AÑ)AÔAØ×(Ñ(¨Ó.ˆEàŒØ Ÿ:™:ˆÔØ×ÑÓ!Ð!÷) —ús   ÁE
Å
E	c          	      ó˜   <€ V ^8„  d   QhRS[ S[S[S[S[,          3,          ,          RS[ S[,          RS[ S[,          RS[ S[,          /# )rD   r´   rµ   r¶   Úhead)r   r   rT   r   rG   )rH   r�   s   "€r+   rI   rV  Â  sR   ø€ ÷  "ñ  "á‘u™S¡(©3¥-Ð/Õ0Õ1ð "ñ ™�}ð "ñ ™4•.ð	 "ñ
 ‘s�mñ "r*   c                ó†  € V P                   pVe‰   \        V\        \        34      '       d.   \        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      pM\	        V4      pV'       d   V3MRpVe   TM\        V4      ^8„  pVP                  WhR7      pMVe   VP                  VR7      pVe   VP                  \	        V4      R7      pVeK   TP                  VP                  ;'       g    VP                  4      pVP                  \	        V4      R7      pWPn         VP                  V n        V P                  4       # )z<Override fill, empty, gradient, or head colors for this bar.c              3   óJ   "  € T F  q'       g   K  \        V4      x € K  	  R # 5irL  )r“   )r   Úcs   & r+   r�   Ú%ProgressBar.colors.<locals>.<genexpr>Ï  s   é € ÐE¹4°aÃ1Ô 1¤¨q× 1Ð 1»4ùs   ‚	#�#)r´   r¶   r»   )rµ   r¼   r)   )r€  r†   r-  r°   r“   rŒ   r¾   rÃ   rÂ   r    r   r�  r§  )	r7   r´   rµ   r¶   rÅ  r½   rê   rc  Údefault_gradients	   &&&&&    r+   ÚcolorsÚProgressBar.colorsÁ  s  € ð —‘ˆàÒÜ˜$¤¤u ×.Ò.ßœ%ÑE¹4ÓEŸ%™%ÑE¹4ÓEÓE‘ä)¨$Ó/�ß)1˜8™+°r�à+3Ò+?™xÄcÈ'ÃlÐUVÑFVÐØ×%Ñ%¨7Ð%ÓN‰EØÒ!Ø×%Ñ%¨xÐ%Ó8ˆEàÒØ×%Ñ%¬N¸5Ó,AÐ%ÓBˆEàÒØ×(Ñ(¨¯©×)KÐ)K¸E¿O¹OÓLˆEØ×%Ñ%´ÀÓ1EÐ%ÓFˆEàŒØ Ÿ:™:ˆÔØ×ÑÓ!Ð!r*   c                óF   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          /# )rD   r›   rz   r{   )rH   r�   s   "€r+   rI   rV  å  s#   ø€ ÷ "ñ "™¡#�ð "±h¹sµmñ "r*   c                ó  € V P                   pVe,   V'       d   VP                  V4      pMVP                  R4      pVe   VP                  \        V4      R7      pW0n         VP                  V n        V P                  4       # )z8Configure the moving head glyph and optional head color.Nr¼   )r€  rÃ   r¾   r“   r   r�  r§  )r7   r›   rz   r½   s   &&& r+   rÅ  ÚProgressBar.headä  st   € ð —‘ˆàÒßØ×,Ñ,¨TÓ2‘à×,Ñ,¨TÓ2�àÒØ×%Ñ%´ÀÓ1FÐ%ÓGˆEàŒØ Ÿ:™:ˆÔØ×ÑÓ!Ð!r*   c                ó    <€ V ^8„  d   QhRS[ /# )rD   r›  rœ   )rH   r�   s   "€r+   rI   rV  ø  s   ø€ ÷ "ñ "™3ñ "r*   c                óð  € WP                   8X  d   V # V P                  '       d5   V P                  \        P                  8w  d   \
        P                  R4       V P                  '       d   Wn         Wn        V # \        V4      pW P                  8”  d   W n
        V P                   pV P                  V4       V'       g#   V'       d   \        P                  ! 4       V n        RV n        V P                  4       # )z=Set the title shown before the bar and update width tracking.zdProgressBar: Title should not be updated after iteration has started unless in `manual` render mode.ru  )rx  rv  rw  rP  rR  Úloggerr   r4   ry  r#   rƒ  rž  r‡  rˆ  r–  r§  )r7   r›  Ú	title_lenÚprevious_titles   &&  r+   r›  ÚProgressBar.title÷  s´   € ð —K‘KÔØˆKà�?�?ˆ?˜t×0Ñ0´J×4EÑ4EÔEÜ�K‰KÐ~Ôà�>�>ˆ>ØŒKØ %ÔØˆKä" 5Ó)ˆ	Ø×)Ñ)Ô)Ø!*ÔàŸ™ˆØ× Ñ  Ô'÷ §%Ü*.¯)ª)«+ˆDÔ'Ø&)ˆÔ#Ø×ÑÓ!Ð!r*   c                ó    <€ V ^8„  d   QhRS[ /# )rD   r¡  rœ   )rH   r�   s   "€r+   rI   rV    s   ø€ ÷ "ñ "¡ñ "r*   c                óv  € WP                   8X  d   V # V P                  '       d5   V P                  \        P                  8w  d   \
        P                  R4       V P                  '       d   Wn         Wn        V # \        V4      pW P                  8”  d   W n
        V P                  V4       V P                  4       # )z5Set the subtitle shown between the title and the bar.zhProgressBar: Sub-title should not be updated after iteration has started unless in `manual` render mode.)r|  rv  rw  rP  rR  rÒ  r   r4   r}  r#   r„  r£  r§  )r7   r¡  Úsubtitle_lens   && r+   r¡  ÚProgressBar.subtitle  s”   € ð —~‘~Ô%ØˆKà�?�?ˆ?˜t×0Ñ0´J×4EÑ4EÔEÜ�K‰Kð  Cô  Dà�>�>ˆ>Ø%ŒNØ#+Ô ØˆKä% hÓ/ˆØ×/Ñ/Ô/Ø$0Ô!à×#Ñ# HÔ-Ø×ÑÓ!Ð!r*   c                ó    <€ V ^8„  d   QhRS[ /# )rD   Úmode)rP  )rH   r�   s   "€r+   rI   rV  .  s   ø€ ÷ "ñ "™ñ "r*   c                ó.   € Wn         V P                  4       # )z1Switch between automatic and manual redraw modes.)rw  r§  )r7   rÛ  s   &&r+   rÛ  ÚProgressBar.mode-  s   € ð !ÔØ×ÑÓ!Ð!r*   c                óL   € \         P                  V n        V P                  4       # )z.Enable redraws on each logical iteration step.)rP  rQ  rw  r§  r¦  s   &r+   ÚautoÚProgressBar.auto4  s   € ô 'ŸO™OˆÔØ×ÑÓ!Ð!r*   c                óL   € \         P                  V n        V P                  4       # )z@Disable automatic redraws so callers drive rendering explicitly.)rP  rR  rw  r§  r¦  s   &r+   ÚmanualÚProgressBar.manual;  s!   € ô '×-Ñ-ˆÔØ×ÑÓ!Ð!r*   c                óà  aaa€ \        \        4      '       d   \        MRpVf   \        4       R3#  V! 4       oSf   \        4       R3# \	        SR4      '       d   \	        SR4      '       d   SR3# \        SRR4      o\        SRR4      o\        S4      '       d,   \        S4      '       d   \        TTT3R l4       pT! 4       R3# \        4       R3#   \         d    \        4       R3u # i ; i)	zCReturn a context manager for the shared render lock when available.NFÚ	__enter__Ú__exit__TÚacquireÚreleasec               3  óN   <"  € S ! 4         Sx € S! 4        R#   S! 4        i ; i5i)z<Normalize bare acquire/release locks into a context manager.Nr)   )rç  Úlock_objrè  s   €€€r+   Ú_managed_lockÚ7ProgressBar._render_lock_context.<locals>._managed_lockX  s!   øé € ñ ”	ðØ"’Ná–Iø‘G•Iüó   ƒ%Œ �	%™	"¢%)r.   r   r1   Ú	ExceptionÚhasattrr5   r   )r7   Úlock_providerrë  rç  rê  rè  s   &  @@@r+   r6   Ú ProgressBar._render_lock_contextB  sî   ú€ ô (0´×'<Ò'<�À$ˆØÒ Ü$Ó&¨Ð-Ð-ð	.Ù$“ˆHð ÒÜ$Ó&¨Ð-Ð-ä�8˜[×)Ò)¬g°hÀ
×.KÒ.KØ˜T�>Ð!ä˜( I¨tÓ4ˆÜ˜( I¨tÓ4ˆä�G×Ò¤¨'×!2Ò!2Üöó ðñ !“? DÐ(Ð(ä Ó" EÐ)Ð)øô3 ô 	.Ü$Ó&¨Ð-Ò-ð	.ús   ²C ÃC-Ã,C-c                ó   <€ V ^8„  d   QhRR/# ©rD   rE   Nr)   )rH   r�   s   "€r+   rI   rV  f  s   ø€ ÷ (ñ (¨4ñ (r*   c                óP  aa€  ^RI Hp \        TRR4      p\	        T\
        4      '       g   R# \        TRR4      p\        4       pTe{   \        TR4      '       d   \        TR4      '       d   TpMS\        TRR4      o\        TRR4      o\        S4      '       d)   \        S4      '       d   \        TT3R	 l4       pT! 4       pT;_uu_ 4        Y9   d    TP                  T 4       RRR4       R#   \         d     R# i ; i  \         d     L)i ; i  + '       g   i     R# ; i)
z<Best-effort detach path for interpreter shutdown edge cases.)ÚlogbarNÚ_attached_progress_barsÚ_STATE_LOCKrå  ræ  rç  rè  c               3  óN   <"  € S ! 4         Rx € S! 4        R#   S! 4        i ; i5i)z:Wrap the shared state lock in a context manager interface.Nr)   )rç  rè  s   €€r+   Ú_state_lock_ctxÚ>ProgressBar._fallback_detach_registry.<locals>._state_lock_ctx}  s   øé € ñ  œ	ð&Û!á#žIø™G�Iürí  )r}   rõ  rî  r5   r†   r-  r1   rï  r.   r   Úremover_   )r7   Úlogbar_moduleÚbarsÚ
state_lockÚlock_contextrù  rç  rè  s   &     @@r+   Ú_fallback_detach_registryÚ%ProgressBar._fallback_detach_registryf  s  ù€ ð	Ý1ô �}Ð&?ÀÓFˆÜ˜$¤×%Ò%Ùä˜]¨M¸4Ó@ˆ
Ü(Ó*ˆàÒ!Ü�z ;×/Ò/´G¸JÈ
×4SÒ4SØ)‘ä! *¨i¸Ó>�Ü! *¨i¸Ó>�ä˜G×$Ò$¬°'×):Ò):Ü#õ&ó $ð&ñ $3Ó#4�LçŠ\ØŒ|ðØ—K‘K Ô%÷ ‰\øô= ô 	Úð	ûôD "ô Ùðú÷	 �\ˆ\ús;   „C1 ÃDÃDÃ1D Ã?D ÄDÄDÄDÄDÄD%	c                ó.   <€ V ^8„  d   QhRS[ R,          /# ©rD   rÒ  rn  ©r   )rH   r�   s   "€r+   rI   rV  ‘  s   ø€ ÷ ñ ™X lÕ3ñ r*   c                óP  € V P                   '       d   V # V P                  '       d   V # V P                  '       d   V # T;'       g*    V P                  ;'       g    \        P
                  ! 4       pW n        W n        \        V 4       RV n        RV n        \        \        4      '       d   \        MRpV P                  4       w  rET;_uu_ 4        Ve    V! VR7       RRR4       V #   \         d     \        P                  ! 4       '       g   h  L3i ; i  + '       g   i     T # ; i)z=Attach the bar to a logger so it renders in the shared stack.Tru  N©Ú	lock_held)r‚  r“  r4   r‘  r   Úsharedr’  r   r–  r.   r   r6   rî  rŒ  Úis_finalizing)r7   rÒ  Útarget_loggerÚ	render_fnr:   r  s   &&    r+   ÚattachÚProgressBar.attach�  sò   € ð �;�;ˆ;ØˆKà�>�>ˆ>ØˆKà�>�>ˆ>ØˆKà×GÐG $×"4Ñ"4×GÐG¼¿º»ˆØ -ÔØ*ÔÜ˜DÔ!ØˆŒØ&)ˆÔ#ä-5Ô6K×-LÒ-LÕ)ÐRVˆ	Ø!×6Ñ6Ó8ÑˆçŠWØÒ$ðÙ¨	Õ2÷ ð ˆøô	 !ô Ü×,Ò,×.Ò.Øñ /ðú÷	 ŽWð ˆús0   ÃDÃ	C'Ã'%DÄDÄDÄDÄDÄD%	c                ó&  € V P                   '       g   V # \        \        4      '       d   \        MRp\        \        4      '       d   \        MRpV P	                  4       w  r4RpRp T;_uu_ 4        Ve    V! V 4       MV P                  4        Ve    V! VR7       RRR4       Ve   VhRpV'       d   RV n         RV n	        RV n
        RV n        V #   \
         d=   p\        P                  ! 4       '       d   T P                  4         Rp?LTp Rp?L†Rp?ii ; i  \
         d,   p\        P                  ! 4       '       g   Tf   Tp Rp?L±Rp?ii ; i  + '       g   i     LÁ; i  T'       d   RT n         RT n	        RT n
        RT n        i i ; i)z=Detach the bar from stack management and stop future redraws.NFr  Tr}   ru  )r“  r.   r   r   r6   rî  rŒ  r	  r   r’  r”  r–  )r7   Ú	detach_fnr  r:   r  Úexc_to_raiseÚdetached_successfullyÚexcs   &       r+   ÚdetachÚProgressBar.detach±  sd  € ð �~�~ˆ~ØˆKä+3Ô4G×+HÒ+HÕ'Èdˆ	Ü-5Ô6K×-LÒ-LÕ)ÐRVˆ	Ø!×6Ñ6Ó8ÑˆØ04ˆØ %Ðð	2ß’ØÒ(ð/Ù! $�ð ×2Ñ2Ô4àÒ(ð/Ù!¨IÕ6÷ ð$ Ò'Ø"Ð"Ø$(Ð!ç$Ø!&�”Ø(,�Ô%Ø+-�Ô(Ø.1�Ô+àˆøô1 %ô /Ü×,Ò,×.Ò.Ø ×:Ñ:×<Ñ<à+.�Lûð	/ûô %ô /Ü"×0Ò0×2Ò2°|Ò7KØ+.˜Lÿøð/ú÷ —û÷, %Ø!&�”Ø(,�Ô%Ø+-�Ô(Ø.1�Õ+ð	 %ús~   Á&
E) Á0EÁ6CÁ>EÂ	DÂE) ÃDÃ+DÄ	EÄDÄEÄDÄEÄEÄ(!EÅ	EÅEÅEÅE&	Å!E) Å)'Fc                ó    <€ V ^8„  d   QhRS[ /# rC   rd   )rH   r�   s   "€r+   rI   rV  Ý  ó   ø€ ÷ ñ ¡#ñ r*   c                ó"   € V P                  4       # )z/Progress coordinate used for render throttling.)Ústepr¦  s   &r+   Ú_render_positionÚProgressBar._render_positionÝ  s   € ð �y‰y‹{Ðr*   c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[ /# )rD   ÚforceÚallow_repeatrE   rF   )rH   r�   s   "€r+   rI   rV  â  s(   ø€ ÷ Jñ J¡Dð JÁð JÑQUñ Jr*   c                óÌ   € V'       d   R# V P                   '       g   R# V P                  pVf   R# V P                  4       pV'       d	   WC8:  d   R# WC,
          V P                  8¬  # )zAReturn whether this logical state change should emit a new frame.T)r”  r‹  r  rŠ  )r7   r  r  Úlast_output_stepÚcurrent_steps   &&&  r+   Ú_should_renderÚProgressBar._should_renderâ  s[   € ÷ Ùà×'×'Ð'Ùà×1Ñ1ÐØÒ#Ùà×,Ñ,Ó.ˆß˜LÔ<ÙàÕ/°D×4IÑ4IÑIÐIr*   c                ón   <€ V ^8„  d   QhRS[ RS[RS[RS[S[,          RS[S[,          RS[S[,          /# )rD   Úcolumnsr  r  Úbackend_stateÚstyle_enabledrE   )r\   rG   r   r$   rT   )rH   r�   s   "€r+   rI   rV  õ  sU   ø€ ÷ ñ áðñ ðñ ð	ñ
  Ñ 2Õ3ðñ  ¡•~ðñ 
‘#�ñr*   c                óŒ   € V P                  W#R7      '       g   R# V P                  VVVR7      pV P                  4       V n        V# )z>Return the next rendered line, honoring draw throttling rules.)r  r  N©r%  r&  )r!  Ú_render_snapshotr  r‹  )r7   r$  r  r  r%  r&  Úrendered_lines   &&&&&& r+   Ú_resolve_rendered_lineÚ"ProgressBar._resolve_rendered_lineõ  sR   € ð ×"Ñ"¨Ð"×JÒJÙà×-Ñ-ØØ'Ø'ð .ó 
ˆð
 "&×!6Ñ!6Ó!8ˆÔØÐr*   c                ó6   <€ V ^8„  d   QhRS[ S[,          RS[/# )rD   r%  rE   )r   r$   )rH   r�   s   "€r+   rI   rV  
  s"   ø€ ÷ 	
ñ 	
±8Ñ<NÕ3Oð 	
Ñ[mñ 	
r*   c                ó^   € Ve   V# \        \        P                  \        \	        4       R7      # )z7Resolve backend capabilities for the current draw call.rq  )r%   rŒ  r�  r&   r   )r7   r%  s   &&r+   Ú_render_backend_stateÚ!ProgressBar._render_backend_state
  s-   € ð Ò$Ø Ð Ü#Ü—:‘:Ü'Ü5Ó7ô
ð 	
r*   c                ó    <€ V ^8„  d   QhRS[ /# )rD   r  rF   )rH   r�   s   "€r+   rI   rV    s   ø€ ÷ 4ñ 4™$ñ 4r*   c           	     óŒ  € V P                   '       d   R# \        4        \        \        P                  \
        \        4       R7      pVP                  p\        \        4      '       d   \        MRpV P                  '       d   Ve   VP                  MVP                  pV P                  VVRVVR7      pVf   R# V P                  4       w  rxV P                  '       d   Vf@   T;_uu_ 4         VP                  '       d   RMRp	\        RV	 V 2RRR7       RRR4       R# T;_uu_ 4         V! VW/VVR	7       RRR4       R#   \          d     \        P"                  ! 4       '       g   h  LVi ; i  + '       g   i     R# ; i  \          d     \        P"                  ! 4       '       g   h  Lti ; i  + '       g   i     R# ; i)
z@Render the current progress state either inline or in the stack.Nrq  T)r  r  r%  r&  z[2Kr}   Ú)rñ   Úflush)r  ÚprecomputedÚcolumns_hintr%  )r4   r   r%   rŒ  r�  r&   r   r$  r.   r   r“  Úsupports_stylingÚsupports_ansir+  r6   Úprintrî  r	  )
r7   r  r%  r$  r  r&  r*  r:   r  Ú
clear_lines
   &&        r+   ÚdrawÚProgressBar.draw  s—  € ð �>�>ˆ>Ùô
 	"Ô#Ü,Ü—:‘:Ü'Ü5Ó7ô
ˆð
  ×'Ñ'ˆÜ-5Ô6K×-LÒ-LÕ)ÐRVˆ	Ø:>¿.¿.¸.ÈYÒMb˜×6Ò6Ðhu÷  iDñ  iDˆØ×3Ñ3ØØØØ'Ø'ð 4ó 
ˆð Ò Ùà!×6Ñ6Ó8Ñˆà�~�~ˆ~ Ò!2ß’ðð /<×.I×.IÐ.I¡Èr�JÜ˜B˜z˜l¨=¨/Ð:ÀÈ$ÕO÷ ñ çŠWð	ÙØ"+Ø%)Ð$9Ø%,Ø&3õ	÷ ‰Wøô !ô Ü×,Ò,×.Ò.Øñ /ðú÷ –ñ ûô !ô Ü×,Ò,×.Ò.Øñ /ðú÷ �WˆWús`   Ã,E1Ã.)EÄ+F2Ä-FÅ%E.Å*E.Å+E1Å-E.Å.E1Å1F	Æ%F/Æ+F/Æ,F2Æ.F/Æ/F2Æ2G	c                ó°  € Vf   \        V 4      p\        \        P                  ! 4       V P                  ,
          4      p\        \        P
                  ! VR7      4      pTpV P                  \        P                  8X  d   V^ 8”  d
   V^,
          p\        \        P
                  ! \        V\        V^4      ,          V,          4      R7      4      pV RV 2# )zBReturn elapsed and estimated remaining time for the progress line.©Úsecondsz / )
rŒ   r\   r‡  rT   ÚdatetimeÚ	timedeltarw  rP  rQ  r`   )r7   Ú	iterationÚtotal_stepsÚ	used_timeÚformatted_timeÚ	completedÚ	remainings   &&&    r+   Ú	calc_timeÚProgressBar.calc_timeL  s¦   € ð ÒÜ˜d›)ˆKÜœŸ	š	› d§i¡iÕ/Ó0ˆ	ÜœX×/Ò/¸	ÔBÓCˆØˆ	Ø×Ñ¤
§¡Ô/°IÀ´MØ! A�ˆIÜœ×*Ò*´3¸	ÄCÈ	ÐSTÓDUÕ8UÐYdÕ7dÓ3eÔfÓgˆ	Ø Ð!  Y KÐ0Ð0r*   r%  r&  c                ób   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          RS[ S[,          RS[/# ©rD   r$  r%  r&  rE   ©r   r\   r$   rG   rT   )rH   r�   s   "€r+   rI   rV  Y  sG   ø€ ÷ Rñ Rá™#•ðRñ  Ñ 2Õ3ð	Rñ
  ¡•~ðRñ 
ñRr*   c               óT  € V P                  V4      pVf   VP                  pVf   VP                  M
\        V4      p\	        V 4      pV'       d   TM^pV P                  4       pV\        V4      ,          pRP                  ^dV,          4      p	V P                  Wu4       RV RV RV	 R2p
^ pV P                  '       d   W°P                  ^,           ,          pV P                  '       d   W°P                  ^,           ,          pV P                  '       d_   WpP                  ,
          pWPP                  ,
          pRV RV R2V n        \	        V P                  4      V n        W°P                   ,          pV P"                  V P$                  ,           pVe
   V^ 8”  d   TM^ p\	        V
4      pV'       d!   \'        ^ Wû,
          V,
          ^,
          4      M^ pVV n        V\*        ,          pWv8¼  d   V^ 8”  d   TpM>V^ 8”  d6   \-        VV,          V,          4      p^ Tu;8  d   V8  d   M MV^ 8X  d   ^pM^ pV P.                  P1                  VVR7      w  ppV'       g   TpVV,           V,           ^,           pV P3                  VVV
VVVV P5                  VVR	7      VR
7      pVV n        V# )zCBuild a full rendered line snapshot for the current progress state.z{0:.1f}z [Ú/z] Ú%Ú[z of rÉ   r(  )Ú	bar_plainÚbar_renderedÚlog_textÚpre_bar_paddingr$  r7  Úanimate_titleÚplain_width)r/  r$  r7  rG   rŒ   r  r­  rH   rH  rx  rƒ  r|  r„  r�  r�  Úui_show_left_steps_textÚui_show_left_steps_text_max_lenr{  r  r`   r…  r   r\   r€  rÌ   Ú_render_liner°  r”  )r7   r$  r%  r&  r7  rC  Úeffective_totalr   Úpercent_numÚpercentrS  Úpre_bar_sizeÚleft_currentÚ
left_totalÚpaddingÚavailable_columnsÚlog_text_widthr…  rÚ   rË   rQ  rR  rV  r*  s   &&$$                    r+   r)  ÚProgressBar._render_snapshotY  s–  € ð ×2Ñ2°=ÓAˆØŠ?Ø#×+Ñ+ˆGØ=JÒ=R˜=×9Ò9ÔX\Ð]jÓXkÐä˜$“iˆß)4™+¸!ˆØ—y‘y“{ˆà"¤U¨?Ó%;Õ;ˆØ×$Ñ$ S¨;Õ%6Ó7ˆØ—n‘n \Ó?Ð@ÀÀ<À.ÐPQÐR]ÐQ^Ð^`ÐahÐ`iÐijÐkˆàˆà�;�;ˆ;Ø×.Ñ.°Õ2Õ2ˆLØ�>�>ˆ>Ø×1Ñ1°AÕ5Õ5ˆLà×"×"Ð"Ø'×*HÑ*HÕHˆLØ$×'EÑ'EÕEˆJØ-.¨|¨n¸DÀÀÈBÐ+OˆDÔ(Ü36°t×7SÑ7SÓ3TˆDÔ0Ø×@Ñ@Õ@ˆLð ×%Ñ%¨×(>Ñ(>Õ>ˆà'.Ò':¸wÈ¼{™GÐPQÐä˜X›ˆßVg”S˜Ð-Õ<¸~ÕMÐPQÕQÔRÐmnˆ
Ø$ˆŒà Ô#5Õ5ˆØÔ*¨{¸Q¬Ø&‰LØ˜1Œ_ô  ¨{Õ :¸oÕMÓNˆLØ�<Ö1 /×1°lÀaÔ6GØ �øàˆLà"&§+¡+×":Ñ":Ø"Ø%ð #;ó #
Ñˆ	�<÷  Ø$ˆLà" ZÕ/°.Õ@À1ÕDˆà×)Ñ)ØØ%ØØ#ØØ-Ø×4Ñ4Ø+Ø.ð 5ó ð $ð *ó 
ˆð $1ˆÔ ØÐr*   c                ó�   <€ V ^8„  d   QhRS[ RS[ RS[ RS[S[,          RS[S[ ,          RS[RS[S[,          RS[S[,          R	S[ /	# )
rD   rQ  rS  rT  r$  rR  r7  rU  rV  rE   )rT   r   r\   rG   )rH   r�   s   "€r+   rI   rV  ­  s€   ø€ ÷ Jñ JáðJñ ðJñ ð	Jñ
 ™#•ðJñ ™s•mðJñ ðJñ  ¡•~ðJñ ™c•]ðJñ 
ñJr*   c	                ó*  aa€ . o. oR	R VV3R lllp	Vf   T;'       d    V P                  VR7      pV P                  '       dh   V'       d:   V P                  V P                  4      p
V	! V P                  W P                  4       MV	! V P                  V P                  R7       V	! R4       V P                  '       d&   V P                   R2pV	! W°P
                   R2R7       V'       d	   V	! V4       V P                  '       dG   V P                  pV P                  '       g!   V'       d   V	! WÀP                  V4      4       MV	! V4       V RV 2pV'       d   Ve   V RV 2MRpV	! WÞ4       RP                  S4      pV'       d   RP                  S4      MTpVeu   Vf   \        V4      pW„8”  d9   V'       d   V P                  VV4      pV# \        V P                  Wô4      4      pV# W„8  d"   RWH,
          ,          pVV,          pVV,          pV# )
zCAssemble the final visible line from title, bar, and status fields.Nc                óh   € V ^8„  d   QhR\         R\        \         ,          R\        \         ,          /# )rD   ÚtextrÞ   rÓ   )rT   r   )rH   s   "r+   rI   Ú.ProgressBar._render_line.<locals>.__annotate__½  s/   € ÷ 	Qñ 	Q¤ð 	Q´¼µð 	QÌXÔVYÍ]ñ 	Qr*   c                óp   <€ SP                  Ve   TMT 4       SP                  Ve	   V4       R# T 4       R# )zDAccumulate plain and styled output in lockstep for width accounting.N)rä   )rg  rÞ   rÓ   Úsegments_plainÚsegments_rendereds   &&&€€r+   Úappend_segmentÚ0ProgressBar._render_line.<locals>.append_segment½  s2   ø€ ð ×!Ñ!¨5Ò+<¡%À$ÔGØ×$Ñ$°Ò1E XÖPÈ4ÖPr*   )r&  )rÓ   r�  z| r}   ©NN)r°  rx  Ú_animated_textry  r|  r}  r�  rW  ræ   r#   Ú_truncate_ansir!   )r7   rQ  rS  rT  r$  rR  r7  rU  rV  rl  Úanimated_titleÚsubtitle_textÚleft_steps_textÚplain_bar_segmentÚrendered_bar_segmentÚ	plain_outÚrendered_outÚpadrj  rk  s   &&&&&&&&&         @@r+   rY  ÚProgressBar._render_line­  sú  ù€ ð ˆØÐ÷	Qó 	Qð Ò Ø,×kÐk°×1KÑ1KÐZjÐ1KÓ1kˆMà�;�;ˆ;ßØ!%×!4Ñ!4°T·[±[Ó!A�Ù˜tŸ{™{¨N×<MÑ<MÕNá˜tŸ{™{°$×2CÑ2CÕDÙ˜3Ôà�>�>ˆ>Ø#Ÿ~™~Ð.¨aÐ0ˆMÙ˜=×3GÑ3GÐ2HÈÐ0JÕKçÙ˜?Ô+à×"×"Ð"Ø"×:Ñ:ˆOØ—;—;�;§=Ù˜×0CÑ0CÀOÓ0TÕUá˜Ô/ð  )˜k¨¨H¨:Ð6Ð÷   LÒ$<ð ˆn˜B˜x˜jÑ)àð 	ñ
 	Ð(Ô?à—G‘G˜NÓ+ˆ	ß5E�r—w‘wÐ0Ô1È9ˆàÒØÒ"Ü,¨YÓ7�ØÔ$÷ (ð ×'Ñ'¨°gÓ>ð ð Ðô $ D×$7Ñ$7¸	Ó$KÓLð ð Ðð Ô&Ø˜WÕ2Õ3�Ø˜SÕ �	Ø Õ#�àÐr*   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )rD   rg  rE   rœ   )rH   r�   s   "€r+   rI   rV  ù  s   ø€ ÷ (ñ (¡3ð (©3ñ (r*   c                ó  € V'       g   R# \        V P                  R4      p\        P                  ! 4       V P                  ,
          p\	        V4      pV^ 8X  d   V# ^pWE,           p\        W2,          4      V,          pWt8  d   TMRp\        .p	^ p
\        V4       FÇ  w  r¼pV'       d   V	P                  V4       K!  VRJ;'       d)    V^ 8„  ;'       d    Y¨u;8*  ;'       d    W­,           8  Mu pV'       dR   V	P                  \        4       V	P                  V4       V	P                  \        4       V	P                  \        4       MV	P                  V4       W­,          p
KÉ  	  V	P                  \        4       RP                  V	4      # )z=Apply the sweeping highlight effect to one title-like string.r}   r¯  N)r`   r‰  r‡  rˆ  r#   r\   r   r    rä   r   r   r   ræ   )r7   rg  r±  ÚelapsedÚtext_lenÚpause_stepsÚcycle_lengthÚ
cycle_stepÚhighlight_idxÚpartsÚvisible_idxÚis_ansiÚtokenrØ   Úhighlight_actives   &&             r+   ro  ÚProgressBar._animated_textù  sM  € ÷ Ùä�T×1Ñ1°4Ó8ˆÜ—)’)“+ × ;Ñ ;Õ;ˆÜ! $Ó'ˆØ�qŒ=ØˆKð ˆØÕ-ˆÜ˜Õ)Ó*¨\Õ9ˆ
à&0Ô&;™
Àˆä!Ð"ˆØˆÜ%9¸$Ö%?Ñ!ˆG˜EßØ—‘˜UÔ#Ùà TÐ)÷ Ið IØ˜A‘I÷Ið Ià×HÔH°KÕ4GÔHð ÷
  Ø—‘Ô2Ô3Ø—‘˜UÔ#Ø—‘œ_Ô-Ø—‘Ô-Õ.à—‘˜UÔ#ØÕ ŠKñ! &@ð$ 	�‰”ZÔ Ø�w‰w�u‹~Ðr*   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[ /# )rD   rg  ÚlimitrE   rá   )rH   r�   s   "€r+   rI   rV  #  s"   ø€ ÷ *ñ *¡3ð *©sð *±sñ *r*   c                ó   € \        W4      # )zBDelegate ANSI-aware truncation through the shared drawing helpers.)r"   )r7   rg  r‰  s   &&&r+   rp  ÚProgressBar._truncate_ansi#  s   € ô ˜TÓ)Ð)r*   c                óL   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          RS[/# )rD   r%  r&  rE   )r   r$   rG   )rH   r�   s   "€r+   rI   rV  (  s8   ø€ ÷ Qñ QáÑ 2Õ3ðQñ  ¡•~ðQñ 
ñ	Qr*   c                ó  € \        4       '       g   R#  V P                  V4      pTP                  '       d   R# Tf   TP                  p\        T4      ;'       d!    TP                  ;'       g    TP                  #   \         d     R# i ; i)zBDecide whether title animation is supported on the active backend.F)rY   r/  rî  rŽ  r7  rG   Úsupports_cursorrt  )r7   r%  r&  Ústates   &&& r+   r°  Ú!ProgressBar._should_animate_title(  s}   € ô &×'Ò'Ùð	Ø×.Ñ.¨}Ó=ˆEð �>�>ˆ>ÙØÒ Ø!×2Ñ2ˆMÜ�MÓ"×PÐP¨×(=Ñ(=×(OÐ(OÀÇÁÐPøô ô 	Úð	ús   ”A< Á<BÂ
Bc                ó^   € V P                   f   \        R4      h\        V P                   4      # )z;Mirror the truthiness of the wrapped iterable when defined.z/bool() undefined when iterable == total == None)rl  r^   rG   r¦  s   &r+   Ú__bool__ÚProgressBar.__bool__;  s)   € ð �=‰=Ò ÜÐMÓNÐNÜ�D—M‘MÓ"Ð"r*   c                ó\  € \        V P                  R4      '       d   V P                  P                  ^ ,          # \        V P                  R4      '       d   \        V P                  4      # \        V P                  R4      '       d   V P                  P	                  4       # \        V RR4      # )zAReturn the total number of logical steps when it can be inferred.ÚshapeÚ__len__Ú__length_hint__rù   N)rï  rl  r•  rŒ   r—  r5   r¦  s   &r+   r–  ÚProgressBar.__len__B  s‡   € ô '.¨d¯m©m¸W×&EÒ&EˆD�M‰M×Ñ Õ"ð	/ä'.¨t¯}©}¸i×'HÒ'H”�T—]‘]Ó#ð	/ô 5<¸D¿M¹MÐK\×4]Ò4]�—‘×.Ñ.Ó0ð	/ô ˜˜w¨Ó-ð		/r*   c                óÈ   €  V P                   p\        V P                   4      V n         V P                  4       Wn         #   \         d    \	        R4      hi ; i  XT n         i ; i)zCReverse the underlying iterable and reuse the normal iterator path.z#'progress' object is not reversible)rl  ÚreversedÚ__iter__ÚAttributeErrorr^   )r7   Úoriginals   & r+   Ú__reversed__ÚProgressBar.__reversed__L  sY   € ð	%Ø—}‘}ˆHô % T§]¡]Ó3ˆDŒMØ—=‘=“?à$�Møô ô 	CÜÐAÓBÐBð	Cûð %ˆD�Mús   ‚> Ž)A ¾AÁA Á	A!c                ól   € \        V P                  RR4      pVe	   V! V4      # WP                  4       9   # )z?Proxy containment checks to the wrapped iterable when possible.Ú__contains__N)r5   rl  r›  )r7   ÚitemÚcontainss   && r+   r¡  ÚProgressBar.__contains__Z  s3   € ô ˜4Ÿ=™=¨.¸$Ó?ˆØ!)Ò!5‰x˜‹~ÐR¸4Ç=Á=Ã?Ñ;RÐRr*   c                ó   € V # )z,Support `with ProgressBar(...) as pb` usage.r)   r¦  s   &r+   rå  ÚProgressBar.__enter__a  s	   € ð ˆr*   c                ó„   €  V P                  4        R#   \         d!    YT3R8X  d   h \        R\        ^R7        R# i ; i)z=Ensure the bar closes cleanly when leaving a context manager.NzAttributeError ignored)Ú
stacklevel)NNN)Úcloserœ  r   r@  )r7   Úexc_typeÚ	exc_valueÚ	tracebacks   &&&&r+   ræ  ÚProgressBar.__exit__g  sF   € ð	MØ�J‰JŽLøÜô 	Mà YÐ/Ð3EÔEØô Ð)Ô+=È!×LÐLð	Mús   ‚ ”'?¾?c                ó&   € V P                  4        R# )z6Best-effort cleanup when the bar is garbage-collected.N)r©  r¦  s   &r+   Ú__del__ÚProgressBar.__del__t  s   € ð 	�
‰
Žr*   c                ó.   € \        \        V RR4      4      # )z@Expose a stable ordering key compatible with older integrations.rû   l        )Úabsr5   r¦  s   &r+   Ú_comparableÚProgressBar._comparablez  s   € ô ”7˜4 ¨Ó0Ó1Ð1r*   c                ó   € \        V 4      # )z@Keep instances hashable so they can live in dirty tracking sets.)Úidr¦  s   &r+   Ú__hash__ÚProgressBar.__hash__€  s   € ô �$‹xˆr*   c                ó    <€ V ^8„  d   QhRS[ /# rC   rd   )rH   r�   s   "€r+   rI   rV  …  s   ø€ ÷ &ñ &‘cñ &r*   c                ó   € V P                   # )z-Return the current logical progress position.©r†  r¦  s   &r+   r  ÚProgressBar.step…  s   € ð ×%Ñ%Ð%r*   c                ó8   € V ;P                   ^,          un         V # )z%Advance progress by one logical step.r»  r¦  s   &r+   ÚnextÚProgressBar.nextŠ  s   € ð 	×Ò !Õ#ÕØˆr*   c              #  ó  "  € V P                   pV F_  pV P                  '       g   RV n        V P                  4        V P                  \
        P                  8X  d   V P                  4        Vx € Ka  	  V P                  4        R# 5i)zCIterate the wrapped iterable while updating and rendering progress.TN)	rl  rv  Ú	iteratingr¾  rw  rP  rQ  r;  r©  )r7   rl  Úobjs   &  r+   r›  ÚProgressBar.__iter__‘  sa   é € ð —=‘=ˆãˆCà—?—?�?Ø!%�”à�I‰IŒKà× Ñ ¤J§O¡OÔ3Ø—	‘	”àŒIñ ð 	�
‰
ŒÙùs   ‚BBc                ó  € V P                   '       d   R# V P                  4       ^ 8”  d@   V P                  e    V P                  4       V P                  8w  d   V P                  RR7       RV n         V P	                  4        R# )zAEmit a final frame if needed, then detach the bar from rendering.NT)r  )r‚  r  r‹  r;  r  r¦  s   &r+   r©  ÚProgressBar.close¥  s\   € ð �;�;ˆ;Ùð �9‰9‹;˜Œ? × 6Ñ 6Ò >À$Ç)Á)Ã+ÐQU×QgÑQgÔBgØ�I‰I˜DˆIÔ!àˆŒØ�‰Žr*   )#r“  r’  r4   rv  r‹  r”  r•  r–  rŠ  r‘  rw  r€  r�  r|  r  r}  r~  rx  r‰  rˆ  r{  ry  rz  r…  r‚  r†  rl  rÁ  r„  rƒ  r‡  r�  r�  rW  rX  rL  rn  )r—   Nr  )FF)FFNN)F)r}   NNTNN):r  r  r  r  r  ÚclassmethodrZ  r^  rd  rh  rF  rž  r£  r§  r?   r²  ro  r½   rj  r´   rË  rÅ  r›  r¡  rÛ  rß  râ  r6   r   r  r  r  r!  r+  r/  r;  rH  r)  rY  ro  rp  r°  r’  r–  rž  r¡  rå  ræ  r¯  Úpropertyr³  r·  r  r¾  r›  r©  r  r	  r
  s   @r+   rT  rT  ö  sû  ø‡ € ÙQà÷&ó ð&ð
 ÷'ó ð'ð
 ÷ó ðð ÷;ó ð;ñ?*ð
 *.÷?*ó ?*÷BSð S÷\ð \òð ÷ó ðð$ ÷"ñ "ó ð"ð ÷"ó ð"ð ÷"ó ð"ð ÷"ñ "ó ð"ð8 ÷ "ñ  "ó ð "ðD ÷"ñ "ó ð"ð$ ÷"ó ð"ð< ÷"ó ð"ð, ÷"ó ð"ð ñ"ó ð"ð ñ"ó ð"ò"*÷H(ð (ðT ÷ñ ó ðð@ ñ)ó ð)÷Vð ÷
Jò J÷&ò ÷*	
ò 	
ð ÷4ñ 4ó ð4ôl1ñRð 7;ð	Rð
 )-÷Ró R÷hJò J÷X(ð (÷T*ð *÷
Qò Qò&#ò/ð ñ%ó ð%ð ñSó ðSòòMòð ñ2ó ð2ò
÷
&ð &ð
 ñó ðòð( ñó ör*   rT  c                   óh  a a€ ] tR tRt oRtR#RRRRR^/V3R lV 3R	 llllt]R#V3R
 lV 3R lll4       t]V 3R l4       t]R 4       t	]V3R lR l4       t
V3R lR ltV3R lR lt]V3R lV 3R ll4       tR$V3R lR lltV3R lR ltR#RRRR/V3R lR llltRR/V3R  lR! lltR"tVtV ;t# )%ÚRollingProgressBari·  z:Indeterminate progress indicator with a rolling highlight.Nrj  r½  g      à?Útail_lengthc                óP   <€ V ^8„  d   QhRS[ R,          RS[ S[,          RS[RS[/# )rD   rm  rn  rj  r½  rÊ  )r   r\   r­  )rH   r�   s   "€r+   rI   ÚRollingProgressBar.__annotate__º  s<   ø€ ÷ ,ñ ,á˜Õ%ð,ñ "¡#�ð	,ñ
 ð,ñ ñ,r*   c               óè   <€ \         ST `  ^TVf   \        4       MTR7       \        R\	        V4      4      V n        \        ^\        V4      4      V n        ^ V n        ^ V n	        RV n
        RV n        R# )z3Create an indeterminate spinner-style progress bar.N)rl  rm  rj  gš™™™™™©?Fru  )rE  rF  rg   r`   r­  Ú	_intervalr\   Ú_tail_lengthÚ_phaseÚ_pending_spinner_stepsr�  Ú_next_spinner_refresh_at)r7   rm  rj  r½  rÊ  rC  s   &&$$$€r+   rF  ÚRollingProgressBar.__init__º  ss   ø€ ô 	‰ÑØØà3BÒ3JÔ-Ô/ÐP_ð	 	ô 	
ô ˜T¤5¨£?Ó3ˆŒÜ ¤3 {Ó#3Ó4ˆÔØˆŒØ&'ˆÔ#Ø"'ˆÔØ(+ˆÖ%r*   c                ó.   <€ V ^8„  d   QhRS[ R,          /# r  r  )rH   r�   s   "€r+   rI   rÌ  Ö  s   ø€ ÷ ñ ™X lÕ3ñ r*   c                ó|   <€ \         SV `  V4       \        P                  ! 4       V P                  ,           V n        V # )z2Attach and seed the next spinner refresh deadline.)rE  r  r‡  Ú	monotonicrÎ  rÒ  )r7   rÒ  rC  s   &&€r+   r  ÚRollingProgressBar.attachÕ  s.   ø€ ô 	‰‰�vÔÜ(,¯ªÓ(8¸4¿>¹>Õ(IˆÔ%Øˆr*   c                ó.   <€ RV n         \        SV `	  4       # )z6Detach and clear any pending spinner refresh deadline.ru  )rÒ  rE  r  )r7   rC  s   &€r+   r  ÚRollingProgressBar.detachÝ  s   ø€ ð ),ˆÔ%Ü‰w‰~ÓÐr*   c                ó\   € V P                   '       d   R# RV n         V P                  4        R# )z7Stop the spinner without forcing a terminal 100% frame.NT)r‚  r  r¦  s   &r+   r©  ÚRollingProgressBar.closeä  s    € ð �;�;ˆ;ÙàˆŒØ�‰Žr*   c                ó   <€ V ^8„  d   QhRR/# )rD   rE   rÉ  r)   )rH   r�   s   "€r+   rI   rÌ  ï  s   ø€ ÷ ñ Ð+ñ r*   c                óœ   € V P                  4        \        P                  ! 4       V P                  ,           V n        V P                  4        V # )z<Advance the animation a single frame and redraw immediately.)Ú_advance_phaser‡  rÖ  rÎ  rÒ  r;  r¦  s   &r+   ÚpulseÚRollingProgressBar.pulseî  s6   € ð 	×ÑÔÜ(,¯ªÓ(8¸4¿>¹>Õ(IˆÔ%Ø�	‰	ŒØˆr*   c                ó   <€ V ^8„  d   QhRR/# ró  r)   )rH   r�   s   "€r+   rI   rÌ  ÷  s   ø€ ÷ ñ  dñ r*   c                ó   € R# ©z0Compatibility no-op kept for older spinner APIs.Nr)   r¦  s   &r+   Ú_ensure_auto_updatesÚ'RollingProgressBar._ensure_auto_updates÷  ó   € ñ r*   c                ó   <€ V ^8„  d   QhRR/# ró  r)   )rH   r�   s   "€r+   rI   rÌ  ü  s   ø€ ÷ ñ  Dñ r*   c                ó   € R# rã  r)   r¦  s   &r+   Ú_stop_auto_updatesÚ%RollingProgressBar._stop_auto_updatesü  ræ  r*   c                ó&   <€ V ^8„  d   QhRS[ RS[/# rª  r¬  )rH   r�   s   "€r+   rI   rÌ    s   ø€ ÷ ñ ©Eð ±dñ r*   c                óV  <€ \         SV `  V4      pV P                  '       d   V P                  '       d
   RV n        V# V P                  ^ 8:  d   WP
                  ,           V n        V# WP                  8  d   V# \        ^\        WP                  ,
          V P
                  ,          4      ^,           4      pWP
                  ,           V n        V ;P                  V,          un        V P                  V P                  8¼  d(   V P                  p^ V n        V P                  VR7       R# V# )z?Advance spinner animation when its wall-clock interval elapses.ru  )ÚstepsT)rE  r²  r“  r‚  rÒ  rÎ  r`   r\   rÑ  rŠ  rÞ  )r7   r«  Úchangedrí  ÚadvancerC  s   &&   €r+   r²  Ú+RollingProgressBar._tick_background_refresh  sð   ø€ ô ‘'Ñ2°3Ó7ˆà�~�~ˆ~ §§ Ø,/ˆDÔ)ØˆNà×(Ñ(¨AÔ-Ø,/·.±.Õ,@ˆDÔ)ØˆNà×.Ñ.Ô.ØˆNä�A”s˜C×"?Ñ"?Õ?ÀDÇNÁNÕRÓSÐVWÕWÓXˆà(+¯n©nÕ(<ˆÔ%ð 	×#Ò# uÕ,Õ#Ø×&Ñ&¨$×*?Ñ*?Ô?Ø×1Ñ1ˆGØ*+ˆDÔ'Ø×Ñ gÐÔ.Ùàˆr*   c                ó$   <€ V ^8„  d   QhRS[ RR/# )rD   rí  rE   Nrd   )rH   r�   s   "€r+   rI   rÌ  !  s   ø€ ÷ Eñ E¡Cð E°ñ Er*   c                ój   € V P                   \        ^\        V4      4      ,           R,          V n         R# )z4Move the spinner head forward by one or more frames.i@B N)rÐ  r`   r\   )r7   rí  s   &&r+   rÞ  Ú!RollingProgressBar._advance_phase!  s$   € ð —{‘{¤S¨¬C°«JÓ%7Õ7¸9ÕDˆŽr*   c                ó    <€ V ^8„  d   QhRS[ /# rC   rd   )rH   r�   s   "€r+   rI   rÌ  &  r  r*   c                ó   € V P                   # )z@Use animation phase instead of step count for redraw throttling.)rÐ  r¦  s   &r+   r  Ú#RollingProgressBar._render_position&  s   € ð �{‰{Ðr*   r%  r&  c                ób   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          RS[ S[,          RS[/# rK  rL  )rH   r�   s   "€r+   rI   rÌ  +  sA   ø€ ÷ 3(ñ 3(á™#•ð3(ñ  Ñ 2Õ3ð	3(ñ
  ¡•~ð3(ñ 
ñ3(r*   c               ón  € V P                  V4      pVf   VP                  pVf   VP                  M
\        V4      p\	        ^ \        \        P                  ! 4       V P                  ,
          4      4      p\        \        P                  ! VR7      4      pRV 2P                  4       p^ pV P                  '       d   W€P                  ^,           ,          pV P                  '       d   W€P                  ^,           ,          pV P                  V P                   ,           p	Ve
   V^ 8”  d   TM^ p
\#        V4      pV
'       d!   \	        ^ W¨,
          V,
          ^,
          4      M^ pWÀn        V P'                  VVR7      w  rÞV P)                  VVVV	VVV P+                  VVR7      R7      V n        V P,                  # )zABuild one spinner snapshot using elapsed time instead of percent.r>  zelapsed )r7  r(  )rQ  rR  rS  rT  r$  r7  rU  )r/  r$  r7  rG   r`   r\   r‡  rT   r@  rA  rU   rx  rƒ  r|  r„  r{  r  rŒ   r…  Ú_render_animationrY  r°  r”  )r7   r$  r%  r&  r7  Úelapsed_secondsr|  rS  r]  r`  ra  rb  r…  rQ  rR  s   &&$$           r+   r)  Ú#RollingProgressBar._render_snapshot+  sŽ  € ð ×2Ñ2°=ÓAˆØŠ?Ø#×+Ñ+ˆGØ=JÒ=R˜=×9Ò9ÔX\Ð]jÓXkÐä˜a¤¤T§Y¢Y£[°4·9±9Õ%<Ó!=Ó>ˆÜ”h×(Ò(°ÔAÓBˆØ˜g˜YÐ'×-Ñ-Ó/ˆàˆà�;�;ˆ;Ø×.Ñ.°Õ2Õ2ˆLØ�>�>ˆ>Ø×1Ñ1°AÕ5Õ5ˆLà×%Ñ%¨×(>Ñ(>Õ>ˆà'.Ò':¸wÈ¼{™GÐPQÐä˜X›ˆßVg”S˜Ð-Õ<¸~ÕMÐPQÕQÔRÐmnˆ
Ø$Œà"&×"8Ñ"8ØØ-ð #9ó #
Ñˆ	ð
 $(×#4Ñ#4ØØ%ØØ#ØØ-Ø×4Ñ4Ø+Ø.ð 5ó ð $5ó $
ˆÔ ð ×'Ñ'Ð'r*   r7  Tc                óB   <€ V ^8„  d   QhRS[ RS[RS[S[S[3,          /# )rD   r…  r7  rE   )r\   rG   r°   rT   )rH   r�   s   "€r+   rI   rÌ  `  s4   ø€ ÷ A,ñ A,©Cð A,Ádð A,ÑV[Ñ\_ÑadÐ\dÕVeñ A,r*   c               ó0  € V^ 8:  d   R# V P                   P                  ;'       g    RpV P                   P                  ;'       g    RpV P                   P                  ;'       g    Tp\	        V P
                  V4      pV^ 8:  d   ^pTpV'       d   V P                  V,          M^ p/ p	\        V4       F  p
WŠ,
          V,          pW¹9  g   K  W©V&   K   	  V.V,          pV	P                  4        F  w  rºV
^ 8X  d   TMTWË&   K  	  RP                  V4      pV'       dU   V P                   P                  '       g<   V P                   P                  '       g    V P                   P                  '       g   WÝ3# . pRp\        V4       EF]  w  ppRpV	P                  V4      p
V
e¾   V
^ 8X  d4   V P                   P                  '       d   V P                   P                  pMµV P                   P                  pV'       de   V P                   P                  '       d.   \!        V4      ^8”  d   \	        V
\!        V4      ^,
          4      pMV\!        V4      ,          pVV,          pM2V P                   P                  '       d   V P                   P                  pVV8w  d9   V'       d   VP#                  \$        4       V'       d   VP#                  V4       TpVP#                  V4       EK`  	  V'       d   VP#                  \$        4       VRP                  V4      3# )z>Render the rolling head and trailing tail for the spinner bar.r}   r—   r�  N)r}   r}   )r€  r    r¨   rÂ   rw   rÏ  rÐ  rå   Úitemsræ   r¹   r·   rº   Ú	enumeraterS   r¶   rŒ   rä   r   )r7   r…  r7  r    r¨   rÂ   ÚtailrØ   Úphase_indexÚactiveÚoffsetrò   Úplain_charsrQ  rç   Úcurrent_colorr›   rz   rê   rü   s   &&$                 r+   rù  Ú$RollingProgressBar._render_animation`  sc  € ð ˜Œ?ØˆMà—K‘K×)Ñ)×2Ð2¨Uˆ	Ø—[‘[×+Ñ+×2Ð2¨sˆ
Ø—K‘K×)Ñ)×6Ð6¨Yˆ	ä�4×$Ñ$ jÓ1ˆØ�1Œ9ØˆDàˆß-2�d—k‘k EÖ)¸ˆà!#ˆÜ˜D–kˆFØÕ'¨5Õ0ˆCØÖ Ø$�s“ñ "ð
 "�l UÕ*ˆØ!Ÿ<™<ž>‰KˆCØ,2°a¬K™y¸YˆKÓñ *ð —G‘G˜KÓ(ˆ	ç¨¯©×(?×(?Ð(?À4Ç;Á;×CY×CYÐCYÐ]a×]hÑ]h×]t×]tÐ]tØÐ'Ð'à ˆØ'+ˆä" ;×/‰IˆC�ØˆEØ—Z‘Z “_ˆFàÒ!Ø˜Q”; 4§;¡;×#9×#9Ð#9Ø ŸK™K×2Ñ2‘Eà"Ÿk™k×5Ñ5�GßØŸ;™;×/×/Ð/´C¸³LÀ1Ô4DÜ,/°¼¸G»ÀqÕ8HÓ,I™Mà,/´#°g³,Õ,>˜MØ '¨Õ 6˜øØ—‘×(×(Ð(ØŸ™×/Ñ/�à˜Ô%ß Ø—O‘O¤JÔ/ßØ—O‘O EÔ*Ø %�à�O‰O˜D×!ñ3 0÷6 Ø�O‰OœJÔ'à˜"Ÿ'™' (Ó+Ð+Ð+r*   )	rÎ  r”  rÒ  rÑ  rÐ  rÏ  r…  r‚  r�  rL  )é   )r  r  r  r  r  rF  r?   r  r  r©  rß  rä  ré  r²  rÞ  r  r)  rù  r  r	  rM  rN  s   @@r+   rÉ  rÉ  ·  s  ù‡ € ÙDñ,ð *.ð	,ð
 ð,ð ÷,ö ,ð6 ÷ô ó ðð ô ó ð ð ñó ðð ÷ó ð÷ð ÷
ð ð
 ÷ò ó ð÷>Eò E÷
ð ñ
3(ð 7;ð	3(ð
 )-÷3(ó 3(ðjA,ÈT÷ A,÷ A,ò A,r*   rÉ  )Sr@  rQ   r‰   rŒ  Ú	threadingr‡  Ú
contextlibr   r   Údataclassesr   r   Úenumr   Ú	functoolsr   r	   Útypingr
   r   r   r   r   Úwarningsr   r}   r   rõ  r   r   r   r   r   r   r   r   rn  Údrawingr   r   r   r   r   r   r   r    r!   r"   r#   Úterminalr$   r%   r&   Úutilr'   r  rÒ  r,   r1   r?   rY   rb   rg   rm   rt   rx   r“   r–   r*  r‡   ÚRLockr/  r1  rb  r2  r:  r>  ÚWarningr@  rT   rP  rT  rÉ  r)   r*   r+   Ú<module>r     s  ðó Û 	Û 	Û 
Û Û ß 2ß *Ý ß &ß EÕ EÝ å ÷	÷ 	ó 	÷ Ý,÷÷ ÷ ñ ÷ NÑ MÝ à	�Š‹€àñ
ó ð
ð $/Ð:Oô òñ �1ÔôIó ðIõñ �1Ôô^ó ð^õ õ.õ#õñ> �$Ô÷x+ð x+ó ðx+õvTðp ‰w�r˜3 Ó#Ø‰g�b˜#˜sÓ#Ø
‰G�C˜˜cÓ"Ø‰W�S‹\Ø‰W�S‹\Ø‰W�S‹\Ø
‰G�C‹LØ‘˜“Ø‰w�s‹|Ø‘˜“Ø
‰G�B‹KØ
‰G�C‹LØ‰g�b‹kØ‘˜“Ø
‰G�C‹LðÐ ð$ �oŠoÓ€Ù+Ó-Ð Ø$Ð õ(õ
oõ-ô	+˜ô 	+ô��dô ÷~ñ ~ôBj,˜ö j,r*   