Ë
    Ûéñi:  ã                   óH  — d dl mZmZmZmZ d dlZd dlmZ d dlm	Z
 d dlmZ d dlmZ d dl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 ddlmZ ddlmZ dZ G d„ d«      Z  G d„ d«      Z!dee"ejF                  f   dejF                  fd„Z$de"fd„Z% G d„ de«      Z&y)é    )ÚDictÚOptionalÚUnionÚAnyN)Úir)Úproton)Úamd)Únvidia)Úpasses)ÚLazyDict)Úset_profile_allocatorÚNullAllocator)Úbackendsé   )ÚHooké   )Úflags)Úmodec                   ó,   — e Zd Zd„ Zdededee   fd„Zy)ÚCudaAllocatorc                 ó   — || _         y ©N)Úinstrumentation_hook)Úselfr   s     úg/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/triton/profiler/hooks/instrumentation.pyÚ__init__zCudaAllocator.__init__   s
   € Ø$8ˆÕ!ó    ÚsizeÚ	alignmentÚstreamc                 óF  — || j                   j                  k7  r%t        d|› d| j                   j                  › �«      ‚||z   dz
  |z  |z  }t        || j                   j                  «      }dd l}|j                  |f|j                  d¬«      }|| j                   _        |S )NzAlignment mismatch: z != r   r   Úcuda©ÚdtypeÚdevice)	r   Úprofile_buffer_alignmentÚRuntimeErrorÚmaxÚprofile_buffer_sizeÚtorchÚemptyÚuint8Úbuffer)r   r   r   r    Úaligned_sizer*   r-   s          r   Ú__call__zCudaAllocator.__call__   s¨   € Ø˜×1Ñ1×JÑJÒJÜØ& y k°°d×6OÑ6O×6hÑ6hÐ5iÐjólð là˜yÑ(¨1Ñ,°Ñ:¸YÑFˆô
 ˜<¨×)BÑ)B×)VÑ)VÓWˆó 	Ø—‘˜lÐ-°U·[±[È�ÓPˆØ+1ˆ×!Ñ!Ô(Øˆr   N)Ú__name__Ú
__module__Ú__qualname__r   Úintr   r/   © r   r   r   r      s%   „ ò9ð˜Sð ¨Sð ¸(À3¹-ô r   r   c                   ó@   — e Zd Zdeeef   fd„Zdefd„Zdefd„Zd„ Z	y)ÚInstrumentationÚir_mapc                 ó   — || _         y r   )Úmanager)r   r7   s     r   r   zInstrumentation.__init__/   s	   € Øˆ�r   r   c                 óZ   — || j                   v rt        d|› �«      ‚|| j                   |<   y )NzIR already registered: )r9   r'   )r   r   Úfuncs      r   ÚregisterzInstrumentation.register2   s/   € Ø�—‘ÑÜÐ!8¸¸Ð=Ó>Ð>Øˆ�‰�RÒr   c                 ón   — | j                  |«       || j                  v r | j                  |   |«       y y r   )Úload_dialectsr9   )r   r   ÚpmÚcontexts       r   ÚpatchzInstrumentation.patch7   s4   € Ø×Ñ˜7Ô#Ø�—‘ÑØˆD�L‰L˜Ñ˜RÕ ð r   c                 ó.   — t        j                  |«       y r   )Útriton_protonr>   )r   Úctxs     r   r>   zInstrumentation.load_dialects<   s   € Ü×#Ñ# CÕ(r   N)
r0   r1   r2   r   Ústrr   r   r<   rA   r>   r4   r   r   r6   r6   -   s3   „ ð˜t C¨ H™~ó ð ˜3ó  ð
!˜ó !ó
)r   r6   Úmode_objÚreturnc                 óÌ  ‡
— t        | t        j                  «      r| S | sd} | j                  d«      }|d   }i }|dd  D ]/  }d|v r|j                  dd«      \  }}|||<   Œ"t	        d|› d�«      ‚ |j                  dd	«      |j                  d
d«      |j                  dd«      t        |j                  dd«      «      |j                  dd«      |j                  dd«      |j                  dd«      |j                  dd«      dœŠ
ˆ
fd„} |dt        j                  «      ‰
d<    |d
t        j                  «      ‰
d
<    |dt        j                  «      ‰
d<    |dt        j                  «      ‰
d<    |dt        j                  «      ‰
d<   t        ‰
d   «      dkD  r0‰
d   j                  d«      D �cg c]  }|j                  «       ‘Œ c}ng }	|	D ]"  }|t        j                  vsŒt	        d|› �«      ‚ |	D �cg c]  }t        j                  |   ‘Œ c}‰
d<   |dk(  rt        j                  di ‰
¤ŽS |dk(  rt        j                   di ‰
¤ŽS t	        d| › �«      ‚c c}w c c}w )NÚdefaultú:r   r   ú=z#Malformed instrumentation option: 'ú'Úmetric_typeÚcycleÚbuffer_typeÚsharedÚbuffer_strategyÚcircularÚbuffer_sizeÚ0ÚgranularityÚwarpÚsampling_strategyÚnoneÚsampling_optionsÚ Úoptimizations)rM   rO   rQ   rS   rU   rW   rY   r[   c                 óN   •— ‰|    }|r||vrt        d| › d|› �«      ‚|r||   S |S )NzUnknown z: )Ú
ValueError)Úopt_nameÚmappingÚvalueÚoptionss      €r   Úget_option_valuez)_interpret_mode.<locals>.get_option_valueY   s@   ø€ Ø˜Ñ!ˆÙ�U 'Ñ)Ü˜x¨ z°°E°7Ð;Ó<Ð<Ù!&ˆw�u‰~Ð1¨EÐ1r   ú,zUnknown optimization: ÚmmazUnknown mode: r4   )Ú
isinstancer   ÚInstrumentationModeÚsplitr]   Úgetr3   Úmetric_typesÚbuffer_typesÚbuffer_strategiesÚgranularitiesÚsampling_strategiesÚlenÚstripr[   ÚDefaultÚMMA)rF   ÚpartsÚ	mode_nameÚoptsÚoptÚkeyÚvalrb   r`   Úvaluesra   s             @r   Ú_interpret_modery   @   s‡  ø€ Ü�(œD×4Ñ4Ô5ØˆÙØˆà�N‰N˜3Ó€EØ�a‘€IØ€DØ�Q�Rˆyò KˆØ�#‰:Ø—y‘y  aÓ(‰HˆC�ØˆD�ŠIäÐBÀ3À%ÀqÐIÓJÐJðKð —x‘x ¨wÓ7ÈÏÉÐQ^Ð`hÓHiØŸ8™8Ð$5°zÓBÔSVÐW[×W_ÑW_Ð`mÐorÓWsÓStØ—x‘x ¨vÓ6ÈTÏXÉXÐViÐkqÓMrØ ŸH™HÐ%7¸Ó<ÈtÏxÉxÐXgÐikÓOlñ	€Gô2ñ .¨m¼T×=NÑ=NÓO€GˆMÑÙ-¨m¼T×=NÑ=NÓO€GˆMÑÙ!1Ð2CÄT×E[ÑE[Ó!\€GÐÑÙ-¨m¼T×=OÑ=OÓP€GˆMÑÙ#3Ð4GÌ×IaÑIaÓ#b€GÐÑ ô EHÈÐP_ÑH`ÓDaÐdeÒDe˜G OÑ4×:Ñ:¸3Ó?öAØð �{‰{�}ó AØkmð àò ?ˆØœ×*Ñ*Ò*ÜÐ5°e°WÐ=Ó>Ð>ð?ð HNÖN¸e¤× 2Ñ 2°5Ó 9ÒN€GˆOÑð �IÒÜ�|‰|Ñ&˜gÑ&Ð&Ø	�eÒ	Ü�x‰xÑ"˜'Ñ"Ð"ä˜>¨(¨Ð4Ó5Ð5ùòAùò
  Os   Æ3IÇ:I!c                  ó®   — t         j                  j                  j                  j	                  «       j
                  } | dk(  ry| dk(  ryt        d| › �«      ‚)Nr"   r
   Úhipr	   zUnsupported backend: )ÚtritonÚruntimeÚdriverÚactiveÚget_current_targetÚbackendr'   )r�   s    r   Ú_get_backend_namer‚   v   sO   € Ü�n‰n×#Ñ#×*Ñ*×=Ñ=Ó?×GÑG€GØ�&ÒØØ	�EÒ	ØäÐ2°7°)Ð<Ó=Ð=r   c                   ó  — e Zd ZU dZeed<   dZeed<   dZeed<   dZ	e
e   ed<   dZeed	<   d
Zeed<   dedeej"                  f   fd„Zd„ Zd„ Zdedededeeef   deddfd„Zdefd„Zdeddfd„Zdeddfd„Zdeddfd„Zy)ÚInstrumentationHookr   ÚpriorityÚactive_countFÚenable_host_bufferNÚhost_bufferr   r)   é€   r&   rF   c                 ó`   — t        |«      | _        t        | «      | _        d | _        i | _        y r   )ry   r   r   Ú	allocatorr-   Úmetadata_path)r   rF   s     r   r   zInstrumentationHook.__init__Š   s)   € ä.=¸hÓ.GˆŒ	ä& tÓ,ˆŒØˆŒØ79ˆÕr   c                 óˆ  ‡ ‡‡‡‡‡— t         j                  dkD  rt        d«      ‚t         xj                  dz  c_        dt        _        t
        j                  j                  j                  j                  «       Št
        j                  j                  j                  j                  j                  ‰«      d   Št        «       Šˆˆˆ fd„Šˆˆfd„Št        ˆfd„ˆfd	„d
œ«      t        ‰   j                  _        t#        ‰ j$                  «       t'        ‰ j(                  «      t
        j*                  j,                  _        y )Nr   zFOnly one instance of the instrumentation hook can be active at a time.r   TÚmax_shared_memc                 óx  •— t         j                  j                  ‰j                   j                  v rdnd}t	        j
                  | ‰j                   j                  ‰j                   j                  ‰j                   j                  ‰j                   j                  ‰j                   j                  ‰j                   j                  ‰j                   j                  ‰‰j                  ‰j                  |«       t        j                   j#                  | «       t         j                  j$                  ‰j                   j                  v rt	        j&                  | «       t	        j(                  | «       t         j                  j*                  ‰j                   j                  v r‰dk(  rt	        j,                  | «       y y y )NFTr	   )r   ÚOptimizeÚCLOCK32r[   rC   Úadd_convert_proton_to_protongpurM   rW   rY   rU   rQ   rO   rS   r)   r&   Útriton_passesÚcommonÚadd_cseÚSCHED_STORESÚadd_schedule_buffer_storeÚ!add_allocate_proton_shared_memoryÚSCHED_BARRIERSÚadd_sched_barriers)r?   Úis_long_clkÚbackend_namerŽ   r   s     €€€r   Úto_llvmir_passesz6InstrumentationHook.activate.<locals>.to_llvmir_passesž   s9  ø€ Ü#'§=¡=×#8Ñ#8¸D¿I¹I×<SÑ<SÑ#S™%ÐY]ˆKÜ×9Ñ9¸"¸d¿i¹i×>SÑ>SÐUY×U^ÑU^×UpÑUpØ:>¿)¹)×:TÑ:TÐVZ×V_ÑV_×VkÑVkØ:>¿)¹)×:SÑ:SÐUY×U^ÑU^×UjÑUjØ:>¿)¹)×:OÑ:OÐQ_Ø:>×:RÑ:RÐTX×TqÑTqØ:EôGô × Ñ ×(Ñ(¨Ô,ä�}‰}×)Ñ)¨T¯Y©Y×-DÑ-DÑDÜ×7Ñ7¸Ô;ä×;Ñ;¸BÔ?ä�}‰}×+Ñ+¨t¯y©y×/FÑ/FÑFÈ<Ð[`ÒK`Ü×0Ñ0°Õ4ð LaÐFr   c                 óB  •— t        j                  | «       ‰dk(  rt        j                  | «       y ‰dk(  rit        j                  j
                  j                  j                  j                  ‰«      d   j                  d«      d   }t        j                  | |«       y y )Nr
   r	   ÚarchrJ   r   )rC   Ú)add_allocate_proton_global_scratch_bufferÚ%add_convert_proton_nvidia_gpu_to_llvmr|   r}   r~   r   ÚutilsÚget_device_propertiesrg   Ú"add_convert_proton_amd_gpu_to_llvm)r?   rŸ   rœ   r%   s     €€r   Úto_llvm_passesz4InstrumentationHook.activate.<locals>.to_llvm_passes°   sƒ   ø€ Ü×CÑCÀBÔGØ˜xÒ'Ü×CÑCÀBÕGØ Ò&Ü—~‘~×,Ñ,×3Ñ3×9Ñ9×OÑOÐPVÓWÐX^Ñ_×eÑeÐfiÓjÐklÑm�Ü×@Ñ@ÀÀTÕJð 'r   c                 ó   •—  ‰| «      S r   r4   )r?   r�   s    €r   ú<lambda>z.InstrumentationHook.activate.<locals>.<lambda>º   s   ø€ Ñ'¨Ó+€ r   c                 ó   •—  ‰| «      S r   r4   )r?   r¥   s    €r   r§   z.InstrumentationHook.activate.<locals>.<lambda>¼   s   ø€ ‘~ bÓ)€ r   )Úttgpuir_to_llvmirÚllvmir_to_llvm)r„   r†   r'   r   Úinstrumentation_onr|   r}   r~   r   Úget_current_devicer¢   r£   r‚   r6   r   ÚcompilerÚinstrumentationr   r‹   rE   r   ÚknobsÚcompilationÚinstrumentation_mode)r   rœ   r%   rŽ   r¥   r�   s   `@@@@@r   ÚactivatezInstrumentationHook.activate’   så   ý€ Ü×+Ñ+¨aÒ/ÜÐgÓhÐhä×(Ò(¨AÑ-Õ(à#'ŒÔ ä—‘×&Ñ&×-Ñ-×@Ñ@ÓBˆÜŸ™×.Ñ.×5Ñ5×;Ñ;×QÑQÐRXÓYÐZjÑkˆÜ(Ó*ˆö	5õ$	Kô ;Jã+ã)ñ	K
