§
    ‹ã÷cÄC ã                  óB
  — U d Z ddlmZ ddlmZ ddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlmZmZmZ ddlmZ ddlmZmZ ddlZddlZddlZddl Z ddl!Z!ddl"m#Z# d	d
l$m%Z%m&Z& ej'        r ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/m0Z0 ddl1m2Z2 ej3        de4f         Z5 ej6        d¦  «        Z7 ej6        d¦  «        Z8g d¢Z9 ej:        e4¦  «        Z;ddl<m<Z< ej=         >                    ej?        ¦  «        dk    r
ej?        dgZ@nej?        gZ@daAdeBd<    G d„ de%¦  «        ZC G d„ de%¦  «        ZD ejE        d¦  «        ZF�d)�d*d*„ZG�d)�d+d,„ZH�d)�d,d-„ZI�d-d1„ZJ�d.d2„ZK�d/d5„ZL�d0d8„ZM G d9„ d:e&e
jN        ¬;¦  «        ZO G d<„ d=¦  «        ZPd>ZQ G d?„ de&¦  «        ZR�d1dE„ZS�d2dI„ZT G dJ„ dKejU        ¦  «        ZV G dL„ dMejW        e7         ¦  «        ZX G dN„ dOeXe7         ¦  «        ZY G dP„ dQeXejZ        e7                  ¦  «        Z[ G dR„ dSe[eYejZ        e7                  ¦  «        Z\�d3dT„Z]�d3dU„Z^�d3dV„Z_�d3dW„Z`�d3dX„Za�d3dY„Zb�d3dZ„Zc�d3d[„Zd�d3d\„Ze�d3d]„Zf�d3d^„Zg�d3d_„Zh�d3d`„Zi�d3da„Zj�d3db„Zk�d3dc„Zl�d3dd„Zm�d4df„Zn ed¬g¦  «        �d5dj„¦   «         Zo�d6dk„Zp�d7do„Zq�d3dp„Zr G dq„ dr¦  «        Zs�d8du„Zt�d9dw„Zu�d:d{„Zv�d;d~„Zw�d<d€„Zx�d6d�„Zy�d6d‚„Zz�d6dƒ„Z{�d6d„„Z|�d6d…„Z}�d6d†„Z~�d6d‡„Z�d6dˆ„Z€�d6d‰„Z��d6dŠ„Z‚�d=�d>dŽ„Zƒ ec¦   «         r&d�Z„ ej…        d�e„› d‘�¦  «        j†        Z‡�d?d“„Zˆ�d@d”„Z‰n
�d?d•„Zˆ�d@d–„Z‰�dAd™„ZŠ�dBd¢„Z‹�dCd¤„ZŒ�dD�dEd¦„Z�	 �dF�dGd¬„ZŽ	 �dF�dHd¯„Z�d°Z�d±Z‘�dId¶„Z’�dJd¸„Z“�dK�dLd½„Z”�d)�dMdÃ„Z•�dNdÈ„Z–�dOdÊ„Z—�dPdÌ„Z˜�dQdÒ„Z™dejš        ej›        ej›        f�dRdÚ„Zœdejš        ej›        ej›        f�dRdÛ„Z��dSdÞ„Zž�dTdâ„ZŸ�dUdã„Z �dVdæ„Z¡�dWdè„Z¢�dXdê„Z£�dYdì„Z¤ G dí„ dîe¦  «        Z¥	 	 �dZ�d[dõ„Z¦�d\dø„Z§ G dù„ dúej¨        e7         ¦  «        Z©�d]dý„Zª�d)�d^�d„Z«�d)�d_�d„Z¬ G �d„ �dejU        ¦  «        Z­ G �d„ �d¦  «        Z®	 d�dl¯m¯Z¯  G �d„ �d	e¯¦  «        Z°e°Z±n# e²$ r e®Z±Y nw xY w G �d
„ �dej³        ¦  «        Z´	 �d`�da�d„Zµ�db�d„Z¶�dc�d„Z· G �d„ �dej
        j¸        ¦  «        Z¹ G �d„ �dejU        ¦  «        Zºh �d£Z»�dd�d„Z¼e G �d„ �d¦  «        ¦   «         Z½�de�d#„Z¾�df�d(„Z¿dS (g  z)A library of random helper functionality.é    )Úannotations)ÚPathN)Ú	lru_cacheÚwrapsÚtotal_ordering©Útee)ÚTemporaryDirectoryÚNamedTemporaryFile)Úmlogé   )ÚMesonExceptionÚHoldableObject)ÚLiteralé   )ÚImmutableListProtocol)ÚConfigurationData)ÚKeyedOptionDictTypeÚ
UserOption)ÚCompilerÚFileÚ_TÚ_U)eÚGITÚpython_commandÚproject_meson_versionsÚSecondLevelHolderr   ÚFileModeÚGitExceptionÚLibTypeÚMachineChoiceÚEnvironmentExceptionÚFileOrStringr   Ú	OptionKeyÚdump_conf_headerÚOptionOverrideProxyÚ
OptionTypeÚ
OrderedSetÚ
PerMachineÚPerMachineDefaultableÚPerThreeMachineÚPerThreeMachineDefaultableÚProgressBarÚRealPathActionÚTemporaryDirectoryWinProofÚVersionÚcheck_direntry_issuesÚclassify_unity_sourcesÚcurrent_vs_supports_modulesÚdarwin_get_object_archsÚdefault_libdirÚdefault_libexecdirÚdefault_prefixÚdefault_datadirÚdefault_includedirÚdefault_infodirÚdefault_localedirÚdefault_mandirÚdefault_sbindirÚdefault_sysconfdirÚdetect_subprojectsÚ
detect_vcsÚdo_conf_fileÚdo_conf_strÚdo_replacementÚ
exe_existsÚexpand_argumentsÚextract_as_listÚfirstÚgenerate_listÚget_compiler_for_sourceÚget_filenames_templates_dictÚget_variable_regexÚget_wine_shortpathÚgitÚhas_path_sepÚis_aixÚ
is_androidÚis_ascii_stringÚ	is_cygwinÚis_debianlikeÚis_dragonflybsdÚ
is_freebsdÚis_haikuÚis_hurdÚis_irixÚis_linuxÚ	is_netbsdÚ
is_openbsdÚis_osxÚis_qnxÚis_sunosÚ
is_windowsÚis_wslÚiter_regexin_iterÚ	join_argsÚlistifyÚ	partitionÚpath_is_in_rootÚpickle_loadÚ
Popen_safeÚ	quiet_gitÚ	quote_argÚrelative_to_if_possibleÚrelpathÚreplace_if_differentÚrun_onceÚget_meson_commandÚset_meson_commandÚ
split_argsÚstringlistifyÚsubstitute_valuesÚsubstring_is_in_listÚtypeslistifyÚverbose_gitÚversion_compareÚ"version_compare_condition_with_minÚversion_compare_manyÚsearch_versionÚwindows_detect_native_archÚwindows_proof_rmÚwindows_proof_rmtree)Úglobz	meson.exeÚ	runpythonú(T.Optional['ImmutableListProtocol[str]']Ú_meson_commandc                  ó   — e Zd ZdZdS )r"   zEExceptions thrown while processing and creating the build environmentN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    ú</usr/lib/python3/dist-packages/mesonbuild/utils/universal.pyr"   r"   ­   s   € € € € € ØOÐOÐOÐOr‡   r"   c                  ó"   ‡ — e Zd Zddˆ fd„Zˆ xZS )	r   NÚmsgÚstrÚoutputúT.Optional[str]c                ó„   •— t          ¦   «                              |¦  «         |r|                     ¦   «         nd| _        d S ©NÚ )ÚsuperÚ__init__ÚstriprŒ   )ÚselfrŠ   rŒ   Ú	__class__s      €rˆ   r’   zGitException.__init__±   s7   ø€ Ý‰Œ×Ò˜ÑÔÐØ(.Ð6�f—l’l‘n”n�n°BˆŒˆˆr‡   ©N)rŠ   r‹   rŒ   r�   ©r‚   rƒ   r„   r’   Ú__classcell__©r•   s   @rˆ   r   r   °   sB   ø€ € € € € ð7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7r‡   r   rM   FÚcmdúT.List[str]Ú
workingdirú T.Union[str, bytes, os.PathLike]ÚcheckÚboolÚkwargsúT.AnyÚreturnú#T.Tuple[subprocess.Popen, str, str]c                ó¢   — t           g| z   } t          | fd|i|¤Ž\  }}}|r+|j        dk    r t          dt	          | ¦  «        z   |¦  «        ‚|||fS )NÚcwdr   zGit command failed: )r   rg   Ú
returncoder   r‹   )rš   rœ   rž   r    ÚpÚoÚes          rˆ   rM   rM   ¶   si   € Ýˆ%�#‰+€CÝ˜Ð7Ð7 *Ð7°Ð7Ð7�G€A€qˆ!Øð A�” Ò"Ð"ÝÐ1µC¸±H´HÑ<¸aÑ@Ô@Ð@Øˆa�ˆ7€Nr‡   úT.Tuple[bool, str]c                óŽ   — t           sd}|rt          |¦  «        ‚d|fS t          | ||¦  «        \  }}}|j        dk    rd|fS d|fS )NúGit program not found.Fr   T©r   r   rM   r¦   )rš   rœ   rž   Úmr§   r¨   r©   s          rˆ   rh   rh   ½   sb   € Ýð Ø$ˆØð 	"Ý˜q‘/”/Ð!Ø�aˆxˆÝ�#�z 5Ñ)Ô)�G€A€qˆ!Ø„|�qÒÐØ�aˆxˆØ�ˆ7€Nr‡   c                ó€   — t           sd}|rt          |¦  «        ‚dS t          | ||d d ¬¦  «        \  }}}|j        dk    S )Nr¬   F©ÚstdoutÚstderrr   r­   )rš   rœ   rž   r®   r§   Ú_s         rˆ   ru   ru   È   sS   € Ýð Ø$ˆØð 	"Ý˜q‘/”/Ð!ØˆuÝ�#�z 5°¸dÐCÑCÔC�G€A€qˆ!ØŒ<˜1ÒÐr‡   Úmainfiler‹   ÚNonec                ó(  — |                       d¦  «        s| ganLt          j                             | ¦  «        r"|                       d¦  «        rt
          ddgz   ant
          | gz   adt          j        v rt          j        dt          ›�¦  «         d S d S )Nz.pyzmesonmain.pyz-mzmesonbuild.mesonmainÚMESON_COMMAND_TESTSzmeson_command is )	Úendswithr€   ÚosÚpathÚisabsr   Úenvironr   Úlog)r´   s    rˆ   ro   ro   Ñ   s¢   € ð ×Ò˜UÑ#Ô#ð 5Ø"˜ˆˆÝ	Œ�Š�xÑ	 Ô	 ð 5 X×%6Ò%6°~Ñ%FÔ%Fð 5å'¨4Ð1GÐ*HÑHˆˆõ (¨8¨*Ñ4ˆà¥¤
Ð*Ð*ÝŒÐ7¥^Ð7Ð7Ñ8Ô8Ð8Ð8Ð8ð +Ð*r‡   c                 ó   — t           S r–   )r€   r†   r‡   rˆ   rn   rn   â   s   € ÝÐr‡   ÚastringúT.Union[str, bytes]c                óÖ   — 	 t          | t          ¦  «        r|                      d¦  «         n*t          | t          ¦  «        r|                      d¦  «         n# t
          $ r Y dS w xY wdS )NÚasciiFT)Ú
isinstancer‹   ÚencodeÚbytesÚdecodeÚUnicodeDecodeError)r¿   s    rˆ   rQ   rQ   æ   sz   € ðÝ�g�sÑ#Ô#ð 	$Ø�NŠN˜7Ñ#Ô#Ð#Ð#Ý˜¥Ñ'Ô'ð 	$Ø�NŠN˜7Ñ#Ô#Ð#øøÝð ð ð Øˆuˆuðøøøàˆ4s   ‚AA Á
A&Á%A&Údirentry_arrayú4T.Union[T.Iterable[T.Union[str, bytes]], str, bytes]c           
     ód  — dd l }|                     ¦   «         }|                     ¦   «         dk    r{t          ¦   «         sot	          | t
          t          f¦  «        r| g} | D ]O}t          |¦  «        rŒt          j	        t          j        d|›d|›d�¦  «        t          j        ¬¦  «         ŒLd S d S d S )Nr   úUTF-8z
                You are using zr which is not a Unicode-compatible
                locale but you are trying to access a file system entry called zS which is
                not pure ASCII. This may cause problems.
                )Úfile)ÚlocaleÚgetpreferredencodingÚupperr_   rÃ   r‹   rÅ   rQ   r   ÚwarningÚtextwrapÚdedentÚsysr²   )rÈ   rÍ   r©   Údes       rˆ   r1   r1   ñ   sé   € Ø€M€M€Mð
 	×#Ò#Ñ%Ô%€AØ‡w‚w�y„y�GÒÐ¥J¡L¤LÐÝ�n¥s­E lÑ3Ô3ð 	.Ø,Ð-ˆNØ ð 	'ð 	'ˆBÝ˜rÑ"Ô"ð ØÝŒL�œð *Ø ð*ð *àPRð*ð *ð *ñ ô õ œ:ð	'ñ 'ô 'ð 'ð 'ð ÐÐÐð	'ð 	'r‡   c                  ó4   — e Zd ZdZej        dd„¦   «         ZdS )r   zˆ A second level object holder. The primary purpose
        of such objects is to hold multiple objects with one
        default option. r¢   r   c                ó   — d S r–   r†   ©r”   s    rˆ   Úget_default_objectz$SecondLevelHolder.get_default_object	  s   € Ø47°Cr‡   N)r¢   r   )r‚   rƒ   r„   r…   ÚabcÚabstractmethodrØ   r†   r‡   rˆ   r   r     s6   € € € € € ðð ð 	ÔØ7Ð7Ð7ñ ÔØ7Ð7Ð7r‡   r   )Ú	metaclassc                  ó\   — e Zd Z ej        d¦  «        Z	 	 ddd„Zdd„Zedd„¦   «         Z	dS )r   z*[r-][w-][xsS-][r-][w-][xsS-][r-][w-][xtT-]NÚpermsr�   ÚownerúT.Union[str, int, None]Úgroupc                ód   — || _         |                      |¦  «        | _        || _        || _        d S r–   )Úperms_sÚperms_s_to_bitsrÝ   rÞ   rà   )r”   rÝ   rÞ   rà   s       rˆ   r’   zFileMode.__init__&  s0   € àˆŒØ×)Ò)¨%Ñ0Ô0ˆŒ
ØˆŒ
ØˆŒ
ˆ
ˆ
r‡   r¢   r‹   c                óR   — d}|                      | j        | j        | j        ¦  «        S )Nz!<FileMode: {!r} owner={} group={})Úformatrâ   rÞ   rà   ©r”   Úrets     rˆ   Ú__repr__zFileMode.__repr__-  s#   € Ø1ˆØ�zŠz˜$œ,¨¬
°D´JÑ?Ô?Ð?r‡   râ   Úintc                óx  — |€dS d}t          |t          ¦  «        st          d|›�¦  «        ‚t          |¦  «        dk    s| j                             |¦  «        st          d|›d|›�¦  «        ‚d}|d         d	k    r|t          j        z  }|d
         dk    r|t          j        z  }|d         dk    r|t          j	        z  }nF|d         dk    r|t          j
        z  }n*|d         dk    r|t          j	        z  }|t          j
        z  }|d         d	k    r|t          j        z  }|d         dk    r|t          j        z  }|d         dk    r|t          j        z  }nF|d         dk    r|t          j        z  }n*|d         dk    r|t          j        z  }|t          j        z  }|d         d	k    r|t          j        z  }|d         dk    r|t          j        z  }|d         dk    r|t          j        z  }nF|d         dk    r|t          j        z  }n*|d         dk    r|t          j        z  }|t          j        z  }|S )z›
        Does the opposite of stat.filemode(), converts strings of the form
        'rwxr-xr-x' to st_mode enums which can be passed to os.chmod()
        Néÿÿÿÿz	rwxr-xr-xz-Install perms must be a string. For example, é	   zFile perms z' must be exactly 9 chars. For example, r   Úrr   Úwr   ÚxÚSÚsé   é   é   é   é   é   ÚTÚt)rÃ   r‹   r   ÚlenÚsymbolic_perms_regexÚmatchÚstatÚS_IRUSRÚS_IWUSRÚS_IXUSRÚS_ISUIDÚS_IRGRPÚS_IWGRPÚS_IXGRPÚS_ISGIDÚS_IROTHÚS_IWOTHÚS_IXOTHÚS_ISVTX)Úclsrâ   ÚegrÝ   s       rˆ   rã   zFileMode.perms_s_to_bits1  sT  € ð ˆ?à�2ØˆÝ˜'¥3Ñ'Ô'ð 	YÝ Ð!WÐQSÐ!WÐ!WÑXÔXÐXÝˆw‰<Œ<˜1ÒÐ CÔ$<×$BÒ$BÀ7Ñ$KÔ$KÐÝ Ð!g¨wÐ!gÐ!gÐacÐ!gÐ!gÑhÔhÐhØˆà�1Œ:˜ÒÐØ•T”\Ñ!ˆEØ�1Œ:˜ÒÐØ•T”\Ñ!ˆEØ�1Œ:˜ÒÐØ•T”\Ñ!ˆEˆEØ�QŒZ˜3ÒÐØ•T”\Ñ!ˆEˆEØ�QŒZ˜3ÒÐØ•T”\Ñ!ˆEØ•T”\Ñ!ˆEà�1Œ:˜ÒÐØ•T”\Ñ!ˆEØ�1Œ:˜ÒÐØ•T”\Ñ!ˆEØ�1Œ:˜ÒÐØ•T”\Ñ!ˆEˆEØ�QŒZ˜3ÒÐØ•T”\Ñ!ˆEˆEØ�QŒZ˜3ÒÐØ•T”\Ñ!ˆEØ•T”\Ñ!ˆEà�1Œ:˜ÒÐØ•T”\Ñ!ˆEØ�1Œ:˜ÒÐØ•T”\Ñ!ˆEØ�1Œ:˜ÒÐØ•T”\Ñ!ˆEˆEØ�QŒZ˜3ÒÐØ•T”\Ñ!ˆEˆEØ�QŒZ˜3ÒÐØ•T”\Ñ!ˆEØ•T”\Ñ!ˆEØˆr‡   )NNN)rÝ   r�   rÞ   rß   rà   rß   ©r¢   r‹   )râ   r�   r¢   ré   )
r‚   rƒ   r„   ÚreÚcompilerû   r’   rè   Úclassmethodrã   r†   r‡   rˆ   r   r     sŠ   € € € € € ð, &˜2œ:ð '7ñ 8ô 8Ðð X\Ø26ðð ð ð ð ð@ð @ð @ð @ð ð2ð 2ð 2ñ „[ð2ð 2ð 2r‡   r   aÌ  You are using .C or .H files in your project. This is deprecated.
         Currently, Meson treats this as C++ code, but they
            used to be treated as C code.
         Note that the situation is a bit more complex if you are using the
         Visual Studio compiler, as it treats .C files as C code, unless you add
         the /TP compiler flag, but this is unreliable.
         See https://github.com/mesonbuild/meson/pull/8747 for the discussions.c                  ór  — e Zd Zd(d„Zd)d„Zd)d	„Ze ed
¬¦  «        d*d„¦   «         ¦   «         Zed+d„¦   «         Z	ed,d„¦   «         Z
ed-d„¦   «         Z ed
¬¦  «        d.d„¦   «         Z ed
¬¦  «        d/d„¦   «         Zed)d„¦   «         Zd0d„Zd1d2d!„Zd1d2d"„Zd3d%„Zd4d&„Z ed
¬¦  «        d)d'„¦   «         Zd
S )5r   Úis_builtrŸ   Úsubdirr‹   Úfnamec                óè   — |                      d¦  «        s|                      d¦  «        rt          j        t          d¬¦  «         || _        || _        || _        t          |||f¦  «        | _        d S )Nz.Cz.HT)Úonce)r¸   r   rÐ   Údot_C_dot_H_warningr  r  r  Úhash)r”   r  r  r  s       rˆ   r’   zFile.__init__n  sn   € Ø�>Š>˜$ÑÔð 	9 5§>¢>°$Ñ#7Ô#7ð 	9ÝŒLÕ,°4Ð8Ñ8Ô8Ð8Ø ˆŒØˆŒØˆŒ
Ý˜( F¨EÐ2Ñ3Ô3ˆŒ	ˆ	ˆ	r‡   r¢   c                ó*   — |                       ¦   «         S r–   )Úrelative_namer×   s    rˆ   Ú__str__zFile.__str__v  s   € Ø×!Ò!Ñ#Ô#Ð#r‡   c                óv   — d}| j         s|dz  }|dz  }|                     |                      ¦   «         ¦  «        S )Nz
<File: {0}z (not built)ú>)r  rå   r  ræ   s     rˆ   rè   zFile.__repr__y  sB   € ØˆØŒ}ð 	"Ø�>Ñ!ˆCØˆs‰
ˆØ�zŠz˜$×,Ò,Ñ.Ô.Ñ/Ô/Ð/r‡   N©ÚmaxsizeÚsource_rootú'File'c                óÆ   — t           j                             t           j                             | ||¦  «        ¦  «        st	          d|› d�¦  «        ‚t          d||¦  «        S )NzFile z does not exist.F)r¹   rº   ÚisfileÚjoinr   r   )r  r  r  s      rˆ   Úfrom_source_filezFile.from_source_file€  sY   € õ Œw�~Š~�bœgŸlšl¨;¸ÀÑFÔFÑGÔGð 	BÝ Ð!@¨Ð!@Ð!@Ð!@ÑAÔAÐAÝ�E˜6 5Ñ)Ô)Ð)r‡   c                ó$   — t          d| |¦  «        S ©NT©r   )r  r  s     rˆ   Úfrom_built_filezFile.from_built_file‡  s   € å�D˜& %Ñ(Ô(Ð(r‡   Úrelativec                óh   — t           j                             | ¦  «        \  }}t          d||¦  «        S r&  )r¹   rº   Úsplitr   )r)  ÚdirpartÚ	fnameparts      rˆ   Úfrom_built_relativezFile.from_built_relative‹  s,   € åœWŸ]š]¨8Ñ4Ô4Ñˆ�Ý�D˜' 9Ñ-Ô-Ð-r‡   c                ó$   — t          dd| ¦  «        S )NFr�   r'  )r  s    rˆ   Úfrom_absolute_filezFile.from_absolute_file�  s   € å�E˜2˜uÑ%Ô%Ð%r‡   Úbuild_to_srcc                óŽ   — | j         r|                      ¦   «         S t          j                             || j        | j        ¦  «        S r–   )r  r  r¹   rº   r#  r  r  )r”   r1  s     rˆ   Úrel_to_builddirzFile.rel_to_builddir”  s;   € àŒ=ð 	GØ×%Ò%Ñ'Ô'Ð'å”7—<’< ¨d¬k¸4¼:ÑFÔFÐFr‡   ÚsrcdirÚbuilddirc                ó|   — |}| j         r|}t          j                             ||                      ¦   «         ¦  «        S r–   )r  r¹   rº   r#  r  )r”   r4  r5  Úabsdirs       rˆ   Úabsolute_pathzFile.absolute_path›  s8   € àˆØŒ=ð 	ØˆFÝŒw�|Š|˜F D×$6Ò$6Ñ$8Ô$8Ñ9Ô9Ð9r‡   c                óŠ   — t           j                             | j        ¦  «        d         dd …                              ¦   «         S )Nr   )r¹   rº   Úsplitextr  Úlowerr×   s    rˆ   ÚsuffixzFile.suffix¢  s4   € åŒw×Ò ¤
Ñ+Ô+¨AÔ.¨q¨r¨rÔ2×8Ò8Ñ:Ô:Ð:r‡   ÚendingúT.Union[str, T.Tuple[str, ...]]c                ó6   — | j                              |¦  «        S r–   )r  r¸   )r”   r=  s     rˆ   r¸   zFile.endswith¦  s   € ØŒz×"Ò" 6Ñ*Ô*Ð*r‡   rë   rñ   Úmaxsplitré   r›   c                ó:   — | j                              ||¬¦  «        S ©N)r@  )r  r+  ©r”   rñ   r@  s      rˆ   r+  z
File.split©  s   € ØŒz×Ò ¨HÐÑ5Ô5Ð5r‡   c                ó:   — | j                              ||¬¦  «        S rB  )r  ÚrsplitrC  s      rˆ   rE  zFile.rsplit¬  s   € ØŒz× Ò  ¨XÐ Ñ6Ô6Ð6r‡   ÚotherÚobjectc                ó²   — t          |t          ¦  «        st          S | j        |j        k    rdS | j        | j        | j        f|j        |j        |j        fk    S )NF)rÃ   r   ÚNotImplementedr  r  r  r  ©r”   rF  s     rˆ   Ú__eq__zFile.__eq__¯  sU   € Ý˜%¥Ñ&Ô&ð 	"Ý!Ð!ØŒ9˜œ
Ò"Ð"Ø�5Ø”
˜DœK¨¬Ð7¸E¼KÈÌÐW\ÔWeÐ;fÒfÐfr‡   c                ó   — | j         S r–   )r  r×   s    rˆ   Ú__hash__zFile.__hash__¶  s
   € ØŒyÐr‡   c                óV   — t           j                             | j        | j        ¦  «        S r–   )r¹   rº   r#  r  r  r×   s    rˆ   r  zFile.relative_name¹  s   € åŒw�|Š|˜DœK¨¬Ñ4Ô4Ð4r‡   )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   )r1  r‹   r¢   r‹   )r4  r‹   r5  r‹   r¢   r‹   )r=  r>  r¢   rŸ   )rë   )rñ   r‹   r@  ré   r¢   r›   ©rF  rG  r¢   rŸ   ©r¢   ré   )r‚   rƒ   r„   r’   r  rè   Ústaticmethodr   r$  r(  r.  r0  r3  r8  Úpropertyr<  r¸   r+  rE  rK  rM  r  r†   r‡   rˆ   r   r   m  s  € € € € € ð4ð 4ð 4ð 4ð$ð $ð $ð $ð0ð 0ð 0ð 0ð Ø€Y�tÐÑÔð*ð *ð *ñ Ôñ „\ð*ð
 ð)ð )ð )ñ „\ð)ð ð.ð .ð .ñ „\ð.ð ð&ð &ð &ñ „\ð&ð €Y�tÐÑÔðGð Gð Gñ ÔðGð €Y�tÐÑÔð:ð :ð :ñ Ôð:ð ð;ð ;ð ;ñ „Xð;ð+ð +ð +ð +ð6ð 6ð 6ð 6ð 6ð7ð 7ð 7ð 7ð 7ðgð gð gð gðð ð ð ð €Y�tÐÑÔð5ð 5ð 5ñ Ôð5ð 5ð 5r‡   Ú	compilersúT.Iterable['Compiler']Úsrcú'FileOrString'ú
'Compiler'c                ób   — | D ]}|                      |¦  «        r|c S Œt          d|›�¦  «        ‚)zNGiven a set of compilers and a source, find the compiler for that source type.z&No specified compiler can handle file )Úcan_compiler   )rS  rU  Úcomps      rˆ   rI   rI   ¾  sL   € àð ð ˆØ×Ò˜CÑ Ô ð 	ØˆKˆKˆKð	å
ÐIÀ#ÐIÐIÑ
JÔ
JÐJr‡   ÚsourcesúT.Sequence['FileOrString']ú*T.Dict['Compiler', T.List['FileOrString']]c                ó€   — i }|D ]8}t          | |¦  «        }||vr|g||<   Œ||                              |¦  «         Œ9|S r–   )rI   Úappend)rS  r[  ÚcompsrclistrU  rZ  s        rˆ   r2   r2   Æ  sa   € Ø>@€KØð *ð *ˆÝ& y°#Ñ6Ô6ˆØ�{Ð"Ð"Ø!$ ˆK˜ÑÐà˜Ô×$Ò$ SÑ)Ô)Ð)Ð)ØÐr‡   c                  ó*   — e Zd ZdZdZdZd	d„Zd	d„ZdS )
r!   zzEnum class representing one of the two abstract machine names used in
    most places: the build, and host, machines.
    r   r   r¢   r‹   c                ó.   — t          dd¦  «        |          S )NÚbuildÚhost©r)   r×   s    rˆ   Úget_lower_case_namez!MachineChoice.get_lower_case_nameÚ  s   € Ý˜' 6Ñ*Ô*¨4Ô0Ð0r‡   c                ó.   — t          dd¦  «        |          S )Núbuild.r�   re  r×   s    rˆ   Ú
get_prefixzMachineChoice.get_prefixÝ  s   € Ý˜( BÑ'Ô'¨Ô-Ð-r‡   Nr  )r‚   rƒ   r„   r…   ÚBUILDÚHOSTrf  ri  r†   r‡   rˆ   r!   r!   Ñ  sR   € € € € € ðð ð €EØ€Dð1ð 1ð 1ð 1ð.ð .ð .ð .ð .ð .r‡   r!   c                  ó6   — e Zd Zdd„Zdd	„Zdd„Zdd„Zdd„ZdS )r)   rc  r   rd  r¢   rµ   c                ó"   — || _         || _        d S r–   ©rc  rd  )r”   rc  rd  s      rˆ   r’   zPerMachine.__init__â  s   € ØˆŒ
ØˆŒ	ˆ	ˆ	r‡   Úmachiner!   c                óV   — t           j        | j        t           j        | j        i|         S r–   )r!   rj  rc  rk  rd  ©r”   ro  s     rˆ   Ú__getitem__zPerMachine.__getitem__æ  s*   € åÔ $¤*ÝÔ $¤)ð
ð ôð 	r‡   Úvalc                óL   — t          | |                     ¦   «         |¦  «         d S r–   )Úsetattrrf  )r”   ro  rs  s      rˆ   Ú__setitem__zPerMachine.__setitem__ì  s&   € Ý��g×1Ò1Ñ3Ô3°SÑ9Ô9Ð9Ð9Ð9r‡   ú''PerMachineDefaultable[T.Optional[_T]]'c                ó€   — t          ¦   «         }| j        |_        | j        |_        |j        |j        k    rd|_        |S ©a  Unset definition duplicated from their previous to None

        This is the inverse of ''default_missing''. By removing defaulted
        machines, we can elaborate the original and then redefault them and thus
        avoid repeating the elaboration explicitly.
        N)r*   rc  rd  ©r”   Úunfreezes     rˆ   Úmiss_defaultingzPerMachine.miss_defaultingï  s<   € õ )Ñ*Ô*ˆØœˆŒØœ	ˆŒØŒ=˜HœNÒ*Ð*Ø ˆHŒMØˆr‡   r‹   c                ó(   — d| j         ›d| j        ›d�S )NzPerMachine(ú, ú)rn  r×   s    rˆ   rè   zPerMachine.__repr__ý  s   € Ø;˜TœZÐ;Ð;¨T¬YÐ;Ð;Ð;Ð;r‡   N)rc  r   rd  r   r¢   rµ   )ro  r!   r¢   r   )ro  r!   rs  r   r¢   rµ   )r¢   rw  r  )r‚   rƒ   r„   r’   rr  rv  r|  rè   r†   r‡   rˆ   r)   r)   á  sx   € € € € € ðð ð ð ðð ð ð ð:ð :ð :ð :ðð ð ð ð<ð <ð <ð <ð <ð <r‡   r)   c                  ó<   ‡ — e Zd ZdZdˆ fd„Zdd
„Zdd„Zdd„Zˆ xZS )r+   zõLike `PerMachine` but includes `target` too.

    It turns out just one thing do we need track the target machine. There's no
    need to computer the `target` field so we don't bother overriding the
    `__getitem__`/`__setitem__` methods.
    rc  r   rd  Útargetr¢   rµ   c                óZ   •— t          ¦   «                              ||¦  «         || _        d S r–   )r‘   r’   r�  )r”   rc  rd  r�  r•   s       €rˆ   r’   zPerThreeMachine.__init__  s(   ø€ Ý‰Œ×Ò˜ Ñ%Ô%Ð%ØˆŒˆˆr‡   ú,'PerThreeMachineDefaultable[T.Optional[_T]]'c                óÆ   — t          ¦   «         }| j        |_        | j        |_        | j        |_        |j        |j        k    rd|_        |j        |j        k    rd|_        |S ry  )r,   rc  rd  r�  rz  s     rˆ   r|  zPerThreeMachine.miss_defaulting  s[   € õ .Ñ/Ô/ˆØœˆŒØœ	ˆŒØœ+ˆŒØŒ?˜hœmÒ+Ð+Ø"ˆHŒOØŒ=˜HœNÒ*Ð*Ø ˆHŒMØˆr‡   ro  r!   rŸ   c                ó$   — | j         | |         k    S r–   )rc  rq  s     rˆ   Úmatches_build_machinez%PerThreeMachine.matches_build_machine  s   € ØŒz˜T 'œ]Ò*Ð*r‡   r‹   c                ó8   — d| j         ›d| j        ›d| j        ›d�S )NzPerThreeMachine(r~  r  ©rc  rd  r�  r×   s    rˆ   rè   zPerThreeMachine.__repr__   s)   € ØQ $¤*ÐQÐQ°$´)ÐQÐQÀÄÐQÐQÐQÐQr‡   )rc  r   rd  r   r�  r   r¢   rµ   )r¢   rƒ  )ro  r!   r¢   rŸ   r  )	r‚   rƒ   r„   r…   r’   r|  r†  rè   r˜   r™   s   @rˆ   r+   r+     s‹   ø€ € € € € ðð ðð ð ð ð ð ðð ð ð ð"+ð +ð +ð +ðRð Rð Rð Rð Rð Rð Rð Rr‡   r+   c                  óN   ‡ — e Zd ZdZddˆ fd„Zdd
„Zdd„Zedd„¦   «         Zˆ xZ	S )r*   zCExtends `PerMachine` with the ability to default from `None`s.
    Nrc  úT.Optional[_T]rd  r¢   rµ   c                óL   •— t          ¦   «                              ||¦  «         d S r–   )r‘   r’   )r”   rc  rd  r•   s      €rˆ   r’   zPerMachineDefaultable.__init__'  s#   ø€ Ý‰Œ×Ò˜ Ñ%Ô%Ð%Ð%Ð%r‡   ú'PerMachine[_T]'c                ó`   — t          | j        | j        ¦  «        }|j        €|j        |_        |S )z•Default host to build

        This allows just specifying nothing in the native case, and just host in the
        cross non-compiler case.
        )r)   rc  rd  ©r”   Úfreezes     rˆ   Údefault_missingz%PerMachineDefaultable.default_missing*  s-   € õ ˜DœJ¨¬	Ñ2Ô2ˆØŒ;ÐØ œ,ˆFŒKØˆr‡   r‹   c                ó(   — d| j         ›d| j        ›d�S )NzPerMachineDefaultable(r~  r  rn  r×   s    rˆ   rè   zPerMachineDefaultable.__repr__5  s   € ØF¨¬
ÐFÐF¸¼	ÐFÐFÐFÐFr‡   Úis_crossrŸ   r   úPerMachine[_T]c                óR   —  | |¦  «        }|r||_         |                     ¦   «         S )a@  Easy way to get a defaulted value

        This allows simplifying the case where you can control whether host and
        build are separate or not with a boolean. If the is_cross value is set
        to true then the optional host value will be used, otherwise the host
        will be set to the build value.
        )rd  r�  )r
  r’  rc  rd  r®   s        rˆ   ÚdefaultzPerMachineDefaultable.default8  s2   € ð ˆC�‰JŒJˆØð 	ØˆAŒFØ× Ò Ñ"Ô"Ð"r‡   )NN)rc  rŠ  rd  rŠ  r¢   rµ   )r¢   rŒ  r  )r’  rŸ   rc  r   rd  r   r¢   r“  )
