ó
    „ñ:ioS  ã                   óæ  • S SK r S SKrS SKrS SKrS SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJrJrJrJrJr  S SKJrJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJ r    " S S\RB                  5      r" " S S\RB                  5      r#\RH                  " \RJ                  \"5        \RH                  " \RL                  \#5        \RH                  " \RN                  \RP                  5        S r)Sr*S r+\ " S S\,5      5       r-S r.S r/S r0S r1 " S S\Rd                  5      r3S r4 " S S\55      r6\Rn                   " S S \Rp                  5      5       r9\6Rt                  Rw                  \RJ                  5      S! 5       r<\6Rt                  R{                  \RJ                  5      S" 5       r>S# r?\6Rt                  R�                  \RN                  \R‚                  " \R„                  5      5      S$ 5       rCg)%é    N)ÚOrderedDict)ÚSequence)Úir)Únjit)ÚcgutilsÚerrorsÚimputilsÚtypesÚutils)Údefault_managerÚmodels)Ú
cpu_target)Ú	templates)Úas_numba_type)Údisable_pickling)Ú_boxc                   ó(   ^ • \ rS rSrU 4S jrSrU =r$ )ÚInstanceModelé   c                 óþ   >• [         R                  " U5      n[         R                  " S[        U5      -   5      nS[         R                  " U5      4S[         R
                  " U5      4/n[        [        U ]#  XU5        g )NzOpaque.ÚmeminfoÚdata)	r
   ÚClassDataTypeÚOpaqueÚstrÚMemInfoPointerÚCPointerÚsuperr   Ú__init__)ÚselfÚdmmÚfe_typÚcls_data_tyÚdtypeÚmembersÚ	__class__s         €Úc/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/experimental/jitclass/base.pyr   ÚInstanceModel.__init__   sk   ø€ Ü×)Ò)¨&Ó1ˆô
 —’˜Y¬¨[Ó)9Ñ9Ó:ˆàœ×,Ò,¨UÓ3Ð4Ø”U—^’^ KÓ0Ð1ð
ˆô 	Œm˜TÑ+¨C¸ÕAó    © ©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__static_attributes__Ú__classcell__©r&   s   @r'   r   r      s   ø† ÷Bó Br)   r   c                   ó(   ^ • \ rS rSrU 4S jrSrU =r$ )ÚInstanceDataModelé%   c                 óÄ   >• UR                   nUR                  R                  5        VVs/ s H  u  pE[        U5      U4PM     nnn[        [
        U ]  XU5        g s  snnf ©N)Ú
class_typeÚstructÚitemsÚ_mangle_attrr   r4   r   )r    r!   r"   ÚclstyÚkÚvr%   r&   s          €r'   r   ÚInstanceDataModel.__init__&   sT   ø€ Ø×!Ñ!ˆØ49·L±L×4FÑ4FÔ4HÔIÒ4H©D¨A”L “O QÓ'Ñ4HˆÑIÜÔ Ñ/°¸WÕEùó Js   «Ar*   r+   r2   s   @r'   r4   r4   %   s   ø† ÷Fó Fr)   r4   c                 ó   • SU -   $ )zN
Mangle attributes.
The resulting name does not startswith an underscore '_'.
Úm_r*   )Únames    r'   r;   r;   1   s   € ð
 �$‰;Ðr)   z3
def ctor({args}):
    return __numba_cls_({args})
