§
    ƒÛgK‰  ã                   ó  — d dl mZ d dlZd dlmZ d dlZd dlZd dlZd dl	m
Z
 d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZ d dlmZmZ d dlm Z  d d	l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' d d
l(m)Z) d dl*m+Z+  eej,        ¦  «        d„ ¦   «         Z- eej.        ej/        ej/        ¦  «        d„ ¦   «         Z0 eej1        ej/        ej/        ¦  «        d„ ¦   «         Z2 eej1        ej3        ej3        ¦  «        d„ ¦   «         Z4 eej1        ej5        ej5        ¦  «        d„ ¦   «         Z6 eej7        ej8        ej8        ¦  «         eej7        ej9        ej9        ¦  «        d„ ¦   «         ¦   «         Z: eej;        ej8        ej8        ¦  «         eej;        ej9        ej9        ¦  «        d„ ¦   «         ¦   «         Z<d„ Z=  eej7        ¦  «         e=d¦  «        ¦  «           eej;        ¦  «         e=d¦  «        ¦  «          eej>        ¦  «        d„ ¦   «         Z? eej/        ej>        ¦  «         eej@        ej>        ¦  «         eej5        ej>        ¦  «        d„ ¦   «         ¦   «         ¦   «         ZA eej>        ej/        ¦  «         eej>        ej5        ¦  «         eej>        ej@        ¦  «        d„ ¦   «         ¦   «         ¦   «         ZB eejC        ejD        ejE        ¦  «        d„ ¦   «         ZF eejG        ejD        ejE        ej/        ¦  «        d„ ¦   «         ZHd„ ZI eeJejK        ¦  «        d„ ¦   «         ZL eeJ ejM        ej/        ¦  «        ¦  «        d„ ¦   «         ZN eeOejK        ¦  «        d„ ¦   «         ZP eeO ejM        ej/        ¦  «        ¦  «        d„ ¦   «         ZQd „ ZR eeSejT        ¦  «        d!„ ¦   «         ZU eeSejT        ejE        ¦  «        d"„ ¦   «         ZV eeWej/        ¦  «         eeXej/        ¦  «        d#„ ¦   «         ¦   «         ZY eeZ ejM        ej/        ¦  «        ¦  «        d$„ ¦   «         Z[ eej\        ej/        ¦  «        d%„ ¦   «         Z] eej^        ¦  «        d&„ ¦   «         Z_ eej`        ¦  «        d'„ ¦   «         Za eej@        ¦  «        d(„ ¦   «         Zb eecej/        ¦  «        d)„ ¦   «         Zd eeeejf        ¦  «        d*„ ¦   «         Zg eeheji        ¦  «        d+„ ¦   «         Zj ed,ej/        ej/        ¦  «        d-„ ¦   «         Zk eelejm        ¦  «        d.„ ¦   «         Zn eeoejp        ¦  «        d/„ ¦   «         Zq eer¦  «        d0„ ¦   «         Zs eerejK        ¦  «        d1„ ¦   «         Zt eeo¦  «        d2„ ¦   «         Zu eeod3¬4¦  «        d5„ ¦   «         Zvd6„ Zwd7„ Zx eexej\        ¦  «         eexejy        ¦  «        d8„ ¦   «         ¦   «         Zz eewej\        ¦  «         eewejy        ¦  «        d9„ ¦   «         ¦   «         Z{d d:l|m}Z}m~Z~ d d;lmZm€Z€  ee}ej�        ej‚        ¦  «         ee}ejƒ        ej‚        ¦  «        d<„ ¦   «         ¦   «         Z„ eeO¦  «        d=„ ¦   «         Z… eeO¦  «        d>„ ¦   «         Z† eeJ¦  «        d?„ ¦   «         Z‡ eeJ¦  «        d@„ ¦   «         Zˆ e€dA„ ¦  «        Z‰ e€dB„ ¦  «        ZŠe€dC„ ¦   «         Z‹ eeO¦  «        dD„ ¦   «         ZŒ eeJ¦  «        dE„ ¦   «         Z� eejŽ         ejM        ej/        ¦  «        ¦  «        dF„ ¦   «         Z� ee�¦  «        dWdG„¦   «         Z‘ ee’¦  «        dH„ ¦   «         Z“ ee”¦  «        dI„ ¦   «         Z• ee–¦  «        dJ„ ¦   «         Z—dK„ Z˜ ee˜¦  «        dL„ ¦   «         Z™edM„ ¦   «         Zš edNdO¦  «        Z› e›¦   «         Zœ ee�d¬P¦  «        dQ„ ¦   «         Zž ee�¦  «        dR„ ¦   «         ZŸedS„ ¦   «         Z  ee¡¦  «        dT„ ¦   «         Z¢ ee£¦  «        dU„ ¦   «         Z¤ ee¥¦  «        dXdV„¦   «         Z¦dS )Yé    )Ú
namedtupleN)Úreduce)Úir)Úlower_builtinÚlower_getattrÚlower_getattr_genericÚ
lower_castÚlower_constantÚiternext_implÚcall_getiterÚcall_iternextÚimpl_ret_borrowedÚimpl_ret_untrackedÚnumba_typeref_ctor)ÚtypingÚtypesÚutilsÚcgutils)ÚoverloadÚ	intrinsic)Ú
Conversion)ÚTypingErrorÚLoweringErrorÚNumbaExperimentalFeatureWarningÚNumbaTypeErrorÚRequireLiteralValueÚNumbaPerformanceWarning)Úliteral_unroll)Úas_numba_typec                 óD   — t          | t          j        ¦  «        rd„ }|S d S )Nc                 ó   — | S ©N© )Úvals    úL/granary/edev/quantum/lib/python3.11/site-packages/numba/cpython/builtins.pyÚimplzol_truth.<locals>.impl   s   € ØˆJó    ©Ú
isinstancer   ÚBoolean)r$   r&   s     r%   Úol_truthr+      s4   € å�#•u”}Ñ%Ô%ð ð	ð 	ð 	àˆðð r'   c                 ó€   — |                       t          j        |¦  «        }|                      |||¦  «        ¦  «        S )z3
    Implement `x is not y` as `not (x is y)`.
    )Úget_functionÚoperatorÚis_Únot_)ÚcontextÚbuilderÚsigÚargsÚis_impls        r%   Úgeneric_is_notr6   #   s9   € ð
 ×"Ò"¥8¤<°Ñ5Ô5€GØ�<Š<˜˜ ¨Ñ.Ô.Ñ/Ô/Ð/r'   c                 óü   — |j         \  }}||k    ra|j        rd}t          |¦  «        ‚	 |                      t          j        |¦  «        } |||¦  «        S # t          $ r t          j        cY S w xY wt          j        S )z-
    Default implementation for `x is y`
    zno default `is` implementation)	r4   Úmutabler   r-   r.   ÚeqÚNotImplementedErrorr   Ú	false_bit)r1   r2   r3   r4   Úlhs_typeÚrhs_typeÚmsgÚeq_impls           r%   Ú
generic_isr@   ,   s    € ð
 œÑ€Hˆhà�8ÒÐàÔð 2Ø6�Ý# CÑ(Ô(Ð(ð2Ø%×2Ò2µ8´;ÀÑDÔD�Gð
 #˜7 7¨DÑ1Ô1Ð1øõ	 +ð -ð -ð -å"Ô,Ð,Ð,Ð,ð-øøøõ Ô Ð s   ª A ÁA/Á.A/c                 ó   — |j         \  }}||k    rc|                     |d         t          j        ¦  «        }|                     |d         t          j        ¦  «        }|                     d||¦  «        S t          j        S )z7
    Implementation for `x is y` for Opaque types.
    r   é   z==)r4   Úptrtointr   Úintp_tÚicmp_unsignedr;   )r1   r2   r3   r4   r<   r=   Úlhs_ptrÚrhs_ptrs           r%   Ú	opaque_isrH   F   sr   € ð
 œÑ€Hˆhà�8ÒÐØ×"Ò" 4¨¤7­G¬NÑ;Ô;ˆØ×"Ò" 4¨¤7­G¬NÑ;Ô;ˆà×$Ò$ T¨7°GÑ<Ô<Ð<åÔ Ð r'   c                 óh  — |\  }}|j         \  }}|                      |||t          j        ¦  «        }|                      |||t          j        ¦  «        }	|                      t
          j        t          j        t          j        t          j        t          j        ¦  «        ¦  «        }
 |
