
    PiOr                        d Z ddlZddlZddlZddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ ddl
mZ dd	l
mZ dd
l
mZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ g ZerWej        ej        ej         ej!        ej"        ej#        ej$        ej%        ej&        ej'        ej(        ej)        ej*        ej+        iZ,nerWej        ej        ej"        ej#        ej$        ej%        ej-        ej'        ej&        ej'        ej         ej.        ej/        ej!        iZ,nLerJej        ej        ej"        ej#        ej$        ej%        ej&        ej'        ej         ej.        ej/        ej!        iZ,ej0        ej1        ej2        ej3        ej4        ej5        ej6        ej7        ej8        ej9        ej:        ej;        ej<        ej=        ej>        ej?        ej@        ejA        ejB        ejC        ejD        ejE        ejF        ejG        iZH ejI                    ZJejK        ZK eLed          ZM eNdei ddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGZOdH ZPdI ZQ eLedJ          rejR        ZRejS        ZSdK ZTdL ZUdM ZVeserdN ZWndO ZWdP ZXerdQ ZYnerdR ZYdfdTZZej[        Z[ej\        Z\ej]        Z]ej^        Z^dU Z_dV Z`erdW ZadX ZbdY Zcer1	  ec            Zdn"# ee$ rZf edZef           dZdY dZf[fndZf[fww xY wd[ Zgd\ Zhed]             Zid^ Zjerd_ Zknerd` Zknejk        Zkda Zlejm        db             Zn G dc dd          ZodS )gz5FreeBSD, OpenBSD and NetBSD platforms implementation.    N)defaultdict)
namedtuple)ElementTree   )_common)_ntuples)_psposix)_psutil_bsd)FREEBSD)NETBSD)OPENBSD)AccessDenied)NoSuchProcess)ZombieProcess)	conn_tmap)conn_to_ntuple)debug)memoize)memoize_when_activated)usage_percentproc_num_threadsppidstatusreal_uid   effective_uid   	saved_uid   real_gid   effective_gid   	saved_gid   ttynr   create_time	   ctx_switches_vol
   ctx_switches_unvol   read_io_count   write_io_count   	user_time   sys_time   ch_user_time   ch_sys_time   rss   vms   memtext   memdata   memstack   cpunum   name   c                  T   t          j                    } t          r| \  }}}}}}t          dd          5 }|D ]}|                    d          r+t          |                                d                   dz  }	B|                    d          r*t          |                                d                   dz  }
	 d d d            n# 1 swxY w Y   ||z   }||z
  }n| \  }}}}}}}	}
||z   |z   }||z   |z   }t          ||z
  |d          }t          j	        ||||||||	||
|          S )Nz/proc/meminforbs   Buffers:r   i   s
   MemShared:round_)
cextvirtual_memr   open
startswithintsplitr   ntpsvmem)memtotalfreeactiveinactivewiredcachedflinebufferssharedusedavailpercents                 a/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/psutil/_psbsd.pyvirtual_memoryrc      s   



C '7:4tVXuf /4(( 	9A 9 9??;// 9!$**,,q/22T9GG__]33 9 a11D8F	9	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 ~HKEtVXufgv 6!D(~&UU]U1===G9  s   BCC
C
c                      t          j                    \  } }}}}t          || d          }t          j        | |||||          S )z@System swap memory as (total, used, free, sin, sout) namedtuple.r   rJ   )rL   swap_memr   rR   sswap)rU   r_   rV   sinsoutra   s         rb   swap_memoryri      sF    #'=?? E4sDD%222G9UD$d;;;    	heap_infoc                  d    t          j                    \  } }}}}t          j        | ||||          S )z,Return system per-CPU times as a namedtuple.)rL   	cpu_timesrR   	scputimes)usernicesystemidleirqs        rb   rm   rm      s2    $(N$4$4!D$c=tVT3777rj   c                      g } t          j                    D ]7}|\  }}}}}t          j        |||||          }|                     |           8| S )z(Return system CPU times as a namedtuple.)rL   per_cpu_timesrR   rn   append)retcpu_tro   rp   rq   rr   rs   items           rb   ru   ru      s`    
C#%%  (-%dFD#}T4s;;