r‚   rƒ   r„   r…   r’   r�  rè   r  r•  r˜   r™   s   @rˆ   r*   r*   $  s˜   ø€ € € € € ðð ð&ð &ð &ð &ð &ð &ð &ð	ð 	ð 	ð 	ðGð Gð Gð Gð ð#ð #ð #ñ „[ð#ð #ð #ð #ð #r‡   r*   c                  ó*   — e Zd ZdZd
d„Zdd„Zdd„Zd	S )r,   zHExtends `PerThreeMachine` with the ability to default from `None`s.
    r¢   rµ   c                ó@   — t                                | d d d ¦  «         d S r–   )r+   r’   r×   s    rˆ   r’   z#PerThreeMachineDefaultable.__init__J  s"   € Ý× Ò   t¨T°4Ñ8Ô8Ð8Ð8Ð8r‡   ú!'PerThreeMachine[T.Optional[_T]]'c                ó’   — t          | j        | j        | j        ¦  «        }|j        €|j        |_        |j        €|j        |_        |S )zæDefault host to build and target to host.

        This allows just specifying nothing in the native case, just host in the
        cross non-compiler case, and just target in the native-built
        cross-compiler case.
        )r+   rc  rd  r�  rŽ  s     rˆ   r�  z*PerThreeMachineDefaultable.default_missingM  sB   € õ ! ¤¨T¬Y¸¼ÑDÔDˆØŒ;ÐØ œ,ˆFŒKØŒ=Ð Ø"œKˆFŒMØˆr‡   r‹   c                ó8   — d| j         ›d| j        ›d| j        ›d�S )NzPerThreeMachineDefaultable(r~  r  rˆ  r×   s    rˆ   rè   z#PerThreeMachineDefaultable.__repr__[  s)   € Ø\¨T¬ZÐ\Ð\¸T¼YÐ\Ð\ÈDÌKÐ\Ð\Ð\Ð\r‡   N©r¢   rµ   )r¢   r˜  r  )r‚   rƒ   r„   r…   r’   r�  rè   r†   r‡   rˆ   r,   r,   G  s`   € € € € € ðð ð9ð 9ð 9ð 9ðð ð ð ð]ð ]ð ]ð ]ð ]ð ]r‡   r,   c                 óT   — t          j        ¦   «                              ¦   «         dk    S )NÚsunos©ÚplatformÚsystemr;  r†   r‡   rˆ   r^   r^   _  ó!   € ÝŒ?ÑÔ×"Ò"Ñ$Ô$¨Ò/Ð/r‡   c                 óT   — t          j        ¦   «                              ¦   «         dk    S )NÚdarwinrž  r†   r‡   rˆ   r\   r\   c  ó!   € ÝŒ?ÑÔ×"Ò"Ñ$Ô$¨Ò0Ð0r‡   c                 óT   — t          j        ¦   «                              ¦   «         dk    S )NÚlinuxrž  r†   r‡   rˆ   rY   rY   g  r¡  r‡   c                 óT   — t          j        ¦   «                              ¦   «         dk    S )NÚandroidrž  r†   r‡   rˆ   rP   rP   k  ó!   € ÝŒ?ÑÔ×"Ò"Ñ$Ô$¨	Ò1Ð1r‡   c                 óT   — t          j        ¦   «                              ¦   «         dk    S )NÚhaikurž  r†   r‡   rˆ   rV   rV   o  r¡  r‡   c                 óT   — t          j        ¦   «                              ¦   «         dk    S )NÚopenbsdrž  r†   r‡   rˆ   r[   r[   s  r©  r‡   c                 óX   — t          j        ¦   «                              ¦   «         } | dk    S )NÚwindowsrž  )Úplatnames    rˆ   r_   r_   w  s&   € ÝŒÑ Ô ×&Ò&Ñ(Ô(€HØ�yÒ Ð r‡   c                 ól   — t          ¦   «         o&dt          j        ¦   «                              ¦   «         v S )NÚ	microsoft)rY   rŸ  Úreleaser;  r†   r‡   rˆ   r`   r`   {  s+   € Ý‰:Œ:ÐC˜+­Ô)9Ñ);Ô);×)AÒ)AÑ)CÔ)CÐCÐCr‡   c                 ó"   — t           j        dk    S )NÚcygwin)rÓ   rŸ  r†   r‡   rˆ   rR   rR   ~  s   € ÝŒ<˜8Ò#Ð#r‡   c                 ó@   — t           j                             d¦  «        S )Nz/etc/debian_version)r¹   rº   r"  r†   r‡   rˆ   rS   rS   ‚  s   € ÝŒ7�>Š>Ð/Ñ0Ô0Ð0r‡   c                 óT   — t          j        ¦   «                              ¦   «         dk    S )NÚ	dragonflyrž  r†   r‡   rˆ   rT   rT   †  s!   € ÝŒ?ÑÔ×"Ò"Ñ$Ô$¨Ò3Ð3r‡   c                 óT   — t          j        ¦   «                              ¦   «         dk    S )NÚnetbsdrž  r†   r‡   rˆ   rZ   rZ   Š  r¤  r‡   c                 óT   — t          j        ¦   «                              ¦   «         dk    S )NÚfreebsdrž  r†   r‡   rˆ   rU   rU   Ž  r©  r‡   c                 óN   — t          j        ¦   «                              d¦  «        S )NÚirix)rŸ  r   Ú
