+
    êhŸ¢  ã                  óv  a € 0 t $ R t^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
HtHt ^ RIHt ^ RIt]'       d	   ^ RIHtHt ]'       g"   ]	P(                  ! 4       R8X  d   ^ RIt^ RIHt M ! R R	4      t]! 4       tR
]R&    ! R R4      t ! R R4      t ! R R4      t ! R R]4      t ! R R4      tR# )zo
Environment info about Microsoft Compilers.

>>> getfixture('windows_only')
>>> ei = EnvironmentInfo('amd64')
)ÚannotationsN)ÚTYPE_CHECKINGÚ	TypedDict)Úunique_everseen)ÚLiteralStringÚNotRequiredÚWindows)Úenvironc                  ó&   € ] tR t^ tRtRtRtRtRtR# )ÚwinregN© )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
HKEY_USERSÚHKEY_CURRENT_USERÚHKEY_LOCAL_MACHINEÚHKEY_CLASSES_ROOTÚ__static_attributes__r   ó    Ú1/usr/lib/python3/dist-packages/setuptools/msvc.pyr   r       s   † Øˆ
Ø ÐØ!ÐØ Ôr   r   zdict[str, str]r	   c                  ó®   € ] tR t^)tRt]P                  ! RR4      P                  4       tR R lt	]
R 4       tR tR tRR	 R
 lltRR R lltRR ltRtR# )ÚPlatformInfozi
Current and Target Architectures information.

Parameters
----------
arch: str
    Target architecture.
Úprocessor_architectureÚ c               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚNoner   )Úformats   "r   Ú__annotate__ÚPlatformInfo.__annotate__5   s   € ÷ 9ñ 9 ñ 9r   c                	óP   € VP                  4       P                  R R4      V n        R# )Úx64Úamd64N)ÚlowerÚreplaceÚarch)Úselfr)   s   &&r   Ú__init__ÚPlatformInfo.__init__5   s   € Ø—J‘J“L×(Ñ(¨°Ó8ˆŽ	r   c                ó`   € V P                   V P                   P                  R4      ^,           R # )zC
Return Target CPU architecture.

Return
------
str
    Target CPU
Ú_N)r)   Úfind©r*   s   &r   Ú
target_cpuÚPlatformInfo.target_cpu8   s(   € ð �y‰y˜Ÿ™Ÿ™¨Ó,¨qÕ0Ð2Ð3Ð3r   c                ó    € V P                   R8H  # )zW
Return True if target CPU is x86 32 bits..

Return
------
bool
    CPU is x86 32 bits
Úx86©r1   r0   s   &r   Útarget_is_x86ÚPlatformInfo.target_is_x86D   s   € ð �‰ %Ñ'Ð'r   c                ó    € V P                   R8H  # )zX
Return True if current CPU is x86 32 bits..

Return
------
bool
    CPU is x86 32 bits
r4   ©Úcurrent_cpur0   s   &r   Úcurrent_is_x86ÚPlatformInfo.current_is_x86O   s   € ð ×Ñ 5Ñ(Ð(r   c               ó   € V ^8„  d   QhRR/# ©r   r   Ústrr   )r!   s   "r   r"   r#   Z   s   € ÷ 
ñ 
°sñ 
r   c                óŒ   € V P                   R8X  d   V'       d   R# V P                   R8X  d   V'       d   R# RV P                    2# )u  
Current platform specific subfolder.

Parameters
----------
hidex86: bool
    return '' and not 'Â†' if architecture is x86.
x64: bool
    return 'd' and not 'md64' if architecture is amd64.

Return
------
str
    subfolder: '        arget', or '' (see hidex86 parameter)
r4   r   r&   ú\x64Ú\r9   ©r*   Úhidex86r%   s   &&&r   Úcurrent_dirÚPlatformInfo.current_dirZ   sR   € ð$ × Ñ  EÔ)¯gð ð	
ð × Ñ  GÔ+·ð ð	
ð
 �d×&Ñ&Ð'Ð(ð	
r   c               ó   € V ^8„  d   QhRR/# r>   r   )r!   s   "r   r"   r#   r   s   € ÷ 
ñ 
°cñ 
r   c                óŒ   € V P                   R8X  d   V'       d   R# V P                   R8X  d   V'       d   R# RV P                    2# )a  
Target platform specific subfolder.

Parameters
----------
hidex86: bool
    return '' and not '\x86' if architecture is x86.
x64: bool
    return '\x64' and not '\amd64' if architecture is amd64.

Return
------
str
    subfolder: '\current', or '' (see hidex86 parameter)
r4   r   r&   rA   rB   r5   rC   s   &&&r   Ú
target_dirÚPlatformInfo.target_dirr   sL   € ð$ —‘ 5Ô(¯Wð ð	
ð —‘ 7Ô*¯sð ð	
ð
 �d—o‘oÐ&Ð'ð	
r   c                óœ   € V'       d   RMV P                   pV P                  V8X  d   R# V P                  4       P                  RRV R24      # )a  
Cross platform specific subfolder.

Parameters
----------
forcex86: bool
    Use 'x86' as current architecture even if current architecture is
    not x86.

Return
------
str
    subfolder: '' if target architecture is current architecture,
    '\current_target' if not.
r4   r   rB   r.   )r:   r1   rI   r(   )r*   Úforcex86Úcurrents   && r   Ú	cross_dirÚPlatformInfo.cross_dirŠ   sQ   € ÷  $‘%¨×)9Ñ)9ˆð �‰ 'Ô)ð ð	
ð —‘Ó"×*Ñ*¨4°2°g°Y¸a°ÓAð	
r   )r)   N)FF©F)r   r   r   r   Ú__doc__r	   Úgetr'   r:   r+   Úpropertyr1   r6   r;   rE   rI   rN   r   r   r   r   r   r   )   sZ   † ñð —+’+Ð6¸Ó;×AÑAÓC€Kõ9ð ñ	4ó ð	4ò	(ò	)÷
÷0
÷0
ð 
r   r   c                  ó:  € ] tR t^¢tRt]P                  ]P                  ]P                  ]P                  3t
R R lt]R R l4       t]R 4       t]R 4       t]R 4       t]R	 R
 l4       t]R R l4       t]R 4       t]R 4       t]R R l4       tRR ltR tRtR# )ÚRegistryInfoz‡
Microsoft Visual Studio related registry information.

Parameters
----------
platform_info: PlatformInfo
    "PlatformInfo" instance.
c               ó   € V ^8„  d   QhRR/# r   r   )r!   s   "r   r"   ÚRegistryInfo.__annotate__³   s   € ÷  ñ  ¨ñ  r   c                	ó   € Wn         R # ©N©Úpi)r*   Úplatform_infos   &&r   r+   ÚRegistryInfo.__init__³   s   € ØŽr   c               ó   € V ^8„  d   QhRR/# r>   r   )r!   s   "r   r"   rW   ·   s   € ÷ 	ñ 	˜cñ 	r   c                ó   € R# )zP
Microsoft Visual Studio root registry key.

Return
------
str
    Registry key
ÚVisualStudior   r0   s   &r   ÚvisualstudioÚRegistryInfo.visualstudio¶   s   € ñ r   c                óV   € \         P                  P                  V P                  R4      # )zO
Microsoft Visual Studio SxS registry key.

Return
------
str
    Registry key
ÚSxS)ÚosÚpathÚjoinra   r0   s   &r   ÚsxsÚRegistryInfo.sxsÂ   s   € ô �w‰w�|‰|˜D×-Ñ-¨uÓ5Ð5r   c                óV   € \         P                  P                  V P                  R4      # )zL
Microsoft Visual C++ VC7 registry key.

Return
------
str
    Registry key
ÚVC7©re   rf   rg   rh   r0   s   &r   ÚvcÚRegistryInfo.vcÎ   ó   € ô �w‰w�|‰|˜DŸH™H eÓ,Ð,r   c                óV   € \         P                  P                  V P                  R4      # )zO
Microsoft Visual Studio VS7 registry key.

Return
------
str
    Registry key
ÚVS7rl   r0   s   &r   ÚvsÚRegistryInfo.vsÚ   ro   r   c               ó   € V ^8„  d   QhRR/# r>   r   )r!   s   "r   r"   rW   ç   s   € ÷ 	%ñ 	%˜sñ 	%r   c                ó   € R# )zS
Microsoft Visual C++ for Python registry key.

Return
------
str
    Registry key
zDevDiv\VCForPythonr   r0   s   &r   Úvc_for_pythonÚRegistryInfo.vc_for_pythonæ   s   € ñ %r   c               ó   € V ^8„  d   QhRR/# r>   r   )r!   s   "r   r"   rW   ó   s   € ÷ 	 ñ 	 ˜sñ 	 r   c                ó   € R# )zA
Microsoft SDK registry key.

Return
------
str
    Registry key
zMicrosoft SDKsr   r0   s   &r   Úmicrosoft_sdkÚRegistryInfo.microsoft_sdkò   s   € ñ  r   c                óV   € \         P                  P                  V P                  R4      # )zR
Microsoft Windows/Platform SDK registry key.

