ó
    øùgXa  ã                   ó¨  • S r SSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSKJ	r	  SSK
Jr  SSK
Jr  SSK
Jr  SS	K
Jr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  / SQr\R<                  " 5       r\R@                  r \RB                  S:„  r"Sr#Sr$\RJ                  \RL                  \RN                  \RP                  \RR                  \RT                  \RV                  \RX                  \RZ                  \R\                  \R^                  \RP                  \R`                  \Rb                  0r2\Rf                  \Rh                  \Rj                  \Rl                  \Rn                  \Rp                  \Rr                  \Rt                  \Rv                  \Rx                  \Rz                  \R|                  \R~                  \R€                  \R‚                  \R„                  \R†                  \Rˆ                  \RŠ                  \RŒ                  \RŽ                  \R�                  \R’                  \R”                  \R–                  \#\R˜                  \$0rM\N" SSSSSSSSS S!S"S#S$9rO\" S%/ S&Q5      rP\" S'/ S(Q5      rQ\" S)/ S*Q5      rR\" S+S,S-/5      rS\SrT\" S./ S/Q5      rU\" S0S1S2R­                  \UR®                  5      -   5      rXS3 rYS4 rZS5 r[S6 r\S7 r]S8 r^S9 r_\RÀ                  r`\RÂ                  raSDS: jrb\RÆ                  rc\RÈ                  rdSES; jreS< rfS= rgS> rhS? riS@ rjSA rk " SB SC5      rlg)Fz'Sun OS Solaris platform implementation.é    N)Ú
namedtuple)ÚAF_INETé   )Ú_common)Ú_psposix)Ú_psutil_posix)Ú_psutil_sunos)ÚAF_INET6)ÚENCODING)ÚAccessDenied)ÚNoSuchProcess)ÚZombieProcess)Údebug)Úget_procfs_path)Úisfile_strict)Úmemoize_when_activated)Úsockfam_to_enum)Úsocktype_to_enum)Úusage_percent)Ú	CONN_IDLEÚ
CONN_BOUNDÚPROCFS_PATHl        ÚIDLEÚBOUNDé   é   é   é   é   é   é   é	   é
   é   )ÚppidÚrssÚvmsÚcreate_timeÚniceÚnum_threadsÚstatusÚttynrÚuidÚeuidÚgidÚegidÚ	scputimes)ÚuserÚsystemÚidleÚiowaitÚ	pcputimes)r2   r3   Úchildren_userÚchildren_systemÚsvmem)ÚtotalÚ	availableÚpercentÚusedÚfreeÚpmemr&   r'   Úpmmap_grouped)Úpathr&   Ú	anonymousÚlockedÚ	pmmap_extzaddr perms Ú c                  ó®   • [         R                  " S5      [        -  n [         R                  " S5      [        -  =pX-
  n[        X0SS9n[	        XXCU5      $ )zReport virtual memory metrics.ÚSC_PHYS_PAGESÚSC_AVPHYS_PAGESr   ©Úround_)ÚosÚsysconfÚ	PAGE_SIZEr   r9   )r:   r>   Úavailr=   r<   s        Ú1/usr/lib/python3/dist-packages/psutil/_pssunos.pyÚvirtual_memoryrP   {   sP   € ô �JŠJ�Ó'¬)Ñ3€Eä—:’:Ð/Ó0´9Ñ<Ð<€DØ‰<€DÜ˜D°Ñ2€GÜ�˜w¨dÓ3Ð3ó    c            	      óö  • [         R                  " 5       u  p[        R                  " SS[        R
                  S    3SS/[        R                  S9nUR                  5       u  p4UR                  [        R                  R                  5      nUR                  S:w  a  SUR                   S	3n[        U5      eUR                  5       R                  S
5      SS nU(       d  Sn[        U5      eS=pxU HN  n	U	R                  5       n	U	SS u  p«U[!        [!        U
5      S-  5      -  nU[!        [!        U5      S-  5      -  nMP     Xx-
  n[#        XÇSS9n[$        R&                  " X|X�U [(        -  U[(        -  5      $ )zReport swap memory metrics.z/usr/bin/envzPATH=/usr/sbin:/sbin:ÚPATHÚswapz-l)Ústdoutr   z'swap -l' failed (retcode=Ú)Ú
r   Nzno swap device(s) configuredr   r   i   rI   )ÚcextÚswap_memÚ
subprocessÚPopenrK   ÚenvironÚPIPEÚcommunicateÚdecodeÚsysrU   ÚencodingÚ
returncodeÚRuntimeErrorÚstripÚsplitÚintr   r   ÚsswaprM   )ÚsinÚsoutÚprU   Ú_ÚmsgÚlinesr:   r>   ÚlineÚtÚfr=   r<   s                 rO   Úswap_memoryrq   †   s\  € ä—’“�I€Cô 	×ÒàØ#¤B§J¡J¨vÑ$6Ð#7Ð8ØØð		
ô �‰ñ	€Að —‘“�I€FØ�]‰]œ3Ÿ:™:×.Ñ.Ó/€FØ‡|�|�qÓØ*¨1¯<©<¨.¸Ð:ˆÜ˜3ÓÐà�L‰L‹N× Ñ  Ó& q rÐ*€EÞØ,ˆÜ˜3ÓÐØÐ€EÛˆØ�z‰z‹|ˆØ�A�aˆy‰ˆØ””S˜“V˜c‘\Ó"Ñ"ˆØ””C˜“F˜S‘LÓ!Ñ!Šñ	 ð
 ‰<€DÜ˜D°Ñ2€GÜ�=Š=Ø�T C¬)¡O°T¼IÑ5Eóð rQ   c                  ó†   • [         R                  " 5       n [        [        U 6  Vs/ s H  n[	        U5      PM     sn6 $ s  snf )z.Return system-wide CPU times as a named tuple.)rX   Úper_cpu_timesr1   ÚzipÚsum©ÚretÚxs     rO   Ú	cpu_timesry   ´   s5   € ä
×
Ò
Ó
€CÜ¤s¨C¡yÓ1¢y !”s˜1–v¡yÑ1Ð2Ð2ùÒ1s   ¥>c                  óh   • [         R                  " 5       n U  Vs/ s H  n[        U6 PM     sn$ s  snf )z6Return system per-CPU times as a list of named tuples.)rX   rs   r1   rv   s     rO   rs   rs   º   s,   € ä
×
Ò
Ó
€CÙ#&Ó'¢3˜aŒI�q‹M¡3Ñ'Ð'ùÒ's   š/c                  óP   •  [         R                  " S5      $ ! [         a     gf = f)z0Return the number of logical CPUs in the system.ÚSC_NPROCESSORS_ONLNN)rK   rL   Ú
ValueError© rQ   rO   Úcpu_count_logicalr   À   s)   € ðÜ�zŠzÐ/Ó0Ð0øÜó áðús   ‚ ˜
%¤%c                  ó,   • [         R                  " 5       $ )z-Return the number of CPU cores in the system.)rX   Úcpu_count_coresr~   rQ   rO   r�   r�   É   s   € ä×ÒÓ!Ð!rQ   c                  ód   • [         R                  " 5       u  pp#Sn[        R                  " XXB5      $ )z*Return various CPU stats as a named tuple.r   )rX   Ú	cpu_statsr   Ú	scpustats)Úctx_switchesÚ
interruptsÚsyscallsÚ_trapsÚsoft_interruptss        rO   rƒ   rƒ   Î   s0   € ä15·²Ó1AÑ.€L˜hØ€OÜ×ÒØ /óð rQ   c                 óN  • / n[         R                  " 5       nU H]  nUu  pEpgUS:X  a  SnU (       d   [        U5      R                  (       d  M4   [        R                  " XEXg5      n	UR                  U	5        M_     U$ ! [         a  n[        SU< SU 35         SnAM…  SnAff = f)zReturn system disk partitions.ÚnoneÚ z	skipping z: N)	rX   Údisk_partitionsÚ
disk_usager:   ÚOSErrorr   r   Ú	sdiskpartÚappend)
ÚallÚretlistÚ
partitionsÚ	partitionÚdeviceÚ
mountpointÚfstypeÚoptsÚerrÚntuples
             rO   r�   r�   à   s§   € ð €GÜ×%Ò%Ó'€JÛˆ	Ø+4Ñ(ˆ˜FØ�VÓØˆFÞðÜ! *Ó-×3×3Ùð 4ô ×"Ò" 6°vÓDˆØ�‰�vÖñ!  ð" €Nøô ó ä˜	 *¡¨r°#°Ð7Ô8Ýûðús   ²A=Á=
B$ÂBÂB$c           
      ó  • [         R                  U    u  p#[        R                  " U5      n[	        5       nU HÄ  nUu  pxpšp¼nX‚;  a  M  X“;  a  M  U[
        [        1;   a4  U
(       a  [         R                  " U
6 n
U(       a  [         R                  " U6 n[        U   n[        U5      n[        U	5      n	US:X  a  [         R                  " XxXšX¼U5      nO[         R                  " XxXšX¼5      nUR                  U5        MÆ     [        U5      $ )z¯Return socket connections.  If pid == -1 return system-wide
connections (as opposed to connections opened by one process only).
Only INET sockets are returned (UNIX are not).
éÿÿÿÿ)r   Ú	conn_tmaprX   Únet_connectionsÚsetr   r
   ÚaddrÚTCP_STATUSESr   r   ÚsconnÚpconnÚaddÚlist)ÚkindÚ_pidÚfamiliesÚtypesÚrawlistrw   ÚitemÚfdÚfamÚtype_ÚladdrÚraddrr+   ÚpidÚnts                  rO   rŸ   rŸ     sè   € ô
 ×'Ñ'¨Ñ-�O€HÜ×"Ò" 4Ó(€GÜ
‹%€CÛˆØ48Ñ1ˆ�˜u¨cØÓÙØÓÙà”7œHÐ%Ó%ÞÜŸš eÐ,�ÞÜŸš eÐ,�Ü˜fÑ%ˆÜ˜cÓ"ˆÜ  Ó'ˆØ�2‹:Ü—’˜r¨°eÀSÓI‰Bä—’˜r¨°eÓDˆBØ�‰�Žñ' ô( �‹9ÐrQ   c                  óö   • [         R                  " 5       n U R                  5        HO  u  pUu  p4pV[        [        S5      (       a  [        R
                  " U5      n[        R                  " X4XVS5      X'   MQ     U $ )z)Get NIC stats (isup, duplex, speed, mtu).Ú	NicDuplexrŒ   )rX   Únet_if_statsÚitemsÚhasattrr   rµ   Ú	snicstats)rw   Únamer·   ÚisupÚduplexÚspeedÚmtus          rO   r¶   r¶   "  sf   € ä
×
Ò
Ó
€CØ—y‘y–{‰ˆØ#(Ñ ˆ�eÜ”7˜K×(Ñ(Ü×&Ò& vÓ.ˆFÜ×%Ò% d°EÀÓCˆ‹	ñ	 #ð
 €JrQ   c                  ó,   • [         R                  " 5       $ )z:The system boot time expressed in seconds since the epoch.)rX   Ú	boot_timer~   rQ   rO   rÀ   rÀ   2  s   € ä�>Š>ÓÐrQ   c                  óÈ   • / n [         R                  " 5       nSnU HB  nUu  pEpgp‰U(       d  M  Xb;   a  Sn[        R                  " XEXgU	5      n
U R	                  U
5        MD     U $ )z:Return currently connected users as a list of namedtuples.)z:0.0z:0Ú	localhost)rX   Úusersr   Úsuserr‘   )r“   r«   rÂ   r¬   r2   ÚttyÚhostnameÚtstampÚuser_processr²   r³   s              rO   rÃ   rÃ   7  se   € à€GÜ�jŠj‹l€GØ€IÛˆØ9=Ñ6ˆ�8 \ö ÙØÓ Ø"ˆHÜ�]Š]˜4 h¸Ó<ˆØ�‰�rÖñ ð €NrQ   c                  óÒ   • [        5       R                  [        5      n [        R                  " U 5       Vs/ s H$  oR                  5       (       d  M  [        U5      PM&     sn$ s  snf )z7Returns a list of PIDs currently running on the system.)r   Úencoder   rK   ÚlistdirÚisdigitrf   )rA   rx   s     rO   ÚpidsrÍ   O  sD   € äÓ×#Ñ#¤HÓ-€DÜŸJšJ tÔ,Ó<Ò,�q·	±	·‹FŒC�ŽFÑ,Ñ<Ð<ùÒ<s   ¶A$ÁA$c                 ó.   • [         R                  " U 5      $ )z&Check for the existence of a unix pid.)r   Ú
pid_exists)r²   s    rO   rÏ   rÏ   U  s   € ä×Ò˜sÓ#Ð#rQ   c                 óF   ^ • [         R                  " T 5      U 4S j5       nU$ )z{Call callable into a try/except clause and translate ENOENT,
EACCES and EPERM in NoSuchProcess or AccessDenied exceptions.
c                 óv  >• U R                   U R                  U R                  pTn T" U /UQ70 UD6$ ! [        [        4 a.  n[        U5      (       d  [        X55      Ue[        X5U5      UeS nAf[         a  n[        X55      UeS nAf[         a'  nUS:X  a  S[        5       ;   a  [        X55      Uee e S nAff = f©Nr   )r²   Ú_ppidÚ_nameÚFileNotFoundErrorÚProcessLookupErrorrÏ   r   r   ÚPermissionErrorr   r�   rÍ   )ÚselfÚargsÚkwargsr²   r%   rº   rš   Úfuns          €rO   ÚwrapperÚ wrap_exceptions.<locals>.wrapper_  s³   ø€ àŸ(™( D§J¡J°·
±
�4ˆð	Ù�tÐ-˜dÒ- fÑ-Ð-øÜ!Ô#5Ð6ó 	:ô ˜c—?‘?Ü# CÓ.°CÐ7Ü ¨4Ó0°cÐ9ûÜó 	3Ü˜sÓ)¨sÐ2ûÜó 	Ø�a‹xØœ›“;Ü& sÓ1°sÐ:ØØûð	ús-   ¦2 ²B8Á)A+Á+B8Á8BÂB8Â"B3Â3B8)Ú	functoolsÚwraps)rÛ   rÜ   s   ` rO   Úwrap_exceptionsrà   Z  s'   ø€ ô
 ‡_‚_�SÓôó ðð( €NrQ   c                   ó<  • \ rS rSrSr/ SQrS rS rS rS r	\
\S 5       5       r\
\S	 5       5       r\
\S
 5       5       r\
S 5       r\
S 5       r\
S 5       r\
S 5       r\
S 5       r\
S 5       r\
S 5       r\
S 5       r\
S 5       r\
S 5       r\
S 5       r\
S 5       r\
S 5       r\
S 5       r\
S 5       r\
S 5       r\r\
S 5       r \
S 5       r!\
S 5       r"S r#\
S)S j5       r$\%" S S!5      r&\%" S S"5      r'\
S# 5       r(\
S$ 5       r)\
S% 5       r*\
S*S' j5       r+S(r,g&)+ÚProcessiw  z1Wrapper class around underlying C implementation.)Ú_cacherÔ   rÓ   Ú_procfs_pathr²   c                 óJ   • Xl         S U l        S U l        [        5       U l        g ©N)r²   rÔ   rÓ   r   rä   )rØ   r²   s     rO   Ú__init__ÚProcess.__init__|  s    € ØŒØˆŒ
ØˆŒ
Ü+Ó-ˆÕrQ   c                 ób   • [         R                  " U R                   SU R                   35        g)z+Raise NSP if the process disappeared on us.Ú/N)rK   Ústaträ   r²   ©rØ   s    rO   Ú_assert_aliveÚProcess._assert_alive‚  s&   € ô 	�Š�4×$Ñ$Ð% Q t§x¡x jÐ1Õ2rQ   c                 ó¦   • U R                   R                  U 5        U R                  R                  U 5        U R                  R                  U 5        g ræ   )Ú_proc_name_and_argsÚcache_activateÚ_proc_basic_infoÚ
_proc_credrì   s    rO   Úoneshot_enterÚProcess.oneshot_enterˆ  s<   € Ø× Ñ ×/Ñ/°Ô5Ø×Ñ×,Ñ,¨TÔ2Ø�‰×&Ñ& tÕ,rQ   c                 ó¦   • U R                   R                  U 5        U R                  R                  U 5        U R                  R                  U 5        g ræ   )rð   Úcache_deactivaterò   ró   rì   s    rO   Úoneshot_exitÚProcess.oneshot_exit�  s<   € Ø× Ñ ×1Ñ1°$Ô7Ø×Ñ×.Ñ.¨tÔ4Ø�‰×(Ñ(¨Õ.rQ   c                 óX   • [         R                  " U R                  U R                  5      $ ræ   )rX   Úproc_name_and_argsr²   rä   rì   s    rO   rð   ÚProcess._proc_name_and_args’  s!   € ô ×&Ò& t§x¡x°×1BÑ1BÓCÐCrQ   c                 ó^  • U R                   S:X  aS  [        R                  R                  U R                   SU R                    S35      (       d  [        U R                   5      e[        R                  " U R                   U R                  5      n[        U5      [        [        5      :X  d   eU$ )Nr   rê   z/psinfo)
r²   rK   rA   Úexistsrä   r   rX   Úproc_basic_infoÚlenÚproc_info_map)rØ   rw   s     rO   rò   ÚProcess._proc_basic_info—  s‡   € ð �8‰8�q‹=¤§¡§¡Ø× Ñ Ð!  4§8¡8 *¨GÐ4÷"
ñ "
ô ˜tŸx™xÓ(Ð(Ü×"Ò" 4§8¡8¨T×->Ñ->Ó?ˆÜ�3‹xœ3œ}Ó-Ó-Ð-Ð-Øˆ
rQ   c                 óX   • [         R                  " U R                  U R                  5      $ ræ   )rX   Ú	proc_credr²   rä   rì   s    rO   ró   ÚProcess._proc_cred¢  s   € ô �~Š~˜dŸh™h¨×(9Ñ(9Ó:Ð:rQ   c                 ó(   • U R                  5       S   $ rÒ   )rð   rì   s    rO   rº   ÚProcess.name§  s   € ð ×'Ñ'Ó)¨!Ñ,Ð,rQ   c                 ó¦   •  [         R                  " U R                   SU R                   S35      $ ! [         a     Of = fU R                  5         g)Nrê   z/path/a.outrŒ   )rK   Úreadlinkrä   r²   r�   Úcmdlinerì   s    rO   ÚexeÚProcess.exe¬  sN   € ð	Ü—;’; $×"3Ñ"3Ð!4°A°d·h±h°Z¸{ÐKÓLÐLøÜó 	Ùð	úð
 	�‰ŒØs   ‚/2 ²
?¾?c                 óF   • U R                  5       S   R                  S5      $ )Nr   rE   )rð   re   rì   s    rO   r
  ÚProcess.cmdline¸  s!   € à×'Ñ'Ó)¨!Ñ,×2Ñ2°3Ó7Ð7rQ   c                 óX   • [         R                  " U R                  U R                  5      $ ræ   )rX   Úproc_environr²   rä   rì   s    rO   r\   ÚProcess.environ¼  ó   € ä× Ò  §¡¨4×+<Ñ+<Ó=Ð=rQ   c                 ó6   • U R                  5       [        S      $ )Nr(   ©rò   r  rì   s    rO   r(   ÚProcess.create_timeÀ  ó   € à×$Ñ$Ó&¤}°]Ñ'CÑDÐDrQ   c                 ó6   • U R                  5       [        S      $ )Nr*   r  rì   s    rO   r*   ÚProcess.num_threadsÄ  r  rQ   c                 ó6   • U R                  5       [        S      $ )Nr)   r  rì   s    rO   Únice_getÚProcess.nice_getÈ  s   € ð
 ×$Ñ$Ó&¤}°VÑ'<Ñ=Ð=rQ   c                 ó¤   • U R                   S;   a   [        U R                   U R                  5      e[        R                  " U R                   U5      $ )N>   r   r   )r²   r   rÔ   Ú
cext_posixÚsetpriority)rØ   Úvalues     rO   Únice_setÚProcess.nice_setÏ  s<   € à�8‰8�vÓô
 ˜tŸx™x¨¯©Ó4Ð4Ü×%Ò% d§h¡h°Ó6Ð6rQ   c                 óX   • U R                  5       [        S      U l        U R                  $ )Nr%   )rò   r  rÓ   rì   s    rO   r%   ÚProcess.ppidÙ  s&   € à×*Ñ*Ó,¬]¸6Ñ-BÑCˆŒ
Ø�z‰zÐrQ   c                 óê   •  U R                  5       u  pn    n[        R
                  " XU5      $ ! [         a9    U R                  5       [        S      nU R                  5       [        S      nS n NYf = f)Nr-   r.   ©ró   r   rò   r  r   Úpuids)rØ   ÚrealÚ	effectiveÚsavedrk   s        rO   ÚuidsÚProcess.uidsÞ  sw   € ð	Ø.2¯o©oÓ.?Ñ+ˆD˜U A q¨!ô
 �}Š}˜T¨eÓ4Ð4øô	 ó 	Ø×(Ñ(Ó*¬=¸Ñ+?Ñ@ˆDØ×-Ñ-Ó/´¸fÑ0EÑFˆIØŠEð	ús   ‚/ ¯A A2Á1A2c                 óè   •  U R                  5       u      pp4[        R
                  " X#U5      $ ! [         a9    U R                  5       [        S      nU R                  5       [        S      nS n NYf = f)Nr/   r0   r%  )rØ   rk   r'  r(  r)  s        rO   ÚgidsÚProcess.gidsè  su   € ð	Ø.2¯o©oÓ.?Ñ+ˆAˆq�!˜9ô
 �}Š}˜T¨eÓ4Ð4øô	 ó 	Ø×(Ñ(Ó*¬=¸Ñ+?Ñ@ˆDØ×-Ñ-Ó/´¸fÑ0EÑFˆIØŠEð	ús   ‚. ®A A1Á0A1c                 ó  •  [         R                  " U R                  U R                  5      n[        R                  " U6 $ ! [         a6  nUR
                  [
        R                  :X  a  [        (       d  Sn S nANMe S nAff = f)N)ç        r0  r0  r0  )
rX   Úproc_cpu_timesr²   rä   r�   ÚerrnoÚ	EOVERFLOWÚ	IS_64_BITr   r6   )rØ   Útimesrš   s      rO   ry   ÚProcess.cpu_timesò  sf   € ð	Ü×'Ò'¨¯©°$×2CÑ2CÓDˆEô × Ò  %Ð(Ð(øô ó 	Ø�y‰yœEŸO™OÓ+·I²Ið -•àûð	ús   ‚+A  Á 
B Á
+A;Á:A;Á;B c                 óX   • [         R                  " U R                  U R                  5      $ ræ   )rX   Úproc_cpu_numr²   rä   rì   s    rO   Úcpu_numÚProcess.cpu_num  r  rQ   c                 óH  • U R                   nSn[        U R                  5       [        S      5      nU[        R
                  :w  a2  S H,  n [        R                  " U SU R                   SU 35      s  $    U(       a  U R                  5         g g ! [         a    Sn MX  f = f)NFr,   )r   r   r   éÿ   rê   ú/path/T)rä   rà   rò   r  rX   ÚPRNODEVrK   r	  r²   rÕ   rí   )rØ   Úprocfs_pathÚ
hit_enoentrÅ   rx   s        rO   ÚterminalÚProcess.terminal  s�   € à×'Ñ'ˆØˆ
Ü˜d×3Ñ3Ó5´mÀGÑ6LÑMÓNˆØ”$—,‘,ÓÛ#�ðÜŸ;š;¨+¨°a¸¿¹°zÀÈÀsÐ'KÓLÒLñ $ö Ø×ÑÕ ð øô )ó Ø!%�JÚðús   Á'BÂB!Â B!c                 óÒ   • U R                   n [        R                  " U SU R                   S35      $ ! [         a(    [        R
                  " U SU R                   35         gf = f)Nrê   z	/path/cwdrŒ   )rä   rK   r	  r²   rÕ   rë   )rØ   r?  s     rO   ÚcwdÚProcess.cwd  sa   € ð ×'Ñ'ˆð	Ü—;’; + ¨a°·±¨z¸ÐCÓDÐDøÜ ó 	Ü�GŠG�{�m 1 T§X¡X JÐ/Ô0Ùð	ús   Ž%4 ´/A&Á%A&c                 ót   • U R                  5       nU[        S      S-  nU[        S      S-  n[        X#5      $ )Nr&   i   r'   )rò   r  r?   )rØ   rw   r&   r'   s       rO   Úmemory_infoÚProcess.memory_info$  sB   € à×#Ñ#Ó%ˆØ”- Ñ&Ñ'¨$Ñ.ˆØ”- Ñ&Ñ'¨$Ñ.ˆÜ�C‹~ÐrQ   c                 ób   • U R                  5       [        S      n[        R                  US5      $ )Nr+   Ú?)rò   r  ÚPROC_STATUSESÚget)rØ   Úcodes     rO   r+   ÚProcess.status-  s-   € à×$Ñ$Ó&¤}°XÑ'>Ñ?ˆä× Ñ   sÓ+Ð+rQ   c                 ó0  • U R                   n/ n[        R                  " U SU R                   S35      nSnU HZ  n[	        U5      n [
        R                  " U R                  XQ5      u  pg[        R                  " XVU5      nUR                  U5        M\     U(       a  U R                  5         U$ ! [         a[  n	U	R                  [        R                  :X  a  [        (       d   S n	A	M°  U	R                  [        R                  :X  a  Sn S n	A	MÖ  e S n	A	ff = f)Nrê   z/lwpFT)rä   rK   rË   r²   rf   rX   Úquery_process_threadr   Úpthreadr‘   r�   r2  r3  r4  ÚENOENTrí   )
rØ   r?  rw   Útidsr@  ÚtidÚutimeÚstimer³   rš   s
             rO   ÚthreadsÚProcess.threads3  sâ   € à×'Ñ'ˆØˆÜ�zŠz˜[˜M¨¨4¯8©8¨*°DÐ9Ó:ˆØˆ
ÛˆCÜ�c“(ˆCðÜ#×8Ò8Ø—H‘H˜có ‘�ô& —_’_ S°Ó7�Ø—
‘
˜2–ñ/ ö0 Ø×ÑÔ Øˆ
øô) ó Ø—9‘9¤§¡Ó/¿	º	õ à—9‘9¤§¡Ó,Ø!%�JÝØûðús$   Á#B0Â0
DÂ:)DÃ) DÄDÄDc           	      ó2  • / nSnU R                   nU SU R                   S3n[        R                  " U SU R                   S35       H   n[        R                  R                  XE5      n[        R                  R                  U5      (       d  MH   [        R                  " U5      n[        U5      (       a1  UR                  [        R                  " U[        U5      5      5        M   M¢     U(       a  U R                  5         U$ ! [         a    Sn MÌ  f = f)NFrê   z/pathú/fdT)rä   r²   rK   rË   rA   ÚjoinÚislinkr	  r   r‘   r   Ú	popenfilerf   rÕ   rí   )rØ   r“   r@  r?  Úpathdirr­   rA   Úfiles           rO   Ú
open_filesÚProcess.open_filesU  sè   € àˆØˆ
Ø×'Ñ'ˆØ �M  4§8¡8 *¨EÐ2ˆÜ—*’* ˜}¨A¨d¯h©h¨Z°sÐ;Ö<ˆBÜ—7‘7—<‘< Ó,ˆDÜ�w‰w�~‰~˜d×#Ó#ðIÜŸ;š; tÓ,�Dô
 % T×*Ñ*ØŸ™¤w×'8Ò'8¸¼sÀ2»wÓ'GÖHñ +ñ =ö Ø×ÑÔ Øˆøô )ó Ø!%�JÚðús   ÂDÄDÄDc              #   óz  #   • S[        U5      /n[        R                  " U[        R                  [        R                  S9nUR	                  5       u  pES XE4 5       u  pEUR
                  S:w  a{  SUR                  5       ;   a   [        U R                  U R                  5      eSUR                  5       ;   a   [        U R                  U R                  5      eU< SU 3n[        U5      eUR                  S5      S	S
 n[        U5       H¬  u  p‰U	R                  5       n	U	R                  S5      (       d  M-  U	R                  SS	5      S	   n
XxS	-
     R!                  5       nUS:X  a  ["        R$                  nOUS:X  a  ["        R&                  nOSnS["        R(                  XºS[*        R,                  4v •  M®     g
7f)z<Get UNIX sockets used by process by parsing 'pfiles' output.Úpfiles)rU   Ústderrc              3   ór   #   • U  H-  oR                  [        R                  R                  5      v •  M/     g 7fræ   )r_   r`   rU   ra   )Ú.0rx   s     rO   Ú	<genexpr>Ú,Process._get_unix_sockets.<locals>.<genexpr>s  s(   é € ð 
Ú3C¨a�H‰H”S—Z‘Z×(Ñ(×)Ð)Ò3Cùs   ‚57r   zpermission deniedzno such processz command error
rW   r   Nzsockname: AF_UNIXrE   ÚSOCK_STREAMÚ
SOCK_DGRAMr�   rŒ   )ÚstrrZ   r[   r]   r^   rb   Úlowerr   r²   rÔ   r   rc   re   Ú	enumerateÚlstripÚ
startswithrd   Úsocketri  rj  ÚAF_UNIXr   Ú	CONN_NONE)rØ   r²   Úcmdrj   rU   rd  rl   rm   Úirn   rA   Útypes               rO   Ú_get_unix_socketsÚProcess._get_unix_socketsj  sw  é € ð œ˜S›Ð"ˆÜ×ÒØœ
Ÿ™´
·±ñ
ˆð Ÿ™›‰ˆñ
Ø4:Ñ3Có
‰ˆð �<‰<˜1ÓØ" f§l¡l£nÓ4Ü" 4§8¡8¨T¯Z©ZÓ8Ð8Ø  F§L¡L£NÓ2Ü# D§H¡H¨d¯j©jÓ9Ð9Ø‘GÐ+¨F¨8Ð4ˆCÜ˜sÓ#Ð#à—‘˜TÓ" 1 2Ð&ˆÜ  Ö'‰GˆAØ—;‘;“=ˆDØ�‰Ð2×3Ó3Ø—z‘z # qÓ)¨!Ñ,�Ø ™U‘|×)Ñ)Ó+�Ø˜=Ó(Ü!×-Ñ-‘DØ˜\Ó)Ü!×,Ñ,‘Dà�DØœ6Ÿ>™>¨4°r¼7×;LÑ;LÐMÔMò (ùs   ‚D1F;Ä7BF;c                 óF  • [        XR                  S9nU(       d/  [        R                  " U R                   SU R                   35        US;   aL  UR                  U R                  U R                  5       Vs/ s H  n[        R                  " U6 PM     sn5        U$ s  snf )N)r¨   rê   >   r’   Úunix)	rŸ   r²   rK   rë   rä   Úextendrv  r   r¤   )rØ   r§   rw   Úconns       rO   rŸ   ÚProcess.net_connectionsŒ  sŒ   € ä˜d¯©Ñ2ˆö ä�GŠG�t×(Ñ(Ð)¨¨4¯8©8¨*Ð5Ô6ð �?Ó"Ø�J‰Jà ×2Ñ2°4·8±8Ô<óâ<�Dô —’˜tÓ$Ù<ñô ð ˆ
ùò	s   Á8BÚmmapzpath rss anon lockedzaddr perms path rss anon lockedc           	      ó’  • S nU R                   n/ n [        R                  " U R                  U5      nSnU He  nUu  p‰p«pÍnU" X‰5      nUR                  S5      (       d)   [        R                  " U SU R                   SU 35      nUR                  XŠX¼XÞ45        Mg     U(       a  U R                  5         U$ ! [         a6  nUR
                  [
        R                  :X  a  [        (       d  / s S nA$ e S nAff = f! [         a?  nUR
                  [
        R                  :X  a  U SU R                   SU 3nSn S nAN·e S nAff = f)Nc                 ó’   • SR                  [        U 5      SS  R                  S5      [        U5      SS  R                  S5      5      $ )Nz{}-{}r   ÚL)ÚformatÚhexrd   )ÚstartÚends     rO   ÚtoaddrÚ#Process.memory_maps.<locals>.toaddr¥  sB   € Ø—>‘>Ü�E“
˜1˜2�×$Ñ$ SÓ)¬3¨s«8°A°B¨<×+=Ñ+=¸cÓ+Bóð rQ   FÚ[rê   r=  T)rä   rX   Úproc_memory_mapsr²   r�   r2  r3  r4  ro  rK   r	  rR  r‘   rí   )rØ   r…  r?  r“   r«   rš   r@  r¬   r¡   ÚaddrsizeÚpermrº   r&   ÚanonrC   s                  rO   Úmemory_mapsÚProcess.memory_maps£  s5  € ò	ð
 ×'Ñ'ˆØˆð	Ü×+Ò+¨D¯H©H°kÓBˆGð ˆ
ÛˆDØ<@Ñ9ˆD˜D¨°6Ù˜$Ó)ˆDØ—?‘? 3×'Ñ'ðÜŸ;š;¨+¨°a¸¿¹°zÀÈÀvÐ'NÓO�Dð �N‰N˜D¨°4Ð@ÖAñ% ö& Ø×ÑÔ ØˆøôE ó 	Ø�y‰yœEŸO™OÓ+·I²Ið •	àûð	ûô& ó Ø—y‘y¤E§L¡LÓ0ð #. ¨a°·±¨z¸À¸vÐF˜Ø%)�
àûðúsA   “!B: Á!(C=Â:
C:Ã*C5Ã.C:Ã4C5Ã5C:Ã=
EÄ4EÅ EÅEc                 ót   • [        [        R                  " U R                   SU R                   S35      5      $ )Nrê   rZ  )r   rK   rË   rä   r²   rì   s    rO   Únum_fdsÚProcess.num_fdsÒ  s.   € ä”2—:’: ×!2Ñ!2Ð 3°1°T·X±X°J¸cÐBÓCÓDÐDrQ   c                 óz   • [         R                  " [        R                  " U R                  U R
                  5      6 $ ræ   )r   ÚpctxswrX   Úproc_num_ctx_switchesr²   rä   rì   s    rO   Únum_ctx_switchesÚProcess.num_ctx_switchesÖ  s-   € ä�~Š~Ü×'Ò'¨¯©°$×2CÑ2CÓDð
ð 	
rQ   Nc                 óX   • [         R                  " U R                  XR                  5      $ ræ   )r   Úwait_pidr²   rÔ   )rØ   Útimeouts     rO   ÚwaitÚProcess.waitÜ  s   € ä× Ò  §¡¨7·J±JÓ?Ð?rQ   )rÔ   rÓ   rä   r²   )Úinetræ   )-Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__rç   rí   rô   rø   rà   r   rð   rò   ró   rº   r  r
  r\   r(   r*   r  r   r%   r*  r-  ry   r9  rA  rD  rG  Úmemory_full_infor+   rW  r`  rv  rŸ   r   Únt_mmap_groupedÚnt_mmap_extrŒ  r�  r”  r™  Ú__static_attributes__r~   rQ   rO   râ   râ   w  s…  † Ù;âC€Iò.ò3ò-ò
/ð
 ØñDó ó ðDð Øñó ó ðð Øñ;ó ó ð;ð ñ-ó ð-ð ñ	ó ð	ð ñ8ó ð8ð ñ>ó ð>ð ñEó ðEð ñEó ðEð ñ>ó ð>ð ñ7ó ð7ð ñó ðð ñ5ó ð5ð ñ5ó ð5ð ñ)ó ð)ð" ñ>ó ð>ð ñ!ó ð!ð ñ
ó ð
ð ñó ðð #Ðàñ,ó ð,ð
 ñó ððB ñó ðò( NðD óó ðñ& ! Ð)?Ó@€OÙ˜VÐ%FÓG€Kàñ,ó ð,ð\ ñEó ðEð ñ
ó ð
ð
 ó@ó ó@rQ   râ   )F)r�   )mr   r2  rÞ   rK   rp  rZ   r`   Úcollectionsr   r   rŒ   r   r   r   r  r	   rX   r
   r   r   r   r   r   r   r   r   r   r   r   Ú__extra__all__ÚgetpagesizerM   ÚAF_LINKÚmaxsizer4  r   r   ÚSSLEEPÚSTATUS_SLEEPINGÚSRUNÚSTATUS_RUNNINGÚSZOMBÚSTATUS_ZOMBIEÚSSTOPÚSTATUS_STOPPEDÚSIDLÚSTATUS_IDLEÚSONPROCÚSWAITÚSTATUS_WAITINGrK  ÚTCPS_ESTABLISHEDÚCONN_ESTABLISHEDÚTCPS_SYN_SENTÚCONN_SYN_SENTÚTCPS_SYN_RCVDÚCONN_SYN_RECVÚTCPS_FIN_WAIT_1ÚCONN_FIN_WAIT1ÚTCPS_FIN_WAIT_2ÚCONN_FIN_WAIT2ÚTCPS_TIME_WAITÚCONN_TIME_WAITÚTCPS_CLOSEDÚ
CONN_CLOSEÚTCPS_CLOSE_WAITÚCONN_CLOSE_WAITÚTCPS_LAST_ACKÚCONN_LAST_ACKÚTCPS_LISTENÚCONN_LISTENÚTCPS_CLOSINGÚCONN_CLOSINGÚPSUTIL_CONN_NONErr  Ú	TCPS_IDLEÚ
TCPS_BOUNDr¢   Údictr  r1   r6   r9   r?   Úpfullmemr@   r[  Ú_fieldsrD   rP   rq   ry   rs   r   r�   rƒ   Údisk_io_countersrŽ   r�   Únet_io_countersÚnet_if_addrsrŸ   r¶   rÀ   rÃ   rÍ   rÏ   rà   râ   r~   rQ   rO   Ú<module>r×     s  ðñ
 .ã Û Û 	Û Û Û 
Ý "Ý å Ý Ý )Ý #Ý Ý Ý !Ý "Ý "Ý Ý $Ý "Ý +Ý $Ý %Ý "ò <€ð ×"Ò"Ó$€	Ø
×
Ñ
€Ø�K‰K˜%Ñ€	à€	Ø€
ð 	‡K�K�×(Ñ(Ø‡I�Iˆw×%Ñ%Ø‡J�J�×%Ñ%Ø‡J�J�×&Ñ&Ø‡I�Iˆw×"Ñ"Ø‡L�L�'×(Ñ(Ø‡J�J�×&Ñ&ð€ð 	×Ñ˜7×3Ñ3Ø×Ñ˜×-Ñ-Ø×Ñ˜×-Ñ-Ø×Ñ˜'×0Ñ0Ø×Ñ˜'×0Ñ0Ø×Ñ˜×/Ñ/Ø×Ñ�g×(Ñ(Ø×Ñ˜'×1Ñ1Ø×Ñ˜×-Ñ-Ø×Ñ�g×)Ñ)Ø×Ñ�w×+Ñ+Ø×Ñ˜7×,Ñ,Ø‡N�N�IØ‡O�O�Zð€ñ" Ø	
Ø	Ø	ØØ	
ØØØ
Ø	Ø	
Ø
Ø	ñ€ñ, �{Ò$HÓI€	áØÒGó€	ñ 	�7ÒMÓN€á�&˜5 %˜.Ó)€Ø€áØÒ;ó€ñ Ø� §¡¨-×*?Ñ*?Ó!@Ñ@ó€	ò4ò&ò\3ò(òò"ò
ð ×(Ñ(Ð Ø× Ñ €
ôð> ×&Ñ&€Ø×&Ñ&€ôò>ò ò
ò0=ò$ò
÷:g@ò g@rQ   