+
    êh7  ã                   ó  € ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIt^RIHt ]P                  P!                  R4      t ! R R]	P$                  4      t ! R	 R
]P(                  4      t ! R R4      tR# )é    N)ÚDistutilsPlatformError)Úsupport)Úget_platform)Úmsvcznot hasattr(msvc, "winreg")c            	       ób  a € ] tR t^t o R t]P                  P                  ]P                  ! 4       P                  R4      '       * RR7      ]P                  P                  RRRR]	! 4       3.4      R 4       4       t]R 4       t]]P                  P                  R	R4      R
 4       4       tRtV tR# )ÚTestmsvccompilerc                óä   € R  pVP                  \        RV4       \        P                  ! \        4      ;_uu_ 4        \        P
                  ! R4       RRR4       R#   + '       g   i     R# ; i)c                 ó   € R# )N)NN© )Ú	plat_specs   &ÚS/usr/lib/python3/dist-packages/setuptools/_distutils/compilers/C/tests/test_msvc.pyÚ_find_vcvarsallÚ:Testmsvccompiler.test_no_compiler.<locals>._find_vcvarsall   s   € ØÐó    r   zwont find this versionN)Úsetattrr   ÚpytestÚraisesr   Ú_get_vc_env)ÚselfÚmonkeypatchr   s   && r   Útest_no_compilerÚ!Testmsvccompiler.test_no_compiler   sL   € ò	ð 	×ÑœDÐ"3°_ÔEä�]Š]Ô1×2Õ2Ü×ÒØ(ô÷ 3×2×2Ò2ús   ½AÁA/	Úwinz-Only run test for non-mingw Windows platforms)Úreasonzplat_name, expectedNc                óŽ   a€ \         P                  ! 4       pV3R lpVP                  \         RV4       VP                  V4       R# )zC
Ensure a specified target platform is passed to _get_vcvars_spec.
c                 ó   <€ VS8X  g   Q hR # ©Nr   )Úhost_platformÚplatformÚexpecteds   &&€r   Ú_get_vcvars_specÚPTestmsvccompiler.test_cross_platform_compilation_paths.<locals>._get_vcvars_spec2   s   ø€ Ø˜xÔ'Ð'Ò'r   r!   N)r   ÚCompilerr   Ú
initialize)r   r   Ú	plat_namer    Úcompilerr!   s   &&&f  r   Ú%test_cross_platform_compilation_pathsÚ6Testmsvccompiler.test_cross_platform_compilation_paths    s9   ø€ ô  —=’=“?ˆõ	(ð 	×ÑœDÐ"4Ð6FÔGØ×Ñ˜IÖ&r   c                ó  € R pRp\         P                  P                  RR4      pV\         P                  V&    \        P                  ! R4      pVP                  4       V9   g   Q hW$VP                  4       ,          8X  g   Q h \         P                  P                  V4       V'       d   V\         P                  R&   R# R#   \         P                  P                  T4       T'       d   T\         P                  R&   i i ; i)u   á¹°á¸–á¹¤á¹ªâ”…á¹¼áº¨á¹œu	   â‚ƒâ�´â‚…ÚDISTUTILS_USE_SDKNÚx86)ÚosÚenvironÚpopr   r   Úlower)r   Útest_varÚ
test_valueÚold_distutils_use_sdkÚenvs   &    r   Útest_get_vc_env_unicodeÚ(Testmsvccompiler.test_get_vc_env_unicode8   sÇ   € à-ˆØ ˆ
ô !#§
¡
§¡Ð/BÀDÓ IÐØ)Œ�
‰
�8Ñð	HÜ×"Ò" 5Ó)ˆCØ—>‘>Ó# sÔ*Ð*Ð*Ø X§^¡^Ó%5Õ!6Ô6Ð6Ñ6ä�J‰J�N‰N˜8Ô$ß$Ø2G”—
‘
Ð.Ó/ñ %øô �J‰J�N‰N˜8Ô$ß$Ø2G”—
‘
Ð.Ò/ð %ús   ¹A
C Ã=C?Úverc                óú   € \        \        R V 24      pR^R^/V,          pV! 4       w  rEV'       g   \        P                  ! RV R24       WC8¼  g   Q h\        P
                  P                  V4      '       g   Q hR# )Ú_find_vcéß  éá  zVS z is not installedN)Úgetattrr   r   Úskipr,   ÚpathÚisdir)r   r6   ÚlookupÚexpected_versionÚversionr=   s   &&    r   Útest_get_vcÚTestmsvccompiler.test_get_vcI   sr   € ô
 œ ¨#¨Ð/Ó0ˆØ  " d¨BÐ/°Õ4ÐÙ›‰ˆßÜ�KŠK˜#˜c˜UÐ"3Ð4Ô5ØÔ*Ð*Ð*Ü�w‰w�}‰}˜T×"Ò"Ð"Ò"r   r   )ú	win-arm64rD   )ú	win-amd64rE   )r9   r:   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   ÚmarkÚskipifÚ	sysconfigr   Ú
