PNG  IHDR* pHYs+ IDATx]n#; cdLb Ǚ[at¤_:uP}>!Usă cag޿ ֵNu`ݼTâabO7uL&y^wFٝA"l[|ŲHLN밪4*sG3|Dv}?+y߉{OuOAt4Jj.u]Gz*҉sP'VQKbA1u\`& Af;HWj hsO;ogTu uj7S3/QzUr&wS`M$X_L7r2;aE+ώ%vikDA:dR+%KzƉo>eOth$z%: :{WwaQ:wz%4foɹE[9<]#ERINƻv溂E%P1i01 |Jvҗ&{b?9g=^wζXn/lK::90KwrюO\!ջ3uzuGv^;騢wq<Iatv09:tt~hEG`v;3@MNZD.1]L:{ծI3`L(÷ba")Y.iljCɄae#I"1 `3*Bdz>j<fU40⨬%O$3cGt]j%Fߠ_twJ;ABU8vP3uEԑwQ V:h%))LfraqX-ۿX]v-\9I gl8tzX ]ecm)-cgʒ#Uw=Wlێn(0hPP/ӨtQ“&J35 $=]r1{tLuǮ*i0_;NƝ8;-vݏr8+U-kruȕYr0RnC]*ެ(M:]gE;{]tg(#ZJ9y>utRDRMdr9㪩̞zֹb<ģ&wzJM"iI( .ꮅX)Qw:9,i좜\Ԛi7&N0:asϓc];=ΗOӣ APqz93 y $)A*kVHZwBƺnWNaby>XMN*45~ղM6Nvm;A=jֲ.~1}(9`KJ/V F9[=`~[;sRuk]rєT!)iQO)Y$V ی ۤmzWz5IM Zb )ˆC`6 rRa}qNmUfDsWuˤV{ Pݝ'=Kֳbg,UҘVz2ﴻnjNgBb{? ߮tcsͻQuxVCIY۠:(V뺕 ٥2;t`@Fo{Z9`;]wMzU~%UA蛚dI vGq\r82iu +St`cR.6U/M9IENDB`3 \@szdZdddgZddlZddlZdddZdddZejje_ejje_Gd ddejZd d Z d d Z e dkrve dS)zUPython interface for the 'lsprof' profiler. Compatible with the 'profile' module. runrunctxProfileNcCstjtj|||S)N) _pyprofile_Utilsrr) statementfilenamesortr /usr/lib64/python3.6/cProfile.pyrscCstjtj|||||S)N)rrrr)rglobalslocalsr r r r r rsc@sJeZdZdZdddZddZddZd d Zd d Zd dZ ddZ dS)ra`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). rcCs$ddl}|j|jj|jdS)Nr)pstatsStatsZ strip_dirsZ sort_stats print_stats)selfr rr r r r(szProfile.print_statsc Cs8ddl}t|d}|j|j|j|WdQRXdS)Nrwb)marshalopen create_statsdumpstats)rfilerfr r r dump_stats,s zProfile.dump_statscCs|j|jdS)N)disablesnapshot_stats)rr r r r2szProfile.create_statsc Cs6|j}i|_i}xX|D]P}t|j}|j}||j}|j}|j}i} | |t|j<||||| f|j|<qWx|D]}|j rrt|j}x|j D]} y|t| j} Wnt k rwYnX| j}|| j}| j}| j}|| kr| |} || d7}|| d7}|| d7}|| d7}||||f| |<qWqrWdS)Nrr) ZgetstatsrlabelcodeZ callcountZ reccallcountZ inlinetimeZ totaltimeidZcallsKeyError) rZentriesZ callersdictsentryfuncZncZccZttZctZcallersZsubentryprevr r r r6s>            zProfile.snapshot_statscCsddl}|j}|j|||S)Nr)__main____dict__r)rcmdr'dictr r r r\sz Profile.runc Cs(|jzt|||Wd|jX|S)N)enableexecr)rr)r rr r r ras  zProfile.runctxc Os"|jz |||S|jXdS)N)r+r)rr%argskwr r r runcalljs zProfile.runcallN)r0) __name__ __module__ __qualname____doc__rrrrrrr/r r r r rs & cCs(t|trdd|fS|j|j|jfSdS)N~r) isinstancestr co_filenameco_firstlinenoco_name)r!r r r r ss  r c Cs&ddl}ddl}ddl}ddlm}d}||d}d|_|jdddd dd |jd d d ddt|jj d|j dds|j |j d|j \}}||j dd<t|dkr|d}|jjd|jj|t|d} t| j|d} WdQRX|dddd} t| | d|j|jn|j |S)Nr) OptionParserz@cProfile.py [-o output_file_path] [-s sort] scriptfile [arg] ...)usageFz-oz --outfileoutfilezSave stats to )desthelpdefaultz-sz--sortr z?Sort order when printing to stdout, based on pstats.Stats classr)r>r?r@choicesrrbr,r')__file__r1 __package__ __cached__r0)ossysrZoptparser;Zallow_interspersed_argsZ add_optionsortedrZsort_arg_dict_defaultargvZ print_usageexit parse_argslenpathinsertdirnamercompilereadrr=r ) rFrGrr;r<parserZoptionsr-Zprognamefpr!Zglobsr r r main{s8        rTr'r0)Nr0r0)Nr0) r4__all__Z_lsprofZprofilerrrZProfilerrr rTr1r r r r s     X%