Return
------
str
    Registry key
r   ©re   rf   rg   rz   r0   s   &r   Úwindows_sdkÚRegistryInfo.windows_sdkþ   s   € ô �w‰w�|‰|˜D×.Ñ.°	Ó:Ð:r   c                óV   € \         P                  P                  V P                  R4      # )zP
Microsoft .NET Framework SDK registry key.

Return
------
str
    Registry key
ÚNETFXSDKr}   r0   s   &r   Ú	netfx_sdkÚRegistryInfo.netfx_sdk
  s   € ô �w‰w�|‰|˜D×.Ñ.°
Ó;Ð;r   c               ó   € V ^8„  d   QhRR/# r>   r   )r!   s   "r   r"   rW     s   € ÷ 	/ñ 	/ Cñ 	/r   c                ó   € R# )zP
Microsoft Windows Kits Roots registry key.

Return
------
str
    Registry key
zWindows Kits\Installed Rootsr   r0   s   &r   Úwindows_kits_rootsÚRegistryInfo.windows_kits_roots  s   € ñ /r   c                óž   € V P                   P                  4       '       g	   V'       d   RMRp\        P                  P	                  RVRV4      # )z¼
Return key in Microsoft software registry.

Parameters
----------
key: str
    Registry key path where look.
x86: str
    Force x86 software registry.

Return
------
str
    Registry key
r   ÚWow6432NodeÚSoftwareÚ	Microsoft)r[   r;   re   rf   rg   )r*   Úkeyr4   Únode64s   &&& r   Ú	microsoftÚRegistryInfo.microsoft"  s8   € ð  —w‘w×-Ñ-×/Ò/·3‘¸MˆÜ�w‰w�|‰|˜J¨°¸SÓAÐAr   c           	     óV  € \         P                  p\         P                  p\         P                  pV P                  pV P
                   FG  pRp V! Wv! V4      ^ V4      p \         P                  ! Y‚4      ^ ,          T'       d   T! T4       u # u # 	  R#   \         dL    T P                  P                  4       '       g(    T! Yv! TR4      ^ T4      p Lv  \         d      K›  i ; i K¢  i ; i  \         d     Mi ; i T'       d   T! T4       KÊ  KÌ    T'       d
   T! T4       i i ; i)z¾
Look for values in registry in Microsoft software registry.

Parameters
----------
key: str
    Registry key path where look.
name: str
    Value name to find.

Return
------
str
    value
NT)
r   ÚKEY_READÚOpenKeyÚCloseKeyrŽ   ÚHKEYSÚOSErrorr[   r;   ÚQueryValueEx)	r*   rŒ   ÚnameÚkey_readÚopenkeyÚclosekeyÚmsÚhkeyÚbkeys	   &&&      r   ÚlookupÚRegistryInfo.lookup5  s  € ô  —?‘?ˆÜ—.‘.ˆÜ—?‘?ˆØ�^‰^ˆØ—J”JˆDØˆDð	Ù˜t R¨£W¨a°Ó:�ð#Ü×*Ò*¨4Ó6°qÕ9÷ Ù˜T—Nò ñ# ñ& øô ô Ø—w‘w×-Ñ-×/Ò/ð!Ù& t¨R°°T«]¸A¸xÓHšøÜ"ô !Û ð!úò ðûô ô ÙðúØçÙ˜T–Nñ ø—4Ù˜T•Nð úsT   ÁBÁ C/Â*C,ÃCÃC%Ã C,Ã$C%Ã%C,Ã+C,Ã/C=Ã:DÃ<C=Ã=DÄD(rZ   NrP   )r   r   r   r   rQ   r   r   r   r   r   r”   r+   rS   ra   rh   rm   rr   rv   rz   r~   r‚   r†   rŽ   rž   r   r   r   r   rU   rU   ¢   sø   † ñð 	×ÑØ× Ñ Ø×!Ñ!Ø× Ñ ð	€Eõ ð ô	ó ð	ð ñ	6ó ð	6ð ñ	-ó ð	-ð ñ	-ó ð	-ð ô	%ó ð	%ð ô	 ó ð	 ð ñ	;ó ð	;ð ñ	<ó ð	<ð ô	/ó ð	/ôBö&'r   rU   c                  óø  € ] tR tRtRt]P                  ! RR4      t]P                  ! RR4      t]P                  ! R]4      t	R(R R	 llt
R
 tR tR R lt]R 4       t]R 4       t]R 4       tR tR t]R R l4       t]R 4       t]R R l4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R  R! l4       t ]R" R# l4       t!R$ R% lt"]R)R& l4       t#R't$R# )*Ú
SystemInfoi_  zÊ
Microsoft Windows and Visual Studio related system information.

Parameters
----------
registry_info: RegistryInfo
    "RegistryInfo" instance.
vc_ver: float
    Required Microsoft Visual C++ version.
ÚWinDirr   ÚProgramFileszProgramFiles(x86)Nc               ó   € V ^8„  d   QhRR/# r   r   )r!   s   "r   r"   ÚSystemInfo.__annotate__q  s   € ÷ Sñ S°dñ Sr   c                	ó¾   € Wn         V P                   P                  V n        V P                  4       V n        T;'       g    V P	                  4       ;V n        V n        R # rY   )Úrir[   Úfind_programdata_vs_versÚknown_vs_pathsÚ_find_latest_available_vs_verÚvs_verÚvc_ver)r*   Úregistry_infor¬   s   &&&r   r+   ÚSystemInfo.__init__q  sH   € ØŒØ—'‘'—*‘*ˆŒà"×;Ñ;Ó=ˆÔð %+×$RÐ$R¨d×.PÑ.PÓ.RÐRˆŒ�d–kr   c                ó  € V P                  4       pV'       g2   V P                  '       g    \        P                  P	                  R4      h\        V4      pVP                  V P                  4       \        V4      R,          # )z=
Find the latest VC version

Return
------
float
    version
z%No Microsoft Visual C++ version foundéÿÿÿÿ)Úfind_reg_vs_versr©   Ú	distutilsÚerrorsÚDistutilsPlatformErrorÚsetÚupdateÚsorted)r*   Úreg_vc_versÚvc_verss   &  r   rª   Ú(SystemInfo._find_latest_available_vs_verz  si   € ð ×+Ñ+Ó-ˆç˜t×2×2Ð2Ü×"Ñ"×9Ñ9Ø7óð ô �kÓ"ˆØ�‰�t×*Ñ*Ô+Ü�g‹˜rÕ"Ð"r   c                ód  € V P                   P                  pV P                   P                  V P                   P                  V P                   P                  3p. p\
        P                  ! V P                   P                  V4       EFL  w  rE \        P                  ! WA! V4      ^ \        P                  4      pT;_uu_ 4        \        P                  ! T4      w  rxp	\        T4       Fk  p
\        P                  ! \         4      ;_uu_ 4        \#        \        P$                  ! Yj4      ^ ,          4      pY³9  d   TP'                  T4       RRR4       Km  	  \        T4       Fd  p
\        P                  ! \         4      ;_uu_ 4        \#        \        P(                  ! Yj4      4      pY³9  d   TP'                  T4       RRR4       Kf  	  RRR4       EKO  	  \+        V4      #   \         d     EKk  i ; i  + '       g   i     EK  ; i  + '       g   i     K¹  ; i  + '       g   i     EKª  ; i)zh
Find Microsoft Visual Studio versions available in registry.

Return
------
list of float
    Versions
N)r§   rŽ   rm   rv   rr   Ú	itertoolsÚproductr”   r   r’   r‘   r•   ÚQueryInfoKeyÚrangeÚ
contextlibÚsuppressÚ
ValueErrorÚfloatÚ	EnumValueÚappendÚEnumKeyr·   )r*   r›   ÚvckeysÚvs_versrœ   rŒ   r�   ÚsubkeysÚvaluesr.   ÚiÚvers   &           r   r±   ÚSystemInfo.find_reg_vs_versŽ  s‡  € ð �W‰W×ÑˆØ—'‘'—*‘*˜dŸg™g×3Ñ3°T·W±W·Z±ZÐ@ˆØˆÜ"×*Ò*¨4¯7©7¯=©=¸&×A‰IˆDðÜ—~’~ d¨B¨s«G°Q¼¿¹ÓH�÷ ’Ü%+×%8Ò%8¸Ó%>Ñ"� Ü˜vž�AÜ#×,Ò,¬Z×8Õ8Ü#¤F×$4Ò$4°TÓ$=¸aÕ$@ÓA˜ØÔ-Ø#ŸN™N¨3Ô/÷ 9Ñ8ñ 'ô
 ˜wž�AÜ#×,Ò,¬Z×8Õ8Ü#¤F§N¢N°4Ó$;Ó<˜ØÔ-Ø#ŸN™N¨3Ô/÷ 9Ñ8ñ (÷ ’ñ Bô" �g‹Ðøô ô Ûðú÷
 9×8Ñ8ú÷
 9×8Ð8ú÷ —‘úsO   Â,G!ÃA
