Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
§

ÕgWŸãóH—UdZddlmZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZddl
Ze
sej¦«dkrddlZddlmZnGd„d	¦«Ze¦«Zd
ed<Gd„d
¦«ZGd„d¦«ZGd„d¦«ZGd„d¦«ZdS)zo
Environment info about Microsoft Compilers.

>>> getfixture('windows_only')
>>> ei = EnvironmentInfo('amd64')
é)ÚannotationsN)Ú
TYPE_CHECKING)Úunique_everseenÚWindows)Úenvironcó—eZdZdZdZdZdZdS)ÚwinregN)Ú__name__Ú
__module__Ú__qualname__Ú
HKEY_USERSÚHKEY_CURRENT_USERÚHKEY_LOCAL_MACHINEÚHKEY_CLASSES_ROOT©óú6/tmp/pip-target-6culloxw/lib/python/setuptools/msvc.pyr	r	s'€€€€€Øˆ
Ø ÐØ!ÐØ ÐÐÐrr	zdict[str, str]rcó˜—eZdZdZejdd¦« ¦«Zd„Ze	d„¦«Z
d„Zd„Zd
d	„Z
d
d
„Zdd„ZdS)ÚPlatformInfoz
    Current and Target Architectures information.

    Parameters
    ----------
    arch: str
        Target architecture.
    Úprocessor_architectureÚcó`—| ¦« dd¦«|_dS)NÚx64Úamd64)ÚlowerÚreplaceÚarch)Úselfrs  rÚ__init__zPlatformInfo.__init__2s%€Ø—J’J‘L”L×(Ò(¨°Ñ8Ô8ˆŒ	ˆ	ˆ	rcóV—|j|j d¦«dzd…S)zs
        Return Target CPU architecture.

        Return
        ------
        str
            Target CPU
        Ú_éN)rÚfind©rs rÚ
target_cpuzPlatformInfo.target_cpu5s*€ðŒy˜œŸš¨Ñ,Ô,¨qÑ0Ð2Ð2Ô3Ð3rcó—|jdkS)z‡
        Return True if target CPU is x86 32 bits..

        Return
        ------
        bool
            CPU is x86 32 bits
        Úx86©r%r$s rÚ
target_is_x86zPlatformInfo.target_is_x86As€ðŒ %Ò'Ð'rcó—|jdkS)zˆ
        Return True if current CPU is x86 32 bits..

        Return
        ------
        bool
            CPU is x86 32 bits
        r'©Úcurrent_cpur$s rÚcurrent_is_x86zPlatformInfo.current_is_x86Ls€ðÔ 5Ò(Ð(rFcóR—|jdkr|rdn|jdkr|rdn	d|jzS)uk
        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)
        r'rrú\x64ú\%sr+©rÚhidex86rs   rÚcurrent_dirzPlatformInfo.current_dirWsJ€ð$Ô  EÒ)Ð)¨gÐ)ð
ˆBðÔ  GÒ+Ð+°Ð+ðà˜$Ô*Ñ*ð	
rcóR—|jdkr|rdn|jdkr|rdn	d|jzS)ar
        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)
        r'rrr/r0r(r1s   rÚ
target_dirzPlatformInfo.target_dirosG€ð$” 5Ò(Ð(¨WÐ(ð
ˆBð” 7Ò*Ð*¨sÐ*ðà˜$œ/Ñ)ð	
rcóˆ—|rdn|j}|j|krdn*| ¦« dd|z¦«S)ap
        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.
        r'rú\z\%s_)r,r%r5r)rÚforcex86Úcurrents   rÚ	cross_dirzPlatformInfo.cross_dir‡sR€ð $Ð9%%¨Ô)9ˆðŒ 'Ò)Ð)ð
ˆBà—’Ñ"Ô"×*Ò*¨4°¸7Ñ1BÑCÔCð	
rN)FF©F)r
rrÚ__doc__rÚgetrr,rÚpropertyr%r)r-r3r5r:rrrrr&sĀ€€€€ððð'”+Ð6¸Ñ;Ô;×AÒAÑCÔC€Kð9ð9ð9ðð	4ð	4ñ„Xð	4ð	(ð	(ð	(ð	)ð	)ð	)ð
ð
ð
ð
ð0
ð
ð
ð
ð0
ð
ð
ð
ð
ð
rrcó —eZdZdZejejejejfZ	d„Z
ed„¦«Zed„¦«Z
ed„¦«Zed„¦«Zed„¦«Zed„¦«Zed	„¦«Zed
„¦«Zed„¦«Zdd
„Zd„ZdS)ÚRegistryInfozŸ
    Microsoft Visual Studio related registry information.

    Parameters
    ----------
    platform_info: PlatformInfo
        "PlatformInfo" instance.
    có—||_dS©N)Úpi)rÚ
platform_infos  rrzRegistryInfo.__init__°s
€ØˆŒˆˆrcó—dS)z€
        Microsoft Visual Studio root registry key.

        Return
        ------
        str
            Registry key
        ÚVisualStudiorr$s rÚvisualstudiozRegistryInfo.visualstudio³s	€ðˆ~rcóL—tj |jd¦«S)z
        Microsoft Visual Studio SxS registry key.

        Return
        ------
        str
            Registry key
        ÚSxS)ÚosÚpathÚjoinrGr$s rÚsxszRegistryInfo.sxs¿s€õŒw|Š|˜DÔ-¨uÑ5Ô5Ð5rcóL—tj |jd¦«S)z|
        Microsoft Visual C++ VC7 registry key.

        Return
        ------
        str
            Registry key
        ÚVC7©rJrKrLrMr$s rÚvczRegistryInfo.vcËó€õŒw|Š|˜DœH eÑ,Ô,Ð,rcóL—tj |jd¦«S)z
        Microsoft Visual Studio VS7 registry key.

        Return
        ------
        str
            Registry key
        ÚVS7rPr$s rÚvszRegistryInfo.vs×rRrcó—dS)zƒ
        Microsoft Visual C++ for Python registry key.

        Return
        ------
        str
            Registry key
        zDevDiv\VCForPythonrr$s rÚ
vc_for_pythonzRegistryInfo.vc_for_pythonãs
€ð%Ð$rcó—dS)zq
        Microsoft SDK registry key.

        Return
        ------
        str
            Registry key
        zMicrosoft SDKsrr$s rÚ
microsoft_sdkzRegistryInfo.microsoft_sdkïs
€ð ÐrcóL—tj |jd¦«S)z‚
        Microsoft Windows/Platform SDK registry key.

        Return
        ------
        str
            Registry key
        r©rJrKrLrYr$s rÚwindows_sdkzRegistryInfo.windows_sdkûs€õŒw|Š|˜DÔ.°	Ñ:Ô:Ð:rcóL—tj |jd¦«S)z€
        Microsoft .NET Framework SDK registry key.

        Return
        ------
        str
            Registry key
        ÚNETFXSDKr[r$s rÚ	netfx_sdkzRegistryInfo.netfx_sdks€õŒw|Š|˜DÔ.°
Ñ;Ô;Ð;rcó—dS)z€
        Microsoft Windows Kits Roots registry key.

        Return
        ------
        str
            Registry key
        zWindows Kits\Installed Rootsrr$s rÚwindows_kits_rootszRegistryInfo.windows_kits_rootss
€ð/Ð.rFcó„—|j ¦«s|rdnd}tj d|d|¦«S)a
        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)rCr-rJrKrL)rÚkeyr'Únode64s    rÚ	microsoftzRegistryInfo.microsofts?€ð ”w×-Ò-Ñ/Ô/ÐI°3ÐI¸MˆÝŒw|Š|˜J¨°¸SÑAÔAÐArc	ó—tj}tj}tj}|j}|jD]Ò}d}	||||¦«d|¦«}nV#t$rI|j ¦«s+	||||d¦«d|¦«}n#t$rYYŒgwxYwYŒmYnwxYw	tj	||¦«d|r||¦«cScS#t$rYnwxYw	|r||¦«ŒÀ#|r||¦«wwxYwdS)a
        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
        NrT)
r	ÚKEY_READÚOpenKeyÚCloseKeyrhÚHKEYSÚOSErrorrCr-ÚQueryValueEx)	rrfÚnameÚkey_readÚopenkeyÚclosekeyÚmsÚhkeyÚbkeys	         rÚlookupzRegistryInfo.lookup2s‰€õ ”?ˆÝ”.ˆÝ”?ˆØ
Œ^ˆØ”Jð	#ð	#ˆD؈Dð	
ؐw˜t R R¨¡W¤W¨a°Ñ:Ô:øÝð
ð
ð
Ø”w×-Ò-Ñ/Ô/ðð!Ø&˜w t¨R¨R°°T©]¬]¸A¸xÑHÔH˜˜øÝ"ð!ð!ð!Ø ˜˜ð!øøøðHð	˜ð
øøøð
#ÝÔ*¨4°Ñ6Ô6°qÔ9ðð#ؐH˜T‘N”NNNNNð#ð#ð#øõð
ð
ð
ؐð
øøøØàð#ؐH˜T‘N”NNøøðð#ؐH˜T‘N”NNNð#øøøàˆtsY¸AÁ#B#Á4B
ÂB#Â
BÂB#ÂBÂB#Â"B#Â'CÃ
C!ÃC3Ã C!Ã!C3Ã3DNr;)r
rrr<r	r
rrrrmrr>rGrMrQrUrWrYr\r_rarhrwrrrr@r@Ÿsh€€€€€ððð	ÔØÔ ØÔ!ØÔ ð	
€Eð ð ð ðð	ð	ñ„Xð	ðð	6ð	6ñ„Xð	6ðð	-ð	-ñ„Xð	-ðð	-ð	-ñ„Xð	-ðð	%ð	%ñ„Xð	%ðð	 ð	 ñ„Xð	 ðð	;ð	;ñ„Xð	;ðð	<ð	<ñ„Xð	<ðð	/ð	/ñ„Xð	/ðBðBðBðBð&'ð'ð'ð'ð'rr@có—eZdZdZejdd¦«Zejdd¦«Zejde¦«Zdd„Z	d„Z
d	„Zd
„Ze
d„¦«Zed„¦«Zed
„¦«Zd„Zd„Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Z d„Z!e
d d„¦«Z"dS)!Ú
SystemInfozê
    Microsoft Windows and Visual Studio related system information.

    Parameters
    ----------
    registry_info: RegistryInfo
        "RegistryInfo" instance.
    vc_ver: float
        Required Microsoft Visual C++ version.
    ÚWinDirrÚProgramFileszProgramFiles(x86)Ncó¬—||_|jj|_| ¦«|_|p| ¦«x|_|_dSrB)ÚrirCÚfind_programdata_vs_versÚknown_vs_pathsÚ_find_latest_available_vs_verÚvs_verÚvc_ver)rÚ
registry_infor‚s   rrzSystemInfo.__init__nsM€ØˆŒØ”'”*ˆŒà"×;Ò;Ñ=Ô=ˆÔð%+Ð$R¨d×.PÒ.PÑ.RÔ.RÐRˆŒd”kkkrcóö—| ¦«}|s&|jstj d¦«‚t|¦«}| |j¦«t|¦«dS)zm
        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   rr€z(SystemInfo._find_latest_available_vs_verwsz€ð×+Ò+Ñ-Ô-ˆàð	˜tÔ2ð	ÝÔ"×9Ò9Ø7ñôð
õkÑ"Ô"ˆØŠtÔ*Ñ+Ô+Ð+ݐg‰Œ˜rÔ"Ð"rc
ó²—|jj}|jj|jj|jjf}g}tj|jj|¦«D]w\}}	tj	|||¦«dtj
¦«}n#t$rYŒ>wxYw|5tj|¦«\}}}	t|¦«D]t}
tjt ¦«5t#tj||
¦«d¦«}||vr| |¦«ddd¦«n#1swxYwYŒut|¦«D]n}
tjt ¦«5t#tj||
¦«¦«}||vr| |¦«ddd¦«n#1swxYwYŒo	ddd¦«n#1swxYwYŒyt+|¦«S)z˜
        Find Microsoft Visual Studio versions available in registry.

        Return
        ------
        list of float
            Versions
        rN)r}rhrQrWrUÚ	itertoolsÚproductrmr	rkrjrnÚQueryInfoKeyÚrangeÚ
contextlibÚsuppressÚ
ValueErrorÚfloatÚ	EnumValueÚappendÚEnumKeyrŒ)rrtÚvckeysÚvs_versrurfrvÚsubkeysÚvaluesr!ÚiÚvers            rr†zSystemInfo.find_reg_vs_vers‹sˆ€ðŒWÔ
ˆØ”'”*˜dœgÔ3°T´W´ZÐ@ˆØˆÝ"Ô*¨4¬7¬=¸&ÑAÔAð	0ñ	0‰IˆD#ð
Ý”~ d¨B¨B¨s©G¬G°Q½¼ÑHÔHøÝð
ð
ð
ؐð
øøøàð
0ð
0Ý%+Ô%8¸Ñ%>Ô%>Ñ"˜ Ý˜v™œð0ð0AÝ#Ô,­ZÑ8Ô8ð0ð0Ý#¥FÔ$4°T¸1Ñ$=Ô$=¸aÔ$@ÑAÔA˜Ø gÐ-Ð-Ø#ŸNšN¨3Ñ/Ô/Ð/ð0ð0ð0ñ0ô0ð0ð0ð0ð0ð0ð0øøøð0ð0ð0ð0øõ˜w™œð0ð0AÝ#Ô,­ZÑ8Ô8ð0ð0Ý#¥F¤N°4¸Ñ$;Ô$;Ñ<Ô<˜Ø gÐ-Ð-Ø#ŸNšN¨3Ñ/Ô/Ð/ð0ð0ð0ñ0ô0ð0ð0ð0ð0ð0ð0øøøð0ð0ð0ð0øð0ð
0ð
0ð
0ñ
0ô
0ð
0ð
0ð
0ð
0ð
0ð
0øøøð
0ð
0ð
0ð
0ùõg‰ŒÐsnÁ*BÂ
BÂBÂAF=ÃAD&	ÄF=Ä&D*
Ä*F=Ä-D*
Ä..F=Å<F$	ÆF=Æ$F(
Æ(F=Æ+F(
Æ,F=Æ=G	ÇG	có—i}d}	tj|¦«}n#t$r|cYSwxYw|D]Ñ}	tj ||d¦«}t|dd¬¦«5}t
j|¦«}ddd¦«n#1swxYwY|d}tjtj |d¦«¦«||| |d	¦«<Œ»#ttf$rYŒÎwxYw|S)
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Úrtzutf-8)ÚencodingNÚinstallationPathú
VC\Tools\MSVCÚinstallationVersion)
rJÚlistdirrnrKrLÚopenÚjsonÚloadÚ_as_float_versionÚKeyError)	rÚvs_versionsÚ
instances_dirÚhashed_namesrpÚ
state_pathÚ
state_fileÚstateÚvs_paths	         rr~z#SystemInfo.find_programdata_vs_versªsq€ðˆØTˆ
ð	Ýœ: mÑ4Ô4ˆLˆLøåð	ð	ð	àÐÐÐð	øøøð!ð	ð	ˆDð
åœWŸ\š\¨-¸¸|ÑLÔL
ݘ* d°WÐ=Ñ=Ô=ð2ÀÝ œI jÑ1Ô1Eð2ð2ð2ñ2ô2ð2ð2ð2ð2ð2ð2øøøð2ð2ð2ð2àÐ 2Ô3õ”
2œ7Ÿ<š<¨Ð1AÑBÔBÑCÔCÐCðð˜D×2Ò2°5Ð9NÔ3OÑPÔPÑQÐQøõXÐ&ð
ð
ð
àð
øøøðÐsB†›*©*²3C*Á%BÁ:C*ÂB
	Â
C*Â
B
	ÂAC*Ã*C>Ã=C>có|—td | d¦«dd…¦«¦«S)zç
        Return a string version as a simplified float version (major.minor)

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

        Return
        ------
        float
            version
        ú.Né)r—rLÚsplit)Úversions rr«zSystemInfo._as_float_versionÔs3€õS—X’X˜gŸmšm¨CÑ0Ô0°°!°Ô4Ñ5Ô5Ñ6Ô6Ð6rcóº—tj |jd|jz¦«}|j |jjd|jz¦«p|S)zp
        Microsoft Visual Studio directory.

        Return
        ------
        str
            path
        zMicrosoft Visual Studio %0.1fú%0.1f)rJrKrLÚProgramFilesx86rr}rwrU)rÚdefaults  rÚVSInstallDirzSystemInfo.VSInstallDiråsQ€õ”'—,’,ØÔ Ð"AÀDÄKÑ"Oñ
ô
ˆð
Œw~Š~˜dœgœj¨'°D´KÑ*?Ñ@Ô@ÐKÀGÐKrcó֗| ¦«p| ¦«}tj |¦«s!d}t
j |¦«‚|S)zm
        Microsoft Visual C++ directory.

        Return
        ------
        str
            path
        z(Microsoft Visual C++ directory not found)Ú	_guess_vcÚ_guess_vc_legacyrJrKÚisdirr‡rˆr‰)rrKÚmsgs   rÚVCInstallDirzSystemInfo.VCInstallDir÷s[€ð~Š~ÑÔÐ: 4×#8Ò#8Ñ#:Ô#:ˆåŒw}Š}˜TÑ"Ô"ð	?Ø<ˆCÝÔ"×9Ò9¸#Ñ>Ô>Ð>àˆrcóŒ—|jdkrdS	|j|j}n#t$r
|j}YnwxYwtj |d¦«}	t	j|¦«d}| |¦«|_	tj ||¦«S#ttf$rYdSwxYw)zl
        Locate Visual C++ for VS2017+.

        Return
        ------
        str
            path
        ç,@rr¥r…)rrr¬r½rJrKrLr§r«r‚rnÚ
IndexError)rÚvs_dirÚguess_vcr‚s    rr¿zSystemInfo._guess_vc	sրðŒ;˜$ÒÐØ2ð	'àÔ(¨¬Ô5ˆFˆFøÝð	'ð	'ð	'àÔ&ˆFˆFˆFð	'øøøõ”7—<’< Ð(8Ñ9Ô9ˆð	å”Z Ñ)Ô)¨"Ô-ˆFØ×0Ò0°Ñ8Ô8ˆDŒKÝ”7—<’< ¨&Ñ1Ô1Ð1øÝÐ$ð	ð	ð	ؐ22ð	øøøs"¢6µ6ÁAB.Â.CÃCcóœ—tj |jd|jz¦«}tj |jjd|jz¦«}|j |d¦«}|r tj |d¦«n|}|j |jjd|jz¦«p|S)z{
        Locate Visual C++ for versions prior to 2017.

        Return
        ------
        str
            path
        z Microsoft Visual Studio %0.1f\VCrºÚ
installdirÚVC)	rJrKrLr»rr}rWrwrQ)rr¼Úreg_pathÚ	python_vcÚ
default_vcs     rrÀzSystemInfo._guess_vc_legacy's¨€õ”'—,’,ØÔ Ð"EÈÌÑ"Sñ
ô
ˆõ
”7—<’< ¤Ô 5°wÀÄÑ7LÑMÔMˆØ”G—N’N 8¨\Ñ:Ô:ˆ	Ø6?ÐL•R”W—\’\ )¨TÑ2Ô2Ð2ÀWˆ
ðŒw~Š~˜dœgœj¨'°D´KÑ*?Ñ@Ô@ÐNÀJÐNrcóˆ—|jdkrdS|jdkrdS|jdkrdS|jdkrdS|jd	krd
SdS)z—
        Microsoft Windows SDK versions for specified MSVC++ version.

        Return
        ------
        tuple of str
            versions
        ç"@)z7.0z6.1z6.0aç$@)z7.1z7.0aç&@)z8.0z8.0aç(@)ú8.1z8.1arÅ)z10.0rÔN©rr$s rÚWindowsSdkVersionzSystemInfo.WindowsSdkVersion<sd€ðŒ;˜#ÒÐØ'Ð'Ø
Œ[˜DÒ
 Ð
 Ø =Ø
Œ[˜DÒ
 Ð
 Ø =Ø
Œ[˜DÒ
 Ð
 Ø =Ø
Œ[˜DÒ
 Ð
 Ø =؈trcór—| tj |jd¦«¦«S)zt
        Microsoft Windows SDK last version.

        Return
        ------
        str
            version
        Úlib)Ú_use_last_dir_namerJrKrLÚ
WindowsSdkDirr$s rÚWindowsSdkLastVersionz SystemInfo.WindowsSdkLastVersionRs+€ð×&Ò&¥r¤w§|¢|°DÔ4FÈÑ'NÔ'NÑOÔOÐOrcó6—d}|jD]N}tj |jjd|z¦«}|j |d¦«}|rnŒO|rtj |¦«sotj |jjd|j	z¦«}|j |d¦«}|r tj |d¦«}|rtj |¦«sr|jD]j}|d| 
d¦«…}d	|z}tj |j|¦«}tj |¦«r|}Œk|rtj |¦«sU|jD]M}d
|z}tj |j|¦«}tj |¦«r|}ŒN|s%tj |jd¦«}|S)zn
        Microsoft Windows SDK directory.

        Return
        ------
        str
            path
        rzv%sÚinstallationfolderrºrÊÚWinSDKNrµzMicrosoft SDKs\Windows Kits\%szMicrosoft SDKs\Windows\v%sÚPlatformSDK)
rÖrJrKrLr}r\rwrÁrWr‚Úrfindr{rÃ)rÚsdkdirr ÚlocrKÚinstall_baseÚintverÚds        rrÚzSystemInfo.WindowsSdkDir^së€ðˆØÔ)ð	ð	ˆCå”'—,’,˜tœwÔ2°E¸C±KÑ@Ô@ˆCØ”W—^’^ CÐ)=Ñ>Ô>ˆFØð
ؐð
àð	>RœWŸ]š]¨6Ñ2Ô2ð	>å”7—<’< ¤Ô 5°wÀÄÑ7LÑMÔMˆDØœ7Ÿ>š>¨$°Ñ=Ô=ˆLØð
>ÝœŸš l°HÑ=Ô=Øð	RœWŸ]š]¨6Ñ2Ô2ð	àÔ-ð
ð
ØÐ-˜sŸyšy¨™~œ~Ð-Ô.Ø8¸6ÑAÝ”G—L’L Ô!2°DÑ9Ô9Ý”7—=’= Ñ#Ô#ðؐFøØð	RœWŸ]š]¨6Ñ2Ô2ð	àÔ-ð
ð
Ø4°sÑ:Ý”G—L’L Ô!2°DÑ9Ô9Ý”7—=’= Ñ#Ô#ðؐFøØð	Då”W—\’\ $Ô"3°]ÑCÔCˆF؈
rcó—|jdkrd}d}n-d}|jdkrdnd}|j d|¬¦«}d	|| d
d¦«fz}g}|jdkr9|jD]1}|t
j |jj	||¦«gz
}Œ2|j
D]4}|t
j |jjd
|z|¦«gz
}Œ5|D]#}|j |d¦«}|r|cSŒ$dS)zy
        Microsoft Windows SDK executable directory.

        Return
        ------
        str
            path
        rÒé#ré(rÓTF)rr2zWinSDK-NetFx%dTools%sr7ú-rÅzv%sArÝN)
rrCr3rÚNetFxSdkVersionrJrKrLr}r_rÖr\rw)	rÚnetfxverrr2ÚfxÚregpathsr rKÚexecpaths	         rÚWindowsSDKExecutablePathz#SystemInfo.WindowsSDKExecutablePath‰s>€ðŒ;˜$ÒÐØˆH؈DˆDàˆHØ"œk¨TÒ1Ð1dd°uˆGØ”7×&Ò&¨4¸Ð&ÑAÔAˆDØ
$¨°$·,²,¸tÀSÑ2IÔ2IÐ'JÑ
JˆðˆØŒ;˜$ÒÐØÔ+ð
Gð
GØRœWŸ\š\¨$¬'Ô*;¸SÀ"ÑEÔEÐFÑFàÔ)ð	Nð	NˆCØœŸš d¤gÔ&9¸6ÀC¹<ÈÑLÔLÐMÑMˆHˆHðð	 ð	 ˆDØ”w—~’~ dÐ,@ÑAÔAˆHØð
 ؐð
 ðˆtrcó —tj |jjd|jz¦«}|j |d¦«pdS)zl
        Microsoft Visual F# directory.

        Return
        ------
        str
            path
        z%0.1f\Setup\F#Ú
productdirr)rJrKrLr}rGrrw)rrKs  rÚFSharpInstallDirzSystemInfo.FSharpInstallDir®sA€õŒw|Š|˜DœGÔ0Ð2CÀdÄkÑ2QÑRÔRˆØŒw~Š~˜d LÑ1Ô1Ð7°RÐ7rcóŽ—|jdkrdnd}|D]2}|j |jjd|z¦«}|r|pdcSŒ3dS)zt
        Microsoft Universal CRT SDK directory.

        Return
        ------
        str
            path
        rÅ)Ú10Ú81rz
kitsroot%srN)rr}rwra)rÚversr rás    rÚUniversalCRTSdkDirzSystemInfo.UniversalCRTSdkDir»sm€ð $œ{¨dÒ2Ð2ˆ|ˆ|¸ˆðð	$ð	$ˆCØ”W—^’^ D¤GÔ$>ÀÈsÑ@RÑSÔSˆFØð
$ؐ| Ð#Ð#Ð#ð
$ðˆtrcór—| tj |jd¦«¦«S)z€
        Microsoft Universal C Runtime SDK last version.

        Return
        ------
        str
            version
        rØ)rÙrJrKrLr÷r$s rÚUniversalCRTSdkLastVersionz%SystemInfo.UniversalCRTSdkLastVersionÐs+€ð×&Ò&¥r¤w§|¢|°DÔ4KÈUÑ'SÔ'SÑTÔTÐTrcó —|jdkrdndS)z
        Microsoft .NET Framework SDK versions.

        Return
        ------
        tuple of str
            versions
        rÅ)	z4.7.2z4.7.1z4.7z4.6.2z4.6.1z4.6z4.5.2z4.5.1z4.5rrÕr$s rrêzSystemInfo.NetFxSdkVersionÜs"€ðŒ{˜dÒ"Ð"ð
XÐWàð	
rcó°—d}|jD]K}tj |jj|¦«}|j |d¦«}|rnŒL|S)zu
        Microsoft .NET Framework SDK directory.

        Return
        ------
        str
            path
        rÚkitsinstallationfolder)rêrJrKrLr}r_rw)rrár râs    rÚNetFxSdkDirzSystemInfo.NetFxSdkDirísb€ðˆØÔ'ð	ð	ˆCÝ”'—,’,˜tœwÔ0°#Ñ6Ô6ˆCØ”W—^’^ CÐ)AÑBÔBˆFØð
ؐð
àˆ
rcóš—tj |jd¦«}|j |jjd¦«p|S)zw
        Microsoft .NET Framework 32bit directory.

        Return
        ------
        str
            path
        zMicrosoft.NET\FrameworkÚframeworkdir32©rJrKrLrzr}rwrQ©rÚguess_fws  rÚFrameworkDir32zSystemInfo.FrameworkDir32ÿs>€õ”7—<’< ¤Ð-GÑHÔHˆðŒw~Š~˜dœgœjÐ*:Ñ;Ô;ÐG¸xÐGrcóš—tj |jd¦«}|j |jjd¦«p|S)zw
        Microsoft .NET Framework 64bit directory.

        Return
        ------
        str
            path
        zMicrosoft.NET\Framework64Úframeworkdir64rrs  rÚFrameworkDir64zSystemInfo.FrameworkDir64s>€õ”7—<’< ¤Ð-IÑJÔJˆðŒw~Š~˜dœgœjÐ*:Ñ;Ô;ÐG¸xÐGrcó,—| d¦«S)zƒ
        Microsoft .NET Framework 32bit versions.

        Return
        ------
        tuple of str
            versions
        é ©Ú_find_dot_net_versionsr$s rÚFrameworkVersion32zSystemInfo.FrameworkVersion32ó€ð×*Ò*¨2Ñ.Ô.Ð.rcó,—| d¦«S)zƒ
        Microsoft .NET Framework 64bit versions.

        Return
        ------
        tuple of str
            versions
        é@r	r$s rÚFrameworkVersion64zSystemInfo.FrameworkVersion64+rrcód—|j |jjd|z¦«}t|d|z¦«}|p| |d¦«pd}|jdkr|dfS|jdkr&| ¦«dd	…d
krdn|dfS|jd
krdS|jdkrdSdS)zê
        Find Microsoft .NET Framework versions.

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

        Return
        ------
        tuple of str
            versions
        zframeworkver%dzFrameworkDir%dÚvrrÓzv4.0rÑNr¶Úv4z
v4.0.30319úv3.5rÐ)rú
v2.0.50727g @)zv3.0r)r}rwrQÚgetattrrÙrr)rÚbitsÚreg_verÚdot_net_dirr s     rr
z!SystemInfo._find_dot_net_versions7sрð”'—.’. ¤¤Ð-=ÀÑ-DÑEÔEˆÝ˜dÐ$4°tÑ$;Ñ<Ô<ˆØÐH˜×0Ò0°¸cÑBÔBÐHÀbˆðŒ;˜$ÒÐØ˜;ÐØ
Œ[˜DÒ
 Ð
 Ø#&§9¢9¡;¤;¨r°¨r¤?°dÒ#:Ð#:<<ÀÀVÐKÐKØ
Œ[˜CÒ
Ð
Ø'Ð'Ø
Œ[˜CÒ
Ð
Ø'Ð'؈trc󆇇—ˆˆfd„ttj‰¦«¦«D¦«}t|d¦«pdS)a)
        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
        c3óÀ•K—|]X}tj tj ‰|¦«¦«¯?| ‰¦«¯T|V—ŒYdSrB)rJrKrÁrLÚ
startswith)Ú.0Údir_namerKÚprefixs  €€rú	<genexpr>z0SystemInfo._use_last_dir_name.<locals>.<genexpr>fssøèè€ð
ð
àÝŒw}Š}RœWŸ\š\¨$°Ñ9Ô9Ñ:Ô:ð
ð×#Ò# FÑ+Ô+ð	
Øð
ð
ð
ð
ð
ð
rNr)ÚreversedrJr§Únext)rKrÚ
matching_dirss`` rrÙzSystemInfo._use_last_dir_nameUsZøø€ð"
ð
ð
ð
ð
å$¥R¤Z°Ñ%5Ô%5Ñ6Ô6ð
ñ
ô
ˆ
õM 4Ñ(Ô(Ð.¨BÐ.rrB)r)#r
rrr<rr=rzr{r»rr€r†r~Ústaticmethodr«r>r½rÃr¿rÀrÖrÛrÚrïròr÷rùrêrýrrrrr
rÙrrrryry\s±€€€€€ð	ð	ðˆWŒ[˜ 2Ñ
&Ô
&€Fؐ7”;˜~¨rÑ2Ô2€LØ!g”kÐ"5°|ÑDÔD€OðSðSðSðSð#ð#ð#ð(ððð>(ð(ð(ðTð7ð7ñ„\ð7ð ðLðLñ„XðLð"ððñ„Xðð"ððð<OðOðOð*ððñ„Xðð*ð	Pð	Pñ„Xð	Pðð(ð(ñ„Xð(ðTð"ð"ñ„Xð"ðHð
8ð
8ñ„Xð
8ðððñ„Xðð(ð	Uð	Uñ„Xð	Uðð
ð
ñ„Xð
ð ððñ„Xðð"ð
Hð
Hñ„Xð
Hðð
Hð
Hñ„Xð
Hðð	/ð	/ñ„Xð	/ðð	/ð	/ñ„Xð	/ðððð<ð/ð/ð/ñ„\ð/ð/ð/rrycó@—eZdZdZd#d„Zed„¦«Zed„¦«Zed„¦«Zed„¦«Z	ed	„¦«Z
ed
„¦«Zed„¦«Zed„¦«Z
ed
„¦«Zed„¦«Zed„¦«Zd„Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed$d„¦«Zd%d!„Zd"„Z dS)&ÚEnvironmentInfoaY
    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.
    Nrcóì—t|¦«|_t|j¦«|_t	|j|¦«|_|j|kr!d}tj 	|¦«‚dS)Nz.No suitable Microsoft Visual C++ version found)
rrCr@r}ryÚsir‚r‡rˆr‰)rrr‚Ú
vc_min_verÚerrs     rrzEnvironmentInfo.__init__‡sf€Ý˜tÑ$Ô$ˆŒÝ˜tœwÑ'Ô'ˆŒÝ˜TœW fÑ-Ô-ˆŒàŒ;˜Ò#Ð#ØBˆCÝÔ"×9Ò9¸#Ñ>Ô>Ð>ð$Ð#rcó—|jjS)zk
        Microsoft Visual Studio.

        Return
        ------
        float
            version
        )r'rr$s rrzEnvironmentInfo.vs_veró€ðŒwŒ~Ðrcó—|jjS)zp
        Microsoft Visual C++ version.

        Return
        ------
        float
            version
        )r'r‚r$s rr‚zEnvironmentInfo.vc_verœr+rc󠇗ddg}‰jdkr1‰j dd¬¦«}|dgz
}|dgz
}|d|zgz
}ˆfd	„|D¦«S)
zu
        Microsoft Visual Studio Tools.

        Return
        ------
        list of str
            paths
        zCommon7\IDEz
Common7\ToolsrÅT©r2rz1Common7\IDE\CommonExtensions\Microsoft\TestWindowzTeam Tools\Performance ToolszTeam Tools\Performance Tools%scód•—g|],}tj ‰jj|¦«‘Œ-Sr©rJrKrLr'r½©rrKrs  €rú
<listcomp>z+EnvironmentInfo.VSTools.<locals>.<listcomp>ºó.ø€ÐKÐKÐK¸T•”—’˜TœWÔ1°4Ñ8Ô8ÐKÐKÐKr)rrCr3)rÚpathsÚarch_subdirs`  rÚVSToolszEnvironmentInfo.VSTools¨s€ø€ð Ð!1Ð2ˆàŒ;˜$ÒÐØœ'×-Ò-°dÀÐ-ÑEÔEˆKØÐJÐKÑKˆEØÐ5Ð6Ñ6ˆEØÐ7¸+ÑEÐFÑFˆEàKÐKÐKÐKÀUÐKÑKÔKÐKrcóª—tj |jjd¦«tj |jjd¦«gS)z’
        Microsoft Visual C++ & Microsoft Foundation Class Includes.

        Return
        ------
        list of str
            paths
        ÚIncludezATLMFC\Include©rJrKrLr'rÃr$s rÚ
