§
    ¤	ÊjrŽ  ã                   ó¦  — d Z ddlZddlZddlZddl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 ddlmZ 	 ddl	mZ  no# e!$ rgZ" e#e"¦  «         $                    ¦   «          %                    d¦  «        r1 ej&        ¦   «         d         dk     rdZ'e'dz  Z'e'dz  Z' e(e'¦  «        e"‚‚ dZ"["ww xY wg d¢Z)dZ*d Z+d!ej,        v Z- ej.        d"d#d$i¦  «        Z/e/j0        Z0e 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        e*e jH        e
jI        iZJ G d%„ d&ej.        ¦  «        ZK eL¦   «          M                    eKjN        ¦  «          G d'„ d(ej.        ¦  «        ZO eL¦   «          M                    eOjN        ¦  «          ePdti d)d“d*d“d+d,“d-d.“d/d0“d1d2“d3d“d4d5“d6d7“d8d9“d:d;“d<d=“d>d?“d@dA“dBdC“dDdE“dFdG“dHdI“dJdK“dLdM“dNdO“dPdQ“ŽZQ ejR        dR¬S¦  «        dT„ ¦   «         ZSedU„ ¦   «         ZTdV„ ZUdW„ ZVe jW        ZWe jX        ZXe jY        ZYdX„ ZZdY„ Z[dZ„ Z\d[„ Z]d\„ Z^d]„ Z_d^„ Z`d_„ Zad`ab ejc        ¦   «         Zdda„ Zedb„ Zfdudc„Zgdd„ Zhde„ Zidf„ Zjdg„ Zkdaldh„ Zmdi„ Zndj„ Zodk„ Zp G dl„ dm¦  «        Zqe jr        Zre js        Zse jt        Ztdn„ Zudvdo„Zvdp„ Zwdq„ Zx G dr„ ds¦  «        ZydS )wz Windows platform implementation.é    Né   )Ú_common)Ú_ntuples)ÚENCODING)ÚAccessDenied)ÚNoSuchProcess)ÚTimeoutExpired)Ú	conn_tmap)Úconn_to_ntuple)Údebug)Úisfile_strict)Úmemoize)Úmemoize_when_activated)Úparse_environ_block)Úusage_percent)ÚABOVE_NORMAL_PRIORITY_CLASS)ÚBELOW_NORMAL_PRIORITY_CLASS)ÚHIGH_PRIORITY_CLASS)ÚIDLE_PRIORITY_CLASS)ÚNORMAL_PRIORITY_CLASS)ÚREALTIME_PRIORITY_CLASS)Ú_psutil_windowszdll load failedé   z3this Windows version is too old (< Windows Vista); z:psutil 3.4.2 is the latest version which supports Windows z2000, XP and 2003 server)Úwin_service_iterÚwin_service_getr   r   r   r   r   r   ÚIOPRIO_VERYLOWÚ
IOPRIO_LOWÚIOPRIO_NORMALÚIOPRIO_HIGHÚCONN_DELETE_TCBÚAF_LINKÚ
DELETE_TCBi+  Ú__pypy__ÚAddressFamilyr!   éÿÿÿÿc                   ó&   — e Zd ZeZeZeZeZeZeZdS )ÚPriorityN)	Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   © ó    úAC:\Projects\Muse2API\.venv\Lib\site-packages\psutil/_pswindows.pyr'   r'   e   s4   € € € € € Ø"=ÐØ"=ÐØ-ÐØ-ÐØ1ÐØ5ÐÐÐr,   r'   c                   ó   — e Zd ZdZdZdZdZdS )Ú
IOPriorityr   r   é   é   N)r(   r)   r*   r   r   r   r   r+   r,   r-   r/   r/   q   s"   € € € € € Ø€NØ€JØ€MØ€K€K€Kr,   r/   Únum_handlesÚctx_switchesÚ	user_timer0   Úkernel_timer1   Úcreate_timeé   Únum_threadsé   Ú	io_rcountÚ	io_wcounté   Ú	io_rbytesé   Ú	io_wbytesé	   Úio_count_othersé
   Úio_bytes_othersé   Únum_page_faultsé   Ú	peak_wseté   Úwseté   Úpeak_paged_poolé   Ú
paged_poolé   Úpeak_non_paged_poolé   Únon_paged_poolé   Úpagefileé   Úpeak_pagefileé   Úmem_privateé   i   )Úmaxsizec                 óX  — |                       d¦  «        r| S d                     |                      d¦  «        dd…         ¦  «        }|dv rdd                     |                      d¦  «        dd…         ¦  «        }dd                     |                      d¦  «        dd…         ¦  «        z   }nE|                      d¦  «        r|                      d¦  «        d         }nt          j        |¦  «        }| t          |¦  «        d…         }t          j                             ||¦  «        S )	zÌConvert paths using native DOS format like:
        "\Device\HarddiskVolume1\Windows\systemew\file.txt" or
        "\??\C:\Windows\systemew\file.txt"
    into:
        "C:\Windows\systemew\file.txt".
    z\\ú\Nr1   >   ú\??\UNCú\Device\Mupr9   z\??\r0   )Ú
startswithÚjoinÚsplitÚcextÚQueryDosDeviceÚlenÚosÚpath)ÚsÚrawdriveÚdriveletterÚ	remainders       r-   Úconvert_dos_pathrj   ™   s  € ð 	‡|‚|�FÑÔð ØˆØ�yŠy˜Ÿš ™œ r¨ rÔ*Ñ+Ô+€HØÐ1Ð1Ð1Ø—9’9˜QŸWšW T™]œ]¨2¨A¨2Ô.Ñ/Ô/ˆØ˜tŸyšy¨¯ª°©¬°q¸°sÔ);Ñ<Ô<Ñ<ˆˆØ	×	Ò	˜XÑ	&Ô	&ð 4Ø—g’g˜d‘m”m AÔ&ˆˆåÔ)¨(Ñ3Ô3ˆØ•#�h‘-”-�/�/Ô"€IÝŒ7�<Š<˜ YÑ/Ô/Ð/r,   c                  ó(   — t          j        ¦   «         S ©N)ra   Úgetpagesizer+   r,   r-   rm   rm   ¯   s   € åÔÑÔÐr,   c                  ó¦   — t          j        ¦   «         } | \  }}}}|}|}|}||z
  }t          ||z
  |d¬¦  «        }	t          j        |||	||¦  «        S )z&System virtual memory as a namedtuple.r   ©Úround_)ra   Úvirtual_memr   ÚntpÚsvmem)
ÚmemÚtotphysÚ	availphysÚ_totsysÚ	_availsysÚtotalÚavailÚfreeÚusedÚpercents
             r-   Úvirtual_memoryr~   ¹   sf   € å
Ô
Ñ
Ô
€CØ-0Ñ*€GˆY˜ Ø€EØ€EØ€DØ�5‰=€DÝ˜U U™]¨U¸1Ð=Ñ=Ô=€GÝŒ9�U˜E 7¨D°$Ñ7Ô7Ð7r,   c                  ó  — t          j        ¦   «         } | d         }| d         }||z
  }|dk    r)t          j        ¦   «         }t          d|z  |z  ¦  «        }nd}d}||z
  }t	          |d¦  «        }t          j        ||||dd¦  «        S )z=Swap system memory as a (total, used, free, sin, sout) tuple.r   r0   g{®Gáz„?ç        r   )ra   rq   Úswap_percentÚintÚroundrr   Ússwap)rt   Ú