startswithr†   r‡   rˆ   rX   rX   ‘  s   € ÝŒ?ÑÔ×'Ò'¨Ñ/Ô/Ð/r‡   c                 óT   — t          j        ¦   «                              ¦   «         dk    S )NÚgnurž  r†   r‡   rˆ   rW   rW   ”  ó!   € ÝŒ?ÑÔ×"Ò"Ñ$Ô$¨Ò-Ð-r‡   c                 óT   — t          j        ¦   «                              ¦   «         dk    S )NÚqnxrž  r†   r‡   rˆ   r]   r]   —  rÂ  r‡   c                 óT   — t          j        ¦   «                              ¦   «         dk    S )NÚaixrž  r†   r‡   rˆ   rO   rO   š  rÂ  r‡   Úarglistc                ó„   — 	 t          j        | d¬¦  «        j        dk    rdS n# t          t           j        f$ r Y nw xY wdS )Né
   )Útimeoutr   TF)Ú
subprocessÚrunr¦   ÚFileNotFoundErrorÚTimeoutExpired)rÇ  s    rˆ   rD   rD   �  s[   € ðÝŒ>˜'¨2Ð.Ñ.Ô.Ô9¸QÒ>Ð>Ø�4ð ?øå�zÔ8Ð9ð ð ð Øˆðøøøàˆ5s   ‚$ ¤=¼=r  Úobjpathú'ImmutableListProtocol[str]'c                óŒ  — t          dd| g¦  «        \  }}}|st          j        d| › d|› �¦  «         dS |                     dd¦  «        d         }|                     dd¦  «        }|                     d	d
¦  «        }|                     dd¦  «        }|                     dd¦  «        }d|v r|dz  }|                     ¦   «         S )z¶
    For a specific object (executable, static library, dylib, etc), run `lipo`
    to fetch the list of archs supported by it. Supports both thin objects and
    'fat' objects.
    Úlipoz-infozlipo ú: Nr   Úi386Úx86Úarm64Úaarch64Úppc7400ÚppcÚppc970Úarmv7z arm)rg   r   ÚdebugrE  Úreplacer+  )rÏ  r³   Ústdor²   s       rˆ   r4   r4   ¦  sÐ   € õ ! &¨'°7Ð!;Ñ<Ô<�O€A€tˆVØð ÝŒ
Ð.˜7Ð.Ð. fÐ.Ð.Ñ/Ô/Ð/ØˆtØ�;Š;�t˜QÑÔ Ô"€Dà�<Š<˜ Ñ&Ô&€DØ�<Š<˜ Ñ+Ô+€DØ�<Š<˜	 5Ñ)Ô)€DØ�<Š<˜ %Ñ(Ô(€Dà�$€€Ø�‰ˆØ�:Š:‰<Œ<Ðr‡   c                 óê  — t           j        dk    rdS 	 ddl} |                      ¦   «         }|                      ¦   «         }| j        j        }|                      |                     ¦   «         ¦  «        }|                     ||  	                    |¦  «        |  	                    |¦  «        ¦  «        r4|j
        dk    rdS |j
        dk    rdS |j
        d	k    rd
S |j
        dk    rdS n# t          t          f$ r Y nw xY wt          j                             dd¦  «                             ¦   «         }|sC	 t          j        d                              ¦   «         }n# t"          $ r t%          d¦  «        ‚w xY w|S )zA
    The architecture of Windows itself: x86, amd64 or arm64
    Úwin32r�   r   Nid†  Úamd64iL  rÕ  idª  rÖ  iÄ  ÚarmÚPROCESSOR_ARCHITEW6432ÚPROCESSOR_ARCHITECTUREz'Unable to detect native OS architecture)rÓ   rŸ  ÚctypesÚc_ushortÚwindllÚkernel32Úc_void_pÚGetCurrentProcessÚIsWow64Process2ÚbyrefÚvalueÚOSErrorÚAttributeErrorr¹   r¼   Úgetr;  ÚKeyErrorr"   )rå  Úprocess_archÚnative_archrè  ÚprocessÚarchs         rˆ   rz   rz   ¼  s�  € õ „|�wÒÐØˆrðØˆˆˆØ—’Ñ(Ô(ˆØ—o’oÑ'Ô'ˆØ”=Ô)ˆØ—/’/ (×"<Ò"<Ñ">Ô">Ñ?Ô?ˆà×#Ò# G¨V¯\ª\¸,Ñ-GÔ-GÈÏÊÐVaÑIbÔIbÑcÔcð 		àÔ  FÒ*Ð*Ø�wØÔ" fÒ,Ð,Ø�uØÔ" fÒ,Ð,Ø�wØÔ" fÒ,Ð,Ø�uøøÝ•^Ð$ð ð ð Øˆðøøøõ
 Œ:�>Š>Ð2°BÑ7Ô7×=Ò=Ñ?Ô?€DØð Rð	Rå”:Ð6Ô7×=Ò=Ñ?Ô?ˆDˆDøÝð 	Rð 	Rð 	RÝ&Ð'PÑQÔQÐQð	Røøøà€Ks0   ”B'C% Â=C% Ã
C% ÃC% Ã%C9Ã8C9Ä1$E ÅE0Ú
source_dirúT.Union[str, Path]úT.Optional[T.Dict[str, str]]c           
     óÀ  — dddddddœddd	d
dddœdddddddœdddddddœg}t          | t          ¦  «        rt          | ¦  «        } t          j        | j        ¦  «        }|                     | ¦  «         |D ]f}|D ]a}t          j        |                     |d         ¦  «        ¦  «        r2t          j
        |d         ¦  «        rt          |¦  «        |d<   |c c S ŒbŒgd S )NrM   z.gitzgit describe --dirty=+z(.*)z.git/logs/HEAD)Únamerš   Úrepo_dirÚget_revÚ	rev_regexÚdepÚ	mercurialÚhgz.hgzhg id -iz.hg/dirstateÚ
subversionÚsvnz.svnzsvn infozRevision: (.*)z
.svn/wc.dbÚbazaarÚbzrz.bzrz	bzr revnorû  rš   Úwc_dir)rÃ   r‹   r   ÚcollectionsÚdequeÚparentsÚ
appendleftÚis_dirÚjoinpathÚshutilÚwhich)rö  Úvcs_systemsÚparent_paths_and_selfÚcurdirÚvcss        rˆ   r@   r@   á  sL  € ð ØØØ/ØØ#ð	
ð 	
ð  ØØØ!ØØ!ð	
ð 	
ð !ØØØ!Ø)Øð	
ð 	
ð ØØØ"ØØð	
ð 	
ð3!€KõD �*�cÑ"Ô"ð &Ý˜*Ñ%Ô%ˆ
å'Ô-¨jÔ.@ÑAÔAÐð ×$Ò$ ZÑ0Ô0Ð0Ø'ð ð ˆØð 	ð 	ˆCÝŒ{˜6Ÿ?š?¨3¨z¬?Ñ;Ô;Ñ<Ô<ð ÅÄÈcÐRWÌjÑAYÔAYð Ý # F¡¤��H‘Ø�
�
�
�
�
øð	ð ˆ4r‡   c                 ó  — t           j                             dd¦  «        } |                      dd¦  «        }t	          |d         ¦  «        }|dk    rdS |dk    rt	          |d	         ¦  «        d
k    rdS |                      d¦  «        od| v S )NÚ	VSCMD_VERr�   ú.r   r   é   Té   r   rÉ  z16.9.0z-pre.)r¹   r¼   rð  r+  ré   r¿  )ÚvsverÚnumsÚmajors      rˆ   r3   r3     s‡   € ÝŒJ�NŠN˜;¨Ñ+Ô+€EØ�;Š;�s˜AÑÔ€DÝ��Q”‰LŒL€EØ�‚{€{ØˆtØ�‚{€{•s˜4 œ7‘|”| rÒ)Ð)ØˆtØ×Ò˜HÑ%Ô%Ð:¨'°UÐ*:Ð:r‡   c                  ó^   — e Zd Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd„Zdd„ZdS )r0   rñ   r‹   r¢   rµ   c                ó|   — || _         t          j        d|¦  «        }d„ |D ¦   «         }d„ |D ¦   «         }|| _        d S )Nz(\d+|[a-zA-Z]+|[^a-zA-Z\d]+)c                ób   — g | ],}t          j        d |                     d¦  «        ¦  «        °*|‘Œ-S )z[^a-zA-Z\d]+r   )r  rü   rà   ©Ú.0r®   s     rˆ   ú
<listcomp>z$Version.__init__.<locals>.<listcomp>%  s4   € ÐYÐYÐY˜Aµ2´8¸OÈQÏWÊWÐUVÉZÌZÑ3XÔ3XÐY�aÐYÐYÐYr‡   c                óÊ   — g | ]`}|                      d ¦  «                             ¦   «         r"t          |                      d ¦  «        ¦  «        n|                      d ¦  «        ‘ŒaS )r   )rà   Úisdigitré   r  s     rˆ   r  z$Version.__init__.<locals>.<listcomp>(  sR   € ÐbÐbÐbÐRS¨¯ª°©¬×);Ò);Ñ)=Ô)=ÐM•c˜!Ÿ'š' !™*œ*‘o”o�oÀ1Ç7Â7È1Á:Ä:ÐbÐbÐbr‡   )Ú_sr  ÚfinditerÚ_v)r”   rñ   Ú
sequences1Ú
sequences2Ú
sequences3s        rˆ   r’   zVersion.__init__  sU   € ØˆŒõ ”[Ð!@À!ÑDÔDˆ
ð ZÐY ÐYÑYÔYˆ
ð cÐbÐWaÐbÑbÔbˆ
àˆŒˆˆr‡   c                ó\   — d                      | j        t          | j        ¦  «        ¦  «        S )Nz	{} (V={}))rå   r"  r‹   r$  r×   s    rˆ   r  zVersion.__str__,  s"   € Ø×!Ò! $¤'­3¨t¬w©<¬<Ñ8Ô8Ð8r‡   c                ó   — d| j         › d�S )Nz
<Version: r  )r"  r×   s    rˆ   rè   zVersion.__repr__/  s   € Ø&˜DœGÐ&Ð&Ð&Ð&r‡   rF  rG  rŸ   c                óz   — t          |t          ¦  «        r |                      |t          j        ¦  «        S t
          S r–   )rÃ   r0   Ú_Version__cmpÚoperatorÚltrI  rJ  s     rˆ   Ú__lt__zVersion.__lt__2  ó0   € Ý�e�WÑ%Ô%ð 	2Ø—:’:˜e¥X¤[Ñ1Ô1Ð1ÝÐr‡   c                óz   — t          |t          ¦  «        r |                      |t          j        ¦  «        S t
          S r–   )rÃ   r0   r+  r,  ÚgtrI  rJ  s     rˆ   Ú__gt__zVersion.__gt__7  r/  r‡   c                óz   — t          |t          ¦  «        r |                      |t          j        ¦  «        S t
          S r–   )rÃ   r0   r+  r,  ÚlerI  rJ  s     rˆ   Ú__le__zVersion.__le__<  r/  r‡   c                óz   — t          |t          ¦  «        r |                      |t          j        ¦  «        S t
          S r–   )rÃ   r0   r+  r,  ÚgerI  rJ  s     rˆ   Ú__ge__zVersion.__ge__A  r/  r‡   c                óZ   — t          |t          ¦  «        r| j        |j        k    S t          S r–   ©rÃ   r0   r$  rI  rJ  s     rˆ   rK  zVersion.__eq__F  ó)   € Ý�e�WÑ%Ô%ð 	'Ø”7˜eœhÒ&Ð&ÝÐr‡   c                óZ   — t          |t          ¦  «        r| j        |j        k    S t          S r–   r:  rJ  s     rˆ   Ú__ne__zVersion.__ne__K  r;  r‡   ú	'Version'Ú
comparatorú T.Callable[[T.Any, T.Any], bool]c                óF  — t          | j        |j        ¦  «        D ]W\  }}t          |t          ¦  «        }t          |t          ¦  «        }||k    r |||¦  «        c S ||k    r |||¦  «        c S ŒX |t	          | j        ¦  «        t	          |j        ¦  «        ¦  «        S r–   )Úzipr$  rÃ   ré   rú   )r”   rF  r?  ÚoursÚtheirsÚours_is_intÚtheirs_is_ints          rˆ   Ú__cmpzVersion.__cmpP  s®   € å ¤¨¬Ñ2Ô2ð 	0ð 	0‰LˆD�&å$ T­3Ñ/Ô/ˆKÝ& v­sÑ3Ô3ˆMØ˜mÒ+Ð+Ø!�z +¨}Ñ=Ô=Ð=Ð=Ð=à�vŠ~ˆ~Ø!�z $¨Ñ/Ô/Ð/Ð/Ð/ð ð
 ˆz�#˜dœg™,œ,­¨E¬H©¬Ñ6Ô6Ð6r‡   N)rñ   r‹   r¢   rµ   r  rO  )rF  r>  r?  r@  r¢   rŸ   )r‚   rƒ   r„   r’   r  rè   r.  r2  r5  r8  rK  r=  r+  r†   r‡   rˆ   r0   r0     sÜ   € € € € € ðð ð ð ð9ð 9ð 9ð 9ð'ð 'ð 'ð 'ðð ð ð ð
ð ð ð ð
ð ð ð ð
ð ð ð ð
ð ð ð ð
ð ð ð ð
7ð 7ð 7ð 7ð 7ð 7r‡   r0   Úvstr2ú.T.Tuple[T.Callable[[T.Any, T.Any], bool], str]c                óŒ  — |                       d¦  «        rt          j        }| dd …         } �n|                       d¦  «        rt          j        }| dd …         } nè|                       d¦  «        rt          j        }| dd …         } n¼|                       d¦  «        rt          j        }| dd …         } n�|                       d¦  «        rt          j        }| dd …         } nd|                       d¦  «        rt          j        }| dd …         } n8|                       d	¦  «        rt          j        }| dd …         } nt          j        }|| fS )
Nú>=r   ú<=ú!=ú==ú=r   r  ú<)r¿  r,  r7  r4  ÚneÚeqr1  r-  )rH  Úcmpops     rˆ   Ú_version_extract_cmpoprT  a  sG  € Ø×Ò˜ÑÔð Ý”ˆØ�a�b�b”	ˆ‰Ø	×	Ò	˜$Ñ	Ô	ð Ý”ˆØ�a�b�b”	ˆˆØ	×	Ò	˜$Ñ	Ô	ð Ý”ˆØ�a�b�b”	ˆˆØ	×	Ò	˜$Ñ	Ô	ð Ý”ˆØ�a�b�b”	ˆˆØ	×	Ò	˜#Ñ	Ô	ð 
Ý”ˆØ�a�b�b”	ˆˆØ	×	Ò	˜#Ñ	Ô	ð Ý”ˆØ�a�b�b”	ˆˆØ	×	Ò	˜#Ñ	Ô	ð Ý”ˆØ�a�b�b”	ˆˆå”ˆà�5ˆ>Ðr‡   Úvstr1c                ór   — t          |¦  «        \  }} |t          | ¦  «        t          |¦  «        ¦  «        S r–   )rT  r0   )rU  rH  rS  s      rˆ   rv   rv   }  s1   € Ý+¨EÑ2Ô2�N€UˆEØˆ5•˜‘”¥¨¡¤Ñ0Ô0Ð0r‡   Ú
conditionsúT.Union[str, T.Iterable[str]]ú'T.Tuple[bool, T.List[str], T.List[str]]c                óÆ   — t          |t          ¦  «        r|g}g }g }|D ]=}t          | |¦  «        s|                     |¦  «         Œ(|                     |¦  «         Œ>| ||fS r–   )rÃ   r‹   rv   r_  )rU  rW  ÚfoundÚ	not_foundÚreqs        rˆ   rx   rx   ‚  s�   € Ý�*�cÑ"Ô"ð "Ø �\ˆ
Ø€EØ€IØð ð ˆÝ˜u cÑ*Ô*ð 	Ø×Ò˜SÑ!Ô!Ð!Ð!à�LŠL˜ÑÔÐÐØˆ=˜) UÐ*Ð*r‡   Ú	conditionÚminimumc           	     óÒ  — |                       d¦  «        rt          j        }| dd …         } nÕ|                       d¦  «        rdS |                       d¦  «        rdS |                       d¦  «        rt          j        }| dd …         } n{|                       d¦  «        rt          j        }| dd …         } nO|                       d	¦  «        rt          j        }| dd …         } n#|                       d
¦  «        rdS t          j        }|                      ¦   «         } t          j        d| ¦  «        r| dz  } t          j        d |t          |¦  «        t          | ¦  «        ¦  «        ¦  «        S )NrK  r   rL  FrM  rN  rO  r   r  rP  z	^\d+.\d+$z.0rŸ   )
r¿  r,  r4  r-  r“   r  rü   rø   Úcastr0   )r^  r_  rS  s      rˆ   rw   rw   ‘  sg  € Ø×Ò˜DÑ!Ô!ð Ý”ˆØ˜a˜b˜b”Mˆ	ˆ	Ø	×	Ò	˜dÑ	#Ô	#ð ØˆuØ	×	Ò	˜dÑ	#Ô	#ð ØˆuØ	×	Ò	˜dÑ	#Ô	#ð Ý”ˆØ˜a˜b˜b”Mˆ	ˆ	Ø	×	Ò	˜cÑ	"Ô	"ð 	Ý”ˆØ˜a˜b˜b”Mˆ	ˆ	Ø	×	Ò	˜cÑ	"Ô	"ð Ý”ˆØ˜a˜b˜b”Mˆ	ˆ	Ø	×	Ò	˜cÑ	"Ô	"ð Øˆuå”ˆð —’Ñ!Ô!€IÝ	„x�˜iÑ(Ô(ð Ø�TÑˆ	åŒ6�&˜%˜%¥¨Ñ 0Ô 0µ'¸)Ñ2DÔ2DÑEÔEÑFÔFÐFr‡   Útextc                ó  — t          j        dt           j        ¦  «        }|                     | ¦  «        }|r|                     d¦  «        S t          j        d¦  «        }|                     | ¦  «        }|r|                     d¦  «        S dS )NaS  
    (?<!                # Zero-width negative lookbehind assertion
        (
            \d          # One digit
            | \.        # Or one period
        )               # One occurrence
    )
    # Following pattern must not follow a digit or period
    (
        \d{1,2}         # One or two digits
        (
            \.\d+       # Period and one or more digits
        )+              # One or more occurrences
        (
            -[a-zA-Z0-9]+   # Hyphen and one or more alphanumeric
        )?              # Zero or one occurrence
    )                   # One occurrence
    r   z(\d{1,4}\.\d{1,4}\.?\d{0,4})zunknown version)r  r  ÚVERBOSEÚsearchrà   )rb  Úversion_regexrü   s      rˆ   ry   ry   ·  s‘   € õ ”Jð  õ" 
Œñ#ô €Mð$ × Ò  Ñ&Ô&€EØð Ø�{Š{˜1‰~Œ~Ðõ ”JÐ>Ñ?Ô?€MØ× Ò  Ñ&Ô&€EØð Ø�{Š{˜1‰~Œ~ÐàÐr‡   c                 óö  — t          ¦   «         rŒ	 t          j        ddgt          j        t          j        ¬¦  «        } |                      ¦   «         \  }}| j        dk    r+|                     ¦   «                              ¦   «         }d|z   S n# t          $ r Y nw xY wt          ¦   «         st          ¦   «         rdS t          j                             d¦  «        r!t          j                             d¦  «        sdS dS )	Nzdpkg-architecturez-qDEB_HOST_MULTIARCHr°   r   zlib/Úlibz
/usr/lib64Úlib64)rS   rË  ÚPopenÚPIPEÚDEVNULLÚcommunicater¦   rÆ   r“   Ú	ExceptionrU   rX   r¹   rº   ÚisdirÚislink)ÚpcrÞ  r³   Úarchpaths       rˆ   r5   r5   ã  sü   € Ý�„ð 
ð		ÝÔ!Ð#6Ð8NÐ"OÝ)3¬Ý)3Ô);ð=ñ =ô =ˆBð ŸšÑ(Ô(‰IˆT�1ØŒ} Ò!Ð!ØŸ;š;™=œ=×.Ò.Ñ0Ô0�Ø Ñ(Ð(ð "øõ ð 	ð 	ð 	ØˆDð	øøøå�|„|ð •w‘y”yð ØˆuÝ	„w‡}‚}�\Ñ"Ô"ð ­2¬7¯>ª>¸,Ñ+GÔ+Gð ØˆwØˆ5s   �A9B Â
BÂBc                 ó&   — t          ¦   «         rdS dS )Nrh  Úlibexec©rV   r†   r‡   rˆ   r6   r6   ö  s   € Ý�z„zð Øˆuàˆ9r‡   c                 óF   — t          ¦   «         rdS t          ¦   «         rdS dS )Nzc:/z/boot/system/non-packagedz
/usr/local)r_   rV   r†   r‡   rˆ   r7   r7   ý  s*   € Ý�|„|ð ØˆuÝ�z„zð +Ø*Ð*Øˆ<r‡   c                 ó&   — t          ¦   «         rdS dS )NÚdataÚshareru  r†   r‡   rˆ   r8   r8     s   € Ý�z„zð ØˆvØˆ7r‡   c                 ó&   — t          ¦   «         rdS dS )Nzdevelop/headersÚincluderu  r†   r‡   rˆ   r9   r9     s   € Ý�z„zð !Ø Ð Øˆ9r‡   c                 ó&   — t          ¦   «         rdS dS )Nzdocumentation/infoz
share/inforu  r†   r‡   rˆ   r:   r:     s   € Ý�z„zð $Ø#Ð#Øˆ<r‡   c                 ó&   — t          ¦   «         rdS dS )Nzdata/localezshare/localeru  r†   r‡   rˆ   r;   r;     s   € Ý�z„zð Øˆ}Øˆ>r‡   c                 ó&   — t          ¦   «         rdS dS )Nzdocumentation/manz	share/manru  r†   r‡   rˆ   r<   r<     s   € Ý�z„zð #Ø"Ð"Øˆ;r‡   c                 ó&   — t          ¦   «         rdS dS )NÚbinÚsbinru  r†   r‡   rˆ   r=   r=   #  s   € Ý�z„zð ØˆuØˆ6r‡   c                 ó&   — t          ¦   «         rdS dS )NÚsettingsÚetcru  r†   r‡   rˆ   r>   r>   )  s   € Ý�z„zð ØˆzØˆ5r‡   ú/\rú  Úsepc                ó   — |D ]	}|| v r dS Œ
dS )z@Checks if any of the specified @sep path separators are in @nameTFr†   )rú  r†  Úeachs      rˆ   rN   rN   /  s+   € àð ð ˆØ�4ˆ<ˆ<Ø�4�4ð àˆ5r‡   z 	
ú[z"]Úargc                ó¨   — | rt          | ¦  «        s| S d}d}| D ])}|dk    r|dz  }Œ|dk    r|dz  dz   }||dz  |z   z  }d}Œ*||dz  dz  dz   z  }|S )Nú"r   ú\r   r   )Ú_find_unsafe_char)rŠ  ÚresultÚnum_backslashesÚcs       rˆ   ri   ri   @  s    € Øð 	Õ(¨Ñ-Ô-ð 	ØˆJàˆØˆØð 		$ð 		$ˆAØ�DŠyˆyØ 1Ñ$��à˜’8�8à&5¸Ñ&9¸AÑ&=�Oà˜/¨DÑ0°1Ñ4Ñ4�Ø"#��ð 	�? QÑ&¨$Ñ.°Ñ4Ñ4ˆØˆr‡   c                ó4  — g }d}d}d}d}| D ]q}|dk    r|dz  }Œ|dk    r|dz  s||dz  dz  z  }|dz  }| }nB|t           v r |s|s|r|                     |¦  «         d}d}n|dk    r|dz
  dz  }||dz  |z   z  }d}Œr|s|r|                     |¦  «         |S )Nr�   r   Fr�  r   rŒ  r   )Ú_whitespacer_  )rš   r�  rŠ  r�  Ú
num_quotesÚ	in_quotesr‘  s          rˆ   rp   rp   V  s  € ØˆØˆØˆØˆ
Øˆ	Øð 	$ð 	$ˆAØ�DŠyˆyØ 1Ñ$��à˜’8�8 O°aÑ$7�8à˜O¨qÑ0°DÑ8Ñ8�CØ !‘O�JØ$- �I�IØ�+Ð%Ð%¨iÐ%Øð '˜jð 'àŸš cÑ*Ô*Ð*Ø ˜Ø%&˜
øà˜C’x�xà+:¸QÑ+>À1Ñ*D˜à˜?¨TÑ1°AÑ5Ñ5�Cà"#��àð 	�*ð 	Ø�MŠM˜#ÑÔÐàˆr‡   c                ó*   — t          j        | ¦  «        S r–   )ÚshlexÚquote)rŠ  s    rˆ   ri   ri   y  ó   € ÝŒ{˜3ÑÔÐr‡   c                ó*   — t          j        | ¦  «        S r–   )r—  r+  )rš   s    rˆ   rp   rp   |  r™  r‡   ÚargsúT.Iterable[str]c                ó@   — d                      d„ | D ¦   «         ¦  «        S )Nú c                ó,   — g | ]}t          |¦  «        ‘ŒS r†   )ri   )r  rï   s     rˆ   r  zjoin_args.<locals>.<listcomp>�  s   € Ð0Ð0Ð0 a•Y˜q‘\”\Ð0Ð0Ð0r‡   )r#  )r›  s    rˆ   rb   rb   €  s#   € Ø�8Š8Ð0Ð0¨4Ð0Ñ0Ô0Ñ1Ô1Ð1r‡   ÚregexúT.Pattern[str]ÚlineÚvariable_formatú#Literal['meson', 'cmake', 'cmake@']ÚconfdataúHT.Union[T.Dict[str, T.Tuple[str, T.Optional[str]]], 'ConfigurationData']úT.Tuple[str, T.Set[str]]c                ó†   ‡‡‡‡— t          ¦   «         Š|dk    rdŠdŠndŠdŠdˆˆˆˆfd
„}t          j        | ||¦  «        ‰fS )NÚcmakez${z\${ú@z\@rü   úT.Match[str]r¢   r‹   c                ó,  •— |                       d¦  «                             d¦  «        r3|                      d¦  «        |                      d¦  «        z
  }d|dz  z  S |                       d¦  «        ‰k    r‰
S |                       d¦  «        }d}|‰v rl‰                     |¦  «        \  }}t          |t          ¦  «        r|}nQt          |t          ¦  «        rt          |¦  «        }n,d|›d|›�}t          |¦  «        ‚‰	 	                    |¦  «         |S )Nr   r�  r   r   r�   zTried to replace variable z2 value with something other than a string or int: )
rà   r¸   ÚendÚstartrð  rÃ   r‹   ré   r   Úadd)rü   Únum_escapesÚvarnameÚvar_strÚvarr³   rŠ   Úbackslash_tagr¥  Úmissing_variablesÚ	start_tags          €€€€rˆ   Úvariable_replacez(do_replacement.<locals>.variable_replace�  s&  ø€ à�;Š;�q‰>Œ>×"Ò" 4Ñ(Ô(ð 	ØŸ)š) A™,œ,¨¯ª°Q©¬Ñ7ˆKØ˜;¨!Ñ+Ñ,Ð,à�[Š[˜‰^Œ^˜}Ò,Ð,ØÐð —k’k !‘n”nˆGØˆGØ˜(Ð"Ð"Ø!Ÿš gÑ.Ô.‘��QÝ˜c¥3Ñ'Ô'ð .Ø!�G�GÝ ¥SÑ)Ô)ð .Ý! #™hœh�G�GðK°wð Kð KØCFðKð K�Cå(¨Ñ-Ô-Ð-à!×%Ò% gÑ.Ô.Ð.ØˆNr‡   )rü   r«  r¢   r‹   )Úsetr  Úsub)r   r¢  r£  r¥  r·  r´  rµ  r¶  s      ` @@@rˆ   rC   rC   „  s}   øøøø€ õ ™œÐØ˜'Ò!Ð!Øˆ	Øˆˆàˆ	Øˆðð ð ð ð ð ð ð ð õ2 Œ6�%Ð)¨4Ñ0Ô0Ð2CÐCÐCr‡   ú'ConfigurationData'c                óL  — dd„}|                      ¦   «         }|dk    r7t          |¦  «        dk    r$t          d	|                     ¦   «         z  ¦  «        ‚|d
         }	 |                     |¦  «        \  }}n# t
          $ r d|z  cY S w xY wt          |t          ¦  «        r|rd|z  S d|z  S t          |t          ¦  «        rd||fz  S t          |t          ¦  «        r5|dk    r|}	n |||¦  «        }	d|› d|	› d�}	t          | |	||¦  «        \  }	}
