§
    .@Äj×=  ã            
       ó"	  — d dl Z d dlmZmZmZmZmZmZmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZ d dlmZ  edg d	¢¦  «        Zd
„ Zdefd„Z G d„ de¦  «        Zd„ Zd„ Zd„ Zed          Zddddddddddœ	Zd&d„Z d„ Z! G d„ de
j"        ¦  «        Z# e$g d ¢¦  «        Z% e$g d!¢¦  «        Z& G d"„ d#e
j"        ¦  «        Z' G d$„ d%e
j"        ¦  «        Z( ee¦  «        ge
j)        j*        _+        e ee¦  «         ee¦  «         ee¦  «         ee¦  «        ge
j)        j,        _+         ee¦  «        ge
j)        j-        _+        ee
j)        j-        _.         ee¦  «        ge
j)        j/        _+         ee¦  «        ge
j)        j0        _+        ege
j)        j1        _+        ee
j)        j1        _.        ege
j)        j2        _+        e
j3        e
j)        j2        _.        e
j3         ee¦  «        ge
j)        j4        _+        e
j3        ge
j)        j5        _+        e
j3        e
j6        ge
j)        j7        _+        ee
j)        j7        _.        e
j3        e
j6        ege
j)        j8        _+        ee
j)        j8        _.        e
j3        e
j6        ge
j)        j9        _+        ee
j)        j9        _.        e ee¦  «        ge
j)        j:        _+        e
j;        e
j)        j:        _.        e
j;        ge
j)        j<        _+        ee
j)        j<        _.        e
j;        ge
j)        j=        _+        ee
j)        j=        _.        e
j;        eeeeeeeeeg
e
j)        j>        _+        e
j?        e
j)        j>        _.        e
j?        ge
j)        j@        _+        e
j?         ee¦  «        ge
j)        jA        _+        e
j?        ege
j)        jB        _+        e
j?        e
jC        ge
j)        jD        _+        e
j?        e
jE        e ee¦  «        ge
j)        jF        _+        e
jG        e
j)        jF        _.        e
jG        ge
j)        jH        _+        ee
j)        jH        _.        e
jG        ge
j)        jI        _+        ee
j)        jI        _.        e
jG        ge
j)        jJ        _+        e
j?        ge
j)        jK        _+        e
j3        e
j)        jK        _.        dS )'é    N)ÚPOINTERÚc_char_pÚ
c_longlongÚc_intÚc_size_tÚc_void_pÚ	string_at)Úffi)Úllvm_version_info)Ú_decode_stringÚ_encode_string)Ú
namedtuple)Ú	_has_svmlÚTriple)ÚArchÚSubArchÚVendorÚOSÚEnvÚObjectFormatc                  ó¸   — t          j        ¦   «         5 } t           j                             | ¦  «         t	          | ¦  «        cddd¦  «         S # 1 swxY w Y   dS )a  
    Return a target triple suitable for generating code for the current process.
    An example when the default triple from ``get_default_triple()`` is not be
    suitable is when LLVM is compiled for 32-bit but the process is executing
    in 64-bit mode.
    N)r
   ÚOutputStringÚlibÚLLVMPY_GetProcessTripleÚstr©Úouts    úIC:\Projects\Historical\venv\Lib\site-packages\llvmlite/binding/targets.pyÚget_process_tripler      s“   € õ 
Ô	Ñ	Ô	ð ˜sÝŒ×'Ò'¨Ñ,Ô,Ð,Ý�3‰xŒxðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ó   ”.AÁAÁAÚtriplec                 óR  — t          j        ¦   «         5 }t          j        ¦   «         5 }t          j        ¦   «         5 }t          j        ¦   «         5 }t           j                             |                      d¦  «        ||||¦  «         t          |¦  «        }d}|                      d¦  «        D ]0}|                     |¦  «        r|t          |¦  «        d…         } nŒ1t          ||t          |¦  «        t          |¦  «        t          |¦  «        t          | ¦  «        ¦  «        cddd¦  «         cddd¦  «         cddd¦  «         cddd¦  «         S # 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )z:
    Return a tuple of the parts of the given triple.
    Úutf8Ú ú-N)r
   r   r   ÚLLVMPY_GetTriplePartsÚencoder   ÚsplitÚ
