+
    Ž°³j#:  ã                  ó   € 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
t
^ RIt^ RIt^ RIt^ RIHtHtHt ^ RIHt ^ RIHt ^RIHt ^RIHt ^RIHtHt ^R	IHtHt ^R
I H t  ]'       d   ^ RI!H"t"H#t# ]"! R4      t$]PJ                  t%]PL                  t&]PN                  t']PP                  t)]PT                  t+]PX                  t-]P\                  t/R R lt0]R R l4       t1R R lt2]Pf                  R R l4       t4R R lt5R t6R*R R llt7]Pp                  ! R]	Pr                   R24      t:]Pp                  ! R4      t;]Pp                  ! R4      t<R R lt=R+R  R! llt>R" R# lt?R,R$ R% llt@R& R' ltAR( R) ltBR# )-zudistutils.util

Miscellaneous utility functions -- anything that doesn't fit into
one of the other *util.py modules.
)ÚannotationsN)ÚCallableÚIterableÚMapping)ÚTYPE_CHECKING)Ú	pass_none)Úlog)Únewer)ÚdetectÚmacos)ÚDistutilsByteCompileErrorÚDistutilsPlatformError)Úspawn)ÚTypeVarTupleÚUnpackÚ_Tsc               ó    € V ^8„  d   QhRRRR/# )é   ÚsÚstrÚreturnz	list[int]© )Úformats   "Ú[/home/luca/screen-checking/.venv/lib/python3.14/site-packages/setuptools/_distutils/util.pyÚ__annotate__r   .   s   € ÷ *ñ *�Sð *˜Yñ *ó    c                ó`   € V P                  R4       Uu. uF  p\        V4      NK  	  up# u upi )zEConvert a dot-separated string into a list of numbers for comparisonsÚ.)ÚsplitÚint)r   Úns   & r   Úsplit_versionr!   .   s&   € àŸG™G CœLÓ)™L�qŒC�ŽF™LÑ)Ð)ùÒ)s   ”+c               ó    € V ^8„  d   QhRRRR/# )r   Úpathnameústr | os.PathLike[str]r   r   r   )r   s   "r   r   r   4   s   € ÷ 1ñ 1Ð1ð 1°cñ 1r   c                óV   € \         P                  ! \        P                  ! V 4      4      # )a
  
Allow for pathlib.Path inputs, coax to a native path string.

If None is passed, will just pass it through as
Setuptools relies on this behavior.

>>> convert_path(None) is None
True

Removes empty paths.

>>> convert_path('foo/./bar').replace('\\', '/')
'foo/bar'
)ÚosÚfspathÚpathlibÚPurePath)r#   s   &r   Úconvert_pathr*   3   s   € ô  �9Š9”W×%Ò% hÓ/Ó0Ð0r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Únew_rootr$   r#   r   r   r   )r   s   "r   r   r   F   s+   € ÷ Nñ NØ$ðNà$ðNð 	ñNr   c                óB  € \         P                  R8X  du   \         P                  P                  V4      '       g    \         P                  P	                  W4      # \         P                  P	                  V \        V4      R,          4      # \         P                  R8X  df   \         P                  P                  V4      w  r#V^ ,          \         P                  8X  d
   VR,          p\         P                  P	                  W4      # \        R\         P                   R24      h)zùReturn 'pathname' with 'new_root' prepended.  If 'pathname' is
relative, this is equivalent to "os.path.join(new_root,pathname)".
Otherwise, it requires making 'pathname' relative and then joining the
two, which is tricky on DOS/Windows and Mac OS.
Úposix:é   NNÚntznothing known about platform 'Ú')	r&   ÚnameÚpathÚisabsÚjoinr   Ú
splitdriveÚsepr   )r,   r#   Ú_driver3   s   &&  r   Úchange_rootr9   F   s¼   € ô 
‡w�w�'ÔÜ�w‰w�}‰}˜X×&Ò&Ü—7‘7—<‘< Ó3Ð3ô —7‘7—<‘< ¬#¨h«-¸Õ*;Ó<Ð<ä	�‰�DŒÜŸ™×+Ñ+¨HÓ5‰ˆØ��7”b—f‘fÔØ˜•8ˆDÜ�w‰w�|‰|˜HÓ+Ð+ä
 Ð#AÄ"Ç'Á'ÀÈ!Ð!LÓ