VCIncludeszEnvironmentInfo.VCIncludes¼s?€õ
ŒGLŠL˜œÔ-¨yÑ9Ô9ÝŒGLŠL˜œÔ-Ð/@ÑAÔAð
ð	
rcóà‡—‰jdkr‰j d¬¦«}n‰j d¬¦«}d|zd|zg}‰jdkr	|d|zgz
}ˆfd	„|D¦«S)
z“
        Microsoft Visual C++ & Microsoft Foundation Class Libraries.

        Return
        ------
        list of str
            paths
        ç.@T©r©r2úLib%szATLMFC\Lib%srÅzLib\store%scód•—g|],}tj ‰jj|¦«‘Œ-Srr9r1s  €rr2z/EnvironmentInfo.VCLibraries.<locals>.<listcomp>Þr3r)rrCr5)rr5r4s`  rÚVCLibrarieszEnvironmentInfo.VCLibrariesËs‘ø€ðŒ;˜$ÒÐØœ'×,Ò,°Ð,Ñ6Ô6ˆKˆKàœ'×,Ò,°TÐ,Ñ:Ô:ˆKؘ;Ñ&¨¸+Ñ(EÐFˆàŒ;˜$ÒÐØn {Ñ2Ð3Ñ3ˆEàKÐKÐKÐKÀUÐKÑKÔKÐKrcór—|jdkrgStj |jjd¦«gS)z‡
        Microsoft Visual C++ store references Libraries.

        Return
        ------
        list of str
            paths
        rÅzLib\store\references)rrJrKrLr'rÃr$s rÚVCStoreRefszEnvironmentInfo.VCStoreRefsàs5€ðŒ;˜ÒÐØˆIÝ”—’˜TœWÔ1Ð3JÑKÔKÐLÐLrcó —|j}tj |jd¦«g}|jdkrdnd}|j |¦«}|r,|tj |jd|z¦«gz
}|jdkrHd|j d¬¦«z}|tj |j|¦«gz
}nö|jdkrÂ|j 	¦«rd	nd
}|tj |j||j 
d¬¦«z¦«gz
}|jj|jjkrE|tj |j||j d¬¦«z¦«gz
}n)|tj |jd¦«gz
}|S)
zr
        Microsoft Visual C++ Tools.

        Return
        ------
        list of str
            paths
        Ú
VCPackagesrÑTFúBin%srÅr>r<z
bin\HostX86%sz
bin\HostX64%sr=ÚBin)
r'rJrKrLrÃrrCr:r3r-r5r,r%)rr'Útoolsr8r5rKÚhost_dirs       rÚVCToolszEnvironmentInfo.VCToolsîs´€ðŒWˆÝ”—’˜bœo¨|Ñ<Ô<Ð=ˆàœ;¨$Ò.Ð.44°EˆØ”g×'Ò'¨Ñ1Ô1ˆØð	LØ•b”g—l’l 2¤?°G¸kÑ4IÑJÔJÐKÑKˆEàŒ;˜$ÒÐØ˜TœW×0Ò0¸Ð0Ñ>Ô>Ñ>ˆDØ•b”g—l’l 2¤?°DÑ9Ô9Ð:Ñ:ˆEˆEà
Œ[˜DÒ
 Ð
 à$(¤G×$:Ò$:Ñ$<Ô$<ÐRÐ Ð ÐBRð
ð
Ý”—’˜Rœ_¨h¸¼×9KÒ9KÐPTÐ9KÑ9UÔ9UÑ.UÑVÔVðñ
ˆEðŒwÔ" d¤gÔ&8Ò8Ð8ØÝ”G—L’LØœ¨°D´G×4GÒ4GÈDÐ4GÑ4QÔ4QÑ)Qñôðñøð
•b”g—l’l 2¤?°EÑ:Ô:Ð;Ñ;ˆEàˆrcó—|jdkrJ|j dd¬¦«}tj |jjd|z¦«gS|j d¬¦«}tj |jjd¦«}|j}tj ||›d|›¦«gS)zw
        Microsoft Windows SDK Libraries.

        Return
        ------
        list of str
            paths
        rÑTr.r?r=rØÚum)	rrCr5rJrKrLr'rÚÚ_sdk_subdir)rr5rØÚlibvers    rÚOSLibrarieszEnvironmentInfo.OSLibrariess®€ðŒ;˜$ÒÐØœ'×,Ò,°T¸tÐ,ÑDÔDˆKÝ”G—L’L ¤Ô!6¸À+Ñ8MÑNÔNÐOÐOðœ'×,Ò,°Ð,Ñ6Ô6ˆKÝ”'—,’,˜tœwÔ4°eÑ<Ô<ˆCØÔ%ˆFÝ”G—L’L °&°&°&¸+¸+Ð&FÑGÔGÐHÐHrcóª—tj |jjd¦«}|jdkr"|tj |d¦«gS|jdkr|j}nd}tj |d|z¦«tj |d|z¦«tj |d|z¦«gS)	zu
        Microsoft Windows SDK Include.

        Return
        ------
        list of str
            paths
        ÚincluderÑÚglrÅrz%ssharedz%sumz%swinrt)rJrKrLr'rÚrrM)rrQÚsdkvers   rÚ
OSIncludeszEnvironmentInfo.OSIncludes,sµ€õ”'—,’,˜tœwÔ4°iÑ@Ô@ˆàŒ;˜$ÒÐØRœWŸ\š\¨'°4Ñ8Ô8Ð9Ð9ðŒ{˜dÒ"Ð"ØÔ)àå”—’˜W j°6Ñ&9Ñ:Ô:Ý”—’˜W f¨v¡oÑ6Ô6Ý”—’˜W i°&Ñ&8Ñ9Ô9ðð
rcó†—tj |jjd¦«}g}|jdkr
||jz
}|jdkr$|tj |d¦«gz
}|jdkrÅ||tj |jjd¦«tj |dd¦«tj |d	d¦«tj |d
d¦«tj |jjddd
|jzddd¦«gz
}|S)z}
        Microsoft Windows SDK Libraries Paths.

        Return
        ------
        list of str
            paths
        Ú
ReferencesrÐrÒzCommonConfiguration\NeutralrÅÚ
UnionMetadataz'Windows.Foundation.UniversalApiContractz1.0.0.0z%Windows.Foundation.FoundationContractz,Windows.Networking.Connectivity.WwanContractÚ
ExtensionSDKszMicrosoft.VCLibsrºÚCommonConfigurationÚneutral)rJrKrLr'rÚrrO)rÚrefÚlibpaths   rÚ	OSLibpathzEnvironmentInfo.OSLibpathFs#€õŒglŠl˜4œ7Ô0°,Ñ?Ô?ˆØˆàŒ;˜#ÒÐØtÔ'Ñ'ˆGàŒ;˜$ÒÐØœŸš SÐ*HÑIÔIÐJÑJˆGàŒ;˜$ÒÐØØÝ”—’˜TœWÔ2°OÑDÔDÝ”—’˜SÐ"KÈYÑWÔWÝ”—’˜SÐ"IÈ9ÑUÔUÝ”—’ØÐGÈñôõ”—’Ø”GÔ)Ø#Ø&ؘdœkÑ)Ø Ø)Øñôðñ
ˆGð$ˆrcóD—t| ¦«¦«S)zs
        Microsoft Windows SDK Tools.

        Return
        ------
        list of str
            paths
        )ÚlistÚ
_sdk_toolsr$s rÚSdkToolszEnvironmentInfo.SdkToolsns€õD—O’OÑ%Ô%Ñ&Ô&Ð&rc#ó‚K—|jdkr;|jdkrdnd}tj |jj|¦«V—|j ¦«sL|j d¬¦«}d|z}tj |jj|¦«V—|jdvrj|j 	¦«rd	}n|j dd¬
¦«}d|z}tj |jj|¦«V—n‚|jdkrwtj |jjd¦«}|j d¬¦«}|jj
}tj ||›|›¦«V—|jjr|jjV—dSdS)
zˆ
        Microsoft Windows SDK Tools paths generator.

        Return
        ------
        generator of str
            paths
        r<rÒrGzBin\x86Tr=rF)rÑrÒrr.zBin\NETFX 4.0 Tools%sN)rrJrKrLr'rÚrCr-r3r)rÛrï)rÚbin_dirr5rKrSs     rr`zEnvironmentInfo._sdk_toolszs³èè€ðŒ;˜ÒÐØ#œ{¨dÒ2Ð2ee¸