startswithÚlenr   Úget_object_format)r!   ÚarchÚvendorÚosÚenvÚsubarchÚ_strs          r   Úget_triple_partsr2      sÌ  € õ 
Ô	Ñ	Ô	ð ;˜tÝÔÑÔð;Ø"(ÝÔÑÔð;à"$¥cÔ&6Ñ&8Ô&8ð;à<?ÝŒ×%Ò% f§m¢m°FÑ&;Ô&;Ø&*¨F°B¸ñ	=ô 	=ð 	=å�4‰yŒyˆØˆØ—L’L Ñ%Ô%ð 	ð 	ˆDØ�Š˜tÑ$Ô$ð Ø�s 4™yœy˜z˜zÔ*�Ø�ðõ �d˜G¥S¨¡[¤[µ#°b±'´'Ý˜#‘h”hÕ 1°&Ñ 9Ô 9ñ;ô ;ð;ð ;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;sˆ   ”F¨F¼E-ÁCE	Ä%E-Ä1FÄ=FÅEÅE-ÅEÅE-Å!FÅ-E1Å1FÅ4E1Å5FÅ8FÆF	ÆFÆF	ÆFÆF Æ#F c                   ó   — e Zd ZdZdd„ZdS )Ú
FeatureMapz…
    Maps feature name to a boolean indicating the availability of the feature.
    Extends ``dict`` to add `.flatten()` method.
    Tc                 óØ   ‡— |r!t          |                      ¦   «         ¦  «        n t          |                      ¦   «         ¦  «        }dddœŠd                     ˆfd„|D ¦   «         ¦  «        S )ap  
        Args
        ----
        sort: bool
            Optional.  If True, the features are sorted by name; otherwise,
            the ordering is unstable between python session due to hash
            randomization.  Defaults to True.

        Returns a string suitable for use as the ``features`` argument to
        ``Target.create_target_machine()``.

        ú+r%   )TFú,c              3   óV   •K  — | ]#\  }}d                       ‰|         |¦  «        V — Œ$dS )z{0}{1}N)Úformat)Ú.0ÚkÚvÚflag_maps      €r   ú	<genexpr>z%FeatureMap.flatten.<locals>.<genexpr>F   sM   øè è € ð .ð .Ù ˜A˜qð !Ÿš¨°¬°QÑ7Ô7ð .ð .ð .ð .ð .ð .ó    )ÚsortedÚitemsÚiterÚjoin)ÚselfÚsortÚiteratorr=   s      @r   ÚflattenzFeatureMap.flatten7   s}   ø€ ð ,0ÐG•6˜$Ÿ*š*™,œ,Ñ'Ô'Ð'µT¸$¿*º*¹,¼,Ñ5GÔ5GˆØ cÐ*Ð*ˆØ�xŠxð .ð .ð .ð .Ø$,ð.ñ .ô .ñ .ô .ð 	.r?   N)T)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rG   © r?   r   r4   r4   1   s2   € € € € € ðð ð
.ð .ð .ð .ð .ð .r?   r4   c                  óh  — t          j        ¦   «         5 } t          ¦   «         }t           j                             | ¦  «        s|cddd¦  «         S dddœ}t          | ¦  «        }|r3|                     d¦  «        D ]}|r||d                  ||dd…         <   Œ|cddd¦  «         S # 1 swxY w Y   dS )ac  
    Returns a dictionary-like object indicating the CPU features for current
    architecture and whether they are enabled for this CPU.  The key-value pairs
    are the feature name as string and a boolean indicating whether the feature
    is available.  The returned value is an instance of ``FeatureMap`` class,
    which adds a new method ``.flatten()`` for returning a string suitable for
    use as the "features" argument to ``Target.create_target_machine()``.

    If LLVM has not implemented this feature or it fails to get the information,
    this function will raise a RuntimeError exception.
    NTF)r6   r%   r7   r   é   )r
   r   r4   r   ÚLLVMPY_GetHostCPUFeaturesr   r(   )r   Úoutdictr=   ÚcontentÚfeats        r   Úget_host_cpu_featuresrS   J   s$  € õ 