ó ;Œ�Ñ×'Ñ'Ô7ô 	˜dŸn™nÔ-ô 9<¸D¿I¹I»Œ�‰× Ñ Õ5r   c                 ó@  — t         j                  dk(  ry t         xj                  dz  c_        t        «       }i t        |   j                  _        dt        _        dt        j                  j                  _        t        t        «       «       d t         _        d | _        y )Nr   r   FrZ   )r„   r†   r‚   r   r­   r®   r   r«   r|   r¯   r°   r±   r   r   rˆ   r-   )r   rœ   s     r   Ú
deactivatezInstrumentationHook.deactivateÅ   s   € Ü×+Ñ+¨qÒ0Øä×(Ò(¨AÑ-Õ(ä(Ó*ˆð ;=Œ�Ñ×'Ñ'Ô7ð $)ŒÔ ð 9;Œ�‰× Ñ Ô5ô 	œm›oÔ.ð +/ÔÔ'ð ˆ�r   ÚmoduleÚfunctionÚnameÚmetadata_groupÚhashrG   c                 ó†  — |sy t        d„ |j                  «       D «       d «      }t        d„ |j                  «       D «       d «      }|| j                  |<   |rÞt        j                  «       }t        j
                  |«       t        «       }	|	dk(  rt        j
                  |«       n|	dk(  rt        j
                  |«       t        j
                  |«       t        j                  ||«      }||_        t        j                  |«      }
t        j                  |«      }t        j                  |||
||«       y t        d|› �«      ‚)Nc              3   óJ   K  — | ]  \  }}|j                  d «      sŒ|–— Œ y­w)ÚttgirN©Úendswith©Ú.0rv   Úpaths      r   ú	<genexpr>z2InstrumentationHook.init_handle.<locals>.<genexpr>ä   s    è ø€ Ò`¡  dÈÏÉÐV]ÕH_œÑ`ùó   ‚#œ#c              3   óJ   K  — | ]  \  }}|j                  d «      sŒ|–— Œ y­w)ÚjsonNr½   r¿   s      r   rÂ   z2InstrumentationHook.init_handle.<locals>.<genexpr>å   s    è ø€ Òe¡y s¨DÈcÏlÉlÐ\bÕNdœdÑeùrÃ   r
   r	   z+IR path not found in metadata for function )ÚnextÚitemsrŒ   Ú	triton_irr@   r>   r‚   Útriton_nvidiaÚ