4Jrj   c                  (    t          j                    S )z0Return the number of logical CPUs in the system.)rL   cpu_count_logical rj   rb   r{   r{      s    !###rj   c                  .    t                      dk    rdnd S )Nr   )r{   r|   rj   rb   cpu_count_coresr~      s    %''1,,qq$6rj   c                  ~   d} t          j                    }||                    d          }|dk    rt|d|dz            }t          j        |          }	 t          |                    d                    pd} |                                 n# |                                 w xY w| st                      dk    rdS | S )z-Return the number of CPU cores in the system.Nz	</groups>r)   zgroup/children/group/cpur   )	rL   cpu_topologyrfindr   
fromstringlenfindallclearr{   )rw   sindexroots       rb   r~   r~      s     =GGK((E{{k	kN"-a00!dll+EFFGGO4C JJLLLLDJJLLLL 	 ""a''q
s   $B B$c                     t           rt          j                    \  } }}}}nt          rt          j                    \  } }}}}}}t	          dd          5 }|D ]>}|                    d          r't          |                                d                   }?	 ddd           n# 1 swxY w Y   n"t          rt          j                    \  } }}}}}}t          j
        | |||          S )z*Return various CPU stats as a named tuple.z
/proc/statrI   s   intrr   N)r   rL   	cpu_statsr   rN   rO   rP   rQ   r   rR   	scpustats)	ctxswintrs
soft_intrssyscalls_traps_faults_forksr[   r\   s	            rb   r   r     s9    
 6:^5E5E2uj(FF	 
 N 	Duj(FGV ,%% 	1 1 1??7++ 1

Q00E1	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 
 
 N 	Duj(FGV =z8<<<s   AB##B'*B'c                  f   g } t                      }t          |          D ]}	 t          j        |          \  }}n# t          $ r Y (w xY w|r	 t          |                    d          d                             d          d                   }n# t          t          f$ r d}Y nw xY w	 t          |                    d          d                             d          d                   }n# t          t          f$ r d}Y nw xY w| 	                    t          j        |||                     | S )zReturn frequency metrics for CPUs. As of Dec 2018 only
        CPU 0 appears to be supported by FreeBSD and all other cores
        match the frequency of CPU 0.
         r   /r   N)r{   rangerL   cpu_freqNotImplementedErrorrP   rQ   
IndexError
ValueErrorrv   rR   scpufreq)rw   num_cpuscpucurrentavailable_freqmin_freqmax_freqs          rb   r   r   #  s\   
 $&&?? 	B 	BC*.-*<*<'&    $$">#7#7#<#<R#@#F#Fs#K#KA#NOOHH"J/ $ $ $#HHH$$">#7#7#<#<Q#?#E#Ec#J#J1#MNNHH"J/ $ $ $#HHH$JJs|GXx@@AAAA
s5   <
A	A	ABB'&B'+AC--DDc                  p    t          t          j                              } t          j        | dd          gS )Ng        )floatrL   r   rR   r   )currs    rb   r   r   =  s,    T]__%%T3,,--rj   Fc                     g }t          j                    }|D ]5}|\  }}}}t          j        ||||          }|                    |           6|S )zReturn mounted disk partitions as a list of namedtuples.
    'all' argument is ignored, see:
    https://github.com/giampaolo/psutil/issues/906.
    )rL   disk_partitionsrR   	sdiskpartrv   )	allretlist