Ô	Ñ	Ô	ð 
˜sÝ‘,”,ˆÝŒw×0Ò0°Ñ5Ô5ð 	Øð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð  EÐ*Ð*ˆÝ�c‘(”(ˆØð 	:ØŸš cÑ*Ô*ð :ð :�Øð :Ø(0°°a´Ô(9�G˜D   œHÑ%øØð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   ”/B'ÁA
B'Â'B+Â.B+c                  ó¸   — t          j        ¦   «         5 } t           j                             | ¦  «         t	          | ¦  «        cddd¦  «         S # 1 swxY w Y   dS )zR
    Return the default target triple LLVM is configured to produce code for.
    N)r
   r   r   ÚLLVMPY_GetDefaultTargetTripler   r   s    r   Úget_default_triplerV   c   s“   € õ 
Ô	Ñ	Ô	ð ˜sÝŒ×-Ò-¨cÑ2Ô2Ð2Ý�3‰xŒxðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð r    c                  ó¸   — t          j        ¦   «         5 } t           j                             | ¦  «         t	          | ¦  «        cddd¦  «         S # 1 swxY w Y   dS )zm
    Get the name of the host's CPU, suitable for using with
    :meth:`Target.create_target_machine()`.
    N)r
   r   r   ÚLLVMPY_GetHostCPUNamer   r   s    r   Úget_host_cpu_namerY   l   s“   € õ
 
Ô	Ñ	Ô	ð ˜sÝŒ×%Ò% cÑ*Ô*Ð*Ý�3‰xŒxðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð r    ÚUnknownÚCOFFÚDXContainerÚELFÚGOFFÚMachOÚSPIRVÚWasmÚXCOFF)	r   rN   é   é   é   é   é   é   é   c                 ó”   — | €t          ¦   «         } t          j                             t	          | ¦  «        ¦  «        }t
          |         S )z~
    Get the object format for the given *triple* string (or the default
    triple if omitted).
    A string is returned
    )rV   r
   r   ÚLLVMPY_GetTripleObjectFormatr   Ú_object_formats)r!   Úress     r   r+   r+   ‡   s<   € ð €~Ý#Ñ%Ô%ˆÝ
Œ'×
.Ò
.­~¸fÑ/EÔ/EÑ
FÔ
F€CÝ˜3ÔÐr?   c                 ót   — t          t          j                             t	          | ¦  «        ¦  «        ¦  «        S )zE
    Create a TargetData instance for the given *layout* string.
    )Ú
TargetDatar
   r   ÚLLVMPY_CreateTargetDatar   )Úlayouts    r   Úcreate_target_datarr   “   s*   € õ •c”g×5Ò5µnÀVÑ6LÔ6LÑMÔMÑNÔNÐNr?   c                   ó0   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ ZdS )ro   z{
    A TargetData provides structured access to a data layout.
    Use :func:`create_target_data` to create instances.
    c                 óÌ   — | j         rdS t          j        ¦   «         5 }t          j                             | |¦  «         t          |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nz<dead TargetData>)Ú_closedr
   r   r   Ú LLVMPY_CopyStringRepOfTargetDatar   ©rD   r   s     r   Ú__str__zTargetData.__str__    s£   € ØŒ<ð 	'Ø&Ð&ÝÔÑÔð 	 3ÝŒG×4Ò4°T¸3Ñ?Ô?Ð?Ý�s‘8”8ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �/AÁAÁ Ac                 ó:   — | j                              | ¦  «         d S ©N)Ú_capiÚLLVMPY_DisposeTargetData©rD   s    r   Ú_disposezTargetData._dispose§   s   € ØŒ