total_physÚtotal_systemry   Úpercentswapr|   r{   r}   s           r-   Úswap_memoryrˆ   Å   sœ   € å
Ô
Ñ
Ô
€Cà�Q”€JØ�q”6€Lð ˜:Ñ%€Eð
 ˆq‚y€yÝÔ'Ñ)Ô)ˆÝ�4˜+Ñ%¨Ñ-Ñ.Ô.ˆˆàˆØˆà�4‰<€DÝ�K Ñ#Ô#€GÝŒ9�U˜D $¨°°AÑ6Ô6Ð6r,   c                 óæ   — t          | t          ¦  «        r|                      t          d¬¦  «        } t	          j        | ¦  «        \  }}}t          ||d¬¦  «        }t          j        ||||¦  «        S )z'Return disk usage associated with path.Ústrict)Úerrorsr   ro   )	Ú
isinstanceÚbytesÚdecoder   ra   Ú
disk_usager   rr   Ú
sdiskusage)re   ry   r|   r{   r}   s        r-   r�   r�   ì   sk   € å�$�ÑÔð 6ð �{Š{�8¨Hˆ{Ñ5Ô5ˆÝœ¨Ñ-Ô-Ñ€Eˆ4�Ý˜D %°Ð2Ñ2Ô2€GÝŒ>˜%  t¨WÑ5Ô5Ð5r,   c                 óB   — t          j        | ¦  «        }d„ |D ¦   «         S )zReturn disk partitions.c                 ó*   — g | ]}t          j        |Ž ‘ŒS r+   )rr   Ú	sdiskpart)Ú.0Úxs     r-   ú
<listcomp>z#disk_partitions.<locals>.<listcomp>ú   s   € Ð/Ð/Ð/ !�CŒM˜1ÐÐ/Ð/Ð/r,   )ra   Údisk_partitions)ÚallÚrawlists     r-   r—   r—   ÷   s&   € åÔ" 3Ñ'Ô'€GØ/Ð/ wÐ/Ñ/Ô/Ð/r,   c                  óÔ   — t          j        ¦   «         \  } }}t          j        d„ t	          t          j        ¦   «         Ž D ¦   «         Ž }t          j        | |||j        |j        ¦  «        S )z)Return system CPU times as a named tuple.c                 ó,   — g | ]}t          |¦  «        ‘ŒS r+   )Úsum)r”   Úns     r-   r–   zcpu_times.<locals>.<listcomp>	  s   € Ð	5Ð	5Ð	5�Q�#ˆa‰&Œ&Ð	5Ð	5Ð	5r,   )ra   Ú	cpu_timesrr   Ú	scputimesÚzipÚper_cpu_timesÚ	interruptÚdpc)ÚuserÚsystemÚidleÚpercpu_summeds       r-   rž   rž     sj   € åœÑ)Ô)Ñ€Dˆ&�$õ ”MØ	5Ð	5�#�tÔ1Ñ3Ô3Ð4Ð	5Ñ	5Ô	5ð€Mõ Œ=Øˆf�d˜MÔ3°]Ô5Fñô ð r,   c                  óœ   — g } t          j        ¦   «         D ]5\  }}}}}t          j        |||||¦  «        }|                      |¦  «         Œ6| S )z6Return system per-CPU times as a list of named tuples.)ra   r¡   rr   rŸ   Úappend)Úretr¤   r¥   r¦   r¢   r£   Úitems          r-   r¡   r¡     s[   € à
€CÝ.2Ô.@Ñ.BÔ.Bð ð Ñ*ˆˆf�d˜I sÝŒ}˜T 6¨4°¸CÑ@Ô@ˆØ�
Š
�4ÑÔÐÐØ€Jr,   c                  ó(   — t          j        ¦   «         S )z0Return the number of logical CPUs in the system.)ra   Úcpu_count_logicalr+   r,   r-   r­   r­     s   € åÔ!Ñ#Ô#Ð#r,   c                  ó(   — t          j        ¦   «         S )z-Return the number of CPU cores in the system.)ra   Úcpu_count_coresr+   r,   r-   r¯   r¯     s   € åÔÑ!Ô!Ð!r,   c                  ód   — t          j        ¦   «         \  } }}}d}t          j        | |||¦  «        S )zReturn CPU statistics.r   )ra   Ú	cpu_statsrr   Ú	scpustats)r3   Ú
interruptsÚ_dpcsÚsyscallsÚsoft_interruptss        r-   r±   r±   #  s3   € å04´Ñ0@Ô0@Ñ-€L�*˜e XØ€OÝŒ=˜ z°?ÀHÑMÔMÐMr,   c                  ó”   — t          j        ¦   «         \  } }d}t          j        t	          | ¦  «        |t	          |¦  «        ¦  «        gS )zMReturn CPU frequency.
    On Windows per-cpu frequency is not supported.
    r€   )ra   Úcpu_freqrr   ÚscpufreqÚfloat)ÚcurrÚmax_Úmin_s      r-   r¸   r¸   *  s;   € õ ”‘”�J€Dˆ$Ø€DÝŒL�˜t™œ d­E°$©K¬KÑ8Ô8Ð9Ð9r,   Fc                  óZ   — t          j        ¦   «         } t          d„ | D ¦   «         ¦  «        S )Nc              3   ó6   K  — | ]}t          |d ¦  «        V — ŒdS )r0   N)rƒ   )r”   Úloads     r-   ú	<genexpr>z#_getloadavg_impl.<locals>.<genexpr>:  s*   è è € Ð6Ð6 D•�t˜Q‘”Ð6Ð6Ð6Ð6Ð6Ð6r,   )ra   Ú
getloadavgÚtuple)Ú	raw_loadss    r-   Ú_getloadavg_implrÅ   7  s,   € å”Ñ!Ô!€IÝÐ6Ð6¨IÐ6Ñ6Ô6Ñ6Ô6Ð6r,   c                  ó¾   — t           rt          ¦   «         S t          5  t           st          j        ¦   «          da ddd¦  «         n# 1 swxY w Y   t          ¦   «         S )z„Return the number of processes in the system run queue averaged
    over the last 1, 5, and 15 minutes respectively as a tuple.
    TN)Ú_loadavg_initializedrÅ   Ú_lockra   Úinit_loadavg_counterr+   r,   r-   rÂ   rÂ   =  sž   € õ ð "ÝÑ!Ô!Ð!å	ð (ð (Ý#ð 	(ÝÔ%Ñ'Ô'Ð'Ø#'Ð ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (õ
 ÑÔÐs   �AÁA
ÁA
c                 ó  — t           |          \  }}t          j        |||¦  «        }t          ¦   «         }|D ]E}|\  }}}	}
}}}t	          |||	|
||t
          |dk    r|nd¬¦  «        }|                     |¦  «         ŒFt          |¦  «        S )zˆReturn socket connections.  If pid == -1 return system-wide
    connections (as opposed to connections opened by one process only).
    r%   N)Úpid)r
   ra   Únet_connectionsÚsetr   ÚTCP_STATUSESÚaddÚlist)ÚkindÚ_pidÚfamiliesÚtypesr™   rª   r«   ÚfdÚfamÚtypeÚladdrÚraddrÚstatusrË   Únts                  r-   rÌ   rÌ   S  s¨   € õ   ”o�O€HˆeÝÔ" 4¨°5Ñ9Ô9€GÝ