HÄ>G4Å
<HÆ7H	Æ=HÇ!G1Ç0G1Ç4HÇ?
HÈ	HÈ	HÈH/c               ó   € V ^8„  d   QhRR/# )r   r   zdict[float, str]r   )r!   s   "r   r"   r¥   ­  s   € ÷ (ñ (Ð*:ñ (r   c                ó$  € / pRp \         P                  ! V4      pT F°  p \         P                  P	                  Y$R4      p\        TRRR7      ;_uu_ 4       p\        P                  ! T4      pRRR4       XR,          p\         P                  ! \         P                  P	                  TR4      4       TYP                  TR	,          4      &   K²  	  T#   \         d    Tu # i ; i  + '       g   i     L€; i  \        \        3 d     Kð  i ; i)
z±
Find Visual studio 2017+ versions from information in
"C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances".

Return
------
dict
    float version as key, path as value.
z9C:\ProgramData\Microsoft\VisualStudio\Packages\_Instancesz
state.jsonÚrtzutf-8)ÚencodingNÚinstallationPathúVC\Tools\MSVCÚinstallationVersion)
re   Úlistdirr•   rf   rg   ÚopenÚjsonÚloadÚ_as_float_versionÚKeyError)	r*   Úvs_versionsÚinstances_dirÚhashed_namesr—   Ú
state_pathÚ
state_fileÚstateÚvs_paths	   &        r   r¨   Ú#SystemInfo.find_programdata_vs_vers­  sñ   € ð )+ˆØTˆð	ÜŸ:š: mÓ4ˆLó !ˆDðäŸW™WŸ\™\¨-¸|ÓL�
Ü˜* d°W×=Õ=ÀÜ ŸIšI jÓ1�E÷ >àÐ 2Õ3�ô —
’
œ2Ÿ7™7Ÿ<™<¨Ð1AÓBÔCð ð ×2Ñ2°5Ð9NÕ3OÓPÓQñ !ð( Ðøô1 ô 	àÒð	ú÷ >×=ûô œXÐ&ô âðús;   †C ¢6C:ÁC'Á/AC:ÃC$Ã#C$Ã'C7Ã2C:Ã:DÄDc                ób   € \        RP                  V P                  R4      R,          4      4      # )z—
Return a string version as a simplified float version (major.minor)

Parameters
----------
version: str
    Version.

Return
------
float
    version
Ú.ºNr   N)rÃ   rg   Úsplit)Úversions   &r   rÙ   ÚSystemInfo._as_float_version×  s&   € ô �S—X‘X˜gŸm™m¨CÓ0°Õ4Ó5Ó6Ð6r   c                óþ   € \         P                  P                  V P                  RV P                  R 24      pV P
                  P                  V P
                  P                  V P                  R 4      ;'       g    T# )z@
Microsoft Visual Studio directory.

Return
------
str
    path
úMicrosoft Visual Studio ú0.1f)re   rf   rg   ÚProgramFilesx86r«   r§   rž   rr   )r*   Údefaults   & r   ÚVSInstallDirÚSystemInfo.VSInstallDirè  s`   € ô —'‘'—,‘,Ø× Ñ Ð$<¸T¿[¹[ÈÐ<NÐ"Oó
ˆð
 �w‰w�~‰~˜dŸg™gŸj™j¨T¯[©[¸Ð,>Ó@×KÐKÀGÐKr   c                óâ   € V P                  4       ;'       g    V P                  4       p\        P                  P	                  V4      '       g"   Rp\
        P                  P                  V4      hV# )z=
Microsoft Visual C++ directory.

Return
------
str
    path
z(Microsoft Visual C++ directory not found)Ú	_guess_vcÚ_guess_vc_legacyre   rf   Úisdirr²   r³   r´   )r*   rf   Úmsgs   &  r   ÚVCInstallDirÚSystemInfo.VCInstallDirú  sU   € ð �~‰~Ó×:Ð: 4×#8Ñ#8Ó#:ˆä�w‰w�}‰}˜T×"Ò"Ø<ˆCÜ×"Ñ"×9Ñ9¸#Ó>Ð>àˆr   c                ó´  € V P                   R8:  d   R#  V P                  V P                   ,          p\        P
                  P                  VR4      p \        P                  ! V4      R,          pV P                  V4      V n	        \        P
                  P                  W#4      #   \         d    T P                  p LŒi ; i  \        \        3 d     R# i ; i)z<
Locate Visual C++ for VS2017+.

Return
------
str
    path
ç      ,@r   rÓ   r°   )r«   r©   rÚ   rî   re   rf   rg   rÕ   rÙ   r¬   r•   Ú
IndexError)r*   Úvs_dirÚguess_vcr¬   s   &   r   rñ   ÚSystemInfo._guess_vc  s´   € ð �;‰;˜$ÔÙð	'à×(Ñ(¨¯©Õ5ˆFô
 —7‘7—<‘< Ð(8Ó9ˆð	ä—Z’Z Ó)¨"Õ-ˆFØ×0Ñ0°Ó8ˆDŒKÜ—7‘7—<‘< Ó1Ð1øô ô 	'à×&Ñ&ŠFð	'ûô œÐ$ô 	Úð	ús$   •B% ÁAC Â%B?Â>B?ÃCÃCc                ó  € \         P                  P                  V P                  RV P                  R R24      p\         P                  P                  V P
                  P                  V P                  R 4      pV P
                  P                  VR4      pV'       d!   \         P                  P                  VR4      MTpV P
                  P                  V P
                  P                  V P                  R 4      ;'       g    T# )zK
Locate Visual C++ for versions prior to 2017.

Return
------
str
    path
rê   rë   z\VCÚ
installdirÚVC)	re   rf   rg   rì   r«   r§   rv   rž   rm   )r*   rí   Úreg_pathÚ	python_vcÚ
default_vcs   &    r   rò   ÚSystemInfo._guess_vc_legacy*  s·   € ô —'‘'—,‘,Ø× Ñ Ø'¨¯©°DÐ'9¸Ð=ó
ˆô —7‘7—<‘< §¡× 5Ñ 5¸$¿+¹+ÀdÐ9KÓMˆØ—G‘G—N‘N 8¨\Ó:ˆ	ß6?”R—W‘W—\‘\ )¨TÔ2ÀWˆ
ð �w‰w�~‰~˜dŸg™gŸj™j¨T¯[©[¸Ð,>Ó@×NÐNÀJÐNr   c               ó   € V ^8„  d   QhRR/# )r   r   ztuple[LiteralString, ...]r   )r!   s   "r   r"   r¥   A  s   € ÷ ñ Ð#<ñ r   c                óÄ   € V P                   R8:  d   R# V P                   R8X  d   R# V P                   R8X  d   R# V P                   R8X  d   R	# V P                   R8¼  d   R
# R# )zg
Microsoft Windows SDK versions for specified MSVC++ version.

Return
------
tuple of str
    versions
ç      "@ç      $@ç      &@ç      (@rø   )z7.0z6.1z6.0a)z7.1z7.0a)z8.0z8.0a)ú8.1z8.1a)z10.0r
  r   ©r«   r0   s   &r   ÚWindowsSdkVersionÚSystemInfo.WindowsSdkVersion@  sc   € ð �;‰;˜#ÔØ'Ð'Ø�[‰[˜DÔ Ø Ð Ø�[‰[˜DÔ Ø Ð Ø�[‰[˜DÔ Ø Ð Ø�[‰[˜DÔ Ø Ð Øˆ	r   c                ót   € V P                  \        P                  P                  V P                  R4      4      # )zD
Microsoft Windows SDK last version.

Return
------
str
    version
Úlib)Ú_use_last_dir_namere   rf   rg   ÚWindowsSdkDirr0   s   &r   ÚWindowsSdkLastVersionÚ SystemInfo.WindowsSdkLastVersionV  s*   € ð ×&Ñ&¤r§w¡w§|¡|°D×4FÑ4FÈÓ'NÓOÐOr   c               ó   € V ^8„  d   QhRR/# ©r   r   z
str | Noner   )r!   s   "r   r"   r¥   c  s   € ÷ (ñ (˜zñ (r   c                ó8  € RpV P                    F`  p\        P                  P                  V P                  P
                  RV 24      pV P                  P                  VR4      pV'       g   K`   M	  V'       d&   \        P                  P                  V4      '       g…   \        P                  P                  V P                  P                  V P                  R 4      pV P                  P                  VR4      pV'       d!   \        P                  P                  VR4      pV'       d&   \        P                  P                  V4      '       g€   V P                    Fo  pVRVP                  R4       pR	V 2p\        P                  P                  V P                  V4      p\        P                  P                  V4      '       g   Km  TpKq  	  V'       d&   \        P                  P                  V4      '       gl   V P                    F[  pR
