§
    2@ÄjN  ã                   óÊ  — d dl Z d dl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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  e j        e¦  «        ZdgZ ej        e	j        d¦  «        Z ej        e	j         d ¦  «        Z! ej        e	j         d¦  «        Z" ej        e	j         d¦  «        Z#d„ Z$ G d„ de%¦  «        Z& G d„ de%¦  «        Z' G d„ de'¦  «        Z(dS )é    N)Úir)ÚLinkage)Ú
llvm_types)Úcreate_constant_array)Úcompile_extraÚFlags)Úglobal_compiler_lock)Ú
cpu_target)Ú	nrtdynmod)Úcgutils)Úlookup_environmentÚModuleCompileré   é   c                  ó^   — dd l } dd l}|                     dt          | d¦  «        z  ¦  «        S )Nr   a      #include <stdint.h>

    #ifndef HAVE_LONGDOUBLE
        #define HAVE_LONGDOUBLE %d
    #endif

    typedef struct {
        float real;
        float imag;
    } complex64;

    typedef struct {
        double real;
        double imag;
    } complex128;

    #if HAVE_LONGDOUBLE
    typedef struct {
        long double real;
        long double imag;
    } complex256;
    #endif

    typedef float float32;
    typedef double float64;
    #if HAVE_LONGDOUBLE
    typedef long double float128;
    #endif
    Ú
complex256)ÚnumpyÚtextwrapÚdedentÚhasattr)r   r   s     úDC:\Projects\Historical\venv\Lib\site-packages\numba/pycc/compiler.pyÚ
get_headerr      sC   € Ø€L€L€LØ€O€O€Oà�?Š?ð õ: �%˜Ñ
&Ô
&ñ;'ñ (ô (ð (ó    c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚExportEntryz0
    A simple record for exporting symbols.
    c                 ó0   — || _         || _        || _        d S ©N)ÚsymbolÚ	signatureÚfunction)Úselfr   r   r    s       r   Ú__init__zExportEntry.__init__H   s   € ØˆŒØ"ˆŒØ ˆŒˆˆr   c                 ó(   — d| j         ›d| j        ›d�S )NzExportEntry(ú, ú))r   r   )r!   s    r   Ú__repr__zExportEntry.__repr__M   s   € € Ø(,¬¨¨°T´^°^°^ÐDÐDr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r"   r&   © r   r   r   r   C   sA   € € € € € ðð ð!ð !ð !ð
Eð Eð Eð Eð Er   r   c                   ó\  — e Zd ZdZ ej        ej        ej        ej	        ej        f¦  «        Z
 ej        e
¦  «        Z ej        ej        ej	        ej        ej        ej	        f¦  «        Z ej        e¦  «        Zdd„Zd„ Zd„ Zed„ ¦   «         Zdd„Zdd„Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú_ModuleCompilerzÕA base class to compile Python modules to a single shared library or
    extension module.

    :param export_entries: a list of ExportEntry instances.
    :param module_name: the name of the exported module.
    Fc                 ó¾   — || _         d| _        g | _        || _        d | _        || _        t          j        | _        t          j        j	        | j         fi |¤Ž| _
        d S )NF)Úmodule_nameÚexport_python_wrapÚdll_exportsÚexport_entriesÚexternal_init_functionÚuse_nrtr
   Útyping_contextÚtarget_contextÚwith_aot_codegenÚcontext)r!   r2   r/   r4   Úaot_optionss        r   r"   z_ModuleCompiler.__init__q   sj   € à&ˆÔØ"'ˆÔØˆÔØ,ˆÔà&*ˆÔ#ØˆŒå(Ô7ˆÔÝ!Ô0ÔAØÔð-ð -Ø +ð-ð -ˆŒˆˆr   c                 ó   — d|›�S )Nz._pycc_method_r+   )r!   Ú	func_names     r   Ú_mangle_method_symbolz%_ModuleCompiler._mangle_method_symbol   s   € € Ø%. YÐ0Ð0r   c                 ó   — t           ‚)zAEmit generated Python wrapper and extension module code.
        )ÚNotImplementedError)r!   Úllvm_modules     r   Ú_emit_python_wrapperz$_ModuleCompiler._emit_python_wrapper‚   s
   € õ "Ð!r   c                 óª  — i | _         i | _        i | _        i | _        | j                             ¦   «         }|                     | j        ¦  «        }t          ¦   «         }d|_	        | j
        sd|_        d|_        | j        r8d|_        t          j        | j        ¦  «        \  }}|                     |¦  «         | j        D �]ä}t'          | j        | j        |j        |j        j        |j        j        |i |¬¦  «        }|j        }|j        D ]#}	|	j                             d¦  «        rd|	_        Œ$|j        j        }