‰%Œ%€CØð ð ˆØ37Ñ0ˆˆC��u˜e V¨SÝØØØØØØÝØ˜r’z�z�� tð	
ñ 	
ô 	
ˆð 	�Š�‰ŒˆˆÝ�‰9Œ9Ðr,   c                  óú   — i } t          j        ¦   «         }|                     ¦   «         D ]P\  }}|\  }}}}t          t          d¦  «        rt	          j        |¦  «        }t          j        ||||d¦  «        | |<   ŒQ| S )z)Get NIC stats (isup, duplex, speed, mtu).Ú	NicDuplexÚ )ra   Únet_if_statsÚitemsÚhasattrr   rÝ   rr   Ú	snicstats)rª   ÚrawdictÚnamerà   ÚisupÚduplexÚspeedÚmtus           r-   rß   rß   j  s„   € à
€CÝÔÑ!Ô!€GØ—}’}‘”ð @ð @‰ˆˆeØ#(Ñ ˆˆf�e˜SÝ•7˜KÑ(Ô(ð 	/ÝÔ& vÑ.Ô.ˆFÝ”M $¨°°s¸BÑ?Ô?ˆˆD‰	ˆ	Ø€Jr,   c                  ó(   — t          j        ¦   «         S )zsReturn network I/O statistics for every network interface
    installed on the system as a dict of raw tuples.
    )ra   Únet_io_countersr+   r,   r-   rê   rê   v  s   € õ ÔÑ!Ô!Ð!r,   c                  ó(   — t          j        ¦   «         S )z,Return the addresses associated to each NIC.)ra   Únet_if_addrsr+   r,   r-   rì   rì   }  s   € åÔÑÔÐr,   c                  ó   — t          j        ¦   «         \  } }}}| dk    }t          |dz  ¦  «        }t          |dz  ¦  «        }|rdS |s|rt          j        }n|dk    rt          j        }t          j        |||¦  «        S )zReturn battery information.r   é€   r>   Nr%   )ra   Úsensors_batteryÚboolr   ÚPOWER_TIME_UNLIMITEDÚPOWER_TIME_UNKNOWNrr   Úsbattery)Úacline_statusÚflagsr}   ÚsecsleftÚpower_pluggedÚ
no_batteryÚchargings          r-   rï   rï   ‡  s�   € õ
 /3Ô.BÑ.DÔ.DÑ+€M�5˜' 8Ø! QÒ&€MÝ�e˜c‘kÑ"Ô"€JÝ�E˜A‘I‰Œ€Hàð ØˆtØð .˜ð .ÝÔ/ˆˆØ	�RŠˆÝÔ-ˆåŒ<˜ ¨=Ñ9Ô9Ð9r,   c                  óœ   — t          j         ¦   «         t          j        ¦   «         z
  } t          | t          z
  ¦  «        dk    rt          S | a| S )z�The system boot time expressed in seconds since the epoch. This
    also includes the time spent during hybernate / suspend.
    r   )Útimera   ÚuptimeÚabsÚ_last_btime)rª   s    r-   Ú	boot_timerÿ   £  sB   € õ Œ)‰+Œ+�œ™œÑ
%€CÝ
ˆ3•ÑÑÔ Ò"Ð"ÝÐàˆØˆ
r,   c                  ó    — g } t          j        ¦   «         }|D ]5}|\  }}}t          j        |d||d¦  «        }|                      |¦  «         Œ6| S )z:Return currently connected users as a list of namedtuples.N)ra   Úusersrr   Úsuserr©   )Úretlistr™   r«   r¤   ÚhostnameÚtstamprÛ   s          r-   r  r  ³  s^   € à€GÝŒj‰lŒl€GØð ð ˆØ!%Ñˆˆh˜ÝŒY�t˜T 8¨V°TÑ:Ô:ˆØ�Š�rÑÔÐÐØ€Nr,   c               #   ó`   K  — t          j        ¦   «         D ]\  } }t          | |¦  «        V — ŒdS )z*Yields a list of WindowsService instances.N)ra   Úwinservice_enumerateÚWindowsService)rä   Údisplay_names     r-   r   r   Ã  sF   è è € å"Ô7Ñ9Ô9ð 1ð 1ÑˆˆlÝ˜T <Ñ0Ô0Ð0Ð0Ð0Ð0ð1ð 1r,   c                 ód   — t          | d¦  «        }|                     ¦   «         d         |_        |S )zBOpen a Windows service and return it as a WindowsService instance.Nr	  )r  Ú_query_configÚ_display_name)rä   Úservices     r-   r   r   É  s/   € å˜T 4Ñ(Ô(€GØ#×1Ò1Ñ3Ô3°NÔC€GÔØ€Nr,   c                   ó’   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ej        d	„ ¦   «         Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )r  z(Represents an installed Windows service.c                 ó"   — || _         || _        d S rl   )Ú_namer  )Úselfrä   r	  s      r-   Ú__init__zWindowsService.__init__Ó  s   € ØˆŒ
Ø)ˆÔÐÐr,   c                 óH   — d| j         ›d| j        ›d�}| j        j        › |› �S )Nz(name=z, display_name=ú))r  r  Ú	__class__r(   )r  Údetailss     r-   Ú__str__zWindowsService.__str__×  s5   € ØO˜4œ:ÐOÐO¸Ô8JÐOÐOÐOˆØ”.Ô)Ð4¨7Ð4Ð4Ð4r,   c                 óR   — d|                       ¦   «         › dt          | ¦  «        › d�S )Nú<z at ú>)r  Úid©r  s    r-   Ú__repr__zWindowsService.__repr__Û  s)   € Ø2�4—<’<‘>”>Ð2Ð2¥r¨$¡x¤xÐ2Ð2Ð2Ð2r,   c                 óZ   — t          |t          ¦  «        st          S | j        |j        k    S rl   )rŒ   r  ÚNotImplementedr  ©r  Úothers     r-   Ú__eq__zWindowsService.__eq__Þ  s+   € õ ˜%¥Ñ0Ô0ð 	"Ý!Ð!ØŒz˜Uœ[Ò(Ð(r,   c                 ó   — | |k     S rl   r+   r   s     r-   Ú__ne__zWindowsService.__ne__å  s   € Ø˜5’=Ð Ð r,   c                 ó¼   — |                       ¦   «         5  t          j        | j        ¦  «        \  }}}}d d d ¦  «         n# 1 swxY w Y   t	          ||||¬¦  «        S )N)r	  ÚbinpathÚusernameÚ
start_type)Ú_wrap_exceptionsra   Úwinservice_query_configr  Údict)r  r	  r&  r'  r(  s        r-   r  zWindowsService._query_configè  s«   € Ø×"Ò"Ñ$Ô$ð 	ð 	åÔ,¨T¬ZÑ8Ô8ñ 8ˆL˜' 8¨Zð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ
 Ø%ØØØ!ð	
ñ 
ô 
ð 	
s   •A Á AÁAc                 óÄ   — |                       ¦   «         5  t          j        | j        ¦  «        \  }}d d d ¦  «         n# 1 swxY w Y   |dk    rd }t	          ||¬¦  «        S )Nr   )rÚ   rË   )r)  ra   Úwinservice_query_statusr  r+  )r  rÚ   rË   s      r-   Ú_query_statuszWindowsService._query_statusõ  s±   € Ø×"Ò"Ñ$Ô$ð 	Cð 	CÝÔ6°t´zÑBÔB‰KˆF�Cð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cà�!Š8ˆ8ØˆCÝ˜6 sÐ+Ñ+Ô+Ð+s   •>¾AÁAc              #   ó  K  — 	 dV — dS # t           $ rm}| j        }t          |¦  «        rd|›d�}t          d||¬¦  «        |‚|j        t
          j        t
          j        hv rd|›d�}t          d||¬¦  «        |‚‚ d}~ww xY w)z{Ctx manager which translates bare OSError and WindowsError
        exceptions into NoSuchProcess and AccessDenied.
        Nzservice z( is not querable (not enough privileges)©rË   rä   Úmsgz does not exist)	ÚOSErrorr  Úis_permission_errr   Úwinerrorra   ÚERROR_INVALID_NAMEÚERROR_SERVICE_DOES_NOT_EXISTr   )r  Úerrrä   r1  s       r-   r)  zWindowsService._wrap_exceptionsü  sÆ   è è € ð
	ØˆEˆEˆEˆEˆEøÝð 	ð 	ð 	Ø”:ˆDÝ  Ñ%Ô%ð àO˜tÐOÐOÐOð õ # t°$¸CÐ@Ñ@Ô@ÀcÐIØ”ÝÔ'ÝÔ1ð"ð ð ð 9 Ð8Ð8Ð8�Ý#¨°4¸SÐAÑAÔAÀsÐJàøøøøð	øøøs   „
 Š