|	S t          d|z  ¦  «        ‚)Nr¢  r‹   r¥  rº  r¢   c                óö   — |                       ¦   «         }g }|dd …         D ]D}	 |                     |¦  «        \  }}|t          |¦  «        gz  }Œ/# t          $ r	 ||gz  }Y ŒAw xY wd                     |¦  «        S )Nr   rž  )r+  rð  r‹   rñ  r#  )r¢  r¥  ÚarrÚdefine_valueÚtokenÚvÚdescs          rˆ   Úget_cmake_definez#do_define.<locals>.get_cmake_define¬  s–   € Ø�jŠj‰lŒlˆØˆØ˜˜˜”Wð 	(ð 	(ˆEð(Ø$ŸLšL¨Ñ/Ô/‘	��DØ¥ Q¡¤ Ñ(��øÝð (ð (ð (Ø  Ñ'���ð(øøøà�xŠx˜Ñ%Ô%Ð%s   ¤+AÁA#Á"A#Úmesonr   z4#mesondefine does not contain exactly two tokens: %sr   z/* #undef %s */
z#define %s
z
#undef %s
z#define %s %d
z#define rž  ú
z.#mesondefine argument "%s" is of unknown type.)r¢  r‹   r¥  rº  r¢   r‹   )r+  rú   r   r“   rð  rñ  rÃ   rŸ   ré   r‹   rC   )r   r¢  r¥  r£  rÂ  r½  r±  rÀ  rÁ  r�  Úmissing_variables              rˆ   Ú	do_definerÆ  ª  s†  € ð	&ð 	&ð 	&ð 	&ð �*Š*‰,Œ,€CØ˜'Ò!Ð!¥c¨#¡h¤h°!¢m mÝÐSÐVZ×V`ÒV`ÑVbÔVbÑbÑcÔcÐcà�!Œf€Gð-Ø—L’L Ñ)Ô)‰	ˆˆDˆDøÝð -ð -ð -Ø" WÑ,Ð,Ð,Ð,ð-øøøå�!•TÑÔð YØð 	+Ø! GÑ+Ð+à  7Ñ*Ð*Ý	�A•sÑ	Ô	ð YØ  G¨Q <Ñ/Ð/Ý	�A•sÑ	Ô	ð 	YØ˜gÒ%Ð%ØˆFˆFà%Ð% d¨HÑ5Ô5ˆFØ0˜GÐ0Ð0 fÐ0Ð0Ð0ˆÝ%3°E¸6À?ÐT\Ñ%]Ô%]Ñ"ˆÐ!ØˆåÐMÐPWÑWÑXÔXÐXs   ÁA8 Á8B
Â	B
rÃ  c                ó`   — | dv rt          j        d¦  «        }nt          j        d¦  «        }|S )N>   úcmake@rÃ  z((?:\\\\)+(?=\\?@)|\\@|@([-a-zA-Z0-9_]+)@z-(?:\\\\)+(?=\\?\$)|\\\${|\${([-a-zA-Z0-9_]+)})r  r  )r£  r   s     rˆ   rK   rK   Ò  s7   € ð Ð-Ð-Ð-Ý”
ÐFÑGÔGˆˆå”
ÐKÑLÔLˆØ€Lr‡   úutf-8rx  ÚlistÚencodingú&T.Tuple[T.List[str], T.Set[str], bool]c           
     óâ  — dd„}t          |¦  «        }d}|dk    rd	}g }t          ¦   «         }	|                     ¦   «          }
|D ]¦}|                     |¦  «        rd
}
t	          ||||¦  «        }ne |||¦  «        s+t          d| › d|                     ¦   «         › d|› d�¦  «        ‚t          ||||¦  «        \  }}|	                     |¦  «         |rd
}
| 	                    |¦  «         Œ§||	|
fS )Nr¢  r‹   r£  r¢   rŸ   c                ó,   — |dk    rd| v rdS nd| v rdS dS )NrÃ  ú#cmakedefineFú#mesondefineTr†   )r¢  r£  s     rˆ   Úline_is_validz"do_conf_str.<locals>.line_is_validÞ  s9   € Ø˜gÒ%Ð%Ø Ð%Ð%Ø�uð &ð  Ð%Ð%Ø�uØˆtr‡   rÐ  rÃ  rÏ  FzFormat error in z: saw "z" when format set to "rŒ  )r¢  r‹   r£  r‹   r¢   rŸ   )
rK   r¸  Úkeysr¿  rÆ  r   r“   rC   Úupdater_  )rU  rx  r¥  r£  rË  rÑ  r   Úsearch_tokenr�  rµ  Úconfdata_uselessr¢  Úmissings                rˆ   rB   rB   Û  s?  € ðð ð ð õ ˜Ñ/Ô/€Eà!€LØ˜'Ò!Ð!Ø%ˆà€FÝ™œÐð $Ÿ=š=™?œ?Ð*ÐØð ð ˆØ�?Š?˜<Ñ(Ô(ð 		)Ø$ÐÝ˜U D¨(°OÑDÔDˆDˆDà �=  Ñ7Ô7ð |Ý$Ð%z¸Ð%zÐ%zÀDÇJÂJÁLÄLÐ%zÐ%zÐhwÐ%zÐ%zÐ%zÑ{Ô{Ð{Ý*¨5°$¸ÈÑRÔR‰MˆD�'Ø×$Ò$ WÑ-Ô-Ð-Øð )Ø#(Ð Ø�Š�dÑÔÐÐàÐ$Ð&6Ð6Ð6r‡   ÚdstúT.Tuple[T.Set[str], bool]c                ó,  — 	 t          | |d¬¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   n'# t          $ r}t          d| › d|›�¦  «        ‚d }~ww xY wt	          | ||||¦  «        \  }}	}
|dz   }	 t          |d|d¬¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   n'# t          $ r}t          d|› d|›�¦  «        ‚d }~ww xY wt          j        | |¦  «         t          ||¦  «         |	|
fS )Nr�   )rË  ÚnewlinezCould not read input file rÓ  ú~rî   zCould not write output file )	ÚopenÚ	readlinesrn  r   rB   Ú
writelinesr  Úcopymoderl   )rU  r×  r¥  r£  rË  Úfrx  r©   r�  rµ  rÕ  Údst_tmps               rˆ   rA   rA     sÝ  € ðHÝ�# °"Ð5Ñ5Ô5ð 	!¸Ø—;’;‘=”=ˆDð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!øøåð Hð Hð HÝÐF¸#ÐFÐFÀÐFÐFÑGÔGÐGøøøøðHøøøõ 5@ÀÀTÈ8ÐUdÐfnÑ4oÔ4oÑ1€VÐÐ 0Ø�C‰i€GðJÝ�'˜3¨¸2Ð>Ñ>Ô>ð 	!À!Ø�LŠL˜Ñ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!øøåð Jð Jð JÝÐH¸CÐHÐHÀ1ÐHÐHÑIÔIÐIøøøøðJøøøå
„O�C˜Ñ!Ô!Ð!Ý˜˜gÑ&Ô&Ð&ØÐ.Ð.Ð.sn   ‚A ”5©A µ9¹A ¼9½A Á
A%ÁA Á A%ÂC ÂB:Â.C Â:B>Â>C ÃB>ÃC Ã
C*ÃC%Ã%C*zm/*
 * Autogenerated by the Meson build system.
 * Do not edit, your changes will be lost.
 */

#pragma once

zV; Autogenerated by the Meson build system.
; Do not edit, your changes will be lost.

Ú	ofilenameÚcdataÚoutput_formatúT.Literal['c', 'nasm']c           
     ó@  — |dk    r
t           }d}n	t          }d}| dz   }t          |dd¬¦  «        5 }|                     |¦  «         t	          |                     ¦   «         ¦  «        D �]}|                     |¦  «        \  }}	|	rU|dk    r|                     d|	z  ¦  «         n6|d	k    r0|	                     d
¦  «        D ]}
|                     d|
z  ¦  «         Œt          |t          ¦  «        r:|r|                     |› d|› d�¦  «         Œ¥|                     |› d|› d�¦  «         ŒÁt          |t          t          f¦  «        r|                     |› d|› d|› d�¦  «         Œüt          d|z   ¦  «        ‚	 d d d ¦  «         n# 1 swxY w Y   t          | |¦  «         d S )Nr‘  ú#ú%rÛ  rî   rÉ  ©rË  z	/* %s */
ÚnasmrÄ  z; %s
zdefine z

zundef rž  z/Unknown data type in configuration file entry: )ÚCONF_C_PRELUDEÚCONF_NASM_PRELUDErÜ  ÚwriteÚsortedrÒ  rð  r+  rÃ   rŸ   ré   r‹   r   rl   )râ  rã  rä  ÚpreludeÚprefixÚofilename_tmpÚofileÚkrÀ  rÁ  r¢  s              rˆ   r%   r%   #  s4  € Ø˜ÒÐÝ ˆØˆˆå#ˆØˆà ‘O€MÝ	ˆm˜S¨7Ð	3Ñ	3Ô	3ð \°uØ�Š�GÑÔÐÝ˜Ÿ
š
™œÑ%Ô%ð 	\ñ 	\ˆAØŸ	š	 !™œ‰IˆQ�Øð 5Ø  CÒ'Ð'Ø—K’K ¨tÑ 3Ñ4Ô4Ð4Ð4Ø" fÒ,Ð,Ø $§
¢
¨4Ñ 0Ô 0ð 5ð 5˜ØŸš H¨t¡OÑ4Ô4Ð4Ð4Ý˜!�TÑ"Ô"ð \Øð :Ø—K’K 6Ð 9Ð 9°!Ð 9Ð 9Ð 9Ñ:Ô:Ð:Ð:à—K’K 6Ð 8Ð 8°Ð 8Ð 8Ð 8Ñ9Ô9Ð9Ð9Ý˜A¥¥S˜zÑ*Ô*ð \Ø—’˜vÐ9Ð9¨aÐ9Ð9°!Ð9Ð9Ð9Ñ:Ô:Ð:Ð:å$Ð%VÐYZÑ%ZÑ[Ô[Ð[ð!	\ð\ð \ð \ñ \ô \ð \ð \ð \ð \ð \ð \øøøð \ð \ð \ð \õ& ˜ MÑ2Ô2Ð2Ð2Ð2s   ±EFÆFÆ
Frá  c                ó€  — d}	 t          | d¦  «        5 }t          |d¦  «        5 }|                     ¦   «         |                     ¦   «         k    rd}d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   n# t          $ r Y nw xY w|rt          j        || ¦  «         d S t          j        |¦  «         d S )NTÚrbF)rÜ  ÚreadrÍ  r¹   rÝ  Úunlink)r×  rá  Ú	differentÚf1Úf2s        rˆ   rl   rl   B  sH  € ð €IðÝ�#�t‰_Œ_ð 	" ¥D¨°$Ñ$7Ô$7ð 	"¸2Ø�wŠw‰yŒy˜BŸGšG™IœIÒ%Ð%Ø!�	ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"øøõ ð ð ð Øˆðøøøàð Ý
Œ
�7˜CÑ Ô Ð Ð Ð å
Œ	�'ÑÔÐÐÐsW   „B ”A5¥-AÁA5ÁA"	Á"A5Á%A"	Á&A5Á)B Á5A9Á9B Á<A9Á=B Â
BÂBTÚitemÚflattenúT.List[T.Any]c                óÆ   — t          | t          ¦  «        s| gS g }| D ]C}|r*t          |t          ¦  «        r|t          |d¬¦  «        z  }Œ.|                     |¦  «         ŒD|S )z¨
    Returns a list with all args embedded in a list if they are not a list.
    This function preserves order.
    @flatten: Convert lists of lists to a flat list
    T©rü  )rÃ   rÊ  rc   r_  )rû  rü  r�  Úis       rˆ   rc   rc   R  s}   € õ �d�DÑ!Ô!ð ØˆvˆØ€FØð ð ˆØð 	•z !¥TÑ*Ô*ð 	Ø•g˜a¨Ð.Ñ.Ô.Ñ.ˆFˆFà�MŠM˜!ÑÔÐÐØ€Mr‡   Údict_objectúT.Dict[_T, _U]ÚkeyÚpopú
T.List[_U]c                óZ   — | j         }|r| j        }t           ||¦  «        pg d¬¦  «        S )zH
    Extracts all values from given dict_object and listifies them.
    Trÿ  )rð  r  rc   )r  r  r  Úfetchs       rˆ   rF   rF   c  s:   € ð #.¤/€EØ
ð  Ø”ˆå�5�5˜‘:”:Ð# ¨TÐ2Ñ2Ô2Ð2r‡   ú'T.Union[_T, T.Sequence[_T]]'Útypesú*'T.Union[T.Type[_T], T.Tuple[T.Type[_T]]]'ú
T.List[_T]c           	     ój  — t          | |¦  «        rt          j        d| g¦  «        } t          | t          ¦  «        s0t	          d                     |t          | ¦  «        ¦  «        ¦  «        ‚| D ]D}|�@t          ||¦  «        s0t	          d                     |t          |¦  «        ¦  «        ¦  «        ‚ŒE| S )zi
    Ensure that type(@item) is one of @types or a
    list of items all of which are of type @types
    r  z,Item must be a list or one of {!r}, not {!r}Nz'List item must be one of {!r}, not {!r})rÃ   rø   ra  rÊ  r   rå   Útype)rû  r	  r   s      rˆ   rt   rt   n  sº   € õ �$˜ÑÔð ,ÝŒv�l T FÑ+Ô+ˆÝ�d�DÑ!Ô!ð gÝÐK×RÒRÐSXÕZ^Ð_cÑZdÔZdÑeÔeÑfÔfÐfØð cð cˆØˆ=¥¨A¨uÑ!5Ô!5ˆ=Ý Ð!J×!QÒ!QÐRWÕY]Ð^_ÑY`ÔY`Ñ!aÔ!aÑbÔbÐbøØ€Kr‡   ú!T.Union[T.Any, T.Sequence[T.Any]]c                ó,   — t          | t          ¦  «        S r–   )rt   r‹   )rû  s    rˆ   rq   rq   ~  s   € Ý˜�cÑ"Ô"Ð"r‡   úT.Optional[T.List[str]]c                ó®  — g }| D ]Ï}|                      d¦  «        s|                     |¦  «         Œ-|dd …         }	 t          |d¬¦  «        5 }|                     ¦   «                              ¦   «         }d d d ¦  «         n# 1 swxY w Y   ||z  }Œ�# t
          $ r6}t          j        d|d¦  «         t          j        |¦  «         Y d }~ d S d }~ww xY w|S )Nrª  r   rÉ  ré  z!Expanding command line arguments:z	not found)	r¿  r_  rÜ  rö  r+  rn  r   ÚerrorÚ	exception)r›  Úexpended_argsrŠ  Ú	args_filerà  Úextended_argsr©   s          rˆ   rE   rE   ‚  s6  € Ø€MØð ð ˆØ�~Š~˜cÑ"Ô"ð 	Ø× Ò  Ñ%Ô%Ð%Øà˜˜˜”Gˆ	ð	Ý�i¨'Ð2Ñ2Ô2ð 1°aØ !§¢¡¤§¢Ñ 0Ô 0�ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1à˜]Ñ*ˆMˆMøÝð 	ð 	ð 	ÝŒJÐ:¸YÈÑTÔTÐTÝŒN˜1ÑÔÐØ�4�4�4�4�4�4øøøøð	øøøð Ðs;   ½BÁ'BÁ5BÂB	ÂBÂB	Â	BÂ
CÂ*CÃCÚpredúT.Callable[[_T], object]ÚiterableúT.Iterable[_T]ú'T.Tuple[T.Iterator[_T], T.Iterator[_T]]c                ó`   ‡ — t          |¦  «        \  }}ˆ fd„|D ¦   «         ˆ fd„|D ¦   «         fS )zÁUse a predicate to partition entries into false entries and true
    entries.

    >>> x, y = partition(is_odd, range(10))
    >>> (list(x), list(y))
    ([0, 2, 4, 6, 8], [1, 3, 5, 7, 9])
    c              3  ó2   •K  — | ]} ‰|¦  «        °|V — Œd S r–   r†   ©r  rù   r  s     €rˆ   ú	<genexpr>zpartition.<locals>.<genexpr>ž  s0   øè è € Ð)Ð)�!   a¡¤Ð)ˆAÐ)Ð)Ð)Ð)Ð)Ð)r‡   c              3  ó2   •K  — | ]} ‰|¦  «        ¯|V — Œd S r–   r†   r  s     €rˆ   r  zpartition.<locals>.<genexpr>ž  s0   øè è € Ð+EÐ+E°!¸T¸TÀ!¹W¼WÐ+E¨AÐ+EÐ+EÐ+EÐ+EÐ+EÐ+Er‡   r   )r  r  Út1Út2s   `   rˆ   rd   rd   •  sH   ø€ õ �‰]Œ]�F€BˆØ)Ð)Ð)Ð)�rÐ)Ñ)Ô)Ð+EÐ+EÐ+EÐ+E°rÐ+EÑ+EÔ+EÐEÐEr‡   rí  r�   Ústdinú"T.Union[T.TextIO, T.BinaryIO, int]r±   r²   ú*T.Tuple['subprocess.Popen[str]', str, str]c           
     óæ  — dd l }|                     ¦   «         }|�t          j        }	 t          j        j        r|                     ¦   «         dk    rt          | f||||dœ|¤Ž\  }}	}
n1t          j	        | fd|d|||dœ|¤Ž}| 
                    |¦  «        \  }	}
nA# t          $ r4}|j        t          j        k    rt          d| d         ›d�¦  «        ‚‚ d }~ww xY wt          j        ¦   «          ||	|
fS )	Nr   rË   )rí  r#  r±   r²   TF)Úuniversal_newlinesrË  Ú	close_fdsr#  r±   r²   zFailed running ze, binary or interpreter not executable.
Possibly wrong architecture or the executable bit is not set.)rÍ   rÎ   rË  rk  rÓ   r±   rË  rÏ   ÚPopen_safe_legacyrj  rm  rî  ÚerrnoÚENOEXECr   r   Úsetup_console)r›  rí  r#  r±   r²   r    rÍ   rË  r§   r¨   r©   Úoserrs               rˆ   rg   rg   ¡  sL  € ð
 €M€M€MØ×*Ò*Ñ,Ô,€Hð ÐÝ”ˆðÝŒzÔ"ð 	( h§n¢nÑ&6Ô&6¸'Ò&AÐ&AÝ'¨Ðo°EÀÈvÐ^dÐoÐoÐhnÐoÐo‰GˆAˆq�!�!åÔ  ð V¸$ÈÐ]bØ',°VÀFðVð VØNTðVð VˆAà—=’= Ñ'Ô'‰DˆAˆqøøÝð ð ð ØŒ;�%œ-Ò'Ð'Ý ð "a°4¸´7ð "að "að "añ bô bð bàøøøøð	øøøõ 	ÔÑÔÐØˆa�ˆ7€Ns   ¨A1B Â
CÂ$/CÃCc           	     ó–  — t          j        | fdd|||dœ|¤Ž}d }|�|                     d¦  «        }|                     |¦  «        \  }}	|�vt          j        j        �;|                     t          j        j        d¬¦  «                             dd¦  «        }n*|                     d¬¦  «                             dd¦  «        }|	�‚t          j	        �Lt          j	        j        r;|	                     t          j	        j        d¬¦  «                             dd¦  «        }	n*|	                     d¬¦  «                             dd¦  «        }	|||	fS )	NF)r'  r(  r#  r±   r²   rÉ  rÝ  )rË  Úerrorsz
rÄ  )r/  )
rË  rj  rÄ   rm  rÓ   r±   rË  rÆ   rÝ  r²   )
r›  rí  r#  r±   r²   r    r§   Úinput_r¨   r©   s
             rˆ   r)  r)  Á  s?  € õ
 	Ô˜ð 	N°%À5Ø$¨V¸Fð	Nð 	NØFLð	Nð 	N€Aà€FØÐØ—’˜gÑ&Ô&ˆØ�=Š=˜Ñ Ô �D€A€qØ€}ÝŒ:ÔÐ*Ø—’¥#¤*Ô"5¸i�ÑHÔH×PÒPÐQWÐY]Ñ^Ô^ˆAˆAà—’ 	�Ñ*Ô*×2Ò2°6¸4Ñ@Ô@ˆAØ€}ÝŒ:Ð!¥c¤jÔ&9Ð!Ø—’¥#¤*Ô"5¸i�ÑHÔH×PÒPÐQWÐY]Ñ^Ô^ˆAˆAà—’ 	�Ñ*Ô*×2Ò2°6¸4Ñ@Ô@ˆAØˆa�ˆ7€Nr‡   Ú	regexiterÚiniterc                ó¤   — | D ]L}|D ]G}t          |t          ¦  «        sŒt          j        ||¦  «        }|r|                     ¦   «         c c S ŒHŒMdS )z¯
    Takes each regular expression in @regexiter and tries to search for it in
    every item in @initer. If there is a match, returns that match.
    Else returns False.
    N)rÃ   r‹   r  re  rà   )r1  r2  r   Úiirü   s        rˆ   ra   ra   Ù  s{   € ð ð %ð %ˆØð 	%ð 	%ˆBÝ˜b¥#Ñ&Ô&ð ØÝ”I˜e RÑ(Ô(ˆEØð %Ø—{’{‘}”}Ð$Ð$Ð$Ð$Ð$ð%ð		%ð ˆ4r‡   ÚcommandÚvaluesú&T.Dict[str, T.Union[str, T.List[str]]]c           
     ó¬  — g d¢}ddg}d|vr&t          || ¦  «        }|rt          d|›d�¦  «        ‚nÞt          |d         ¦  «        dk    r-t          |dd …         | ¦  «        }|rt          d|›d�¦  «        ‚| D ]•}t          |t          ¦  «        sŒt          j        |d	         |¦  «        }|r`|                     ¦   «         |vrJd
}t          |                     |                     ¦   «         t          |d         ¦  «        ¦  «        ¦  «        ‚Œ–d|vr't          || ¦  «        }|rt          d|›d�¦  «        ‚d S | D ]•}t          |t          ¦  «        sŒt          j        |d	         |¦  «        }|r`|                     ¦   «         |vrJd}t          |                     |                     ¦   «         t          |d         ¦  «        ¦  «        ¦  «        ‚Œ–d S )N)z@INPUT([0-9]+)?@ú@PLAINNAME@ú
@BASENAME@z@OUTPUT([0-9]+)?@ú@OUTDIR@ú@INPUT@zCommand cannot have z%, since no input files were specifiedr   z' when there is more than one input filer   z9Command cannot have {!r} since there are only {!r} inputsú@OUTPUT@z since there are no outputsz:Command cannot have {!r} since there are only {!r} outputs)	ra   r   rú   rÃ   r‹   r  re  rà   rå   )r5  r6  ÚinregexÚoutregexrü   rˆ  Úmatch2r®   s           rˆ   Ú_substitute_values_check_errorsrA  é  s6  € à?Ð?Ð?€GØ# ZÐ0€HØ˜ÐÐå! '¨7Ñ3Ô3ˆØð 	hÝ Ð!f¸Ð!fÐ!fÐ!fÑgÔgÐgð	hõ ˆv�iÔ Ñ!Ô! AÒ%Ð%å% g¨a¨b¨b¤k°7Ñ;Ô;ˆEØð AÝ$ð &@¸Eð &@ð &@ð &@ñ Aô Að Að ð 	Wð 	WˆDÝ˜d¥CÑ(Ô(ð ØÝ”Y˜w qœz¨4Ñ0Ô0ˆFØð W˜&Ÿ,š,™.œ.°Ð6Ð6ØO�Ý$ Q§X¢X¨f¯lªl©n¬n½cÀ&ÈÔBSÑ>TÔ>TÑ%UÔ%UÑVÔVÐVøØ˜ÐÐå! (¨GÑ4Ô4ˆØð 	^Ý Ð!\¸Ð!\Ð!\Ð!\Ñ]Ô]Ð]ð	^ð 	^ð ð 	Xð 	XˆDÝ˜d¥CÑ(Ô(ð ØÝ”Y˜x¨œ{¨DÑ1Ô1ˆFØð X˜&Ÿ,š,™.œ.°Ð6Ð6ØP�Ý$ Q§X¢X¨f¯lªl©n¬n½cÀ&ÈÔBTÑ>UÔ>UÑ%VÔ%VÑWÔWÐWøð	Xð 	Xr‡   c                óz  ‡— dˆfd„}t          | ‰¦  «         g }d„ ‰D ¦   «         }|r't          j        d                     |¦  «        ¦  «        nd}| D �]f}d}t	          |t
          ¦  «        s|                     |¦  «         �nd	|v rg‰d	         }|d	k    r||z  }�nt          |¦  «        d