partitions	partitiondevice
mountpointfstypeoptsntuples	            rb   r   r   G  sc    
 G%''J  	+4(
FDvz64@@vNrj   c                     t                                                      } i }| D ]}	 t          j        |          }t          j        |          }t          j        |          \  }}t          t          d          rt          j        |          }d	                    |          }d|v }t          j        |||||          ||<   # t          $ r }	|	j        t          j        k    r Y d}	~	d}	~	ww xY w|S )z)Get NIC stats (isup, duplex, speed, mtu).	NicDuplex,runningN)net_io_counterskeysrL   
net_if_mtunet_if_flagsnet_if_duplex_speedhasattrr   r   joinrR   	snicstatsOSErrorerrnoENODEV)
namesrw   rF   mtuflagsduplexspeedoutput_flagsisuperrs
             rb   net_if_statsr   b  s   ""$$E
C N N	N/$''C%d++E 4T::MFE w,, 3 *62288E??L%DdFE3MMCII  	 	 	yEL(( )((((	 Js   ?C
C/C**C/c                 z   t           |          \  }}t                      }t          rt          j        d||          }n2t
          rt          j        d|           }nt          j        ||          }|D ]<}|\  }}}}	}
}}t          ||||	|
|t          |          }|                    |           =t          |          S )z System-wide network connections.r   )
r   setr   rL   net_connectionsr   r   TCP_STATUSESaddlist)kindfamiliestypesrw   rawlistry   fdfamtypeladdrraddrr   pidnts                 rb   r   r   x  s    oOHe
%%C 8&r8U;;	 8&r400&x77  370CueVST5%s
 
 	99rj   c                      	 t          j                    \  } }}n# t          $ r Y dS w xY w|dk    }|rt          j        }n|dk    rt          j        }n|dz  }t          j        | ||          S )zReturn battery info.Nr   r   <   )rL   sensors_batteryr   r   POWER_TIME_UNLIMITEDPOWER_TIME_UNKNOWNrR   sbattery)ra   minsleftpower_pluggedsecslefts       rb   r   r     s    	/3/C/E/E,GX}}" 	 	 	44	 &* 	%3HH^^1HH"}H|GX}===s    
((c            	      8   t          t                    } t                      }t          |          D ]g}	 t	          j        |          \  }}|dk    rd}d| }| d                             t          j        ||||                     X# t          $ r Y dw xY w| S )z?Return CPU cores temperatures if available, else an empty dict.r   NzCore coretemp)
r   r   r{   r   rL   sensors_cpu_temperaturerv   rR   shwtempr   )rw   r   r   r   highrF   s         rb   sensors_temperaturesr     s    $$&&?? 	 	C $ <S A A199D$s}}J&&s{4$'M'MNNNN&    
s   AB


BBc                  (    t          j                    S )z:The system boot time expressed in seconds since the epoch.)rL   	boot_timer|   rj   rb   r   r     s    >rj   zignoring exception on import: c                     t           dk    r| S t           t                      z
  }|dk    st          |          dk     r| S t          d           |dk     r| |z
  S | |z   S )z!Account for system clock updates.r   r   z9system clock was updated; adjusting process create_time())INIT_BOOT_TIMEr   absr   )ctimediffs     rb   adjust_proc_create_timer     sh    QL	+199D		ALIJJJ!884<t|rj   c                      g } t          j                    }|D ]@}|\  }}}}}|dk    rt          j        ||pd|||          }|                     |           A| S )z:Return currently connected users as a list of namedtuples.~N)rL   usersrR   suserrv   )	r   r   ry   ro   ttyhostnametstampr   r   s	            rb   r   r     sr    GjllG  +/(c8VS#::YtS[D(FC@@rNrj   c                      	 t          d                                           dS # t          $ r Y dS t          $ r Y dS w xY w)Nr   TF)ProcessrF   r   r   r|   rj   rb   _pid_0_existsr     sa    

 t    uu   tts   !% 
?	??c                      t          j                    } t          r(d| vr$t                      r|                     dd           | S )z7Returns a list of PIDs currently running on the system.r   )rL   pidsr   r   insert)rw   s    rb   r   r     s@    
)++C ASLLmooL 	