B”A(A<Á<Bc                 ó   — | j         S )z¢The service name. This string is how a service is referenced
        and can be passed to win_service_get() to get a new
        WindowsService instance.
        )r  r  s    r-   rä   zWindowsService.name  s   € ð
 ŒzÐr,   c                 ó   — | j         S )z_The service display name. The value is cached when this class
        is instantiated.
        )r  r  s    r-   r	  zWindowsService.display_name  s   € ð Ô!Ð!r,   c                 ó6   — |                       ¦   «         d         S )zwThe fully qualified path to the service binary/exe file as
        a string, including command line arguments.
        r&  ©r  r  s    r-   r&  zWindowsService.binpath"  s   € ð ×!Ò!Ñ#Ô# IÔ.Ð.r,   c                 ó6   — |                       ¦   «         d         S )z,The name of the user that owns this service.r'  r;  r  s    r-   r'  zWindowsService.username(  s   € à×!Ò!Ñ#Ô# JÔ/Ð/r,   c                 ó6   — |                       ¦   «         d         S )zRA string which can either be "automatic", "manual" or
        "disabled".
        r(  r;  r  s    r-   r(  zWindowsService.start_type,  s   € ð ×!Ò!Ñ#Ô# LÔ1Ð1r,   c                 ó6   — |                       ¦   «         d         S )zzThe process PID, if any, else None. This can be passed
        to Process class to control the service's process.
        rË   ©r.  r  s    r-   rË   zWindowsService.pid4  s   € ð ×!Ò!Ñ#Ô# EÔ*Ð*r,   c                 ó6   — |                       ¦   «         d         S )zService status as a string.rÚ   r?  r  s    r-   rÚ   zWindowsService.status:  s   € à×!Ò!Ñ#Ô# HÔ-Ð-r,   c                 óN   — t          j        |                      ¦   «         ¦  «        S )zService long description.)ra   Úwinservice_query_descrrä   r  s    r-   ÚdescriptionzWindowsService.description>  s   € åÔ*¨4¯9ª9©;¬;Ñ7Ô7Ð7r,   c                 ó  — |                       ¦   «         }|                     |                      ¦   «         ¦  «         |                      ¦   «         |d<   |                      ¦   «         |d<   |                      ¦   «         |d<   |S )zUUtility method retrieving all the information above as a
        dictionary.
        rä   r	  rC  )r  Úupdater.  rä   r	  rC  )r  Úds     r-   Úas_dictzWindowsService.as_dictD  su   € ð ×ÒÑ Ô ˆØ	�Š�×#Ò#Ñ%Ô%Ñ&Ô&Ð&Ø—I’I‘K”Kˆˆ&‰	Ø ×-Ò-Ñ/Ô/ˆˆ.ÑØ×+Ò+Ñ-Ô-ˆˆ-ÑØˆr,   N)r(   r)   r*   Ú__doc__r  r  r  r"  r$  r  r.  Ú
contextlibÚcontextmanagerr)  rä   r	  r&  r'  r(  rË   rÚ   rC  rG  r+   r,   r-   r  r  Ð  s)  € € € € € Ø2Ð2ð*ð *ð *ð5ð 5ð 5ð3ð 3ð 3ð)ð )ð )ð!ð !ð !ð
ð 
ð 
ð,ð ,ð ,ð Ôðð ñ Ôðð0ð ð ð"ð "ð "ð/ð /ð /ð0ð 0ð 0ð2ð 2ð 2ð+ð +ð +ð.ð .ð .ð8ð 8ð 8ð	ð 	ð 	ð 	ð 	r,   r  c                 ó¨   — t          | t          ¦  «        s
J | ¦   «         ‚t          | t          ¦  «        p| j        t          j        t          j        hv S )z*Return True if this is a permission error.)rŒ   r2  ÚPermissionErrorr4  ra   ÚERROR_ACCESS_DENIEDÚERROR_PRIVILEGE_NOT_HELD)Úexcs    r-   r3  r3  �  sR   € å�c�7Ñ#Ô#Ð(Ð( SÑ(Ô(Ð#Ý�c�?Ñ+Ô+ð ¨s¬|ÝÔ ÝÔ%ð@ð 0ð r,   c                 óÐ   — t          | t          ¦  «        s
J | ¦   «         ‚t          | ¦  «        rt          ||¬¦  «        S t          | t          ¦  «        rt          ||¬¦  «        S | ‚)z3Convert OSError into NoSuchProcess or AccessDenied.©rË   rä   )rŒ   r2  r3  r   ÚProcessLookupErrorr   )rO  rË   rä   s      r-   Úconvert_oserrorrS  Š  sn   € å�c�7Ñ#Ô#Ð(Ð( SÑ(Ô(Ð#Ý˜ÑÔð 0Ý ¨$Ð/Ñ/Ô/Ð/Ý�#Õ)Ñ*Ô*ð 1Ý ¨4Ð0Ñ0Ô0Ð0Ø
€Ir,   c                 óF   ‡ — t          j        ‰ ¦  «        ˆ fd„¦   «         }|S )zDDecorator which converts OSError into NoSuchProcess or AccessDenied.c                 ó|   •— 	  ‰| g|¢R i |¤ŽS # t           $ r"}t          || j        | j        ¬¦  «        |‚d }~ww xY w)NrQ  )r2  rS  rË   r  )r  ÚargsÚkwargsr7  Úfuns       €r-   Úwrapperz wrap_exceptions.<locals>.wrapper—  sg   ø€ ð	OØ�3�tÐ-˜dÐ-Ð-Ð- fÐ-Ð-Ð-øÝð 	Oð 	Oð 	OÝ! #¨4¬8¸$¼*ÐEÑEÔEÈ3ÐNøøøøð	Oøøøs   ƒ �
;™6¶;©Ú	functoolsÚwraps©rX  rY  s   ` r-   Úwrap_exceptionsr^  ”  s?   ø€ õ „_�SÑÔðOð Oð Oð Oñ ÔðOð €Nr,   c                 óF   ‡ — t          j        ‰ ¦  «        ˆ fd„¦   «         }|S )z�Workaround for https://github.com/giampaolo/psutil/issues/875.
    See: https://stackoverflow.com/questions/4457745#4457745.
    c                 ó:  •— d}d}t          |¦  «        D ]a}	  ‰| g|¢R i |¤Žc S # t          $ rD}|}|j        t          k    r,t	          j        |¦  «         t          |dz  d¦  «        }Y d }~ŒY‚ d }~ww xY w‰› d|› d|› �}t          | j        | j	        |¬¦  «        ‚)Nç-Cëâ6?é!   r0   ç{®Gáz¤?z	 retried z: times, converted to AccessDenied as it's still returning r0  )
Úranger2  r4  ÚERROR_PARTIAL_COPYrû   ÚsleepÚminr   rË   r  )	r  rV  rW  ÚdelayÚtimesÚ_r7  r1  rX  s	           €r-   rY  z)retry_error_partial_copy.<locals>.wrapper¦  sø   ø€ àˆØˆÝ�u‘”ð 		ð 		ˆAðØ�s˜4Ð1 $Ð1Ð1Ð1¨&Ð1Ð1Ð1Ð1Ð1øÝð ð ð Ø�Ø”<Õ#5Ò5Ð5Ý”J˜uÑ%Ô%Ð%Ý ¨¡	¨4Ñ0Ô0�EØ�H�H�H�HØøøøøðøøøð ð %ð %˜Uð %ð %Ø"ð%ð %ð 	õ ˜tœx¨d¬j¸cÐBÑBÔBÐBs   ˜&¦
A4°9A/Á.A/Á/A4rZ  r]  s   ` r-   Úretry_error_partial_copyrk  ¡  s?   ø€ õ
 „_�SÑÔðCð Cð Cð Cñ ÔðCð& €Nr,   c                   ó  — e Zd ZdZg d¢Zd„ Zd„ Zd„ Zed„ ¦   «         Z	d„ Z