|j          !                    |
¦  «        }| j
        �rd|_        |j        j"        }|j          !                    |¦  «        }|  #                    |j$        ¦  «        |_        d|_        |j%        j&         '                    |j        j(        |j        j)        ¦  «        }|| j         |<   |j*        | j        |<   |j        j+        | j        |<   |j,        D ]^}|j        }|j-        D ]M}	|	j        }|                     d¦  «        r/t]          |¦  «        }|�| /                    ¦   «         r
|| j        |<   ŒNŒ_�Œ¹|j$        |_        | j0         1                    |j$        ¦  «         �Œæ| j
        r?| 2                    d	¦  «        }|  3                    |¦  «         |                     |¦  «         | 4                    ¦   «          | 5                    ¦   «         D ]>}|j        | j0        vr.|j        tl          j7        tl          j8        hv rd
|_9        Œ7d|_9        Œ?|S )z€Read all the exported functions/modules in the translator
        environment, and join them into a single LLVM module.
        T)ÚlocalsÚlibraryÚ__excinfo_unwrap_argsÚlinkonce_odrÚinternalÚexternalÚ_ZN08NumbaEnvNÚwrapperÚdefaultÚhidden):Úexported_function_typesÚfunction_environmentsÚenvironment_gvsÚextra_environmentsr8   ÚcodegenÚcreate_libraryr/   r   Ú