k    r0|                     |                     d	|d         ¦  «        ¦  «         nÂt          d¦  «        ‚d|v rf‰d         }	|dk    r||	z  }n›t          |	¦  «        d
k    r0|                     |                     d|	d         ¦  «        ¦  «         nXt          d¦  «        ‚|‰v r*‰|         }
t	          |
t
          ¦  «        s
J d¦   «         ‚|
}n|r| 
                    ||¦  «        }n|}|�|                     |¦  «         �Œh|S )aü  
    Substitute the template strings in the @values dict into the list of
    strings @command and return a new list. For a full list of the templates,
    see get_filenames_templates_dict()

    If multiple inputs/outputs are given in the @values dictionary, we
    substitute @INPUT@ and @OUTPUT@ only if they are the entire string, not
    just a part of it, and in that case we substitute *all* of them.

    The typing of this function is difficult, as only @OUTPUT@ and @INPUT@ can
    be lists, everything else is a string. However, TypeDict cannot represent
    this, as you can have optional keys, but not extra keys. We end up just
    having to us asserts to convince type checkers that this is okay.

    https://github.com/python/mypy/issues/4617
    r®   r«  r¢   r‹   c                ó|   •— ‰|                       d¦  «                 }t          |t          ¦  «        s
J d¦   «         ‚|S )Nr   úfor mypy)rà   rÃ   r‹   )r®   rÀ  r6  s     €rˆ   rÝ  z"substitute_values.<locals>.replace#  s:   ø€ Ø�1—7’7˜1‘:”:ÔˆÝ˜!�SÑ!Ô!Ð-Ð- :Ñ-Ô-Ð-Øˆr‡   c                ó>   — g | ]}|d v¯t          j        |¦  «        ‘ŒS ))r<  r=  )r  Úescape)r  r  s     rˆ   r  z%substitute_values.<locals>.<listcomp>-  s+   € ÐVÐVÐV #°3Ð>UÐ3UÐ3U�rŒy˜‰~Œ~Ð3UÐ3UÐ3Ur‡   ú|Nr<  r   r   zFCommand has '@INPUT@' as part of a string and more than one input filer=  zHCommand has '@OUTPUT@' as part of a string and more than one output filerD  )r®   r«  r¢   r‹   )rA  r  r  r#  rÃ   r‹   r_  rú   rÝ  r   r¹  )r5  r6  rÝ  ÚoutcmdÚrx_keysÚvalue_rxÚvvÚmoreÚinputsÚoutputsr¨   s    `         rˆ   rr   rr     s   ø€ ð$ð ð ð ð ð õ $ G¨VÑ4Ô4Ð4ð €FØVÐV¨ÐVÑVÔV€GØ07ÐA�rŒz˜#Ÿ(š( 7Ñ+Ô+Ñ,Ô,Ð,¸T€HØð $ ñ $ ˆØ $ˆÝ˜"�cÑ"Ô"ð 	Ø�MŠM˜"ÑÔÐÑØ˜"ˆ_ˆ_Ø˜IÔ&ˆFØ�YŠˆØ˜&Ñ �‘Ý�V‘” Ò!Ð!Ø—’˜bŸjšj¨°F¸1´IÑ>Ô>Ñ?Ô?Ð?Ð?å$ð &Kñ Lô Lð Là˜2ÐÐØ˜ZÔ(ˆGØ�ZÒÐØ˜'Ñ!��Ý�W‘” Ò"Ð"Ø—’˜bŸjšj¨°W¸Q´ZÑ@Ô@ÑAÔAÐAÐAå$ð &Lñ Mô Mð Mð
 �6ˆ\ˆ\Ø�r”
ˆAÝ˜a¥Ñ%Ô%Ð1Ð1 zÑ1Ô1Ð1ØˆDˆDàð 	Ø—<’< ¨Ñ,Ô,ˆDˆDàˆDàÐØ�MŠM˜$ÑÔÐùà€Mr‡   rM  rN  c                óÚ  — i }| rˆ| |d<   t          | ¦  «        D ]\  }}||d|› d�<   Œt          | ¦  «        dk    rRt          j                             | d         ¦  «        x|d<   }t          j                             |¦  «        d         |d<   |r\||d<   t          |¦  «        D ]\  }}||d	|› d�<   Œt          j                             |d         ¦  «        |d
<   |d
         dk    rd|d