ˆGÝ”'—,’,˜tœwÔ4°gÑ>Ô>Ð>Ð>Ð>àŒw×%Ò%Ñ'Ô'ð	<Øœ'×-Ò-°$Ð-Ñ7Ô7ˆKؘ[Ñ(ˆDÝ”'—,’,˜tœwÔ4°dÑ;Ô;Ð;Ð;Ð;àŒ;˜,Ð&Ð&ØŒw×$Ò$Ñ&Ô&ð
JØ à"œg×1Ò1¸$ÀDÐ1ÑIÔIØ+¨kÑ9ˆDÝ”'—,’,˜tœwÔ4°dÑ;Ô;Ð;Ð;Ð;Ð;à
Œ[˜DÒ
 Ð
 Ý”7—<’< ¤Ô 5°uÑ=Ô=ˆDØœ'×-Ò-°$Ð-Ñ7Ô7ˆKØ”WÔ2ˆFÝ”'—,’,˜t¨v¨v°{°{Ð%CÑDÔDÐDÐDÐDàŒ7Ô+ð	3Ø”'Ô2Ð2Ð2Ð2Ð2Ð2ð	3ð	3rcó,—|jj}|rd|zndS)zu
        Microsoft Windows SDK version subdir.

        Return
        ------
        str
            subdir
        ú%s\r)r'rÛ©rÚucrtvers  rrMzEnvironmentInfo._sdk_subdirs#€ð”'Ô/ˆØ%,Ð4˜Ñ Ð °"Ð4rcór—|jdkrgStj |jjd¦«gS)zs
        Microsoft Windows SDK Setup.

        Return
        ------
        list of str
            paths
        rÐÚSetup)rrJrKrLr'rÚr$s rÚSdkSetupzEnvironmentInfo.SdkSetupªs4€ðŒ;˜ÒÐØˆIå”—’˜TœWÔ2°GÑ<Ô<Ð=Ð=rcót‡—|j}|jŠ|jdkr-d}| ¦«o| ¦«}n>| ¦«p| ¦«}|jdkp
|jdk}g}|r|ˆfd„‰jD¦«z
}|r|ˆfd„‰jD¦«z
}|S)zv
        Microsoft .NET Framework Tools.

        Return
        ------
        list of str
            paths
        rÑTrcóZ•—g|]'}tj ‰j|¦«‘Œ(Sr)rJrKrLr©rr r's  €rr2z+EnvironmentInfo.FxTools.<locals>.<listcomp>Ïó9ø€ðððØ9<•”—’˜RÔ.°Ñ4Ô4ðððrcóZ•—g|]'}tj ‰j|¦«‘Œ(Sr)rJrKrLrrms  €rr2z+EnvironmentInfo.FxTools.<locals>.<listcomp>Órnr)	rCr'rr)r-r,r%rr)rrCÚ	include32Ú	include64rHr's     @rÚFxToolszEnvironmentInfo.FxTools¹s