|||	f¦  «        S )zà
    Implementation for `x is y` for types derived from types.Boolean
    (e.g. BooleanLiteral), and cross-checks between literal and non-literal
    booleans, to satisfy Python's behavior preserving identity for bools.
    )	r4   Úcastr   Úbooleanr-   r.   r9   r   Ú	signature)r1   r2   r3   r4   Úarg1Úarg2Ú	arg1_typeÚ	arg2_typeÚ_arg1Ú_arg2r?   s              r%   Úbool_is_implrS   V   s•   € ð �J€Dˆ$Øœ8Ñ€IˆyØ�LŠL˜ $¨	µ5´=ÑAÔA€EØ�LŠL˜ $¨	µ5´=ÑAÔA€EØ×"Ò"ÝŒÝÔ�œ­¬µu´}ÑEÔEñô €Gð ˆ7�7˜U E˜NÑ+Ô+Ð+r'   c                 óº   — |j         \  }}d}|j        |j        k    rd}t          j        t          j        d¦  «        |¦  «        }t          | ||j        |¦  «        S ©Nr   rB   ©r4   Úliteral_valuer   ÚConstantÚIntTyper   Úreturn_type©r1   r2   r3   r4   rM   rN   r$   Úress           r%   Úconst_eq_implr]   i   óY   € ð ”�J€Dˆ$Ø
€CØÔ˜TÔ/Ò/Ð/ØˆÝ
Œ+•b”j ‘m”m SÑ
)Ô
)€CÝ˜g w°´ÀÑEÔEÐEr'   c                 óº   — |j         \  }}d}|j        |j        k    rd}t          j        t          j        d¦  «        |¦  «        }t          | ||j        |¦  «        S rU   rV   r[   s           r%   Úconst_ne_implr`   u   r^   r'   c                 ó   ‡ — ˆ fd„}|S )Nc                 óž   •— t          | t          j        ¦  «        }t          |t          j        ¦  «        }|r	|rˆfd„}|S ||z  rˆfd„}|S d S )Nc                 ó   •— ‰S r"   r#   ©ÚaÚbr$   s     €r%   r&   z/gen_non_eq.<locals>.none_equality.<locals>.impl…   s   ø€ Ø�
r'   c                 ó
   •— ‰ S r"   r#   rd   s     €r%   r&   z/gen_non_eq.<locals>.none_equality.<locals>.impl‰   s
   ø€ Ø�w�r'   ©r)   r   ÚNoneType)re   rf   Úa_noneÚb_noner&   r$   s        €r%   Únone_equalityz!gen_non_eq.<locals>.none_equality�   s†   ø€ Ý˜A�uœ~Ñ.Ô.ˆÝ˜A�uœ~Ñ.Ô.ˆØð 	�fð 	ðð ð ð ð àˆKØ�f‰_ð 	ðð ð ð ð àˆKð	ð 	r'   r#   )r$   rl   s   ` r%   Ú
gen_non_eqrm   €   s$   ø€ ð
ð 
ð 
ð 
ð 
ð Ðr'   TFc                 ó¤   — |                      ¦   «         }|                      ||||¦  «        }|                      ||¦  «        } || ||||¦  «        S )z>
    Deferred.__getattr__ => redirect to the actual type.
    )ÚgetrJ   Úget_getattr)r1   r2   ÚtypÚvalueÚattrÚ
inner_typer$   Úimps           r%   Údeferred_getattrrv   “   sU   € ð
 —’‘”€JØ
�,Š,�w  s¨JÑ
7Ô
7€CØ
×
Ò
˜j¨$Ñ
/Ô
/€CØˆ3ˆw˜ ¨S°$Ñ7Ô7Ð7r'   c                 óÂ   — |                       ||||                     ¦   «         ¦  «        }| j        |         }|                     ||                     ¦   «         |¦  «        S r"   )rJ   ro   Údata_model_managerÚsetÚmake_uninitialized)r1   r2   ÚfromtyÚtotyr$   ÚactualÚmodels          r%   Úany_to_deferredr   �   sR   € ð �\Š\˜' 3¨°·²±
´
Ñ;Ô;€FØÔ& tÔ,€EØ�9Š9�W˜e×6Ò6Ñ8Ô8¸&ÑAÔAÐAr'   c                 óœ   — | j         |         }|                     ||¦  «        }|                      |||                     ¦   «         |¦  «        S r"   )rx   ro   rJ   )r1   r2   r{   r|   r$   r~   s         r%   Údeferred_to_anyr�   ¥   sD   € ð Ô& vÔ.€EØ
�)Š)�G˜SÑ
!Ô
!€CØ�<Š<˜  f§j¢j¡l¤l°DÑ9Ô9Ð9r'   c                 ó’   — |\  }}|                      ||g¦  «        }|                     |¦  «        }t          | ||j        |¦  «        S r"   )ÚgepÚloadr   rZ   )r1   r2   r3   r4   Úbase_ptrÚidxÚelem_ptrr\   s           r%   Úgetitem_cpointerrˆ   °   sG   € à�M€HˆcØ�{Š{˜8 c UÑ+Ô+€HØ
�,Š,�xÑ
 Ô
 €CÝ˜W g¨s¬ÀÑDÔDÐDr'   c                 ól   — |\  }}}|                      ||g¦  «        }|                     ||¦  «         d S r"   )rƒ   Ústore)r1   r2   r3   r4   r…   r†   r$   r‡   s           r%   Úsetitem_cpointerr‹   ¸   s=   € àÑ€Hˆc�3Ø�{Š{˜8 c UÑ+Ô+€HØ‡M‚M�#�xÑ Ô Ð Ð Ð r'   c                 óâ   ‡ ‡‡— t          |¦  «        t          |¦  «        k    sJ ||f¦   «         ‚t          |¦  «        dk    sJ ‚ˆˆˆ fd„}t          ||¦  «        }t          ||¦  «        \  }}|S )Nr   c                 ót  •— | \  }}|\  }}‰j                              ||¦  «        }|€J ‚‰                     ‰|||¦  «        }‰                     ‰|||¦  «        }t          j        t
          j        ||¦  «        }‰                     ‰|¦  «        } |‰||f¦  «        }	‰                     |	||¦  «        }
||
fS r"   )	Útyping_contextÚunify_typesrJ   r   rL   r   rK   r-   Úselect)Úaccumulatorrr   ÚacctyÚaccÚvtyÚvÚtyÚcmpsigÚgeÚpredr\   r2   Úcmpopr1   s              €€€r%   Úbinary_minmaxz do_minmax.<locals>.binary_minmaxÅ   sÄ   ø€ ð !‰
ˆˆsØ‰ˆˆQØÔ#×/Ò/°°sÑ;Ô;ˆØˆ~ˆ~ˆ~Ø�lŠl˜7 C¨°Ñ3Ô3ˆØ�LŠL˜ ! S¨"Ñ-Ô-ˆÝÔ!¥%¤-°°RÑ8Ô8ˆØ×!Ò! %¨Ñ0Ô0ˆØˆr�'˜A˜s˜8Ñ$Ô$ˆØ�nŠn˜T 1 cÑ*Ô*ˆØ�3ˆwˆr'   )ÚlenÚzipr   )	r1   r2   Úargtysr4   rš   r›   ÚtypvalsÚrestyÚresvals	   ``  `    r%   Ú	do_minmaxr¢   Á   s�   øøø€ Ýˆv‰;Œ;�#˜d™)œ)Ò#Ð#Ð# f¨d ^Ñ#Ô#Ð#Ýˆt‰9Œ9�qŠ=ˆ=ˆ=ˆ=ðð ð ð ð ð ð õ �&˜$ÑÔ€GÝ˜=¨'Ñ2Ô2�M€Eˆ6Ø€Mr'   c                 ó¦   — t          |j        d         ¦  «        }t          j        ||d         ¦  «        }t	          | |||t
          j        ¦  «        S ©Nr   )Úlistr4   r   Úunpack_tupler¢   r.   Úgt©r1   r2   r3   r4   rž   s        r%   Úmax_iterabler©   Ù   óC   € å�#”(˜1”+ÑÔ€FÝÔ ¨¨a¬Ñ1Ô1€DÝ�W˜g v¨tµX´[ÑAÔAÐAr'   c                 óF   — t          | ||j        |t          j        ¦  «        S r"   )r¢   r4   r.   r§   ©r1   r2   r3   r4   s       r%   Ú