<   |S )a   
    Create a dictionary with template strings as keys and values as values for
    the following templates:

    @INPUT@  - the full path to one or more input files, from @inputs
    @OUTPUT@ - the full path to one or more output files, from @outputs
    @OUTDIR@ - the full path to the directory containing the output files

    If there is only one input file, the following keys are also created:

    @PLAINNAME@ - the filename of the input file
    @BASENAME@ - the filename of the input file with the extension removed

    If there is more than one input file, the following keys are also created:

    @INPUT0@, @INPUT1@, ... one for each input file

    If there is more than one output file, the following keys are also created:

    @OUTPUT0@, @OUTPUT1@, ... one for each output file
    r<  z@INPUTrª  r   r   r9  r:  r=  z@OUTPUTr;  r�   r  )Ú	enumeraterú   r¹   rº   Úbasenamer:  Údirname)rM  rN  r6  r4  rK  Úplains         rˆ   rJ   rJ   X  s  € ð, €Fàð 	>à"ˆˆyÑÝ! &Ñ)Ô)ð 	(ð 	(‰HˆR�à%'ˆF�>˜B�>�>�>Ñ"Ð"Ýˆv‰;Œ;˜!ÒÐå,.¬G×,<Ò,<¸VÀA¼YÑ,GÔ,GÐGˆF�=Ñ! EÝ#%¤7×#3Ò#3°EÑ#:Ô#:¸1Ô#=ˆF�<Ñ Øð 	%à$ˆˆzÑÝ! 'Ñ*Ô*ð 	)ð 	)‰HˆR�Ø&(ˆF�?˜R�?�?�?Ñ#Ð#åœWŸ_š_¨W°Q¬ZÑ8Ô8ˆˆzÑà�*Ô Ò#Ð#Ø!$ˆF�:ÑØ€Mr‡   Útopdirc                óÜ  — t          j        | ¦  «        D ]Ö\  }}}t          j        |t          j        |¦  «        j        t          j        z  t          j        z  ¦  «         |D ]‡}t           j                             ||¦  «        }t           j         	                    |¦  «        rFt          j        |t          j        |¦  «        j        t          j        z  t          j        z  ¦  «         ŒˆŒ×d S r–   )
r¹   ÚwalkÚchmodrý   Úst_modeÚS_IWRITEÚS_IREADrº   r#  r"  )rT  Údr³   Úfilesr  Úfpaths         rˆ   Ú_make_tree_writabler^  ‡  sÉ   € õ ”w˜v‘”ð Wð W‰ˆˆ1ˆeÝ
Œ�•B”G˜A‘J”JÔ&­¬Ñ6½¼ÑEÑFÔFÐFØð 	Wð 	WˆEÝ”G—L’L  EÑ*Ô*ˆEÝŒw�~Š~˜eÑ$Ô$ð WÝ”˜¥¤¨¡¤Ô 6½¼Ñ FÍÌÑ UÑVÔVÐVøð	WðWð Wr‡   rà  c                óF  — g d¢}d}|D ]ƒ}	 |st          | ¦  «         d}n$# t          $ r t          j        |¦  «         Y Œ7w xY w	 t	          j        | ¦  «          d S # t          $ r Y  d S t          $ r t          j        |¦  «         Y Œ€w xY wt	          j        | ¦  «         d S )N©çš™™™™™¹?ra  çš™™™™™É?rb  rb  ç      à?rc  r   r   r   r   r   FT)r^  ÚPermissionErrorÚtimeÚsleepr  ÚrmtreerÍ  rî  )rà  ÚdelaysÚwritabler[  s       rˆ   r|   r|   ’  sí   € ð
 @Ð?Ð?€FØ€HØð ð ˆð	àð  Ý# AÑ&Ô&Ð&Ø�øøÝð 	ð 	ð 	ÝŒJ�q‰MŒMˆMØˆHð	øøøð	ÝŒM˜!ÑÔÐØˆFˆFøÝ ð 	ð 	ð 	ØˆFˆFˆFÝð 	ð 	ð 	ÝŒJ�q‰MŒMˆMˆMˆMð	øøøõ „M�!ÑÔÐÐÐs'   Œ  AÁ AÁAÁ
B
Á*B
Â	B
r]  c                óš  — t           j                             | ¦  «        rFt          j        | t          j        | ¦  «        j        t          j        z  t          j        z  ¦  «         g d¢}|D ]J}	 t          j        | ¦  «          dS # t          $ r Y  dS t          $ r t          j        |¦  «         Y ŒGw xY wt          j        | ¦  «         dS )z1Like windows_proof_rmtree, but for a single file.r`  N)r¹   rº   r"  rW  rý   rX  rY  rZ  r÷  rÍ  rî  re  rf  )r]  rh  r[  s      rˆ   r{   r{   ­  s×   € å	„w‡~‚~�eÑÔð OÝ
Œ��œ ™œÔ.µ´Ñ>ÅÄÑMÑNÔNÐNØ?Ð?Ð?€FØð ð ˆð	ÝŒI�eÑÔÐØˆFˆFøÝ ð 	ð 	ð 	ØˆFˆFˆFÝð 	ð 	ð 	ÝŒJ�q‰MŒMˆMˆMˆMð	øøøå„IˆeÑÔÐÐÐs   Á/BÂ
B4ÂB4Â3B4c                  ó0   ‡ — e Zd ZdZd
ˆ fd„Zdˆ fd	„Zˆ xZS )r/   zX
    Like TemporaryDirectory, but cleans things up using
    windows_proof_rmtree()
    Úexcr¡   rí  Útbr¢   rµ   c                óš   •— 	 t          ¦   «                              |||¦  «         d S # t          $ r t          | j        ¦  «         Y d S w xY wr–   )r‘   Ú__exit__rî  r|   rú  )r”   rl  rí  rm  r•   s       €rˆ   ro  z#TemporaryDirectoryWinProof.__exit__Ã  s^   ø€ ð	,Ý‰GŒG×Ò˜S %¨Ñ,Ô,Ð,Ð,Ð,øÝð 	,ð 	,ð 	,Ý  ¤Ñ+Ô+Ð+Ð+Ð+Ð+ð	,øøøs   ƒ#( ¨A
Á	A
c                ó”   •— 	 t          ¦   «                              ¦   «          d S # t          $ r t          | j        ¦  «         Y d S w xY wr–   )r‘   Úcleanuprî  r|   rú  )r”   r•   s    €rˆ   rq  z"TemporaryDirectoryWinProof.cleanupÉ  sV   ø€ ð	,Ý‰GŒG�OŠOÑÔÐÐÐøÝð 	,ð 	,ð 	,Ý  ¤Ñ+Ô+Ð+Ð+Ð+Ð+ð	,øøøs   ƒ % ¥AÁA)rl  r¡   rí  r¡   rm  r¡   r¢   rµ   r›  )r‚   rƒ   r„   r…   ro  rq  r˜   r™   s   @rˆ   r/   r/   ½  se   ø€ € € € € ðð ð
,ð ,ð ,ð ,ð ,ð ,ð,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,r‡   r/   r�   Ú
spdir_nameÚcurrent_dirr�  ú$T.Optional[T.Dict[str, T.List[str]]]úT.Dict[str, T.List[str]]c                óª  — |€i }t           j                             || ¦  «        }t           j                             |¦  «        s|S t	          t           j                             |d¦  «        ¦  «        D ]ß}t           j                             |¦  «        }|dk    rŒ(d}t           j                             |¦  «        rt          | ||¦  «         n\|                     d¦  «        rEt           j         	                    |¦  «        r&t           j         
                    |¦  «        d         }nd}|r&||v r||                              |¦  «         ŒÙ|g||<   Œà|S )NÚ*ÚpackagecacheTz.wrapr   F)r¹   rº   r#  Úexistsr}   rQ  ro  r?   r¸   r"  r:  r_  )rr  rs  r�  ÚspdirÚtrialrQ  Úappend_thiss          rˆ   r?   r?   Ð  sA  € à€~ØˆÝŒG�LŠL˜ jÑ1Ô1€EÝŒ7�>Š>˜%Ñ Ô ð ØˆÝ•b”g—l’l 5¨#Ñ.Ô.Ñ/Ô/ð +ð +ˆÝ”7×#Ò# EÑ*Ô*ˆØ�NÒ"Ð"ØØˆÝŒ7�=Š=˜ÑÔð 	 Ý˜z¨5°&Ñ9Ô9Ð9Ð9Ø�^Š^˜GÑ$Ô$ð 	 ­¬¯ª¸Ñ)>Ô)>ð 	 Ý”w×'Ò'¨Ñ1Ô1°!Ô4ˆHˆHàˆKØð 	+Ø˜6Ð!Ð!Ø�xÔ ×'Ò'¨Ñ.Ô.Ð.Ð.à$) 7��xÑ øØ€Mr‡   ÚsubstrÚstrlistc                ó   — |D ]	}| |v r dS Œ
dS )NTFr†   )r}  r~  rñ   s      rˆ   rs   rs   ê  s+   € Øð ð ˆØ�Qˆ;ˆ;Ø�4�4ð àˆ5r‡   c                  ó€   — e Zd ZdZd d!d„Zd"d
„Zd#d„Zd$d„Zd%d„Zd#d„Z	d&d„Z
d&d„Zd'd(d„Zd'd)d„Zd*d„Zd+d„Zd*d„ZdS ),r(   zUA set that preserves the order in which items are added, by first
    insertion.
    Nr  úT.Optional[T.Iterable[_T]]c                óh   — t          j        ¦   «         | _        |r|                      |¦  «         d S d S r–   )r  ÚOrderedDictÚ_OrderedSet__containerrÓ  )r”   r  s     rˆ   r’   zOrderedSet.__init__õ  s=   € Ý4?Ô4KÑ4MÔ4MˆÔØð 	"Ø�KŠK˜Ñ!Ô!Ð!Ð!Ð!ð	"ð 	"r‡   rí  rG  r¢   rŸ   c                ó   — || j         v S r–   ©r„  ©r”   rí  s     rˆ   Ú__contains__zOrderedSet.__contains__ú  s   € Ø˜Ô(Ð(Ð(r‡   úT.Iterator[_T]c                óN   — t          | j                             ¦   «         ¦  «        S r–   )Úiterr„  rÒ  r×   s    rˆ   Ú__iter__zOrderedSet.__iter__ý  s   € Ý�DÔ$×)Ò)Ñ+Ô+Ñ,Ô,Ð,r‡   ré   c                ó*   — t          | j        ¦  «        S r–   )rú   r„  r×   s    rˆ   Ú__len__zOrderedSet.__len__   s   € Ý�4Ô#Ñ$Ô$Ð$r‡   r‹   c                ó¦   — | j         rId                     d                     d„ | j                              ¦   «         D ¦   «         ¦  «        ¦  «        S dS )NzOrderedSet("{}")z", "c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r–   )Úrepr)r  r©   s     rˆ   r  z&OrderedSet.__repr__.<locals>.<genexpr>  s(   è è € ÐEÐE¨�D ™GœGÐEÐEÐEÐEÐEÐEr‡   zOrderedSet())r„  rå   r#  rÒ  r×   s    rˆ   rè   zOrderedSet.__repr__  s[   € àÔð 	GØ%×,Ò,Ø—’ÐEÐE¨TÔ-=×-BÒ-BÑ-DÔ-DÐEÑEÔEÑEÔEñGô Gð Gàˆ~r‡   c                óN   — t          | j                             ¦   «         ¦  «        S r–   )Úreversedr„  rÒ  r×   s    rˆ   Ú__reversed__zOrderedSet.__reversed__
  s   € Ý˜Ô(×-Ò-Ñ/Ô/Ñ0Ô0Ð0r‡   r   rµ   c                ó   — d | j         |<   d S r–   r†  r‡  s     rˆ   r¯  zOrderedSet.add  s   € Ø"&ˆÔ˜ÑÐÐr‡   c                ó,   — || j         v r
| j         |= d S d S r–   r†  r‡  s     rˆ   ÚdiscardzOrderedSet.discard  s)   € Ø�DÔ$Ð$Ð$ØÔ  Ð'Ð'Ð'ð %Ð$r‡   TÚlastc                ó<   — | j                              ||¦  «         d S r–   )r„  Úmove_to_end)r”   rí  r˜  s      rˆ   rš  zOrderedSet.move_to_end  s!   € ØÔ×$Ò$ U¨DÑ1Ô1Ð1Ð1Ð1r‡   c                ó@   — | j                              |¦  «        \  }}|S r–   )r„  Úpopitem)r”   r˜  rû  r³   s       rˆ   r  zOrderedSet.pop  s!   € ØÔ"×*Ò*¨4Ñ0Ô0‰ˆˆaØˆr‡   r  c                ó$   — |D ]}d | j         |<   Œd S r–   r†  ©r”   r  rû  s      rˆ   rÓ  zOrderedSet.update  s+   € Øð 	*ð 	*ˆDØ%)ˆDÔ˜TÑ"Ð"ð	*ð 	*r‡   Úset_ú'OrderedSet[_T]'c                óL   ‡—  t          | ¦  «        ˆfd„| D ¦   «         ¦  «        S )Nc              3  ó$   •K  — | ]
}|‰v¯|V — Œd S r–   r†   )r  r©   rŸ  s     €rˆ   r  z(OrderedSet.difference.<locals>.<genexpr>   s'   øè è € Ð;Ð; ¨Q°d¨]¨]˜!¨]¨]¨]¨]Ð;Ð;r‡   )r  )r”   rŸ  s    `rˆ   Ú
differencezOrderedSet.difference  s.   ø€ Ø�t�D‰zŒzÐ;Ð;Ð;Ð; TÐ;Ñ;Ô;Ñ;Ô;Ð;r‡   c                ó:   — |D ]}|                       |¦  «         Œd S r–   )r—  rž  s      rˆ   Údifference_updatezOrderedSet.difference_update"  s0   € Øð 	ð 	ˆDØ�LŠL˜ÑÔÐÐð	ð 	r‡   r–   )r  r�  )rí  rG  r¢   rŸ   )r¢   r‰  rP  r  )rí  r   r¢   rµ   ©T)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š  r  rÓ  r£  r¥  r†   r‡   rˆ   r(   r(   ñ  s1  € € € € € ðð ð"ð "ð "ð "ð "ð
)ð )ð )ð )ð-ð -ð -ð -ð%ð %ð %ð %ðð ð ð ð1ð 1ð 1ð 1ð'ð 'ð 'ð 'ð(ð (ð (ð (ð2ð 2ð 2ð 2ð 2ðð ð ð ð ð*ð *ð *ð *ð<ð <ð <ð <ðð ð ð ð ð r‡   r(   rº   r®  c                óv   — 	 t           j                             | |¦  «        S # t          t          f$ r | cY S w xY wr–   )r¹   rº   rk   Ú	TypeErrorÚ
ValueError)rº   r®  s     rˆ   rk   rk   &  sF   € ðÝŒw�Š˜t UÑ+Ô+Ð+øÝ•zÐ"ð ð ð Øˆˆˆðøøøs   ‚" ¢8·8r   ÚrootÚresolvec                óÎ   — 	 |r:|                       ¦   «                              |                      ¦   «         ¦  «         n|                      |¦  «         n# t          $ r Y dS w xY wdS )NFT©r«  Úrelative_tor©  ©rº   rª  r«  s      rˆ   re   re   /  sr   € ðØð 	#Ø�LŠL‰NŒN×&Ò& t§|¢|¡~¤~Ñ6Ô6Ð6Ð6à×Ò˜TÑ"Ô"Ð"øøÝð ð ð Øˆuˆuðøøøàˆ4s   ‚AA Á
A"Á!A"c                óÈ   — 	 |r9|                       ¦   «                              |                      ¦   «         ¦  «        S |                      |¦  «        S # t          $ r | cY S w xY wr–   r­  r¯  s      rˆ   rj   rj   :  sk   € ðØð 	*Ø—<’<‘>”>×-Ò-¨d¯lªl©n¬nÑ=Ô=Ð=à×#Ò# DÑ)Ô)Ð)øÝð ð ð Øˆˆˆðøøøs   ‚:A ½A ÁA!Á A!c                  ó"   — e Zd ZdZdZdZdZdZdS )r    zEnumeration for library types.r   r   r   rò   N)r‚   rƒ   r„   r…   ÚSHAREDÚSTATICÚPREFER_SHAREDÚPREFER_STATICr†   r‡   rˆ   r    r    C  s(   € € € € € à(Ð(à€FØ€FØ€MØ€M€M€Mr‡   r    c                  óH   — e Zd ZdZ	 	 ddd
„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dS )ÚProgressBarFallbackzû
    Fallback progress bar implementation when tqdm is not found

    Since this class is not an actual iterator, but only provides a minimal
    fallback, it is safe to ignore the 'Iterator does not return self from
    __iter__ method' warning.
    Nr  úT.Optional[T.Iterable[str]]ÚtotalúT.Optional[int]Úbar_typer�   rÁ  c                óÔ   — |�t          |¦  «        | _        d S || _        d| _        d| _        | j        r|dk    rt          d| j        ¦  «         |rt          |› d�d¬¦  «         d S d S )Nr   ÚdownloadzDownload size:rÓ  r�   ©r­  )r‹  r  r¹  ÚdoneÚprinted_dotsÚprint)r”   r  r¹  r»  rÁ  s        rˆ   r’   zProgressBarFallback.__init__U  sˆ   € àÐÝ  ™NœNˆDŒMØˆFØˆŒ
ØˆŒ	ØˆÔØŒ:ð 	0˜( jÒ0Ð0ÝÐ" D¤JÑ/Ô/Ð/Øð 	'Ý�T�+�+�+ 2Ð&Ñ&Ô&Ð&Ð&Ð&ð	'ð 	'r‡   r¢   úT.Iterator[str]c                ó   — | j         S r–   )r  r×   s    rˆ   rŒ  zProgressBarFallback.__iter__d  s
   € ØŒ}Ðr‡   r‹   c                ó*   — t          | j        ¦  «        S r–   )Únextr  r×   s    rˆ   Ú__next__zProgressBarFallback.__next__g  s   € Ý�D”MÑ"Ô"Ð"r‡   rµ   c                ó„   — t          dd¬¦  «         t          j                             ¦   «          | xj        dz  c_        d S )Nr  r�   r¾  r   )rÁ  rÓ   r±   ÚflushrÀ  r×   s    rˆ   Ú	print_dotzProgressBarFallback.print_dotj  sC   € Ýˆc�rÐÑÔÐÝŒ