1aJrj   c                 R    t          j        |           }|s| t                      v S dS )NTr	   
pid_existsr   r   existss     rb   r  r     s/    $S)) 	 $&&= 4rj   c                 R    t          j        |           }|sdS | t                      v S )NFr   r  s     rb   r  r    s/    $S)) 	!5
 $&&= rj   c                 F     t          j                    fd            }|S )z`Decorator which translates bare OSError exceptions into
    NoSuchProcess and AccessDenied.
    c                    | j         | j        | j        }}}	  | g|R i |S # t          $ r<}t	          j        |          rt          |||          |t          ||          |d }~wt          $ r}t          ||          |d }~wt          j
        $ r}t          |||          |d }~wt          $ r/}|dk    r!dt                      v rt          ||          ||d d }~ww xY w)Nr   )r   _ppid_nameProcessLookupErrorrL   proc_is_zombier   r   PermissionErrorr   ZombieProcessErrorr   r   )selfargskwargsr   r   rF   r   funs          rb   wrapperz wrap_exceptions.<locals>.wrapper  s-   (DJ
4T	 3t-d---f---! 	4 	4 	4"3'' >#Ct44#=T**3 	3 	3 	3sD))s2& 	: 	: 	:T400c9 	  	  	 axxAKK"3--364	 s8   $ 
C#7A%%C#2BC#B''C#4*CC#)	functoolswraps)r  r  s   ` rb   wrap_exceptionsr    s:    
 _S         " Nrj   c              #   $  K   | j         | j        | j        }}}	 dV  dS # t          t          f$ rA}t          j        | j                   rt          |||          |t          ||          |d}~wt          $ r}t          ||          |d}~ww xY w)z8Same as above, for routines relying on reading /proc fs.N)r   r  r  r	  FileNotFoundErrorrL   r
  r   r   r  r   )instr   rF   r   r   s        rb   wrap_exceptions_procfsr  3  s       h
DJtC/ 12 4 4 4 tx(( 	4T400c9T**3 / / /3%%3./s     B<A,,B9B

Bc                      e Zd ZdZg dZd Zd Zeed                         Z	d Z
d Zed             Zed	             Zed
             Zed             Zed             Zed             Zed             Zed             Zed             Zered             Zed             ZeZed*d            Zed             Zed             Zed             Zed+d            Zed,d            Zed             Zed             Z ed             Z!ed             Z"ed              Z# e$d!d"          Z% e$d!d#          Z&ed$             Z'ed%             Z(er/ed&             Z)ed'             Z*ed(             Z+ed,d)            Z,dS dS )-r   z1Wrapper class around underlying C implementation.)_cacher  r  r   c                 0    || _         d | _        d | _        d S N)r   r  r  )r  r   s     rb   __init__zProcess.__init__J  s    



rj   c                 8    t          j        | j                   dS )z+Raise NSP if the process disappeared on us.N)rL   	proc_namer   r  s    rb   _assert_alivezProcess._assert_aliveO  s     	tx     rj   c                     t          j        | j                  }t          |          t          t                    k    sJ |S )z;Retrieves multiple process info in one shot as a raw tuple.)rL   proc_oneshot_infor   r   kinfo_proc_mapr  rw   s     rb   oneshotzProcess.oneshotU  s:     $TX..3xx3~......
rj   c                 :    | j                             |            d S r  )r&  cache_activater   s    rb   oneshot_enterzProcess.oneshot_enter]  s    ##D)))))rj   c                 :    | j                             |            d S r  )r&  cache_deactivater   s    rb   oneshot_exitzProcess.oneshot_exit`  s    %%d+++++rj   c                     |                                  t          d                  }||nt          j        | j                  S )NrF   )r&  r$  rL   r  r   )r  rF   s     rb   rF   zProcess.namec  s4    ||~~nV45'ttT^DH-E-EErj   c                    t           r&| j        dk    rdS t          j        | j                  S t          rS| j        dk    rdS t          |           5  t          j        d| j         d          cd d d            S # 1 swxY w Y   d S dd l}| 	                                }|r|
                    |d                   pdS dS )Nr    z/proc/z/exe)r   r   rL   proc_exer   r  osreadlinkshutilcmdlinewhich)r  r3  r4  s      rb   exezProcess.exeh  s    	x1}}r=*** 	x1}}r'-- < <{#:DH#:#:#:;;< < < < < < < < < < < < < < < < < < MMMllnnG ||GAJ//525rs   A;;A?A?c                    t           r| j        dk    rg S t          r	 t          j        | j                  S # t
          $ r}|j        t          j        k    r| j        | j        | j	        }}}t          j
        | j                  rt          |||          |t          | j                  st          |||          |t          d|d           g cY d }~S  d }~ww xY wt          j        | j                  S )Nr   z	ignoring z and returning an empty list)r   r   r   rL   proc_cmdliner   r   EINVALr  r  r
  r   r  r   r   )r  r   r   rF   r   s        rb   r4  zProcess.cmdline  s    	/tx1}}I 	/