eed„ ¦   «         ¦   «         Zeed	„ ¦   «         ¦   «         Zeed
„ ¦   «         ¦   «         Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed*d„¦   «         Zed„ ¦   «         Zed+d„¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zeed„ ¦   «         ¦   «         Zed„ ¦   «         Z ed,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d)„ ¦   «         Z+dS )-ÚProcessz1Wrapper class around underlying C implementation.)Ú_cacher  Ú_ppidrË   c                 ó0   — || _         d | _        d | _        d S rl   )rË   r  ro  )r  rË   s     r-   r  zProcess.__init__Â  s   € ØˆŒØˆŒ
ØˆŒ
ˆ
ˆ
r,   c                 ón   — | j                              | ¦  «         | j                             | ¦  «         d S rl   )Ú
_proc_infoÚcache_activateÚexer  s    r-   Úoneshot_enterzProcess.oneshot_enterÉ  s4   € ØŒ×&Ò& tÑ,Ô,Ð,ØŒ×Ò Ñ%Ô%Ð%Ð%Ð%r,   c                 ón   — | j                              | ¦  «         | j                             | ¦  «         d S rl   )rr  Úcache_deactivatert  r  s    r-   Úoneshot_exitzProcess.oneshot_exitÍ  s4   € ØŒ×(Ò(¨Ñ.Ô.Ð.ØŒ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r,   c                 ó†   — t          j        | j        ¦  «        }t          |¦  «        t          t          ¦  «        k    sJ ‚|S )zOReturn multiple information about this process as a
        raw tuple.
        )ra   Ú	proc_inforË   rc   Ú	pinfo_map©r  rª   s     r-   rr  zProcess._proc_infoÑ  s7   € õ
 Œn˜TœXÑ&Ô&ˆÝ�3‰xŒx�3�y™>œ>Ò)Ð)Ð)Ð)Øˆ
r,   c                 ó˜   — | j         dk    rdS | j         dk    rdS t          j                             |                      ¦   «         ¦  «        S )zbReturn process name, which on Windows is always the final
        part of the executable.
        r   zSystem Idle Processr7   ÚSystem)rË   rd   re   Úbasenamert  r  s    r-   rä   zProcess.nameÚ  sC   € ð Œ8�qŠ=ˆ=Ø(Ð(ØŒ8�qŠ=ˆ=Ø�8ÝŒw×Ò §¢¡
¤
Ñ+Ô+Ð+r,   c                 óZ  — t           rf	 t          j        | j        ¦  «        }nd# t          $ r>}|j        dk    r-t          |›d�¦  «         t          | j        | j        ¦  «        |‚‚ d }~ww xY wt          j        | j        ¦  «        }| 	                    d¦  «        rt          |¦  «        S |S )Né   z translated into AccessDeniedr[   )ÚPYPYra   Úproc_exerË   r2  Úerrnor   r   r  r^   rj   )r  rt  r7  s      r-   rt  zProcess.exeæ  sº   € õ ð 	*ðÝ”m D¤HÑ-Ô-��øÝð ð ð ð ”9 ’?�?Ý˜SÐAÐAÐAÑBÔBÐBÝ& t¤x°´Ñ<Ô<À#ÐEØøøøøðøøøõ ”- ¤Ñ)Ô)ˆCØ�>Š>˜$ÑÔð 	)Ý# CÑ(Ô(Ð(Øˆ
s   ‰# £
A+­9A&Á&A+c                 ó(  — t           j        t           j        k    r^	 t          j        | j        d¬¦  «        S # t
          $ r5}t          |¦  «        r t          j        | j        d¬¦  «        cY d }~S ‚ d }~ww xY wt          j        | j        d¬¦  «        S )NT)Úuse_pebF)ra   ÚWINVERÚWINDOWS_8_1Úproc_cmdlinerË   r2  r3  ©r  r7  s     r-   ÚcmdlinezProcess.cmdlineù  s¤   € õ Œ;�$Ô*Ò*Ð*ðÝÔ(¨¬¸4Ð@Ñ@Ô@Ð@øÝð ð ð Ý$ SÑ)Ô)ð ÝÔ,¨T¬X¸uÐEÑEÔEÐEÐEÐEÐEÐEÐEàøøøøð	øøøõ Ô$ T¤X°tÐ<Ñ<Ô<Ð<s!   œ7 ·
A6Á)A1Á*A6Á0A1Á1A6c                 óR   — t          j        | j        ¦  «        }t          |¦  «        S rl   )ra   Úproc_environrË   r   )r  rf   s     r-   ÚenvironzProcess.environ	  s$   € õ Ô˜dœhÑ'Ô'ˆÝ" 1Ñ%Ô%Ð%r,   c                 óˆ   — 	 t          ¦   «         | j                 S # t          $ r t          | j        | j        ¦  «        d ‚w xY wrl   )Úppid_maprË   ÚKeyErrorr   r  r  s    r-   ÚppidzProcess.ppid  sN   € ð	@Ý‘:”:˜dœhÔ'Ð'øÝð 	@ð 	@ð 	@Ý ¤¨$¬*Ñ5Ô5¸4Ð?ð	@øøøs	   ‚ ›&Ac                 ó6  — 	 t          j        | j        ¦  «        S # t          $ ró}t	          |¦  «        rÞt          d¦  «         |                      ¦   «         }|t          d                  |t          d                  |t          d                  |t          d                  |t          d                  |t          d                  |t          d                  |t          d	                  |t          d
                  |t          d                  f
cY d }~S ‚ d }~ww xY w)Nz*attempting memory_info() fallback (slower)rE   rG   rI   rK   rM   rO   rQ   rS   rU   rW   )ra   Úproc_memory_inforË   r2  r3  r   rr  r{  )r  r7  Úinfos      r-   Ú_get_raw_meminfozProcess._get_raw_meminfo  s  € ð	ÝÔ(¨¬Ñ2Ô2Ð2øÝð 	ð 	ð 	Ý  Ñ%Ô%ð õ ÐBÑCÔCÐCØ—’Ñ(Ô(�à�Ð#4Ô5Ô6Ø� ;Ô/Ô0Ø� 6Ô*Ô+Ø�Ð#4Ô5Ô6Ø� <Ô0Ô1Ø�Ð#8Ô9Ô:Ø�Ð#3Ô4Ô5Ø� :Ô.Ô/Ø� ?Ô3Ô4Ø� =Ô1Ô2ðð ð ð ð ð ð ð øøøøð%	øøøs!   ‚ ›
D¥C'DÄDÄDÄDc                 óp   — |                       ¦   «         }|d         }|d         }t          j        ||f|z   Ž S )Nr0   r<   )r–  rr   Úpmem)r  ÚtÚrssÚvmss       r-   Úmemory_infozProcess.memory_info,  s<   € ð
 ×!Ò!Ñ#Ô#ˆØ�ŒdˆØ�ŒdˆÝŒx˜#˜s˜ a™Ð(Ð(r,   c                 ó¢   — |                       ¦   «         }t          j        | j        ¦  «        }|t	          ¦   «         z  }t          j        ||fz   Ž S rl   )rœ  ra   Úproc_memory_ussrË   rm   rr   Úpfullmem)r  Ú	basic_memÚusss      r-   Úmemory_full_infozProcess.memory_full_info6  sG   € à×$Ò$Ñ&Ô&ˆ	ÝÔ" 4¤8Ñ,Ô,ˆØ�{‰}Œ}ÑˆÝŒ|˜Y¨#¨Ñ/Ð0Ð0r,   c              #   óú   K  — 	 t          j        | j        ¦  «        }|D ]-\  }}}}t          |¦  «        }t	          |¦  «        }||||fV — Œ.d S # t
          $ r!}t          || j        | j        ¦  «        |‚d }~ww xY wrl   )ra   Úproc_memory_mapsrË   rj   Úhexr2  rS  r  )r  ÚrawÚaddrÚpermre   rš  r7  s          r-   Úmemory_mapszProcess.memory_maps=  s°   è è € ð
	.ÝÔ'¨¬Ñ1Ô1ˆCð *-ð .ð .Ñ%��d˜D #Ý'¨Ñ-Ô-�Ý˜4‘y”y�Ø˜T 4¨Ð-Ð-Ð-Ð-Ð-ð.ð .øõ ð 	Fð 	Fð 	Fõ " # t¤x°´Ñ<Ô<À#ÐEøøøøð	Føøøs   „A Á