max_varargr­   ß   ó   € å�W˜g s¤x°µx´{ÑCÔCÐCr'   c                 ó¦   — t          |j        d         ¦  «        }t          j        ||d         ¦  «        }t	          | |||t
          j        ¦  «        S r¤   )r¥   r4   r   r¦   r¢   r.   Últr¨   s        r%   Úmin_iterabler±   ã   rª   r'   c                 óF   — t          | ||j        |t          j        ¦  «        S r"   )r¢   r4   r.   r°   r¬   s       r%   Ú
min_varargr³   é   r®   r'   c                 ó   — d| j         fz  S )Nzllvm.rint.f%d)Úbitwidth)Útps    r%   Ú_round_intrinsicr·   î   s   € à˜bœk˜^Ñ+Ð+r'   c                 ó|  — |j         d         }|                      |¦  «        }|j        }t          j        ||g¦  «        }t          j        ||t          |¦  «        ¦  «        }|                     ||¦  «        }	| 	                    |	|                      |j
        ¦  «        ¦  «        }	t          | ||j
        |	¦  «        S r¤   )r4   Úget_value_typeÚmoduler   ÚFunctionTyper   Úget_or_insert_functionr·   ÚcallÚfptosirZ   r   )
r1   r2   r3   r4   ÚflttyÚlltyrº   ÚfntyÚfnr\   s
             r%   Úround_impl_unaryrÃ   ò   s£   € àŒH�QŒK€EØ×!Ò! %Ñ(Ô(€DØŒ^€FÝŒ?˜4 $ Ñ(Ô(€DÝ	Ô	'¨°Õ6FÀuÑ6MÔ6MÑ	NÔ	N€BØ
�,Š,�r˜4Ñ
 Ô
 €Cà
�.Š.˜˜g×4Ò4°S´_ÑEÔEÑ
FÔ
F€CÝ˜g w°´ÀÑEÔEÐEr'   c                 óð   ‡— |j         d         }t          j        t          |¦  «        t	          j        ||¦  «        ¦  «        Šˆfd„}|                      ||||¦  «        }t          | ||j        |¦  «        S )Nr   c                 ó$  •— t          j        | ¦  «        st          j        | ¦  «        r| S |dk    rG|dk    rd|dz
  z  }d}nd|z  }d}| |z  |z  }t          j        |¦  «        r| S  ‰|¦  «        |z  |z  S d| z  }| |z  } ‰|¦  «        |z  S )Nr   é   g      $@g’ÕMÏð€Dg      ð?)ÚmathÚisinfÚisnan)ÚxÚndigitsÚpow1Úpow2ÚyÚ_rounds        €r%   Úround_ndigitsz(round_impl_binary.<locals>.round_ndigits  sÃ   ø€ ÝŒ:�a‰=Œ=ð 	�DœJ q™MœMð 	ØˆHà�aŠ<ˆ<Ø˜Š|ˆ|ð  ¨"¡Ñ-�Ø��à˜w‘�Ø�Ø�T‘˜TÑ!ˆAÝŒz˜!‰}Œ}ð Ø�Ø�F˜1‘I”I Ñ$¨Ñ,Ð,ð ˜W˜HÑ%ˆDØ�D‘ˆAØ�6˜!‘9”9˜tÑ#Ð#r'   )	r4   r   ÚExternalFunctionr·   r   rL   Úcompile_internalr   rZ   )r1   r2   r3   r4   r¿   rÐ   r\   rÏ   s          @r%   Úround_impl_binaryrÓ   þ   sˆ   ø€ àŒH�QŒK€Eõ Ô#Ý˜ÑÔ¥Ô!1°%¸Ñ!?Ô!?ñAô A€Fð$ð $ð $ð $ð $ð. ×
"Ò
" 7¨M¸3ÀÑ
EÔ
E€CÝ˜g w°´ÀÑEÔEÐEr'   c                 ó„   — |j         \  }|\  }|                      ||||j        ¦  «        }t          | ||j        |¦  «        S r"   )r4   rJ   rZ   r   )r1   r2   r3   r4   r–   r$   r\   s          r%   Úint_implrÕ   $  sC   € ð Œ8�D€RØ�E€SØ
�,Š,�w  R¨¬Ñ
9Ô
9€CÝ˜g w°´ÀÑEÔEÐEr'   c                 ó¤  — |j         }|j        }t          |j        ¦  «        dk    r…|j        \  }|\  }t	          |t
          j        ¦  «        r/|                      ||||¦  «        }t          | ||j         |¦  «        S |                      ||||¦  «        }	|  	                    |d¦  «        }
nWt          |j        ¦  «        dk    r?|j        \  }}|\  }	}
|                      ||	||¦  «        }	|                      ||
||¦  «        }
|  
                    ||¦  «        }|	|_        |
|_        |                     ¦   «         }t          | ||j         |¦  «        S )NrB   r   é   )rZ   Úunderlying_floatrœ   r4   r)   r   ÚComplexrJ   r   Úget_constantÚmake_complexÚrealÚimagÚ	_getvalue)r1   r2   r3   r4   Úcomplex_typeÚ
float_typeÚargtyÚargr\   rÜ   rÝ   ÚrealtyÚimagtyÚcmplxs                 r%   Úcomplex_implræ   -  sA  € à”?€LØÔ.€JÝ
ˆ3Œ8�}„}˜ÒÐØ”(‰ˆØ‰ˆÝ�e�Uœ]Ñ+Ô+ð 	7à—,’,˜w¨¨U°LÑAÔAˆCÝ% g¨w¸¼ÈÑMÔMÐMà—<’< ¨¨e°ZÑ@Ô@ˆDØ×'Ò'¨
°AÑ6Ô6ˆDˆDå	ˆSŒX‰Œ˜!Ò	Ð	Øœ8Ñˆ�Ø‰ˆˆtØ�|Š|˜G T¨6°:Ñ>Ô>ˆØ�|Š|˜G T¨6°:Ñ>Ô>ˆà× Ò  ¨,Ñ7Ô7€EØ€E„JØ€E„JØ
�/Š/Ñ
Ô
€CÝ˜g w°´ÀÑEÔEÐEr'   c                 ó  ‡— t          |j        t          j        ¦  «        r@|j        j        Šˆfd„}|                      ||||¦  «        }t          | ||j        |¦  «        S |\  }|j        \  }|                      ||||j        ¦  «        S )z1
    Call a number class, e.g. np.int32(...)
    c                  ó0   •— t          j        | ‰¬¦  «        S )N)Údtype)ÚnpÚarray)Úarg_hackÚdts    €r%   Úfooznumber_constructor.<locals>.fooQ  s   ø€ Ý”8˜H¨BÐ/Ñ/Ô/Ð/r'   )	r)   rZ   r   ÚArrayré   rÒ   r   r4   rJ   )	r1   r2   r3   r4   rî   r\   r$   Úvaltyrí   s	           @r%   Únumber_constructorrñ   I  sš   ø€ õ
 �#”/¥5¤;Ñ/Ô/ð BàŒ_Ô"ˆð	0ð 	0ð 	0ð 	0ð 	0à×&Ò& w°°S¸$Ñ?Ô?ˆÝ! '¨7°C´OÀSÑIÔIÐIð ‰ˆØ”(‰ˆØ�|Š|˜G S¨%°´ÑAÔAÐAr'   c                 ó*   — |                       ¦   «         S r"   ©Úget_dummy_value©r1   r2   r–   Úpyvals       r%   Úconstant_dummyr÷   _  s   € ð ×"Ò"Ñ$Ô$Ð$r'   c                 óÈ   — |                       |¦  «        }|                      ||                     |¦  «        t          |¦  «        ¬¦  «        }|                     ||¦  «        S )N)Úinfo)Úget_function_pointer_typeÚadd_dynamic_addrÚget_pointerÚstrÚbitcast)r1   r2   r–   rö   ÚptrtyÚptrvals         r%   Úconstant_function_pointerr  d  s\   € à×-Ò-¨bÑ1Ô1€EØ×%Ò% g¨r¯~ª~¸eÑ/DÔ/DÝ+.¨u©:¬:ð &ñ 7ô 7€Fà�?Š?˜6 5Ñ)Ô)Ð)r'   c                 ót   — |€|                       ||j        ¦  «        S |                      ||j        |¦  «        S r"   )Úmake_optional_noneÚtypeÚmake_optional_valuerõ   s       r%   Úconstant_optionalr  l  s9   € à€}Ø×)Ò)¨'°2´7Ñ;Ô;Ð;à×*Ò*¨7°B´G¸UÑCÔCÐCr'   c                 ó*   — |                       ¦   «         S )z&
    One-argument type() builtin.
    ró   r¬   s       r%   Ú	type_implr  v  s   € ð
 ×"Ò"Ñ$Ô$Ð$r'   c                 óD   — |j         \  }|\  }t          | |||¦  «        }|S r"   )r4   r   )r1   r2   r3   r4   r–   r$   Úitervals          r%   Ú	iter_implr  ~  s*   € à