(222   9,,&*h
DJtC*4844 F+Ct<<#E%dh// F+Ct<<#E IcIIIJJJIIIIII $TX...s"   6 
C BCCCCc                 4    t          j        | j                  S r  )rL   proc_environr   r   s    rb   environzProcess.environ  s     ***rj   c                     |                                  t          d                  }t          j                    }	 ||         S # t          $ r Y d S w xY w)Nr&   )r&  r$  r	   get_terminal_mapKeyError)r  tty_nrtmaps      rb   terminalzProcess.terminal  sX    w 78(**	< 	 	 	44	s   A 
AAc                 d    |                                  t          d                  | _        | j        S )Nr   )r&  r$  r  r   s    rb   r   zProcess.ppid  s#    \\^^N6$:;
zrj   c                     |                                  }t          j        |t          d                  |t          d                  |t          d                            S )Nr   r   r   )r&  rR   puidsr$  r  rawtuples     rb   uidszProcess.uids  J    <<>>y^J/0^O45^K01
 
 	
rj   c                     |                                  }t          j        |t          d                  |t          d                  |t          d                            S )Nr    r"   r$   )r&  rR   pgidsr$  rF  s     rb   gidszProcess.gids  rI  rj   c                     |                                  }t          j        |t          d                  |t          d                  |t          d                  |t          d                            S )Nr2   r4   r6   r8   )r&  rR   	pcputimesr$  rF  s     rb   rm   zProcess.cpu_times  sW    <<>>}^K01^J/0^N34^M23	
 
 	
rj   c                 L    |                                  t          d                  S )NrD   )r&  r$  r   s    rb   cpu_numzProcess.cpu_num  s    <<>>.":;;rj   c           	         |                                  }t          j        |t          d                  |t          d                  |t          d                  |t          d                  |t          d                            S )Nr:   r<   r>   r@   rB   )r&  rR   pmemr$  rF  s     rb   memory_infozProcess.memory_info  sd    <<>>x^E*+^E*+^I./^I./^J/0
 
 	
rj   Fc                     |                                  t          d                  }t          r|st          |          }|S )Nr(   )r&  r$  r   r   )r  	monotonicr   s      rb   r(   zProcess.create_time  s:    ~m<= 	3) 	3+E22Erj   c                     t           rt          j        | j                  S t	          |                                           S r  )HAS_PROC_NUM_THREADSrL   r   r   r   threadsr   s    rb   num_threadszProcess.num_threads  s3     	'(222t||~~&&&rj   c                     |                                  }t          j        |t          d                  |t          d                            S )Nr*   r,   )r&  rR   pctxswr$  rF  s     rb   num_ctx_switcheszProcess.num_ctx_switches  s?    <<>>z^$678^$89:
 
 	
rj   c                     t          j        | j                  }g }|D ]1\  }}}t          j        |||          }|                    |           2t          r|                                  |S r  )rL   proc_threadsr   rR   pthreadrv   r   r!  )r  r   r   	thread_idutimestimer   s          rb   rX  zProcess.threads  sx     #DH--'. 	# 	##Iue[E599FNN6"""" 	!   rj   inetc           
         t           |         \  }}g }t          rt          j        | j        |          }n>t
          rt          j        | j        ||          }nt          j        | j        ||          }|D ]R}|d d         \  }}}	}
}}t          r	||vs|	|vr#t          |||	|
||t                    }|
                    |           S|                                  |S )Nr#   )r   r   rL   r   r   r   proc_net_connectionsr   r   r   rv   r!  )r  r   r   r   rw   r   ry   r   r   r   r   r   r   r   s                 rb   r   zProcess.net_connections  s    #D/% 	K*48T::GG 	K*48XuEEGG/(EJJG 	 	D26rr(/BT5% x''T->->CueV\ B JJrNNNN