×+Ò+¨DÑ1Ô1Ð1Ð1Ð1r?   c                 óB   — t           j                             | |¦  «        S )z1
        Get ABI size of LLVM type *ty*.
        )r
   r   ÚLLVMPY_ABISizeOfType©rD   Útys     r   Úget_abi_sizezTargetData.get_abi_sizeª   s   € õ Œw×+Ò+¨D°"Ñ5Ô5Ð5r?   c                 ó´   — t           j                             | ||¦  «        }|dk    r0t          d                     |t          |¦  «        ¦  «        ¦  «        ‚|S )zL
        Get byte offset of type's ty element at the given position
        éÿÿÿÿzQCould not determined offset of {}th element of the type '{}'. Is it a structtype?)r
   r   ÚLLVMPY_OffsetOfElementÚ
ValueErrorr9   r   )rD   r‚   ÚpositionÚoffsets       r   Úget_element_offsetzTargetData.get_element_offset°   s\   € õ
 ”×/Ò/°°b¸(ÑCÔCˆØ�RŠ<ˆ<Ýð %ç%+¢V¨Hµc¸"±g´gÑ%>Ô%>ñ@ô @ð @ð ˆr?   c                 óB   — t           j                             | |¦  «        S )z>
        Get minimum ABI alignment of LLVM type *ty*.
        )r
   r   ÚLLVMPY_ABIAlignmentOfTyper�   s     r   Úget_abi_alignmentzTargetData.get_abi_alignment¼   s   € õ Œw×0Ò0°°rÑ:Ô:Ð:r?   N)	rH   rI   rJ   rK   rx   r~   rƒ   rŠ   r�   rL   r?   r   ro   ro   š   si   € € € € € ðð ð
ð ð ð2ð 2ð 2ð6ð 6ð 6ð
ð 
ð 
ð;ð ;ð ;ð ;ð ;r?   ro   )ÚdefaultÚstaticÚpicÚdynamicnopic)rŽ   Ú
jitdefaultÚsmallÚkernelÚmediumÚlargec                   ó”   — e Zd ZdZed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
d„ Z	 	 	 dd„ZdS )ÚTargetr$   c                 óH   — t          ¦   «         }|                      |¦  «        S )zB
        Create a Target instance for the default triple.
        )rV   Úfrom_triple)Úclsr!   s     r   Úfrom_default_triplezTarget.from_default_tripleÎ   s!   € õ
 $Ñ%Ô%ˆØ�Š˜vÑ&Ô&Ð&r?   c                 ó&  — t          j        ¦   «         5 }t           j                             |                     d¦  «        |¦  «        }|st          t          |¦  «        ¦  «        ‚ | |¦  «        }||_        |cddd¦  «         S # 1 swxY w Y   dS )zK
        Create a Target instance for the given triple (a string).
        r#   N)r
   r   r   ÚLLVMPY_GetTargetFromTripler'   ÚRuntimeErrorr   Ú_triple)r›   r!   ÚouterrÚtargets       r   rš   zTarget.from_tripleÖ   sÑ   € õ
 ÔÑÔð 	 6Ý”W×7Ò7¸¿ºÀfÑ8MÔ8MØ8>ñ@ô @ˆFàð 0Ý"¥3 v¡;¤;Ñ/Ô/Ð/Ø�S˜‘[”[ˆFØ#ˆFŒNØð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ”A%BÂB
ÂB
c                 ó^   — t           j                             | ¦  «        }t          |¦  «        S rz   )r
   r   ÚLLVMPY_GetTargetNamer   ©rD   Úss     r   ÚnamezTarget.nameä   s%   € åŒG×(Ò(¨Ñ.Ô.ˆÝ˜aÑ Ô Ð r?   c                 ó^   — t           j                             | ¦  «        }t          |¦  «        S rz   )r
   r   ÚLLVMPY_GetTargetDescriptionr   r¥   s     r   ÚdescriptionzTarget.descriptioné   s%   € åŒG×/Ò/°Ñ5Ô5ˆÝ˜aÑ Ô Ð r?   c                 ó   — | j         S rz   )r    r}   s    r   r!   zTarget.tripleî   s
   € àŒ|Ðr?   c                 óB   — d                      | j        | j        ¦  «        S )Nz<Target {0} ({1})>)r9   r§   rª   r}   s    r   rx   zTarget.__str__ò   s   € Ø#×*Ò*¨4¬9°dÔ6FÑGÔGÐGr?   rc   rŽ   r’   Fc	                 óô  — d|cxk    rdk    sn J ‚|t           v sJ ‚|t          v sJ ‚| j        }	t          j        dk    r|dk    r|	dz  }	t
          j                             | t          |	¦  «        t          |¦  «        t          |¦  «        |t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        ¦
  «
        }