ø€ðŒWˆØ
ŒWˆàŒ;˜$ÒÐØˆIØ×,Ò,Ñ.Ô.Ð.ÐJ°r×7HÒ7HÑ7JÔ7JÐ3JˆIˆIà×(Ò(Ñ*Ô*ÐA¨b×.?Ò.?Ñ.AÔ.AˆIØœ¨'Ò1ÐM°R´]ÀgÒ5MˆIàˆØð	ØððððØ@BÔ@Uðñôñ
ˆEðð	ØððððØ@BÔ@Uðñôñ
ˆEðˆrcóƗ|jdks|jjsgS|j d¬¦«}t
j |jjd|z¦«gS)z~
        Microsoft .Net Framework SDK Libraries.

        Return
        ------
        list of str
            paths
        rÅTr=zlib\um%s)rr'rýrCr5rJrKrL)rr5s  rÚNetFxSDKLibrariesz!EnvironmentInfo.NetFxSDKLibrariesØs[€ðŒ;˜ÒРT¤WÔ%8ÐØˆIà”g×(Ò(¨TÐ(Ñ2Ô2ˆÝ”—’˜TœWÔ0°+ÀÑ2KÑLÔLÐMÐMrcóŠ—|jdks|jjsgStj |jjd¦«gS)z}
        Microsoft .Net Framework SDK Includes.

        Return
        ------
        list of str
            paths
        rÅz