MÐMr   c               ó   € V ^8„  d   QhRR/# )r   r   ÚNoner   )r   s   "r   r   r   a   s   € ÷ ,ñ ,�tñ ,r   c                 ón  € \         P                  R8X  dW   R\         P                  9  dB    ^ RIp V P	                  \         P
                  ! 4       4      ^,          \         P                  R&   R\         P                  9  d   \        4       \         P                  R&   R# R#   \        \        3 d     LGi ; i)a4  Ensure that 'os.environ' has all the environment variables we
guarantee that users can use in config files, command-line options,
etc.  Currently this includes:
  HOME - user's home directory (Unix only)
  PLAT - description of the current platform, including hardware
         and OS (see 'get_platform()')
r.   ÚHOMENÚPLAT)	r&   r2   ÚenvironÚpwdÚgetpwuidÚgetuidÚImportErrorÚKeyErrorÚget_platform)r@   s    r   Úcheck_environrF   `   sƒ   € ô 
‡w�w�'Ô˜f¬B¯J©JÔ6ð	Ûà!$§¡¬b¯iªi«kÓ!:¸1Õ!=ŒB�J‰J�vÑð ”R—Z‘ZÔÜ)›^Œ�
‰
�6Óñ  øô œXÐ&ô 	ñ ð	ús   ¬A B  Â B4Â3B4c               ó    € V ^8„  d   QhRRRR/# )r   Ú
local_varszMapping[str, object]r   r   r   )r   s   "r   r   r   w   s   € ÷ 4ñ 4Ð2ð 4°sñ 4r   c                ó  € \        4        \        \        P                  4      pVP	                  R VP                  4        4       4        \        V 4      P                  V4      #   \         d   p\        RT 24      hRp?ii ; i)a£  
Perform variable substitution on 'string'.
Variables are indicated by format-style braces ("{var}").
Variable is substituted by the value found in the 'local_vars'
dictionary or in 'os.environ' if it's not in 'local_vars'.
'os.environ' is first checked/augmented to guarantee that it contains
certain values: see 'check_environ()'.  Raise ValueError for any
variables not found in either 'local_vars' or 'os.environ'.
c              3  ó@   "  € T F  w  rV\        V4      3x € K  	  R # 5i©N©r   )Ú.0r2   Úvalues   &  r   Ú	<genexpr>Úsubst_vars.<locals>.<genexpr>ƒ   s   é € ÐKÑ8J©¨�4œ˜U›Õ$Ó8Jùs   ‚zinvalid variable N)
rF   Údictr&   r?   ÚupdateÚitemsÚ_subst_compatÚ
format_maprD   Ú
ValueError)r   rH   ÚlookupÚvars   &&  r   Ú
subst_varsrY   w   sp   € ô „OÜ”"—*‘*Ó€FØ
‡M�MÑK¸
×8HÑ8HÔ8JÓKÔKð4Ü˜QÓ×*Ñ*¨6Ó2Ð2øÜô 4ÜÐ,¨S¨EÐ2Ó3Ð3ûð4ús   ÁA% Á%BÁ0A>Á>Bc                óz   € R p\         P                  ! RW4      pW 8w  d   ^ RIpVP                  R\        4       V# )zV
Replace shell/Perl-style variable substitution with
format-style. For compatibility.
c                ó,   € R V P                  ^4       R2# )Ú{Ú})Úgroup)Úmatchs   &r   Ú_substÚ_subst_compat.<locals>._subst�   s   € Ø�E—K‘K “NÐ# 2Ð&Ð&r   z\$([a-zA-Z_][a-zA-Z_0-9]*)Nz-shell/Perl-style substitutions are deprecated)ÚreÚsubÚwarningsÚwarnÚDeprecationWarning)r   r`   Úreplrd   s   &   r   rT   rT   Š   s;   € ò'ô �6Š6Ð/°Ó;€DØ„yÛà�‰Ø;Üô	
ð €Kr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚexcÚobjectÚprefixr   r   r   )r   s   "r   r   r   ž   s!   € ÷ ñ  ð °ð ÀCñ r   c                ó&   € V\        V 4      ,           # rK   rL   )ri   rk   s   &&r   Úgrok_environment_errorrm   ž   s   € ð ”C˜“HÕÐr   z[^\\\'\"z ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*"c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   z	list[str]r   )r   s   "r   r   r   «   s   € ÷ ;ñ ;�Cð ;˜Iñ ;r   c                ó–  € V P                  4       p . p^ pV '       Ed¬   \        P                  W4      pVf   Q hVP                  4       pV\	        V 4      8X  d   VP                  V RV 4        V# W,          \        P                  9   d*   VP                  V RV 4       WR P                  4       p ^ pMîW,          R8X  d    V RV W^,           R ,           p V^,           pMÂW,          R8X  d   \        P                  W4      pM8W,          R8X  d   \        P                  W4      pM\        RW,           R24      hVf   \        RW,           R24      hVP                  4       w  rTV RV W^,           V^,
           ,           WR ,           p VP                  4       ^,
          pV\	        V 4      8¼  g   EK   VP                  V 4        V# V# )	aæ  Split a string up according to Unix shell-like rules for quotes and