no_compiler0   Úno_cpython_wrapperÚno_cfunc_wrapperr4   Únrtr   Úcreate_nrt_moduleÚadd_ir_moduler2   r   r5   r    r   ÚargsÚreturn_typeÚ_final_moduleÚ	functionsÚnameÚ
startswithÚlinkageÚfndescÚllvm_func_namerC   Úget_functionÚllvm_cpython_wrapper_namer<   r   r6   Ú	call_convÚget_function_typeÚrestypeÚargtypesÚenvironmentÚenv_nameÚ_linking_librariesÚglobal_variablesr   Ú	can_cacher1   ÚappendÚcreate_ir_moduler@   ÚfinalizeÚget_defined_functionsr   ÚprivaterF   Ú
visibility)r!   rP   rC   ÚflagsÚ
nrt_moduleÚ_ÚentryÚcresÚmoduleÚgvr;   Ú	llvm_funcÚwrappernamerI   ÚfntyÚ	linkedlibÚ	linkedmodÚgvnÚenvÚwrapper_moduleÚfns                        r   Ú_cull_exportsz_ModuleCompiler._cull_exports‡   sj  € ð
 (*ˆÔ$Ø%'ˆÔ"Ø!ˆÔØ"$ˆÔà”,×&Ò&Ñ(Ô(ˆØ×(Ò(¨Ô)9Ñ:Ô:ˆõ ‘”ˆØˆÔØÔ&ð 	*Ø'+ˆEÔ$Ø%)ˆEÔ"ØŒ<ð 	.ØˆEŒIå%Ô7¸¼ÑEÔE‰MˆJ˜Ø×!Ò! *Ñ-Ô-Ð-àÔ(ð )	6ñ )	6ˆEÝ  Ô!4°d´lØ %¤Ø %¤Ô 4Ø %¤Ô ;¸UØ')°7ð	<ñ <ô <ˆDð Ô*ˆFØÔ&ð 0ð 0�Ø”7×%Ò%Ð&=Ñ>Ô>ð 0Ø!/�B”JøàœÔ2ˆIØœ×1Ò1°)Ñ<Ô<ˆIàÔ&ñ 6Ø$.�	Ô!Ø"œkÔC�Øœ,×3Ò3°KÑ@Ô@�Ø#×9Ò9¸%¼,ÑGÔG�”Ø",�”ØÔ*Ô4×FÒFØ”KÔ'¨¬Ô)=ñ?ô ?�à6:�Ô,¨UÑ3Ø48Ô4D�Ô*¨5Ñ1Ø.2¬kÔ.B�Ô$ UÑ+ð ")Ô!;ð 	Gð 	G�IØ )Ô 7�Ià'Ô8ð Gð G˜Ø œg˜ØŸ>š>¨/Ñ:Ô:ð GÝ"4°SÑ"9Ô"9˜CØ"˜Ø#&§=¢=¡?¤?ð !GØCF DÔ$;¸CÑ$@øðGñ	Gð "'¤�	”ØÔ ×'Ò'¨¬Ñ5Ô5Ð5Ñ5àÔ"ð 	2Ø$×5Ò5°iÑ@Ô@ˆNØ×%Ò% nÑ5Ô5Ð5Ø×!Ò! .Ñ1Ô1Ð1ð 	×ÒÑÔÐØ×/Ò/Ñ1Ô1ð 	-ð 	-ˆBØŒw˜dÔ.Ð.Ð.Ø”:¥'¤/µ7Ô3CÐ!DÐDÐDà$-�B”M�Mà$,�B”MøØˆr   c                 óÜ   — || _         |                      ¦   «         }t          |d¦  «        5 }|                     |                     ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©NÚwb)r0   r‚   ÚopenÚwriteÚemit_bitcode©r!   ÚoutputÚwrapÚkwsrC   Úfouts         r   Úwrite_llvm_bitcodez"_ModuleCompiler.write_llvm_bitcodeÛ   sª   € Ø"&ˆÔØ×$Ò$Ñ&Ô&ˆÝ�&˜$ÑÔð 	/ 4Ø�JŠJ�w×+Ò+Ñ-Ô-Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ó   ¬(A!Á!A%Á(A%c                 óÜ   — || _         |                      ¦   «         }t          |d¦  «        5 }|                     |                     ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r„   )r0   r‚   r†   r‡   Úemit_native_objectr‰   s         r   Úwrite_native_objectz#_ModuleCompiler.write_native_objectá   sª   € Ø"&ˆÔØ×$Ò$Ñ&Ô&ˆÝ�&˜$ÑÔð 	5 4Ø�JŠJ�w×1Ò1Ñ3Ô3Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5r�   c                 ó`   — t          |¦  «        }d|v r|                     d¦  «        r|dz  }|S )NÚint)Ú8Ú16Ú32Ú64Ú_t)ÚstrÚendswith)r!   ÚtyobjÚret_vals      r   Ú	emit_typez_ModuleCompiler.emit_typeç   s=   € Ý�e‘*”*ˆØ�GÐÐØ×ÒÐ 7Ñ8Ô8ð  Ø˜4‘�Øˆr   c                 ó  ‡ — t           j                             |¦  «        \  }}t          |dz   d¦  «        5 }|                     t          ¦   «         ¦  «         |                     d¦  «         ‰ j        D ]r}|j        }‰                      |j	        j
        ¦  «        }d                     ˆ fd„|j	        j        D ¦   «         ¦  «        }|                     d|›d|›d|›d	�¦  «         Œs	 d d d ¦  «         d S # 1 swxY w Y   d S )