include\um)rr'rýrJrKrLr$s rÚNetFxSDKIncludesz EnvironmentInfo.NetFxSDKIncludesès>€ðŒ;˜ÒРT¤WÔ%8ÐØˆIå”—’˜TœWÔ0°-Ñ@Ô@ÐAÐArcóX—tj |jjd¦«gS)z„
        Microsoft Visual Studio Team System Database.

        Return
        ------
        list of str
            paths
        z
VSTSDB\Deployr0r$s rÚVsTDbzEnvironmentInfo.VsTDb÷s#€õ”—’˜TœWÔ1Ð3CÑDÔDÐEÐErcó\—|jdkrgS|jdkr(|jj}|j d¬¦«}n|jj}d}d|j|fz}tj ||¦«g}|jdkr%|tj ||d¦«gz
}|S)zn
        Microsoft Build Engine.

        Return
        ------
        list of str
            paths
        rÓr<Tr>rzMSBuild\%0.1f\bin%sÚRoslyn)	rr'r»rCr3r½rJrKrL)rÚ	base_pathr5rKÚbuilds     rÚMSBuildzEnvironmentInfo.MSBuilds°€ðŒ;˜ÒÐØˆIØ
Œ[˜4Ò
Ð
ØœÔ/ˆIØœ'×-Ò-°dÐ-Ñ;Ô;ˆKˆKàœÔ,ˆI؈Kà%¨¬°kÐ(BÑBˆÝ”—’˜i¨Ñ.Ô.Ð/ˆàŒ;˜$ÒÐà•b”g—l’l 9¨d°HÑ=Ô=Ð>Ñ>ˆEàˆrcór—|jdkrgStj |jjd¦«gS)zt
        Microsoft HTML Help Workshop.

        Return
        ------
        list of str
            paths
        rÒzHTML Help Workshop)rrJrKrLr'r»r$s rÚHTMLHelpWorkshopz EnvironmentInfo.HTMLHelpWorkshops5€ðŒ;˜ÒÐØˆIå”—’˜TœWÔ4Ð6JÑKÔKÐLÐLrcó—|jdkrgS|j d¬¦«}tj |jjd¦«}|j}tj ||›d|›¦«gS)zƒ
        Microsoft Universal C Runtime SDK Libraries.

        Return
        ------
        list of str
            paths
        rÅTr=rØÚucrt)	rrCr5rJrKrLr'r÷Ú_ucrt_subdir)rr5rØrgs    rÚ