triton_amdrC   Úparse_mlir_moduleÚget_scope_id_namesÚget_scope_id_parentsÚ	libprotonÚinit_function_metadatar'   )r   rµ   r¶   r·   r¸   r¹   Úir_pathrŒ   r@   rœ   Úscope_id_namesÚscope_id_parentss               r   Úinit_handlezInstrumentationHook.init_handleß   s  € ÙØô Ñ`¨n×.BÑ.BÓ.DÔ`ÐbfÓgˆÜÑe°N×4HÑ4HÓ4JÔeÐgkÓlˆØ'4ˆ×Ñ˜8Ñ$áÜ×'Ñ'Ó)ˆGÜ×#Ñ# GÔ,Ü,Ó.ˆLØ˜xÒ'Ü×+Ñ+¨GÕ4Ø Ò&Ü×(Ñ(¨Ô1Ü×'Ñ'¨Ô0Ü×0Ñ0°¸'ÓBˆFØ$ˆFŒNä*×=Ñ=¸fÓEˆNÜ,×AÑAÀ&ÓIÐÜ×,Ñ,¨X°t¸^ÐM]Ð_lÕmäÐ!LÈXÈJÐWÓXÐXr   c                 óR   — | j                   €dS | j                   j                  «       S )Nr   )r-   Údata_ptr)r   s    r   Ú	_data_ptrzInstrumentationHook._data_ptrú   s#   € Ø—K‘KÐ'ˆqÐC¨T¯[©[×-AÑ-AÓ-CÐCr   Úmetadatac                 óz  — |j                   j                  d«      }|j                   j                  d«      }| j                  €dn4| j                  j                  «       | j                  j	                  «       z  }t        j                  ||| j                  «       |«       t        j                  rd t        _
        y y ©Nr¶   r    r   )Údatarh   r-   Úelement_sizeÚnumelrÎ   Úenter_instrumented_oprÖ   r„   r‡   rˆ   ©r   r×   r;   r    Ú