|
rt          |
¦  «        S t          d¦  «        ‚)am  
        Create a new TargetMachine for this target and the given options.

        Specifying codemodel='default' will result in the use of the "small"
        code model. Specifying codemodel='jitdefault' will result in the code
        model being picked based on platform bitness (32="small", 64="large").

        The `printmc` option corresponds to llvm's `-print-machineinstrs`.

        The `jit` option should be set when the target-machine is to be used
        in a JIT engine.

        The `abiname` option specifies the ABI. RISC-V targets with hard-float
        needs to pass the ABI name to LLVM.
        r   rd   Úntr’   z-elfzCannot create target machine)ÚRELOCÚ	CODEMODELr    r.   r§   r
   r   ÚLLVMPY_CreateTargetMachiner   ÚintÚTargetMachinerŸ   )rD   ÚcpuÚfeaturesÚoptÚrelocÚ	codemodelÚprintmcÚjitÚabinamer!   Útms              r   Úcreate_target_machinezTarget.create_target_machineõ   sü   € ð$ �Cˆ}ˆ}Š}ˆ}˜1Š}ˆ}ˆ}ˆ}ˆ}ˆ}Ø�ˆ~ˆ~ˆ~ˆ~Ø�IÐ%Ð%Ð%Ð%Ø”ˆõ Œ7�dŠ?ˆ?˜y¨LÒ8Ð8Ø�fÑˆFÝŒW×/Ò/°Ý0>¸vÑ0FÔ0FÝ0>¸sÑ0CÔ0CÝ0>¸xÑ0HÔ0HØ03Ý0>¸uÑ0EÔ0EÝ0>¸yÑ0IÔ0IÝ03°G±´Ý03°C±´Ý0>¸wÑ0GÔ0Gñ
2ô 
2ˆð ð 	?Ý  Ñ$Ô$Ð$åÐ=Ñ>Ô>Ð>r?   N)r$   r$   rc   rŽ   r’   FFr$   )rH   rI   rJ   r    Úclassmethodrœ   rš   Úpropertyr§   rª   r!   rx   r½   rL   r?   r   r˜   r˜   È   sÑ   € € € € € Ø€Gð
 ð'ð 'ñ „[ð'ð ðð ñ „[ðð ð!ð !ñ „Xð!ð ð!ð !ñ „Xð!ð ðð ñ „XððHð Hð Hð 68Ø@LØ@Bð)?ð )?ð )?ð )?ð )?ð )?r?   r˜   c                   ó`   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Ze	d„ ¦   «         Z
e	d	„ ¦   «         Zd
S )r³   c                 ó:   — | j                              | ¦  «         d S rz   )r{   ÚLLVMPY_DisposeTargetMachiner}   s    r   r~   zTargetMachine._dispose#  s   € ØŒ
×.Ò.¨tÑ4Ô4Ð4Ð4Ð4r?   c                 óF   — t           j                             | |¦  «         dS )zW
        Register analysis passes for this target machine with a pass manager.
        N)r
   r   ÚLLVMPY_AddAnalysisPasses)rD   Úpms     r   Úadd_analysis_passesz!TargetMachine.add_analysis_passes&  s"   € õ 	Œ×(Ò(¨¨rÑ2Ô2Ð2Ð2Ð2r?   c                 óF   — t           j                             | |¦  «         dS )z 
        Set whether this target machine will emit assembly with human-readable
        comments describing control flow, debug information, and so on.
        N)r
   r   Ú#LLVMPY_SetTargetMachineAsmVerbosity)rD   Úverboses     r   Úset_asm_verbosityzTargetMachine.set_asm_verbosity,  s"   € õ
 	Œ×3Ò3°D¸'ÑBÔBÐBÐBÐBr?   c                 ó0   — |                       |d¬¦  «        S )z…
        Represent the module as a code object, suitable for use with
        the platform's linker.  Returns a byte string.
        T©Ú