UCRTLibrarieszEnvironmentInfo.UCRTLibraries.st€ðŒ;˜ÒÐØˆIà”g×(Ò(¨TÐ(Ñ2Ô2ˆÝŒglŠl˜4œ7Ô5°uÑ=Ô=ˆØÔ#ˆÝ”—’˜S°°°¸¸Ð"EÑFÔFÐGÐGrcó—|jdkrgStj |jjd¦«}tj |d|jz¦«gS)z
        Microsoft Universal C Runtime SDK Include.

        Return
        ------
        list of str
            paths
        rÅrQz%sucrt)rrJrKrLr'r÷r‚)rrQs  rÚUCRTIncludeszEnvironmentInfo.UCRTIncludes@sQ€ðŒ;˜ÒÐØˆIå”'—,’,˜tœwÔ9¸9ÑEÔEˆÝ”—’˜W h°Ô1BÑ&BÑCÔCÐDÐDrcó,—|jj}|rd|zndS)z
        Microsoft Universal C Runtime SDK version subdir.

        Return
        ------
        str
            subdir
        rer)r'rùrfs  rr‚zEnvironmentInfo._ucrt_subdirPs#€ð”'Ô4ˆØ%,Ð4˜Ñ Ð °"Ð4rcóJ—d|jcxkrdkrnngS|jjgS)zk
        Microsoft Visual F#.

        Return
        ------
        list of str
            paths
        rÒrÓ)rr'ròr$s rÚFSharpzEnvironmentInfo.FSharp]s;€ð$”+Ð$Ð$Ò$Ð$ Ò$Ð$Ð$Ð$Ð$؈Ià”Ô(Ð)Ð)rÚreturnú