V 2p\        P                  P                  V P                  V4      p\        P                  P                  V4      '       g   KY  TpK]  	  V'       g+   \        P                  P                  V P                  R4      pV# )z>
Microsoft Windows SDK directory.

Return
------
str
    path
r   ÚvÚinstallationfolderrë   rþ   ÚWinSDKNrä   zMicrosoft SDKs\Windows Kits\zMicrosoft SDKs\Windows\vÚPlatformSDK)r  re   rf   rg   r§   r~   rž   ró   rv   r¬   Úrfindr£   rõ   )r*   ÚsdkdirrÌ   Úlocrf   Úinstall_baseÚintverÚds   &       r   r  ÚSystemInfo.WindowsSdkDirb  sÄ  € ð  ˆØ×)Ô)ˆCä—'‘'—,‘,˜tŸw™w×2Ñ2°a¸°u°IÓ>ˆCØ—W‘W—^‘^ CÐ)=Ó>ˆFß‰vÙñ *÷ œRŸW™WŸ]™]¨6×2Ò2ä—7‘7—<‘< §¡× 5Ñ 5¸$¿+¹+ÀdÐ9KÓMˆDØŸ7™7Ÿ>™>¨$°Ó=ˆLßÜŸ™Ÿ™ l°HÓ=�ßœRŸW™WŸ]™]¨6×2Ò2à×-Ô-�ØÐ-˜sŸy™y¨›~Ð.�Ø6°v°hÐ?�Ü—G‘G—L‘L ×!2Ñ!2°DÓ9�Ü—7‘7—=‘= ×#Ô#Ø’Fñ .÷ œRŸW™WŸ]™]¨6×2Ò2à×-Ô-�Ø2°3°%Ð8�Ü—G‘G—L‘L ×!2Ñ!2°DÓ9�Ü—7‘7—=‘= ×#Ô#Ø’Fñ	 .÷
 ä—W‘W—\‘\ $×"3Ñ"3°]ÓCˆFØˆr   c                ó˜  € V P                   R8:  d   ^#pRpMD^(pV P                   R8:  d   RMRpV P                  P                  RVR7      P                  RR4      pR	V R
V 2p. pV P                   R8¼  dP   V P                   F?  pV\
        P                  P                  V P                  P                  Wd4      .,          pKA  	  V P                   FD  pV\
        P                  P                  V P                  P                  RV R2V4      .,          pKF  	  V F+  pV P                  P                  VR4      pV'       g   K)  Vu # 	  R# )zI
Microsoft Windows SDK executable directory.

Return
------
str
    path
r  r   r	  TF)r%   rD   rB   Ú-zWinSDK-NetFxÚToolsrø   r  ÚAr  N)r«   r[   rE   r(   ÚNetFxSdkVersionre   rf   rg   r§   r‚   r  r~   rž   )	r*   Únetfxverr)   rD   ÚfxÚregpathsrÌ   rf   Úexecpaths	   &        r   ÚWindowsSDKExecutablePathÚ#SystemInfo.WindowsSDKExecutablePath�  s%  € ð �;‰;˜$ÔØˆHØ‰DàˆHØ"Ÿk™k¨TÔ1‘d°uˆGØ—7‘7×&Ñ&¨4¸Ð&ÓA×IÑIÈ$ÐPSÓTˆDØ˜H˜: U¨4¨&Ð1ˆð ˆØ�;‰;˜$ÔØ×+Ô+�ØœRŸW™WŸ\™\¨$¯'©'×*;Ñ*;¸SÓEÐFÕF’ñ ,ð ×)Ô)ˆCØœŸ™Ÿ™ d§g¡g×&9Ñ&9¸Q¸s¸eÀ1¸:ÀrÓJÐKÕKŠHñ *ó ˆDØ—w‘w—~‘~ dÐ,@ÓAˆHß‰xØ’ñ ñ
 r   c                óÒ   € \         P                  P                  V P                  P                  V P
                  R R24      pV P                  P                  VR4      ;'       g    R# )z<
Microsoft Visual F# directory.

Return
------
str
    path
rë   z	\Setup\F#Ú
productdirr   )re   rf   rg   r§   ra   r«   rž   )r*   rf   s   & r   ÚFSharpInstallDirÚSystemInfo.FSharpInstallDir²  sM   € ô �w‰w�|‰|˜DŸG™G×0Ñ0°d·k±kÀ$Ð5GÀyÐ2QÓRˆØ�w‰w�~‰~˜d LÓ1×7Ð7°RÐ7r   c                óÔ   € V P                   R8¼  d   RMRpV FL  pV P                  P                  V P                  P                  RV 24      pV'       g   K@  T;'       g    Ru # 	  R# )zD
Microsoft Universal CRT SDK directory.

Return
------
str
    path