Œ(�C€BØ�D€CÝ˜7 G¨R°Ñ5Ô5€GØ€Nr'   c                 óR  — |j         \  }|\  }t          | |||¦  «        }|                     |                     |                     ¦   «         ¦  «        d¬¦  «        5  | j                             |t          d¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         S )NF)Úlikelyr#   )	r4   r   Úif_thenr0   Úis_validÚ	call_convÚreturn_user_excÚStopIterationÚyielded_value)r1   r2   r3   r4   Úitertyr
  r\   s          r%   Ú	next_implr  †  sä   € àŒh�G€FØ�H€Gå
˜ ¨&°'Ñ
:Ô
:€Cà	�Š˜Ÿš c§l¢l¡n¤nÑ5Ô5¸eˆÑ	DÔ	Dð Fð FØÔ×)Ò)¨'µ=À"ÑEÔEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð ×ÒÑÔÐs   Á"B
Â
BÂBznot inc                 ób   — d„ }|                       ||||¦  «        }|                     |¦  «        S )Nc                 ó,   — t          j        || ¦  «        S r"   )r.   Úcontains©re   rf   s     r%   Úin_implznot_in.<locals>.in_impl—  s   € ÝÔ   AÑ&Ô&Ð&r'   )rÒ   r0   )r1   r2   r3   r4   r  r\   s         r%   Únot_inr  •  s>   € ð'ð 'ð 'ð ×
"Ò
" 7¨G°S¸$Ñ
?Ô
?€CØ�<Š<˜ÑÔÐr'   c                 ó    — |j         \  }|j        }|                      |t          |j        ¦  «        ¦  «        }t          | ||j        |¦  «        S r"   )r4   rZ   rÚ   rœ   r   r   )r1   r2   r3   r4   r–   Úrettyr\   s          r%   Úconstsized_lenr     sE   € àŒ8�D€RØŒO€EØ
×
Ò
˜u¥c¨"¬(¡m¤mÑ
4Ô
4€CÝ˜g w°´ÀÑEÔEÐEr'   c                 ób   — |j         \  }t          |¦  «        rt          j        S t          j        S r"   )r4   rœ   r   Útrue_bitr;   )r1   r2   r3   r4   r–   s        r%   Ú
sized_boolr!  ¨  s+   € àŒ8�D€RÝ
ˆ2�w„wð !ÝÔÐåÔ Ð r'   c                 óh   — |j         }|                      |¦  «        }t          | ||j         |¦  «        S r"   )rZ   Úget_constant_undefr   )r1   r2   r3   r4   r  r\   s         r%   Úlower_empty_tupler$  °  s2   € àŒO€EØ
×
$Ò
$ UÑ
+Ô
+€CÝ˜g w°´ÀÑEÔEÐEr'   c                 ó8   — |\  }t          | ||j        |¦  «        S r"   )r   rZ   )r1   r2   r3   r4   r$   s        r%   Úlower_tupler&  ¶  s   € à�D€CÝ˜W g¨s¬ÀÑDÔDÐDr'   c                 ó¸   — t           j        t           j        t           j        t           j        t           j        t           j        f}t          | |¦  «        rd„ }|S d S )Nc                 ó(   — t          | ¦  «        dk    S r¤   )rœ   ©rÊ   s    r%   Ú	bool_implz bool_sequence.<locals>.bool_implÇ  s   € Ý�q‘6”6˜A’:Ðr'   )r   ÚCharSeqÚUnicodeCharSeqÚDictTypeÚListTypeÚUnicodeTypeÚSetr)   )rÊ   Úvalid_typesr*  s      r%   Úbool_sequencer2  »  s^   € õ 	ŒÝÔÝŒÝŒÝÔÝŒ	ð€Kõ �!�[Ñ!Ô!ð ð	ð 	ð 	àÐðð r'   Úalways)Úinlinec                 óD   — t          | t          j        ¦  «        s| €d„ S d S )Nc                 ó   — dS ©NFr#   r)  s    r%   ú<lambda>zbool_none.<locals>.<lambda>Î  s   € ˜€ r'   rh   r)  s    r%   Ú	bool_noner9  Ë  s)   € å�!•U”^Ñ$Ô$ð ¨¨	ØˆÐð )2¨	r'   c                 ó®   — t          | t          j        ¦  «        rt          j        S t          | t          j        ¦  «        r| j        S t          d¦  «        ‚©NzUnsupported type)r)   r   ÚFloatrê   ÚinfÚIntegerÚmaxvalr:   ©rq   s    r%   Úget_type_max_valuerA  Ò  sH   € Ý�#•u”{Ñ#Ô#ð ÝŒvˆÝ�#•u”}Ñ%Ô%ð ØŒzÐÝ
Ð0Ñ
1Ô
1Ð1r'   c                 ó°   — t          | t          j        ¦  «        rt          j         S t          | t          j        ¦  «        r| j        S t          d¦  «        ‚r;  )r)   r   r<  rê   r=  r>  Úminvalr:   r@  s    r%   Úget_type_min_valuerD  Ù  sJ   € Ý�#•u”{Ñ#Ô#ð Ý”ˆwˆÝ�#•u”}Ñ%Ô%ð ØŒzÐÝ
Ð0Ñ
1Ô
1Ð1r'   c                 ó  — |j         d         j        }t          |t          j        ¦  «        r9|j        }t          j        |¦  «        }|j        }t          j	        ||¦  «        }�nt          |t          j
        ¦  «        r“|j        }|dk    rt          j        ¦   «         }n)|dk    rt          j        ¦   «         }nt          d¦  «        ‚t          t          d                     |¦  «        ¦  «        }	t          j	        |t          j         ¦  «        }net          |t          j        t          j        f¦  «        r?d}t          j        |¦  «        }t          j        j        dz   }t          j	        ||¦  «        }t+          | |||¦  «        S )Nr   é    é@   ú+llvmlite only supports 32 and 64 bit floatsúfloat{}rB   )r4   ré   r)   r   r>  rµ   r   rY   rC  rX   r<  Ú	FloatTypeÚ