A:ÁA5Á5A:c                 ó4   — t          j        | j        ¦  «        S rl   )ra   Ú	proc_killrË   r  s    r-   ÚkillzProcess.killJ  s   € åŒ~˜dœhÑ'Ô'Ð'r,   c                 óæ   — |t           j        k    rt          j        | j        ¦  «         d S |t           j        t           j        hv rt          j        | j        |¦  «         d S d}t          |¦  «        ‚)NzPonly SIGTERM, CTRL_C_EVENT and CTRL_BREAK_EVENT signals are supported on Windows)
ÚsignalÚSIGTERMra   r«  rË   ÚCTRL_C_EVENTÚCTRL_BREAK_EVENTrd   r¬  Ú
ValueError)r  Úsigr1  s      r-   Úsend_signalzProcess.send_signalN  so   € à•&”.Ò Ð ÝŒN˜4œ8Ñ$Ô$Ð$Ð$Ð$Ø•VÔ(­&Ô*AÐBÐBÐBÝŒG�D”H˜cÑ"Ô"Ð"Ð"Ð"ð+ð õ ˜S‘/”/Ð!r,   Nc                 óB  — |€t           j        }nt          |dz  ¦  «        }t          t          dt          j        ¦  «        }|� |¦   «         |z   nd }	 t          j        | j        |¦  «        }nE# t           j        $ r!}t          || j        | j        ¦  «        |‚d }~wt           j	        $ r d }Y nw xY wd}	 t          | j        ¦  «        s|S |r* |¦   «         |k    rt          || j        | j        ¬¦  «        ‚t	          j        |¦  «         t          |dz  d¦  «        }Œj)Niè  Ú	monotonicra  TrQ  r0   rc  )ra   ÚINFINITEr‚   Úgetattrrû   Ú	proc_waitrË   r	   r  ÚTimeoutAbandonedÚ
pid_existsrf  rg  )r  ÚtimeoutÚcext_timeoutÚtimerÚstop_atÚ	exit_coder7  rh  s           r-   ÚwaitzProcess.wait[  sG  € àˆ?Ýœ=ˆLˆLõ ˜w¨™~Ñ.Ô.ˆLå�˜k­4¬9Ñ5Ô5ˆØ'.Ð':�%�%‘'”'˜GÑ#Ð#Àˆð	õ œ t¤x°Ñ>Ô>ˆIˆIøÝÔ"ð 	Ið 	Ið 	Iå  ¨$¬(°D´JÑ?Ô?ÀSÐHøøøøÝÔ$ð 		ð 		ð 		ð ˆIˆIˆIð		øøøð ˆð	)Ý˜dœhÑ'Ô'ð !Ø Ð Øð M˜5˜5™7œ7 gÒ-Ð-Ý$ W°$´(ÀÄÐLÑLÔLÐLÝŒJ�uÑÔÐÝ˜ ™	 4Ñ(Ô(ˆEð	)s   ÁA/ Á/B1Á>BÂB1Â0B1c                 ó^   — | j         dv rdS t          j        | j         ¦  «        \  }}|› d|› �S )N¾   r   r7   zNT AUTHORITY\SYSTEMr[   )rË   ra   Úproc_username)r  Údomainr¤   s      r-   r'  zProcess.username†  s?   € àŒ8�vÐÐØ)Ð)ÝÔ)¨$¬(Ñ3Ô3‰ˆ�ØÐ"Ð"˜DÐ"Ð"Ð"r,   Fc                 óþ   — 	 t          j        | j        ¦  «        \  }}}|S # t          $ rQ}t	          |¦  «        r<|r‚ t          d¦  «         |                      ¦   «         t          d                  cY d }~S ‚ d }~ww xY w)Nz*attempting create_time() fallback (slower)r6   )ra   Ú
proc_timesrË   r2  r3  r   rr  r{  )r  Ú	fast_onlyÚ_userÚ_systemÚcreatedr7  s         r-   r6   zProcess.create_time�  sš   € ð		Ý&*¤o°d´hÑ&?Ô&?Ñ#ˆE�7˜GØˆNøÝð 	ð 	ð 	Ý  Ñ%Ô%ð CØð ØÝÐBÑCÔCÐCØ—’Ñ(Ô(­°=Ô)AÔBÐBÐBÐBÐBÐBÐBØøøøøð	øøøs!   ‚! ¡
A<«AA7Á0A<Á6A7Á7A<c                 óL   — |                       ¦   «         t          d                  S )Nr8   )rr  r{  r  s    r-   r8   zProcess.num_threadsœ  s   € à�ŠÑ Ô ¥¨=Ô!9Ô:Ð:r,   c                 ó¤   — t          j        | j        ¦  «        }g }|D ]1\  }}}t          j        |||¦  «        }|                     |¦  «         Œ2|S rl   )ra   Úproc_threadsrË   rr   Úpthreadr©   )r  r™   r  Ú	thread_idÚutimeÚstimeÚntuples          r-   ÚthreadszProcess.threads   s\   € åÔ# D¤HÑ-Ô-ˆØˆØ'.ð 	#ð 	#Ñ#ˆI�u˜eÝ”[ ¨E°5Ñ9Ô9ˆFØ�NŠN˜6Ñ"Ô"Ð"Ð"Øˆr,   c                 óN  — 	 t          j        | j        ¦  «        \  }}}np# t          $ rc}t	          |¦  «        s‚ t          d¦  «         |                      ¦   «         }|t          d                  }|t          d                  }Y d }~nd }~ww xY wt          j	        ||dd¦  «        S )Nz(attempting cpu_times() fallback (slower)r4   r5   r€   )
ra   rÇ  rË   r2  r3  r   rr  r{  rr   Ú	pcputimes)r  r¤   r¥   Ú_createdr7  r•  s         r-   rž   zProcess.cpu_times©  s±   € ð	4Ý%)¤_°T´XÑ%>Ô%>Ñ"ˆD�&˜(˜(øÝð 	4ð 	4ð 	4Ý$ SÑ)Ô)ð ØÝÐ<Ñ=Ô=Ð=Ø—?’?Ñ$Ô$ˆDØ�	 +Ô.Ô/ˆDØ�) MÔ2Ô3ˆFˆFˆFˆFˆFˆFøøøøð	4øøøõ Œ}˜T 6¨3°Ñ4Ô4Ð4s   ‚   
BªABÂBc                 ó:   — t          j        | j        d¦  «         d S )NT©ra   Úproc_suspend_or_resumerË   r  s    r-   ÚsuspendzProcess.suspend·  s   € åÔ# D¤H¨dÑ3Ô3Ð3Ð3Ð3r,   c                 ó:   — t          j        | j        d¦  «         d S )NFrÙ  r  s    r-   ÚresumezProcess.resume»  s   € åÔ# D¤H¨eÑ4Ô4Ð4Ð4Ð4r,   c                 ó¸   — | j         dv rt          | j         | j        ¦  «        ‚t          j        | j         ¦  «        }t
          j                             |¦  «        S )NrÃ  )rË   r   r  ra   Úproc_cwdrd   re   Únormpath)r  re   s     r-   ÚcwdzProcess.cwd¿  sN   € ð Œ8�vÐÐÝ˜tœx¨¬Ñ4Ô4Ð4õ Œ}˜TœXÑ&Ô&ˆÝŒw×Ò Ñ%Ô%Ð%r,   c                 ó  — | j         dv rg S t          ¦   «         }t          j        | j         ¦  «        }|D ]J}t	          |¦  «        }t          |¦  «        r*t          j        |d¦  «        }|                     |¦  «         ŒKt          |¦  «        S )NrÃ  r%   )