rj   Nc                 6    t          j        | j        |          S r  )r	   wait_pidr   )r  timeouts     rb   waitzProcess.wait  s     7333rj   c                 4    t          j        | j                  S r  )rL   proc_priority_getr   r   s    rb   nice_getzProcess.nice_get  s    %dh///rj   c                 6    t          j        | j        |          S r  )rL   proc_priority_setr   )r  values     rb   nice_setzProcess.nice_set#  s    %dh666rj   c                     |                                  t          d                  }t                              |d          S )Nr   ?)r&  r$  PROC_STATUSESget)r  codes     rb   r   zProcess.status'  s/    ||~~nX67  s+++rj   c                     |                                  }t          j        |t          d                  |t          d                  dd          S )Nr.   r0   r   )r&  rR   pior$  rF  s     rb   io_counterszProcess.io_counters-  sD    <<>>w^O45^$456	
 
 	
rj   c                 \    t           r| j        dk    rdS t          j        | j                  S )z)Return process current working directory.r   r/  )r   r   rL   proc_cwdr   s    rb   cwdzProcess.cwd7  s-    
  	tx1}}2}TX&&&rj   mmapz*path rss, private, ref_count, shadow_countz6addr, perms path rss, private, ref_count, shadow_countc                 L    t          j        | j                  }d |D             S )z8Return files opened by process as a list of namedtuples.c                 >    g | ]\  }}t          j        ||          S r|   )rR   	popenfile).0pathr   s      rb   
<listcomp>z&Process.open_files.<locals>.<listcomp>K  s(    @@@HD"dB''@@@rj   )rL   proc_open_filesr   )r  r   s     rb   
open_fileszProcess.open_filesG  s*     &tx00@@@@@@rj   c                 n    t          j        | j                  }t          r|                                  |S )z=Return the number of file descriptors opened by this process.)rL   proc_num_fdsr   r   r!  r%  s     rb   num_fdszProcess.num_fdsM  s5     )) 	!   
rj   c                 4    t          j        | j                  S r  )rL   proc_cpu_affinity_getr   r   s    rb   cpu_affinity_getzProcess.cpu_affinity_getY  s    -dh777rj   c                    t          t          t          t                                                    }|D ]}||vrd|d| d}t	          |          	 t          j        | j        |           d S # t          $ rG}|j	        t          j
        t          j        hv r"|D ]}||vrd|d| d}t	          |          |  d }~ww xY w)Nzinvalid CPU z (choose between ))r   r   r   ru   r   rL   proc_cpu_affinity_setr   r   r   r9  EDEADLK)r  cpusallcpusr   msgr   s         rb   cpu_affinity_setzProcess.cpu_affinity_set]  s   
 %MOO 4 45566G * *g%%KKKKKKC$S//) &*48T:::::   
 9u} ===# ; ;g--!/s !/ !/$+!/ !/ !/   #-S//s: . s   A4 4