DoubleTyper:   Úgetattrrê   Úformatr=  Ú
NPDatetimeÚNPTimedeltaÚint64r   ©
r1   r2   r3   r4   rq   ÚbwÚltyr$   r\   Únptys
             r%   Úlower_get_type_min_valuerU  à  sA  € ð Œ(�1Œ+Ô
€Cå�#•u”}Ñ%Ô%ð $ØŒ\ˆÝŒj˜‰nŒnˆØŒjˆÝŒk˜#˜sÑ#Ô#ˆ‰Ý	�C�œÑ	%Ô	%ð $ØŒ\ˆØ�Š8ˆ8Ý”,‘.”.ˆCˆCØ�2ŠXˆXÝ”-‘/”/ˆCˆCå%Ð&SÑTÔTÐTÝ•r˜9×+Ò+¨BÑ/Ô/Ñ0Ô0ˆÝŒk˜#¥¤˜wÑ'Ô'ˆˆÝ	�C�%Ô*­EÔ,=Ð>Ñ	?Ô	?ð $ØˆÝŒj˜‰nŒnˆÝŒkÔ  1Ñ$ˆÝŒk˜#˜sÑ#Ô#ˆÝ˜g w°°SÑ9Ô9Ð9r'   c                 ó  — |j         d         j        }t          |t          j        ¦  «        r9|j        }t          j        |¦  «        }|j        }t          j	        ||¦  «        }�nt          |t          j
        ¦  «        r’|j        }|dk    rt          j        ¦   «         }n)|dk    rt          j        ¦   «         }nt          d¦  «        ‚t          t          d                     |¦  «        ¦  «        }	t          j	        |t          j        ¦  «        }nbt          |t          j        t          j        f¦  «        r<d}t          j        |¦  «        }t          j        j        }t          j	        ||¦  «        }t+          | |||¦  «        S )Nr   rF  rG  rH  rI  )r4   ré   r)   r   r>  rµ   r   rY   r?  rX   r<  rJ  rK  r:   rL  rê   rM  r=  rN  rO  rP  r   rQ  s
             r%   Úlower_get_type_max_valuerW  û  s:  € ð Œ(�1Œ+Ô
€Cå�#•u”}Ñ%Ô%ð $ØŒ\ˆÝŒj˜‰nŒnˆØŒjˆÝŒk˜#˜sÑ#Ô#ˆ‰Ý	�C�œÑ	%Ô	%ð $ØŒ\ˆØ�Š8ˆ8Ý”,‘.”.ˆCˆCØ�2ŠXˆXÝ”-‘/”/ˆCˆCå%Ð&SÑTÔTÐTÝ•r˜9×+Ò+¨BÑ/Ô/Ñ0Ô0ˆÝŒk˜#�rœvÑ&Ô&ˆˆÝ	�C�%Ô*­EÔ,=Ð>Ñ	?Ô	?ð $ØˆÝŒj˜‰nŒnˆÝŒkÔ ˆÝŒk˜#˜sÑ#Ô#ˆÝ˜g w°°SÑ9Ô9Ð9r'   )Ú
IndexValueÚIndexValueType)r   Úregister_jitablec                 óš   — |j         }|\  }} t          j        |¦  «        | |¦  «        }||_        ||_        |                     ¦   «         S r"   )rZ   r   Úcreate_struct_proxyÚindexrr   rÞ   )r1   r2   r3   r4   rq   r]  rr   Úindex_values           r%   Úimpl_index_valuer_    sR   € ð Œ/€CØ�L€Eˆ5Ø2•'Ô-¨cÑ2Ô2°7¸GÑDÔD€KØ€KÔØ€KÔØ× Ò Ñ"Ô"Ð"r'   c                 óh   — t          | t          ¦  «        rt          |t          ¦  «        rd„ }|S d S d S )Nc                 ó8  — t          j        | j        ¦  «        r/t          j        |j        ¦  «        r| j        |j        k     r| S |S | S t          j        |j        ¦  «        r|S | j        |j        k    r|S | j        |j        k    r| j        |j        k     r| S |S | S r"   ©rê   rÉ   rr   r]  ©Úindval1Úindval2s     r%   Úmin_implzindval_min.<locals>.min_impl*  ó¤   € ÝŒx˜œÑ&Ô&ð #Ý”8˜GœMÑ*Ô*ð #à”} w¤}Ò4Ð4Ø&˜à&˜ð #�NÝ”˜'œ-Ñ(Ô(ð 	#à�Ø” ¤Ò.Ð.Ø�Ø” '¤-Ò/Ð/Ø”= 7¤=Ò0Ð0Ø"�Nà"�NØˆNr'   ©r)   rY  )rd  re  rf  s      r%   Ú
indval_minri  &  óP   € å�'�>Ñ*Ô*ð Ý�'�>Ñ*Ô*ðð	ð 	ð 	ð, ˆð1ð ð ð r'   c                 ó|   — t          | t          j        ¦  «        rt          |t          j        ¦  «        rd„ }|S d S d S )Nc                 ó
   — | o|S r"   r#   ©Úval1Úval2s     r%   Úbool_min_implz"boolval_min.<locals>.bool_min_implG  s   € Ø�=˜DÐ r'   r(   )rn  ro  rp  s      r%   Úboolval_minrq  C  sS   € å�$�œÑ&Ô&ð Ý�$�œÑ&Ô&ðð	!ð 	!ð 	!àÐð	ð ð ð r'   c                 óh   — t          | t          ¦  «        rt          |t          ¦  «        rd„ }|S d S d S )Nc                 ó8  — t          j        | j        ¦  «        r/t          j        |j        ¦  «        r| j        |j        k     r| S |S | S t          j        |j        ¦  «        r|S |j        | j        k    r|S | j        |j        k    r| j        |j        k     r| S |S | S r"   rb  rc  s     r%   Úmax_implzindval_max.<locals>.max_implP  rg  r'   rh  )rd  re  rt  s      r%   Ú
indval_maxru  L  rj  r'   c                 ó|   — t          | t          j        ¦  «        rt          |t          j        ¦  «        rd„ }|S d S d S )Nc                 ó
   — | p|S r"   r#   rm  s     r%   Úbool_max_implz"boolval_max.<locals>.bool_max_implm  s   € Ø�<˜4Ðr'   r(   )rn  ro  rx  s      r%   Úboolval_maxry  i  sS   € å�$�œÑ&Ô&ð Ý�$�œÑ&Ô&ðð	 ð 	 ð 	 àÐð	ð ð ð r'   c                 ó   — | |k    S r"   r#   r  s     r%   r8  r8  r  s
   € ¨Q°ªU€ r'   c                 ó   — | |k     S r"   r#   r  s     r%   r8  r8  s  s
   € ¨!¨aª%€ r'   c                 óJ   ‡— t          | t          j        ¦  «        rˆfd„}|S d S )Nc                 ój   •— t          | ¦  «        }t          |¦  «        }|D ]} ‰||¦  «        r|}Œ|S r"   )ÚiterÚnext)ÚiterableÚitÚ
return_valr$   Úops       €r%   r&   zmin_max_impl.<locals>.imply  sH   ø€ Ý�h‘”ˆBÝ˜b™œˆJØð %ð %�Ø�2�c˜:Ñ&Ô&ð %Ø!$�JøØÐr'   )r)   r   ÚIterableType)r€  rƒ  r&   s    ` r%   Úmin_max_implr…  v  sB   ø€ å�(�EÔ.Ñ/Ô/ð ð	ð 	ð 	ð 	ð 	ð ˆðð r'   c                 ó,   — t          | t          ¦  «        S r"   )r…  Ú	less_than©r€  s    r%   Úiterable_minr‰  ƒ  s   € å˜¥)Ñ,Ô,Ð,r'   c                 ó,   — t          | t          ¦  «        S r"   )r…  Úgreater_thanrˆ  s    r%   Úiterable_maxrŒ  ˆ  s   € å˜¥,Ñ/Ô/Ð/r'   c                 ó²  — |j         }d„ }t          j                             |j        ¦  «        }t          j        |t          j        |¦  «        |¦  «        }t          |¦  «        dk    r,|  	                    ¦   «         |  
                    |||¦  «        f}n+|  	                    ¦   «         |  
                    ||d¦  «        f}|                      ||||¦  «        S )ae  Redirect constructor implementation to `numba_typeref_ctor(cls, *args)`,
    which should be overloaded by the type's implementation.

    For example:

        d = Dict()

    `d` will be typed as `TypeRef[DictType]()`.  Thus, it will call into this
    implementation.  We need to redirect the lowering to a function
    named ``numba_typeref_ctor``.
    c                 ó   — t          | g|¢R Ž S r"   )r   )Úclsr4   s     r%   Ú	call_ctorz%redirect_type_ctor.<locals>.call_ctorœ  s   € Ý! #Ð-¨Ð-Ð-Ð-Ð-r'   r   r#   )rZ   r   ÚTupleÚ
from_typesr4   r   rL   ÚTypeRefrœ   rô   Ú
make_tuplerÒ   )r1   r2   r3   r4   r�  r�  Ú	ctor_argss          r%   Úredirect_type_ctorr–  �  sØ   € ð Œ/€Cð.ð .ð .õ ”×&Ò& s¤xÑ0Ô0€Iå
Ô
˜3¥¤¨cÑ 2Ô 2°IÑ
>Ô
>€CÝ
ˆ9�~„~˜ÒÐØ×'Ò'Ñ)Ô)Ø×"Ò" 7¨I°tÑ<Ô<ð>ˆˆð ×'Ò'Ñ)Ô)Ø×"Ò" 7¨I°rÑ:Ô:ð<ˆð ×#Ò# G¨Y¸¸TÑBÔBÐBr'   c                 óô  ‡— d }t          |t          j        ¦  «        rd}n9t          |t          j        ¦  «        rd}nt          |t          j        ¦  «        rd}|� dj        |Ž }t          |¦  «        ‚t          | t          j        j        t          j	        t          j
        t          j        t          j        f¦  «        rt          Šn)t          | t          j        j        ¦  «        rt          Šnd S dˆfd„	}|S )N)ÚstringsÚ )Úbytesrf   )Ú	bytearrayrf   z/sum() can't sum {} [use {}''.join(seq) instead]r   c                 ó2   •— |} ‰| ¦  «        D ]}||z   }Œ|S r"   r#   )r€  Ústartr“   rÊ   Úiterators       €r%   r&   zol_sum.<locals>.implÈ  s1   ø€ ØˆØ�˜(Ñ#Ô#ð 	ð 	ˆAà˜‘'ˆCˆCØˆ