rË   rÍ   ra   Úproc_open_filesrj   r   rr   Ú	popenfilerÏ   rÐ   )r  rª   Úraw_file_namesÚfilerÓ  s        r-   Ú
open_fileszProcess.open_filesÉ  sŠ   € àŒ8�vÐÐØˆIÝ‰eŒeˆõ
 Ô-¨d¬hÑ7Ô7ˆØ"ð 	 ð 	 ˆDÝ# DÑ)Ô)ˆDÝ˜TÑ"Ô"ð  Ýœ t¨RÑ0Ô0�Ø—’˜‘”�øÝ�C‰yŒyÐr,   Úinetc                 ó.   — t          || j        ¬¦  «        S )N)rÒ   )rÌ   rË   )r  rÑ   s     r-   rÌ   zProcess.net_connectionsÚ  s   € å˜t¨$¬(Ð3Ñ3Ô3Ð3r,   c                 óV   — t          j        | j        ¦  «        }t          |¦  «        }|S rl   )ra   Úproc_priority_getrË   r'   ©r  Úvalues     r-   Únice_getzProcess.nice_getÞ  s$   € åÔ& t¤xÑ0Ô0ˆÝ˜‘”ˆØˆr,   c                 ó6   — t          j        | j        |¦  «        S rl   )ra   Úproc_priority_setrË   rì  s     r-   Únice_setzProcess.nice_setä  s   € åÔ% d¤h°Ñ6Ô6Ð6r,   c                 óV   — t          j        | j        ¦  «        }t          |¦  «        }|S rl   )ra   Úproc_io_priority_getrË   r/   r|  s     r-   Ú