C>AC  Cc                 4    t          j        | j                  S r  )rL   proc_memory_mapsr   r   s    rb   memory_mapszProcess.memory_mapsx  s    (222rj   c                     |t          j        | j        |          S t          |          dk    rd|}t	          |          |\  }}t          j        | j        |||          S )Nr   z2second argument must be a (soft, hard) tuple, got )rL   proc_getrlimitr   r   r   proc_setrlimit)r  resourcelimitsr  softhards         rb   rlimitzProcess.rlimit|  st    ~*48X>>>v;;!##'"' '  %S//)#
d*48XtTJJJrj   F)rc  r  )-__name__
__module____qualname____doc__	__slots__r  r!  r  r   r&  r)  r,  rF   r6  r4  r<  rB  r   rH  rL  rm   r   rP  rS  memory_full_infor(   rY  r\  rX  r   ri  rl  rp  r   rx  r{  r   nt_mmap_groupednt_mmap_extr  r  r  r  r  r  r|   rj   rb   r   r   E  s       ;;333I  
! ! !    _* * *, , , F F _F   _2 / / _/4 + + _+   _   _ 
 
 _
 
 
 _
 
 
 _
  <		< 	< 
	< 
 
 _
 #   _ ' ' _' 
 
 _
 	 	 _	    _0 4 4 4 _4 0 0 _0 7 7 _7 , , _,
 
 
 _
 ' ' _' !j< O *H K A A _A
   _  1K		8 	8 
	8 
	 	 
	4 
	3 	3 
	3 
	K 	K 	K 
	K 	K 	KM1K 1Krj   r   r|   r  )pr  
contextlibr   r  r1  collectionsr   r   	xml.etreer   r/  r   r   rR   r	   r
   rL   r   r   r   r   r   r   r   r   r   r   r   r   __extra__all__SIDLSTATUS_IDLESRUNSTATUS_RUNNINGSSLEEPSTATUS_SLEEPINGSSTOPSTATUS_STOPPEDSZOMBSTATUS_ZOMBIESWAITSTATUS_WAITINGSLOCKSTATUS_LOCKEDrs  SDEADSTATUS_WAKINGSONPROCTCPS_ESTABLISHEDCONN_ESTABLISHEDTCPS_SYN_SENTCONN_SYN_SENTTCPS_SYN_RECEIVED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_NONE	CONN_NONEr   getpagesizePAGESIZEAF_LINKr   rW  dictr$  rc   ri   rk   	heap_trimrm   ru   r{   r~   r   r   r   
disk_usagedisk_io_countersr   net_if_addrsr   r   r   r   r   r   	Exceptionr   r   r   r   r   r  r  contextmanagerr  r   r|   rj   rb   <module>r     sk  
 < ;          				 # # # # # # " " " " " " ! ! ! ! ! !                   ! ! ! ! ! !                   ! ! ! ! ! ! " " " " " " " " " " " "       # # # # # #             + + + + + + " " " " " "  (	7&	7)W,
G*
G)
G*
G)MM  	7&W,
G* 	
G)
G) 		7(g,'MM*  	7&W,
G*
G)	7(g,M 	73-G1'0'0/g('1-g)w+7, 4
,wt%788    	
1 Q !	
 a Q ! a !  R r " 2 b  R!" #$ %& 	'( 	)* B+, B-. R/0 212 
3D, , ,^< < < 74 II8 8 8  $ $ $
   f  7 7 7 7  6= = =@  .   0  .. . .     
(  &   ,  2   > > >   ,  
 
 "   6s66777
  
 
 
$ 	  	   
 %     %! ! ! ! $J  4 / / /"CK CK CK CK CK CK CK CK CK CKs    
L L*L%%L*