Ë
    øÇ: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
jD                  «      Z# e$g d ¢«      Z% e$g d!¢«      Z& G d"„ d#e
jD                  «      Z' G d$„ d%e
jD                  «      Z( ee«      ge
jR                  jT                  _+        e ee«       ee«       ee«       ee«      ge
jR                  jX                  _+         ee«      ge
jR                  jZ                  _+        ee
jR                  jZ                  _.         ee«      ge
jR                  j^                  _+         ee«      ge
jR                  j`                  _+        ege
jR                  jb                  _+        ee
jR                  jb                  _.        ege
jR                  jd                  _+        e
jf                  e
jR                  jd                  _.        e
jf                   ee«      ge
jR                  jh                  _+        e
jf                  ge
jR                  jj                  _+        e
jf                  e
jl                  ge
jR                  jn                  _+        ee
jR                  jn                  _.        e
jf                  e
jl                  ege
jR                  jp                  _+        ee
jR                  jp                  _.        e
jf                  e
jl                  ge
jR                  jr                  _+        ee
jR                  jr                  _.        e ee«      ge
jR                  jt                  _+        e
jv                  e
jR                  jt                  _.        e
jv                  ge
jR                  jx                  _+        ee
jR                  jx                  _.        e
jv                  ge
jR                  jz                  _+        ee
jR                  jz                  _.        e
jv                  eeeeeeeeeg
e
jR                  j|                  _+        e
j~                  e
jR                  j|                  _.        e
j~                  ge
jR                  j€                  _+        e
j~                   ee«      ge
jR                  j‚                  _+        e
j~                  ege
jR                  j„                  _+        e
j~                  e
j†                  ge
jR                  jˆ                  _+        e
j~                  e
jŠ                  e ee«      ge
jR                  jŒ                  _+        e
jŽ                  e
jR                  jŒ                  _.        e
jŽ                  ge
jR                  j�                  _+        ee
jR                  j�                  _.        e
jŽ                  ge
jR                  j’                  _+        ee
jR                  j’                  _.        e
jŽ                  ge
jR                  j”                  _+        e
j~                  ge
jR                  j–                  _+        e
jf                  e
jR                  j–                  _.        y)'é    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                  j                  | «       t	        | «      cddd«       S # 1 sw Y   yxY w)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    úm/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/llvmlite/binding/targets.pyÚget_process_tripler      s@   € ô 
×	Ñ	Ó	ð ˜sÜ�‰×'Ñ'¨Ô,Ü�3‹x÷÷ ò úó   •*A	Á	AÚtriplec                 óÜ  — t        j                  «       5 }t        j                  «       5 }t        j                  «       5 }t        j                  «       5 }t         j                  j                  | j	                  d«      ||||«       t        |«      }d}| j                  d«      D ]#  }|j                  |«      sŒ|t        |«      d } n t        ||t        |«      t        |«      t        |«      t        | «      «      cddd«       cddd«       cddd«       cddd«       S # 1 sw Y   nxY wddd«       n# 1 sw Y   nxY wddd«       n# 1 sw Y   nxY wddd«       y# 1 sw Y   yxY w)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      s5  € ô 
×	Ñ	Ó	ð ;˜tÜ×ÑÓð;Ø"(Ü×ÑÓð;à"$¤c×&6Ñ&6Ó&8ð;à<?Ü�‰×%Ñ% f§m¡m°FÓ&;Ø&*¨F°B¸ô	=ä�4‹yˆØˆØ—L‘L Ó%ò 	ˆDØ�‰˜tÕ$Øœs 4›y˜zÐ*�Ùð	ô �d˜G¤S¨£[´#°b³'Ü˜#“hÔ 1°&Ó 9ó;÷;÷ ;÷ ;÷ ;÷ ;õ ;ú÷ ;÷ ;ñ ;ú÷ ;÷ ;ñ ;ú÷ ;÷ ;ñ ;úse   •E"ªE¿D8ÁA%D#	Â:AD#	Ã>	D8Ä	EÄ	E"Ä#D,Ä(D8Ä/	EÄ8EÄ=EÅ	E"ÅE	ÅE"Å"E+c                   ó   — e Zd ZdZdd„Zy)Ú
FeatureMapz…
    Maps feature name to a boolean indicating the availability of the feature.
    Extends ``dict`` to add `.flatten()` method.
    c                 óª   ‡— |rt        | j                  «       «      nt        | j                  «       «      }dddœŠdj                  ˆ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   óN   •K  — | ]  \  }}d j                  ‰|   |«      –— Œ y­w)z{0}{1}N)Úformat)Ú.0ÚkÚvÚflag_maps      €r   ú	<genexpr>z%FeatureMap.flatten.<locals>.<genexpr>F   s,   øè ø€ ò .Ù ˜A˜qð !Ÿ™¨°©°Q×7ñ .ùs   ƒ"%)ÚsortedÚitemsÚiterÚjoin)ÚselfÚsortÚiteratorr=   s      @r   ÚflattenzFeatureMap.flatten7   sL   ø€ ñ ,0”6˜$Ÿ*™*›,Ô'´T¸$¿*¹*»,Ó5GˆØ cÑ*ˆØ�x‰xó .Ø$,ô.ó .ð 	.ó    N)T)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rF   © rG   r   r4   r4   1   s   „ ñô
.rG   r4   c                  ó4  — t        j                  «       5 } t        «       }t         j                  j	                  | «      s|cddd«       S dddœ}t        | «      }|r'|j                  d«      D ]  }|sŒ||d      ||dd <   Œ |cddd«       S # 1 sw Y   yxY w)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‰w×0Ñ0°Ô5Ø÷
ñ 
ð  EÑ*ˆÜ�c“(ˆÙØŸ™ cÓ*ò :�ÚØ(0°°a±Ñ(9�G˜D  ˜HÒ%ð:ð ÷
÷ 
ò 
ús   •+BÁ
(BÁ3BÂBc                  óª   — t        j                  «       5 } t         j                  j                  | «       t	        | «      cddd«       S # 1 sw Y   yxY w)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Ü�3‹x÷÷ ò úr    c                  óª   — t        j                  «       5 } t         j                  j                  | «       t	        | «      cddd«       S # 1 sw Y   yxY w)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÷÷ ò úr    ÚUnknownÚCOFFÚDXContainerÚELFÚGOFFÚMachOÚSPIRVÚWasmÚXCOFF)	r   rN   é   é   é   é   é   é   é   c                 ó|   — | €
t        «       } t        j                  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+   ‡   s5   € ð €~Ü#Ó%ˆÜ
�'‰'×
.Ñ
.¬~¸fÓ/EÓ
F€CÜ˜3ÑÐrG   c                 ód   — t        t        j                  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‘g×5Ñ5´nÀVÓ6LÓMÓNÐNrG   c                   ó.   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zy)ro   z{
    A TargetData provides structured access to a data layout.
    Use :func:`create_target_data` to create instances.
    c                 óÆ   — | j                   ryt        j                  «       5 }t        j                  j	                  | |«       t        |«      cd d d «       S # 1 sw Y   y xY w)Nz<dead TargetData>)Ú_closedr
   r   r   Ú LLVMPY_CopyStringRepOfTargetDatar   ©rC   r   s     r   Ú__str__zTargetData.__str__    sJ   € Ø�<Š<Ø&Ü×ÑÓð 	 3Ü�G‰G×4Ñ4°T¸3Ô?Ü�s“8÷	÷ 	ò 	ús   ¢+AÁA c                 ó:   — | j                   j                  | «       y ©N)Ú_capiÚLLVMPY_DisposeTargetData©rC   s    r   Ú_disposezTargetData._dispose§   s   € Ø�
‰
×+Ñ+¨DÕ1rG   c                 óB   — t         j                  j                  | |«      S )z1
        Get ABI size of LLVM type *ty*.
        )r
   r   ÚLLVMPY_ABISizeOfType©rC   Útys     r   Úget_abi_sizezTargetData.get_abi_sizeª   s   € ô �w‰w×+Ñ+¨D°"Ó5Ð5rG   c                 óš   — t         j                  j                  | ||«      }|dk(  r$t        dj	                  |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   )rC   r‚   ÚpositionÚoffsets       r   Úget_element_offsetzTargetData.get_element_offset°   sN   € ô
 —‘×/Ñ/°°b¸(ÓCˆØ�RŠ<Üð %ç%+¡V¨H´c¸"³gÓ%>ó@ð @ð ˆrG   c                 óB   — t         j                  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‰w×0Ñ0°°rÓ:Ð:rG   N)	rH   rI   rJ   rK   rx   r~   rƒ   rŠ   r�   rL   rG   r   ro   ro   š   s    „ ñò
ò2ò6ò
ó;rG   ro   )ÚdefaultÚstaticÚpicÚdynamicnopic)rŽ   Ú
jitdefaultÚsmallÚkernelÚmediumÚlargec                   ót   — 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y	)ÚTargetr$   c                 ó8   — t        «       }| j                  |«      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Ó&Ð&rG   c                 ó  — t        j                  «       5 }t         j                  j                  |j	                  d«      |«      }|st        t        |«      «      ‚ | |«      }||_        |cddd«       S # 1 sw Y   yxY w)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Ö   so   € ô
 ×ÑÓð 	 6Ü—W‘W×7Ñ7¸¿¹ÀfÓ8MØ8>ó@ˆFáÜ"¤3 v£;Ó/Ð/Ù˜“[ˆFØ#ˆFŒNØ÷	÷ 	ò 	ús   •AA5Á5A>c                 óV   — t         j                  j                  | «      }t        |«      S rz   )r
   r   ÚLLVMPY_GetTargetNamer   ©rC   Úss     r   ÚnamezTarget.nameä   s!   € ä�G‰G×(Ñ(¨Ó.ˆÜ˜aÓ Ð rG   c                 óV   — t         j                  j                  | «      }t        |«      S rz   )r
   r   ÚLLVMPY_GetTargetDescriptionr   r¥   s     r   ÚdescriptionzTarget.descriptioné   s!   € ä�G‰G×/Ñ/°Ó5ˆÜ˜aÓ Ð rG   c                 ó   — | j                   S rz   )r    r}   s    r   r!   zTarget.tripleî   s   € à�|‰|ÐrG   c                 óN   — dj                  | j                  | j                  «      S )Nz<Target {0} ({1})>)r9   r§   rª   r}   s    r   rx   zTarget.__str__ò   s   € Ø#×*Ñ*¨4¯9©9°d×6FÑ6FÓGÐGrG   c	                 ó¬  — d|cxk  rdk  sJ ‚ J ‚|t         v sJ ‚|t        v sJ ‚| j                  }	t        j                  dk(  r
|dk(  r|	dz  }	t
        j                  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Ÿ   )rC   ÚcpuÚfeaturesÚoptÚrelocÚ	codemodelÚprintmcÚjitÚabinamer!   Útms              r   Úcreate_target_machinezTarget.create_target_machineõ   sÍ   € ð$ �CŒ}˜1Š}Ð‰}Ðˆ}Øœ‰~Ðˆ~ØœIÑ%Ð%Ð%Ø—‘ˆô �7‰7�dŠ?˜y¨LÒ8Ø�fÑˆFÜ�W‰W×/Ñ/°Ü0>¸vÓ0FÜ0>¸sÓ0CÜ0>¸xÓ0HØ03Ü0>¸uÓ0EÜ0>¸yÓ0IÜ03°G³Ü03°C³Ü0>¸wÓ0Gó
2ˆñ Ü  Ó$Ð$äÐ=Ó>Ð>rG   N)r$   r$   rc   rŽ   r’   FFr$   )rH   rI   rJ   r    Úclassmethodrœ   rš   Úpropertyr§   rª   r!   rx   r½   rL   rG   r   r˜   r˜   È   s�   „ Ø€Gð
 ñ'ó ð'ð ñó ðð ñ!ó ð!ð ñ!ó ð!ð ñó ðòHð 68Ø@LØ@Bô)?rG   r˜   c                   óR   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd
d„Ze	d„ «       Z
e	d„ «       Zy	)r³   c                 ó:   — | j                   j                  | «       y rz   )r{   ÚLLVMPY_DisposeTargetMachiner}   s    r   r~   zTargetMachine._dispose#  s   € Ø�
‰
×.Ñ.¨tÕ4rG   c                 óD   — t         j                  j                  | |«       y)zW
        Register analysis passes for this target machine with a pass manager.
        N)r
   r   ÚLLVMPY_AddAnalysisPasses)rC   Úpms     r   Úadd_analysis_passesz!TargetMachine.add_analysis_passes&  s   € ô 	�‰×(Ñ(¨¨rÕ2rG   c                 óD   — t         j                  j                  | |«       y)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)rC   Úverboses     r   Úset_asm_verbosityzTargetMachine.set_asm_verbosity,  s   € ô
 	�‰×3Ñ3°D¸'ÕBrG   c                 ó(   — | j                  |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©rC   Úmodules     r   Úemit_objectzTargetMachine.emit_object3  s   € ð
 ×#Ñ# F°tÐ#Ó<Ð<rG   c                 ó:   — t        | j                  |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ÓMÐMrG   c                 óô  — t        j                  «       5 }t         j                  j                  | |t	        |«      |«      }|st        t        |«      «      ‚	 ddd«       t         j                  j                  «      }t         j                  j                  |«      }	 t        ||«      t         j                  j                  |«       S # 1 sw Y   ŒsxY w# t         j                  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)rC   rÐ   rÍ   r¡   ÚmbÚbufptrÚbufszs          r   rÎ   zTargetMachine._emit_to_memoryB  sÃ   € ô ×ÑÓð 	0 6Ü—‘×9Ñ9¸$ÀÜ:=¸j»/Ø:@óBˆBñ Ü"¤3 v£;Ó/Ð/ð ÷		0ô —‘×.Ñ.¨rÓ2ˆÜ—‘×,Ñ,¨RÓ0ˆð	3Ü˜V UÓ+ä�G‰G×.Ñ.¨rÕ2÷	0ð 	0ûô �G‰G×.Ñ.¨rÕ2ús   •AC
ÂC Ã
CÃ!C7c                 óR   — t        t        j                  j                  | «      «      S rz   )ro   r
   r   ÚLLVMPY_CreateTargetMachineDatar}   s    r   Útarget_datazTargetMachine.target_dataX  s   € äœ#Ÿ'™'×@Ñ@ÀÓFÓGÐGrG   c                 ó¬   — t        j                  «       5 }t         j                  j                  | |«       t	        |«      cd d d «       S # 1 sw Y   y xY wrz   )r
   r   r   ÚLLVMPY_GetTargetMachineTripler   rw   s     r   r!   zTargetMachine.triple\  s@   € ä×ÑÓð 	 3Ü�G‰G×1Ñ1°$¸Ô<Ü�s“8÷	÷ 	ò 	ús   •+A
Á
AN)F)rH   rI   rJ   r~   rÆ   rÊ   rÑ   rÓ   rÎ   r¿   rÞ   r!   rL   rG   r   r³   r³   !  sL   „ ò5ò3òCò=òNó3ð, ñHó ðHð ñó ñrG   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   rG   r   ú<module>rõ      sQ  ðÛ 	÷)÷ )ñ )õ !Ý 7ß BÝ "õ :ñ 
�Hò <ó 
=€ò	ð;˜Só ;ô&.�ô .ò2ò2òð ' qÑ)Ð ð ØØØØØØØØñ
€ó	 òOô&;�—‘ô &;ñR 	Ò>Ó?€Ùò  ó !€	ôV?ˆS�]‰]ô V?ôr?�C—M‘Mô ?ñJ -4°HÓ,=Ð+>€‡�× Ñ Ô (Ø*2±G¸HÓ4EÙ*1°(Ó*;¹WÀXÓ=NÙ*1°(Ó*;ð*=€‡�× Ñ Ô &ñ /6°hÓ.?Ð-@€‡�× !Ñ !Ô *Ø,1€‡�× !Ñ !Ô )á29¸(Ó2CÐ1D€‡�× %Ñ %Ô .á*1°(Ó*;Ð)<€‡�× Ñ Ô &à19°
€‡�× $Ñ $Ô -Ø/4€‡�× $Ñ $Ô ,à,4¨:€‡�× Ñ Ô (Ø*-×*?Ñ*?€‡�× Ñ Ô 'ð ×ÑÙˆHÓð5€‡�× (Ñ (Ô 1ð ×Ñð-€‡�×  Ñ  Ô )ð *-×)>Ñ)>Ø),¯©ð):€‡�× Ñ Ô %à'1€‡�× Ñ Ô $à+.×+@Ñ+@Ø+.¯?©?Ø+0ð+2€‡�× Ñ Ô 'ð *4€‡�× Ñ Ô &à.1×.CÑ.CØ.1¯o©oð.?€‡�× !Ñ !Ô *à,6€‡�× !Ñ !Ô )à/7¹ÀÓ9JÐ.K€‡�× "Ñ "Ô +Ø-0×->Ñ->€‡�× "Ñ "Ô *à),×):Ñ):Ð(;€‡�× Ñ Ô %Ø'/€‡�× Ñ Ô $à03×0AÑ0AÐ/B€‡�× #Ñ #Ô ,Ø.6€‡�× #Ñ #Ô +ð ×Ñàààà	ààà	à	àð'/€‡�× "Ñ "Ô +ð* .1×-EÑ-E€‡�× "Ñ "Ô *à03×0HÑ0HÐ/I€‡�× #Ñ #Ô ,à25×2JÑ2JÙ29¸(Ó2Cð2E€‡�× %Ñ %Ô .ð ×Ñ˜eð8%€‡�× +Ñ +Ô 4ð ×ÑØ×Ñð-€‡�×  Ñ  Ô )ð ×ÑØ×ÑØ	ÙˆHÓð	5€‡�× (Ñ (Ô 1ð 47×3JÑ3J€‡�× (Ñ (Ô 0à*-×*AÑ*AÐ)B€‡�× Ñ Ô &Ø(0€‡�× Ñ Ô %à),×)@Ñ)@Ð(A€‡�× Ñ Ô %Ø'/€‡�× Ñ Ô $à/2×/FÑ/FÐ.G€‡�× "Ñ "Ô +ð ×Ñð3€‡�× &Ñ &Ô /ð 25×1FÑ1F€‡�× &Ñ &Õ .rG   