Nz.hÚwz
/* Prototypes */
r$   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S r   )rž   )Ú.0Úargtyper!   s     €r   ú	<genexpr>z._ModuleCompiler.emit_header.<locals>.<genexpr>ö   sK   øè è € ð !Mð !MØ%,ð "&§¢°Ñ!8Ô!8ð !Mð !Mð !Mð !Mð !Mð !Mr   zextern ú ú(z);
)ÚosÚpathÚsplitextr†   r‡   r   r2   r   rž   r   rY   ÚjoinrX   )	r!   rŠ   ÚfnameÚextr�   Úexport_entryr\   re   rX   s	   `        r   Úemit_headerz_ModuleCompiler.emit_headerî   sx  ø€ Ý”W×%Ò% fÑ-Ô-‰
ˆˆsÝ�%˜$‘, Ñ$Ô$ð 	J¨Ø�JŠJ•z‘|”|Ñ$Ô$Ð$Ø�JŠJÐ-Ñ.Ô.Ð.Ø $Ô 3ð Jð J�Ø#Ô*�ØŸ.š.¨Ô)?Ô)KÑLÔL�Ø—y’yð !Mð !Mð !Mð !MØ0<Ô0FÔ0Kð!Mñ !Mô !Mñ Mô M�à—
’
�
°G°G°G¸T¸T¸TÀ4À4À4ÐHÑIÔIÐIÐIðJð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jð 	Jð 	Js   ·B1C6Ã6C:Ã=C:c                 ó  — g }| j         D ]Æ}|j        }|                      |¦  «        }| j        |         }t	          j        |||¦  «        }| j                             ||¦  «        }t          j         	                    |t          j         
                    |t          j        ¦  «        t          t          f¦  «        }	|                     |	¦  «         ŒÇt          j         	                    t          t          t           t          g¦  «        }
|                     |
¦  «         t#          | j        |¦  «        }t'          j        ||j        d¦  «        }||_        d|_        t          j                             |t           t           g¦  «        }|S )z
        Collect exported methods and emit a PyMethodDef array.

        :returns: a pointer to the PyMethodDef array.
        z.module_methodsrF   )r2   r   r<   rL   r   ÚFunctionr8   Úinsert_const_stringÚConstantÚliteral_structÚbitcastÚltÚ
_void_starÚMETH_VARARGS_AND_KEYWORDSÚNULLrl   ÚZEROr   Úmethod_def_tyr   Úadd_global_variableÚtypeÚinitializerr^   Úgep)r!   r?   Úmethod_defsru   r\   r`   r{   ÚlfuncÚmethod_nameÚmethod_def_constÚsentinelÚmethod_array_initÚmethod_arrayÚmethod_array_ptrs                 r   Ú_emit_method_arrayz"_ModuleCompiler._emit_method_arrayú   sY  € ð ˆØÔ(ð 	1ð 	1ˆEØ”<ˆDØ!×7Ò7¸Ñ=Ô=ˆNØÔ/°Ô6ˆDÝ”K ¨T°>ÑBÔBˆEàœ,×:Ò:¸;ÈÑMÔMˆKÝ!œ{×9Ò9ØÝ”×$Ò$ U­B¬MÑ:Ô:Ý*Ýðñ ô  Ðð
 ×ÒÐ/Ñ0Ô0Ð0Ð0å”;×-Ò-­tµT½4ÅÐ.FÑGÔGˆØ×Ò˜8Ñ$Ô$Ð$Ý1°$Ô2DÀkÑRÔRÐÝÔ2°;Ø3DÔ3IØ3DñFô Fˆð $5ˆÔ Ø)ˆÔÝœ;Ÿ?š?¨<½$Å¸ÑFÔFÐØÐr   c                 ó¨  ‡— g }| j         D ]>}| j        |         }‰                     |j        ¦  «        }|                     |¦  «         Œ?|                     ˆfd„| j                             ¦   «         D ¦   «         ¦  «         t          | j	        |¦  «        }| j
                             |d|¦  «        }	|	                     t          t          g¦  «        S )z©
        Emit an array of env_def_t structures (see modulemixin.c)
        storing the pickled environment constants for each of the
        exported functions.
        c                 óD   •— g | ]}‰                      |j        ¦  «        ‘ŒS r+   )Úserialize_uncachedÚconsts)r¢   r   Úpyapis     €r   ú