×ÒÑÔÐØÐÔ˜QÑÐÔÐÐr‡   Úprogressré   c                óö   — | xj         |z  c_         | j        s|                      ¦   «          d S t          | j         | j        z  dz  ¦  «        }| j        |k     r!|                      ¦   «          | j        |k     °d S d S )NrÉ  )r¿  r¹  rÉ  ré   rÀ  )r”   rÊ  Úratios      rˆ   rÓ  zProgressBarFallback.updateo  s†   € Øˆ	Œ	�XÑˆ	Œ	ØŒzð 	à�NŠNÑÔÐØˆFÝ�D”I ¤
Ñ*¨RÑ/Ñ0Ô0ˆØÔ %Ò'Ð'Ø�NŠNÑÔÐð Ô %Ò'Ð'Ð'Ð'Ð'Ð'r‡   c                ó$   — t          d¦  «         d S r�   )rÁ  r×   s    rˆ   ÚclosezProgressBarFallback.closey  s   € Ýˆb‰	Œ	ˆ	ˆ	ˆ	r‡   )NNNN)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·  M  s¥   € € € € € ðð ð _cØKOð'ð 'ð 'ð 'ð 'ðð ð ð ð#ð #ð #ð #ðð ð ð ð
ð ð ð ðð ð ð ð ð r‡   r·  )Útqdmc                  ó&   ‡ — e Zd Zddœdˆ fd
„Zˆ xZS )ÚProgressBarTqdmN)r»  r›  r¡   r»  r�   r    r¢   rµ   c               ó°   •— |dk    r|                      dddœ¦  «         n|                      ddi¦  «         d|d<    t          ¦   «         j        |i |¤Ž d S )	Nr½  rÅ   T)ÚunitÚleaverÔ  Féd   Úncols)rÓ  r‘   r’   )r”   r»  r›  r    r•   s       €rˆ   r’   zProgressBarTqdm.__init__ƒ  sm   ø€ Ø˜:Ò%Ð%Ø—’ w¸Ð>Ð>Ñ?Ô?Ð?Ð?à—’˜w¨Ð.Ñ/Ô/Ð/Ø!ˆF�7‰OØ�E‰GŒGÔ˜dÐ- fÐ-Ð-Ð-Ð-Ð-r‡   )r›  r¡   r»  r�   r    r¡   r¢   rµ   r—   r™   s   @rˆ   rÑ  rÑ  ‚  sJ   ø€ € € € € ØEIð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.r‡   rÑ  c                  ó.   ‡ — e Zd Zddˆ fd	„Z	 ddd„Zˆ xZS )r.   r  Úoption_stringsr›   Údestr‹   r•  r    r¡   c                ó¼   •— t           j                             t           j                             |¦  «        ¦  «        } t	          ¦   «         j        ||fd |dœ|¤Ž d S )N)Únargsr•  )r¹   rº   ÚabspathÚrealpathr‘   r’   )r”   rØ  rÙ  r•  r    r•   s        €rˆ   r’   zRealPathAction.__init__�  sT   ø€ Ý”'—/’/¥"¤'×"2Ò"2°7Ñ";Ô";Ñ<Ô<ˆØ�‰ŒÔ˜¨ÐU°TÀ7ÐUÐUÈfÐUÐUÐUÐUÐUr‡   NÚparserúargparse.ArgumentParserÚ	namespaceúargparse.Namespacer6  ú%T.Union[str, T.Sequence[T.Any], None]Úoption_stringr¢   rµ   c           	     óÔ   — t          |t          ¦  «        sJ ‚t          || j        t          j                             t          j                             |¦  «        ¦  «        ¦  «         d S r–   )rÃ   r‹   ru  rÙ  r¹   rº   rÜ  rÝ  )r”   rÞ  rà  r6  rã  s        rˆ   Ú__call__zRealPathAction.__call__“  sP   € å˜&¥#Ñ&Ô&Ð&Ð&Ð&Ý�	˜4œ9¥b¤g§o¢oµb´g×6FÒ6FÀvÑ6NÔ6NÑ&OÔ&OÑPÔPÐPÐPÐPr‡   )r  )rØ  r›   rÙ  r‹   r•  r‹   r    r¡   r–   )
rÞ  rß  rà  rá  r6  râ  rã  r‹   r¢   rµ   )r‚   rƒ   r„   r’   rå  r˜   r™   s   @rˆ   r.   r.   Ž  sr   ø€ € € € € ðVð Vð Vð Vð Vð Vð Vð
 VZðQð Qð Qð Qð Qð Qð Qð Qð Qr‡   r.   ÚwinecmdÚ
wine_pathsÚworkdirc                óÈ  — t          t          |¦  «        ¦  «        }d                     |¦  «        }t          |¦  «        dk    r|S ddlm}  |d| d¬¦  «        }t          |                     ¦   «         d¦  «        r|S g }|rsg }|D ]l}	 t          |¦  «         	                    |¦  «        }	| 
                    t          |	¦  «        ¦  «         ŒH# t          $ r | 
                    |¦  «         Y Œiw xY w|}|�r*t          d	d
dd¬¦  «        5 }
|
                     d¦  «         ddd¦  «         n# 1 swxY w Y   	 t          j        | dd|
j        gz   |z   dt          j        ¬¦  «        }|                     d¦  «        }|r|                     d¦  «        }nt+          j        d¦  «         n@# t          j        $ r.}t+          j        dt          |¦  «        › �¦  «         Y d}~nd}~ww xY wt1          j        |
j        ¦  «         n# t1          j        |
j        ¦  «         w xY wd                     ||z   ¦  «        }t          |¦  «        dk    rt+          j        d¦  «         |S )aÑ  
    WINEPATH size is limited to 1024 bytes which can easily be exceeded when
    adding the path to every dll inside build directory. See
    https://bugs.winehq.org/show_bug.cgi?id=45810.

    To shorten it as much as possible we use path relative to `workdir`
    where possible and convert absolute paths to Windows shortpath (e.g.
    "/usr/x86_64-w64-mingw32/lib" to "Z:\usr\X86_~FWL\lib").

    This limitation reportedly has been fixed with wine >= 6.4
    ú;i   r   )ÚExternalProgramÚwineT)Úsilentz>=6.4rî   z.batrÉ  F)r<  rË  Údeletezt
            @ECHO OFF
            for %%x in (%*) do (
                echo|set /p=;%~sx
            )
            Nrš   z/C)rË  r²   z(Could not shorten WINEPATH: empty stdoutzCould not shorten WINEPATH: z9WINEPATH exceeds 1024 characters which could cause issues)rÊ  r(   r#  rú   Úprogramsrë  rv   Úget_versionr   r®  r_  r‹   r©  r   rí  rË  Úcheck_outputrú  rl  r“   r+  r   rÐ   ÚCalledProcessErrorr¹   r÷  )ræ  rç  rè  Ú	wine_pathrë  rì  Ú	rel_pathsÚ	abs_pathsr§   ÚrelÚbat_filer±   r©   s                rˆ   rL   rL   ™  só  € õ •j Ñ,Ô,Ñ-Ô-€Jð —’˜Ñ$Ô$€IÝ
ˆ9�~„~˜ÒÐØÐð +Ð*Ð*Ð*Ð*Ð*Øˆ?˜6 7°4Ð8Ñ8Ô8€DÝ�t×'Ò'Ñ)Ô)¨7Ñ3Ô3ð ØÐð €IØð Øˆ	Øð 	$ð 	$ˆAð$Ý˜1‘g”g×)Ò)¨'Ñ2Ô2�Ø× Ò ¥ S¡¤Ñ*Ô*Ð*Ð*øÝð $ð $ð $Ø× Ò  Ñ#Ô#Ð#Ð#Ð#ð$øøøàˆ
àñ %å ¨F¸WÈUÐSÑSÔSð 	ÐW_Ø�NŠNð ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	%ÝÔ,¨W¸¸tÀXÄ]Ð7SÑ-SÐV`Ñ-`Ø6=ÅjÔFXðZñ Zô ZˆFà—\’\ #Ñ&Ô&ˆFØð IØ#Ÿ\š\¨#Ñ.Ô.�
�
å”ÐGÑHÔHÐHøøÝÔ,ð 	Bð 	Bð 	BÝŒLÐ@½¸A¹¼Ð@Ð@ÑAÔAÐAÐAÐAÐAÐAÐAøøøøð	Bøøøõ ŒI�h”mÑ$Ô$Ð$Ð$ø�BŒI�h”mÑ$Ô$Ð$Ð$øøøØ—’˜ ZÑ/Ñ0Ô0€IÝ
ˆ9�~„~˜ÒÐÝŒÐPÑQÔQÐQØÐsV   Â
ACÃC1Ã0C1ÄD.Ä.D2Ä5D2Ä:A0F+ Æ*H Æ+G(Æ:$G#ÇH Ç#G(Ç(H ÈH ÚfuncúT.Callable[..., _T]c                óF   ‡ ‡— g Št          ‰ ¦  «        dˆ ˆfd„¦   «         }|S )Nr›  r¡   r    r¢   r   c                 óV   •— ‰r‰d         S  ‰| i |¤Ž}‰                      |¦  «         |S )Nr   )r_  )r›  r    rs  rø  rç   s      €€rˆ   Úwrapperzrun_once.<locals>.wrapperß  s<   ø€ àð 	Ø�q”6ˆMàˆd�DÐ#˜FÐ#Ð#ˆØ�
Š
�3‰ŒˆØˆ
r‡   )r›  r¡   r    r¡   r¢   r   ©r   )rø  rü  rç   s   ` @rˆ   rm   rm   Ü  sC   øø€ Ø
€Cå
ˆ4�[„[ðð ð ð ð ð ñ „[ðð €Nr‡   ú,T.Callable[..., T.Generator[_T, None, None]]úT.Callable[..., T.List[_T]]c                ó>   ‡ — t          ‰ ¦  «        dˆ fd„¦   «         }|S )Nr›  r¡   r    r¢   r  c                 ó.   •— t           ‰| i |¤Ž¦  «        S r–   )rÊ  )r›  r    rø  s     €rˆ   rü  zgenerate_list.<locals>.wrapperì  s    ø€ å�D�D˜$Ð) &Ð)Ð)Ñ*Ô*Ð*r‡   )r›  r¡   r    r¡   r¢   r  rý  )rø  rü  s   ` rˆ   rH   rH   ë  s8   ø€ Ý
ˆ4�[„[ð+ð +ð +ð +ð +ñ „[ð+ð €Nr‡   c                  ó>   — e Zd ZdZ	 ddd	„Zdd„Zdd„Zdd„Zdd„ZdS )r&   zPMimic an option list but transparently override selected option
    values.
    NÚ	overridesúT.Dict['OptionKey', T.Any]Úoptionsú'KeyedOptionDictType'Ú
subprojectr�   c                ó0   — || _         || _        || _        d S r–   )r  r  r  )r”   r  r  r  s       rˆ   r’   zOptionOverrideProxy.__init__û  s   € à"ˆŒØˆŒØ$ˆŒˆˆr‡   r  ú'OptionKey'r¢   ú'UserOption'c                ó  — |                      | j        ¬¦  «        }|                     ¦   «         sC| j                             |¦  «        }|�|j        r| j        |                     ¦   «                  }nA| j        |         }|j        r-| j                             |                     ¦   «         |¦  «        }| j                             |                     ¦   «         ¦  «        }|�)t          j        |¦  «        }| 	                    |¦  «         |S )N©r  )
Úevolver  Ú
is_projectr  rð  ÚyieldingÚas_rootr  ÚcopyÚ	set_value)r”   r  ÚoptÚoverride_values       rˆ   rr  zOptionOverrideProxy.__getitem__  sÜ   € ð �jŠj D¤OˆjÑ4Ô4ˆØ�~Š~ÑÔð 	;Ø”,×"Ò" 3Ñ'Ô'ˆCØˆ{˜cœlˆ{Ø”l 3§;¢;¡=¤=Ô1�øà”,˜sÔ#ˆCØŒ|ð ;Ø”l×&Ò& s§{¢{¡}¤}°cÑ:Ô:�Øœ×+Ò+¨C¯KªK©M¬MÑ:Ô:ˆØÐ%Ý”)˜C‘.”.ˆCØ�MŠM˜.Ñ)Ô)Ð)Øˆ
r‡   úT.Iterator['OptionKey']c                ó*   — t          | j        ¦  «        S r–   )r‹  r  r×   s    rˆ   rŒ  zOptionOverrideProxy.__iter__  s   € Ý�D”LÑ!Ô!Ð!r‡   ré   c                ó*   — t          | j        ¦  «        S r–   )rú   r  r×   s    rˆ   rŽ  zOptionOverrideProxy.__len__  s   € Ý�4”<Ñ Ô Ð r‡   rF  rG  rŸ   c                ó–   — t          |t          ¦  «        st          S | j        | j        | j        f}|j        |j        |j        f}||k    S r–   )rÃ   r&   rI  r  r  r  )r”   rF  r!  r"  s       rˆ   rK  zOptionOverrideProxy.__eq__  sI   € Ý˜%Õ!4Ñ5Ô5ð 	"Ý!Ð!ØŒn˜dœo¨t¬|Ð<ˆØŒo˜uÔ/°´Ð?ˆØ�RŠxˆr‡   r–   )r  r  r  r  r  r�   )r  r	  r¢   r
  )r¢   r  rP  rO  )	r‚   rƒ   r„   r…   r’   rr  rŒ  rŽ  rK  r†   r‡   rˆ   r&   r&   ó  sŒ   € € € € € ðð ð 04ð%ð %ð %ð %ð %ðð ð ð ð$"ð "ð "ð "ð!ð !ð !ð !ðð ð ð ð ð r‡   r&   c                  ó&   — e Zd ZdZdZdZdZdZdZdS )r'   z6Enum used to specify what kind of argument a thing is.r   r   r   rò   ró   N)	r‚   rƒ   r„   r…   ÚBUILTINÚBACKENDÚBASEÚCOMPILERÚPROJECTr†   r‡   rˆ   r'   r'   !  s-   € € € € € à@Ð@à€GØ€GØ€DØ€HØ€G€G€Gr‡   r'   >!   rÜ  r“   ÚunityÚbindirÚlayoutÚlibdirÚmandirrð  ÚwerrorÚbackendÚdatadirÚinfodirÚsbindirÚstdsplitÚ	buildtypeÚ	errorlogsÚ	localedirÚ	wrap_modeÚ
includedirÚ
libexecdirÚ
sysconfdirÚ
unity_sizeÚoptimizationÚauto_featuresÚinstall_umaskÚlocalstatedirÚprefer_staticÚwarning_levelÚsharedstatedirÚdefault_libraryÚpkg_config_pathÚcmake_prefix_pathÚforce_fallback_forr	  c                óÂ  — | j                              d¦  «        rt          j        S | j        �t          j        S | j         t          v s| j        rt          j        S | j                              d¦  «        r6| j	        t          j        u sJ t          | ¦  «        ¦   «         ‚t          j        S | j	        t          j        u sJ t          | ¦  «        ¦   «         ‚t          j        S )zGClassify arguments into groups so we know which dict to assign them to.Úb_NÚbackend_)rú  r¿  r'   r  Úlangr  Ú_BUILTIN_NAMESÚmoduler  ro  r!   rk  r‹   r  r  )r  s    rˆ   Ú_classify_argumentrC  S  sÄ   € ð „x×Ò˜4Ñ Ô ð "ÝŒÐØ	ŒÐ	ÝÔ"Ð"Ø	Œ•^Ð	#Ð	# s¤zÐ	#ÝÔ!Ð!Ø	Œ×	Ò	˜ZÑ	(Ô	(ð "ØŒ{�mÔ0Ð0Ð0Ð0µ#°c±(´(Ñ0Ô0Ð0ÝÔ!Ð!àŒ{�mÔ0Ð0Ð0Ð0µ#°c±(´(Ñ0Ô0Ð0ÝÔ!Ð!r‡   c                  ó0  — e Zd ZU dZg d¢Zded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   dej        dddfd5d„Zd6d„Z	d7d„Z
d8d„Zd9d„Zd:d „Zd;d$„Zd;d%„Zd<d&„Zd<d'„Zed=d*„¦   «         Z	 	 	 d>d?d,„Zd@d-„Zd@d.„Zd@d/„ZdAd0„ZdAd1„ZdAd2„ZdAd3„ZdAd4„ZdS )Br$   a	  Represents an option key in the various option dictionaries.

    This provides a flexible, powerful way to map option names from their
    external form (things like subproject:build.option) to something that
    internally easier to reason about and produce.
    )rú  r  ro  r@  Ú_hashr  rB  r‹   rú  r  r!   ro  r�   r@  ré   rE  r'   r  rB  r�   NÚ_typeúT.Optional[OptionType]c                óÔ  — t                                | d|¦  «         t                                | d|¦  «         t                                | d|¦  «         t                                | d|¦  «         t                                | d|¦  «         t                                | dt          |||||f¦  «        ¦  «         |€t          | ¦  «        }t                                | d|¦  «         d S )Nrú  r  ro  r@  rB  rE  r  )rG  Ú__setattr__r  rC  )r”   rú  r  ro  r@  rB  rF  s          rˆ   r’   zOptionKey.__init__x  sØ   € õ 	×Ò˜4 ¨Ñ.Ô.Ð.Ý×Ò˜4 ¨zÑ:Ô:Ð:Ý×Ò˜4 ¨GÑ4Ô4Ð4Ý×Ò˜4 ¨Ñ.Ô.Ð.Ý×Ò˜4 ¨6Ñ2Ô2Ð2Ý×Ò˜4 ­$°°jÀ'È4ÐQWÐ/XÑ*YÔ*YÑZÔZÐZØˆ=Ý& tÑ,Ô,ˆEÝ×Ò˜4 ¨Ñ/Ô/Ð/Ð/Ð/r‡   r  rí  r¡   r¢   rµ   c                ó    — t          d¦  «        ‚)Nz,OptionKey instances do not support mutation.)rï  )r”   r  rí  s      rˆ   rI  zOptionKey.__setattr__‹  s   € ÝÐKÑLÔLÐLr‡   úT.Dict[str, T.Any]c                óP   — | j         | j        | j        | j        | j        | j        dœS )N)rú  r  ro  r@  rF  rB  )rú  r  ro  r@  r  rB  r×   s    rˆ   Ú__getstate__zOptionKey.__getstate__Ž  s/   € à”IØœ/Ø”|Ø”IØ”YØ”kð
ð 
ð 	
r‡   Ústatec                ó    —  | j         di |¤Ž dS )a+  De-serialize the state of a pickle.

        This is very clever. __init__ is not a constructor, it's an
        initializer, therefore it's safe to call more than once. We create a
        state in the custom __getstate__ method, which is valid to pass
        splatted to the initializer.
        Nr†   )r’   )r”   rN  s     rˆ   Ú__setstate__zOptionKey.__setstate__˜  s"   € ð 	ˆŒÐÐ˜ÐÐÐÐÐr‡   c                ó   — | j         S r–   )rE  r×   s    rˆ   rM  zOptionKey.__hash__£  s
   € ØŒzÐr‡   ú6T.Tuple[str, OptionType, str, str, MachineChoice, str]c                óV   — | j         | j        | j        pd| j        pd| j        | j        fS r�   )r  r  r@  rB  ro  rú  r×   s    rˆ   Ú	_to_tuplezOptionKey._to_tuple¦  s.   € Ø” ¤¨D¬I¨O¸¸T¼[Ð=NÈBÐPTÔP\Ð^bÔ^gÐhÐhr‡   rF  rG  rŸ   c                óŽ   — t          |t          ¦  «        r*|                      ¦   «         |                     ¦   «         k    S t          S r–   ©rÃ   r$   rT  rI  rJ  s     rˆ   rK  zOptionKey.__eq__©  s9   € Ý�e�YÑ'Ô'ð 	9Ø—>’>Ñ#Ô# u§¢Ñ'8Ô'8Ò8Ð8ÝÐr‡   c                óŽ   — t          |t          ¦  «        r*|                      ¦   «         |                     ¦   «         k     S t          S r–   rV  rJ  s     rˆ   r.  zOptionKey.__lt__®  s9   € Ý�e�YÑ'Ô'ð 	8Ø—>’>Ñ#Ô# e§o¢oÑ&7Ô&7Ò7Ð7ÝÐr‡   c                ó¶   — | j         }| j        r| j        › d|› �}| j        t          j        u rd|› �}| j        r| j        › d|› �}| j        r| j        › d|› �}|S )Nr³   rh  r  ú:)rú  r@  ro  r!   rj  rB  r  )r”   Úouts     rˆ   r  zOptionKey.__str__³  s†   € ØŒiˆØŒ9ð 	'Ø”YÐ&Ð& Ð&Ð&ˆCØŒ<�=Ô.Ð.Ð.Ø ˜3�.�.ˆCØŒ;ð 	)Ø”[Ð(Ð( 3Ð(Ð(ˆCØŒ?ð 	-Ø”_Ð,Ð, sÐ,Ð,ˆCØˆ
r‡   c                óh   — d| j         ›d| j        ›d| j        ›d| j        ›d| j        ›d| j        ›d�S )Nz
OptionKey(r~  r  )rú  r  ro  r@  rB  r  r×   s    rˆ   rè   zOptionKey.__repr__¿  sz   € ð A˜DœIð  Að  A¨4¬?ð  Að  AÀÄð  Að  AÐRVÔR[ð  Að  AÐaeÔalð  Að  AÐrvÔr{ð  Að  Að  Að  	Ar‡   Úrawr	  c                ó²  ‡
— 	 |                      d¦  «        \  }}n# t          $ r d|}}Y nw xY wd}t          j        }	 |                      d¦  «        \  }Š
|dk    rt          j        }n|}n# t          $ r |Š
Y nw xY wddlm} t          ˆ
fd„|D ¦   «         ¦  «        r‰
                      d	d