alloc_sizes        r   ÚenterzInstrumentationHook.enterý   sŽ   € Ø�}‰}× Ñ  Ó,ˆØ—‘×"Ñ" 8Ó,ˆØŸ+™+Ð-‘Q°4·;±;×3KÑ3KÓ3MÐPT×P[ÑP[×PaÑPaÓPcÑ3cˆ
Ü×'Ñ'¨°°d·n±nÓ6FÈ
ÔSÜ×1Ò1Ø.2ÔÕ+ð 2r   c                 ó†  — |j                   j                  d«      }|j                   j                  d«      }| j                  €dn4| j                  j                  «       | j                  j	                  «       z  }t        j                  ||| j                  «       |«       t        j                  r| j                  |«       y y rÙ   )rÚ   rh   r-   rÛ   rÜ   rÎ   Úexit_instrumented_oprÖ   r„   r‡   Ú_populate_host_bufferrÞ   s        r   ÚexitzInstrumentationHook.exit  s“   € Ø�}‰}× Ñ  Ó,ˆØ—‘×"Ñ" 8Ó,ˆØŸ+™+Ð-‘Q°4·;±;×3KÑ3KÓ3MÐPT×P[ÑP[×PaÑPaÓPcÑ3cˆ
Ü×&Ñ& v¨t°T·^±^Ó5EÀzÔRä×1Ò1Ø×&Ñ& tÕ,ð 2r   c           
      óÐ  — |�rÌ| j                   |   �r»dd l}dd l}dd l}dt        t
        t        f   dt        fd„}| j                  €dn4| j                  j                  «       | j                  j                  «       z  }| j                  j                  j                  «       j                  d«      }i }t        | j                   |   d«      5 }	|j!                  |	«      }d d d «        ||d   «      }