rø   Úkitsrootr   N)Ú10Ú81r   )r«   r§   rž   r†   )r*   ÚversrÌ   r  s   &   r   ÚUniversalCRTSdkDirÚSystemInfo.UniversalCRTSdkDir¿  s]   € ð  $Ÿ{™{¨dÔ2‰|¸ˆó ˆCØ—W‘W—^‘^ D§G¡G×$>Ñ$>À(È3È%Ð@PÓQˆFß‰vØ—|�| Ò#ñ ñ
 r   c                ót   € V P                  \        P                  P                  V P                  R4      4      # )zP
Microsoft Universal C Runtime SDK last version.

Return
------
str
    version
r  )r  re   rf   rg   r6  r0   s   &r   ÚUniversalCRTSdkLastVersionÚ%SystemInfo.UniversalCRTSdkLastVersionÔ  s*   € ð ×&Ñ&¤r§w¡w§|¡|°D×4KÑ4KÈUÓ'SÓTÐTr   c                ó,   € V P                   R8¼  d   R# R# )zQ
Microsoft .NET Framework SDK versions.

Return
------
tuple of str
    versions
rø   )	z4.7.2z4.7.1z4.7z4.6.2z4.6.1z4.6z4.5.2z4.5.1z4.5r   r  r0   s   &r   r&  ÚSystemInfo.NetFxSdkVersionà  s%   € ð �{‰{˜dÔ"ð Xð	
ð ð	
r   c                óæ   € RpV P                    F^  p\        P                  P                  V P                  P
                  V4      pV P                  P                  VR4      pV'       g   K]   V# 	  V# )zE
Microsoft .NET Framework SDK directory.

Return
------
str
    path
r   Úkitsinstallationfolder)r&  re   rf   rg   r§   r‚   rž   )r*   r  rÌ   r  s   &   r   ÚNetFxSdkDirÚSystemInfo.NetFxSdkDirñ  s`   € ð ˆØ×'Ô'ˆCÜ—'‘'—,‘,˜tŸw™w×0Ñ0°#Ó6ˆCØ—W‘W—^‘^ CÐ)AÓBˆFß‰vØØˆñ (ð
 ˆr   c                óÊ   € \         P                  P                  V P                  R4      pV P                  P                  V P                  P                  R4      ;'       g    T# )zG
Microsoft .NET Framework 32bit directory.

Return
------
str
    path
zMicrosoft.NET\FrameworkÚframeworkdir32©re   rf   rg   r¢   r§   rž   rm   ©r*   Úguess_fws   & r   ÚFrameworkDir32ÚSystemInfo.FrameworkDir32  sE   € ô —7‘7—<‘< §¡Ð-GÓHˆð �w‰w�~‰~˜dŸg™gŸj™jÐ*:Ó;×GÐG¸xÐGr   c                óÊ   € \         P                  P                  V P                  R4      pV P                  P                  V P                  P                  R4      ;'       g    T# )zG
Microsoft .NET Framework 64bit directory.

Return
------
str
    path
zMicrosoft.NET\Framework64Úframeworkdir64rC  rD  s   & r   ÚFrameworkDir64ÚSystemInfo.FrameworkDir64  sE   € ô —7‘7—<‘< §¡Ð-IÓJˆð �w‰w�~‰~˜dŸg™gŸj™jÐ*:Ó;×GÐG¸xÐGr   c               ó   € V ^8„  d   QhRR/# ©r   r   ztuple[str, ...]r   )r!   s   "r   r"   r¥   $  ó   € ÷ 	/ñ 	/ Oñ 	/r   c                ó$   € V P                  ^ 4      # )zS
Microsoft .NET Framework 32bit versions.

Return
------
tuple of str
    versions
©Ú_find_dot_net_versionsr0   s   &r   ÚFrameworkVersion32ÚSystemInfo.FrameworkVersion32#  ó   € ð ×*Ñ*¨2Ó.Ð.r   c               ó   € V ^8„  d   QhRR/# rM  r   )r!   s   "r   r"   r¥   0  rN  r   c                ó$   € V P                  ^@4      # )zS
Microsoft .NET Framework 64bit versions.

Return
------
tuple of str
    versions
rP  r0   s   &r   ÚFrameworkVersion64ÚSystemInfo.FrameworkVersion64/  rT  r   c               ó   € V ^8„  d   QhRR/# rM  r   )r!   s   "r   r"   r¥   ;  s   € ÷ ñ ¨oñ r   c                ó²  € V P                   P                  V P                   P                  RV 24      p\        V RV 24      pT;'       g    V P	                  VR4      ;'       g    RpV P
                  R8¼  d   VR3# V P
                  R8¼  d#   VP                  4       R,          R	8w  d   R# TR
3# V P
                  R8X  d   R# V P
                  R8X  d   R# R# )zš
Find Microsoft .NET Framework versions.

Parameters
----------
bits: int
    Platform number of bits: 32 or 64.

Return
------
tuple of str
    versions
ÚframeworkverÚFrameworkDirr  r   r	  zv4.0r  rå   Úv4úv3.5r  g       @)z
v4.0.30319r^  )r^  ú
v2.0.50727)zv3.0r_  r   )r§   rž   rm   Úgetattrr  r«   r'   )r*   ÚbitsÚreg_verÚdot_net_dirrÌ   s   &&   r   rQ  Ú!SystemInfo._find_dot_net_versions;  sË   € ð —'‘'—.‘. §¡§¡¨|¸D¸6Ð-BÓCˆÜ˜d l°4°&Ð$9Ó:ˆØ×HÐH˜×0Ñ0°¸cÓB×HÐHÀbˆð �;‰;˜$ÔØ˜�;ÐØ�[‰[˜DÔ Ø#&§9¡9£;¨r¥?°dÔ#:ÐKÐKÀÀVÐKÐKØ�[‰[˜CÔØ'Ð'Ø�[‰[˜CÔØ'Ð'Øˆ	r   c                ó†   a a€ V V3R l\        \        P                  ! S 4      4       4       p\        VR4      ;'       g    R# )zÉ
Return name of the last dir in path or '' if no dir found.

Parameters
----------
path: str
    Use dirs in this path
prefix: str
    Use only dirs starting by this prefix

Return
------
str
    name
c              3  óä   <"  € T Fe  p\         P                  P                  \         P                  P                  SV4      4      '       g   KH  VP	                  S4      '       g   Ka  Vx € Kg  	  R # 5irY   )re   rf   ró   rg   Ú
startswith)Ú.0Údir_namerf   Úprefixs   & €€r   Ú	<genexpr>Ú0SystemInfo._use_last_dir_name.<locals>.<genexpr>j  sN   øé € ð 
á6�Ü�w‰w�}‰}œRŸW™WŸ\™\¨$°Ó9×:ô ð ×#Ñ# F×+÷ ŠHÛ6ùs   ƒAA0ÁA0Á&
A0Nr   )Úreversedre   rÕ   Únext)rf   rj  Úmatching_dirss   ff r   r  ÚSystemInfo._use_last_dir_nameY  s7   ù€ õ"
ä$¤R§Z¢Z°Ó%5Ô6ó
ˆô �M 4Ó(×.Ð.¨BÐ.r   )r©   r[   r§   r¬   r«   rY   )r   )%r   r   r   r   rQ   r	   rR   r¢   r£   rì   r+   rª   r±   r¨   ÚstaticmethodrÙ   rS   rî   rõ   rñ   rò   r  r  r  r+  r/  r6  r9  r&  r?  rF  rJ  rR  rW  rQ  r  r   r   r   r   r¡   r¡   _  sÀ  † ñ	ð �[Š[˜ 2Ó&€FØ—;’;˜~¨rÓ2€LØ—k’kÐ"5°|ÓD€O÷Sò#ò(õ>(ðT ñ7ó ð7ð  ñLó ðLð" ñó ðò"ò<Oð, ôó ðð* ñ	Pó ð	Pð ô(ó ð(ðT ñ"ó ð"ðH ñ
8ó ð
8ð ñó ðð( ñ	Uó ð	Uð ñ
ó ð
ð  ñó ðð" ñHó ðHð ñHó ðHð ô	/ó ð	/ð ô	/ó ð	/õð< ó/ó ô/r   r¡   c                  óJ   € ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R&   R	tR
# )Ú_EnvironmentDictis  r?   Úincluder  Úlibpathrf   zNotRequired[str | None]Úpy_vcruntime_redistr   N)r   r   r   r   Ú__annotations__r   r   r   r   rs  rs  s  s   ‡ ØƒLØ	ƒHØƒLØ
ƒIØ0×0r   rs  c                  óÌ  € ] tR tRtRtR$R R llt]R 4       t]R 4       t]R 4       t	]R	 4       t
]R
 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       tR t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R R l4       tR%R  R! llt R" t!R#t"R# )&ÚEnvironmentInfoi{  a  
Return environment variables for specified Microsoft Visual C++ version
and platform : Lib, Include, Path and libpath.

This function is compatible with Microsoft Visual C++ 9.0 to 14.X.

Script created by analysing Microsoft environment configuration files like
"vcvars[...].bat", "SetEnv.Cmd", "vcbuildtools.bat", ...

Parameters
----------
arch: str
    Target architecture.
vc_ver: float
    Required Microsoft Visual C++ version. If not set, autodetect the last
    version.
vc_min_ver: float
    Minimum Microsoft Visual C++ version.
Nc               ó   € V ^8„  d   QhRR/# r   r   )r!   s   "r   r"   ÚEnvironmentInfo.__annotate__“  s   € ÷ ?ñ ?¸4ñ ?r   c                	óô   € \        V4      V n        \        V P                  4      V n        \	        V P                  V4      V n        V P                  V8  d"   R p\        P                  P                  V4      hR# )z.No suitable Microsoft Visual C++ version foundN)
r   r[   rU   r§   r¡   Úsir¬   r²   r³   r´   )r*   r)   r¬   Ú
vc_min_verÚerrs   &&&& r   r+   ÚEnvironmentInfo.__init__“  s]   € Ü˜tÓ$ˆŒÜ˜tŸw™wÓ'ˆŒÜ˜TŸW™W fÓ-ˆŒà�;‰;˜Ô#ØBˆCÜ×"Ñ"×9Ñ9¸#Ó>Ð>ñ $r   c                ó.   € V P                   P                  # )z;
Microsoft Visual Studio.

Return
------
float
    version
)r}  r«   r0   s   &r   r«   ÚEnvironmentInfo.vs_verœ  ó   € ð �w‰w�~‰~Ðr   c                ó.   € V P                   P                  # )z@
Microsoft Visual C++ version.

Return
------
float
    version
)r}  r¬   r0   s   &r   r¬   ÚEnvironmentInfo.vc_ver¨  rƒ  r   c                ó:  € RR.pV P                   R8¼  d?   V P                  P                  RRR7      pVR.,          pVR.,          pVRV 2.,          pV Uu. uF7  p\        P                  P                  V P                  P                  V4      NK9  	  up# u upi )zE
Microsoft Visual Studio Tools.

Return
------
list of str
    paths
zCommon7\IDEzCommon7\Toolsrø   T©rD   r%   z1Common7\IDE\CommonExtensions\Microsoft\TestWindowzTeam Tools\Performance Tools)r«   r[   rE   re   rf   rg   r}  rî   )r*   ÚpathsÚarch_subdirrf   s   &   r   ÚVSToolsÚEnvironmentInfo.VSTools´  s–   € ð  Ð!1Ð2ˆà�;‰;˜$ÔØŸ'™'×-Ñ-°dÀÐ-ÓEˆKØÐJÐKÕKˆEØÐ5Ð6Õ6ˆEØÐ5°k°]ÐCÐDÕDˆEáEJÓKÁU¸T”—‘—‘˜TŸW™W×1Ñ1°4Ö8ÁUÑKÐKùÒKs   Á=Bc                óÒ   € \         P                  P                  V P                  P                  R4      \         P                  P                  V P                  P                  R4      .# )zb
Microsoft Visual C++ & Microsoft Foundation Class Includes.

Return
------
list of str
    paths
ÚIncludezATLMFC\Include)re   rf   rg   r}  rõ   r0   s   &r   Ú
VCIncludesÚEnvironmentInfo.VCIncludesÈ  sG   € ô �G‰G�L‰L˜Ÿ™×-Ñ-¨yÓ9Ü�G‰G�L‰L˜Ÿ™×-Ñ-Ð/@ÓAð
ð 	
r   c                óx  € V P                   R8¼  d   V P                  P                  RR7      pMV P                  P                  RR7      pRV 2RV 2.pV P                   R8¼  d   VRV 2.,          pV Uu. uF7  p\        P                  P                  V P                  P                  V4      NK9  	  up# u upi )	zc
Microsoft Visual C++ & Microsoft Foundation Class Libraries.

Return
------
list of str
    paths
ç      .@T©r%   ©rD   ÚLibz
ATLMFC\Librø   z	Lib\store)r«   r[   rI   re   rf   rg   r}  rõ   )r*   r‰  rˆ  rf   s   &   r   ÚVCLibrariesÚEnvironmentInfo.VCLibraries×  s§   € ð �;‰;˜$ÔØŸ'™'×,Ñ,°Ð,Ó6‰KàŸ'™'×,Ñ,°TÐ,Ó:ˆKØ�{�mÐ$¨°K°=Ð&AÐBˆà�;‰;˜$ÔØ˜ ; -Ð0Ð1Õ1ˆEáEJÓKÁU¸T”—‘—‘˜TŸW™W×1Ñ1°4Ö8ÁUÑKÐKùÒKs   Á7=B7c                ó’   € V P                   R8  d   . # \        P                  P                  V P                  P
                  R4      .# )zW
Microsoft Visual C++ store references Libraries.

Return
------
list of str
    paths
rø   zLib\store\references)r«   re   rf   rg   r}  rõ   r0   s   &r   ÚVCStoreRefsÚEnvironmentInfo.VCStoreRefsì  s8   € ð �;‰;˜ÔØˆIÜ—‘—‘˜TŸW™W×1Ñ1Ð3JÓKÐLÐLr   c           	     óø  € V P                   p\        P                  P                  VP                  R4      .pV P
                  R8:  d   RMRpV P                  P                  V4      pV'       d6   V\        P                  P                  VP                  RV 24      .,          pV P
                  R8X  dT   RV P                  P                  RR7       2pV\        P                  P                  VP                  V4      .,          pV# V P
                  R8¼  Ed.   V P                  P                  P                  R	R
4      P                  4       p\        P                  P                  RRV R24      pV\        P                  P                  VP                  WpP                  P                  RR7      ,          4      .,          pV P                  P                  V P                  P                  8w  dS   V\        P                  P                  VP                  WpP                  P                  RR7      ,          4      .,          pV# V\        P                  P                  VP                  R4      .,          pV# )ak  
Microsoft Visual C++ Tools.

Return
------
list of str
    paths

When host CPU is ARM, the tools should be found for ARM.

>>> getfixture('windows_only')
>>> mp = getfixture('monkeypatch')
>>> mp.setattr(PlatformInfo, 'current_cpu', 'arm64')
>>> ei = EnvironmentInfo(arch='irrelevant')
>>> paths = ei.VCTools
>>> any('HostARM64' in path for path in paths)
True
Ú
VCPackagesr  TFÚBinrø   r“  r‘  r&   r%   ÚbinÚHostz%sr’  )r}  re   rf   rg   rõ   r«   r[   rN   rE   r:   r(   ÚupperrI   r1   )r*   r}  ÚtoolsrL   r‰  rf   Úhost_idÚhost_dirs   &       r   ÚVCToolsÚEnvironmentInfo.VCToolsú  sÞ  € ð( �W‰WˆÜ—‘—‘˜bŸo™o¨|Ó<Ð=ˆàŸ;™;¨$Ô.‘4°EˆØ—g‘g×'Ñ'¨Ó1ˆßØ”b—g‘g—l‘l 2§?¡?°c¸+¸Ð4GÓHÐIÕIˆEà�;‰;˜$ÔØ˜Ÿ™×,Ñ,°TÐ,Ó:Ð;Ð<ˆDØ”b—g‘g—l‘l 2§?¡?°DÓ9Ð:Õ:ˆEð& ˆð# �[‰[˜DÕ Ø—g‘g×)Ñ)×1Ñ1°'¸5ÓA×GÑGÓIˆGÜ—w‘w—|‘| E¨T°'°¸"Ð+=Ó>ˆHØÜ—‘—‘˜RŸ_™_¨h¿¹×9KÑ9KÐPTÐ9KÓ9UÕ.UÓVðõ ˆEð �w‰w×"Ñ" d§g¡g×&8Ñ&8Ô8ØÜ—G‘G—L‘LØŸ™¨·G±G×4GÑ4GÈDÐ4GÓ4QÕ)Qóðõ �ð ˆð ”b—g‘g—l‘l 2§?¡?°EÓ:Ð;Õ;ˆEàˆr   c                óÐ  € V P                   R8:  dV   V P                  P                  RRR7      p\        P                  P                  V P                  P                  RV 24      .# V P                  P                  RR7      p\        P                  P                  V P                  P                  R4      pV P                  p\        P                  P                  W# RV 24      .# )zG
Microsoft Windows SDK Libraries.

Return
------
list of str
    paths
r  Tr‡  r”  r’  r  Úum)	r«   r[   rI   re   rf   rg   r}  r  Ú_sdk_subdir)r*   r‰  r  Úlibvers   &   r   ÚOSLibrariesÚEnvironmentInfo.OSLibraries-  sµ   € ð �;‰;˜$ÔØŸ'™'×,Ñ,°T¸tÐ,ÓDˆKÜ—G‘G—L‘L §¡×!6Ñ!6¸#¸k¸]Ð8KÓLÐMÐMð Ÿ'™'×,Ñ,°Ð,Ó6ˆKÜ—'‘'—,‘,˜tŸw™w×4Ñ4°eÓ<ˆCØ×%Ñ%ˆFÜ—G‘G—L‘L ¨°°;°-Ð&@ÓAÐBÐBr   c                óÚ  € \         P                  P                  V P                  P                  R4      pV P
                  R8:  d#   V\         P                  P                  VR4      .# V P
                  R8¼  d   V P                  pMRp\         P                  P                  W R24      \         P                  P                  W R24      \         P                  P                  W R24      .# )	zE
Microsoft Windows SDK Include.

Return
------
list of str
    paths
rt  r  Úglrø   r   Úsharedr¦  Úwinrt)re   rf   rg   r}  r  r«   r§  )r*   rt  Úsdkvers   &  r   Ú
OSIncludesÚEnvironmentInfo.OSIncludesA  s´   € ô —'‘'—,‘,˜tŸw™w×4Ñ4°iÓ@ˆà�;‰;˜$ÔØœRŸW™WŸ\™\¨'°4Ó8Ð9Ð9ð �{‰{˜dÔ"Ø×)Ñ)‘à�ä—‘—‘˜W¨°Ð&7Ó8Ü—‘—‘˜W¨° mÓ4Ü—‘—‘˜W¨°Ð&6Ó7ðð r   c                ó  € \         P                  P                  V P                  P                  R4      p. pV P
                  R8:  d   W P                  ,          pV P
                  R8¼  d)   V\         P                  P                  VR4      .,          pV P
                  R8¼  dâ   VV\         P                  P                  V P                  P                  R4      \         P                  P                  VRR4      \         P                  P                  VR	R4      \         P                  P                  VR
R4      \         P                  P                  V P                  P                  RRV P
                  R RRR4      .,          pV# )zM
Microsoft Windows SDK Libraries Paths.

Return
------
list of str
    paths
Ú
Referencesr  r  zCommonConfiguration\Neutralrø   ÚUnionMetadataz'Windows.Foundation.UniversalApiContractz1.0.0.0z%Windows.Foundation.FoundationContractz,Windows.Networking.Connectivity.WwanContractÚExtensionSDKszMicrosoft.VCLibsrë   ÚCommonConfigurationÚneutral)re   rf   rg   r}  r  r«   r©  )r*   Úrefru  s   &  r   Ú	OSLibpathÚEnvironmentInfo.OSLibpath[  s'  € ô �g‰g�l‰l˜4Ÿ7™7×0Ñ0°,Ó?ˆØˆà�;‰;˜#ÔØ×'Ñ'Õ'ˆGà�;‰;˜$ÔØœŸ™Ÿ™ SÐ*HÓIÐJÕJˆGà�;‰;˜$ÔØØÜ—‘—‘˜TŸW™W×2Ñ2°OÓDÜ—‘—‘˜SÐ"KÈYÓWÜ—‘—‘˜SÐ"IÈ9ÓUÜ—‘—‘ØÐGÈóô —‘—‘Ø—G‘G×)Ñ)Ø#Ø&Ø—{‘{ 4Ð(Ø Ø)Øóðõ ˆGð$ ˆr   c                ó4   € \        V P                  4       4      # )zC
Microsoft Windows SDK Tools.

Return
------
list of str
    paths
)ÚlistÚ
_sdk_toolsr0   s   &r   ÚSdkToolsÚEnvironmentInfo.SdkToolsƒ  s   € ô �D—O‘OÓ%Ó&Ð&r   c              #  ór  "  € V P                   R8  dL   V P                   R8:  d   RMRp\        P                  P                  V P                  P
                  V4      x € V P                  P                  4       '       gX   V P                  P                  RR7      pRV 2p\        P                  P                  V P                  P
                  V4      x € V P                   R9   d}   V P                  P                  4       '       d   RpMV P                  P                  RRR7      pR	V 2p\        P                  P                  V P                  P
                  V4      x € MœV P                   R8¼  dŒ   \        P                  P                  V P                  P
                  R4      pV P                  P                  RR7      pV P                  P                  p\        P                  P                  W4 V 24      x € V P                  P                  '       d   V P                  P                  x € R
# R
# 5i)zX
Microsoft Windows SDK Tools paths generator.

Return
------
generator of str
    paths
r‘  r  rœ  zBin\x86Tr’  r   r‡  zBin\NETFX 4.0 ToolsN)r  r  )r«   re   rf   rg   r}  r  r[   r;   rE   r6   r  r+  )r*   Úbin_dirr‰  rf   r¯  s   &    r   r½  ÚEnvironmentInfo._sdk_tools�  s’  é € ð �;‰;˜ÔØ#Ÿ{™{¨dÔ2‘e¸
ˆGÜ—'‘'—,‘,˜tŸw™w×4Ñ4°gÓ>Ò>à�w‰w×%Ñ%×'Ò'ØŸ'™'×-Ñ-°$Ð-Ó7ˆKØ˜˜Ð&ˆDÜ—'‘'—,‘,˜tŸw™w×4Ñ4°dÓ;Ò;à�;‰;˜,Ô&Ø�w‰w×$Ñ$×&Ò&Ø ‘à"Ÿg™g×1Ñ1¸$ÀDÐ1ÓI�Ø)¨+¨Ð7ˆDÜ—'‘'—,‘,˜tŸw™w×4Ñ4°dÓ;Ó;à�[‰[˜DÔ Ü—7‘7—<‘< §¡× 5Ñ 5°uÓ=ˆDØŸ'™'×-Ñ-°$Ð-Ó7ˆKØ—W‘W×2Ñ2ˆFÜ—'‘'—,‘,˜t x°¨}Ð%=Ó>Ò>à�7‰7×+×+Ð+Ø—'‘'×2Ñ2Ô2ñ ,ùs   ‚A<H7Á?BH7ÄDH7ÈH7c                óL   € V P                   P                  pV'       d   V R2# R# )zE
Microsoft Windows SDK version subdir.

Return
------
str
    subdir
rB   r   )r}  r  ©r*   Úucrtvers   & r   r§  ÚEnvironmentInfo._sdk_subdir²  s&   € ð —'‘'×/Ñ/ˆß#*�7�)˜2�Ð2°Ð2r   c                ó’   € V P                   R8”  d   . # \        P                  P                  V P                  P
                  R4      .# )zC
Microsoft Windows SDK Setup.

Return
------
list of str
    paths
r  ÚSetup)r«   re   rf   rg   r}  r  r0   s   &r   ÚSdkSetupÚEnvironmentInfo.SdkSetup¿  s7   € ð �;‰;˜ÔØˆIä—‘—‘˜TŸW™W×2Ñ2°GÓ<Ð=Ð=r   c                óÂ  € V P                   pV P                  pV P                  R8:  d6   RpVP                  4       '       * ;'       d    VP	                  4       '       * pMNVP                  4       ;'       g    VP	                  4       pVP
                  R8H  ;'       g    VP                  R8H  p. pV'       dL   TVP                   Uu. uF-  p\        P                  P                  VP                  V4      NK/  	  up,          pV'       dL   TVP                   Uu. uF-  p\        P                  P                  VP                  V4      NK/  	  up,          pV# u upi u upi )zF
Microsoft .NET Framework Tools.

Return
------
list of str
    paths
r  Tr&   )r[   r}  r«   r6   r;   r:   r1   rR  re   rf   rg   rF  rW  rJ  )r*   r[   r}  Ú	include32Ú	include64r   rÌ   s   &      r   ÚFxToolsÚEnvironmentInfo.FxToolsÎ  s"  € ð �W‰WˆØ�W‰Wˆà�;‰;˜$ÔØˆIØ×,Ñ,Ó.Ô.×JÐJ°r×7HÑ7HÓ7JÔ3J‰Ià×(Ñ(Ó*×AÐA¨b×.?Ñ.?Ó.AˆIØŸ™¨'Ñ1×MÐM°R·]±]ÀgÑ5MˆIàˆßØØ@B×@UÒ@UóÙ@U¸”—‘—‘˜R×.Ñ.°Ö4Ñ@Uñõ ˆE÷ ØØ@B×@UÒ@UóÙ@U¸”—‘—‘˜R×.Ñ.°Ö4Ñ@Uñõ ˆEð ˆùòùòs   Ã3EÄ3Ec                ó  € V P                   R8  g   V P                  P                  '       g   . # V P                  P	                  RR7      p\
        P                  P                  V P                  P                  RV 24      .# )zN
Microsoft .Net Framework SDK Libraries.

Return
------
list of str
    paths
rø   Tr’  zlib\um)r«   r}  r?  r[   rI   re   rf   rg   )r*   r‰  s   & r   ÚNetFxSDKLibrariesÚ!EnvironmentInfo.NetFxSDKLibrariesí  sd   € ð �;‰;˜Ô T§W¡W×%8×%8Ð%8ØˆIà—g‘g×(Ñ(¨TÐ(Ó2ˆÜ—‘—‘˜TŸW™W×0Ñ0°V¸K¸=Ð2IÓJÐKÐKr   c                óÊ   € V P                   R8  g   V P                  P                  '       g   . # \        P                  P                  V P                  P                  R4      .# )zM
Microsoft .Net Framework SDK Includes.

Return
------
list of str
    paths
rø   z
include\um)r«   r}  r?  re   rf   rg   r0   s   &r   ÚNetFxSDKIncludesÚ EnvironmentInfo.NetFxSDKIncludesý  sF   € ð �;‰;˜Ô T§W¡W×%8×%8Ð%8ØˆIä—‘—‘˜TŸW™W×0Ñ0°-Ó@ÐAÐAr   c                ól   € \         P                  P                  V P                  P                  R4      .# )zT
Microsoft Visual Studio Team System Database.

Return
------
list of str
    paths
zVSTSDB\Deploy)re   rf   rg   r}  rî   r0   s   &r   ÚVsTDbÚEnvironmentInfo.VsTDb  s'   € ô —‘—‘˜TŸW™W×1Ñ1Ð3CÓDÐEÐEr   c                ó¼  € V P                   R8  d   . # V P                   R8  d4   V P                  P                  pV P                  P	                  RR7      pMV P                  P
                  pRpRV P                   R RV 2p\        P                  P                  W4      .pV P                   R8¼  d)   V\        P                  P                  WR	4      .,          pV# )
z>
Microsoft Build Engine.

Return
------
list of str
    paths
r	  r‘  Tr“  r   zMSBuild\rë   z\binÚRoslyn)	r«   r}  rì   r[   rE   rî   re   rf   rg   )r*   Ú	base_pathr‰  rf   Úbuilds   &    r   ÚMSBuildÚEnvironmentInfo.MSBuild  s¶   € ð �;‰;˜ÔØˆIØ�[‰[˜4ÔØŸ™×/Ñ/ˆIØŸ'™'×-Ñ-°dÐ-Ó;‰KàŸ™×,Ñ,ˆIØˆKà˜4Ÿ;™; tÐ,¨D°°Ð>ˆÜ—‘—‘˜iÓ.Ð/ˆà�;‰;˜$Ôà”b—g‘g—l‘l 9°HÓ=Ð>Õ>ˆEàˆr   c                ó’   € V P                   R8  d   . # \        P                  P                  V P                  P
                  R4      .# )zD
Microsoft HTML Help Workshop.

Return
------
list of str
    paths
r  zHTML Help Workshop)r«   re   rf   rg   r}  rì   r0   s   &r   ÚHTMLHelpWorkshopÚ EnvironmentInfo.HTMLHelpWorkshop4  s8   € ð �;‰;˜ÔØˆIä—‘—‘˜TŸW™W×4Ñ4Ð6JÓKÐLÐLr   c                ó*  € V P                   R8  d   . # V P                  P                  RR7      p\        P                  P                  V P                  P                  R4      pV P                  p\        P                  P                  W# RV 24      .# )zS
Microsoft Universal C Runtime SDK Libraries.

Return
------
list of str
    paths
rø   Tr’  r  Úucrt)	r«   r[   rI   re   rf   rg   r}  r6  Ú_ucrt_subdir)r*   r‰  r  rÅ  s   &   r   ÚUCRTLibrariesÚEnvironmentInfo.UCRTLibrariesC  sv   € ð �;‰;˜ÔØˆIà—g‘g×(Ñ(¨TÐ(Ó2ˆÜ�g‰g�l‰l˜4Ÿ7™7×5Ñ5°uÓ=ˆØ×#Ñ#ˆÜ—‘—‘˜S I¨T°+°Ð"?Ó@ÐAÐAr   c                óê   € V P                   R8  d   . # \        P                  P                  V P                  P
                  R4      p\        P                  P                  WP                   R24      .# )zQ
Microsoft Universal C Runtime SDK Include.

Return
------
list of str
    paths
rø   rt  rã  )r«   re   rf   rg   r}  r6  rä  )r*   rt  s   & r   ÚUCRTIncludesÚEnvironmentInfo.UCRTIncludesU  sW   € ð �;‰;˜ÔØˆIä—'‘'—,‘,˜tŸw™w×9Ñ9¸9ÓEˆÜ—‘—‘˜W×):Ñ):Ð(;¸4Ð&@ÓAÐBÐBr   c                óL   € V P                   P                  pV'       d   V R2# R# )zQ
Microsoft Universal C Runtime SDK version subdir.

Return
------
str
    subdir
rB   r   )r}  r9  rÄ  s   & r   rä  ÚEnvironmentInfo._ucrt_subdire  s&   € ð —'‘'×4Ñ4ˆß#*�7�)˜2�Ð2°Ð2r   c                ój   € RV P                   u;8”  d
   R8”  d    . #  V P                  P                  .# )z;
Microsoft Visual F#.

Return
------
list of str
    paths
r  r	  )r«   r}  r/  r0   s   &r   ÚFSharpÚEnvironmentInfo.FSharpr  s4   € ð �$—+‘+Ö$ Õ$ØˆIð %ð —‘×(Ñ(Ð)Ð)r   c               ó   € V ^8„  d   QhRR/# r  r   )r!   s   "r   r"   r{  ‚  s   € ÷  Cñ  C ñ  Cr   c                óv  aa€ RV P                    R2oV P                  P                  RR7      P                  R4      o. pV P                  P
                  p\        P                  P                  VP                  RR4      4      p\        P                  P                  V4      '       dd   \        P                  P                  V\        P                  ! V4      R,          4      pW\        P                  P                  VR4      .,          pV\        P                  P                  VR	4      .,          pR
V P                   ^
,           R2R
\        V P                  4      ^
,           R23pVV3R l\        P                   ! W4       4       p\#        \%        \        P                  P&                  V4      R4      # )zc
Microsoft Visual C++ runtime redistributable dll.

Returns the first suitable path found or None.
Ú	vcruntimez0.dllTr’  rB   z\Toolsz\RedistÚonecoreÚredistzMicrosoft.VCz.CRTc              3  ól   <"  € T F)  w  r\         P                  P                  VSVS4      x € K+  	  R # 5irY   )re   rf   rg   )rh  rj  Úcrt_dirr‰  rñ  s   &  €€r   rk  Ú2EnvironmentInfo.VCRuntimeRedist.<locals>.<genexpr>ž  s1   øé € ð 
á%JÑ!�ô �G‰G�L‰L˜ ¨g°y×AÐAÛ%Jùs   ƒ14Nr°   )r¬   r[   rI   Ústripr}  rõ   re   rf   Údirnamer(   ró   rg   rÕ   Úintr«   r¼   r½   rn  ÚfilterÚisfile)r*   ÚprefixesÚ
tools_pathÚredist_pathÚcrt_dirsÚcandidate_pathsr‰  rñ  s   &     @@r   ÚVCRuntimeRedistÚEnvironmentInfo.VCRuntimeRedist�  sM  ù€ ð   §¡˜}¨EÐ2ˆ	Ø—g‘g×(Ñ(¨TÐ(Ó2×8Ñ8¸Ó>ˆð ˆØ—W‘W×)Ñ)ˆ
Ü—g‘g—o‘o j×&8Ñ&8¸ÀJÓ&OÓPˆÜ�7‰7�=‰=˜×%Ò%äŸ'™'Ÿ,™, {´B·J²J¸{Ó4KÈBÕ4OÓPˆKØ¤b§g¡g§l¡l°;À	Ó&JÐKÕKˆHà”R—W‘W—\‘\ *¨hÓ7Ð8Õ8ˆð ˜4Ÿ;™;¨Õ+Ð,¨DÐ1àœ3˜tŸ{™{Ó+¨bÕ0Ð1°Ð6ð
ˆõ
ä%.×%6Ò%6°xÔ%Jó
ˆô ”Fœ2Ÿ7™7Ÿ>™>¨?Ó;¸TÓBÐBr   c               ó    € V ^8„  d   QhRRRR/# )r   ÚexistsÚboolr   rs  r   )r!   s   "r   r"   r{  ¤  s   € ÷ ;ñ ; ð ;Ð1Añ ;r   c                óô  € \        V P                  RV P                  V P                  V P                  V P
                  .V4      V P                  RV P                  V P                  V P                  V P                  V P                  .V4      V P                  RV P                  V P                  V P                  V P                  .V4      V P                  RV P                  V P                  V P                  V P                   V P"                  V P                  V P$                  V P&                  V P(                  .	V4      R7      pV P*                  ^8¼  d"   V P,                  '       d   V P,                  VR&   V# )z‹
Return environment dict.

Parameters
----------
exists: bool
    It True, only return existing paths.

Return
------
dict
    environment
rt  r  ru  rf   )rt  r  ru  rf   rv  )rs  Ú_build_pathsrŽ  r°  rè  rÔ  r•  r©  rÎ  rå  rÑ  r˜  r¹  r£  rŠ  r×  r¾  rÉ  rÝ  rà  rí  r«   r  )r*   r  Úenvs   && r   Ú
return_envÚEnvironmentInfo.return_env¤  sU  € ô Ø×%Ñ%Øà—O‘OØ—O‘OØ×%Ñ%Ø×)Ñ)ð	ð ó	ð ×!Ñ!Øà×$Ñ$Ø×$Ñ$Ø—L‘LØ×&Ñ&Ø×*Ñ*ðð ó
ð ×%Ñ%ØØ×!Ñ! 4§<¡<°×1AÑ1AÀ4Ç>Á>ÐRØóð
 ×"Ñ"Øà—L‘LØ—L‘LØ—J‘JØ—M‘MØ—M‘MØ—L‘LØ—L‘LØ×)Ñ)Ø—K‘Kð
ð óô7*
ˆðV �;‰;˜"Ô ×!5×!5Ð!5Ø)-×)=Ñ)=ˆCÐ%Ñ&Øˆ
r   c                ó
  € \         P                  P                  V4      p\        P                  ! VR4      P                  \        P                  4      p\         P                  ! WE4      pV'       d.   \        \        \        P                  P                  V4      4      MTpV'       g3   VP                  4        R2p\        P                  P                  V4      h\!        V4      p	\        P                  P#                  V	4      # )a³  
Given an environment variable name and specified paths,
return a pathsep-separated string of paths containing
unique, extant, directories from those paths and from
the environment variable. Raise an error if no paths
are resolved.

Parameters
----------
name: str
    Environment variable name
spec_path_lists: list of str
    Paths
exists: bool
    It True, only return existing paths.

Return
------
str
    Pathsep-separated paths
r   z environment variable is empty)r¼   ÚchainÚfrom_iterabler	   rR   ræ   re   Úpathsepr¼  rú  rf   ró   rŸ  r²   r³   r´   r   rg   )
r*   r—   Úspec_path_listsr  Ú
spec_pathsÚ	env_pathsrˆ  Úextant_pathsrô   Úunique_pathss
   &&&&      r   r  ÚEnvironmentInfo._build_pathsá  s¬   € ô. —_‘_×2Ñ2°?ÓCˆ
Ü—K’K  bÓ)×/Ñ/´·
±
Ó;ˆ	Ü—’ 
Ó6ˆß=C”tœF¤2§7¡7§=¡=°%Ó8Ô9ÈˆßØ—Z‘Z“\�NÐ"@ÐAˆCÜ×"Ñ"×9Ñ9¸#Ó>Ð>Ü& |Ó4ˆÜ�z‰z�‰˜|Ó,Ð,r   )r[   r§   r}  )Né    )T)#r   r   r   r   rQ   r+   rS   r«   r¬   rŠ  rŽ  r•  r˜  r£  r©  r°  r¹  r¾  r½  r§  rÉ  rÎ  rÑ  rÔ  r×  rÝ  rà  rå  rè  rä  rí  r  r	  r  r   r   r   r   ry  ry  {  s  † ñ÷.?ð ñ	ó ð	ð ñ	ó ð	ð ñLó ðLð& ñ
ó ð
ð ñLó ðLð( ñMó ðMð ñ0ó ð0ðd ñCó ðCð& ñó ðð2 ñ%ó ð%ðN ñ	'ó ð	'ò!3ðF ñ
3ó ð
3ð ñ>ó ð>ð ñó ðð< ñLó ðLð ñBó ðBð ñ	Fó ð	Fð ñó ðð6 ñMó ðMð ñBó ðBð" ñCó ðCð ñ
3ó ð
3ð ñ*ó ð*ð ô Có ð C÷D;öz-r   ry  )Ú__conditional_annotations__rQ   Ú
__future__r   rÀ   r¼   r×   re   Úos.pathÚplatformÚtypingr   r   Úmore_itertoolsr   Údistutils.errorsr²   Útyping_extensionsr   r   Úsystemr   r	   Údictrw  r   rU   r¡   rs  ry  )r  s   @r   Ú<module>r      s¡   øðôõ #ã Û Û Û 	Û Û ß +å *ã çß<÷ ˜ŸšÓ*¨iÔ7ÛÞ÷!ñ !ñ #›f€Gˆ^Ó$÷v
ñ v
÷rzñ z÷zQ/ñ Q/ôh1�yô 1÷E
-ó E
-r   