backslashes.  In short: words are delimited by spaces, as long as those
spaces are not escaped by a backslash, or inside a quoted string.
Single and double quotes are equivalent, and the quote characters can
be backslash-escaped.  The backslash is stripped from any two-character
escape sequence, leaving only the escaped character.  The quote
characters are stripped from any quoted string.  Returns a list of
words.
NÚ\r1   Ú"zthis can't happen (bad char 'z')zbad string (mismatched z	 quotes?))ÚstripÚ_wordchars_rer_   ÚendÚlenÚappendÚstringÚ
whitespaceÚlstripÚ
_squote_reÚ
_dquote_reÚRuntimeErrorrV   Úspan)r   ÚwordsÚposÚmrt   Úbegs   &     r   Úsplit_quotedr‚   «   sž  € ð 	
�‰‹	€AØ€EØ
€Cç
ˆ!Ü×Ñ Ó'ˆØŠ}Ðˆ}Ø�e‰e‹gˆØ”#�a“&Œ=Ø�L‰L˜˜4˜C˜Ô!ØðD €LðA �6”V×&Ñ&Ô&ð �L‰L˜˜4˜C˜Ô!Ø�$�—‘Ó ˆAØ‰Cà�V�tŒ^ð �$�3�˜! !�G˜I˜,Õ&ˆAØ˜•'‰Cð �v˜Œ}Ü×$Ñ$ QÓ,‘Ø•˜3”Ü×$Ñ$ QÓ,‘ä"Ð%BÀ1Å6À(È"Ð#MÓNÐNàŠyÜ Ð#:¸1½6¸(À)Ð!LÓMÐMàŸ™›‰JˆSØ�$�3�˜! !�G c¨A¥gÐ.Õ.°°4°Õ8ˆAØ—%‘%“'˜A•+ˆCà”#�a“&�=Ø�L‰L˜ŒOØà€Lˆ5€Lr   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   ÚfunczCallable[[Unpack[_Ts]], object]Úargsztuple[Unpack[_Ts]]Úmsgrj   ÚverboseÚboolr   r;   r   )r   s   "r   r   r   é   s:   € ÷ ñ Ø
)ðà
ðð 
ðð ð	ð
 
ñr   c                ó”   € Vf(   V P                    V: 2pVRR R8X  d   V^ R R,           p\        P                  ! V4       V ! V!   R# )z®
Perform some action that affects the outside world (e.g. by
writing to the filesystem). Was previously used to deal with
"dry run" operations, but now runs unconditionally.
Nz,)Ú)éþÿÿÿ)Ú__name__r   Úinfo)r„   r…   r†   r‡   s   &&&&r   ÚexecuterŽ   é   sJ   € ð ‚{Ø—‘� ™xÐ(ˆØˆrˆsˆ8�tÔØ�a˜�)˜c•/ˆCä‡H‚HˆS„MÙˆ$„Kr   c               ó    € V ^8„  d   QhRRRR/# )r   Úvalr   r   rˆ   r   )r   s   "r   r   r   ý   s   € ÷ 9ñ 9�3ð 9˜4ñ 9r   c                ód   € V P                  4       p V R9   d   R# V R9   d   R# \        RV : 24      h)zäConvert a string representation of truth to true (1) or false (0).

True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values
are 'n', 'no', 'f', 'false', 'off', and '0'.  Raises ValueError if
'val' is anything else.
TFzinvalid truth value )ÚyÚyesÚtÚtrueÚonÚ1)r    ÚnoÚfÚfalseÚoffÚ0)ÚlowerrV   )r�   s   &r   Ú	strtoboolrž   ý   s:   € ð �)‰)‹+€CØ
Ð2Ô2ÙØ	Ð5Ô	5ÙäÐ/°©wÐ7Ó8Ð8r   c               ó8   € V ^8„  d   QhRRRRRRRRR	RR
RRRRR/# )r   Úpy_fileszIterable[str]Úoptimizer   Úforcerˆ   rk   z
str | NoneÚbase_dirr‡   Údirectzbool | Noner   r;   r   )r   s   "r   r   r     sl   € ÷ BYñ BYØðBYàðBYð ðBYð ð	BYð
 ðBYð ðBYð ðBYð 