use_object)Ú_emit_to_memory©rD   Úmodules     r   Úemit_objectzTargetMachine.emit_object3  s   € ð
 ×#Ò# F°tÐ#Ñ<Ô<Ð<r?   c                 óJ   — t          |                      |d¬¦  «        ¦  «        S )z�
        Return the raw assembler of the module, as a string.

        llvm.initialize_native_asmprinter() must have been called first.
        FrÌ   )r   rÎ   rÏ   s     r   Úemit_assemblyzTargetMachine.emit_assembly:  s%   € õ ˜d×2Ò2°6ÀeÐ2ÑLÔLÑMÔMÐMr?   Fc                 ó  — t          j        ¦   «         5 }t           j                             | |t	          |¦  «        |¦  «        }|st          t          |¦  «        ¦  «        ‚	 ddd¦  «         n# 1 swxY w Y   t           j                             |¦  «        }t           j                             |¦  «        }	 t          ||¦  «        t           j         
                    |¦  «         S # t           j         
                    |¦  «         w xY w)z¨Returns bytes of object code of the module.

        Args
        ----
        use_object : bool
            Emit object code or (if False) emit assembly code.
        N)r
   r   r   Ú LLVMPY_TargetMachineEmitToMemoryr²   rŸ   r   ÚLLVMPY_GetBufferStartÚLLVMPY_GetBufferSizer	   ÚLLVMPY_DisposeMemoryBuffer)rD   rÐ   rÍ   r¡   ÚmbÚbufptrÚbufszs          r   rÎ   zTargetMachine._emit_to_memoryB  s$  € õ ÔÑÔð 	0 6Ý”×9Ò9¸$ÀÝ:=¸j¹/¼/Ø:@ñBô BˆBð ð 0Ý"¥3 v¡;¤;Ñ/Ô/Ð/ð0ð		0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0õ ”×.Ò.¨rÑ2Ô2ˆÝ”×,Ò,¨RÑ0Ô0ˆð	3Ý˜V UÑ+Ô+åŒG×.Ò.¨rÑ2Ô2Ð2Ð2ø�CŒG×.Ò.¨rÑ2Ô2Ð2Ð2øøøs   ”AA/Á/A3Á6A3Â9C( Ã(!D	c                 óZ   — t          t          j                             | ¦  «        ¦  «        S rz   )ro   r
   r   ÚLLVMPY_CreateTargetMachineDatar}   s    r   Útarget_datazTargetMachine.target_dataX  s    € å�#œ'×@Ò@ÀÑFÔFÑGÔGÐGr?   c                 óº   — t          j        ¦   «         5 }t           j                             | |¦  «         t	          |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S rz   )r
   r   r   ÚLLVMPY_GetTargetMachineTripler   rw   s     r   r!   zTargetMachine.triple\  s“   € åÔÑÔð 	 3ÝŒG×1Ò1°$¸Ñ<Ô<Ð<Ý�s‘8”8ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ”/AÁAÁAN)F)rH   rI   rJ   r~   rÆ   rÊ   rÑ   rÓ   rÎ   r¿   rÞ   r!   rL   r?   r   r³   r³   !  s²   € € € € € ð5ð 5ð 5ð3ð 3ð 3ðCð Cð Cð=ð =ð =ðNð Nð Nð3ð 3ð 3ð 3ð, ðHð Hñ „XðHð ðð ñ „Xðð ð r?   r³   rz   )Lr.   Úctypesr   r   r   r   r   r   r	   Úllvmlite.bindingr
   Úllvmlite.binding.initfinir   Úllvmlite.binding.commonr   r   Úcollectionsr   Úllvmlite.binding.configr   Úhas_svmlr   r   r   r2   Údictr4   rS   rV   rY   Úllvm_version_majorrl   r+   rr   Ú	ObjectRefro   Ú	frozensetr¯   r°   r˜   r³   r   r   Úargtypesr&   rO   ÚrestyperU   rX   rk   rp   ÚLLVMTargetDataRefrv   r|   ÚLLVMTypeRefr€   r†   rŒ   rž   ÚLLVMTargetRefr¤   r©   r±   ÚLLVMTargetMachineRefrÂ   rà   rÈ   ÚLLVMPassManagerRefrÄ   ÚLLVMModuleRefrÕ   ÚLLVMMemoryBufferRefrÖ   r×   rØ   rÝ   rL   r?   r   ú<module>rõ      s   ðØ 	€	€	€	ð)ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð !Ð  Ð  Ð  Ð  Ð  Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ "Ð "Ð "Ð "Ð "Ð "ð :Ð 9Ð 9Ð 9Ð 9Ð 9ð 