¦  «        \  }}	nd‰
}	}d|	vsJ ‚d|	vsJ ‚ | |	||||¦  «        S )z°Parse the raw command line format into a three part tuple.

        This takes strings like `mysubproject:build.myoption` and Creates an
        OptionKey out of them.
        rY  r�   Nr  rc  r   )Úall_languagesc              3  óH   •K  — | ]}‰                      |› d �¦  «        V — ŒdS )r³   N)r¿  )r  ÚlÚraw3s     €rˆ   r  z(OptionKey.from_string.<locals>.<genexpr>Ú  s5   øè è € Ð?Ð?¨Aˆt�Š !˜w˜w˜wÑ'Ô'Ð?Ð?Ð?Ð?Ð?Ð?r‡   r³   r   )r+  r©  r!   rk  rj  rS  r^  Úany)r
  r\  r  Úraw2rB  Úfor_machinerð  r^  r@  r  ra  s             @rˆ   Úfrom_stringzOptionKey.from_stringÂ  s9  ø€ ð	'Ø"Ÿyšy¨™~œ~ÑˆJ˜˜øÝð 	'ð 	'ð 	'Ø! 3˜ˆJˆJˆJð	'øøøð ˆÝ#Ô(ˆð	ØŸ:š: c™?œ?‰LˆF�DØ˜Ò Ð Ý+Ô1��à�øøÝð 	ð 	ð 	ØˆDˆDˆDð	øøøð 	.Ð-Ð-Ð-Ð-Ð-ÝÐ?Ð?Ð?Ð?°Ð?Ñ?Ô?Ñ?Ô?ð 	#ØŸ
š
 3¨Ñ*Ô*‰IˆD�#�#à˜d�#ˆDØ˜#ˆ~ˆ~ˆ~ˆ~Ø˜#ˆ~ˆ~ˆ~ˆ~àˆs�3˜
 K°°vÑ>Ô>Ð>s   ƒ œ-¬-¿-A- Á-A<Á;A<úT.Optional[MachineChoice]c                ó’   — t          |�|n| j        |�|n| j        |�|n| j        |dk    r|n| j        |dk    r|n| j        ¦  «        S )a  Create a new copy of this key, but with alterted members.

        For example:
        >>> a = OptionKey('foo', '', MachineChoice.Host)
        >>> b = OptionKey('foo', 'bar', MachineChoice.Host)
        >>> b == a.evolve(subproject='bar')
        True
        Nr�   )r$   rú  r  ro  r@  rB  )r”   rú  r  ro  r@  rB  s         rˆ   r  zOptionKey.evolveã  sb   € õ ØÐ$ˆDˆD¨$¬)Ø$Ð0ˆJˆJ°d´oØÐ*ˆGˆG°´Ø˜B’J�JˆDˆD D¤IØ ’l�lˆFˆF¨¬ñ
ô 
ð 	
r‡   c                ó.   — |                       d¬¦  «        S )z1Convenience method for key.evolve(subproject='').r�   r  )r  r×   s    rˆ   r  zOptionKey.as_rootø  s   € à�{Š{ bˆ{Ñ)Ô)Ð)r‡   c                óB   — |                       t          j        ¬¦  «        S )z@Convenience method for key.evolve(machine=MachinceChoice.BUILD).©ro  )r  r!   rj  r×   s    rˆ   Úas_buildzOptionKey.as_buildü  s   € à�{Š{¥=Ô#6ˆ{Ñ7Ô7Ð7r‡   c                óB   — |                       t          j        ¬¦  «        S )z?Convenience method for key.evolve(machine=MachinceChoice.HOST).rj  )r  r!   rk  r×   s    rˆ   Úas_hostzOptionKey.as_host 	  s   € à�{Š{¥=Ô#5ˆ{Ñ6Ô6Ð6r‡   c                ó(   — | j         t          j        u S )z8Convenience method to check if this is a backend option.)r  r'   r  r×   s    rˆ   Ú
is_backendzOptionKey.is_backend	  ó   € àŒy�JÔ.Ð.Ð.r‡   c                ó(   — | j         t          j        u S ©z8Convenience method to check if this is a builtin option.)r  r'   r  r×   s    rˆ   Ú
is_builtinzOptionKey.is_builtin	  rp  r‡   c                ó(   — | j         t          j        u S rr  )r  r'   r  r×   s    rˆ   Úis_compilerzOptionKey.is_compiler	  s   € àŒy�JÔ/Ð/Ð/r‡   c                ó(   — | j         t          j        u S )z8Convenience method to check if this is a project option.)r  r'   r  r×   s    rˆ   r  zOptionKey.is_project	  rp  r‡   c                ó(   — | j         t          j        u S )z5Convenience method to check if this is a base option.)r  r'   r  r×   s    rˆ   Úis_basezOptionKey.is_base	  s   € àŒy�JœOÐ+Ð+r‡   )rú  r‹   r  r‹   ro  r!   r@  r�   rB  r�   rF  rG  )r  r‹   rí  r¡   r¢   rµ   )r¢   rK  )rN  rK  r¢   rµ   rP  )r¢   rR  rO  r  )r\  r‹   r¢   r	  )NNNr�   r�   )rú  r�   r  r�   ro  rf  r@  r�   rB  r�   r¢   r	  )r¢   r	  ©r¢   rŸ   )r‚   rƒ   r„   r…   Ú	__slots__Ú__annotations__r!   rk  r’   rI  rM  rP  rM  rT  rK  r.  r  rè   r  re  r  r  rk  rm  ro  rs  ru  r  rx  r†   r‡   rˆ   r$   r$   d  sK  € € € € € € ðð ð UÐTÐT€Ià€I€I�IØ€O€O�OØÐÐÑØÐÐÑØ€J€J�JØÐÐÑØÐÐÑà46Ø*7Ô*<Ø)-Ø+/Ø15ð	0ð 0ð 0ð 0ð 0ð&Mð Mð Mð Mð
ð 
ð 
ð 
ð	ð 	ð 	ð 	ðð ð ð ðið ið ið iðð ð ð ð
ð ð ð ð

ð 
ð 
ð 
ðAð Að Að Að ð?ð ?ð ?ñ „[ð?ð@ RVØRTØ)+ð
ð 
ð 
ð 
ð 
ð**ð *ð *ð *ð8ð 8ð 8ð 8ð7ð 7ð 7ð 7ð/ð /ð /ð /ð/ð /ð /ð /ð0ð 0ð 0ð 0ð/ð /ð /ð /ð,ð ,ð ,ð ,ð ,ð ,r‡   r$   ÚfilenameÚobject_nameÚobject_typeúT.Typec           	     óŠ  — |› d| ›d�}	 t          | d¦  «        5 }t          j        |¦  «        }d d d ¦  «         n# 1 swxY w Y   n“# t          j        t          f$ r t          |¦  «        ‚t          t          t          f$ rU t          j
                             t          j
                             | ¦  «        ¦  «        }t          |› d| ›d|› d�¦  «        ‚w xY wt          ||¦  «        st          |¦  «        ‚ddlm} ddlm}m}	 t#          |d	d ¦  «        }
|
€|j        j        j        }
 ||
|¦  «        r |	|
|¦  «        ‚|S )
Nz file z+ is corrupted. Try with a fresh build tree.rõ  z­ references functions or classes that don't exist. This probably means that it was generated with an old version of meson. Try running from the source directory meson setup z --wiper   )Úversion)Úmajor_versions_differÚMesonVersionMismatchExceptionr�  )rÜ  ÚpickleÚloadÚUnpicklingErrorÚEOFErrorr   r¨  ÚModuleNotFoundErrorrï  r¹   rº   rR  rÃ   Úcoredatar�  r‚  rƒ  ÚgetattrÚenvironment)r|  r}  r~  Úload_fail_msgrà  ÚobjÚ	build_dirÚcoredata_versionr‚  rƒ  r�  s              rˆ   rf   rf   	  s×  € Ø"ÐaÐa¨(ÐaÐaÐa€Mð/Ý�(˜DÑ!Ô!ð 	! QÝ”+˜a‘.”.ˆCð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!øøåÔ"¥HÐ-ð ,ð ,ð ,Ý˜]Ñ+Ô+Ð+ÝÕ*­NÐ;ð /ð /ð /Ý”G—O’O¥B¤G§O¢O°HÑ$=Ô$=Ñ>Ô>ˆ	ÝØð .ð . (ð .ð .ð %ð.ð .ð .ñ/ô /ð 	/ð/øøøõ �c˜;Ñ'Ô'ð ,Ý˜]Ñ+Ô+Ð+Ø6Ð6Ð6Ð6Ð6Ð6ØOÐOÐOÐOÐOÐOÐOÐOÝ�c˜9 dÑ+Ô+€GØ€Ø”/Ô*Ô2ˆØÐ˜WÐ&6Ñ7Ô7ð GØ+Ð+¨GÐ5EÑFÔFÐFØ€Js)   ŠA š;¯A »?¿A Á?ÁA ÁBCr‹  Ú	predicateúT.Callable[[_T], bool]rŠ  c                ó.   — | D ]} ||¦  «        r|c S ŒdS )a8  Find the first entry in an iterable where the given predicate is true

    :param iter: The iterable to search
    :param predicate: A finding function that takes an element from the iterable
        and returns True if found, otherwise False
    :return: The first found element, or None if it is not found
    Nr†   )r‹  r�  r   s      rˆ   rG   rG   2	  s6   € ð ð ð ˆØˆ9�Q‰<Œ<ð 	ØˆHˆHˆHð	àˆ4r‡   )F)
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¢   r   )r¿   rÀ   r¢   rŸ   )rÈ   rÉ   r¢   rµ   )rS  rT  rU  rV  r¢   rW  )rS  rT  r[  r\  r¢   r]  ry  )rÇ  r›   r¢   rŸ   )rÏ  r‹   r¢   rÐ  r  )rö  r÷  r¢   rø  )rH  r‹   r¢   rI  )rU  r‹   rH  r‹   r¢   rŸ   )rU  r‹   rW  rX  r¢   rY  )r^  r‹   r_  r‹   r¢   rŸ   )rb  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¢   r§  )
r   r¡  r¢  r‹   r¥  rº  r£  r¤  r¢   r‹   )rÃ  )r£  r¤  r¢   r¡  )rÉ  )rU  r‹   rx  rÊ  r¥  rº  r£  r¤  rË  r‹   r¢   rÌ  )rU  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¢   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›   rí  r�   r#  r$  r±   r$  r²   r$  r    r¡   r¢   r%  )r1  rœ  r2  rœ  r¢   r�   )r5  r›   r6  r7  r¢   rµ   )r5  r›   r6  r7  r¢   r›   )rM  r›   rN  r›   r¢   r7  )rT  r‹   r¢   rµ   )rà  r‹   r¢   rµ   )r]  r‹   r¢   rµ   )r�   N)rr  r‹   rs  r‹   r�  rt  r¢   ru  )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›   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¢   rŠ  )Àr…   Ú
__future__r   Úpathlibr   ÚargparseÚenumrÓ   rý   re  rÙ   rŸ  rË  r,  r¹   r—  r  r  r  Ú	functoolsr   r   r   Ú	itertoolsr	   Útempfiler
   r   Útypingrø   rÑ   r  r„  r*  Ú
mesonbuildr   Úcorer   r   ÚTYPE_CHECKINGÚtyping_extensionsr   Ú_typingr   rc  r   r‰  r   r   Úcompilers.compilersr   ÚUnionr‹   r#   ÚTypeVarr   r   Ú__all__Údefaultdictr   r}   rº   rQ  Ú
executabler   r€   r{  r"   r   r  r   rM   rh   ru   ro   rn   rQ   r1   ÚABCMetar   r   r  r   rI   r2   ÚIntEnumr!   ÚGenericr)   r+   ÚOptionalr*   r,   r^   r\   rY   rP   rV   r[   r_   r`   rR   rS   rT   rZ   rU   rX   rW   r]   rO   rD   r4   rz   r@   r3   r0   rT  rv   rx   rw   ry   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   rN   r“  r  re  rŽ  ri   rp   rb   rC   rÆ  rK   rB   rA   rë  rì  r%   rl   rc   rF   rt   rq   rE   rd   rl  rk  rg   r)  ra   rA  rr   rJ   r^  r|   r{   r/   r?   rs   Ú
MutableSetr(   rk   re   rj   r    r·  rÏ  rÑ  r-   ÚImportErrorÚActionr.   rL   rm   rH   ÚMappingr&   r'   rA  rC  r$   rf   rG   r†   r‡   rˆ   ú<module>r®     s®  ðð 0Ð /Ð /à "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø €€€Ø 
€
€
€
Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø Ð Ð Ð Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø Ð Ð Ð Ð Ð Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø €€€à Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0à„?ð /Ø)Ð)Ð)Ð)Ð)Ð)à/Ð/Ð/Ð/Ð/Ð/Ø)Ð)Ð)Ð)Ð)Ð)Ø:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ø.Ð.Ð.Ð.Ð.Ð.àŒw�v˜s�{Ô#€à€Q„Yˆt�_„_€Ø€Q„Yˆt�_„_€ðfð fð f€ðX 1˜Ô0°Ñ5Ô5Ð ð Ð Ð Ð Ð Ð à„7×Ò�C”NÑ#Ô# {Ò2Ð2à”n kÐ2€N€Nà”nÐ%€NØ;?€Ð ?Ð ?Ð ?Ñ ?ðPð Pð Pð Pð P˜>ñ Pô Pð Pð7ð 7ð 7ð 7ð 7�>ñ 7ô 7ð 7ð
 €f„l�5ÑÔ€ññ ð ð ð ñ	ñ 	ð 	ð 	ð 	ññ ð ð ð ñ9ð 9ð 9ð 9ñ"ð ð ð ñð ð ð ñ'ð 'ð 'ð 'ð&8ð 8ð 8ð 8ð 8˜°#´+ð 8ñ 8ô 8ð 8ðXð Xð Xð Xð Xñ Xô Xð XðtSÐ ðN5ð N5ð N5ð N5ð N5ˆ>ñ N5ô N5ð N5ñbKð Kð Kð Kñð ð ð ð.ð .ð .ð .ð .�D”Lñ .ô .ð .ð <ð <ð <ð <ð <�”˜2”ñ <ô <ð <ð@ Rð  Rð  Rð  Rð  R�j ”nñ  Rô  Rð  RðF #ð  #ð  #ð  #ð  #˜J q¤z°"¤~Ô6ñ  #ô  #ð  #ðF]ð ]ð ]ð ]ð ]Ð!6¸ÈÌ
ÐSUÌÔ8Wñ ]ô ]ð ]ñ00ð 0ð 0ð 0ñ1ð 1ð 1ð 1ñ0ð 0ð 0ð 0ñ2ð 2ð 2ð 2ñ0ð 0ð 0ð 0ñ2ð 2ð 2ð 2ñ!ð !ð !ð !ñDð Dð Dð Dñ$ð $ð $ð $ñ1ð 1ð 1ð 1ñ4ð 4ð 4ð 4ñ1ð 1ð 1ð 1ñ2ð 2ð 2ð 2ñ0ð 0ð 0ð 0ñ.ð .ð .ð .ñ.ð .ð .ð .ñ.ð .ð .ð .ñð ð ð ð €�4ÐÑÔñð ð ñ Ôðñ*#ð #ð #ð #ñJ/ð /ð /ð /ñb;ð ;ð ;ð ;ðA7ð A7ð A7ð A7ð A7ñ A7ô A7ð A7ñHð ð ð ñ81ð 1ð 1ð 1ñ

+ð 
+ð 
+ð 
+ñ$Gð $Gð $Gð $GñL)ð )ð )ð )ñXð ð ð ñ&ð ð ð ñð ð ð ñð ð ð ñð ð ð ñð ð ð ñð ð ð ñð ð ð ñð ð ð ñð ð ð ññ ð ð ð ð €:�<„<ð F ð €KØ"˜œ
Ð#7¨Ð#7Ð#7Ð#7Ñ8Ô8Ô?Ðñð ð ð ñ,!ð !ð !ð !ð !ñF ð  ð  ð  ñ ð  ð  ð  ñ2ð 2ð 2ð 2ñ$Dð $Dð $Dð $DñL&Yð &Yð &Yð &YñPñ ð ð ð ð !(ñ$7ñ $7ð $7ð $7ð $7ðP ")ñ/ñ /ð /ð /ð /ð(€ðÐ ñ
3ð 3ð 3ð 3ñ>ð ð ð ñ ñ ð ð ð ñ"3ñ 3ð 3ð 3ð 3ñð ð ð ñ #ð #ð #ð #ñð ð ð ñ&	Fð 	Fð 	Fð 	Fð <@Ø;EÔ;MØ<F¼OØ<F¼Oðñ ð ð ð ð@ CGØBLÔBTØCMÄ?ØCMÄ?ðñ ð ð ð ñ0ð ð ð ñ %Xð %Xð %Xð %XñPDð Dð Dð DñN,ð ,ð ,ð ,ñ^Wð Wð Wð Wñð ð ð ñ6ð ð ð ð ,ð ,ð ,ð ,ð ,Ð!3ñ ,ô ,ð ,ð& <>ØFJññ ð ð ð ñ4ð ð ð ð3ð 3ð 3ð 3ð 3�”˜bÔ!ñ 3ô 3ð 3ñjð ð ð ñ	ñ 	ñ 	ð 	ð 	ññ ñ ð ð ðð ñ ð ñ ˆdŒlñ ô ð ð-ð -ñ -ð -ñ -ñ -ô -ð -ð^"ØÑÐÐÐÐð
.ð .ñ .ð .ñ .˜$ñ .ô .ð .ð "€K€Køð ð &ð &ð &à%€K€K€Kð&øøøð Qð Qñ Qð Qñ Q�X”_ñ Qô Qð Qð 37ñ@ñ @ñ @ð @ð @ñFñ ð ð ññ ð ð ð+ð +ñ +ð +ñ +˜+œ/Ô1ñ +ô +ð +ð\ð ñ ð ñ �”ñ ô ð ð"ñ "ð "€ñJ"ñ "ð "ð "ð" ðq,ð q,ñ q,ð q,ñ q,ñ q,ô q,ñ „ðq,ñfñ ð ð ñ4ñ ð ð ð ð s   Ñ1R ÒRÒR