<listcomp>z;_ModuleCompiler._emit_environment_array.<locals>.<listcomp>'  s9   ø€ ð 
ð 
ð 
àð ×$Ò$ S¤ZÑ0Ô0ð
ð 
ð 
r   z.module_environments)r2   rM   rÊ   rË   rl   ÚextendrO   Úvaluesr   Ú
env_def_tyr8   Úinsert_unique_constr¾   r¹   )
r!   r?   ÚbuilderrÌ   Úenv_defsru   r   Úenv_defÚenv_defs_initrx   s
      `      r   Ú_emit_environment_arrayz'_ModuleCompiler._emit_environment_array  sè   ø€ ð ˆØÔ(ð 	%ð 	%ˆEØÔ,¨UÔ3ˆCà×.Ò.¨s¬zÑ:Ô:ˆGØ�OŠO˜GÑ$Ô$Ð$Ð$à�Šð 
ð 
ð 
ð 
àÔ.×5Ò5Ñ7Ô7ð
ñ 
ô 
ñ 	ô 	ð 	õ .¨d¬o¸xÑHÔHˆØŒ\×-Ò-¨kØ.DØ.;ñ=ô =ˆð �vŠv•t�T�lÑ#Ô#Ð#r   c                 ó   ‡ ‡— g }‰ j         D ]^}‰ j        |         }‰ j                             ‰|¦  «        }|                     t
          j        ¦  «        }|                     |¦  «         Œ_|                     ˆˆ fd„‰ j	        D ¦   «         ¦  «         |                     t          j        d¦  «        ¦  «         t          t
          j        |¦  «        }	‰ j                             ‰d|	¦  «        }|                     t          t          g¦  «        S )zj
        Emit an array of Environment pointers that needs to be filled at
        initialization.
        c                 ó€   •— g | ]:}‰j                              ‰|¦  «                             t          j        ¦  «        ‘Œ;S r+   )r8   Údeclare_env_globalr´   rµ   r¶   )r¢   Ú
envgv_namer?   r!   s     €€r   rÍ   z6_ModuleCompiler._emit_envgvs_array.<locals>.<listcomp>=  sT   ø€ ð 
ð 
ð 
ð
 ð	 ŒL×+Ò+ØØñô ÷ Šg•b”mÑ$Ô$ð	
ð 
ð 
r   Nz.module_envgvs)r2   rN   r8   rÙ   r´   rµ   r¶   rl   rÎ   rO   r   rÑ   r¾   r¹   )
r!   r?   rÒ   rÌ   Úenv_settersru   rÚ   rx   ÚenvgvÚenv_setters_inits
   ``        r   Ú_emit_envgvs_arrayz"_ModuleCompiler._emit_envgvs_array1  s  øø€ ð
 ˆØÔ(ð 	&ð 	&ˆEØÔ-¨eÔ4ˆJØ”×0Ò0°¸jÑIÔIˆBØ—J’J�rœ}Ñ-Ô-ˆEØ×Ò˜uÑ%Ô%Ð%Ð%à×Òð 
ð 
ð 
ð 
ð 
ð
 #Ô5ð
ñ 
ô 
ñ 	ô 	ð 	ð 	×Ò�2œ=¨Ñ.Ô.Ñ/Ô/Ð/å0µ´ÀÑLÔLÐØŒ\×-Ò-¨kØ.>Ø.>ñ@ô @ˆð �vŠv•t�T�lÑ#Ô#Ð#r   c                 óì   — | j         rlt          j        t          j        |j        | j        | j        |j        g¦  «        }t          j        ||| j         ¦  «        }| 	                    |||||g¦  «        S dS )z@
        Emit call to "external" init function, if any.
        N)
r3   r   ÚFunctionTyperµ   Ú_int32r¼   Úmethod_def_ptrÚenv_def_ptrr°   Úcall)	r!   r?   rÒ   ÚmodobjrÅ   Ú	env_arrayÚenvgv_arrayr{   r�   s	            r   Ú_emit_module_init_codez&_ModuleCompiler._emit_module_init_codeM  s†   € ð
 Ô&ð 	Ý”?¥2¤9Ø$*¤K°Ô1DØ$(Ô$4°kÔ6Fð$HñIô IˆDõ ”˜[¨$°Ô0KÑLÔLˆBØ—<’<  V¨\¸9Ø%0ð%2ñ 3ô 3ð 3ð �4r   N)F)r'   r(   r)   r*   r   ÚLiteralStructTyperµ   Ú
_int8_starr¶   rá   rº   ÚPointerTyperâ   rÐ   rã   r"   r<   r@   r	   r‚   rŽ   r’   rž   r®   rÇ   rÖ   rÞ   rè   r+   r   r   r-   r-   Q   s}  € € € € € ðð ð )�BÔ(¨"¬-Ø*,¬-Ø*,¬)Ø*,¬-ð*9ñ :ô :€Mð
 $�R”^ MÑ2Ô2€Nð &�Ô% r¤}Ø')¤yØ')¤}Ø')¤}Ø')¤yð	'2ñ 3ô 3€Jð
 !�"”. Ñ,Ô,€Kð-ð -ð -ð -ð1ð 1ð 1ð"ð "ð "ð
 ðQð Qñ ÔðQðf/ð /ð /ð /ð5ð 5ð 5ð 5ðð ð ð
Jð 
Jð 
Jð ð  ð  ð@$ð $ð $ð.$ð $ð $ð8ð ð ð ð r   r-   c                   ó¾  — e Zd Zd„ Z eej        ej        ¦  «        Z eej        ej        ¦  «        Z eej        ej        eej	        ¦  «        Z
 eej        ej	        ¦  «        Z eej        ¦  «        Zej        Z ej        ej        eej        ej        f¦  «        Z ej        eeeej        ej        ee
eef	¦  «        Zed„ ¦   «         Zed„ ¦   «         Zd„ ZdS )r   c                 óP   — t          j        t          j        | |¦  «        ¦  «        S r   )r   rë   rà   )ÚretrX   s     r   ú<lambda>zModuleCompiler.<lambda>_  s   € ¥"¤.µ´ÀÀdÑ1KÔ1KÑ"LÔ"L€ r   c                 ó´   — t          j        t          j        t          j        | j        ¦  «        t          j        f¦  «        }d}t          j        r|dz  }||fS )zn
        Return the signature and name of the Python C API function to
        initialize the module.
        ÚPyModule_Create2Ú	TraceRefs)r   rà   rµ   Ú_pyobject_head_prë   Úmodule_def_tyrá   Ú_trace_refs_)r!   r   r\   s      r   Úmodule_create_definitionz'ModuleCompiler.module_create_definitionŸ  sY   € õ ”O¥BÔ$7Ý%'¤^°DÔ4FÑ%GÔ%GÝ%'¤Yð%0ñ1ô 1ˆ	ð "ˆÝŒ?ð 	 Ø�KÑˆDà˜$ˆÐr   c                 óX   — t          j        t          j        d¦  «        }|d| j        z   fS )zX
        Return the name and signature of the module's initialization function.
        r+   ÚPyInit_)r   rà   rµ   ró   r/   )r!   r   s     r   Úmodule_init_definitionz%ModuleCompiler.module_init_definition¯  s+   € õ
 ”O¥BÔ$7¸Ñ<Ô<ˆ	à˜) dÔ&6Ñ6Ð6Ð6r   c                 óÈ  — t          j        |g| j        ¢R Ž }d|_        | j                             || j        ¦  «        }t           j                             t          j
        t          j        | j        d ¦  «        t          j        t          j        d ¦  «        t          j        t          j        d ¦  «        f¦  «        }t          j        ||j        d¦  «        }||_        d|_        |                      |¦  «        }t           j                             ||t          j        | j        d ¦  «        t          j        t          j        d¦  «        |t          j        | j        d ¦  «        t          j        | j        d ¦  «        t          j        | j        d ¦  «        t          j        | j        d ¦  «        f	¦  «        }t          j        ||j        d¦  «        }||_        d|_        t          j        |g| j        ¢R Ž }	|	                     d¦  «        }
t          j        |
¦  «        }| j                             |¦  «        }|                     ||t          j        t          j        t:          j        ¦  «        f¦  «        }|                     t          j         ||¦  «        ¦  «        5  | !                    tD           #                    |	j        j$        j%        ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   |  &                    |||¦  «        }|  '                    |||¦  «        }|  (                    ||||||¦  «        }|�m|                     t          j)        ||¦  «        ¦  «        5  | !                    t          j        |j        d ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   | !                    |¦  «         | j*         +                    |	j,        ¦  «         d S )NrG   z.module_def_baserF   éÿÿÿÿz.module_defÚEntry)-r   r°   rö   r^   r8   r±   r/   r²   r³   rµ   Ú_pyobject_head_initÚ	m_init_tyÚ_llvm_py_ssize_tró   r   r»   r¼   r½   rÇ   Ú
_char_starÚ
inquiry_tyÚtraverseproc_tyÚfreefunc_tyrù   Úappend_basic_blockÚ	IRBuilderÚget_python_apirä   rá   ÚsysÚapi_versionÚif_thenÚis_nullrî   r¸   r´   ÚpointeerY   rÖ   rÞ   rè   Úis_not_nullr1   rl   r\   )r!   r?   Úcreate_module_fnÚmod_name_constÚmod_def_base_initÚmod_def_baserÅ   Úmod_def_initÚmod_defÚmod_init_fnru   rÒ   rÌ   Úmodræ   rç   rî   s                    r   r@   z#ModuleCompiler._emit_python_wrapper¸  sû  € õ œ; {ÐS°TÔ5RÐSÐSÐSÐØ#-ÐÔ ð œ×9Ò9¸+Ø:>Ô:JñLô Lˆõ œK×6Ò6ÝÔ#ÝŒ[˜œ¨Ñ.Ô.ÝŒ[�Ô,¨dÑ3Ô3ÝŒ[�Ô,¨dÑ3Ô3ðñ
ô 
Ðõ Ô2°;Ø3DÔ3IØ3EñGô Gˆð $5ˆÔ Ø)ˆÔà×.Ò.¨{Ñ;Ô;ˆå”{×1Ò1ØØÝŒ[˜œ¨$Ñ/Ô/ÝŒ[�Ô,¨bÑ1Ô1ØÝŒ[˜œ¨$Ñ/Ô/ÝŒ[˜Ô-¨tÑ4Ô4ÝŒ[˜œ¨$Ñ/Ô/ÝŒ[˜Ô)¨4Ñ0Ô0ð	ñ
ô 
ˆõ Ô-¨k¸<Ô;LØ.;ñ=ô =ˆà*ˆÔØ$ˆŒõ ”k +ÐL°Ô0KÐLÐLÐLˆØ×.Ò.¨wÑ7Ô7ˆÝ”,˜uÑ%Ô%ˆØ”×+Ò+¨GÑ4Ô4ˆà�lŠlÐ+Ø#ÝœK­¬	µ3´?ÑCÔCðEñFô Fˆð �_Š_�Wœ_¨W°cÑ:Ô:Ñ;Ô;ð 	Lð 	LØ�KŠK�Ÿš [Ô%5Ô%=Ô%IÑJÔJÑKÔKÐKð	Lð 	Lð 	Lñ 	Lô 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Løøøð 	Lð 	Lð 	Lð 	Lð ×0Ò0°¸gÀuÑMÔMˆ	Ø×-Ò-¨k¸7ÀEÑJÔJˆØ×)Ò)¨+°wÀØ*6¸	À;ñPô Pˆàˆ?Ø—’¥Ô!4°W¸cÑ!BÔ!BÑCÔCð 9ð 9à—’�BœK¨¬°$Ñ7Ô7Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 	�Š�CÑÔÐàÔ×Ò Ô 0Ñ1Ô1Ð1Ð1Ð1s$   Ê#=K,Ë,K0Ë3K0Í).N#Î#N'Î*N'N)r'   r(   r)   Ú_ptr_funrµ   Ú_int8ró   Úvisitproc_tyr  r¶   r  r  rþ   rê   r   r   ré   Ú_pyobject_headrÿ   Úmodule_def_base_tyr-   râ   rô   Úpropertyrö   rù   r@   r+   r   r   r   r   ]  sh  € € € € € àLÐL€Hð �8˜BœHØÔ/ñ1ô 1€Lð �˜"œ(ØÔ-ñ/ô /€Jð �h˜rœxØ!Ô2Ø+Ø!œ}ñ.ô .€Oð �(˜2œ8Øœ=ñ*ô *€Kð �˜œÑ"Ô"€Ià”€Jð .˜Ô-àÔØØÔØÔð		
ñô Ðð( )�BÔ(àØØØÔØÔ*ØØØØð
	
ñô €Mð ðð ñ „Xðð ð7ð 7ñ „Xð7ðG2ð G2ð G2ð G2ð G2r   ))Úloggingr§   r  Úllvmliter   Úllvmlite.bindingr   Ú
numba.pyccr   rµ   Únumba.core.cgutilsr   Únumba.core.compilerr   r   Únumba.core.compiler_lockr	   Únumba.core.registryr
   Únumba.core.runtimer   Ú
numba.corer   Únumba.core.environmentr   Ú	getLoggerr'   ÚloggerÚ__all__r²   r¶   r¸   rá   r¹   ÚONEr·   r   Úobjectr   r-   r   r+   r   r   ú<module>r+     s   ðð €€€Ø 	€	€	€	Ø 
€
€
€
à Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9à *Ð *Ð *Ð *Ð *Ð *Ø (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ð 
ˆÔ	˜8Ñ	$Ô	$€àÐ
€à€r„{�2”= $Ñ'Ô'€Ø€r„{�2”9˜aÑ Ô €Ø€b„k�"”)˜QÑÔ€Ø'˜BœK¨¬	°3Ñ7Ô7Ð ð!(ð !(ð !(ðHEð Eð Eð Eð E�&ñ Eô Eð EðIð Ið Ið Ið I�fñ Iô Ið IðXb2ð b2ð b2ð b2ð b2�_ñ b2ô b2ð b2ð b2ð b2r   