§
    (¶Õi¾  ã                   óÌ   — d Z g d¢ZddlZddlZdd„Zdd„Zej        j         e_         ej        j         e_          G d„ dej        ¦  «        Zd	„ Z	d
„ Z
edk    r e
¦   «          dS dS )zUPython interface for the 'lsprof' profiler.
   Compatible with the 'profile' module.
)ÚrunÚrunctxÚProfileé    Néÿÿÿÿc                 ó^   — t          j        t          ¦  «                             | ||¦  «        S ©N)Ú
_pyprofileÚ_Utilsr   r   )Ú	statementÚfilenameÚsorts      ú/usr/lib/python3.11/cProfile.pyr   r      s%   € ÝÔ�WÑ%Ô%×)Ò)¨)°X¸tÑDÔDÐDó    c                 ób   — t          j        t          ¦  «                             | ||||¦  «        S r   )r	   r
   r   r   )r   ÚglobalsÚlocalsr   r   s        r   r   r      s0   € ÝÔ�WÑ%Ô%×,Ò,¨Y¸ÀØ-5°tñ=ô =ð =r   c                   óJ   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ ZdS )r   a`  Profile(timer=None, timeunit=None, subcalls=True, builtins=True)

    Builds a profiler object using the specified timer function.
    The default timer is a fast built-in one based on real time.
    For custom timer functions returning integers, timeunit can
    be a float specifying a scale (i.e. how long each integer unit
    is, in seconds).
    r   c                 ó¦   — dd l }|                     | ¦  «                             ¦   «                              |¦  «                             ¦   «          d S ©Nr   )ÚpstatsÚStatsÚ
strip_dirsÚ
sort_statsÚprint_stats)Úselfr   r   s      r   r   zProfile.print_stats(   sI   € ØˆˆˆØ�Š�TÑÔ×%Ò%Ñ'Ô'×2Ò2°4Ñ8Ô8×DÒDÑFÔFÐFÐFÐFr   c                 ó¾   — dd l }t          |d¦  «        5 }|                      ¦   «          |                     | j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   Úwb)ÚmarshalÚopenÚcreate_statsÚdumpÚstats)r   Úfiler   Úfs       r   Ú
dump_statszProfile.dump_stats,   s¤   € ØˆˆˆÝ�$˜ÑÔð 	( Ø×ÒÑÔÐØ�LŠL˜œ QÑ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s   •0AÁAÁAc                 óV   — |                       ¦   «          |                      ¦   «          d S r   )ÚdisableÚsnapshot_stats©r   s    r   r    zProfile.create_stats2   s'   € Ø�Š‰ŒˆØ×ÒÑÔÐÐÐr   c                 ól  — |                       ¦   «         }i | _        i }|D ]]}t          |j        ¦  «        }|j        }||j        z
  }|j        }|j        }i }	|	|t          |j        ¦  «        <   |||||	f| j        |<   Œ^|D ]³}|j	        rªt          |j        ¦  «        }|j	        D ]Ž}
	 |t          |
j        ¦  «                 }	n# t          $ r Y Œ*w xY w|
j        }||
j        z
  }|
j        }|
j        }||	v r4|	|         }||d         z  }||d         z  }||d         z  }||d         z  }||||f|	|<   Œ�Œ´d S )Nr   é   é   é   )Úgetstatsr"   ÚlabelÚcodeÚ	callcountÚreccallcountÚ
inlinetimeÚ	totaltimeÚidÚcallsÚKeyError)r   ÚentriesÚcallersdictsÚentryÚfuncÚncÚccÚttÚctÚcallersÚsubentryÚprevs               r   r(   zProfile.snapshot_stats6   sŠ  € Ø—-’-‘/”/ˆØˆŒ
Øˆàð 	7ð 	7ˆEÝ˜œÑ$Ô$ˆDØ”ˆBØ�eÔ(Ñ(ˆBØÔ!ˆBØ”ˆBØˆGØ+2ˆL�˜EœJ™œÑ(Ø! 2 r¨2¨wÐ6ˆDŒJ�tÑÐàð 	3ð 	3ˆEØŒ{ð 3Ý˜UœZÑ(Ô(�Ø %¤ð 3ð 3�Hð!Ø".­r°(´-Ñ/@Ô/@Ô"A˜˜øÝ#ð !ð !ð !Ø ˜ð!øøøà!Ô+�BØ˜hÔ3Ñ3�BØ!Ô,�BØ!Ô+�BØ˜w��Ø& tœ}˜Ø˜d 1œg™˜Ø˜d 1œg™˜Ø˜d 1œg™˜Ø˜d 1œg™˜Ø$&¨¨B° N�G˜D‘M�Møð%	3ð 	3s   Â'CÃ
CÃCc                 óF   — dd l }|j        }|                      |||¦  «        S r   )Ú__main__Ú__dict__r   )r   ÚcmdrD   Údicts       r   r   zProfile.run\   s)   € ØˆˆˆØÔ ˆØ�{Š{˜3  dÑ+Ô+Ð+r   c                 ó®   — |                       ¦   «          	 t          |||¦  «         |                      ¦   «          n# |                      ¦   «          w xY w| S r   )ÚenableÚexecr'   )r   rF   r   r   s       r   r   zProfile.runctxa   sL   € Ø�Š‰Œˆð	Ý��g˜vÑ&Ô&Ð&à�LŠL‰NŒNˆNˆNøˆD�LŠL‰NŒNˆNˆNøøøØˆs	   –< ¼Ac                ó–   — |                       ¦   «          	  ||i |¤Ž|                      ¦   «          S # |                      ¦   «          w xY wr   )rI   r'   )r   r;   ÚargsÚkws       r   ÚruncallzProfile.runcallj   sG   € Ø�Š‰Œˆð	Ø�4˜Ð$ Ð$Ð$à�LŠL‰NŒNˆNˆNøˆD�LŠL‰NŒNˆNˆNøøøs	   –2 ²Ac                 ó.   — |                       ¦   «          | S r   )rI   r)   s    r   Ú	__enter__zProfile.__enter__q   s   € Ø�Š‰ŒˆØˆr   c                 ó.   — |                       ¦   «          d S r   )r'   )r   Úexc_infos     r   Ú__exit__zProfile.__exit__u   s   € Ø�Š‰Œˆˆˆr   N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r%   r    r(   r   r   rN   rP   rS   © r   r   r   r      s¯   € € € € € ðð ðGð Gð Gð Gð(ð (ð (ðð ð ð!3ð !3ð !3ðL,ð ,ð ,ð
ð ð ðð ð ðð ð ðð ð ð ð r   r   c                 ó^   — t          | t          ¦  «        rdd| fS | j        | j        | j        fS )Nú~r   )Ú
isinstanceÚstrÚco_filenameÚco_firstlinenoÚco_name)r0   s    r   r/   r/   z   s6   € Ý�$�ÑÔð EØ�Q˜ˆ~ÐàÔ  $Ô"5°t´|ÐDÐDr   c            
      ó~  — dd l } dd l}dd l}dd l}ddlm} d} ||¬¦  «        }d|_        |                     dddd	d ¬
¦  «         |                     dddddt          |j	        j
        ¦  «        ¬¦  «         |                     ddddd¬¦  «         |j        dd …         s)|                     ¦   «          |                     d¦  «         |                     ¦   «         \  }}||j        d d …<   |j        �$| j                             |j        ¦  «        |_        t%          |¦  «        dk    rþ|j        rd}	|j        |d         dœ}
n�|d         }|j                             d| j                             |¦  «        ¦  «         t/          |d¦  «        5 }t1          |                     ¦   «         |d¦  «        }	d d d ¦  «         n# 1 swxY w Y   |dd d dœ}
	 t5          |	|
d |j        |j        ¦  «         nL# t8          $ r+}d |_        |                     |j        ¦  «         Y d }~nd }~ww xY w|                     ¦   «          |S )Nr   )ÚOptionParserzNcProfile.py [-o output_file_path] [-s sort] [-m module | scriptfile] [arg] ...)ÚusageFz-oz	--outfileÚoutfilezSave stats to <outfile>)ÚdestÚhelpÚdefaultz-sz--sortr   z?Sort order when printing to stdout, based on pstats.Stats classr,   )rd   re   rf   Úchoicesz-mÚmoduleÚ
store_truezProfile a library module)rd   Úactionre   rf   r+   z(run_module(modname, run_name='__main__'))Ú
run_moduleÚmodnameÚrbrJ   rD   )Ú__file__rT   Ú__package__Ú
__cached__)ÚosÚsysÚrunpyr   Úoptparsera   Úallow_interspersed_argsÚ
add_optionÚsortedr   Úsort_arg_dict_defaultÚargvÚprint_usageÚexitÚ
parse_argsrc   ÚpathÚabspathÚlenrh   rk   ÚinsertÚdirnamer   ÚcompileÚreadr   r   ÚBrokenPipeErrorÚstdoutÚerrno)rq   rr   rs   r   ra   rb   ÚparserÚoptionsrL   r0   ÚglobsÚprognameÚfpÚexcs                 r   Úmainr�   ‚   sÝ  € Ø€I€I€IØ€J€J€JØ€L€L€LØ€M€M€MØ%Ð%Ð%Ð%Ð%Ð%Ø\€EØˆ\ Ð&Ñ&Ô&€FØ%*€FÔ"Ø
×Ò�d˜K¨iØ&°ð ñ 6ô 6ð 6à
×Ò�d˜H¨6ØNØÝ�v”|Ô9Ñ:Ô:ð ñ <ô <ð <ð ×Ò�d °,Ø'°ð ñ 8ô 8ð 8ð Œ8�A�B�BŒ<ð Ø×ÒÑÔÐØ�Š�‰Œˆà×'Ò'Ñ)Ô)�O€WˆdØ€C„HˆQˆQˆQ�Kð „Ð"Øœ'Ÿ/š/¨'¬/Ñ:Ô:ˆŒå
ˆ4�y„y�1‚}€}ØŒ>ð 	Ø=ˆDà#Ô.Ø œ7ðð ˆEˆEð
 ˜A”wˆHØŒH�OŠO˜A˜rœwŸš¨xÑ8Ô8Ñ9Ô9Ð9Ý�h Ñ%Ô%ð <¨Ý˜rŸwšw™yœy¨(°FÑ;Ô;�ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð %Ø&Ø#Ø"ð	ð ˆEð	 Ý�4˜  g¤o°w´|ÑDÔDÐDÐDøÝð 	 ð 	 ð 	 àˆCŒJØ�HŠH�S”YÑÔÐÐÐÐÐÐøøøøð	 øøøð
 	×ÒÑÔÐØ€Ms*   Æ$G Ç GÇGÇG1 Ç1
H&Ç;!H!È!H&rD   )Nr   )rW   Ú__all__Ú_lsprofÚprofiler	   r   r   ÚProfilerr   r/   r�   rT   rX   r   r   ú<module>r’      sô   ððð ð 'Ð
&Ð
&€à €€€Ø Ð Ð Ð ð
Eð Eð Eð Eð=ð =ð =ð =ð ŒnÔ$€„ØÔ"Ô*€„ð[ð [ð [ð [ð [ˆgÔñ [ô [ð [ð~Eð Eð Eð8ð 8ð 8ðv ˆzÒÐØ€D�F„F€F€F€Fð Ðr   