ñBYr   c                óª  € \         P                  '       d   \        R4      hVf   T^ 8H  pV'       Eg:   \        P                  ! R4      w  rx\
        P                  ! RV4       \        P                  ! VRRR7      p	V	;_uu_ 4        V	P                  R4       V	P                  R	P                  \        \        V 4      4      R
,           4       V	P                  RV: RV: RV: RV: RV: R24       RRR4       \         P                  .p
V
P                  \        P                   ! 4       4       V
P#                  V4       \%        V
4       \'        \        P(                  V3RV 24       R# ^ RIHp V  EFE  pVRR R8w  d   K  V^ 8¼  d-   V^ 8X  d   RMTp\.        P0                  P3                  WÍR7      pM\.        P0                  P3                  V4      pTpV'       d5   VR\5        V4       V8w  d   \7        RV: RV: 24      hV\5        V4      R pV'       d    \        P8                  P                  WO4      p\        P8                  P;                  V4      pV'       g   Kð  V'       g   \=        WÎ4      '       d%   \
        P                  ! RVV4       V! WÎV4       EK-  \
        P>                  ! RVV4       EKH  	  R#   + '       g   i     EL×; i)aÈ  Byte-compile a collection of Python source files to .pyc
files in a __pycache__ subdirectory.  'py_files' is a list
of files to compile; any files that don't end in ".py" are silently
skipped.  'optimize' must be one of the following:
  0 - don't optimize
  1 - normal optimization (like "python -O")
  2 - extra optimization (like "python -OO")
If 'force' is true, all files are recompiled regardless of
timestamps.

The source filename encoded in each bytecode file defaults to the
filenames listed in 'py_files'; you can modify these with 'prefix' and
'basedir'.  'prefix' is a string that will be stripped off of each
source filename, and 'base_dir' is a directory name that will be
prepended (after 'prefix' is stripped).  You can supply either or both
(or neither) of 'prefix' and 'base_dir', as you wish.

Byte-compilation is either done directly in this interpreter process
with the standard py_compile module, or indirectly by writing a
temporary script and executing it.  Normally, you should let
'byte_compile()' figure out to use direct compilation or not (see
the source for details).  The 'direct' flag is used by the script
generated in indirect mode; unless you know what you're doing, leave
it set to None.
zbyte-compiling is disabled.Nz.pyz$writing byte-compilation script '%s'Úwzutf-8)Úencodingz2from distutils.util import byte_compile
files = [
z,
z]
z
byte_compile(files, optimize=z, force=z,
         prefix=z, base_dir=z,
         verbose=z,
         direct=True)