|d   }|d   }| j                  j"                  t$        j&                  j(                  k(  r|n
t+        |«      }t        ||z  «      }| j                  j                  d	k(  xr1 | j                  j,                  t$        j.                  j0                  k(  }|rt3        |«      D �cg c]  }|‘Œ }}n|D �cg c]  }t        |«      ‘Œ }}d
|dz  z   }d}|}|}t4        |||||
||||g
|¢} |j6                  dt+        |«      z  g|¢­Ž }|j9                  ||z   |j:                  d¬«      t<        _        t<        j>                  d | }|jA                  |jC                  tE        |«      |j:                  ¬«      «       t<        j>                  |d  jG                  | j                  «      }|jA                  | j                  jI                  «       «       y y y # 1 sw Y   �ŒóxY wc c}w c c}w )Nr   ÚtargetrG   c                 ó(   — | d   dk(  ry| d   dk(  ryy)Nr�   r"   r   r{   r   r   r4   )ræ   s    r   Úencode_targetz@InstrumentationHook._populate_host_buffer.<locals>.encode_target  s%   € à˜)Ñ$¨Ò.ØØ˜IÑ&¨%Ò/ØØr   rc   ÚrÚprofile_scratch_sizeÚ	num_warpsrZ   é(   é   ÚIÚcpur#   )r$   )%rŒ   r*   ÚstructrÅ   r   rE   r   r3   r-   rÛ   rÜ   r   rY   ro   rg   ÚopenÚloadrW   rC   ÚSAMPLING_STRATEGYÚNONErn   rU   ÚGRANULARITYÚWARPÚrangeÚVERSIONÚpackr+   r,   r„   rˆ   Úcopy_ÚtensorÚlistÚview_asrï   )r   r¶   r*   rð   rÅ   rè   rß   Úsampled_warpsrÚ   ÚfileÚdevice_typeÚscratch_mem_sizeÚ
total_unitÚuid_numÚ	block_numÚis_all_warpsÚiÚuid_vecÚheader_sizeÚheader_offsetÚpayload_offsetÚpayload_sizeÚheader_valuesÚheader_bytesÚconfig_portionÚdata_portions                             r   rã   z)InstrumentationHook._populate_host_buffer  s§  € Ú˜×*Ñ*¨8Ó4ÛÛÛð¤d¬3´¨8¡nð ¼ó ð #Ÿk™kÐ1™°t·{±{×7OÑ7OÓ7QÐTX×T_ÑT_×TeÑTeÓTgÑ7gˆJØ ŸI™I×6Ñ6×<Ñ<Ó>×DÑDÀSÓIˆMØˆDÜ�d×(Ñ(¨Ñ2°CÓ8ð '¸DØ—y‘y “�÷'ñ (¨¨X©Ó7ˆKØ#Ð$:Ñ;ÐØ˜kÑ*ˆJØ$(§I¡I×$?Ñ$?Ä=×CbÑCb×CgÑCgÒ$g‘jÔmpØónˆGä˜JÐ)9Ñ9Ó:ˆIðB  Ÿ9™9×5Ñ5¸Ñ;ÒwÀÇ	Á	×@UÑ@UÔYf×YrÑYr×YwÑYwÑ@wˆLÙÜ&+¨JÓ&7Ö8 š1Ð8�Ñ8à+8Ö9 aœ3˜q�6Ð9�Ð9à˜w¨™{Ñ*ˆKØˆMØ(ˆNØ%ˆLä˜¨°^À\ÐS^Ð`iÐkuØ  'ðà,3ðˆMð '˜6Ÿ;™; s¬S°Ó-?Ñ'?ÐPÀ-ÒPˆLà.3¯k©k¸+È
Ñ:RÐZ_×ZeÑZeÐns¨kÓ.tÔÔ+Ü0×<Ñ<¸\¸kÐJˆNØ× Ñ  §¡¬d°<Ó.@ÈÏÉ Ó!TÔUÜ.×:Ñ:¸;¸<ÐH×PÑPÐQU×Q\ÑQ\Ó]ˆLØ×Ñ˜tŸ{™{Ÿ™Ó0Õ1ð[ 5ˆ8÷ 'ñ 'üòV 9ùâ9s   ÃKÆ$	KÆ4K#ËK)r0   r1   r2   r…   r3   Ú__annotations__r†   r‡   Úboolrˆ   r   r   r)   r&   r   rE   r   rf   r   r²   r´   r   rÓ   rÖ   r   rà   rä   rã   r4   r   r   r„   r„   €   sþ   … Ø€HˆcÓà€L�#ÓØ$Ð˜Ó$Ø!%€K�˜#‘Ó%à Ð˜Ó Ø$'Ð˜cÓ'ð:  t¨S°$×2JÑ2JÐ'JÑ!Kó :ò1Gòfð4Y #ð Y°ð Y¸Cð YÐQUÐVYÐ[^ÐV^ÑQ_ð YÐgjð YÐosó Yð6D˜3ó Dð3˜hð 3¨4ó 3ð-˜Xð -¨$ó -ðN2¨cð N2°dô N2r   r„   )'Útypingr   r   r   r   r|   Útriton._C.libtritonr   rÈ   r   rC   r	   rÊ   r
   rÉ   r   r“   Útriton._C.libprotonrÎ   Útriton.compilerr   Útriton.runtime._allocationr   r   Útriton.backendsr   Úhookr   r   rZ   r   rø   r   r6   rE   rf   ry   r‚   r„   r4   r   r   ú<module>r     s‘   ðß -Ó -ã Ý /Ý 7Ý 1Ý 7Ý 7Ý 3Ý $ß KÝ $å Ý Ý ð €÷ñ ÷.)ñ )ð&36˜e C¨×)AÑ)AÐ$AÑBð 36Àt×G_ÑG_ó 36ðl>˜3ó >ô\2˜$õ \2r   