r'   ©r   )r)   r   r/  ÚBytesÚ	ByteArrayrM  r   Ú
containersÚ_HomogeneousTupleÚListr.  rï   Ú	RangeTyper~  Ú_HeterogeneousTupler   )r€  r�  Úerrorr>   r&   rž  s        @r%   Úol_sumr¨  ­  s  ø€ ð €EÝ�%�Ô*Ñ+Ô+ð #ØˆˆÝ	�E�5œ;Ñ	'Ô	'ð #ØˆˆÝ	�E�5œ?Ñ	+Ô	+ð #Ø"ˆàÐØFÐ?ÔFÈÐNˆÝ˜#ÑÔÐõ �(�UÔ-Ô?ÅÄÝ"œ^­U¬[½%¼/ðKñ Lô Lð åˆˆÝ	�H�uÔ/ÔCÑ	EÔ	Eð õ "ˆˆàˆtðð ð ð ð ð ð €Kr'   c                 ó   — d„ }|S )Nc              7   ó8   K  — t          |g|¢R Ž D ]	} | |Ž V — Œ
d S r"   )r�   )Úfuncr€  r4   rÊ   s       r%   r&   zol_map.<locals>.impl×  s@   è è € Ý�XÐ% Ð%Ð%Ð%ð 	ð 	ˆAØ�$˜�(ˆNˆNˆNˆNð	ð 	r'   r#   )r«  r€  r4   r&   s       r%   Úol_mapr¬  Õ  s   € ðð ð ð €Kr'   c                 óL   — | �t          | t          j        ¦  «        rd„ }nd„ }|S )Nc              3   ó    K  — |D ]}|r|V — Œ	d S r"   r#   ©r«  r€  rÊ   s      r%   r&   zol_filter.<locals>.implà  s1   è è € Øð ð �Øð Ø�G�G�Gøðð r'   c              3   ó2   K  — |D ]} | |¦  «        r|V — Œd S r"   r#   r¯  s      r%   r&   zol_filter.<locals>.implå  s9   è è € Øð ð �Ø�4˜‘7”7ð Ø�G�G�Gøðð r'   rh   )r«  r€  r&   s      r%   Ú	ol_filterr±  Ý  sA   € àˆ� D­%¬.Ñ9Ô9ˆð	ð 	ð 	ð 	ð
	ð 	ð 	ð €Kr'   c                 ó  — d„ }d„ }t          | ¦  «        }t          |t          j        ¦  «        rd|› d�}t	          |¦  «        ‚t          j        t          j        t          j        t          j        t          j	        t          j
        t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        f}t          ||¦  «        sd|› d�}t	          |¦  «        ‚|}t          |t          j        ¦  «        r|j        d         }t          |t          j        ¦  «        s|f}|D �]&}t          |t          j        ¦  «        r|j        d         }	n$t          |t          j        ¦  «        r|}	n|j        }	t,          t          j        t.          t          j        t0          t          j        t          j	        ft2          t          j
        t4          t          j        t8          t          j        i}
|	|
v rt          ||
|	         ¦  «        r|c S Œât          |t          j        ¦  «        rB|	t          j        t          j        fvrd}t	          |¦  «        ‚t=          |¦  «        |	u r|n|c S t          |	¦  «        }||k    r|c S t          |t          j        ¦  «        r3t          |t          j        ¦  «        r|j        |j        j        k    r|c S t          |t          j         ¦  «        rh|j        d         t          j!        k    rMt          ||j"        ¦  «        s4t          |t          j        ¦  «        rt          |t          j        ¦  «        r|c S �Œ(|S )	Nc                 ó   — dS )NTr#   ©ÚvarÚtypss     r%   Ú	true_implz ol_isinstance.<locals>.true_implï  s   € Øˆtr'   c                 ó   — dS r7  r#   r´  s     r%   Ú
false_implz!ol_isinstance.<locals>.false_implò  s   € Øˆur'   z1isinstance cannot handle optional types. Found: "ú"z1isinstance() does not support variables of type "z".r   zLNumba type classes (except numba.typed.* container types) are not supported.)#r   r)   r   ÚOptionalr   ÚNumberr   r¥  r-  ÚLiteralStrKeyDictr¤  r.  r‘  ÚUniTupler0  ÚFunctionÚ	ClassTyper/  ÚClassInstanceTyperi   rï   Úkeyrš  ÚrangeÚdictr¥   ÚtupleÚ	BaseTuplery   r“  r  Úinstance_typeÚ	ContainerÚ	undefinedÚ	__class__)rµ  r¶  r·  r¹  Úvar_tyr>   Úsupported_var_tyÚt_typsrq   rÂ  Útypes_not_registeredÚ	numba_typs               r%   Úol_isinstancerÐ  ì  s2  € ðð ð ðð ð õ ˜3ÑÔ€Få�&�%œ.Ñ)Ô)ð "ØKÀ&ÐKÐKÐKˆÝ˜SÑ!Ô!Ð!õ œ¥e¤kµ5´?Ýœ­Ô(?ÅÄÝœ­¬µU´^ÅUÄYÝœ­¬½Ô9JÝÔ/µ´ÅÄð	NÐõ
 �fÐ.Ñ/Ô/ð "ØLÀ&ÐLÐLÐLˆÝ˜SÑ!Ô!Ð!à€Fõ �&�%œ.Ñ)Ô)ð !à”*˜Q”-ˆå�f�eœkÑ*Ô*ð Ø�ˆàð 2%ñ 2%ˆå�c�5œ>Ñ*Ô*ð 	Ø”'˜!”*ˆCˆCÝ˜�Uœ_Ñ-Ô-ð 	ØˆCˆCà”'ˆCõ
 •5”;Ý•5”?Ý•5”>¥5Ô#:Ð;Ý•%”*Ý•5”?Ý•”ð 