z	removing )ÚcompileÚ )Úoptimizationzinvalid prefix: filename z doesn't start with zbyte-compiling %s to %sz%skipping byte-compilation of %s to %séýÿÿÿ) ÚsysÚdont_write_bytecoder   ÚtempfileÚmkstempr   r�   r&   ÚfdopenÚwriter5   ÚmapÚreprÚ
executableÚextendÚ
subprocessÚ"_optim_args_from_interpreter_flagsrv   r   rŽ   ÚremoveÚ
py_compiler¨   Ú	importlibÚutilÚcache_from_sourceru   rV   r3   Úbasenamer	   Údebug)r    r¡   r¢   rk   r£   r‡   r¤   Ú	script_fdÚscript_nameÚscriptÚcmdr¨   ÚfileÚoptÚcfileÚdfileÚ
cfile_bases   &&&&&&&          r   Úbyte_compilerÈ     sV  € ôH ××ÐÜ'Ð(EÓFÐFð ‚~Ø'¨1™}ˆ÷ ˆ6Ü#+×#3Ò#3°EÓ#:Ñ ˆÜ�ŠÐ7¸ÔEÜ—’˜9 c°GÔ<ˆçŠVØ�L‰Lðôð" �L‰L˜Ÿ™¤C¬¨hÓ$7Ó8¸5Õ@ÔAØ�L‰LðØ&™\¨°%±ð ;Ø‘
˜+ h¡\ð 2Ø‘ð ðô÷' ô8 �~‰~ÐˆØ�
‰
”:×@Ò@ÓBÔCØ�
‰
�;ÔÜˆcŒ
Ü”—	‘	˜K˜>¨Y°{°mÐ+DÖEõ 	'äˆDØ�B�Cˆy˜EÔ!ñ ð
 ˜1Œ}Ø$¨œM‘b¨x�Ü!Ÿ™×8Ñ8¸Ð8ÓP‘ä!Ÿ™×8Ñ8¸Ó>�ØˆEßØ˜œ#˜f›+Ð&¨&Ô0Ü$Ø3°D±8Ð;OÐPVÉzÐZóð ð œc &›k˜mÐ,�ßÜŸ™Ÿ™ XÓ5�äŸ™×)Ñ)¨%Ó0ˆJß‰vßœE $×.Ò.Ü—H’HÐ6¸¸jÔIÙ˜D¨×/ä—I’IÐEÀtÈZ×Xó= ÷S �VˆVús   ÂA-KËK	c               ó    € V ^8„  d   QhRRRR/# )r   Úheaderr   r   r   )r   s   "r   r   r   ’  s   € ÷ 'ñ '˜#ð ' #ñ 'r   c                óÖ   € RpV P                  RR7      pT;'       d)    VR,          P                  4       ^ ,          VR,          8g  pV'       d   TMRpVP                  V4      V,           # )z„Return a version of the string escaped for inclusion in an
RFC-822 header, by ensuring there are 8 spaces space after each newline.
T)Úkeependsr©   z        éÿÿÿÿ)Ú
splitlinesr5   )rÊ   ÚindentÚlinesÚends_in_newlineÚsuffixs   &    r   Úrfc822_escaperÓ   ’  sc   € ð €FØ×Ñ tÐÓ,€Eð ×FÐF  b¥	× 4Ñ 4Ó 6°qÕ 9¸UÀ2½YÑ F€Oß&‰V¨B€Fà�;‰;�uÓ Õ&Ð&r   c               ó   € V ^8„  d   QhRR/# )r   r   rˆ   r   )r   s   "r   r   r   ¡  s   € ÷ =ñ =˜ñ =r   c                 ó@   € \        \        P                  ! R4      4      # )zKReturn True if the Python interpreter is built with free threading support.ÚPy_GIL_DISABLED)rˆ   Ú	sysconfigÚget_config_varr   r   r   Úis_freethreadedrÙ   ¡  s   € ä”	×(Ò(Ð):Ó;Ó<Ð<r   )zerror: )NF)é    FNNTN)CÚ__doc__Ú
__future__r   Ú	functoolsÚimportlib.utilrº   r&   r(   rb   rw   r¶   r¬   r×   r®   Úcollections.abcr   r   r   Útypingr   Újaraco.functoolsr   Ú_logr   Ú	_modifiedr	   Úcompilers.platformr
   r   Úerrorsr   r   r   Útyping_extensionsr   r   r   Úget_host_platformrE   Úis_mingwÚVERSION_VARÚMACOSX_VERSION_VARÚ
target_verÚget_macosx_target_verÚ_target_ver_from_syscfgÚ!get_macosx_target_ver_from_syscfgÚ_clear_cached_target_verÚ_clear_cached_macosx_verr!   r*   r9   Ú	lru_cacherF   rY   rT   rm   r¨   rx   rs   rz   r{   r‚   rŽ   rž   rÈ   rÓ   rÙ   r   r   r   Ú<module>rò      sR  ðñõ #ã Û Û 	Û Û 	Û Û Û 
Û Û ß 7Ñ 7Ý  å &å Ý ß -ß EÝ çß6á
�uÓ
€Cð ×,Ñ,Ð Ø×"Ñ"€Ø�?‰?€Ø×&Ñ&Ð Ø×(Ñ(Ð Ø$)×$AÑ$AÐ !Ø ×9Ñ9Ð õ*ð
 ô1ó ð1õ$Nð4 ×Ñô,ó ð,õ,4ò&÷(ð —
’
˜h v×'8Ñ'8Ð&9¸Ð=Ó>€Ø�ZŠZÐ,Ó-€
Ø�ZŠZÐ,Ó-€
õ;÷|õ(9÷ BYõJ'÷=r   