str | Nonecó$‡‡—d|jzŠ|j d¬¦« d¦«Šg}|jj}tj | 	dd¦«¦«}tj 
|¦«r]tj |t
j|¦«d¦«}||tj |d¦«gz
}|tj |d	¦«gz
}d
|jdzzd
t|j¦«dzzf}ˆˆfd„tj||¦«D¦«}t#t%tjj|¦«d
¦«S)z{
        Microsoft Visual C++ runtime redistributable dll.

        Returns the first suitable path found or None.
        zvcruntime%d0.dllTr=r7z\Toolsz\Redistr…ÚonecoreÚredistzMicrosoft.VC%d.CRTé
c3ób•K—|])\}}tj |‰|‰¦«V—Œ*dSrB)rJrKrL)rrÚcrt_dirr5Ú	vcruntimes   €€rrz2EnvironmentInfo.VCRuntimeRedist.<locals>.<genexpr>‰sOøèè€ð
ð
á!˜õ
ŒGLŠL˜ ¨g°yÑAÔAð
ð
ð
ð
ð
ð
rN)r‚rCr5Ústripr'rÃrJrKÚdirnamerrÁrLr§Úintrrr‘r!ÚfilterÚisfile)rÚprefixesÚ
tools_pathÚredist_pathÚcrt_dirsÚcandidate_pathsr5r‘s      @@rÚVCRuntimeRedistzEnvironmentInfo.VCRuntimeRedistlsløø€ð'¨¬Ñ4ˆ	Ø”g×(Ò(¨TÐ(Ñ2Ô2×8Ò8¸Ñ>Ô>ˆðˆØ”WÔ)ˆ
Ý”g—o’o j×&8Ò&8¸ÀJÑ&OÔ&OÑPÔPˆÝ
Œ7=Š=˜Ñ%Ô%ð	Låœ'Ÿ,š, {µB´J¸{Ñ4KÔ4KÈBÔ4OÑPÔPˆKØ˜¥b¤g§l¢l°;À	Ñ&JÔ&JÐKÑKˆHà•R”W—\’\ *¨hÑ7Ô7Ð8Ñ8ˆð
! D¤K°"Ñ$4Ñ5à ¥C¨¬Ñ$4Ô$4°rÑ$9Ñ:ð
ˆð
ð
ð
ð
ð
å%.Ô%6°xÀÑ%JÔ%Jð
ñ
ô
ˆõ•F2œ7œ>¨?Ñ;Ô;¸TÑBÔBÐBrTcó—t| d|j|j|j|jg|¦«| d|j|j|j|j	|j
g|¦«| d|j|j|j|jg|¦«| d|j
|j|j|j|j|j|j|j|jg	|¦«¬¦«}|jdkr|jr
|j|d<|S)zÛ
        Return environment dict.

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

        Return
        ------
        dict
            environment
        rQrØr\rK)rQrØr\rKéÚpy_vcruntime_redist)ÚdictÚ_build_pathsr:rTr…rvrArOrrrƒrtrCr]rJr6rxrarjr}rrˆrrœ)rÚexistsÚenvs   rÚ