Ðð Ð&Ð&Ð&Ý˜&Ð"6°sÔ";Ñ<Ô<ð !Ø Ð Ð Ð Øå�c�5œ=Ñ)Ô)ð 	%ð �5œ>­5¬>Ð:Ð:Ð:ð3�å$ SÑ)Ô)Ð)õ !% V¡¤°Ð 3Ð 3�9�9¸ÐCÐCÐCå% cÑ*Ô*ˆIØ˜Ò"Ð"Ø Ð Ð Ð Ý˜I¥u¤Ñ7Ô7ð %Ý˜v¥uÔ'>Ñ?Ô?ð%à”J )Ô"9Ô"=Ò=Ð=à Ð Ð Ð Ý˜I¥u¤Ñ7Ô7ð %Ø”M !Ô$­¬Ò7Ð7å˜f iÔ&9Ñ:Ô:ð %Ý ­¬Ñ8Ô8ð%å" 9­e¬oÑ>Ô>ð%ð %Ð$Ð$Ð$ùàÐr'   c                 ó   — d S r"   r#   ©ÚobjÚnames     r%   Ú_getattr_raise_attr_excrÕ  N  s	   € ð 	€Dr'   c                 ó„   ‡— t          |t          j        ¦  «        st          d¦  «        ‚|j        }d| › d|› d�Šˆfd„}|S )Nú(argument 'name' must be a literal stringú'z' has no attribute 'c                 ó"   •— t          ‰¦  «        ‚r"   )ÚAttributeError)rÓ  rÔ  Úmessages     €r%   r&   z(ol__getattr_raise_attr_exc.<locals>.impl[  s   ø€ Ý˜WÑ%Ô%Ð%r'   )r)   r   ÚStringLiteralr   rW   )rÓ  rÔ  Úlnamer&   rÛ  s       @r%   Úol__getattr_raise_attr_excrÞ  T  sf   ø€ å�d�EÔ/Ñ0Ô0ð NÝ!Ð"LÑMÔMÐMØÔ€EØ3�#Ð3Ð3¨5Ð3Ð3Ð3€Gð&ð &ð &ð &ð &à€Kr'   c                 óÄ  ‡‡‡‡‡	‡
‡— t          |t          j        ¦  «        st          d¦  «        ‚|j        Š
|                      ‰‰
¦  «        Št          ‰t          j        ¦  «        rd‰› d‰
› d‰› d�}t          |¦  «        ‚‰€�t          ‰t          j        ¦  «        r‰j	        t          k    s ‰‰|‰¦  «        }ˆfd„}nœ|                      t          ¦  «        Š	‰	                     | ‰|fi ¦  «        Št          j        ‰|‰¦  «        }ˆ	ˆfd„}nL ‰‰|‰¦  «        }t          ‰t          j        ¦  «        rˆˆfd„}n|                      ‰‰
¦  «        Šˆˆˆ
ˆfd	„}||fS )
Nr×  zQReturning function objects is not implemented. getattr() was requested to return z from attribute 'z' of ú.c                 óP   •— |d         }| j                              |‰|¦  «         |S ©Néÿÿÿÿ)ÚnrtÚincref)Úcgctxr2   r3   ÚllargsÚtmpÚdefaults        €r%   r&   zresolve_getattr.<locals>.implu  s+   ø€ Ø˜R”j�Ø”	× Ò  ¨'°3Ñ7Ô7Ð7Ø�
r'   c                 óX   •— |                       ‰‰¦  «        } |||d d…         ¦  «        S râ  )r-   )ræ  r2   r3   rç  Únative_implrÁ   Ú	raise_sigs        €€r%   r&   zresolve_getattr.<locals>.impl~  s2   ø€ Ø#×0Ò0°°yÑAÔA�Ø"�{ 7¨F°3°B°3¬KÑ8Ô8Ð8r'   c                 ó¸   •— ‰j         }|                      ||d         ‰|¦  «        }|                      |||¦  «        }| j                             |‰|¦  «         |S r¤   )ÚthisrJ   Úget_bound_functionrä  rå  )	ræ  r2   r3   Úll_argsÚ	cast_typeÚcastedr\   rÂ   rÓ  s	          €€r%   r&   zresolve_getattr.<locals>.impl†  s[   ø€ ØœG�	ØŸš G¨W°Q¬Z¸¸iÑHÔH�Ø×.Ò.¨w¸À	ÑJÔJ�Ø”	× Ò  ¨"¨cÑ2Ô2Ð2Ø�
r'   c                 óÆ   •— |                       ‰
‰	¦  «        } || |‰
|d         ‰	¦  «        }|                      ||‰‰¦  «        }| j                             |‰|¦  «         |S r¤   )rp   rJ   rä  rå  )ræ  r2   r3   rð  Ú	attr_implr\   rò  ÚattrtyrÂ   rÝ  rÓ  s          €€€€r%   r&   zresolve_getattr.<locals>.impl�  si   ø€ Ø!×-Ò-¨c°5Ñ9Ô9�	Ø�i  w°°W¸Q´ZÀÑGÔG�ØŸš G¨S°&¸"Ñ=Ô=�Ø”	× Ò  ¨"¨fÑ5Ô5Ð5Ø�r'   )r)   r   rÜ  r   rW   Úresolve_getattrr¿  r   Ú
NamedTupleÚinstance_classÚ_getattr_default_typeÚresolve_value_typerÕ  Úget_call_typeÚnoneÚBoundFunction)ÚtyctxrÓ  rÔ  ré  r>   r3   r&   rõ  rÂ   rÁ   rÝ  rì  s    ` `   @@@@@r%   rö  rö  `  sÿ  øøøøøøø€ å�d�EÔ/Ñ0Ô0ð NÝ!Ð"LÑMÔMÐMØÔ€EØ	×	Ò	˜s EÑ	*Ô	*€Bõ �"•e”nÑ%Ô%ð ð&Ø46ð&ð &àð&ð &à"ð&ð &ð &ˆõ ˜#ÑÔÐà	€zõ ˜7¥EÔ$4Ñ5Ô5ð 	9ØÔ&Õ*?Ò?Ð?à�'˜#˜t WÑ-Ô-ˆCðð ð ð ð ð ð ×+Ò+Õ,CÑDÔDˆDØ×*Ò*¨5°3¸°+¸rÑBÔBˆIÝ”*˜S $¨Ñ0Ô0ˆCð9ð 9ð 9ð 9ð 9ð 9ð 9ð
 ˆb��d˜GÑ$Ô$ˆÝ�b�%Ô-Ñ.Ô.ð 	ðð ð ð ð ð ð ð ×*Ò*¨3°Ñ6Ô6ˆFðð ð ð ð ð ð ð ð �ˆ9Ðr'   rù  r™  )Úprefer_literalc                 ó   — d„ }|S )Nc                 ó.   — t          | |t          ¦  «        S r"   )rö  Ú_getattr_defaultrÒ  s     r%   r&   zol_getattr_2.<locals>.impl£  s   € Ý˜s DÕ*:Ñ;Ô;Ð;r'   r#   ©rÓ  rÔ  r&   s      r%   Úol_getattr_2r  ¡  s   € ð<ð <ð <à€Kr'   c                 ó   — d„ }|S )Nc                 ó$   — t          | ||¦  «        S r"   )rö  )rÓ  rÔ  ré  s      r%   r&   zol_getattr_3.<locals>.impl®  s   € Ý˜s D¨'Ñ2Ô2Ð2r'   r#   )rÓ  rÔ  ré  r&   s       r%   Úol_getattr_3r  ¬  s   € ð3ð 3ð 3à€Kr'   c                 ó  ‡— t          |t          j        ¦  «        st          d¦  «        ‚|j        }|                      ||¦  «        Š‰€t          j        d¦  «        }nt          j        d¦  «        } |||¦  «        }ˆfd„}||fS )Nr×  FTc                 ó8   •— ‰€t           j        nt           j        S r"   )r   r;   r   )ræ  r2   r3   rð  rÂ   s       €r%   r&   zresolve_hasattr.<locals>.implÄ  s   ø€ Ø#% :�gÔÐµ7Ô3CÐCr'   )r)   r   rÜ  r   rW   rö  Úliteral)rþ  rÓ  rÔ  rÝ  r  r3   r&   rÂ   s          @r%   Úresolve_hasattrr  ³  s¥   ø€ å�d�EÔ/Ñ0Ô0ð NÝ!Ð"LÑMÔMÐMØÔ€EØ	×	Ò	˜s EÑ	*Ô	*€Bð 
€zÝ”˜eÑ$Ô$ˆˆå”˜dÑ#Ô#ˆØ
ˆ%��TÑ
Ô
€CðDð Dð Dð Dð Dà�ˆ9Ðr'   c                 ó   — d„ }|S )Nc                 ó"   — t          | |¦  «        S r"   )r  rÒ  s     r%   r&   zol_hasattr.<locals>.implÏ  s   € Ý˜s DÑ)Ô)Ð)r'   r#   r  s      r%   Ú
ol_hasattrr  Í  s   € ð*ð *ð *à€Kr'   c                 ó   ‡— d| › d�Šˆfd„}|S )Nz<object type:ú>c                 ód   •— d}t          | |¦  «        dk    r t          | |¦  «        ¦   «         S ‰S )NÚ__repr__T)ÚhasattrrL  )rÓ  rs   Úmissing_repr_formats     €r%   r&   zol_repr_generic.<locals>.impl×  s=   ø€ ØˆÝ�3˜ÑÔ Ò%Ð%Ø%•7˜3 Ñ%Ô%Ñ'Ô'Ð'ð 'Ð&r'   r#   )rÓ  r&   r  s     @r%   Úol_repr_genericr  Ô  s4   ø€ à0¨#Ð0Ð0Ð0Ðð'ð 'ð 'ð 'ð 'ð €Kr'   c                 ó   — dd„}|S )Nr™  c                 ó|   — d}t          | |¦  «        dk    r t          | |¦  «        ¦   «         S t          | ¦  «        S )NÚ__str__T)r  rL  Úrepr)Úobjectrs   s     r%   r&   zol_str_generic.<locals>.implä  s@   € ØˆÝ�6˜4Ñ Ô  DÒ(Ð(Ø(•7˜6 4Ñ(Ô(Ñ*Ô*Ð*å˜‘<”<Ðr'   ©r™  r#   )r  r&   s     r%   Úol_str_genericr  â  s   € ð ð  ð  ð  ð €Kr'   rŸ  r  )§Úcollectionsr   rÇ   Ú	functoolsr   Únumpyrê   r.   ÚwarningsÚllvmliter   Únumba.core.imputilsr   r   r   r	   r
   r   r   r   r   r   r   Ú
numba.corer   r   r   r   Únumba.core.extendingr   r   Únumba.core.typeconvr   Únumba.core.errorsr   r   r   r   r   r   Únumba.misc.specialr   Únumba.core.typing.asnumbatyper   Útruthr+   Úis_notÚAnyr6   r/   r@   ÚOpaquerH   r*   rS   r9   ÚLiteralÚIntegerLiteralr]   Úner`   rm   ÚDeferredTyperv   r»  r   r�   ÚgetitemÚCPointerr>  rˆ   Úsetitemr‹   r¢   ÚmaxrÆ  r©   ÚVarArgr­   Úminr±   r³   r·   Úroundr<  rÃ   rÓ   ÚintÚfloatrÕ   Úcomplexræ   ÚNumberClassrñ   ÚDummyr÷   ÚExternalFunctionPointerr  r  r  r  r~  r„  r  r  ÚIteratorTyper  r  rœ   Ú
ConstSizedr  ÚboolÚSizedr!  rÅ  r$  r&  r2  r9  rA  rD  ÚDTyperU  rW  Únumba.core.typing.builtinsrX  rY  Únumba.extendingrZ  ÚintpÚTypeÚuintpr_  ri  rq  ru  ry  r‹  r‡  r…  r‰  rŒ  r“  r–  Úsumr¨  Úmapr¬  Úfilterr±  r)   rÐ  rÕ  rÞ  rö  rù  r  rL  r  r  r  r  r  r  r  rý   r  r#   r'   r%   ú<module>rK     s¥  ðØ "Ð "Ð "Ð "Ð "Ð "Ø €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø €€€à Ð Ð Ð Ð Ð ðIð Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið
 5Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø *Ð *Ð *Ð *Ð *Ð *ð8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð .Ð -Ð -Ð -Ð -Ð -Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7ð 