c                 ó  • U R                   n/ nUR                  5        Hb  u  p4UR                  UR                  -  UR                  :X  a  UR	                  U5        M?  SUR                  -  n[
        R                  " U5      e   U$ )zA
Returns list of positional and keyword argument names in order.
z(%s argument type unsupported in jitclass)Ú
parametersr:   ÚkindÚPOSITIONAL_OR_KEYWORDÚappendr   ÚUnsupportedError)Úfn_sigÚparamsÚargsr=   r>   Úmsgs         r'   Ú_getargsrM   B   st   € ð ×Ñ€FØ€DØ—‘–‰ˆØ�F‰F�Q×,Ñ,Ñ,°×1HÑ1HÓHØ�K‰K˜ŽNà<¸q¿v¹vÑEˆCÜ×)Ò)¨#Ó.Ð.ñ ð €Kr)   c                   ó0   • \ rS rSrSrS rS rS rS rSr	g)	ÚJitClassTypeéQ   z
The type of any jitclass.
c                 óè   • [        U5      S:w  a  [        S5      eUu  n[        U[        5      (       a  [        S5      eSU;   d   S5       e[        R                  XX#5      nUR                  5         U$ )Né   z must have exactly one base classzcannot subclass from a jitclassr8   zmissing "class_type" attr)ÚlenÚ	TypeErrorÚ
isinstancerO   ÚtypeÚ__new__Ú	_set_init)ÚclsrB   ÚbasesÚdctÚbaseÚoutclss         r'   rW   ÚJitClassType.__new__V   sn   € Üˆu‹:˜‹?ÜÐ>Ó?Ð?Ø‰ˆÜ�dœL×)Ñ)ÜÐ=Ó>Ð>Ø˜sÓ"Ð?Ð$?Ó?Ð"Ü—‘˜c¨Ó4ˆØ×ÑÔØˆr)   c                 ó*  • U R                   R                  R                  S   n[        R                  " U5      n[        U5      SS nX l        [        R                  SR                  U5      S9nSU 0n[        XE5        US   n[        U5      U l        g)zz
Generate a wrapper for calling the constructor from pure Python.
Note the wrapper will only accept positional arguments.
r   rR   Nú, ©rK   Ú__numba_cls_Úctor)r8   Úinstance_typeÚmethodsr   ÚpysignaturerM   Ú	_ctor_sigÚ_ctor_templateÚformatÚjoinÚexecr   Ú_ctor)rY   ÚinitÚinit_sigrK   Úctor_sourceÚglblsrc   s          r'   rX   ÚJitClassType._set_inita   s‡   € ð
 �~‰~×+Ñ+×3Ñ3°JÑ?ˆÜ×$Ò$ TÓ*ˆô ˜Ó! ! "Ð%ˆØ ŒÜ$×+Ñ+°·±¸4³Ð+ÐAˆØ Ð%ˆÜˆ[Ô Ø�V‰}ˆÜ˜“Jˆ�	r)   c                 ó†   • [        U[        R                  5      (       a"  UR                  R                  U R                  L $ g)NF)rU   r   ÚBoxÚ_numba_type_r8   )rY   Úinstances     r'   Ú__instancecheck__ÚJitClassType.__instancecheck__r   s1   € Ü�h¤§¡×)Ñ)Ø×(Ñ(×3Ñ3°s·~±~ÐEÐEØr)   c                 ó´   • U R                   R                  " S /UQ70 UD6nUR                  5         U R                  " UR                  SS  0 UR
                  D6$ )NrR   )rg   ÚbindÚapply_defaultsrl   rK   Úkwargs)rY   rK   r{   ry   s       r'   Ú__call__ÚJitClassType.__call__w   sP   € ð �}‰}×!Ò! $Ð8¨Ò8°Ñ8ˆØ×ÑÔØ�yŠy˜$Ÿ)™) A B˜-Ð7¨4¯;©;Ñ7Ð7r)   r*   N)
r,   r-   r.   r/   Ú__doc__rW   rX   rv   r|   r0   r*   r)   r'   rO   rO   Q   s   † ñò	òò"õ
8r)   rO   c                 óÚ   • U R                  5        HW  u  p[        U[        5      (       d  [        SU< 35      e[        U[        R
                  5      (       a  MJ  [        SU< 35      e   g )Nz!spec keys should be strings, got z0spec values should be Numba type instances, got )r:   rU   r   rT   r
   ÚType)Úspecr=   r>   s      r'   Ú_validate_specr‚   ‚   sU   € Ø—
‘
–‰ˆÜ˜!œS×!Ñ!ÝÂQÐHÓIÐIÜ˜!œUŸZ™Z×(Ó(ÝÚ ð#ó $ð $ò	 r)   c                 ó¼   • [        5       nUR                  5        H=  u  p4UR                  S5      (       a  UR                  S5      (       d  SU -   U-   nXBU'   M?     U$ )z:
Apply the same changes to dunder names as CPython would.
Ú__Ú_)r   r:   Ú
startswithÚendswith)Úclsnamer�   Úoutr=   r>   s        r'   Ú_fix_up_private_attrrŠ   ‹   sV   € ô ‹-€CØ—
‘
–‰ˆØ�<‰<˜×Ñ a§j¡j°×&6Ñ&6Ø�g‘ Ñ!ˆAØˆA‹ñ ð €Jr)   c                 óP   • [        USS5      nU(       a  U R                  U5        gg)z;
Add the required libs for the callable to allow inlining.
Úlibsr*   N)ÚgetattrÚadd_linking_libs)ÚcontextÚcallrŒ   s      r'   Ú_add_linking_libsr‘   —   s(   € ô �4˜ Ó$€DÞØ× Ñ  Õ&ð r)   c                 óÔ  • Uc  [        5       nO [        U[        5      (       a  [        U5      n[        R                  " U 5      R                  5        H  u  pEXA;  d  M  [        U5      X'   M     [        U5        [        U R                  U5      n0 n[        [        R                  " U 5      5       H  nUR                  UR                  5        M      0 0 0 0 4u  p‰p«UR                  5        Hd  u  pÍ[        U[        R                   5      (       a  XØU'   M*  [        U["        5      (       a  XÙU'   ME  [        U[$        5      (       a  XÚU'   M`  XÛU'   Mf     ['        U5      ['        U	5      -  ['        U
5      -  ['        U5      -  nU(       a)  [)        SR+                  SR-                  U5      5      5      eUR/                  SS5      n[1        U5        U(       a;  SnSR-                  UR3                  5       5      n[5        UR+                  U5      5      eU	R                  5        H,  u  pÍUR6                  c  M  [5        SR+                  U5      5      e   UR                  5        VVs0 s H  u  pÍU[9        U5      _M     nnn0 nU	R                  5        H^  u  pÍ0 nUR:                  (       a  [9        UR:                  5      US'   UR<                  (       a  [9        UR<                  5      US'   UUU'   M`     U
R                  5        VVs0 s H  u  pÍU[9        UR>                  5      _M     nnnU" U [@        UUUU5      n[C        UUS	9nUR                  U5        [E        U R                  U 4U5      n [F        RH                  nURK                  U U5        [F        RL                  nU" UUU5      RO                  5         [        RN                  " U URP                  5        U $ s  snnf s  snnf )
a  
Internal function to create a jitclass.

Args
----
cls: the original class object (used as the prototype)
spec: the structural specification contains the field types.
class_ctor: the numba type to represent the jitclass
builder: the internal jitclass builder
zname shadowing: {0}r`   r~   Ú z(class members are not yet supported: {0}zdeleter is not supported: {0}ÚgetÚset)r8   r~   ))r   rU   r   ÚptÚget_type_hintsr:   r   r‚   rŠ   r,   ÚreversedÚinspectÚgetmroÚupdateÚ__dict__ÚpytypesÚFunctionTypeÚpropertyÚstaticmethodr•   Ú	NameErrorri   rj   ÚpopÚ_drop_ignored_attrsÚkeysrT   Úfdelr   ÚfgetÚfsetÚ__func__ÚConstructorTemplateÚdictrO   r   Útyping_contextÚinsert_globalÚtarget_contextÚregisterrd   )rY   r�   Ú
class_ctorÚbuilderÚattrÚpy_typeÚclsdctÚbaseclsre   ÚpropsÚstatic_methodsÚothersr=   r>   ÚshadowedÚ	docstringrL   r%   Újit_methodsÚ	jit_propsr[   Újit_static_methodsr8   Újit_class_dctÚ	typingctxÚ	targetctxs                             r'   Úregister_class_typerÀ       sG  € ð �|Ü‹}‰Ü	�Dœ(×	#Ñ	#Ü˜4Ó ˆô ×*Ò*¨3Ó/×5Ñ5Ö7‰ˆØÕÜ& wÓ/ˆD‹Jñ 8ô �4Ôô   §¡¨dÓ3€Dð €FÜœGŸNšN¨3Ó/Ö0ˆØ�‰�g×&Ñ&Ö'ñ 1ð .0°°R¸¨^Ñ*€G�NØ—‘–‰ˆÜ�aœ×-Ñ-×.Ñ.Ø�A‹JÜ˜œ8×$Ñ$Ø�!‹HÜ˜œ<×(Ñ(Ø !˜1Óà�1‹Iñ ô �G“œs 5›zÑ)¬C°Ó,?Ñ?Ä3ÀtÃ9ÑL€HÞÜÐ-×4Ñ4°T·Y±Y¸xÓ5HÓIÓJÐJà—
‘
˜9 bÓ)€IÜ˜ÔÞØ8ˆØ—)‘)˜FŸK™K›MÓ*ˆÜ˜Ÿ
™
 7Ó+Ó,Ð,à—‘–‰ˆØ�6‰6ÓÜÐ;×BÑBÀ1ÓEÓFÐFñ ð +2¯-©-¬/Ô:ª/¡$ !�1”d˜1“g’:©/€KÑ:à€IØ—‘–‰ˆØˆØ�6�6Ü˜aŸf™f›ˆC�‰JØ�6�6Ü˜aŸf™f›ˆC�‰JØˆ	�!‹ñ ð )7×(<Ñ(<Ô(>ô@Ú(>¡ ˆŒ4�—
‘
ÓÒÑ(>ð ñ @ñ ØÜØØØØó€Jô  J¸	ÑB€MØ×ÑÐ+Ô,Ü
�s—|‘| c V¨]Ó
;€Cô ×)Ñ)€IØ×Ñ˜C Ô,ô ×)Ñ)€IÙˆJ˜	 9Ó-×6Ñ6Ô8Ü×Ò˜3 
× 8Ñ 8Ô9à€JùóI ;ùó@s   É&OÌ"O$c                   ó   • \ rS rSrSrS rSrg)r©   i  z0
Base class for jitclass constructor templates.
c                 ó¾  • U R                   R                  nUR                  S   nUR                  5       4U-   n[        R
                  " U5      nUR                  U R                  XR5      n[        UR                  [        R                  5      (       d$  [        R                  " SUR                   S35      e[        R                  " U/UR                  SS  Q76 nU$ )Nr   z$__init__() should return None, not 'Ú'rR   )Úkeyrd   rº   Úget_reference_typer
   Ú
DispatcherÚget_call_typer�   rU   Úreturn_typeÚNoneTyper   ÚNumbaTypeErrorr   Ú	signaturerK   )	r    rK   Úkwsrd   rc   Ú	boundargsÚ	disp_typeÚsigr‰   s	            r'   ÚgenericÚConstructorTemplate.generic  s¾   € àŸ™×.Ñ.ˆØ×(Ñ(¨Ñ4ˆØ"×5Ñ5Ó7Ð9¸DÑ@ˆ	Ü×$Ò$ TÓ*ˆ	Ø×%Ñ% d§l¡l°IÓCˆä˜#Ÿ/™/¬5¯>©>×:Ñ:Ü×'Ò'Ø6°s·±Ð6GÀqÐIóKð Kô ×!Ò! -Ð?°#·(±(¸1¸2°,Ò?ˆØˆ
r)   r*   N)r,   r-   r.   r/   r~   rÐ   r0   r*   r)   r'   r©   r©     s   † ñõr)   r©   c                 ó  • [        / SQ5      n[        R                  S;   a  U[        SS/5      -  nS H  nX ;   d  M
  UR                  U5        M     U R	                  5        Hn  u  p4[        U[        R                  [        R                  45      (       a  UR                  U5        MG  [        USS 5      [        L d  M]  UR                  U5        Mp     SU ;   a  U S   c  UR                  S5        U H  nU R                  U5        M     g )N)Ú__weakref__r-   rœ   ))é   é   )rÔ   é   r/   r0   )Ú__annotations__Ú__annotate_func__Ú__annotations_cache__Ú__objclass__Ú__hash__)r•   r   Ú	PYVERSIONÚaddr:   rU   r�   ÚBuiltinFunctionTypeÚBuiltinMethodTyper�   Úobjectr¢   )r[   ÚdropÚattr=   r>   s        r'   r£   r£     sè   € äò ó €Dô ‡�Ð,Ó,à”Ð&Ð(?Ð@ÓAÑAˆó)ˆð �:Ø�H‰H�SŽMñ	)ð —	‘	–‰ˆÜ�aœ'×5Ñ5Ü!×3Ñ3ð5÷ 6ñ 6à�H‰H�QŽKÜ�Q˜¨Ó-´Ô7Ø�H‰H�QŽKñ ð �SÓ˜S ™_Ñ4Ø�‰�ÔãˆØ�‰�Ž
ò r)   c                   ób   • \ rS rSrSr\R                  " S5      r\" 5       r	S r
S rS rS rSrg	)
ÚClassBuilderi8  z‰
A jitclass builder for a mutable jitclass.  This will register
typing and implementation hooks to the given typing and target contexts.
zjitclass builderc                 ó(   • Xl         X l        X0l        g r7   )r8   r¾   r¿   )r    r8   r¾   r¿   s       r'   r   ÚClassBuilder.__init__@  s   € Ø$ŒØ"ŒØ"�r)   c                 ó®   • U R                  U R                  U R                  R                  5        U R                  R                  U R                  5        g)z'
Register to the frontend and backend.
N)Ú_register_methodsÚclass_impl_registryr8   rd   r¿   Úinstall_registry)r    s    r'   r®   ÚClassBuilder.registerE  sA   € ð
 	×Ñ˜t×7Ñ7Ø#Ÿ™×<Ñ<ô	>ð 	�‰×'Ñ'¨×(@Ñ(@ÕAr)   c                 óæ   • [        UR                  5      [        UR                  5      -   nU H@  nX@R                  ;  d  M  U R	                  X5        U R                  R                  U5        MB     g)zÑ
Register method implementations.
This simply registers that the method names are valid methods.  Inside
of imp() below we retrieve the actual method to run from the type of
the receiver argument (i.e. self).
N)Úlistrº   r¼   Úimplemented_methodsÚ_implement_methodrÝ   )r    Úregistryrd   Úto_registerÚmeths        r'   rè   ÚClassBuilder._register_methodsP  sa   € ô ˜=×4Ñ4Ó5Ü�×1Ñ1Ó2ñ3ˆãˆDð
 ×3Ñ3Õ3Ø×&Ñ& xÔ6Ø×(Ñ(×,Ñ,¨TÖ2ò  r)   c                 ó  ^^• U4S jmU4S jnTR                  S5      nUS;   a	  U" U5        g UR                  [        R                  T4[        R                  [        R                  " [        R
                  5      5      " T" 5       5        g )Nc                  ó   >• U4S jn U $ )Nc                 óš  >• UR                   S   nT	UR                  ;   a  UR                  T	   nO@T	UR                  ;   a0  UR                  T	   nUR                  UR                   SS  S9nUSS  n[        R
                  " W5      nU R                  Xb5      nU" X5      n[        X5        [        R                  " XUR                  U5      $ )Nr   rR   ra   )rK   rº   r¼   Úreplacer
   rÆ   Úget_functionr‘   r	   Úimpl_ret_new_refrÈ   )
r�   r°   rÏ   rK   rd   ÚmethodrÎ   r�   r‰   r±   s
            €r'   ÚimpÚ<ClassBuilder._implement_method.<locals>.get_imp.<locals>.impe  sÅ   ø€ Ø #§¡¨¡�à˜=×4Ñ4Ó4Ø*×6Ñ6°tÑ<‘FØ˜]×=Ñ=Ó=Ø*×=Ñ=¸dÑC�Fð Ÿ+™+¨3¯8©8°A°B¨<˜+Ð8�CØ  ˜8�Dä!×,Ò,¨VÓ4�	Ø×+Ñ+¨IÓ;�Ù˜7Ó)�Ü! 'Ô0Ü×0Ò0°Ø14·±À#óGð Gr)   r*   )rû   r±   s    €r'   Úget_impÚ/ClassBuilder._implement_method.<locals>.get_impd  s   ø€ õGð$ ˆJr)   c                 ó  >^• SU -  m[        [        U 5      n[        R                  " U5       " U4S jS[        R                  5      5       n[
        R                  " [        R                  T4[        R                  [        R                  " [        R                  5      5      " T" 5       5        [
        R                  " U[        R                  [        R                  " [        R                  5      5      " T" 5       5        g )Nz__%s__c                   ó"   >• \ rS rSrU 4S jrSrg)ÚKClassBuilder._implement_method.<locals>._getsetitem_gen.<locals>.GetSetItemi}  c                 óö   >• US   n[        U[        R                  5      (       aT  TUR                  ;   aC  UR                  T   n[        R                  " U5      nUR                  U R                  X5      nU$ g g )Nr   )rU   r
   ÚClassInstanceTyperº   rÆ   rÇ   r�   )r    rK   rÌ   ru   rò   rÎ   rÏ   Ú_dunder_meths          €r'   rÐ   ÚSClassBuilder._implement_method.<locals>._getsetitem_gen.<locals>.GetSetItem.generic  st   ø€ Ø# A™w�HÜ! (¬E×,CÑ,C×DÑDØ(¨H×,@Ñ,@Ó@Ø'×3Ñ3°LÑA˜Ü$)×$4Ò$4°TÓ$:˜	Ø'×5Ñ5°d·l±lÀDÓN˜Ø"˜
ð	 Að Er)   r*   N)r,   r-   r.   r/   rÐ   r0   )r  s   €r'   Ú
GetSetItemr  }  s   ø† ÷#ð #r)   r  )r�   Úoperatorr   Úinfer_globalÚAbstractTemplater	   Úlower_builtinr
   r  ÚVarArgÚAny)ÚgetsetÚopr  r  rý   s      @€r'   Ú_getsetitem_genÚ7ClassBuilder._implement_method.<locals>._getsetitem_geny  sº   ù€ Ø# fÑ,ˆLÜœ 6Ó*ˆBä×#Ò# BÓ'÷#œY×7Ñ7ó #ó (ð#ô ×"Ò"¤E×$;Ñ$;¸\Ð#JÜ#(×#:Ñ#:Ü#(§<¢<´·	±	Ó#:ô<á<C»IôGô ×"Ò" 2Ü#(×#:Ñ#:Ü#(§<¢<´·	±	Ó#:ô<á<C»IõGr)   r…   )ÚgetitemÚsetitem)ÚstripÚlowerr
   r  r  r  )r    rð   r±   r  Údunder_strippedrý   s     `  @r'   rï   ÚClassBuilder._implement_methodb  sj   ù€ õ	õ*	Gð0 Ÿ*™* S›/ˆØÐ4Ó4Ù˜OÕ,à�N‰NœE×3Ñ3°TÐ:Ü ×2Ñ2Ü Ÿ<š<¬¯	©	Ó2ô4á4;³Iõ?r)   )r8   r¿   r¾   N)r,   r-   r.   r/   r~   r	   ÚRegistryré   r•   rî   r   r®   rè   rï   r0   r*   r)   r'   rä   rä   8  s8   † ñð #×+Ò+Ð,>Ó?ÐÙ›%Ðò#ò
	Bò3õ$5?r)   rä   c                   ó2   • \ rS rSr\R
                  rS rSrg)ÚClassAttributeiš  c                 ó¾  ^ ^^^	• TTR                   ;   a  TR                   T   $ TTR                  ;   a[  TR                  T   n[        R                  " U5      m	 " UU	UU 4S jS[        R
                  5      n[        R                  " UT5      $ TTR                  ;   a[  TR                  T   n[        R                  " U5      m	 " UU	UU 4S jS[        R
                  5      n[        R                  " UT5      $ TTR                  ;   aT  TR                  T   nUS   n[        R                  " U5      m	T	R                  T R                  T40 5      nUR                  $ g )Nc                   óD   >• \ rS rSr YR                   Y 4rUU4S jrSrg)Ú6ClassAttribute.generic_resolve.<locals>.MethodTemplatei¨  c                 óz   >• T4[        U5      -   nTR                  U R                  X5      nUR                  5       $ r7   )ÚtuplerÇ   r�   Ú	as_method©r    rK   rÌ   rÏ   rÎ   ru   s       €€r'   rÐ   Ú>ClassAttribute.generic_resolve.<locals>.MethodTemplate.generic«  s5   ø€ Ø$˜;¬¨t«Ñ4�DØ#×1Ñ1°$·,±,ÀÓJ�CØŸ=™=›?Ð*r)   r*   N©r,   r-   r.   r/   rÄ   rÐ   r0   ©r±   rÎ   ru   r    s   €€€€r'   ÚMethodTemplater  ¨  s   ø† Ù—x‘x¡Ð&�÷+ñ +r)   r$  c                   óD   >• \ rS rSr YR                   Y 4rUU4S jrSrg)Ú<ClassAttribute.generic_resolve.<locals>.StaticMethodTemplatei·  c                 óZ   >• TR                  U R                  X5      nUR                  TS9$ )N)Úrecvr)rÇ   r�   r÷   r   s       €€r'   rÐ   ÚDClassAttribute.generic_resolve.<locals>.StaticMethodTemplate.genericº  s.   ø€ ð $×1Ñ1°$·,±,ÀÓJ�Cð
 Ÿ;™;¨X˜;Ð6Ð6r)   r*   Nr"  r#  s   €€€€r'   ÚStaticMethodTemplater&  ·  s   ø† Ù—x‘x¡Ð&�÷7ñ 7r)   r*  r”   )r9   rº   r
   rÆ   r   r	  ÚBoundFunctionr¼   r»   rÇ   r�   rÈ   )
r    ru   r±   rò   r$  r*  ÚimpdctÚgetterrÏ   rÎ   s
   ```      @r'   Úgeneric_resolveÚClassAttribute.generic_resolvež  s3  û€ Ø�8—?‘?Ó"à—?‘? 4Ñ(Ð(à�X×)Ñ)Ó)à×'Ñ'¨Ñ-ˆDÜ×(Ò(¨Ó.ˆI÷+ò +¤×!;Ñ!;ô +ô ×&Ò& ~°xÓ@Ð@à�X×0Ñ0Ó0à×.Ñ.¨tÑ4ˆDÜ×(Ò(¨Ó.ˆI÷7ò 7¤y×'AÑ'Aô 7ô ×&Ò&Ð';¸XÓFÐFà�X×'Ñ'Ó'à×'Ñ'¨Ñ-ˆFØ˜E‘]ˆFÜ×(Ò(¨Ó0ˆIØ×)Ñ)¨$¯,©,¸¸ÀRÓHˆCØ—?‘?Ð"ð (r)   r*   N)	r,   r-   r.   r/   r
   r  rÄ   r.  r0   r*   r)   r'   r  r  š  s   † à
×
!Ñ
!€Cõ.#r)   r  c                 óž  • XBR                   ;   ar  U R                  XUS9nUR                  nU R                  XR	                  5       US9n[
        R                  " XUR                   U   [        U[        U5      5      5      $ XBR                  ;   a¤  UR                  U   S   n[        R                  " SU5      n	[        R                  " U5      n
U
R                  U R                  U/0 5      n	U R!                  X©5      nU" X/5      n[#        X5        [
        R$                  " XU	R&                  U5      $ [)        SR+                  U5      5      e)z,
Generic getattr() for @jitclass instances.
©Úvalue©Úrefr”   Núattribute {0!r} not implemented)r9   Úmake_helperr   Úmake_data_helperÚget_data_typer	   Úimpl_ret_borrowedr�   r;   r»   r   rË   r
   rÆ   rÇ   r«   rø   r‘   rù   rÈ   ÚNotImplementedErrorri   )r�   r°   Útypr2  r±   ÚinstÚdata_pointerr   r-  rÏ   Ú
dispatcherr�   r‰   s                r'   Úget_attr_implr?  Ï  s2  € ð
 �z‰zÓà×"Ñ" 7°uÐ"Ð=ˆØ—y‘yˆØ×'Ñ'¨×1BÑ1BÓ1DØ,8ð (ð :ˆä×)Ò)¨'Ø*-¯*©*°TÑ*:Ü*1°$¼ÀTÓ8JÓ*KóMð 	Mð 
—‘Ó	à—‘˜tÑ$ UÑ+ˆÜ×!Ò! $¨Ó,ˆÜ×%Ò% fÓ-ˆ
Ø×&Ñ& w×'=Ñ'=À¸uÀbÓIˆØ×#Ñ# JÓ4ˆÙ�7˜GÓ$ˆÜ˜'Ô(Ü×(Ò(¨¸3¿?¹?ÈCÓPÐPä
Ð?×FÑFÀtÓLÓ
MÐMr)   c                 óÌ  • UR                   u  pVUu  pxXER                  ;   a­  U R                  XUS9n	U	R                  n
U R	                  XR                  5       U
S9nUR                  U   n[        U[        U5      5      n[        U[        U5      U5        U R                  R                  XU5        U R                  R                  XU5        gXER                  ;   an  UR                  U   S   n[        R                  " U5      nUR                  U R                   XV40 5      nU R#                  Xò5      nU" XU45        [%        U U5        g['        SR)                  U5      5      e)z,
Generic setattr() for @jitclass instances.
r1  r3  r•   r5  N)rK   r9   r6  r   r7  r8  r�   r;   ÚsetattrÚnrtÚincrefÚdecrefr»   r
   rÆ   rÇ   r«   rø   r‘   r:  ri   )r�   r°   rÏ   rK   r±   r;  ÚvaltyÚtargetÚvalr<  Údata_ptrr   Ú	attr_typeÚoldvalueÚsetterrÎ   r�   s                    r'   Úset_attr_implrL  ë  sL  € ð
 —‘�J€CØ�K€Fà�z‰zÓà×"Ñ" 7°vÐ"Ð>ˆØ—9‘9ˆØ×'Ñ'¨×1BÑ1BÓ1DØ,4ð (ð 6ˆð —J‘J˜tÑ$ˆ	Ü˜4¤¨dÓ!3Ó4ˆô 	�”l 4Ó(¨#Ô.Ø�‰×Ñ˜7¨sÔ3ð 	�‰×Ñ˜7¨xÕ8à	—‘Ó	à—‘˜tÑ$ UÑ+ˆÜ×$Ò$ VÓ,ˆ	Ø×%Ñ% g×&<Ñ&<Ø'* l°Bó8ˆà×#Ñ# IÓ3ˆÙˆW˜s�mÔ$Ü˜' 4Õ(ä!Ø-×4Ñ4°TÓ:ó<ð 	<r)   c                 óØ  • U R                  [        R                  5      nU R                  [        R                  5      n[        R
                  " [        R                  " 5       X4U/5      nSR                  UR                  5      n[        R                  " XU5      nUR                  (       a¼  [        R                  " UR                  5       5      nUR                  5       n	U R                  U	5      n
UR                  UR                   S   U
R#                  5       5      nU R%                  X‰US9nU R&                  R)                  X‰UR+                  5       5        UR-                  5         U$ )Nz	_Dtor.{0}r   r3  )Úget_value_typer
   ÚvoidptrÚuintpÚllvmirrž   ÚVoidTyperi   rB   r   Úget_or_insert_functionÚis_declarationÚ	IRBuilderÚappend_basic_blockr8  ÚbitcastrK   Ú
as_pointerr6  rB  rD  Ú	_getvalueÚret_void)r�   Úmodulerd   Ú	llvoidptrÚllsizeÚ
dtor_ftypeÚfnameÚdtor_fnr°   Úalloc_fe_typeÚ
alloc_typeÚptrr   s                r'   Úimp_dtorrd    s  € Ø×&Ñ&¤u§}¡}Ó5€IØ×#Ñ#¤E§K¡KÓ0€FÜ×$Ò$¤V§_¢_Ó%6Ø&/¸Ð%CóE€Jð ×Ñ˜}×1Ñ1Ó2€EÜ×,Ò,¨VÀÓG€GØ××ä×"Ò" 7×#=Ñ#=Ó#?Ó@ˆà%×3Ñ3Ó5ˆØ×+Ñ+¨MÓ:ˆ
à�o‰o˜gŸl™l¨1™o¨z×/DÑ/DÓ/FÓGˆØ×"Ñ" 7¸sÐ"ÐCˆà�‰×Ñ˜7°4·>±>Ó3CÔDà×ÑÔà€Nr)   c           	      ó†  • UR                   nU R                  UR                  5       5      nU R                  U5      nU R                  R	                  UU R                  [        R                  U5      [        XR                  U5      5      nU R                  R                  X5      nUR                  UUR                  5       5      nUR                  [        R                  " U5      U5        U R!                  X5      n	Xyl        X‰l        UR                   4UR&                  -   n
UR(                  S   n[        R*                  " U5      nU R-                  U[        R.                  " U
6 5      n[1        X5        U	R3                  5       /[5        U5      -   nU" X5        U	R3                  5       n[6        R8                  " XXO5      $ )z/
Generic constructor (__new__) for jitclasses.
r   )rÈ   r8  Úget_abi_sizeofrB  Úmeminfo_alloc_dtorÚget_constantr
   rP  rd  r[  Úmeminfo_datarW  rX  Ústorer   Úget_null_valuer6  r   r   rK   rº   rÆ   rø   Úvoidr‘   rY  rí   r	   rù   )r�   r°   rÏ   rK   Úinst_typrb  Ú
alloc_sizer   r=  Úinst_structrn   rm   rÎ   r�   ÚrealargsÚrets                   r'   Ú	ctor_implrr  ,  s|  € ð �‰€HØ×&Ñ& x×'=Ñ'=Ó'?Ó@€JØ×'Ñ'¨
Ó3€Jà�k‰k×,Ñ,ØØ×ÑœUŸ[™[¨*Ó5Ü�Ÿ.™.¨(Ó3ó€Gð
 —;‘;×+Ñ+¨GÓ=€LØ—?‘? <Ø#-×#8Ñ#8Ó#:ó<€Lð ‡M�M”'×(Ò(¨Ó4Øô ð ×%Ñ% gÓ8€KØ!ÔØ#Ôð —‘Ð! C§H¡HÑ,€Hà×Ñ 
Ñ+€DÜ× Ò  Ó&€IØ×Ñ 	¬5¯:ª:°xÐ+@ÓA€DÜ�gÔ$Ø×%Ñ%Ó'Ð(¬4°«:Ñ5€HÙˆÔð ×
Ñ
Ó
!€Cä×$Ò$ W°xÓEÐEr)   )Dr™   r  r
   r�   Útypingr–   Úcollectionsr   Úcollections.abcr   Úllvmliter   rQ  Únumbar   Ú
numba.corer   r   r	   r   Únumba.core.datamodelr   r   Únumba.core.registryr   Únumba.core.typingr   Únumba.core.typing.asnumbatyper   Únumba.core.serializer   Únumba.experimental.jitclassr   ÚStructModelr   r4   r®   r  r   Ú	ClassTypeÚOpaqueModelr;   rh   rM   rV   rO   r‚   rŠ   r‘   rÀ   r	  r©   r£   rà   rä   Úinfer_getattrÚAttributeTemplater  ré   Úlower_getattr_genericr?  Úlower_setattr_genericrL  rd  r  r  r  rr  r*   r)   r'   Ú<module>r†     s×  ðÛ Û Û Û Ý #Ý $å !Ý ß >Õ >ß 8Ý *Ý 'Ý 7Ý 1Ý ,ôB�F×&Ñ&ô BôF˜×*Ñ*ô Fð × Ò ˜×0Ñ0°-Ô @Ø × Ò ˜×,Ñ,Ð.?Ô @Ø × Ò ˜Ÿ™¨&×*<Ñ*<Ô =òð€òð ô*8�4ó *8ó ð*8ò`$ò	ò'ò_ôD˜)×4Ñ4ô ò,ô@_?�6ô _?ðD ×Ñô1#�Y×0Ñ0ó 1#ó ð1#ðh ×!Ñ!×7Ñ7¸×8OÑ8OÓPñNó QðNð6 ×!Ñ!×7Ñ7¸×8OÑ8OÓPñ$<ó Qð$<òNð2 ×!Ñ!×'Ñ'¨¯©Ø(-¯ª°U·Y±YÓ(?óAñ(FóAñ(Fr)   