return_envzEnvironmentInfo.return_envs9€õØ×%Ò%Øà”OØ”OØÔ%ØÔ)ð	ðñ	ô	ð×!Ò!ØàÔ$ØÔ$Ø”LØÔ&ØÔ*ððñ
ô
ð×%Ò%ØØÔ! 4¤<°Ô1AÀ4Ä>ÐRØñôð
×"Ò"Øà”LØ”LØ”JØ”MØ”MØ”LØ”LØÔ)Ø”Kð
ðñôð7*
ñ*
ô*
ˆðVŒ;˜"ÒРÔ!5ÐØ)-Ô)=ˆCÐ%Ñ&؈
rcóú—tj |¦«}tj|d¦« tj¦«}tj||¦«}|r,tttj
j|¦«¦«n|}|s6d| ¦«z}tj |¦«‚t!|¦«}	tj |	¦«S)aC
        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
        rz %s environment variable is empty)rÚchainÚ
from_iterablerr=r·rJÚpathsepr_r•rKrÁÚupperr‡rˆr‰rrL)
rrpÚspec_path_listsr¢Ú
spec_pathsÚ	env_pathsr4Úextant_pathsrÂÚunique_pathss
          rr¡zEnvironmentInfo._build_pathsÌs€õ.”_×2Ò2°?ÑCÔCˆ
Ý”K  bÑ)Ô)×/Ò/µ´
Ñ;Ô;ˆ	Ý” 
¨IÑ6Ô6ˆØ=CÐN•tF¥2¤7¤=°%Ñ8Ô8Ñ9Ô9Ð9ȈØð	?Ø4°t·z²z±|´|ÑCˆCÝÔ"×9Ò9¸#Ñ>Ô>Ð>Ý& |Ñ4Ô4ˆÝŒzŠ˜|Ñ,Ô,Ð,r)Nr)r‰rŠ)T)!r
rrr<rr>rr‚r6r:rArCrJrOrTr]rar`rMrjrrrtrvrxr}rrƒr…r‚rˆrœr¤r¡rrrr%r%os€€€€€ððð.?ð?ð?ð?ðð	ð	ñ„Xð	ðð	ð	ñ„Xð	ððLðLñ„XðLð&ð
ð
ñ„Xð
ððLðLñ„XðLð(ðMðMñ„XðMðð'ð'ñ„Xð'ðRðIðIñ„XðIð&ððñ„Xðð2ð%ð%ñ„Xð%ðNð	'ð	'ñ„Xð	'ð!3ð!3ð!3ðFð
5ð
5ñ„Xð
5ðð>ð>ñ„Xð>ðððñ„Xðð<ð
Nð
Nñ„Xð
NððBðBñ„XðBðð	Fð	Fñ„Xð	Fðððñ„Xðð6ðMðMñ„XðMððHðHñ„XðHð"ð
Eð
Eñ„Xð
Eðð
5ð
5ñ„Xð
5ðð*ð*ñ„Xð*ðð Cð Cð Cñ„Xð CðD;ð;ð;ð;ðz-ð-ð-ð-ð-rr%)r<Ú
__future__rr”rr©rJÚos.pathÚplatformÚtypingrÚmore_itertoolsrÚdistutils.errorsr‡Úsystemr	rr Ú__annotations__rr@ryr%rrrú<module>r·sàððððð#Ð"Ð"Ð"Ð"Ð"àÐÐÐØÐÐÐØ€€€Ø	€	€	€	Ø€€€Ø€€€Ø Ð Ð Ð Ð Ð à*Ð*Ð*Ð*Ð*Ð*àÐÐÐðð%˜˜œÑ*Ô*¨iÒ7Ð7Ø€M€M€MØÐÐÐÐÐÐð!ð!ð!ð!ð!ñ!ô!ð!ð#˜d™fœf€GÐ$Ð$Ð$Ñ$ðv
ðv
ðv
ðv
ðv
ñv
ôv
ðv
ðrzðzðzðzðzñzôzðzðzP/ðP/ðP/ðP/ðP/ñP/ôP/ðP/ðf|	-ð|	-ð|	-ð|	-ð|	-ñ|	-ô|	-ð|	-ð|	-ð|	-r