ˆ�Hð <ð <ð <ñ 
=ô 
=€ð	ð 	ð 	ð;˜Sð ;ð ;ð ;ð ;ð&.ð .ð .ð .ð .�ñ .ô .ð .ð2ð ð ð2ð ð ðð ð ð ' qÔ)Ð ð ØØØØØØØØð
ð 
€ð	 ð 	 ð 	 ð 	 ðOð Oð Oð&;ð &;ð &;ð &;ð &;�”ñ &;ô &;ð &;ðR 	ˆ	Ð>Ð>Ð>Ñ?Ô?€ØˆIð  ð  ð  ñ !ô !€	ðV?ð V?ð V?ð V?ð V?ˆSŒ]ñ V?ô V?ð V?ðr?ð ?ð ?ð ?ð ?�C”Mñ ?ô ?ð ?ðJ -4¨G°HÑ,=Ô,=Ð+>€„Ô Ô (Ø*2°G°G¸HÑ4EÔ4EØ*1¨'°(Ñ*;Ô*;¸W¸WÀXÑ=NÔ=NØ*1¨'°(Ñ*;Ô*;ð*=€„Ô Ô &ð /6¨g°hÑ.?Ô.?Ð-@€„Ô !Ô *Ø,1€„Ô !Ô )à29°'¸(Ñ2CÔ2CÐ1D€„Ô %Ô .à*1¨'°(Ñ*;Ô*;Ð)<€„Ô Ô &à19°
€„Ô $Ô -Ø/4€„Ô $Ô ,à,4¨:€„Ô Ô (Ø*-Ô*?€„Ô Ô 'ð ÔØ€GˆHÑÔð5€„Ô (Ô 1ð Ôð-€„Ô  Ô )ð *-Ô)>Ø),¬ð):€„Ô Ô %à'1€„Ô Ô $à+.Ô+@Ø+.¬?Ø+0ð+2€„Ô Ô 'ð *4€„Ô Ô &à.1Ô.CØ.1¬oð.?€„Ô !Ô *à,6€„Ô !Ô )à/7¸¸ÀÑ9JÔ9JÐ.K€„Ô "Ô +Ø-0Ô->€„Ô "Ô *à),Ô):Ð(;€„Ô Ô %Ø'/€„Ô Ô $à03Ô0AÐ/B€„Ô #Ô ,Ø.6€„Ô #Ô +ð Ôàààà	ààà	à	àð'/€„Ô "Ô +ð* .1Ô-E€„Ô "Ô *à03Ô0HÐ/I€„Ô #Ô ,à25Ô2JØ29°'¸(Ñ2CÔ2Cð2E€„Ô %Ô .ð Ô˜eð8%€„Ô +Ô 4ð ÔØÔð-€„Ô  Ô )ð ÔØÔØ	Ø€GˆHÑÔð	5€„Ô (Ô 1ð 47Ô3J€„Ô (Ô 0à*-Ô*AÐ)B€„Ô Ô &Ø(0€„Ô Ô %à),Ô)@Ð(A€„Ô Ô %Ø'/€„Ô Ô $à/2Ô/FÐ.G€„Ô "Ô +ð Ôð3€„Ô &Ô /ð 25Ô1F€„Ô &Ô .Ð .Ð .r?   