ionice_getzProcess.ionice_getè  s$   € åÔ'¨¬Ñ1Ô1ˆÝ˜‰oŒoˆØˆ
r,   c                 óè   — |rd}t          |¦  «        ‚|t          j        t          j        t          j        t          j        hvr|› d�}t          |¦  «        ‚t          j        | j	        |¦  «         d S )Nz&value argument not accepted on Windowsz is not a valid priority)
Ú	TypeErrorr/   r   r   r   r   r²  ra   Úproc_io_priority_setrË   )r  Úioclassrí  r1  s       r-   Ú
ionice_setzProcess.ionice_setî  s|   € àð 	!Ø:ˆCÝ˜C‘.”.Ð ØÝÔ%ÝÔ!ÝÔ$ÝÔ"ð	
ð 
ð 
ð Ð6Ð6Ð6ˆCÝ˜S‘/”/Ð!ÝÔ! $¤(¨GÑ4Ô4Ð4Ð4Ð4r,   c           	      óÄ  — 	 t          j        | j        ¦  «        }n¸# t          $ r«}t	          |¦  «        s‚ t          d¦  «         |                      ¦   «         }|t          d                  |t          d                  |t          d                  |t          d                  |t          d                  |t          d                  f}Y d }~nd }~ww xY wt          j	        |Ž S )Nz*attempting io_counters() fallback (slower)r:   r;   r=   r?   rA   rC   )
ra   Úproc_io_countersrË   r2  r3  r   rr  r{  rr   Úpio)r  rª   r7  r•  s       r-   Úio_counterszProcess.io_countersý  sÚ   € ð	ÝÔ'¨¬Ñ1Ô1ˆCˆCøÝð 	ð 	ð 	Ý$ SÑ)Ô)ð ØÝÐ>Ñ?Ô?Ð?Ø—?’?Ñ$Ô$ˆDà•Y˜{Ô+Ô,Ø•Y˜{Ô+Ô,Ø•Y˜{Ô+Ô,Ø•Y˜{Ô+Ô,Ø•YÐ0Ô1Ô2Ø•YÐ0Ô1Ô2ðˆCˆCˆCˆCˆCˆCøøøøð	øøøõ Œw˜ˆ}Ðs   ‚ œ
C¦B!CÃCc                 óh   — t          j        | j        ¦  «        }|rt          j        S t          j        S rl   )ra   Úproc_is_suspendedrË   r   ÚSTATUS_STOPPEDÚSTATUS_RUNNING)r  Ú	suspendeds     r-   rÚ   zProcess.status  s.   € åÔ*¨4¬8Ñ4Ô4ˆ	Øð 	*ÝÔ)Ð)åÔ)Ð)r,   c                 óP   — d„ }t          j        | j        ¦  «        } ||¦  «        S )Nc                 ó:   ‡ — ˆ fd„t          d¦  «        D ¦   «         S )Nc                 ó$   •— g | ]}d |z  ‰z  ¯
|‘ŒS )r   r+   )r”   Úir•   s     €r-   r–   zBProcess.cpu_affinity_get.<locals>.from_bitmask.<locals>.<listcomp>  s&   ø€ Ð9Ð9Ð9˜!¨Q°!©V°q©LÐ9�AÐ9Ð9Ð9r,   é@   )rd  )r•   s   `r-   Úfrom_bitmaskz.Process.cpu_affinity_get.<locals>.from_bitmask  s#   ø€ Ø9Ð9Ð9Ð9�u R™yœyÐ9Ñ9Ô9Ð9r,   )ra   Úproc_cpu_affinity_getrË   )r  r  Úbitmasks      r-   Úcpu_affinity_getzProcess.cpu_affinity_get  s5   € ð	:ð 	:ð 	:õ Ô,¨T¬XÑ6Ô6ˆØˆ|˜GÑ$Ô$Ð$r,   c                 óN  — d„ }t          t          t          t          ¦   «         ¦  «        ¦  «        ¦  «        }|D ]D}||vr>t	          |t
          ¦  «        sd|›d�}t          |¦  «        ‚d|›�}t          |¦  «        ‚ŒE ||¦  «        }t          j	        | j
        |¦  «         d S )Nc                 óP   — | sd| ›�}t          |¦  «        ‚d}| D ]
}|d|z  z  }Œ|S )Nzinvalid argument r   r0   )r²  )Úlsr1  ÚoutÚbs       r-   Ú
to_bitmaskz,Process.cpu_affinity_set.<locals>.to_bitmask"  sK   € Øð &Ø0¨"Ð0Ð0�Ý  ‘o”oÐ%ØˆCØð ð �Ø�q˜!‘t‘��ØˆJr,   zinvalid CPU z; an integer is required)rÐ   rd  rc   r¡   rŒ   r‚   rö  r²  ra   Úproc_cpu_affinity_setrË   )r  rí  r  ÚallcpusÚcpur1  r
  s          r-   Úcpu_affinity_setzProcess.cpu_affinity_set   sÆ   € ð	ð 	ð 	õ •u�S¥¡¤Ñ1Ô1Ñ2Ô2Ñ3Ô3ˆØð 	&ð 	&ˆCØ˜'Ð!Ð!Ý! #¥sÑ+Ô+ð )ØH¨ÐHÐHÐH�CÝ# C™.œ.Ð(Ø, SÐ,Ð,�Ý  ‘o”oÐ%ð "ð �*˜UÑ#Ô#ˆÝÔ" 4¤8¨WÑ5Ô5Ð5Ð5Ð5r,   c                 óì   — 	 t          j        | j        ¦  «        S # t          $ rN}t	          |¦  «        r9t          d¦  «         |                      ¦   «         t          d                  cY d }~S ‚ d }~ww xY w)Nz*attempting num_handles() fallback (slower)r2   )ra   Úproc_num_handlesrË   r2  r3  r   rr  r{  rŠ  s     r-   r2   zProcess.num_handles:  s…   € ð	ÝÔ(¨¬Ñ2Ô2Ð2øÝð 	ð 	ð 	Ý  Ñ%Ô%ð CÝÐBÑCÔCÐCØ—’Ñ(Ô(­°=Ô)AÔBÐBÐBÐBÐBÐBÐBØøøøøð		øøøs!   ‚ ›
A3¥AA.Á'A3Á-A.Á.A3c                 óv   — |                       ¦   «         t          d                  }t          j        |d¦  «        S )Nr3   r   )rr  r{  rr   Úpctxsw)r  r3   s     r-   Únum_ctx_switcheszProcess.num_ctx_switchesD  s-   € à—’Ñ(Ô(­°>Ô)BÔCˆåŒz˜,¨Ñ*Ô*Ð*r,   rl   )F)rè  ),r(   r)   r*   rH  Ú	__slots__r  ru  rx  r   rr  rä   r^  rt  rk  r‹  rŽ  r’  r–  rœ  r¢  r©  r¬  r´  rÁ  r'  r6   r8   rÔ  rž   rÛ  rÝ  rá  rç  rÌ   rî  rñ  rô  rù  rý  rÚ   r  r  r2   r  r+   r,   r-   rm  rm  ½  sÝ  € € € € € Ø;Ð;à3Ð3Ð3€Iðð ð ð&ð &ð &ð(ð (ð (ð ðð ñ Ôðð
,ð 
,ð 
,ð Øðð ñ Ôñ „_ðð" Øð=ð =ñ Ôñ „_ð=ð Øð&ð &ñ Ôñ „_ð&ð@ð @ð @ðð ð ð. ð)ð )ñ „_ð)ð ð1ð 1ñ „_ð1ð.ð .ð .ð ð(ð (ñ „_ð(ð ð
"ð 
"ñ „_ð
"ð ð()ð ()ð ()ñ „_ð()ðT ð#ð #ñ „_ð#ð ðð ð ñ „_ðð ð;ð ;ñ „_ð;ð ðð ñ „_ðð ð5ð 5ñ „_ð5ð ð4ð 4ñ „_ð4ð ð5ð 5ñ „_ð5ð Øð&ð &ñ Ôñ „_ð&ð ðð ñ „_ðð  ð4ð 4ð 4ñ „_ð4ð ðð ñ „_ðð
 ð7ð 7ñ „_ð7ð ðð ñ „_ðð
 ð5ð 5ñ „_ð5ð ðð ñ „_ðð$ ð*ð *ñ „_ð*ð ð%ð %ñ „_ð%ð ð6ð 6ñ „_ð6ð2 ðð ñ „_ðð ð+ð +ñ „_ð+ð +ð +r,   rm  r+   )r%   )NN)zrH  rI  Úenumr[  rd   r®  ÚsysÚ	threadingrû   rÞ   r   r   rr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ra   ÚImportErrorr7  ÚstrÚlowerr^   Úgetwindowsversionr1  ÚRuntimeErrorÚ__extra__all__r    re  Úbuiltin_module_namesr‚  ÚIntEnumr$   r!   ÚMIB_TCP_STATE_ESTABÚCONN_ESTABLISHEDÚMIB_TCP_STATE_SYN_SENTÚCONN_SYN_SENTÚMIB_TCP_STATE_SYN_RCVDÚCONN_SYN_RECVÚMIB_TCP_STATE_FIN_WAIT1ÚCONN_FIN_WAIT1ÚMIB_TCP_STATE_FIN_WAIT2ÚCONN_FIN_WAIT2ÚMIB_TCP_STATE_TIME_WAITÚCONN_TIME_WAITÚMIB_TCP_STATE_CLOSEDÚ
CONN_CLOSEÚMIB_TCP_STATE_CLOSE_WAITÚCONN_CLOSE_WAITÚMIB_TCP_STATE_LAST_ACKÚCONN_LAST_ACKÚMIB_TCP_STATE_LISTENÚCONN_LISTENÚMIB_TCP_STATE_CLOSINGÚCONN_CLOSINGÚMIB_TCP_STATE_DELETE_TCBÚPSUTIL_CONN_NONEÚ	CONN_NONErÎ   r'   ÚglobalsrE  Ú__members__r/   r+  r{  Ú	lru_cacherj   rm   r~   rˆ   Ú	heap_infoÚ	heap_trimÚdisk_io_countersr�   r—   rž   r¡   r­   r¯   r±   r¸   rÇ   ÚLockrÈ   rÅ   rÂ   rÌ   rß   rê   rì   rï   rþ   rÿ   r  r   r   r  Úpidsr»  r�  r3  rS  r^  rk  rm  r+   r,   r-   ú<module>rH     s�  ðð
 'Ð &à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø (Ð (Ð (Ð (Ð (Ð (Ø "Ð "Ð "Ð "Ð "Ð "Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ðØ)Ð)Ð)Ð)Ð)Ð)Ð)øØð ð ð àˆˆC‰Œ�ŠÑÔ×#Ò#Ð$5Ñ6Ô6ðà!ˆCÔ!Ñ#Ô# AÔ&¨Ò*Ð*ð DˆØÐKÑKˆØÐ)Ñ)ˆØˆl˜3ÑÔ SÐ(àøøøøðøøøð(
ð 
ð 
€ð$ €ØÐ Ø�SÔ-Ð-€à�”˜_¨y¸"¨oÑ>Ô>€Ø
Ô
€ð 	Ô˜gÔ6ØÔ Ô!6ØÔ Ô!6ØÔ  'Ô"8ØÔ  'Ô"8ØÔ  'Ô"8ØÔ˜wÔ1ØÔ! 7Ô#:ØÔ Ô!6ØÔ˜wÔ2ØÔ Ô 4ØÔ! ?ØÔ˜7Ô,ð€ð"6ð 6ð 6ð 6ð 6ˆtŒ|ñ 6ô 6ð 6ð €�	„	× Ò �Ô%Ñ &Ô &Ð &ðð ð ð ð �”ñ ô ð ð €�	„	× Ò �Ô'Ñ (Ô (Ð (àˆDð ð ð Ø�ðà�ðð ˆaðð �ð	ð
 �ðð �ðð ˆaðð ˆaðð ˆaðð ˆaðð �Bðð �Bðð �Bðð ˆbðð 
ˆðð  �Bð!ð" ˆrð#ð$ ˜ð%ð& �2ð'ð( ˆRð)ð* �"ð+ð, �ð-€	ð> €Ô˜SÐ!Ñ!Ô!ð0ð 0ñ "Ô!ð0ð* 	ðð ñ 	„ðð	8ð 	8ð 	8ð7ð 7ð 7ð6 ŒN€	ØŒN€	ð Ô(Ð ð6ð 6ð 6ð0ð 0ð 0ðð ð ðð ð ð$ð $ð $ð
"ð "ð "ð
Nð Nð Nð:ð :ð :ð Ð Øˆ	ŒÑÔ€ð7ð 7ð 7ðð ð ð,ð ð ð ð.	ð 	ð 	ð"ð "ð "ðð ð ð:ð :ð :ð2 €ðð ð ð ð ð ð 1ð 1ð 1ðð ð ð}ð }ð }ð }ð }ñ }ô }ð }ðX „y€ØŒ_€
ØŒ=€ðð ð ðð ð ð ð
ð 
ð 
ðð ð ð8K+ð K+ð K+ð K+ð K+ñ K+ô K+ð K+ð K+ð K+s   ÂB# Â#DÂ(A"D
Ä
D