startswithÚparametrizer'   Úneeds_winregr4   rB   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      sÃ   ø‡ € òð ‡[�[×ÑØ×"Ò"Ó$×/Ñ/°Ó6Ô6Ø>ð ó ð ‡[�[×ÑØà&Ø&Ø‘<“>Ð"ð	
óñ
'óó	ð
'ð ñHó ðHð  Ø‡[�[×Ñ˜U LÓ1ñ	#ó 2ó ö	#r   r   c                   ó<   a a€ ] tR t^Wt oRtV 3R ltR tRtVtV ;t	# )ÚCheckThreadNc                ó~   <€  \         SV `  4        R #   \         d    \        P                  ! 4       T n         R # i ; ir   )ÚsuperÚrunÚ	ExceptionÚsysÚexc_info)r   Ú	__class__s   &€r   rX   ÚCheckThread.runZ   s-   ø€ ð	+Ü‰G‰KŽMøÜô 	+ÜŸLšL›NˆD�Mð	+ús   ƒ “%<»<c                ó$   € V P                   '       * # r   ©r[   )r   s   &r   Ú__bool__ÚCheckThread.__bool__`   s   € Ø—=‘=Ô Ð r   r_   )
rF   rG   rH   rI   r[   rX   r`   rP   rQ   Ú__classcell__)r\   rS   s   @@r   rU   rU   W   s   ù‡ € Ø€Hõ+÷!ò !r   rU   c                   ó,   a € ] tR t^dt o R tR tRtV tR# )Ú	TestSpawnc                ó\  € \         P                  ! 4       pRVn        Rp\        P                  RV.p\        ^d4       Uu. uF  p\        VP                  V.R7      NK  	  ppV F  pVP                  4        K  	  V F  pVP                  4        K  	  \        V4      '       g   Q hR# u upi )z;
Concurrent calls to spawn should have consistent results.
r    z2import os; assert os.environ["PATH"] == "expected"z-c)ÚtargetÚargsN)r   r#   Ú_pathsrZ   Ú
executableÚrangerU   ÚspawnÚstartÚjoinÚall)r   r&   Ú	inner_cmdÚcommandÚnÚthreadsÚthreads   &      r   Útest_concurrent_safeÚTestSpawn.test_concurrent_safee   s—   € ô —=’=“?ˆØ$ˆŒØHˆ	Ü—>‘> 4¨Ð3ˆô INÈcÌ
ó
ÙHRÀ1ŒK˜xŸ~™~°W°I×>É
ð 	ð 
ó ˆFØ�L‰LŽNñ ãˆFØ�K‰KŽMñ ä�7�|Š|ÐŠ|ùò
s   ¿!B)c                ó^  € ^ RI Hp \        P                  ! 4       pRVn        R p\
        P                  P                  VP                  RV4      ;_uu_ 4        VP                  R.4       RRR4       \        P                  P                  R4      R8w  g   Q hR#   + '       g   i     L8; i)za
If CCompiler.spawn has been monkey-patched without support
for an env, it should still execute.
)Ú	ccompilerr    c                óB   € \         P                  R,          R8X  g   Q hR# )z A spawn without an env argument.ÚPATHr    N)r,   r-   )r   Úcmds   &&r   ÚCCompiler_spawnÚ@TestSpawn.test_concurrent_safe_fallback.<locals>.CCompiler_spawn�   s   € ä—:‘:˜fÕ%¨Ô3Ð3Ò3r   rk   zn/aNry   )Ú	distutilsrw   r   r#   rh   ÚmockÚpatchÚobjectÚ	CCompilerrk   r,   r-   Úget)r   rw   r&   r{   s   &   r   Útest_concurrent_safe_fallbackÚ'TestSpawn.test_concurrent_safe_fallbackw   sz   € õ
 	(ä—=’=“?ˆØ$ˆŒò	4ô �Z‰Z×Ñ˜y×2Ñ2°G¸_×MÕMØ�N‰N˜E˜7Ô#÷ Nô �z‰z�~‰~˜fÓ%¨Ô3Ð3Ò3÷ N×Mús   ÁBÂB,	r   N)rF   rG   rH   rI   rt   rƒ   rP   rQ   rR   s   @r   rd   rd   d   s   ø‡ € ò÷$4ð 4r   rd   )r,   rZ   rL   Ú	threadingÚunittest.mockr~   Údistutils.errorsr   Údistutils.testsr   Údistutils.utilr   r   Ú r   rJ   rK   rO   ÚTempdirManagerr   ÚThreadrU   rd   r   r   r   Ú<module>r�      si   ðÛ 	Û 
Û Û Ý Ý 3Ý #Ý 'ã å à�{‰{×!Ñ!Ð"?Ó@€ôC#�w×-Ñ-ô C#ôL
!�)×"Ñ"ô 
!÷$4ó $4r   