€ˆ(Œ.ÑÔðð ñ Ôðð €ˆxŒ ¤	¨5¬9Ñ5Ô5ð0ð 0ñ 6Ô5ð0ð €ˆxŒ|˜UœY¨¬	Ñ2Ô2ð!ð !ñ 3Ô2ð!ð2 €ˆxŒ|˜Uœ\¨5¬<Ñ8Ô8ð!ð !ñ 9Ô8ð!ð €ˆxŒ|˜Uœ]¨E¬MÑ:Ô:ð,ð ,ñ ;Ô:ð,ð$ €ˆxŒ{˜EœM¨5¬=Ñ9Ô9Ø€ˆxŒ{˜EÔ0°%Ô2FÑGÔGðFð Fñ HÔGñ :Ô9ðFð €ˆxŒ{˜EœM¨5¬=Ñ9Ô9Ø€ˆxŒ{˜EÔ0°%Ô2FÑGÔGðFð Fñ HÔGñ :Ô9ðFðð ð ð €€ˆŒÑ Ô �j�j Ñ&Ô&Ñ 'Ô 'Ð 'Ø €€ˆŒÑ Ô �j�j Ñ'Ô'Ñ (Ô (Ð (ð Ð�uÔ)Ñ*Ô*ð8ð 8ñ +Ô*ð8ð €ˆEŒI�uÔ)Ñ*Ô*Ø€ˆEŒN˜EÔ.Ñ/Ô/Ø€ˆEŒM˜5Ô-Ñ.Ô.ðBð Bñ /Ô.ñ 0Ô/ñ +Ô*ðBð
 €ˆEÔ ¤	Ñ*Ô*Ø€ˆEÔ ¤Ñ.Ô.Ø€ˆEÔ ¤Ñ/Ô/ð:ð :ñ 0Ô/ñ /Ô.ñ +Ô*ð:ð €ˆxÔ ¤°´Ñ?Ô?ðEð Eñ @Ô?ðEð €ˆxÔ ¤°´ÀÄ	ÑJÔJð!ð !ñ KÔJð!ðð ð ð0 €ˆs�E”OÑ$Ô$ðBð Bñ %Ô$ðBð
 €ˆs�L�E”L ¤Ñ+Ô+Ñ,Ô,ðDð Dñ -Ô,ðDð €ˆs�E”OÑ$Ô$ðBð Bñ %Ô$ðBð
 €ˆs�L�E”L ¤Ñ+Ô+Ñ,Ô,ðDð Dñ -Ô,ðDð,ð ,ð ,ð €ˆu�e”kÑ"Ô"ð	Fð 	Fñ #Ô"ð	Fð €ˆu�e”k 5¤=Ñ1Ô1ðFð Fñ 2Ô1ðFðJ €ˆs�E”IÑÔØ€ˆu�e”iÑ Ô ðFð Fñ !Ô ñ ÔðFð €ˆw˜˜œ U¤YÑ/Ô/Ñ0Ô0ðFð Fñ 1Ô0ðFð6 €ˆuÔ  %¤)Ñ,Ô,ðBð Bñ -Ô,ðBð* €�”ÑÔð%ð %ñ Ôð%ð €�Ô-Ñ.Ô.ð*ð *ñ /Ô.ð*ð €�”ÑÔðDð Dñ  ÔðDð €ˆt�U”YÑÔð%ð %ñ  Ôð%ð €ˆt�UÔ'Ñ(Ô(ðð ñ )Ô(ðð €ˆt�UÔ'Ñ(Ô(ð	ð 	ñ )Ô(ð	ð €ˆx˜œ E¤IÑ.Ô.ðð ñ /Ô.ðð €ˆs�EÔ$Ñ%Ô%ðFð Fñ &Ô%ðFð €ˆt�U”[Ñ!Ô!ð!ð !ñ "Ô!ð!ð €ˆuÑÔðFð Fñ ÔðFð
 €ˆu�e”oÑ&Ô&ðEð Eñ 'Ô&ðEð 
€ˆ$�„ðð ñ „ðð 
€ˆ$�xÐ Ñ Ô ðð ñ !Ô ðð2ð 2ð 2ð2ð 2ð 2ð €Ð! 5Ô#4Ñ5Ô5Ø€Ð! 5¤;Ñ/Ô/ð:ð :ñ 0Ô/ñ 6Ô5ð:ð2 €Ð! 5Ô#4Ñ5Ô5Ø€Ð! 5¤;Ñ/Ô/ð:ð :ñ 0Ô/ñ 6Ô5ð:ð6 BÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6à€ˆz˜5œ: u¤zÑ2Ô2Ø€ˆz˜5œ;¨¬
Ñ3Ô3ð#ð #ñ 4Ô3ñ 3Ô2ð#ð 
€ˆ#�„ðð ñ „ðð8 
€ˆ#�„ðð ñ „ðð 
€ˆ#�„ðð ñ „ðð8 
€ˆ#�„ðð ñ „ðð  ÐÐ 2Ð 2Ñ3Ô3€ØÐÐ/Ð/Ñ0Ô0€	ð ð	ð 	ñ Ôð	ð 
€ˆ#�„ð-ð -ñ „ð-ð 
€ˆ#�„ð0ð 0ñ „ð0ð €ˆuŒ}˜l˜eœl¨5¬9Ñ5Ô5Ñ6Ô6ðCð Cñ 7Ô6ðCð> 
€ˆ#�„ð ð  ð  ñ „ð ðN 
€ˆ#�„ðð ñ „ðð 
€ˆ&ÑÔðð ñ Ôðð 
€ˆ*ÑÔð\ð \ñ Ôð\ðB	ð 	ð 	ð 
€Ð
!Ñ"Ô"ðð ñ #Ô"ðð ð5ð 5ñ „ð5ðr #˜
Ð#:¸BÑ?Ô?Ð Ø(Ð(Ñ*Ô*Ð ð 
€ˆ' $Ð'Ñ'Ô'ðð ñ (Ô'ðð 
€ˆ'ÑÔðð ñ Ôðð ðð ñ „ðð2 
€ˆ'ÑÔðð ñ Ôðð 
€ˆ$�„ð
ð 
ñ „ð
ð 
€ˆ#�„ðð ð ñ „ðð ð r'   