+
    VBiR                       ^ RI t ] P                  ! ]]]]]]]]]]R7
       ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^R	IHt ^R
IHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHtHtHtHt ^RIHtHt ^RIH t H!t!H"t"H#t#H$t$ ^RIH%t%H&t&H't' ^RI(H)t)H*t*H+t+ ^RIH,t, R t-R t.R t/R t0R t1R-R.R/R0R1R2R3R4R5R6R7R2R8R.R9R0R:R2R;R4R<R6R=R2/t2 ! R R4      t3 ! R R]Ph                  ]Pj                  4      t6R t7R  R! lt8R" R# lt9R$ t: ! R% R&4      t;R' t<]%Pz                  ! R(R)4      t>]%! R*RR+R,7      t?R# )>    N)
NamingOptions
PyrexTypes	TypeSlotserrorwarningpy_object_typeUtilityCodeEncodedStringre)defaultdict)Sequence)CPtrType)Future)Annotate)Code)r   )Nodes)r   )r   )r   )Pythran)r   r   CompileErrorformat_position)r	   get_all_subtypes)open_new_filereplace_suffixdecode_filenamebuild_hex_versionis_cython_generated_file)r
   IncludeCodeTempitaUtilityCode)r   bytes_literalencoded_string_or_bytes_literal)has_np_pythranc                 .    \        W4      p\        V4      # N)r   as_encoded_filename)pathnewsufnewpaths   && ?/usr/lib/python3.14/site-packages/Cython/Compiler/ModuleNode.pyreplace_suffix_encodedr)   '   s    T*Gw''    c                 @    \        V \        P                  ! 4       4      # r#   )r    sysgetfilesystemencoding)r%   s   &r(   r$   r$   ,   s     +41J1J1LMMr*   c                 :    V P                   P                  4        V # r#   )scopecheck_c_classes_pxdmodule_nodes   &r(   check_c_declarations_pxdr3   2   s    ))+r*   c                 n    V P                   P                  4        V P                   P                  4        V # r#   )r/   check_c_classescheck_c_functionsr1   s   &r(   check_c_declarationsr7   7   s,    %%''')r*   c                    \         P                  '       g   VP                  '       d   R pMVP                  p\        VR4      '       d   \	        R4       \
        P                  ! VV P                  R,          VP                  R7      # )Femit_code_commentszeWarning: option emit_code_comments is deprecated. Instead, use compiler directive emit_code_comments.)emit_linenumsr9   c_line_in_traceback)	r   annotater:   hasattrprintr   CCodeConfig
directivesr;   )envoptionsr:   s   && r(   generate_c_code_configrC   =   st    7+++--w,-- D 	E #>>*>?#779 9r*    c                      a  ] tR t^ot o RtR tV 3R lR ltV 3R lR ltR tR t	V 3R	 lR
 lt
V 3R lR ltV 3R lR ltV 3R lR ltR tRtV tR# )SharedUtilityExportera  
Class responsible for generating code that imports and exports shared utility functions.

Mark the positions where the functions should be called with `call_import_code()`/`call_export_code()`.
The function calls and import/export functions are generated when `generate_exporting_functions()`
is called. This approach is needed because the list of the shared functions is only known in the later
stages of compilation.
c                    \        VP                  P                  4      V n        \        VP                  P                  4      V n        Wn        W0n        V! R 4      V n        V! R4      V n	        R# )zShared function import codezShared function export codeN)
boolcontextshared_c_file_pathin_shared_utility_moduleshared_utility_qualified_nameusing_shared_utility_moduleposr/   import_codeexport_code)selfrN   mod_init_subfunctionr/   s   &&&&r(   __init__SharedUtilityExporter.__init__x   sV    (,U]]-M-M(N%+/0[0[+\(
/0MN/0MNr*   c                J   < V ^8  d   QhRS[ S[P                  ,          RS[/#    shared_func_definitionsreturnr   r   SharedFunctionDeclrH   )format__classdict__s   "r(   __annotate__"SharedUtilityExporter.__annotate__   s+     O O(4CZCZ:[ O`d Or*   c                @    \        V P                  ;'       d    T4      # r#   )rH   rK   rQ   rX   s   &&r(   has_shared_exports(SharedUtilityExporter.has_shared_exports   s    D11MM6MNNr*   c                J   < V ^8  d   QhRS[ S[P                  ,          RS[/# rV   rZ   )r\   r]   s   "r(   r^   r_      s+     R R(4CZCZ:[ R`d Rr*   c                @    \        V P                  ;'       d    T4      # r#   )rH   rM   ra   s   &&r(   has_shared_imports(SharedUtilityExporter.has_shared_imports   s    D44PP9PQQr*   c                <    V P                   P                  V4       R # r#   )rO   set_call_coderQ   codes   &&r(   call_import_code&SharedUtilityExporter.call_import_code       &&t,r*   c                <    V P                   P                  V4       R # r#   )rP   ri   rj   s   &&r(   call_export_code&SharedUtilityExporter.call_export_code   rn   r*   c                D   < V ^8  d   QhRS[ S[P                  ,          /# )rW   shared_function_definitionsr   r   r[   )r\   r]   s   "r(   r^   r_      s$     	g 	gYabfbybyYz 	gr*   c                $   V Uu. uF6  pVP                    R VP                   R2VP                  VP                  3NK8  	  ppVP                  P	                  \
        P                  ! RR4      4       \        WP                  VRR4       R# u upi )()FunctionExportImportExport.c__Pyx_ExportFunctionvoid (*{name})(void)N)	retparamsnameglobalstateuse_utility_coder
   load_cached_generate_export_coderN   )rQ   rk   rs   shared_func_defexportss   &&&  r(   '_generate_c_shared_function_export_code=SharedUtilityExporter._generate_c_shared_function_export_code   s     $?
#>  ##$Ao&<&<%=Q?AUAUWfWkWkl#> 	 
 	))##$46FG	I 	dHHg7MOef
s   <Bc                D   < V ^8  d   QhRS[ S[P                  ,          /# )rW   function_definitionsrt   )r\   r]   s   "r(   r^   r_      s$     j j]efjf}f}]~ jr*   c                   V Uu. uF6  pVP                    R VP                   R2VP                  VP                  3NK8  	  ppVP                  P	                  \
        P                  ! RR4      4       \        V P                  P                  P                  4      pR\        P                   2p\        WP                  WEVR4       R# u upi )rv   rw   FunctionImportry   __Pyx_ImportFunction_void (**{name})(void)N)r|   r}   r~   r   r   r
   r   r   r/   rI   rL   r   	cyversion_generate_import_coderN   )rQ   rk   r   r   importsrL   import_funcs   &&&    r(   2_generate_c_shared_function_import_code_for_moduleHSharedUtilityExporter._generate_c_shared_function_import_code_for_module   s    
 $8
#7  ##$Ao&<&<%=Q?AUAUWfWkWkl#7 	 
 	))##$46FG	I )6djj6H6H6f6f(g%-f.>.>-?@((GKQh	j
s   <C	c                D   < V ^8  d   QhRS[ S[P                  ,          /# rW   shared_utility_functionsrt   )r\   r]   s   "r(   r^   r_            (4CZCZ:[ r*   c                    V P                  V4      '       d2   V P                  ;_uu_ 4       pV P                  VV4       R R R 4       R # R #   + '       g   i     R # ; ir#   )rb   rP   r   rQ   r   
inner_codes   && r(   _generate_exports'SharedUtilityExporter._generate_exports   sM    ""#;<<!!!Z<<, "! =!!!   AA	c                D   < V ^8  d   QhRS[ S[P                  ,          /# r   rt   )r\   r]   s   "r(   r^   r_      r   r*   c                    V P                  V4      '       d2   V P                  ;_uu_ 4       pV P                  VV4       R R R 4       R # R #   + '       g   i     R # ; ir#   )rf   rO   r   r   s   && r(   _generate_imports'SharedUtilityExporter._generate_imports   sM    ""#;<<!!!ZGG, "! =!!!r   c                    VP                   P                  pVP                  V P                  4       V P	                  V4       V P                  V4       VP                  4        R # r#   )r   r   enter_cfunc_scoper/   r   r   exit_cfunc_scope)rQ   rk   r   s   && r(   generate_exporting_functions2SharedUtilityExporter.generate_exporting_functions   sP    #'#3#3#L#L tzz*7878r*   )rP   rO   rK   rN   r/   rM   N)__name__
__module____qualname____firstlineno____doc__rS   rb   rf   rl   rp   r   r   r   r   r   __static_attributes____classdictcell__r]   s   @r(   rF   rF   o   sh     OO OR R--	g 	gj j     r*   rF   c                     a  ] tR t^t o R.tRtRtRt]R 4       t	R t
RtR ltR tR tR tR	 tR
 tRuR ltR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t ]!R 4       t"R t#R t$R t%RvR lt&R  t'R! t(R" t)R# t*R$ t+R% t,R& t-R' t.R( t/R) t0R* t1R+ t2R, t3R- t4R. t5R/ t6R0 t7R1 t8R2 t9R3 t:R4 t;R5 t<R6 t=R7 t>R8 t?]!R9 4       t@R: tAR; tBR< tCR= tDR> tER? tFR@ tGRA tHRB tIRC tJRD tKRE tLRF tMRG tNRH tORI tPRJ tQRK tRRL tSRM tTRN tURO tVRP tWRQ tXRR tYRS tZRT t[RU t\RV t]RW t^RX t_RY t`RZ taR[ tbR\ tcR] tdR^ teR_ tfR` tgRa thRb tiRc tjRd tkRe tlRf tmRg tnRh toRuRi ltpRj tqRk trRl tsRm ttRn tuRwRo ltvRp twRq txRr tyRstzV t{R# )x
ModuleNodebodyNc                    V P                   # r#   )r/   rQ   s   &r(   local_scopeModuleNode.local_scope   s     zzr*   c                   \        V P                  \        P                  4      '       g   Q hVR9   g   Q hV P                  f   \        P                  ! V P                  P
                  . R7      V n        \        P                  ! V P                  P
                  . R7      V n        V P                  P                  P                  ^ V P                  4       V P                  P                  P                  ^ V P                  4       VP                  V P                  P                  8w  d-   \        P                  ! VP
                  WP                  R7      pVR 8X  d   V P                  MV P                  p\        V\        P                  4      '       d'   VP                  P                  VP                  4       MVP                  P                  V4       V P                  P                  P                  VP                  4       VP                  P!                  4        F  pV P                  P#                  V4       K   	  R pV! V P                  P$                  VP$                  4       R# )pxdN)stats)r   r@   c                 J    V F  pW 9  g   K  V P                  V4       K  	  R # r#   )append)L1L2xs   && r(   extend_if_not_in-ModuleNode.merge_in.<locals>.extend_if_not_in   s    ;IIaL r*   )r   utility)
isinstancer   r   StatListNode	pxd_statsrN   utility_code_statsr   insertr@   r/   CompilerDirectivesNodeextendr   utility_code_list
c_includesvaluesprocess_includeincluded_files)rQ   treer/   stagetarget_statsincr   s   &&&&   r(   merge_inModuleNode.merge_in   s    $))U%7%78888****>>!"//		RHDN&+&8&8b&QD#IIOO""1dnn5IIOO""1d&=&=>tzz444 //tP`P`aD).%t~~T=T=TdE..//%%djj1%%d+

$$++E,C,CD##**,CJJ&&s+ -	!
 	22E4H4HIr*   c                    VP                    F@  pV P                  VP                  n        W#P                  P                  P
                  R &   KB  	  V P                  P                  V4       R# )internalN)c_class_entriesfull_module_nametypemodule_namer/   r@   r   )rQ   r/   internalise_c_class_entriesentrys   &&& r(   merge_scopeModuleNode.merge_scope   sP    **E%)%:%:EJJ"6QJJ''
3 + 	

E"r*   c                t    \         P                  ! V P                  V P                  V P                  R 7      pV# ))r@   r   )r   r   rN   r@   r   )rQ   r   s   & r(   with_compiler_directives#ModuleNode.with_compiler_directives  s,     ++DHHW[W`W`ar*   c                   \        V4      '       d   \        P                  ! V4       V P                  '       d   V P                  R ,          Vn        \
        P                  '       g   R;Vn        V n        M\
        P                  '       d   \        R\        P                  ! V P                  4      ,          4      Vn        V P                  eX   \        VP                  R,           V P                  ,           4      Vn        V P                  P                  VP                  n        MV P                  Vn        V P                  Vn        V P                  P                  V4       \         P"                  ! 4       pVP%                  V4      '       d3   V P&                  P)                  \*        P,                  ! RR4      4       R# R# )old_style_globalsNzFile: %s (starting at line %s)
CythonPyMutexPublicCheckzSynchronization.c)r!   r   include_pythran_genericr@   r   r   
docstringsdocembed_pos_in_docstringr   r   relative_positionrN   encodingr   analyse_declarationsr   get_cy_pymutex_typefind_shared_usages_of_typer/   r   r
   r   )rQ   rA   cy_pymutex_types   && r(   r   ModuleNode.analyse_declarations  s2   #++C0???$(OO4G$HC!!!!!%%CGdh+++#$DuG^G^_c_g_gGh$hiCGxx#'$(AB#'88#4#4 hhCG		&&s+$88:))/:: JJ''''.0C ;r*   c                   V P                   pVP                  '       d   V P                  V4       \        VP                  P                  4       4       F  w  r#VP                  '       g   K  VP                   VJ g   K+  VP                  '       g   K?  VP                  P                  '       g   VP                  P                  '       g   Ky  VP                  P                  V4       K  	  R # r#   )r/   has_import_star*create_import_star_conversion_utility_codesortedentriesitemscreate_wrapperis_typer   is_enumis_cpp_enumcreate_type_wrapperrQ   rA   r~   r   s   &   r(   prepare_utility_codeModuleNode.prepare_utility_code)  s     jj;;C@!#++"3"3"56KD$$$);5::+=+=+=AWAWAW

..s3 7r*   c                   V P                   p\        P                  Vn        . V n        V P                  W0P                  / 4       V P                  V4       V P                  W1V4       V P                  W1V4       V P                  W1V4       R # r#   )
r/   r   c_void_typereturn_typereferenced_modulesfind_referenced_modulessort_cdef_classesgenerate_c_codegenerate_h_codegenerate_api_code)rQ   rB   resultrA   s   &&& r(   process_implementation!ModuleNode.process_implementation4  st    jj$00"$$$S*A*A2Fs#S62S62sV4r*   c                ~    V P                    F,  pVP                   F  pVP                  '       g   K    ^# 	  K.  	  ^ # )   )r   cfunc_entriesdefined_in_pxd)rQ   moduler   s   &  r(   has_imported_c_functions#ModuleNode.has_imported_c_functions>  s6    --F--''' . . r*   c                    \        WR R7      '       g;   \        V P                  R\        P                  P                  V4      ,          4      hR# )T)allow_failedif_not_foundzVThe output file already exists and does not look like it was generated by Cython: "%s"N)r   r   rN   osr%   basename)rQ   r%   r  s   &&&r(   assure_safe_targetModuleNode.assure_safe_targetE  sD    'VZ[[r''**4012 2 \r*   c           	        R&R lpV! VP                   ^R7      pV! VP                  4      pV! VP                  4      pV! VP                  4      pV'       g   V'       g   V'       g
   V'       Ed   \	        VP
                  R4      Vn        V P                  VP                  4       \        P                  ! 4       p	\        W4      p
\        P                  ! WV
4      pVP                  4        VP                  R,          pVP                  R,          pVP                  R,          pVP                  '       d=   \	        VP
                  R4      Vn        \        P                   ! VP                  4      pMRpVP#                  4        V P%                  \&        P(                  V4      pVP+                  V4       VP-                  R	4       VP-                  R
4       V P/                  W]4       VP0                  '       d   V P3                  V. V4       VP-                  R	4       V P%                  \&        P4                  V4      pVP-                  RV,          4       VP-                  R	4       V P7                  WP9                  4       4       VP-                  R	4       V P;                  V4       V'       dl   VP-                  R	4       V FT  pV P=                  VP>                  V4       V'       d   V PA                  VP>                  V4       VPC                  V4       KV  	  V'       d>   VP-                  R	4       V F&  pV PE                  VW4       VPC                  V4       K(  	  V'       d>   VP-                  R	4       V F&  pV PE                  VW4       VPC                  V4       K(  	  VP-                  R	4       VP-                  RV,          4       VP-                  R	4       VP-                  R4       VP-                  R4       VP-                  R	4       V PG                  RV4      p\I        RVPJ                  PM                  4       : RV: RV: R24      pVP-                  RVPO                  R4      ,          4       VP-                  RV,          4       VP-                  R	4       VP-                  R4       VP-                  R4       VP-                  RVPM                  4       ,          4       VP-                  R4       VP-                  RVPM                  4       ,          4       VP-                  R4       VP-                  RVPM                  4       ,          4       VP-                  R4       VP-                  RV,          4       VP-                  R 4       VP-                  R!4       VP-                  R"V: R#V: R$V: R%24       VP-                  R4       VP-                  R	4       VP-                  RV,          4       \Q        VP                  4      ;_uu_ 4       pV	PS                  V4       RRR4       R# R#   + '       g   i     R# ; i)'r   c                     V  Uu. uFN  pVP                   R 8X  g9   V'       d   VP                  '       g   V'       g   K8  VP                  '       g   KL  VNKP  	  up# u upi )public)
visibilityapir  )r   r  r   r   s   &&& r(   	h_entries-ModuleNode.generate_h_code.<locals>.h_entriesN  sS    '. 9we))X5  "'!5!5 Ew 9 9 9s   AAAAA)r  z.hh_codetype_declarationsendz.pxiNrD   #include "Python.h"z
#ifndef %s#endif /* !%s */zP/* WARNING: the interface of the module init function changed in CPython 3.5. */zK/* It now returns a PyModuleDef instance instead of a PyModule instance. */PyInitzUse PyImport_AppendInittab(, z) instead of calling z
 directly.z!/* WARNING: %s from Python 3.5 */.zPyMODINIT_FUNC %s(void);z#if PY_VERSION_HEX >= 0x03050000 && (defined(__GNUC__) || defined(__clang__) || defined(_MSC_VER) || (defined(__cplusplus) && __cplusplus >= 201402L))z2#if defined(__cplusplus) && __cplusplus >= 201402Lz[[deprecated(%s)]] inlinez-#elif defined(__GNUC__) || defined(__clang__)z;__attribute__ ((__deprecated__(%s), __unused__)) __inline__#elif defined(_MSC_VER)z#__declspec(deprecated(%s)) __inline#endifz>static PyObject* __PYX_WARN_IF_%s_INIT_CALLED(PyObject* res) {zreturn res;}#define z() __PYX_WARN_IF_z_INIT_CALLED(z()))r   r   )*type_entriesvar_entriesr
  r   r)   c_fileh_filer  r   CCodeWriterrC   GlobalStateinitialize_main_h_codepartsgenerate_pxii_filePyrexCodeWriterput_generated_byapi_namer   h_guard_prefixput_h_guardputlngenerate_type_header_codecapi_reexport_cincludesgenerate_includesapi_guard_prefix"generate_extern_c_macro_definitionis_cppgenerate_dl_import_macrogenerate_cclass_header_coder   generate_cclass_include_codeuse_entry_utility_codegenerate_public_declarationmod_init_func_cnamer   r   as_c_string_literalrstripr   copyto)rQ   rA   rB   r  r  h_typesh_varsh_funcsh_extension_typesh_code_writerc_code_configr   h_code_starth_code_main
h_code_endi_codeh_guard	api_guardr   py3_mod_func_namewarning_stringfs   &&&&                  r(   r  ModuleNode.generate_h_codeM  s   	9
 C,,!43??+C--.%c&9&9:f+<+<26==$GFM##FMM2 ,,.M23@M**=NK..0&,,X6L%++,?@K$**51J### 6v}}f M--fmm<))+mmF$9$93?G$$W-r"45**7@...&&sB<b!f&=&=sCIlY67b!33KNb!))+6 !!"%.E44UZZM99%**fM66u=	 /
 !!"%$E44UKP66u= % !!"%#E44UKP66u= $ b!09<=b!pqklb! $ 8 83 G*3357HJ[,] ^NANDYDYZ]D^^_8;LLMb! G H RS9N<^<^<``aMN[2246 778C2246 7h'^arrsm,c"!#46GI Jh'R /'9:v}}--$$Q' .-i ,=h .--s   X;;Y	c                (   VP                  \        P                  : R VP                  P	                  VP
                  4      : R24       V'       d@   VP                  RVP                  P	                  VP
                  ^R7      ,          4       R# R# ) ;zcdef extern %spyrexN)r8  r   extern_c_macror   declaration_codecname)rQ   r   r  rQ  s   &&&&r(   rC  &ModuleNode.generate_public_declaration  sm    !!JJ''46 	7 LL)

++EKKq+AC D r*   c                \    V P                  WP                  4      pVP                  R R4      # r$  __)punycode_module_namequalified_namereplace)rQ   prefixrA   r5  s   &&& r(   r5  ModuleNode.api_name  s+    ,,V5G5GHT**r*   c                <  a R-R lpV! VP                   4      pV! VP                  4      pV! VP                  4      pV'       g   V'       g   V'       g   R# \        VP                  R4      Vn        V P                  VP
                  4       \        P                  ! 4       o\        W4      p\        P                  ! SW4      p	V	P                  4        SP                  4        V P                  \        P                  V4      p
SP!                  V
4       SP#                  R4       SP#                  R4       SP#                  R4       R.V3R llpSP#                  R	4       VP$                  '       d[   \&        P(                  P+                  VP$                  4      p\-        V4      pSP#                  R
VP/                  4       ,          4       V'       d   SP#                  R4       V Fz  pVP0                  pSP#                  RVP2                  ,          4       SP#                  RVP4                  : RVP2                  : R24       SP6                  P9                  V4       K|  	  V'       d   SP#                  R4       V F  p\;        VP0                  4      pVP=                  \        P>                  VP@                  4      pSP#                  RVPC                  V4      ,          4       SP#                  RVP@                  : RV: 24       SP6                  P9                  V4       K  	  V'       d   SP#                  R4       V F  p\;        VP0                  4      pVP=                  \        PD                  VP@                  4      pSP#                  RVPC                  V4      ,          4       SP#                  RVP@                  : RV: R24       SP6                  P9                  V4       K  	  V'       d
   V! RR4       V'       d
   V! RR4       V'       d
   V! RR4       SP#                  R4       SP#                  RV P                  RV4      ,          4       SP#                  R4       SP#                  RVPF                  P/                  4       ,          4       SP#                  R4       V F  pVP=                  \        P>                  VP@                  4      pVP0                  PI                  4       pSP#                  R\        PJ                  : RVP@                  P/                  4       : RV: RV: R2	4       K  	  V F  pVP=                  \        PD                  VP@                  4      pVP0                  PM                  4       pSP#                  R \        PJ                  : RVP@                  P/                  4       : R!V: RV: R2	4       K  	  \O        SVPF                  R"/R#7      ;_uu_ 4       pV F#  pV PQ                  VP0                  SVR$RR%7       K%  	  RRR4       SP#                  R&4       SP#                  R'4       SP#                  R(4       SP#                  R)4       SP#                  R*4       SP#                  R+4       SP#                  R4       SP#                  R,V
,          4       \S        VP
                  4      p SPU                  V4       VPW                  4        R#   + '       g   i     L; i  TPW                  4        i ; i)/r   c                     V  Uu. uF5  pVP                   '       g   V'       g   K  VP                  '       g   K3  VNK7  	  up# u upi r#   )r  r  )r   r   r   s   && r(   api_entries1ModuleNode.generate_api_code.<locals>.api_entries  sD    '. DweyyyS -2-A-A Ew D D Ds   AAAANz_api.hz#ifdef __MINGW64__z#define MS_WIN64r&  Tc                    < \         P                  ! WVR 7      w  r4V'       d   SP                  V4       V'       d   SP                  V4       R# R# ))include_requiresN)r
   load_as_stringput)r~   src_filern  protoimplr  s   &&&  r(   put_utility_code6ModuleNode.generate_api_code.<locals>.put_utility_code  s;    %44TVfgKE

5!

4  r*   r   z#include %srD   zstatic PyTypeObject *%s = 0;r(   (*rw   zstatic %s = 0;rY  VoidPtrImportry   r   
TypeImportzstatic int %s(void) {importzPyObject *module = 0;z#module = PyImport_ImportModule(%s);zif (!module) goto bad;zif (__Pyx_ImportFunction_z	(module, z, (void (**)(void))&, "z") < 0) goto bad;zif (__Pyx_ImportVoidPtr_z, (void **)&r  )imported_modules	goto bad;)
error_codeis_apizPy_DECREF(module); module = 0;	return 0;bad:zPy_XDECREF(module);
return -1;r'  r!  )r   T),r*  r
  r   r)   r+  api_filer  r   r-  rC   r.  r/  r4  r5  r   r<  r7  r8  r,  r  r%   r  r$   rE  r   typeptr_cnametypeobj_cnamer   rB  r   manglefunc_prefix_apir~   r^  varptr_prefix_apire  signature_stringr   empty_declaration_codeModuleImportGeneratorgenerate_type_import_callr   rG  close)rQ   rA   rB   r  rk  api_vars	api_funcsapi_extension_typesrM  r   rS  rt  
h_filenamer   r   r_  sigimport_generatorrV  r  s   &&&&               @r(   r  ModuleNode.generate_api_code  s#   	D s/ 1 12	)#*=*=>I)<0I0!!#.s<&&vtC**,!MM&"9"93?	9%)*'(X	! 	*+===))&--8J,Z8JLL)G)G)IIJLL,zz;d>P>PPQ&&(:(:< =""99%@ - LL"

+

6#9#95::F-0E0Ee0LLM

EBC""99%@ # LL!

+

6#;#;UZZH-0E0Ee0LLM5::uEF""99%@ " _.>?-/?@\+;<R,t}}Xs/KKL,-:S=O=O=c=c=eef-.EJJv55uzzBE**--/CLL##UZZ%C%C%EucST  EJJv77DE**335CLL##UZZ%C%C%EucST  #6S=O=OQY<Z[[_o,..uzz6CS`ktx.y - \ 	56[!V*+\"SR')34&//*	MM!GGI! \[  GGIs   <*[6\	 6\		\c                    VP                  \        P                  : R \        P                  ! RR4      : R VP
                  : R24       R# )rY  PyTypeObject	DL_IMPORTrZ  N)r8  r   r]  r   public_declr  )rQ   r   r  s   &&&r(   r@  &ModuleNode.generate_cclass_header_code"  s5    !!"">;?  	!r*   c           	        VP                  R VP                  : RVP                  : R24       VP                  4        VP                  P
                  pV'       dH   V F@  pVP                  RVP                  P                  VP                  ^R7      ,          4       KB  	  MVP                  R4       VP                  4        R# )zcdef extern class r$  :zcdef %sr[  passN)
r8  r   r~   indentr/   r*  r   r^  r_  dedent)rQ   r   rQ  r*  r   s   &&&  r(   rA  'ModuleNode.generate_cclass_include_code(  s    dii) 	*jj,,$YJJ//1/EG H % LL r*   c           	     
   V P                  VP                  R R7       V P                  p\        P                  '       g   VP                  '       dX   \        P                  R8H  ;'       g    VP                  R8H  p\
        P                  ! VV P                  P                  R7      pM\        P                  ! 4       p\        W4      p\        P                  ! W`VVP                  R7      pVP                  4        VR,          p	V P                  Vn        V P"                  Vn        V P%                  WWCP&                  V	4       VP)                  \*        4       VR,          p
V
P-                  RV P.                  P1                  4       ,          4       V P3                  4       pV
P-                  RV,          4       V
P-                  R	V,          4       V
P-                  R
4       V
P-                  RVP4                  P1                  4       ,          4       VR,          p
V P7                  WV
RR7       VR,          p
V P9                  W4       V P;                  W4       V P=                  W4       V P>                  PA                  W4       VR,          p
V PC                  W4       V PE                  W4       VPF                  '       d   V PI                  W4       VR,          PK                  \L        PN                  ! RR4      4       V PQ                  WR,          4       V PS                  WR,          4       V PU                  WR,          4       \W        V P                  V PY                  V P                  V PZ                  VR,          4      V PZ                  4      pV P]                  VRR WVR,          4       V P_                  WR,          4       \        P`                  '       d   V Pc                  WR,          4       V Pe                  VR,          4       V Pg                  WV4       V	Pi                  R4       VPj                  R,           F  pVP)                  V4       K  	  VPm                  V
4       VPo                  4        V Pq                  WV4       \s        VP                  4      p VPu                  V4       VPw                  4        ^Vn<        VPz                  '       d   V P}                  W4       \        P                  '       g   VP                  '       d   V P                  WcV4       R# R#   TPw                  4        i ; i)T)r  fullc)show_entire_c_codesource_desc)code_configcommon_utility_include_dirr  before_global_varz#define __Pyx_MODULE_NAME %szextern int %s;zint %s = 0;rD   z/* Implementation of %s */late_includesF)earlymodule_codemodule_exttypesmodule_stateSmallCodeConfigModuleSetupCode.cmodule_state_clearmodule_state_traverseinit_moduleNcleanup_modulemain_methodfilename_tabler   NNN)@r  r+  r   r   r<   r   AnnotationCCodeWritercompilation_sourcer  r   r-  rC   r.  r  initialize_main_c_coderN   
module_posr@   generate_module_preambleembedded_metadatar   refnanny_utility_coder8  r   rE  is_main_module_flag_cnamere  r;  generate_cached_builtins_declsgenerate_lambda_definitionsgenerate_variable_definitionsr   generate_function_definitionsgenerate_typeobj_definitionsgenerate_method_tabler   generate_import_starput_code_herer
   loadgenerate_module_state_startgenerate_module_state_cleargenerate_module_state_traverserF   rR   r/   generate_module_init_funcgenerate_module_cleanup_funcembedgenerate_main_methodgenerate_filename_table!generate_declarations_for_moduleswriter   r   finalize_main_c_codegenerate_module_state_endr   rG  r  c_file_generated	gdb_debug_serialize_lineno_map_generate_annotations)rQ   rA   rB   r  modulesr  
rootwriterrM  r   r  rk   module_is_mainshared_utility_exporterutilcoderV  s   &&&&           r(   r  ModuleNode.generate_c_code5  sE   DA))w///!(!1!1W!<![![@P@PT[@[!77#5 33??J
 ))+J.s<&&%'.'I'I

 	**,X&!%!%%%cG=U=UW]^$$%:;./

1((<<>? 	@779

#n45

=>12

2

/#2D2D2X2X2ZZ[?+sT?=)++C6 	((3**35		//: ,-))#4""3-%%c0 	N#11.0CD	F 	((..IJ((:N.OP++C=T1UV"7HH%%dhh

K<VWJJ#
 	&&CRL1M8R	
 	))#;K/LM===%%c}+EF$$[1A%BC..s[IT--a00H((2 1 	 <<TB((*&&s[A&--(	a GGI"#&&s7w///&&z7C  0	 GGIs   )T2 2Uc                ,   V P                  V4       \        P                  ;'       g    VP                  pV'       dm   \        P                  P                  V4      '       dH   ^ RIHu Hp VP                  V4      P                  4       pVP                  4        F
  pRVn        K  	  MRpVP                  VP                  VP                  VR7       V P                   P"                  '       g   R# V P                   P$                  P&                  p\        P                  P)                  \        P                  P+                  VP                  4      4      p	V P                   P"                   F  p
\        P                  P)                  \        P                  P-                  W4      4      p\        P                  P+                  V4      pVP/                  V	4      '       g   Kw  V! WP0                  RR7      pV'       g   K  W8w  d=   \        P                  P                  V4      '       g    \        P2                  ! V4       VP                  WVR7       K  	  R#   \4         d+   p^ RIpTP6                  TP8                  8w  d   h  Rp?LIRp?ii ; i)r   N)coverage_xmlT)
source_posinclude)r<   r   annotate_coverage_xmlr  r%   existsxml.etree.ElementTreeetreeElementTreeparsegetrootitertailsave_annotationmain_source_filer+  r/   r   rI   search_include_directoriesabspathdirnamejoin
startswithrN   makedirsOSErrorerrnoEEXIST)rQ   r  r  rB   coverage_xml_filenameETr  elsearch_include_file
target_dirincluded_filetarget_filetarget_file_dirsource_fileer  s   &&&&            r(   r   ModuleNode._generate_annotations  s   j! ' = = ^ ^A^A^ RWW^^4I%J%J..88$9:BBDL"'') *  L""6#:#:FMMXd"e zz((("jj00KKWW__RWW__V]]%CD
!ZZ66M''//"'',,z*QRK ggook:O"--j99-mZ^_K,RWW^^O5T5TKK0
 &&{l&[! 7   ww%,,. /s   /IJ) JJc           
     |   VP                   P                  pVP                  P                  4       p\	        \
        4      p\        V4       FA  w  pw  rxV^ 8  g   K  VP                  f   K!  WWV3,          P                  V^,           4       KC  	  VP                  R4       \        VP                  4       4       F]  w  w  rxp	VP                  f   Q hVP                  RRP                  \        \        V	4      4      VP                  \        V4      R7       K_  	  VP!                  R4       VP#                  4        R# )r   NLineNumberMapping
LineNumberrY  )	c_linenossrc_path
src_lineno)rI   gdb_debug_outputwriterbuffer
allmarkersr   list	enumeratefilenamer   startr   r   	add_entryr  mapstrr  	serialize)
rQ   rA   ccodewritertbmarkersdc_linenosrc_descr  r  s
   &&&       r(   r   ModuleNode._serialize_lineno_map  s   [[//$$//109'0B,H,xA~("3"3"?J&'..x!|< 1C 	$%17	1B-"XI$$000LL((3sI#67!**z?	   2C 	"#
r*   c                    W9  d=   ^W1&   VP                    F  pV P                  WBV4       K  	  VP                  V4       R# R# )r	  N)cimported_modulesr   r   )rQ   rA   module_listmodules_seenimported_modules   &&&& r(   r   "ModuleNode.find_referenced_modules  sC    " !L#&#8#8,,_<X $9s#	 #r*   c                  aaa	a
aa \        \        4      oV Fy  pSV,          pVP                  P                  pV'       g   K,  S! V4      pSV,          P	                  V4       SP                  V4      pVf   Kc  VP                  P                  pKY  	  \        4       o. o
V	VV
VVV3R lo	\        V4       F  pS	! SV,          4       K  	  S
P                  4        S
# )Nc                    < V S9   d   R # SP                  V 4       SS! V P                  4      ,           F  pS! SV,          4       K  	  SP                  V 4       R # r#   )addr   r   )uvdfsgetkeyr  seen
subclasses	type_dicts   & r(   r#  1ModuleNode.sort_types_by_inheritance.<locals>.dfs  sJ    DyHHQKqvv//IaL! 0MM!r*   )	r   r	  r   	base_typer   getsetreversedreverse)rQ   r'  
type_orderr$  key	new_entrybasebase_key
base_entryr#  r  r%  r&  s   &f&f     @@@@r(   sort_types_by_inheritance$ModuleNode.sort_types_by_inheritance  s     &
C!#I>>++D$!$<8$++C0&]]84
%!00  u	 	 J'C	# ( 	r*   c                   / . rC/ . reV EF  pVP                    F  pVP                  '       g   K  VP                  '       d   K+  VP                  p	V	P                  p
V
'       g   KM  W9   d   ^RIHp \        VP                  V4      '       g   Q \        VP                  4      4       h\        W:,          P                  V4      '       g!   Q \        W:,          P                  4      4       hK  WV
&   VP                  V
4       K  	  WrJ pVP                   F  pVP                  '       g   K  V'       g   VP                  '       g   K3  VP                  p	V	P                  '       g   KS  VP                  '       d   Kg  VP                  p	V	P                  p
W9  g   Q V
4       hWV
&   VP                  V
4       K  	  EK  	  R pV P                  W4V4      pR pV P                  WVV4      pVV3# )r	  )NonManglingModuleScopec                     V P                   # r#   )vtabstruct_cname
entry_types   &r(   r9  8ModuleNode.sort_type_hierarchy.<locals>.vtabstruct_cname  s    ...r*   c                     V P                   # r#   )objstruct_cnamer:  s   &r(   r>  7ModuleNode.sort_type_hierarchy.<locals>.objstruct_cname$  s    ---r*   )r   usedin_cincluder   r9  r
   r7  r   r/   r  r   r)  r  is_extension_typer>  r4  )rQ   r  rA   	vtab_dictvtab_dict_ordervtabslot_dictvtabslot_dict_orderr  r   r   r/  r7  all_defined_herer9  	vtab_listr>  vtabslot_lists   &&&              r(   sort_type_hierarchyModuleNode.sort_type_hierarchy  s   %'?-/*!F//:::e&7&7&7 ::D//C ' H)%++7MNN`PSTYT_T_P``N)).*>*>@VWWrY\]f]k]q]qYrrW).#'..s3 0  &},,:::#3u7K7K7K ::D---e6G6G6G$zz"22"7<<7-2c*+2237 -# "6	/22(8:		.66A =))r*   c                   \         P                  ! R 4      p/ . rCVP                   F7  pV! VP                  4      pWc9  g   Q V4       hWSV&   VP	                  V4       K9  	  V P                  W4V4      VP                  R&   R# )r>  r  N)operator
attrgetterr   r   r   r4  )rQ   rA   key_func
entry_dictentry_orderr   r/  s   &&     r(   r  ModuleNode.sort_cdef_classes+  s    &&'89"$bK((E5::&C(-#-(#sOs#	 )
 "&!?!?X"/Ar*   c                X   V F  pV P                  VP                  V4       K!  	  \        V4      p\        4       pV F  p	WJ p
. pV	P                   F  pVP                  P                  '       dT   VP
                  '       dB   VP                  V9  d/   VP                  VP                  4       VP                  V4       Kp  Kr  V
'       g   VP                  '       g   K  VP                  V4       K  	  V Uu. uF  qV9  g   K  VNK  	  ppV P                  W4       K  	  V F0  pV P                  VP                  V4       V P                  We4       K2  	  V FG  pV P                  We4       V P                  We4       V P                  We4       V P                  We4       KI  	  R # u upi r#   )!generate_objstruct_predeclarationr   r+  r)  	is_ctupler@  r~   r   r   r  r9  generate_objstruct_definitiongenerate_typeobj_predeclarationgenerate_exttype_vtable_struct$generate_exttype_vtabptr_declaration*generate_exttype_final_methods_declaration)rQ   rA   r  rH  rI  rk   r   vtabslot_entriesctuple_namesr  
definitionr)  ts   &&&&&&       r(   generate_type_definitions$ModuleNode.generate_type_definitions6  sc   "E225::tD #}-uFJL,,::'''EJJJzz5$((4$++E2 6  5#7#7#7 ''. - (4Q|!@P7PAA|LQ**<>  #E..uzz4@00= # E00=//<55eB;;EH	  Rs   8F'F'c                   VR ,          pVP                  R4       VP                  R4       RV Uu. uF  qUP                  NK  	  up9   dE   VP                  R4       VP                  R4       VP                  R4       VP                  R4       V P                  W!4      w  rgV P                  WWgV4       VR,          pV F}  p	WJ p
VP                  R4       VP                  R	V	P                  P	                  4       ,          4       V P                  WW4       V P                  WV
4       V P                  WV
4       K  	  R
# u upi )r  rD   z/*--- Type declarations ---*/zcpython.arrayz#ifndef _ARRAYARRAY_Hzstruct arrayobject;z'typedef struct arrayobject arrayobject;r&  module_declarationsz!/* Module declarations from %s */N)r8  re  rJ  r_  rE  generate_c_class_declarationsgenerate_cvariable_declarationsgenerate_cfunction_declarations)rQ   rA   r  r   typecodemrH  rI  
modulecoder  defined_heres   &&&&       r(   r  ,ModuleNode.generate_declarations_for_modulesQ  s!   23r67 AA//AANN23NN01NNDENN8$#'#;#;G#I 	&&)H	> !67
F!=LR @6CXCXClClCnno..v<]00\R00\R  Bs   Ec                R    V P                  \        P                  ! VR 4      4       R# )r  N)r  r
   r  )rk   r~   s   &&r(   _put_setup_codeModuleNode._put_setup_codeh  s    ;++D2EFGr*   c                   VP                  4        V'       d\   VP                  R 4       VP                  \        P                  ! V^RR7      4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       V P	                  VR4       \        VP                  P                  4       \        P                  R	7       F1  pVP                  VP                  8X  g   K   VP                  V4       K3  	  VP                  R
4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R,          P                  R4       ^RIHp VP                  RVP!                  RR4       R24       VP                  R\#        V4      ,          4       VP                  R\$        P&                  VP(                  P*                  9   ,          4       VP                  P-                  \.        P0                  ! RR4      4       V P	                  VR4       VP(                  P2                  P4                  '       d   V P	                  VR4       MV P	                  VR4       V P	                  VR4       V P	                  VR4       R\6        P8                   R \6        P:                   R!\6        P8                   R"\6        P<                   R#\6        P<                   R$\6        P>                   R%2pR&\6        P>                   R \6        P@                   R'2p	^ p
VPB                  e   \E        VPB                  4      p
VP                  R)4       VP                  R*V
 24       VP                  R+4       VP                  R,4       VP                  R-4       VP                  R+4       VP                  R.4       VP                  W,          4       VP                  R4       VP                  VR,          4       VP                  R+4       VP                  R/4       VP                  R04       VP                  R4       V PG                  WQPI                  4       4       VP                  R4       VP                  R1V PK                  \6        PL                  V4      ,          4       VP                  R1V PK                  \6        PN                  V4      ,          4       VP                  R24       V PQ                  WVR3R47       VP                  R4       VP                  R54       VP                  R64       VP                  R+4       VP                  R4       VPR                  R7,          '       dV   VP                  R4       VP                  R84       VP                  R94       VP                  R+4       VP                  R4       VP                  R:4       VP                  R;4       VP                  R<4       VP                  R4       VP                  R=4       VP                  R+4       VP                  R4       VPR                  R>,          '       d   R?MR@pVP                  RAV 24       VP                  R+4       VPR                  RB,          pVPR                  RC,          pVRc9  d   V'       g   \U        V PV                  RE4       VP                  RF\E        VRG8H  4       24       VP                  RH\E        VRI8H  4       24       VRd9  d   VP                  RJV R24       VRD8X  d   RKpMVRL8X  d   RMpMVPY                  4       pVP                  RNV RO24       VP                  RPV RQ24       VP[                  \.        P\                  ! RRRS4      ^ ,          4       VP-                  \.        P^                  ! RTRU4      4       \`        Pb                  Pe                  V4       \`        Pb                  Pg                  V4       \`        Ph                  Pg                  V4       VP[                  \j        Pl                  4       V P	                  VRV4       VP                  R4       VP                  RW4       VP                  RXVPn                  ,          4       \p        Pr                  e'   VP                  RY\6        Pt                  ,          4       VP                  R+4       VP                  RZ\6        P<                  ,          4       VP                  R[\6        P>                  ,          4       VP                  R\\6        Pv                  : R \6        Px                  : R'24       VP                  R]\6        P8                  ,          4       VP-                  \.        P^                  ! R^R4      4       VP-                  \.        P0                  ! R_R4      4       VP-                  \.        P^                  ! R`R4      4       \{        V4      '       d)   VP-                  \.        P^                  ! RaRb4      4       R(# R(# )ez/* BEGIN: Cython MetadataT)r  	sort_keyszEND: Cython Metadata */rD   z#ifndef PY_SSIZE_T_CLEANz#define PY_SSIZE_T_CLEANz#endif /* PY_SSIZE_T_CLEAN */InitLimitedAPIr/  z#ifndef Py_PYTHON_Hzg    #error Python headers needed to compile C extensions, please install development version of Python.z!#elif PY_VERSION_HEX < 0x03080000z'    #error Cython requires Python 3.8+.#elser  z#endif /* Py_PYTHON_H */)__version__z#define __PYX_ABI_VERSION "r$  _"z#define CYTHON_HEX_VERSION %sz!#define CYTHON_FUTURE_DIVISION %dCythonABIVersionr  CModulePreambleCppInitCode	CInitCodePythonCompatibilityMathInitCodez/#define __PYX_MARK_ERR_POS(f_index, lineno)  {  = z[f_index]; (void) z; z = lineno; (void) z;%s (void) z; }rY  rZ  Nz)#ifndef CYTHON_CLINE_IN_TRACEBACK_RUNTIMEz*#define CYTHON_CLINE_IN_TRACEBACK_RUNTIME r&  z!#ifndef CYTHON_CLINE_IN_TRACEBACKzC#define CYTHON_CLINE_IN_TRACEBACK CYTHON_CLINE_IN_TRACEBACK_RUNTIMEz#if CYTHON_CLINE_IN_TRACEBACKz.#define __PYX_ERR(f_index, lineno, Ln_error) \z:    { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }z
#define %sz/* Early includes */F)latezL#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)z!#define CYTHON_WITHOUT_ASSERTIONSccomplexz#if !defined(CYTHON_CCOMPLEX)z#define CYTHON_CCOMPLEX 1z&#ifdef CYTHON_FREETHREADING_COMPATIBLEz##if CYTHON_FREETHREADING_COMPATIBLEz:#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_NOT_USEDz6#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USEDfreethreading_compatiblePy_MOD_GIL_NOT_USEDPy_MOD_GIL_USEDz'#define __Pyx_FREETHREADING_COMPATIBLE c_string_typec_string_encoding	bytearrayzGa default encoding must be provided if c_string_type is not a byte typez/#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII asciiz.#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 utf8z'#define __PYX_DEFAULT_STRING_ENCODING "	ByteArrayr  Unicodez*#define __Pyx_PyObject_FromString __Pyx_Py_FromStringz1#define __Pyx_PyObject_FromStringAndSize __Pyx_Py_FromStringAndSizeTypeConversionszTypeConversion.cFormatTypeNamezObjectHandling.cPretendToInitialize#if !CYTHON_USE_MODULE_STATEzstatic PyObject *%s = NULL;zstatic PyObject *%s;zstatic int %s;zstatic int %s = 0;zstatic const char * const zstatic const char *%s;FastTypeChecksGetRuntimeVersionAddModuleRefPythranConversionzCppSupport.cpp)bytesr  )r  r  )>r4  r8  jsondumpsrl  r   r   r   r   sortkeylocationINITIALr  r   rD   rs  rf  r   r   divisionrI   future_directivesr   r
   r  rB   cplusr   filename_cnamefiletable_cnamelineno_cnameclineno_cnameline_c_macror;   intr=  r>  r5  r6  r<  r;  r@   r   rN   titlerp  ro  r   r   c_long_typecreate_to_py_utility_codecreate_from_py_utility_code
c_int_typer   branch_prediction_macrosmodule_cnamer   
pre_importpreimport_cnamecfilenm_cnamefile_c_macror!   )rQ   rA   rB   r  metadatark   r   rs  mark_errpos_code
cline_infodefault_cline_runtimeft_compatibler  r  c_string_func_names   &&&&&&         r(   r  #ModuleNode.generate_module_preamblel  s   JJ23JJtzz(1EFJJ01JJrN

-.

-.

23T#34#..//1{7J7JKC||s{{*		$ L 	

()

 C 	D

67

<=

7%%&@A"

01D1DS#1N0OqQR

25F{5SST

6OOs{{<<<> 	? 	))/1DE	G 	T#45;;$$$  }5  {3T#89T>2
%%&c&*@*@)A B,,- .##$ %**+ ,++, - 	 --.c&2E2E1FaH
 !"&&2$'(C(C$D!

>?

?@U?VWX

8

67

XY

8

23

#01

7

#b()

8

DE

OP

2//jjlC

2

<$--0E0Es"KKL

<$--0G0G"MMN

)*st%H

2

ab

67

8

2>>*%%JJrNJJ67JJ23JJx JJrN

;<

89

OP

7

KL

8

714@Z1[1[-ar

<]OLM

87NN+>? 66?P$((ef

DSIZ^eIeEfDghi

CCHY]cHcDdCefg$55JJ@AR@SSTUVK'!,e#!*!.!4!4!6

?@R?SS^_`

FGYFZZlmn++,=?QRSTUV[445EGYZ[ 	88=::3?99#>//0T#89

2

12

033C3CCD)JJ-0F0FFG

8

#f&9&99:

'&*>*>>?

6;O;OQWQdQdef

+f.C.CCD[445EGZ[\[--.ACVWX[44^EXYZ#  !8!89LN^!_` r*   c                   \         P                  pVP                  R 4       VP                  RV,          4       VP                  RV,          4       VP                  RV,          4       VP                  R4       VP                  RV,          4       VP                  R4       VP                  RV,          4       VP                  R4       VP                  R	4       V'       d   VP                  R
V,          4       McVP                  R4       VP                  RV,          4       VP                  R4       VP                  RV,          4       VP                  R4       VP                  R4       R# )z#ifdef CYTHON_EXTERN_Cz    #undef %sz    #define %s CYTHON_EXTERN_Cz#elif defined(%s)z    #ifdef _MSC_VERzf    #pragma message ("Please do not define the '%s' macro externally. Use 'CYTHON_EXTERN_C' instead.")z	    #elsez[    #warning Please do not define the '%s' macro externally. Use 'CYTHON_EXTERN_C' instead.z
    #endifrr  z    #define %s extern "C++"z  #ifdef __cplusplusz    #define %s extern "C"z  #elsez    #define %s externz  #endifr&  N)r   r]  r8  )rQ   rk   r>  r~   s   &&& r(   r=  -ModuleNode.generate_extern_c_macro_definition  s   $$

+,

?T)*

3d:;

&-.

()

}  AE  E  	F

;

pswwx

< 

7JJ4t;<JJ-.JJ2T9:JJy!JJ.56JJz"

8r*   c                l    VP                  R 4       VP                  R4       VP                  R4       R# )z#ifndef DL_IMPORTz  #define DL_IMPORT(_T) _Tr&  N)r8  rj   s   &&r(   r?  #ModuleNode.generate_dl_import_macro%  s(    

&'

/0

8r*   c                   \        VP                  P                  4       \        P                  R 7       Fs  pVP
                  VP                  8X  d   V'       d   VP                  V4       K9  K;  VP
                  VP                  8X  g   KX  V'       g   Kb  VP                  V4       Ku  	  V'       d   VP                  R4       R# R# )rq  z#include <omp.h>N)
r   r   r   r   r  r  EARLYr  LATEputln_openmp)rQ   rA   r  rk   r  r}  r   s   &&&&&& r(   r;  ModuleNode.generate_includes*  s    #..//1{7J7JKC||syy(IIdO )4IIdO L 01 r*   c                B   ^ RI HpHp VP                  R4       VP                  R\        P
                  ,          4       VP                  P                  '       d   VP                  P                   F  pVP                  4       pV! V4      '       d   VP                  4       p\        P                  ! V4      P                  4       p\        V4      pVP                  RVP                  4       ,          4       K  	  MVP                  R4       VP                  R4       R# )r   )isabsr  rD   z!static const char* const %s[] = {%s,0};N)os.pathr  r  r8  r   r  r   filename_listget_filenametable_entryget_descriptionpathlibPathas_posixr$   rE  )rQ   rk   r  r  r  	file_pathescaped_filenames   &&     r(   r  "ModuleNode.generate_filename_table5  s    +

2

69O9OOP)))#//=='??A	## + ; ; =I#LL3<<>	#6y#A 

5#3#G#G#IIJ  > JJsO

4r*   c                    R # r#    rQ   rA   rk   s   &&&r(   generate_type_predeclarations(ModuleNode.generate_type_predeclarationsH  s    r*   c                *   V F  pVP                   '       d   K  VP                  pVP                  '       d   K7  VP                  '       g   VP                  '       d   V P                  W24       Kn  VP                  '       dM   VP                  '       g;   VP                  '       d)   V P                  VP                  P                  V4       K  VP                  '       g   K  V P                  WB4       K  	  V EF  pVP                   '       d   K  VP                  pVP                  '       d   V P                  W24       MVP                  '       g   VP                  '       d   V P                  W24       MVP                  '       d   V P!                  W24       MVP                  '       dL   VP                  '       g:   VP                  '       d(   V P!                  VP                  P                  V4       MGVP                  '       d   V P#                  W24       M#VP                  '       d   V P%                  WB4       \'        VR R4      '       g   EK\  VP(                  P*                   F  pVP,                  P/                  V4       K   	  EK  	  R# )r/   N)rA  r   
is_typedefis_struct_or_unionis_cpp_class$generate_struct_union_predeclarationrU  is_fusedr@  struct_entryrB  rT  generate_typedefr   r   generate_enum_definition generate_struct_union_definitiongenerate_cpp_class_definitionrV  getattrr/   r*  r   rB  )rQ   r)  rk   r   r   	var_entrys   &&&   r(   r9  $ModuleNode.generate_type_header_codeK  s    "E$$$zz???,,,0A0A0A==eJ^^^DMMMejjj==ejj>U>UW[\+++::4F " "E$$$zz???))%6\\\T%5%5%511%>,,,99%F^^^DMMMejjj99%**:Q:QSWX&&&66uC+++66tB4$//%)ZZ%;%;	((??	J &<# "r*   c                    VP                  R 4       VP                   Fl  pVP                  pVP                  '       d   K#  VP                  pVP                  R4      '       d   VR,          pMTpVP                  RV: RV: R24       Kn  	  R# )rD   __pyx_:   NNtypedef struct z __pyx_gcc33_rZ  N)r8  r   r   typedef_flagr>  r  )rQ   rA   rk   r   r   r~   r  s   &&&    r(   generate_gcc33_hackModuleNode.generate_gcc33_hackp  sp    

2((E::D$$$++??8,,8DD

$  ! )r*   c                ~   VP                   P                  pVP                  pVP                  '       d(   VP                  '       g    VP
                  R ,          pMTpVP                  VP                  4       VP                  RVP                  VP                  4      ,          4       R#   \         d    Tp L]i ; i)numeric_typedefsztypedef %s;N)r   typedef_base_typer/   
is_numericis_cpp_class_scoper   KeyErrormark_posrN   r8  r^  r_  )rQ   r   rk   r)  enclosing_scopewriters   &&&   r(   r  ModuleNode.generate_typedef~  s    JJ00	++(J(J(J))*<= F		"]Y%?%?%LLM  s   B, ,B<;B<c           
     f    VP                   '       d   V: R V: RV: R V: R V: R2
# V: R V: R2# )rY  z
;
typedef rZ  )r  )rQ   r   kindr~   s   &&&&r(   sue_predeclarationModuleNode.sue_predeclaration  s1    ddD" "  $T**r*   c           
     v   VP                   pVP                  '       da   VP                  '       dO   TP                  R RP	                  VP                   Uu. uF  qDP                  4       NK  	  up4      ,          4       VP                  V P                  W3P                  VP                  4      4       R# u upi )ztemplate <typename %s>z, typename N)	r   r  	templatesr8  r  r  r  r  r_  )rQ   r   rk   r   Ts   &&&  r(   r  /ModuleNode.generate_struct_union_predeclaration  s    zzJJ/-2D2D59^^D^))+^D3F F G

4**4DJJGH Es   B6c                     V: R V: R2pRpWE3# )rY   {r  r  )rQ   r   r  r~   headerfooters   &&&&  r(   sue_header_footerModuleNode.sue_header_footer  s    "D)~r*   c                   VP                  VP                  4       VP                  pVP                  pV'       Ed   VP                  pVP
                  ;'       d    VP                  pV'       d3   VP                  : R R: 2pVP                  P                  \        4       V P                  W5VP                  4      w  rxV'       dV   VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  V4       VP                  p	V	 F>  p
VP                  RV
P                  P                  V
P                  4      ,          4       K@  	  VP                  V4       V'       dX   VP                  R4       VP                  R4       VP                  R4       VP                  R	4       VP                  R4       R
# R
# R
# )rY  __Pyx_PACKEDz#if defined(__SUNPRO_C)z  #pragma pack(1)z#elif !defined(__GNUC__)z  #pragma pack(push, 1)r&  %s;z  #pragma pack()z  #pragma pack(pop)N)r  rN   r   r/   r  	is_structpackedr   r   packed_struct_utility_coder  r_  r8  r*  r^  )rQ   r   rk   r   r/   r  r  r  r  r*  attrs   &&&        r(   r  +ModuleNode.generate_struct_union_definition  so   eii zz

599D^^33F"&))^<  112LM&&t4::> F

45

./

56

45

8$JJv++K#

DII66tzzBBD $ JJv

45

-.

56

01

8$ ) r*   c                   V'       Ed   VP                  VP                  : R RP                  V4      : R24       T;'       g&    T;'       d    VP                  P                  '       * pV'       d   VP                  4        V'       d   V F  p	VP                  V	RR7       K  	  V'       d3   VP                  VP                  : R RP                  V4      : R24       V'       d   VP                  4        VP                  R4       R# VP                  VP                  : R RP                  V4      : R24       R# )rv   r#  z) {Fnanny);r'  N)r8  r_  r  r   nogilput_ensure_gilput_init_var_to_py_noneput_release_ensured_gil)
rQ   	arg_decls	arg_namesis_implementingpy_attrsconstructorr   rk   	needs_gilr  s
   &&&&&&&&  r(   generate_cpp_constructor_code(ModuleNode.generate_cpp_constructor_code  s    ?JJTZZ91EFG PP[%O%O9I9I9O9O5OI##%$D00U0C %

(9(9499Y;OPQ,,.JJsOJJDJJ		)0DEFr*   c           
        VP                  VP                  4       VP                  pVP                  pV'       Edt   VP                  '       dO   TP                  R RP                  VP                   Uu. uF  qUP                  4       NK  	  up4      ,          4       VP                  RVP                  ,          4       VP                  '       dQ   RP                  VP                   Uu. uF  qfP                  4       NK  	  up4      pVP                  RV,          4       VP                  R4       V P                  VP                  V4       VP                  P                  4        Uu. uF7  pVP                  P                  '       g   K!  VP                   '       d   K5  VNK9  	  p	pRp
RpRpVP"                   F  pVP                  P$                  '       d/   VP                  P&                  '       d   VP                  R4       MfVP(                  R	8X  d   VP+                  R	4      pMCVP(                  R
8X  d   TpM/VP                  P$                  '       d   VP                  R4       Rp
VP                  RVP                  P-                  VP                  4      ,          4       K  	  RVP.                  P0                  9   pV'       g
   V	'       Edq   V'       EdO   VP3                  4        EF8  p. p. pVP                  P4                  R\7        VP                  P8                  4      VP                  P:                  ,
            F=  pVP=                  VP-                  4       4       VP=                  VP                  4       K?  	  VP                  P:                  '       db   VP=                  VP                  P>                  P-                  \@        PB                  4      4       VP=                  \@        PB                  4       V'       g   Rp. pV PE                  VVWWV4       EK;  	  M. p. pV PE                  VVWWV4       V'       g   V	'       g	   V
'       d   V
'       d   VP                  R4       V'       d   VP                  RVP                  ,          4       V	'       d   VPG                  4        V'       d#   VP                  RVP                  ,          4       V	'       d-   V	 F  pVPI                  VRR7       K  	  VPK                  4        VP                  R4       M"VP                  RVP                  ,          4       V	'       EdI   V'       Ed   VP                  VP                  : RVP                  : R24       VPG                  4        VP"                   Fa  pVP                  P$                  '       d   K!  VP                  VP                  : RVP                  : R24       VPM                  VRR7       Kc  	  VPK                  4        VP                  R4       VP                  VP                  : RVP                  : R24       VP                  R4       VPG                  4        VP"                   Ft  pVP                  P$                  '       d   K!  VPI                  VRR7       VP                  VP                  : RVP                  : R24       VPM                  VRR7       Kv  	  VPK                  4        VP                  R4       VP                  R4       VP                  R4       MZVP                  VP                  : RVP                  : R24       VP                  VP                  : RVP                  : R24       VP                  R4       R# R# u upi u upi u upi )ztemplate <class %s>z, class 	struct %sz	, public z : public %sr  FNstatic z<init>z<del>zvirtual Tr   r  z~%s() {z%s();r  r'  z~%s();z(const z& __Pyx_other) {z = __Pyx_other.rZ  z& operator=(const zif (this != &__Pyx_other) {zreturn *this;z& __Pyx_other);r  )'r  rN   r   r/   r  r8  r  r  rp  r_  base_classesr9  r)  r   r   is_pyobjectis_inheritedr*  is_cfunctionis_static_methodr~   lookup_herer^  r   r0  all_alternativesoriginal_argslenargsoptional_arg_countr   op_arg_structr   optional_args_cnamer  r  put_var_xdecrefr  put_var_incref)rQ   r   rk   r   r/   r  
base_classbase_class_declr  r  has_virtual_methodsr  
destructorr  r  constructor_alternativer  r  argdefault_constructors   &&&                 r(   r  (ModuleNode.generate_cpp_class_definition  s   eii zz

5~~~

0:??9=HA--/H4J J K HH[4::-.   "-"2"2KOK\K\]K\Z668K\]#_/9:JJt**5+=+=tD#(==#7#7#9 F#9a66-- 67nn #9H F"'KJ))99)))dii.H.H.HHHY'YY(*"'"3"3H"=KYY')!%JYY+++HHZ(*.'

5499#=#=djj#IIJ * ,t/?/?/E/EEOhh;3>3O3O3Q/$&	$&	#:#?#?#M#M w%<%A%A%F%F!GH_HdHdHwHw!w$yC%,,S-A-A-CD%,,SYY7$y 377JJJ%,,-D-I-I-W-W-h-hio  jD  jD  .E  F%,,V-G-GH(26/(*I::9iQ`  mD  LP  Q 4R !#I "I66y)_hs{  AX)<&HHZ("JJy4::56++-!

7Z-=-=#=>$,D 00U0C %-446JJsOJJx$**45x"?JJ

DJJWX'') % 1 1#yy555 JJTZZ'XY //E/B !2 002JJsOJJ4::W[WaWabcJJ<='') % 1 1#yy555 00U0C JJTZZ'XY //E/B	 !2
 002JJsOJJ/JJsOJJtzz4::VWJJ$**VZV`V`abJJt{  I
 ^Fs   4^2*^7*^<^<!^<c                   VP                  VP                  4       VP                  pVP                  ;'       g    VP                  ;'       g    R pVP                  P
                  '       d   RMRpV P                  W5V4      w  rgVP                  V4       VP                  pV'       g   \        VP                  R4       MVR,          p	V F.  p
V
P                  f   K  V
P                  P                  V4       K0  	  V F  p
V
P                  f$   V
P                  P                  R4      R,          pMAV
P                  P                  R4      R,          : RV
P                  P                  4       : 2pWJd
   VR,          pVP                  V4       K  	  VP                  V4       VP                  P                  '       d;   VP                  P                  '       d   VP                  RV: R	V: R
24       R# R# R# )rD   z
enum classenumzDEmpty enum definition not allowed outside a 'cdef extern from' blockNz::r|  ,ztypedef enum rY  rZ  r  )r  rN   r   r_  r~   r   r  r8  enum_valuesr   
value_nodegenerate_evaluation_codesplitr  r   r  )rQ   r   rk   r   r~   r  r  r  r3  
last_entryvalue_entry
value_codes   &&&         r(   r  #ModuleNode.generate_enum_definition2  s   eii zz{{..ejj..B$zz555|6//DA

6''%))cd$RJ*))5**CCDI  +  +))1!,!2!2!8!8!>r!BJ $))//5b99#..557#9J 0#%J

:&  + 	

6::zz&&&

D$?@ ' r*   c                   VP                  R 4       VP                  P                  pV'       d   VP                  R8X  dU   VP                  '       gC   VP                  \
        P                  : R\        P                  ! RR4      : RV: R24       R# VP                  R8X  dC   VP                  \
        P                  : R\        P                  ! RR4      : RV: R24       R# R# R# )	rD   externrY  r  r  rZ  r  	DL_EXPORTN)	r8  r   r  r  rA  r   r]  r   r  )rQ   r   rk   r~   s   &&& r(   rW  *ModuleNode.generate_typeobj_predeclarationU  s    

2zz''8+E4E4E4E

))**>;G  !!X-

))**>;G  . r*   c                   VP                   '       g   R # VP                  VP                  4       VP                  pVP                  pV P                  V4       VP                  '       Ed   VP                  R4       VP                  RVP                  ,          4       VP                  '       dY   VP                  P                  '       d=   VP                  RVP                  P                  : R\        P                  : R24       VP                   FY  pVP                  '       d   K  VP                  RVP                  P                  RVP                  ,          4      ,          4       K[  	  VP                  R4       R # R # )	NrD   zstruct %s {struct rY  rZ  r   z(*%s)r  )r@  r  rN   r   r/   specialize_fused_typesr9  r8  r)  r   obj_base_cnamer
  r  r^  r_  )rQ   r   rk   r   r/   method_entrys   &&&   r(   rX  )ModuleNode.generate_exttype_vtable_structg  s
   zzzeii zz

##E*   JJrNJJ}t'<'<<=~~~$.."A"A"A

NN33))+ , !& 3 3#000JJu|'8'8'I'I'T`TfTfJf'ggh !4 JJt !r*   c                    VP                   '       g   R # VP                  VP                  4       VP                  pVP                  '       d1   VP                  RVP                  : RVP                  : R24       R # R # )Nstatic struct  *rZ  )r@  r  rN   r   vtabptr_cnamer8  r9  )rQ   r   rk   r   s   &&& r(   rY  /ModuleNode.generate_exttype_vtabptr_declaration~  s[    zzzeii zzJJ%%""$ % r*   c                   VP                   '       g   R # VP                  VP                  4       VP                  P                  P
                   F  pVP                  '       d   K  VP                  '       g   K+  VP                  P                  VP                  4      pVP                  VP                  4      pVP                  RV: V: R24       K  	  R # )Nr  rZ  )r@  r  rN   r   r/   r
  r  final_func_cnamer^  build_function_modifiersfunc_modifiersr8  )rQ   r   rk   rC  declaration	modifierss   &&&   r(   rZ  5ModuleNode.generate_exttype_final_methods_declaration  s    zzzeii !JJ,,::L,,,1N1N1N*//@@ 113 99,:U:UV	

YDE ;r*   c                    VP                   '       g   R # VP                  V P                  VRVP                  4      4       R # )Nstruct)r/   r8  r  r>  )rQ   r   rk   s   &&&r(   rT  ,ModuleNode.generate_objstruct_predeclaration  s/    zzz

4**44;O;OPQr*   c                   VP                  VP                  4       VP                  '       g   R # V P                  VRVP                  4      w  r4VP                  V4       VP                  pV'       dR   VP                  pVR8X  d   RpVP                  RVP                  ,          : V: R\        P                  : R24       MVP                  R4       VP                  '       d]   VP                  '       d   VP                  P                  '       g/   VP                  RVP                  : RVP                  : R24       VP                  P                   F  pVP                  '       d   \        pMVP                  pVP                   '       d   VP#                  VP$                  4      p	MVP'                  VP$                  4      p	VP(                  P+                  V4       VP                  R	V	,          4       K  	  VP                  V4       VP,                  e1   VP                  R
VP                  : RVP,                  : R24       R # R # )NrR  r  PyHeapTypeObjectr@  rY  rZ  PyObject_HEADrG  r   r  )r@  rD   )r  rN   r/   r  r>  r8  r)  r  r   rB  vtabslot_cnamer9  r*  is_declared_genericr	   r   is_cpp_optionalcpp_optional_declaration_coder_  r^  r   rB  objtypedef_cname)
rQ   r   rk   r  r  r)  basestruct_cnamer  	attr_typedecls
   &&&       r(   rV  (ModuleNode.generate_objstruct_definition  s   dhh zzz""443G3GH 	

6NN	(88>1#5 JJ#I$:$:;$))+, JJ!4>>;X;X;XJJ))'')* JJ**D'''*	 II	### >>tzzJ 11$**=33D9JJut|$ + 	

6  ,JJ$2F2FH]H]^_ -r*   c                   VR ,          pVR,          pVR,          pVP                  4       pVP                   EFB  p	V'       g   V	P                  '       g   K   VP                  RV	P                  P
                  ,          4       VP                  RV	P                  P
                  ,          4       VP                  RV	P                  P
                  ,          4       V	P                  P                  f   K  VP                  RV	P                  P                  ,          4       VP                  RV	P                  P                  ,          4       VP                  RV	P                  P                  ,          4       EKE  	  R# )r  r  r  zPyTypeObject *%s;!Py_CLEAR(clear_module_state->%s);z$Py_VISIT(traverse_module_state->%s);NPyObject *%s;)insertion_pointr   r  r8  r   r  r  )
rQ   rA   rk   r]  r   r  r  r  module_state_typeobjr   s
   &&&&&     r(   rc  (ModuleNode.generate_c_class_declarations  s.   ">2()=> +,C D+;;=((EU111""#69Q9Q#QR"((7JJ,,-. &++:JJ,,-. ::++7(..AYAY/YZ&,,;

0023 *//>

0023 )r*   c                   VP                   '       d   R # VP                   EF_  pVP                  '       gH   VP                  '       g6   VP                  R8X  d'   VP
                  '       g   VP                  '       g   K_  R pR pR pVP                  R8X  d   \        P                  pRpMwVP                  R8X  d   \        P                  pV'       d   RpMKRpMHVP                  R8X  d8   RpR pVP                  e&   VP                  P                  VP                  4      pVP                  pVP                  p	VP
                  '       dD   V'       g<   RpR p\        V4      pVP                  \        P                  VP                   4      p	^ pV'       d   VP#                  RV,          4       VP$                  '       d#   VP#                  VP'                  WR7      4       M!VP#                  VP)                  WR7      4       Ve   VP+                  R	V,          4       VP-                  R
4       VP                  V	8w  d%   VP-                  RVP                  : RV	: R24       VP.                  P1                  V4       EKb  	  R # )Nprivater<  r  r  r=  staticz%s dll_linkage = %srZ  r(  rv  rw   )is_cython_builtinr*  rA  
in_closurer  r  r@  r   r]  initr   literal_coder_  r   r  varptr_prefixr~   rp  rY  rZ  r^  put_safer8  r   rB  )
rQ   rA   rk   r]  r   storage_classrj  rn  r   r_  s
   &&&&      r(   rd  *ModuleNode.generate_cvariable_declarations  s      __E!!!U%5%5%5%%2E<P<P<PTYT^T^T^ MKD8+ & 5 5)!!X- & 5 5"-K"-K!!Y. ("::) ::225::>D::DKKE###J ("~

6#7#7D./$$$;; < 4 5 .. / 4 5gn-JJsO{{e#

eDE33E:] %r*   c                   VP                    Fv  p\        P                  ;'       d    VP                  R 8X  * pVP                  '       g.   VP                  R8X  g   VP
                  '       g   V'       g   Kj  \        WAW#4       Kx  	  R# )r<  r  N)r
  r   cimport_from_pyxr  r@  r  generate_cfunction_declaration)rQ   rA   rk   r]  r   from_pyxs   &&&&  r(   re  *ModuleNode.generate_cfunction_declarations  s_    &&E//TT8H8HH4TH


''83yyyx.u4L 'r*   c                   VP                    F  pVP                  '       d   K  VP                  R 8X  g   K*  VP                  VP                  P                  VP                  4      4       VP                  e>   VP                  P                  VP                  4      pVP                  RV,          4       VP                  R4       K  	  R# )r  Nrk  rZ  )r*  rA  r  rp  r   r^  r_  rn  ro  rq  r8  )rQ   rA   rk   r   rn  s   &&&  r(   r  (ModuleNode.generate_variable_definitions  s    __E$$$)9)9X)E44U[[AB::) ::225::>DMM'D.1

3 %r*   c                >   VP                   pVP                   EF  pVP                  R 8w  g   K  VP                  pVP                  pV'       g   K9  V P                  Wb4       V P                  WbV4       V P                  Wb4       V P                  Wb4       VP                  4       '       d;   V P                  WbV4       VP                  4       '       d   V P                  WbV4       VP                  R.4      '       d   V P                  Wb4       VP                  RR.4      '       d   V P                  Wb4       VP                  . RO4      '       d)   \!        V P"                  R^4       VP%                  R4       VP                  RR.4      '       d   V P'                  Wb4       VP                  RR	.4      '       d   V P)                  Wb4       VP                  R
R.4      '       d   V P+                  Wb4       VP                  R.4      '       d   V P-                  Wb4       VP                  RR.4      '       d   V P/                  Wb4       VP0                  '       g<   VP2                  '       g*   VP5                  R.4      '       d   V P7                  Wb4       VP                  \8        P:                  4      '       d   V P=                  Wb4       M1RVP>                  9   d!   \!        VP@                  P"                  R4       \8        PB                  ! VPD                  P>                  4      PF                   FV  pVPH                  '       g   K  VP                  VPJ                  4      '       g   K:  V PM                  WgW$P"                  4       KX  	  V PO                  Wb4       V PQ                  Wb4       V PS                  Wb4       VP%                  R4       V PU                  WB4       VP%                  R4       V PW                  W4V4       VP%                  R4       EK  	  R# )r<  __getitem____setitem____delitem____setslice____delslice__z__getslice__, __setslice__, and __delslice__ are not supported by Python 3, use __getitem__, __setitem__, and __delitem__ insteadzN#error __getslice__, __setslice__, and __delslice__ not supported in Python 3.__getattr____getattribute____setattr____delattr____get____set__
__delete____dict__total_orderingMtotal_ordering directive used, but no comparison and equality methods defined#if CYTHON_USE_TYPE_SPECSrr  r&  N)__getslice__r  r  ),re  r   r  r   r/   generate_exttype_vtablegenerate_new_functiongenerate_del_functiongenerate_dealloc_functionneeds_gcgenerate_traverse_functionneeds_tp_cleargenerate_clear_functiondefines_any_specialgenerate_getitem_int_functiongenerate_ass_subscript_functionr   rN   r8  generate_ass_slice_functiongenerate_getattro_functiongenerate_setattro_functiongenerate_descr_get_functiongenerate_descr_set_functionis_closure_class_scopeis_defaults_class_scopedefines_anygenerate_dict_getter_functionr   richcmp_special_methodsgenerate_richcmp_functionr@   parent_typeget_slot_tabler   PyNumberMethodsis_binopuser_methodsgenerate_binop_functiongenerate_property_accessorsr  generate_getset_tablegenerate_typeobj_specgenerate_typeobj_definition)rQ   rA   rk   r   r   r   r/   slots   &&&     r(   r  'ModuleNode.generate_typeobj_definitions$  s@   --((E 8+zz

500=..uEB..u;225?~~''77UK //11 88eL00-AA::5G00-1OPP<<UI001abb!XYZ\ 

#st00..1QRR88E00-AS1TUU77D00-1OPP77D00)==88E00)\1JKK88E!888E<Y<Y<Y_d_p_pr|q}_~_~::5G001R1RSS66uC)U-=-== 1 1 5 5 oq !* 8 89I9I9T9T U e e===U-F-FtGXGX-Y-Y 88dIIV !f 44UA..u;..u;JJ:;..u;JJw'445EdSJJx(q )r*   c                    VP                   pVP                  '       d1   VP                  R VP                  : RVP                  : R24       R# R# )rF  rY  rZ  N)r  vtable_cnamer8  r9  rQ   r/   rk   r   s   &&& r(   r  "ModuleNode.generate_exttype_vtable`  sA      JJ%%!!# $ r*   c                    VP                   pVP                  VP                  R 4      : RVP                  4       : R24       R# )pz = (z)o;N)r  r8  r^  r  r  s   &&& r(   generate_self_castModuleNode.generate_self_casth  s8      

%%c*++-/	0r*   c                2   V P                   P                  \        P                  ! R R4      4       VP                  '       d   RpMRpVP                  RRR7      pV P                  VP                  4      pV P                  RV RV R	V R
V RV R24       R# )CheckTypeForFreelistsExtensionTypes.c$__PYX_CHECK_FINAL_TYPE_FOR_FREELISTS__PYX_CHECK_TYPE_FOR_FREELISTSrD   Tderefzif (likely((int)(z) & rv   r#  z	, sizeof(z))))N)	r   r   r
   r   is_final_typer^  name_in_slot_module_stater  r8  )rk   
size_check
type_cnamer   freelist_check
obj_structr  s   &&&&   r(   generate_freelist_condition&ModuleNode.generate_freelist_conditiono  s    ))##$;=OP	RCN=N**2T*:
66t7I7IJ


|4/?qB}o]fgqfrrvw	yr*   c           
        \         P                  ! R R4      pVP                  R 4      pVP                  V4      V8w  d   R# VP                  pVP
                  pVP                  4       w  pw  rpVP                  P                  pVP                  '       d   . p	VP                   Uu. uF(  pVP                  P                  V4      '       g   K&  VNK*  	  ppVP                  R4      pV'       d   VP                  '       g   RpV'       g   V'       d   VP                  '       g   RpMRpV'       d   ^ pMVP                  P!                  R^ 4      pVP                  \"        P$                  4      pVP                  \"        P&                  4      pV'       d   VP(                  R,          pVP+                  R4       VP+                  R4       VP+                  RVP                  P-                  V4      V3,          4       VP+                  R	V,          4       VP+                  R
4       VP/                  V\0        P2                  R RV RV R2RR7       VP4                  ;'       g!    T
;'       g    T;'       g    T	;'       g    TpV'       d2   VP+                  RVP                  P-                  R4      ,          4       V'       dj   \         P6                  ! W4      pVP8                  pVP:                  '       g   VP=                  V4      pVf   RV R2pVP+                  RV,          4       EMVP+                  R4       V'       Ed   VP(                  P?                  \@        PB                  ! RR4      4       VP+                  R4       VP=                  V4      pVP=                  V4      pV PE                  VV R2RV4       VP+                  R4       VP+                  RV: RV: R24       VP-                  RRR7      pVP+                  R4       VP+                  R 4       VP+                  R
4       VP+                  R!V,          4       VP+                  R"4       VP+                  R#4       VP+                  R$4       VP+                  R%4       VP+                  R
4       VPG                  4       '       d   VP+                  R&4       VP+                  R'4       VP+                  R
4       VP+                  R4       VP(                  P?                  \@        PB                  ! R(R)4      4       VP+                  R*VR+ R,24       VP+                  R-4       V'       d   V'       g   VP+                  R.4       V'       d(   VP+                  R/VPI                  R04      ,          4       R1pVP4                  '       d   TpVP
                  '       d+   VP
                  PJ                  '       d   VP
                  pK<  VVJd   R2VPJ                  ,          pMRpVP+                  R3VP4                  : R4V: VPL                  : R524       V F   pVP                  PO                  W-R3R67       K"  	  V	 FZ  pVPP                  R78X  d3   RpVPS                  R3VPT                  : R8VPT                  : R924       KF  VPW                  VR:R1R;7       K\  	  V FG  pVP+                  R<VPT                  ,          4       VP+                  R=VPT                  ,          4       KI  	  V
 F%  pVP+                  R>VPT                  ,          4       K'  	  VPT                  R?8X  d   VP+                  R@4       V'       da   VP                  '       d'   RA\"        PX                   RB\"        PZ                   RC2pMRDpRpVP+                  REVP\                  : RFV: RG24       VP+                  RH4       V'       d;   VP+                  RI4       VP_                  R0\`        R1R;7       VP+                  RJ4       VP+                  R.4       VPc                  4        R# u upi )Ktp_new	__cinit__NrD   CYTHON_UNUSED freelistmodule_state_contents#if CYTHON_USE_FREELISTSz%s[%d];zint %s;r&  zPyTypeObject *t, zPyObject *a, zPyObject *kT)needs_prototyper   r  z__Pyx_PyType_GetSlot(z, tp_new, newfunc)zPyObject *o = %s(t, a, k);zPyObject *o;IncludeStringHStringTools.cz > 0r^  {zo = (PyObject*)[--];r  r  zPy_DECREF(Py_TYPE(o));zmemset(o, 0, sizeof(%s));z##if CYTHON_COMPILING_IN_LIMITED_APIz(void) PyObject_Init(o, t);rr  z(void) PyObject_INIT(o, t);PyObject_GC_Track(o);} elseAllocateExtensionTyper  z#o = __Pyx_AllocateExtensionType(t, r  r	  zif (unlikely(!o)) return 0;r'  zp = %s;oFz(struct %s*)p->r|  rZ  extra_access_coder  z" = PyDict_New(); if (unlikely(!p->z)) goto bad;p->%sr  zp->%s.data = NULL;zp->%s.memview = NULL;zp->%s.obj = NULL;__pyx_memoryviewslicezp->from_slice.memview = NULL;zo, z->z, NULLzo, a, kzif (unlikely(rv   z) < 0)) goto bad;z	return o;r  zreturn NULL;)2r   ConstructorSlotmangle_internal	slot_coder  r)  get_refcounted_entriesr  is_internalr*  r   needs_explicit_constructionr  
is_specialtrivial_signaturer@   r*  r   freelist_namefreecount_namer   r8  r^  start_slotfuncr   py_objptr_typerW  get_base_slot_functionr  is_builtin_typer  r   r
   r   r  r  	cast_coder9  rH  generate_explicit_constructionr~   rp  r_  r  modulestateglobal_cnameempty_tuple
func_cnameput_decref_clearr	   r   )rQ   r/   rk   cclass_entrytp_slot	slot_funcr   r)  have_entriesr  
py_buffersmemoryview_slicesr  r   explicitly_constructable_attrscinit_func_entryunused_markerfreelist_sizer  r  r  need_self_castr  base_type_typeptr_cnamer  needs_error_cleanupvtab_base_typestruct_type_cast
cinit_argss   &&&&                         r(   r   ModuleNode.generate_new_function|  s   ++HkB))(3	U#y0  NN	 446 	@?x->))77H$00*
0ezz55e< E0 	' *

 !,,[9$4$?$?$?#)2B2T2T2TM,MM!,,00Q?M--f.B.BC..v/D/DE++,CDLr"9:y!!22=A,     y>9:x(:,,hmM?+Vhl 	 	n -- 9 9%9F):9Fh9 98 	 JJuu00AA#FFG55eEF&/&=&=#,,,*.*H*HI`*a'~01H0II[\JJ3f<=JJ~&}  11++,<oNP

56!%!?!?!O $ > >} M00.9I7NPSUYZ

3

!"$ % "222T2B


67 

34

8$

6CD

@A 

89

7#

89

8$>>##JJ67

8$

8$

3--''(?AST JJ<]1<MRPQ

01JJsOJJy4>>##667
 $!N ***~/G/G/X/X/X!/!9!9T)#1N4S4S#S #% JJ## $"4"46 7 4EJJ55u 6 6 4 EzzZ'&*#KK. / ,,UG5,I  'EJJ+ekk9:JJ.<= '  EJJ*U[[89   !88JJ67111"6#A#A"B"VEWEWDXX^_
&
"&JJ ++Z9 : 	

	JJv!!#~U!CJJ~&

	e*
s   '#aac                   \         P                  ! R VP                  4      pVP                  R 4      pVP	                  V4      V8w  d   R# VP                  R4      pVe   VP                  '       g   R# VP                  R4       VP                  '       d#   VP                  RVP                  ,          4       VP                  V\        P                  R RRR7       VP                  R4       VP                  R	4       VP                  R
VP                  ,          4       VP                  R4       VP                  R4       VP                  4        VP                  '       d   VP                  R4       R# R# )tp_finalizeN__del__rD   z#if %sPyObject *oFneeds_funcstatePyObject *etype, *eval, *etb;!PyErr_Fetch(&etype, &eval, &etb);%s(o); PyErr_Restore(etype, eval, etb);r'  r&  )r   get_slot_by_namer@   r  r  r  r  r8  
used_ifdefr  r   r   r  r   )rQ   r/   rk   r  slot_func_cnamer   s   &&&   r(   r   ModuleNode.generate_del_function  s#   ,,]E<L<LM//>U#6!!),= 0 0 0

2JJx'"4"445E:#9#9=-ino

23

67

8e.../

56

3JJx  r*   c           	        \         P                  ! R R4      pVP                  R 4      pVP                  P                  pVP                  V4      V8w  d   R# VP                  R 4      pVP                  V\        P                  R R4       VP                  P                  pVP                  4       pVP                  4       p	VP                  '       g$   VP                  '       g   VP                  R4      MRp
WP                  9  d   Rp
VP                  '       g$   VP                  '       g   VP                  R4      MRpWP                  9  d   RpVP!                  4       w  pw  rpVP                   Uu. uF(  pVP"                  P%                  V4      '       g   K&  VNK*  	  ppV'       g!   V'       g   V'       g   V
'       g	   V'       d   V P'                  W4       V'       d   VP)                  4       '       d   VP+                  R4       V'       d   RpMRpVP+                  R	V,          4       VP+                  R
V,          4       VP+                  R4       VP+                  R4       VP+                  R4       VP+                  R4       V'       d   VP+                  R4       V	'       dI   VP,                  P/                  \0        P2                  ! RR4      4       VP+                  RV,          4       V
'       d   VP+                  R4       V P5                  W4       V'       d   VP+                  R4       V F   pVP"                  P7                  W/RR7       K"  	  W,            F4  pVP9                  RVP:                  ,          VP"                  RRRR7       K6  	  V'       Ed   VP<                  pVP>                  '       g   VPA                  V4      p\         PB                  ! W4      pVef   V'       dD   VPD                  '       d2   VPD                  P                  4       '       d   VP+                  R4       VP+                  RV,          4       EM)VP>                  '       df   V'       dD   VPD                  '       d2   VPD                  P                  4       '       d   VP+                  R4       VP+                  RV,          4       EMV'       d   VP+                  RV,          4       VP+                  R4       VP+                  RV: R V: R!24       VP+                  R4       VP+                  R"V,          4       VP,                  P/                  \0        P2                  ! R#R4      4       EMVPF                  PI                  R$^ 4      pV'       Ed   VPA                  VP                  \J        PL                  4      4      pVPA                  VP                  \J        PN                  4      4      pVP                  pVP+                  R%4       V PQ                  VV R&V 2R'V4       VP+                  R(4       VP+                  V: R)V: R*VPS                  R+4      : R,24       VP+                  R-4       VP+                  R4       VP+                  R(4       VP+                  R.4       VP+                  R/4       VP+                  R04       VP+                  R14       VP+                  R(4       VP+                  R24       VP+                  R34       VP+                  R4       VP+                  R4       VP+                  R44       VP+                  R54       VP+                  R4       V'       d   VP+                  R4       V	'       d   VP+                  R64       VP+                  R4       VPU                  4        R# u upi )7
tp_dealloc__dealloc__Nr  __weakref__r  z#if CYTHON_USE_TP_FINALIZEz!!__Pyx_PyObject_GC_IsFinalized(o)z@(!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))zIif (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && %s) {z>if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == %s) {z1if (PyObject_CallFinalizerFromDealloc(o)) return;r'  r&  zPyObject_GC_UnTrack(o);
PyTrashcanr  z__Pyx_TRASHCAN_BEGIN(o, %s)z.if (p->__weakref__) PyObject_ClearWeakRefs(o);z+if (p->__dict__) PyDict_Clear(p->__dict__);r  r  r  FT)r  clear_before_decrefhave_gilr  r	  z4__Pyx_PyType_GetSlot(%s, tp_dealloc, destructor)(o);z+if (PyType_IS_GC(%s)) PyObject_GC_Track(o);r  if (likely(z)) __Pyx_PyType_GetSlot(z", tp_dealloc, destructor)(o); elsez"__Pyx_call_next_tp_dealloc(o, %s);CallNextTpDeallocr  r  z < z
Py_TYPE(o)r  [z++] = r  rZ  r  PyTypeObject *tp = Py_TYPE(o);#if CYTHON_USE_TYPE_SLOTS(*tp->tp_free)(o);rr  <freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);if (tp_free) tp_free(o);r  Py_DECREF(tp);__Pyx_TRASHCAN_END)+r   r  r  r  r)  r  r  r   r   r  r  needs_trashcanr  r  r  r*  r  r   needs_explicit_destructionr  may_have_finalizer8  r   r   r
   r   generate_usr_dealloc_callgenerate_explicit_destructionput_xdecref_clearr_  r  r  r  r  r/   r@   r*  r   r  r  r  r  r   )rQ   r/   rk   r  r  r)  r  r  r  r   weakref_slot	dict_slotrt  r  r  r   explicitly_destructable_attrsfinalised_check
base_cnamer  r  r  r  r   s   &&&                     r(   r  $ModuleNode.generate_dealloc_function8  s   ++L-H)),7	%%//	U#y0//=E:#9#9<W))77>>#--/@E@\@\@\`e`}`}`}u((7  EI000L:?:V:V:VZ_ZwZwZwE%%j1  C	---I.3.J.J.L++H*$00)
0ezz44U; E0 	& )

 48I\]f##E0 7 7 9 9JJ34"E W  JJ[^mmo JJWZiijJJJKJJsOJJsOJJx  JJ01--''6HIKJJ4FG
 JJGH 	&&u3JJDE2EJJ44TTY4Z 3 22E""7U[[#8%**E7;d # L 3 9"00J,,,!;;JG
"99%IJ%	IOO4L4L4N4N JJ67

8j01***	IOO4L4L4N4N JJ67

QT^^_ JJLzYZ 

9:


, -

8$

?/QR  11++,?ASTV ",,00Q?M} $ > >))&*>*>?!A!%!?!?))&*?*?@"B ((

5600^,C? $( 

3

!"NN3') * 

8$

8$

3JJ78JJ23JJ+,JJwJJsOJJUVJJ12JJsOJJx JJ23JJ'(JJx 

3JJ+,

	W)
s   6#^=^=c                   VP                  R 4      pV'       d   VP                  '       g   R# VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  RVP                  ,          4       VP                  R4       VP                  R4       VP                  R	4       R# )
r  Nr  r  r  z&__Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);r	  z&__Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);r
  r'  )r  r  r8  r  )rQ   r/   rk   r   s   &&& r(   r#  $ModuleNode.generate_usr_dealloc_call  s    !!-0E,,,

3

23

67 	

;<

8e.../

;<

56

3r*   c                .   \         P                  ! R 4      pVP                  R 4      pVP                  P                  pVP                  V4      V8w  d   R# VP                  V\        P                  R R4       VP                  RR7      w  pw  rp
V'       * pRpVP                  R4       V'       g	   V	'       d   V P                  W4       V'       Ed   \         P                  ! W4      pV'       d   VP                  RV,          4       EMaVP                  '       dX   VP                  pVP                  R4       VP                  RV R	24       VP                  R
4       VP                  R4       RpMVP                  VP                  4      pVP                  R4       VP                  R4       VP                  RV,          4       VP                  RV R	24       VP                  R4       VP                  R4       VP                  R4       VP                  RV,          4       VP                  R4       VP                   P#                  \$        P&                  ! RR4      4       RpV'       g	   V'       d   VP                  R4       VP                  R\)        V'       * 4       R24       VP                  R4       VP                  R4       VP                   P#                  \$        P&                  ! RR4      4       V F}  pRVP*                  ,          p\        P,                  ! \.        VP0                  V4      pVP                  RV,          4       VP                  RV,          4       VP                  R4       K  	  V	 FW  pVP*                  R,           pVP                  RV,          4       VP                  RV,          4       VP                  R4       KY  	  VP                  R 4       VP                  R4       VP3                  4        R# )!tp_traverseNz!PyObject *o, visitproc v, void *aFinclude_gc_simplezint e;z!e = %s(o, v, a); if (e) return e;r  z-traverseproc traverse = __Pyx_PyType_GetSlot(z, tp_traverse, traverseproc);z>if (!traverse); else { e = traverse(o,v,a); if (e) return e; }r'  Tr  ze = 0;if (likely(%s)) {z(if (traverse) { e = traverse(o, v, a); }r  r&  z1{ e = __Pyx_call_next_tp_traverse(o, v, a, %s); }zif (e) return e;CallNextTpTraverser  z e = __Pyx_call_type_traverse(o, z, v, a);CallTypeTraverser  	if (%s) {z!e = (*v)(%s, a); if (e) return e;z.objzif (p->%s) {z$e = (*v)(p->%s, a); if (e) return e;r  )r   GCDependentSlotr  r  r)  r  r  r   c_returncode_typer  r8  r  r  r  r  r  r   r   r
   r   r  r_  typecastr	   r   r   )rQ   r/   rk   r  r  r  r)  r  r  r  r  needs_type_traversemaybe_needs_type_traversestatic_callr*  r   var_codevar_as_pyobjectr_  s   &&&&               r(   r  %ModuleNode.generate_traverse_function  sG   ++M:))-8	%%//	U#y0E:#?#?Pst ((5(A 	@?x-> #,m$)!

8z##E09#::5JK

>LM***&44


3

CJ<Olmo

[\

3,0) ";;I<S<ST


9:

8$

.;<

CJ<Olmo

EF

8$

8$

NQZZ[

-.  11++,@BTUW,0)";JJsOJJ9#B[>[:\9]]efgJJ)*JJsO--''(:<NOQ E,H(11.%**hWOJJ{X-.JJ:_LMJJsO   EKK&(EJJ~-.JJ=EFJJsO	   	

;

3r*   c                   \         P                  ! R VP                  4      pVP                  R 4      pVP                  P
                  pVP                  V4      V8w  d   R# VP                  RR7      w  pw  rp
V'       g   V	'       g	   V'       d   RpMRpVP                  V\        P                  R V R24       V'       d(   \        P                  '       d   VP                  R4       V'       g	   V	'       d   V P                  W4       V'       Edt   \         P                  ! W4      pV'       d   VP                  RV,          4       EM;VP                   '       dV   VP"                  pVP                  R	4       VP                  R
V R24       VP                  R4       VP                  R4       MVP%                  VP"                  4      pVP                  R4       VP                  RV,          4       VP                  R
V R24       VP                  R4       VP                  R4       VP                  R4       VP                  RV,          4       VP&                  P)                  \*        P,                  ! RR4      4       \        P                  '       d   V F  pRVP.                  ,          pVP                  RV,          4       VP0                  '       d   VP3                  V\4        RR7       MVP3                  WP6                  RR7       VP                  R4       K  	  M+V F%  pVP                  RVP.                  ,          4       K'  	  V	 F%  pVP                  RVP.                  ,          4       K'  	  VP.                  R8X  d   VP                  R4       VP                  R4       VP                  R4       VP9                  4        R# )tp_clearNFr0  rD   r  r  zPyObject* tmp;r	  r  z%inquiry clear = __Pyx_PyType_GetSlot(z, tp_clear, inquiry);zif (clear) clear(o);r'  r  r2  r  r&  z${ __Pyx_call_next_tp_clear(o, %s); }CallNextTpClearr  r  ztmp = ((PyObject*)%s);r  zPy_XDECREF(tmp);zPy_CLEAR(p->%s);zPy_CLEAR(p->%s.obj);r  z(__PYX_XCLEAR_MEMVIEW(&p->from_slice, 1);r  )r   r  r@   r  r  r)  r  r  r  r   r7  r   clear_to_noner8  r  r  r  r  r  r   r   r
   r   r_  rX  put_init_to_py_noner	   r   r   )rQ   r/   rk   r  r  r  r)  r  r  r  r  unusedr;  r*  r   r~   s   &&&&            r(   r  "ModuleNode.generate_clear_functionC  s    ,,Z9I9IJ))*5	%%//	U#y0 ((5(A 	@?x-> zYF%FE:#?#?PVxWbMcd---JJ'(z##E09#::5JK

8k12***&44


3

B:,Ncde

12

3 ";;I<S<ST


9:

.;<

B:,Ncde

12

8$

8$

AIMN  11++,=?QRT    !,

3d:;,,,,,T>,O,,T::U,K

-. " "

-;< "  EJJ-;<   !88JJAB

;

3r*   c                   VP                  V\        P                  R RRR7       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R	4       VP                  R
4       VP                  R4       VP                  R4       VP                  R4       VP	                  4        R# )sq_itemzPyObject *o, Py_ssize_t iFr  zPyObject *r;z5PyObject *x = PyLong_FromSsize_t(i); if(!x) return 0;z_#if CYTHON_USE_TYPE_SLOTS || (!CYTHON_USE_TYPE_SPECS && __PYX_LIMITED_VERSION_HEX < 0x030A0000)z2r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);rr  zDr = ((binaryfunc)PyType_GetSlot(Py_TYPE(o), Py_mp_subscript))(o, x);r&  zPy_DECREF(x);	return r;r'  N)r  r   r  r8  r   )rQ   r/   rk   s   &&&r(   r  (ModuleNode.generate_getitem_int_function  s     	E:#<#<iIdv{|

	

C	E 	

tu

@	B

7

YZ

8

	

	

	r*   c                    VP                   P                  pVP                  R 4      pVP                  R4      pVP                  V\        P
                  RR4       VP                  R4       V'       d$   VP                  RVP                  ,          4       M|VP                  R4       V P                  VRRRR	V4       VP                  R
4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       V'       d$   VP                  RVP                  ,          4       M|VP                  R4       V P                  VRRRR	V4       VP                  R
4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  4        R# )r}  r~  mp_ass_subscript%PyObject *o, PyObject *i, PyObject *vif (v) {return %s(o, i, v);z__Pyx_TypeName o_type_name;tp_as_mappingobjobjargproco, i, vz=o_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(o));z'PyErr_Format(PyExc_NotImplementedError,zL  "Subscript assignment not supported by " __Pyx_FMT_TYPENAME, o_type_name);z#__Pyx_DECREF_TypeName(o_type_name);r  r'  else {return %s(o, i);zJ  "Subscript deletion not supported by " __Pyx_FMT_TYPENAME, o_type_name);N
r  r)  r  r  r   r7  r8  r  generate_guarded_basetype_callr   rQ   r/   rk   r)  	set_entry	del_entrys   &&&   r(   r  *ModuleNode.generate_ass_subscript_function  s    %%//	%%m4	%%m4	E:#?#?ASU|}

	JJ,y/C/CCDJJ-///?,>QZ\`bJJOQJJ9;JJ^`JJ57JJ

	

	JJ"((*+ JJ-///?,>QZ\`bJJOQJJ9;JJ\^JJ57JJ

	

	r*   c                   V'       d   VP                  V4      pV'       d"   VP                  V R V RV RV RV R2
4       MVP                  V RV RV RV R24       VP                  R4       VP                  RV R24       R# R# )z  f = __Pyx_PyType_TryGetSubSlot(r#  r	  z f = __Pyx_PyType_TryGetSlot(zif (f)z	return f(N)typeptr_cname_in_module_stater8  )rQ   r)  substructurer  functyper"  rk   base_tpnames   &&&&&&& r(   rU  )ModuleNode.generate_guarded_basetype_call  s    <<YGK 

j @RP\~]_`d_eeghpgqqstv 

j =k]"TFRTU]T^^`acJJx JJ4&+, r*   c                   VP                  R 4      '       d   R# VP                  V\        P                  RR4       VP	                  R4       . pVP
                  pVeY   VP                  P                  R8X  g>   VP                  VP                  4       VP                  P
                  P                  pK\  W9   g   Q hRpV'       dF   VP                  P                  R8X  d+   VP                  '       d   TMVP
                  P                  pRVP                  9   p/ p\        P                   F(  pV F  p	V	P                  V4      p
V
f   K  WV&    K&  	  K*  	  V'       d   \         UUu. uF  w  rW9   g   K  VNK  	  pppV'       gS   RV9  d)   RV9  d"   \!        VP
                  P"                  R	4       M \!        VP
                  P"                  R
4       RpM;RV9  d*   RV9  d#   \!        VP
                  P"                  R4       Rp\%        V4      p\        P                   EF  pVP'                  R4      P)                  4       pVP+                  V4      p
V
f   V'       d   VR29   d   KI  VP	                  RV,          4       V
Ef   V'       g   Q h\        XV3,          w  pppVP	                  R4       VP	                  RW~,          P,                  ,          4       VP	                  R4       VP	                  R4       VP	                  R4       VP	                  R4       VEe   VR8X  dF   TP	                  RV'       d   RMR,          4       VP	                  R4       VP	                  R4       M[VR8X  dF   TP	                  RV'       d   RMR,          4       VP	                  R4       VP	                  R4       M\/        RV: 24      hRV9   d   RpM	RpV'       * pVP	                  RVV,          P,                  ,          4       VP	                  R4       VP	                  R4       VP	                  R4       VP	                  R 4       V'       d   VP	                  R!4       MVP	                  R"4       VP	                  R#4       VP	                  R$4       VP	                  R$4       M<V'       d   VP	                  R%4       MVP	                  R&4       VP	                  R#4       VP	                  R$4       VP	                  R'4       M"VP	                  R(V
P,                  ,          4       VP	                  R$4       EK   	  RV9   d   RV9  d   V'       g   VP	                  R)4       VP	                  R4       VP	                  RVR,          P,                  ,          4       VP	                  R4       VP	                  R*4       VP	                  R4       VP	                  R+4       VP	                  R,4       VP	                  R#4       VP	                  R$4       VP	                  R'4       VP	                  R$4       VP	                  R-4       V'       dA   VP                  '       d/   VP	                  R.VP                  : R/VP                  : R024       VP	                  R14       VP	                  R$4       VP	                  R$4       VP	                  R$4       VP1                  4        R# u uppi )3__richcmp__Ntp_richcomparez"PyObject *o1, PyObject *o2, int opzswitch (op) {r<  r  __eq____ne__r  z@total_ordering directive used, but no comparison methods definedFz=total_ordering directive used, but no equality method definedrt  zcase Py_%s: {zPyObject *ret;zret = %s(o1, o2);z.if (likely(ret && ret != Py_NotImplemented)) {z+int order_res = __Pyx_PyObject_IsTrue(ret);zPy_DECREF(ret);z)if (unlikely(order_res < 0)) return NULL;&&zif (%s order_res) {z!!!zret = __Pyx_NewRef(Py_False);z} else {||rD   zret = __Pyx_NewRef(Py_True);zUnknown op z(int eq_res = __Pyx_PyObject_IsTrue(ret);z&if (unlikely(eq_res < 0)) return NULL;z"ret = eq_res ? Py_False : Py_True;z"ret = eq_res ? Py_True : Py_False;zPy_INCREF(ret);r'  z%ret = order_res ? Py_False : Py_True;z%ret = order_res ? Py_True : Py_False;zreturn ret;zreturn %s(o1, o2);zcase Py_NE: {z#int b = __Pyx_PyObject_IsTrue(ret);z!if (unlikely(b < 0)) return NULL;zret = (b) ? Py_False : Py_True;z
default: {r  z->tp_richcompare)) return z->tp_richcompare(o1, o2, op);z'return __Pyx_NewRef(Py_NotImplemented);)NEEQ)r  r  r   r  r8  r  r   r  r   r/   r)  r  r@   r   r  TOTAL_ORDERINGr   rN   maxstripupperr*  r  AssertionErrorr   )rQ   r/   rk   class_scopesclsextern_parentr  
comp_entry
cmp_methodclass_scoper   	from_nameto_name
comp_namesordering_sourcecmp_typeinvert_compcomp_opinvert_equalseq_funcs   &&&                 r(   r  $ModuleNode.generate_richcmp_function  ss   ]++E:#<#<>NPtu

?#ocii&:&:h&F		*))''11C$$$399''83#&#4#4#4C%:K:K:U:UM)U-=-==
#;;J+#//
;$-2z*	  , < >Lhn(:	PYPg))nJh:-(:2ME--11km E--11\^!&:-(*2LE--113rs%*N #&j/#;;J!'',224HNN:.E}nL8P JJ12}%%~6D_V`E`6a3Wm 

+,

.1L1W1WWX

KL

HI

,-

FG ,$

#8KDUX#YZ

#BC

:. D

#8;CTV#WX

#AB

:.,-JKK:-"* #+,9(9JJ2Z5H5S5SSTJJOPJJIJJJ01JJGH$

#GH

#GHJJ01JJsOJJsO #

#JK

#JKJJ01

3

=)

/%2B2BBCJJsOA <D z!hj&@JJ'JJ'( JJ*Z-A-L-LLMJJGHJJ<=JJ()JJ:;JJ89JJ()JJsOJJ}%JJsO

< ]888JJ++]-H-HJ K

<=

3

3

3[ is   ,
[4;[4c                ^  aaaaa SP                  VP                  4      oSP                  R ,          '       d5   SP                  RS: RVP                  P                  S4      : 24       R# VP                  P                  \        P                  \        P                  39   d   RpR;opMUVP                  P                  \        P                  \        P                  39   d   RpRoRpM\        VR	V,          4       R# V3R
 loVVVVV3R lpS! VP                  P                  4      '       d`   S! VP                  P                  4      '       g>   \        VRVP                  P                  : RVP                  P                  : R24       SP                  4        VP!                  4       pV'       d   SP                  V4       SP#                  S4       \%        \'        S! VP                  P                  4      4      4      p	\%        \'        S! VP                  P                  4      4      4      p
SP(                  P*                  pSP(                  P,                  '       d   SP/                  V4      pSP                  \0        P2                  ! RRRSRVP                  RV	RV
RV! VP                  P                  RR7      RV! VP                  P                  RR7      RVRVRSRV/
R7      ^,          4       SP5                  4        V'       d   SP                  R4       R# R# ) c_api_binop_methodsr(  rY  N
binaryfuncrD   ternaryfuncz, extra_argz, PyObject* extra_argz"Unexpected type slot signature: %sc                 v   < SP                  V 4      pV'       d   VP                  '       d   VP                  # R # r#   )lookupr  r  )method_namer   r/   s   & r(   get_slot_method_cnameAModuleNode.generate_binop_function.<locals>.get_slot_method_cname	  s/    LL-E',1A1A1A5##KtKr*   c                    < S! V 4      pV'       d   V: R V'       d   RMR: S: R2# S: RSP                  SP                  P                  4      : RS: R2# )rv   zright, leftzleft, rightrw   z&_maybe_call_slot(__Pyx_PyType_GetSlot(z', tp_base, PyTypeObject*), left, right )name_in_module_stater  r  )r  r-  r  rk   	extra_arg	func_namer  r/   s   && r(   call_slot_method<ModuleNode.generate_binop_function.<locals>.call_slot_method	  sV    .{;J%,M-?  --e.?.?.M.MN r*   zExtension type implements z() but not z(). The behaviour has changed from previous Cython versions to match Python semantics. You can implement both special methods in a backwards compatible way.	BinopSlotr  r  	slot_nameoverloads_leftoverloads_right	call_leftF)r-  
call_rightTr  	slot_typer  extra_arg_declrI   r&  )r  r  r@   r8  	left_slotr  	signaturer   r  ibinaryfuncpowternaryfuncipowternaryfuncr   r  
right_slotr   preprocessor_guard_coder   r  rH   r  r  rB  r  r   ro  r   )rQ   r/   r  rk   rN   r  r  r  preprocessor_guardr  r  parent_type_cnamer  r  r  s   &f&f&       @@@r(   r  "ModuleNode.generate_binop_function	  s   ))$..9	122JJ)T^^5M5Me5TUV>>##	(<(<i>S>S'TT$I)++I^^%%)*B*BID]D])^^%I%I4N#;dBC	L	 	 !!;!;<<EZ[_[j[j[v[vEwEwC **++	  	

!99;JJ)*u%T"78R8R"STUd#89T9T#UVW!--;;... $ 9 9:K L

--/$n%!1$..2L2LV[!\ "24??3N3NX\"] "3$n 	  	JJx  r*   c                
  aa RVV3R lloS! R4      pS! R4      pVP                  S\        P                  RRRR7       Ve$   VP                  RVP                  ,          4       MVP                  R	4       VeV   VP                  R
4       VP                  R4       VP                  RVP                  ,          4       VP                  R4       VP                  R4       VP                  R4       VP                  4        R # )Nc                    < Vf   SP                   pVP                  P                  V 4      pVf9   VP                  '       d   Ve   V# VP                  e   S! WP                  4      # V# r#   )r  r/   r  is_externalr)  )ntpextern_returnrlookup_here_or_baser/   s   &&& r(   r  BModuleNode.generate_getattro_function.<locals>.lookup_here_or_base	  s^    z&&$$Q'Ay>>>m&?((<<+.q,,??Hr*   r  r  tp_getattrozPyObject *o, PyObject *nFr  zPyObject *v = %s(o, n);z,PyObject *v = PyObject_GenericGetAttr(o, n);z9if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) {zPyErr_Clear();zv = %s(o, n);r'  z	return v;)NN)r  r   r  r8  r  r   )rQ   r/   rk   getattr_entrygetattribute_entryr  s   &f&  @r(   r  %ModuleNode.generate_getattro_function	  s    
	 
	 ,M:01CDE:#<#<mMgy~)JJ)&1134 JJ>@$JJKMJJ "JJ!,,./ JJ

	

	r*   c                   VP                   P                  pVP                  R 4      pVP                  R4      pVP                  V\        P
                  RR4       VP                  R4       V'       d$   VP                  RVP                  ,          4       M'V P                  VRRRRV4       VP                  R	4       VP                  R
4       VP                  R4       V'       d$   VP                  RVP                  ,          4       M'V P                  VRRRRV4       VP                  R4       VP                  R
4       VP                  R
4       VP                  4        R# )r  r  tp_setattroz%PyObject *o, PyObject *n, PyObject *vrM  zreturn %s(o, n, v);Nsetattrofunczo, n, vz(return PyObject_GenericSetAttr(o, n, v);r'  rR  zreturn %s(o, n);z(return PyObject_GenericSetAttr(o, n, 0);rT  rV  s   &&&   r(   r  %ModuleNode.generate_setattro_function	  sA    %%//	%%m4	%%m4	E:#?#?Pwx

	JJ%((*+ //4	4QJJ:<

	

	JJ"((*+ //4	4QJJ:<

	

	r*   c                ~   VP                  R 4      pVP                  V\        P                  RRRR7       VP	                  R4       VP	                  R4       VP	                  R4       VP	                  RVP
                  ,          4       VP	                  R	4       VP	                  R
4       VP                  4        R# )r  tp_descr_getz%PyObject *o, PyObject *i, PyObject *cFr  zPyObject *r = 0;zif (!i) i = Py_None;zif (!c) c = Py_None;zr = %s(o, i, c);rH  r'  N)r  r  r   r  r8  r  r   )rQ   r/   rk   user_get_entrys   &&& r(   r  &ModuleNode.generate_descr_get_function
  s    
 **95E:#<#<nNu  HM  	N

	 

"	$

"	$ 	

))+	,
 	

	

	r*   c                   VP                   P                  pVP                  R 4      pVP                  R4      pVP                  V\        P
                  RR4       VP                  R4       V'       d$   VP                  RVP                  ,          4       M8V P                  VRRRRV4       VP                  R	4       VP                  R
4       VP                  R4       VP                  R4       V'       d$   VP                  RVP                  ,          4       M8V P                  VRRRRV4       VP                  R4       VP                  R
4       VP                  R4       VP                  R4       VP                  4        R# )r  r  tp_descr_setrL  rM  rN  NdescrsetfuncrQ  6PyErr_SetString(PyExc_NotImplementedError, "__set__");r  r'  rR  rS  z9PyErr_SetString(PyExc_NotImplementedError, "__delete__");rT  )rQ   r/   rk   r)  user_set_entryuser_del_entrys   &&&   r(   r  &ModuleNode.generate_descr_set_function:
  sa    %%//	**95**<8E:#?#?Qxy

	JJ%"--/0 //4DRJJHJJJ

	

	JJ""--/0 //4DRJJKMJJ

	

	r*   c                    VP                    Fd  pVP                  pVP                  R .4      '       d   V P                  W24       VP                  RR.4      '       g   KS  V P	                  W24       Kf  	  R# )r  r  r  N)property_entriesr/   r  generate_property_get_functiongenerate_property_set_function)rQ   cclass_scoperk   r   property_scopes   &&&  r(   r  &ModuleNode.generate_property_accessorse
  s`    !22E"[[N))9+6633E@))9i*@AA33E@ 3r*   c                ~   VP                   pVP                  P                  \        P                  VP
                  4      Vn        VP                  R 4      pVP                  R4       VP                  RVP                  ,          4       VP                  RVP                  ,          4       VP                  R4       R# )r  rD   9static PyObject *%s(PyObject *o, CYTHON_UNUSED void *x) {return %s(o);r'  N)
r/   parent_scoper  r   prop_get_prefixr~   getter_cnamer  r8  r  )rQ   property_entryrk   r  	get_entrys   &&&  r(   r  )ModuleNode.generate_property_get_functionm
  s    '--&4&A&A&H&H""N$7$7'9#"..y9	

2

G++-	. 	

$$&	' 	

	r*   c                   VP                   pVP                  P                  \        P                  VP
                  4      Vn        VP                  R 4      pVP                  R4      pVP                  R4       VP                  RVP                  ,          4       VP                  R4       V'       d$   VP                  RVP                  ,          4       M"VP                  R4       VP                  R4       VP                  R4       VP                  R	4       V'       d$   VP                  R
VP                  ,          4       M"VP                  R4       VP                  R4       VP                  R4       VP                  R4       R# )r  r  rD   z@static int %s(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {rM  zreturn %s(o, v);r  r  r'  rR  r  z6PyErr_SetString(PyExc_NotImplementedError, "__del__");N)
r/   r  r  r   prop_set_prefixr~   setter_cnamer  r8  r  )rQ   r  rk   r  rW  rX  s   &&&   r(   r  )ModuleNode.generate_property_set_function}
  sN   '--&4&A&A&H&H""N$7$7'9#"..y9	"..y9	

2

N++-	. 	

	JJ"((*+ JJHJJJ

	

	JJ((*+ JJHJJJ

	

	r*   c           	        VP                   pVP                  p\        P                  ! R VP                  P
                  4      pVP                  WB4       \        P                  ! RVP                  P
                  4      pVP                  V4      '       g4   VP                  R4       VP                  WB4       VP                  R4       VP                  '       d   VP                  pMRVP                  ,          pVP                  '       g   VP                  R4      MRpV'       d   VP                  '       d   Rp\        V4      p	V	'       Edd   VP                  P!                  \"        P$                  ! RR4      4       VP                  R	VP&                  ,          4       VP                  R
4       V'       d%   VP                  RV: RVP(                  : R24       VP                  R4       VP                  R4       VP                  R4       V'       d   \+        VP,                  4      p
V
 R2pVP                  R4       VP                  R4       VP                  RV R24       VP                  R4       VP                  RV R24       VP                  R4       VP                  R4       VP                  RVP&                  ,          4       \        P.                  ! VP                  P
                  4       F  pVP1                  WB4       K  	  V	'       d#   VP                  RVP&                  ,          4       VP                  R4       VP                  R4       VP2                  P5                  4       pVP                  RVP&                  ,          4       VP                  RV P6                  : RVP9                  RR4      : R24       VP                  RV,          4       VP                  R 4       VP                  R!\        P                  ! R"VP
                  4      P;                  V4      ,          4       VP                  R#VP&                  ,          4       VP                  R4       R# )$
tp_memberstp_as_bufferz$#if !CYTHON_COMPILING_IN_LIMITED_APIr&  r  r  NIncludeStructmemberHr  z#static PyMemberDef %s_members[] = {z#if !CYTHON_USE_TYPE_SLOTSz,{"__weaklistoffset__", T_PYSSIZET, offsetof(r#  z), READONLY, 0},{0, 0, 0, 0, 0}r  zL: __weakref__ is unsupported in the Limited API when running on Python <3.9.zM#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x03090000z+#if defined(__GNUC__) || defined(__clang__)z
#warning "ru  r%  z#pragma message("z")z!static PyType_Slot %s_slots[] = {z#{Py_tp_members, (void*)%s_members},z{0, 0},zstatic PyType_Spec %s_spec = {r$  rD   z",zsizeof(%s),z0,r  tp_flagsz	%s_slots,)r   r/   r   r  r   r@   generate_substructure_specis_emptyr8  generate_substructurer  r>  r  r  r  rH   r   r
   r   r  r_  r   rN   r  generate_spec
class_namerE  r   rf  r  )rQ   r   rk   ext_typer/   members_slotbuffer_slot	objstructweakref_entrygenerate_memberspositionweakref_warn_mesager  	classnames   &&&           r(   r   ModuleNode.generate_typeobj_spec
  se   :: 11,@P@P@[@[\//<00AQAQA\A\]##E**JJ=>--e:JJx     00I#h&>&>>I@E@\@\@\))-8bf]777 M.--''(>@STVJJ<x?U?UUVJJ34
 

')<)<> ?JJx JJ()JJt*=+<+<=j !. . $
 

jk

HI

Z(;'<A>?

45

./B.C2FG

8$

8$ 	

69O9OOP,,T-=-=-H-HIDu+ JJJ<x?U?UUV

9

4$$88:	

3h6L6LLM

!6!6	8I8I#r8RST

=9,-

4

5955j%BRBRS]]^cdde

;!7!778

4r*   c                X   VP                   pVP                  p\        P                  ! VP                  P
                  4      P                   F  pVP                  WS4       K  	  VP                  R 4       VP                  R8X  d   RpMRpVP                  WtP                  ,          4       VP                  R4       VP                  P                  4       pVP                  RV P                  : RV: R24       VP                  '       d   VP                  p	MRVP                  ,          p	VP                  R	V	,          4       VP                  R
4       \        P                  ! VP                  P
                  4       F  p
V
P!                  WS4       K  	  VP                  R4       R# )rD   r  zDL_EXPORT(PyTypeObject) %s = {zstatic PyTypeObject %s = {zPyVarObject_HEAD_INIT(0, 0)ru  z."z, /*tp_name*/r  zsizeof(%s), /*tp_basicsize*/z0, /*tp_itemsize*/r  N)r   r/   r   r  r   r@   substructuresr  r8  r  r  r  rE  r   r  r>  generate)rQ   modnamer   rk   r   r/   suiter  r  r  r  s   &&&&       r(   r  &ModuleNode.generate_typeobj_definition
  sK   zz

--d.>.>.I.IJXXE''4 Y

2x'5F1F

6.../

)	+$$88:	

%%	 ,,I#d&:&::I

*Y6	8

 	",,T-=-=-H-HIDMM%& J

	r*   c                B   VP                   '       d   VP                  '       g   R # VP                  R,          pVP                  R4       VP	                  4       pVP                  RVP
                  ,          4       VP                   FG  pVP                  '       d   K  V'       d   VP                  '       d   K3  VP                  VRVR7       KI  	  VP                  R4       VP                  R4       VP                  4       '       d   VP                  R4       R # R # )NbindingrD   zstatic PyMethodDef %s[] = {r2  )wrapper_code_writerz{0, 0, 0, 0}r  )
is_c_class_scopepyfunc_entriesr@   r8  rc  method_table_cnamefused_cfunctionis_overridableput_pymethoddefgetvalue)rQ   rA   rk   r  r  r   s   &&&   r(   r   ModuleNode.generate_method_table  s    (:(:(:..+

2"224

)&&(	) ''E((('e>R>R>R$$UCEX$Y ( 	

	

	 ''))%%b) *r*   c                   VP                  R 4      pV'       d   VP                  '       g   R# VP                  R4      pVP                  pVP	                  R4       VP	                  R4       VP	                  RV,          4       V P                  W4       VP	                  RV,          4       VP	                  RV,          4       VP	                  R4       VP	                  R	V,          4       VP	                  R
V,          4       VP	                  R4       VP	                  R4       VP	                  RV R24       VP	                  R4       R# )r  N__dict__getterrD   zM#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000r  zif (unlikely(!p->%s)){zp->%s = PyDict_New();r'  zPy_XINCREF(p->%s);zreturn p->%s;rr  r(  z PyObject_GenericGetDictr&  )r  is_variabler  r_  r8  r  )rQ   r/   rk   	dict_attrr  	dict_names   &&&   r(   r  (ModuleNode.generate_dict_getter_function"  s   %%j1		 5 5 5))*:;	OO	

2

bc

NQZZ[,

+i78

*Y67

3

')34

?Y./

3

7 	

Xi[(@AB

8r*   c                d   VP                   '       Ed   VP                  R 4       VP                  RVP                  ,          4       VP                    F  pVP                  pV'       d;   VP                  '       d   VP                  4       pRVP                  4       ,          pMRpTP                  RVP                  P                  4       : RVP                  ;'       g    R: RVP                  ;'       g    R: RV: R2	4       K  	  VP                  R4       VP                  R4       R	# R	# )
rD   z"static struct PyGetSetDef %s[] = {zPyDoc_STR(%s)r  r  r#  z, 0},r  r  N)
r  r8  getset_table_cnamer   
is_unicodeas_utf8_stringrE  r~   r  r  )rQ   rA   rk   r   r   doc_codes   &&&   r(   r   ModuleNode.generate_getset_table:  s    JJrNJJ4&&'( --ii~~~!002.1H1H1JJH"H



668**11c1**11c1 	"# . JJ!#JJ+  r*   c                    \        VP                  P                  4       4       Ff  w  r#VP                  '       g   K  VP                  '       g   K-  VP
                  P                  '       d   KK  VP
                  P                  V4       Kh  	  R # r#   )r   r   r   
is_cglobalr@  r   r  r  r   s   &&  r(   r   5ModuleNode.create_import_star_conversion_utility_codeS  sX     "#++"3"3"56KDEJJJzz---JJ::3? 7r*   c           
     4   VP                  \        P                  ! R R4      4       VP                  R\        P
                   R\        P                   R\        P                   R24       VP                  R4       \        VP                  P                  4       4       F1  w  r4VP                  '       g   K  VP                  RV,          4       K3  	  VP                  R4       VP                  R	4       VP                  R
4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  4       pVP                  R4       ^ p\        VP                  P                  4       4       EF  w  r4VP                  '       g   K  VP                  '       g   K.  VP                   P"                  '       d   KL  V^,          pV^d,          ^ 8X  d4   VP                  R4       VP                  R4       VP                  R4       VP                  RV,          4       VP                   P$                  '       Ed	   VP                   P&                  '       g   VP                   P(                  '       dP   VP                   P+                  VR4      pVP                  RV: RVP-                  VP.                  4      : R24       VP                  R4       VP1                  VP2                  VP                   RR7       VP                  VP2                  : R\4        P6                  ! VP                   \8        R4      : R24       MVP                   P;                  V4      '       dC   VP                  VP                   P=                  RVP2                  VP.                  V4      4       MNVP                  RV: RVP                   : R 24       VP                  VP-                  VP.                  4      4       VP                  R4       EK  	  VP                  R!4       VP                  R"\        P>                  ,          4       VP                  R4       VP                  R#4       VPA                  VPB                  4      '       d@   VPE                  VPB                  4       VPG                  \I        V PJ                  4      4       WRn!        VP                  R$4       VP                  R%4       VP                  R4       VP                  R&4       VPM                  \        PN                  ! R'R(4      4       VPQ                  4        R)# )*CStringEqualsr  int rv   rG  z2,PyObject *o, PyObject* py_name, const char *name)z,static const char* internal_type_names[] = {z"%s",r  r  z-const char** type_name = internal_type_names;zwhile (*type_name) {z$if (__Pyx_StrEq(name, *type_name)) {zBPyErr_Format(PyExc_TypeError, "Cannot overwrite C type %s", name);r|  r'  ztype_name++;zif (0);z#ifdef _MSC_VERz)if (0);  /* Workaround for MSVC C1061. */r&  z#else if (__Pyx_StrEq(name, "%s")) {r  zif (!()) rZ  zPy_INCREF(o);Fr  r|  z<PyErr_Format(PyExc_TypeError, "Cannot convert Python object  to z");rR  z3if (PyObject_SetAttr(%s, py_name, o) < 0) goto bad;r  r  r  rD   
ImportStarry   N))r   r
   r   start_initcfuncr   import_star_setmodulestatetype_cnamemodulestatevalue_cnamer8  r   r   r   r   new_error_labelr  r@  r   is_constr  rB  r  type_test_code
error_gotorN   
put_decrefr_  r   r8  r	   r  from_py_call_coder  
label_usederror_label	put_labelput_add_tracebackr   r   r  r  r   )rQ   rA   rk   r~   r   old_error_label
msvc_count	type_tests   &&&     r(   r  ModuleNode.generate_import_star[  s   [44_oVW6))*!++,Bv/L/L.M N@@	A
 	

AB!#++"3"3"56KD}}}

7T>* 7 	

3

4

BC

)*

9:

WX

;

3

>"

3..0

9
!#++"3"3"56KDEJJJuzz7J7J7Ja
#q(JJ01JJJKJJx(

@4GH::)))zz333uzz7Q7Q7Q$)JJ$=$=%&	

% OOEII6$8 9 JJ/OOEKK5OIJJ"++EJJL N O ZZ;;C@@JJuzz;;U[[%))T ; < JJejj * +JJtuyy9:

39 7: 	

8

H6K^K^^_

3

;??4++,,NN4++,""=1F1F#GH*

6

< 

3

2;++L:JKLr*   c                \   VP                  R 4       VP                  RVP                  ,          4       VP                  R\        P                  ,          4       VP                  R\        P                  ,          4       VP                  R\        P
                  ,          4       VP                  R\        P                  ,          4       VP                  R\        P                  ,          4       \        P                  e)   VP                  R\        P                  ,          4       R# R# )ztypedef struct {rb  N)r8  module_dict_cnamer   builtins_cnamecython_runtime_cnamer  empty_bytesempty_unicoder   r  r  r  s   &&&r(   r  &ModuleNode.generate_module_state_start  s    

%&

?S%:%::;

?V%:%::;

?V%@%@@A

?V%7%778

?V%7%778

?V%9%99:)JJ)?)??@ *r*   c           	     $   VR ,          pVR,          pVR,          pVP                  R\        P                  ,          4       VP                  R4       VP                  \        P
                  ! RR4      4       VP                  R4       VP                  R4       VP                  R	4       VP                  R
\        P                  ,          4       VP                  R4       VP                  R4       VP                  R\        P                  ,          4       VP                  R4       VP                  R4       VP                  R\        P                  : R\        P                  : R24       VP                  R4       VP                  RVP                  : R\        P                  : R24       VP                  R4       VP                  R\        P                  : R\        P                  : R24       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R\        P                  : R\        P                  : R\        P                  : R24       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       R# )module_state_endmodule_state_clear_endmodule_state_traverse_endz} %s;rD   MultiPhaseInitModuleStater  #if CYTHON_USE_MODULE_STATE#ifdef __cplusplusnamespace {zextern struct PyModuleDef %s;} /* anonymous namespace */rr  zstatic struct PyModuleDef %s;r&  r(  z2 (__Pyx_PyModule_GetState(__Pyx_State_FindModule(&z)))z (__Pyx_State_FindModule(&z))r  rY  z	_static =z    {};z    {0};z	 * const  = &z_static;r  r'  N)	r8  r   r  r   r
   r  pymoduledef_cnamer  r  )rQ   rA   r  r   r  r  r  s   &&&&   r(   r  $ModuleNode.generate_module_state_end  ss   "#56()AB +,G H7V%A%AAB2$$8:MN	
 	89/0=):V=U=UUV897#:V=U=UUV8$2**$$& 	' 	2$$& 	' 	7#((**
 	 	/0 	9%7#:&8$((****
 	
 	8$  -  %  *##K0##C(##H-r*   c                    VP                  R 4       VP                  R\        P                  ,          4       VP                  \        P                   R24       VP                  R4       VP                  RVP                  ,          4       VP                  R\        P
                  ,          4       VP                  R\        P                  ,          4       VP                  R\        P                  ,          4       VP                  R\        P                  ,          4       VP                  R\        P                  ,          4       VP                  R4       VP                  R4       VP                  R4       R# )	r*  z4static CYTHON_SMALL_CODE int %s_clear(PyObject *m) {z2 *clear_module_state = __Pyx_PyModule_GetState(m);z"if (!clear_module_state) return 0;ra  "#if CYTHON_PEP489_MULTI_PHASE_INITz__Pyx_State_RemoveModule(NULL);r&  N
r8  r   r  r  r  r   r!  r  r"  r#  r  s   &&&r(   r  &ModuleNode.generate_module_state_clear  s%   

01

IFL_L__`

f2233efg

78

6!!" 	#

6!!" 	#

6''( 	)

6 	 

6 	 

6  ! 	"

78 	

45

8r*   c                v   VP                  R 4       VP                  R\        P                  ,          4       VP                  \        P                   R24       VP                  R4       VP                  RVP                   R24       VP                  R\        P
                   R24       VP                  R\        P                   R24       VP                  R\        P                   R24       VP                  R\        P                   R24       VP                  R\        P                   R24       R# )r*  zSstatic CYTHON_SMALL_CODE int %s_traverse(PyObject *m, visitproc visit, void *arg) {z5 *traverse_module_state = __Pyx_PyModule_GetState(m);z%if (!traverse_module_state) return 0;z Py_VISIT(traverse_module_state->r	  z)__Pyx_VISIT_CONST(traverse_module_state->Nr3  r  s   &&&r(   r  )ModuleNode.generate_module_state_traverse  s   

01

hkqk~k~~

f2233hij

:;

5c6K6K5LBOP

5f6K6K5LBOP

5f6Q6Q5RRTUV

>v?Q?Q>RRTUV

>v?Q?Q>RRTUV

>v?S?S>TTVWXr*   c                    V P                  V P                  V P                  V4      pV P                  W44       VP	                  V P                  4       VP                  R 4       VP                  \        P                  ! RR4      4       \        RVP                   24      pRV P                  RV4      ,          pVP                  RV,          4       V P                  P                  '       dK   VP                  R4       VP                  RV P                  RV4      ,          4       VP                  R	4       V P                  VP                  4      pV'       d;   VP                  R4       VP                  R
V,          4       VP                  R	4       VP                  V4       VP                  R4       VP                  R4       VP                  R\        P                  ,          4       VP                  R4       \        P                  ! RR4      p	VP                  V	4       VP                  R 4       VP                  RV P!                  4       : R\        P"                  : R24       VP                  R	4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R	4       VP                  \        P$                   R\        P&                   R24       VP)                  4       p
VP*                  P,                  R,          pVP*                  P,                  R,          pV'       g	   V'       dI   V'       d   VP/                  4        VP*                  P1                  \        P2                  ! RR4      4       VP5                  4        VP                  R4       VP                  R\        P6                  ,          4       VP                  R\        P6                  : R\        P"                  : R24       VP                  R VP                  P9                  4       ^R\ ,          4       VP                  R!4       VP                  R4       VP                  R"4       VP                  R\        P6                  : R#\        P6                  : R$24       VP                  R	4       VP                  R%4       V P;                  W44       V'       g	   V'       d!   V
P=                  4        VP?                  4        \        P                  ! R&R4      pVP                  V4       VPA                  V4       VP                  R'4       VP1                  \        P                  ! R(R4      4       VPC                  V P                  R)4       VPE                  \        PF                  4      pVP                  V: R*VPI                  WP                  4      : 24       VPE                  \        PJ                  4      pVP                  V: R+VPI                  WP                  4      : 24       VPE                  \        PL                  4      pVP                  V: R,VPI                  VV P                  4      : 24       VP                  R-4       VP,                  R.,          '       d   VPC                  V P                  R/4       VP                  R04       VPC                  V P                  R1\        P&                   R24       VP                  R24       VPC                  V P                  R34       VP                  RV PO                  4       ,          4       VPC                  V P                  R4VP6                  : R5VPQ                  \        R64      4      : R5VPQ                  \        R74      4      : R24       VP                  R4       V PS                  W44       \T        PV                  '       d@   VP                  R84       VPC                  V P                  R9\        P&                   R24       VP                  R:4       VPC                  V P                  R;\        P&                   R24       VPC                  V P                  R<\        P&                   R24       VP                  R=4       V! R>4      ;_uu_ 4       pV PY                  VV4       R?R?R?4       V! R@4      ;_uu_ 4       pV P[                  VV4       R?R?R?4       V! RA4      ;_uu_ 4       pV P]                  VV4       R?R?R?4       VP_                  V4       V! RB4      ;_uu_ 4       pV Pa                  VV4       R?R?R?4       V! RC4      ;_uu_ 4       pV F  pV Pc                  VVV4       K  	  R?R?R?4       V! RD4      ;_uu_ 4       pV F  pV Pe                  VVV4       K  	  R?R?R?4       V! RE4      ;_uu_ 4       pV F'  pV Pg                  V4       V Pi                  VVV4       K)  	  R?R?R?4       VPk                  V4       VP                  RF4       VPm                  R?4       V'       g	   V'       dK   VPn                  Pp                  '       g   Q hVPs                  W`P                  4       RGVPn                  n:        VPm                  R?4       V Pv                  Py                  V4       VPm                  R?4       V'       g	   V'       d]   RHVPn                  n:        VPn                  Pp                  '       g   Q hVP{                  RIV P                  RJ7       VP}                  4        VP                  4        VP                  RK4       V P                  W44       VP                  4        \T        P                  '       db   VP*                  P1                  \        P2                  ! RLR4      4       VP                  RMVP                  V P                  4      ,          4       VP                  VP                  4       VP                  VP                  4       VPn                  P                  4        F  w  ppVP                  VV4       K  	  V'       g	   V'       d,   VP                  4        VP                  V P                  4       VP                  RVP6                  ,          4       VP                  RVPE                  VP                  4       RN24       VP                  \        ROVP                  ,          4      4       VP*                  P1                  \        P                  4       VP                  R4       VP                  RP4       VP                  VP6                  \        RHRGRQ7       VP                  R"4       VP                  VP6                  \        RHRR7       VP                  RS4       VP                  RT4       VP                  RU4       VP                  RV\        P                  ,          4       VP                  RW4       VP                  R4       VP                  R	4       VP                  RX4       VP                  RYVP                  P9                  4       ^R\ ,          4       VP                  R4       VP                  VP                  4       VP                  4        VP                  R4       VP                  RZVP6                  ,          4       VP                  R"4       VP                  R[VP6                  ,          4       VP                  R	4       VP                  R4       V
P                  VPn                  4       VP                  4        R?#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELp; i  + '       g   i     ELO; i  + '       g   i     EL.; i  + '       g   i     EL; i)]rD   PyModInitFuncTyper  PyInit_z__Pyx_PyMODINIT_FUNC %s(void)r"  z%s CYTHON_SMALL_CODE; /*proto*/zc#if !defined(CYTHON_NO_PYINIT_EXPORT) && (defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS))z;__Pyx_PyMODINIT_FUNC PyInit___init__(void) { return %s(); }r&  zHvoid %s(void) {} /* workaround for https://bugs.python.org/issue39432 */r2  r  zreturn PyModuleDef_Init(&%s);r'  ModuleCreationPEP489zstatic CYTHON_SMALL_CODE int z(PyObject *rw   zint stringtab_initialized = 0;r*  zint pystate_addmodule_run = 0;rG  z = NULL;profile	linetraceProfilez	Profile.cr5  zif (z == z) return 0;zrPyErr_SetString(PyExc_RuntimeError, "Module '%s' has already been imported. Re-initialisation is not supported.");r  rr  z) return __Pyx_NewRef(r	  z /*--- Module creation code ---*/ImportRefnannyAPIz__Pyx_init_runtime_version();CheckBinaryVersionzs__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API)z = PyTuple_New(0); z% = PyBytes_FromStringAndSize("", 0); z' = PyUnicode_FromStringAndSize("", 0); z)/*--- Library function declarations ---*/
np_pythranz_import_array()z4/*--- Initialize various global constants etc. ---*/z__Pyx_InitConstants(zstringtab_initialized = 1;z__Pyx_InitGlobals()zPyObject_SetAttr(r#  r   __main__z/*--- Builtin init code ---*/z__Pyx_InitCachedBuiltins(z/*--- Constants init code ---*/z__Pyx_InitCachedConstants(z__Pyx_CreateCodeObjects(z*/*--- Global type/function init code ---*/zGlobal init codeNzVariable export codezFunction export codezType init codezType import codezVariable import codezFunction import codez/*--- Execution code ---*/TFPy_None)rN   z/*--- Wrapped vars code ---*/RegisterModuleCleanupzif (__Pyx_RegisterCleanup()) %sz && stringtab_initialized) {zinit %sr  r  r  r  zif (pystate_addmodule_run) {zPyObject *tp, *value, *tb;zPyErr_Fetch(&tp, &value, &tb);zPyState_RemoveModule(&%s);zPyErr_Restore(tp, value, tb);z} else if (!PyErr_Occurred()) {z.PyErr_SetString(PyExc_ImportError, "init %s");zreturn (%s != NULL) ? 0 : -1;z
return %s;r  )UrR   rN   r/   generate_pymoduledef_structr   r8  r  r
   r  r   r   rD  
is_packagewrong_punycode_module_namer   r/  module_init_func_cnamepymodinit_module_argr  r  rc  r   r@   use_fast_gil_utility_coder   r   put_declare_refcount_contextr  rE  generate_module_creation_codeput_trace_declarationsput_trace_frame_initput_setup_refcount_contextput_error_if_neg name_in_main_c_code_module_stater  error_goto_if_nullr"  r#  r  intern_identifiergenerate_module_import_setupr   cache_builtinsgenerate_global_init_codegenerate_c_variable_export_codegenerate_c_function_export_coderp   generate_type_init_code$generate_type_import_code_for_module*generate_c_variable_import_code_for_modulerA  *generate_c_function_import_code_for_modulerl   r  	funcstate	gil_ownedput_trace_start	can_tracer   generate_execution_codeput_trace_returnput_trace_exitgenerate_wrapped_entries_codegenerate_cleanup_coder  put_gotoreturn_labelr  r  all_managed_tempsput_xdecrefput_trace_exception_propagatingput_trace_unwindr  r  re  r   traceback_utility_coder  r	   r  put_finish_refcount_contextput_temp_declarationsr   )rQ   r{  r  rA   rk   subfunctionmodinit_func_nameheader3rG  mod_create_functempdecl_coder;  r<  refnanny_import_coder  r"  r#  r   r  r_  r   s   &&&&&                r(   r  $ModuleNode.generate_module_init_func  s@   //$**dK((3tzz*

2;++,?ATUV)GCOO3D*EF1D4L4LXWZ4[[

4w>?::   JJ|}JJT((379 :JJx  &*%D%DS__%U"%JJ|}JJad~~JJx 

7 	

78

3

2V5M5MMN

3%**+ACVW?+

2

'')'') 	* 	

8 	

3

34

01

34

8

f2232f6S6S5TT\]^,,.""--i8$$//<	i..0--k.E.EiQ\.]^))+

78 	

;!4!445

''
 	 	

 g??6682>? 	@ 	

< 

3

7


 	 	

8

56**35i002%%'*//0CEXY/0''(9:

23[--.BDWXYdhh )K 	
 ;;F<N<NO

00hhGI 	J;;F<N<NO

00hhGI 	J==f>R>RS

422=$((KM 	N 	

>?>>,''!!$((,=>

IJdhh*>v?\?\>]]^(_`

/0dhh(=>

;!?!?!AABdhh""=#<=""=#<=)? 	@ 	

3 	))#4!!!JJ67!!+F,I,I+J!LN 	

45HH()F)F(GqI	K 	HH&v'D'D&EQG	I 	

?@+,,
**3
; - /00J00jA 1 /00J00jA 1 	 006)**j((j9 + +,,
*99&#zR + - /00J*??ZX + 1 /00J*++F3??ZX + 1
 	 006

/0di>>+++++  !2HH='+DNN$d		))$/di',DNN$>>+++++!!)!:!



23**35

(((--''(?ATUWJJ84??488;TTUd''(t''(>>;;=KE4UD) > i002!!$((+

;!1!112

4889N9NOPPmn	p 	}Y9K9K-KLM))%*F*FG 	

3

12c..eaef

7 	((.F 	

12

/0

34

/&2J2JJK

23

3

8

45

C%%99;AbAB 	C

3t(()((*

78

2S5E5EEF

7

<#"2"223

8

3++DNN;_ -,, 100 100
 +** -,, 100 100s^   $~4:60!A@A@.A@,4		-	0A@	@A@	@A@)	@,A@=	c                N   aaaa SP                  4       o ! VVVV3R lR4      pV# )aY  
Return a context manager that allows deviating the module init code generation
into a separate function and instead inserts a call to it.

Can be reused sequentially to create multiple functions.
The functions get inserted at the point where the context manager was created.
The call gets inserted where the context manager is used (on entry).
c                   L   <a  ] tR tRt o R tR tVVV3R ltVV3R ltRtV t	R# );ModuleNode.mod_init_subfunction.<locals>.ModInitSubfunctioni  c                    R P                  VP                  4       P                  4       4      p\        P                  ! RV4      '       g   Q hRV,          V n        Wn        RV n        RV n        R# )rt  z^[a-z0-9_]+$z__Pyx_modinit_%sN)	r  lowerr6  r   match
cfunc_namedescriptionrs  	call_code)rQ   	code_typer_  s   && r(   rS   DModuleNode.mod_init_subfunction.<locals>.ModInitSubfunction.__init__  sX    !2!8!8!:;xx6666"4u"<#, %)"!%r*   c                0    VP                  4       V n        R # r#   )rc  r~  rj   s   &&r(   ri   IModuleNode.mod_init_subfunction.<locals>.ModInitSubfunction.set_call_code  s    !%!5!5!7r*   c           	       < V P                   f   SP                  4       V n         SpVP                  RV P                   R\        P
                   R\        P                   R2SRR7       VP                  R\        P                   R24       VP                  4       V n        VP                  \        V P                  4      4       VP                  R	V P                  ,          4       V# )
Nr  rv   rG  rw   T)refnannyzCYTHON_UNUSED_VAR(r	  z/*--- %s ---*/)r~  rc  r  r|  r   r  r  r8  rs  rO  r   r}  )rQ   rk   function_code	orig_coder/   s   & r(   	__enter__EModuleNode.mod_init_subfunction.<locals>.ModInitSubfunction.__enter__"  s    >>)%.%>%>%@DN$$$4??+1V-I-I,J"VMjMjLkklmD % * 

/0M0M/NbQR%)%9%9%;"//doo0NO

+d.>.>>?r*   c                t  < Ve   R ;V n         V n        R # SpVP                  4        VP                  R4       V P                   P	                  VP
                  4       R V n         VP                  VP                  4      pV'       dq   VP                  VP                  4       VP
                  P                  4        F  w  rgVP                  Wg4       K  	  VP                  4        VP                  R4       VP                  R4       VP                  4        V'       dW   V P                  P                  V P                  P                  V P                  : R\        P                  : R2S	4      4       M:V P                  P                  RV P                   R\        P                   R24       R V n        R # )Nr  r  r'  rv   rw   z(void)r	  )rs  r~  rm  r8  rn  r]  r  r  r  rh  ri  r   error_goto_if_negr|  r   r  )
rQ   exc_type	exc_valueexc_tbrk   needs_error_handlingr_  r   r  rN   s
   &&&&    r(   __exit__DModuleNode.mod_init_subfunction.<locals>.ModInitSubfunction.__exit__0  sU   ':>>D&$002

;'""88H%)"'+t7G7G'H$'NN4#3#34'+~~'G'G'I((5 (J446JJ|,

3%%''NN((88 OOV-J-J:LMPRS NN((  163P3P2QQSTV!%r*   )r~  r|  r}  rs  N)
r   r   r   r   rS   ri   r  r  r   r   )r]   r  r  rN   r/   s   @r(   ModInitSubfunctionrx    s     &8& &r*   r  )rc  )rQ   rN   r/   r  r  r  s   &fff @r(   rR   ModuleNode.mod_init_subfunction  s&     "1138	& 8	&t "!r*   c                   VP                   R ,          pVR8X  d   V P                  ^ ,          P                  pV'       Ed   VP                  R4       VP                  RVP                  : RVP                  \        \        V4      4      4      : RVP                  V P                  4      : R24       VP                  R4       VP                  '       Ed>   VP                  R4       VP                  P                  \        R4      pVP                  V: R	VP                  \        \        \        P                  P                  V4      4      4      4      : R
VP!                  W@P                  4      : 24       VP#                  V\        4       VP                  RVP                  : RV: RVP                  V P                  4      : R24       VP%                  V\        4       VP                  P'                  V4       VP                  R4       MVP                  '       d   VP                  R4       VP(                  P+                  \,        P.                  ! RR4      4       VP                  VP1                  RVP                  \        V P2                  4      4      ,          V P                  4      4       VP                  R4       V P2                  pVP5                  R4      '       d   \        VR\7        R4      )  4      pVP9                  4       pVP                  R4       VP                  RVP!                  RV P                  4      ,          4       VP                  RV,          4       VP                  VP1                  RV: RVP                  : R2V P                  4      4       VP                  R4       VP                  R4       R# )set_initial_path
SOURCEFILEz&if (!CYTHON_PEP489_MULTI_PHASE_INIT) {if (PyObject_SetAttrString(z, "__file__", ) < 0) rZ  r'  Tz = Py_BuildValue("[O]", ); z, "__path__", SetPackagePathFromImportLibry   z%__Pyx_SetPackagePathFromImportLib(%s)z	.__init__Nr  z0PyObject *modules = PyImport_GetModuleDict(); %sr  z)if (!PyDict_GetItemString(modules, %s)) {zPyDict_SetItemString(modules, r#  rw   )r@   rN   r  r8  r  get_py_string_constr   r   r  rF  r]  allocate_tempr	   r  r%   r  rR  
put_gotrefr  release_tempr   r   r
   r  r  r   endswithr!  rE  )rQ   rA   rk   module_pathtempfq_module_namefq_module_name_cstrings   &&&    r(   rT  'ModuleNode.generate_module_import_setupR  s   nn%78,&((1+..K;JJ?@JJ  ((!/+">?A)	+ ,
 JJsO~~~

CD~~33NDI

,,%oGGOOK8': ;< ++D((;= > n5

(($0IKL %%dN;++D1

3^^^ JJ?@--k.>.>-/?/A BJJt--7,,%d&;&;<>? 	 
 JJsO .."";//*>:LC<L;L+MNN!/!C!C!E

3

E**9dhh?@ 	A

>AWWX

4))"C$4$4+67;xxA 	B

3

3r*   c                F   \         P                  '       g   R # VP                  R\        P                  ,          4       VP                  V4       VP                  \        P                   R\        P                   R24       VP                  R4       VP                  R\        P                   R24       VP                  R4       VP                  \        P                   R24       \         P                  ^8  Ed   VP                  R	4       \        VP                  4      pVP                  4        V F  pVP                  R
8w  g   K  VP                  P                  '       dk   VP                  '       dY   VP                   '       d   VP"                  pMVP%                  VP"                  4      pVP'                  WTP                  RRR7       VP                  P)                  V4      '       g   K  VP                  P+                  W$4       K  	  VP                  R\        P                   R24       \         P                  ^8  ds   VP                  R4       \-        VP.                  \0        P2                  ! R4      R7       F2  pVP5                  VP6                  4      pVP'                  WvRRR7       K4  	  \         P8                  '       dR   VP                  R4       VP:                   F0  pVP'                  VP"                  \<        P>                  RRR7       K2  	  VP                  R4       VPA                  VP5                  \        PB                  4       \<        P>                  RRR7       VPD                   EF  pVP                  pVPF                  '       g   VPH                  '       d   K6  VPJ                  PL                  PO                  R^ 4      '       g   Kd  VPJ                  p	VP5                  V	PQ                  \        PR                  4      4      p
VP5                  V	PQ                  \        PT                  4      4      pVP                  R4       VP                  RV,          4       VP                  RV
: RV: R24       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R 4       VP                  R4       VP                  R!4       VP                  R"4       VP                  R4       VP                  R#4       VP                  R4       EK  	  \         PV                  e(   VPA                  \        PX                  \>        RRR$7       \        PZ                  \        P\                  3 F-  pVP5                  V4      pVPA                  V\>        RRR$7       K/  	  VPA                  VP5                  VP^                  4      \>        RRR$7       R # )%Nz.static void %s(CYTHON_UNUSED PyObject *self) {rG  rZ  r*  zif (!__Pyx_State_FindModule(&z
)) return;r&  z! = __Pyx_PyModule_GetState(self);z/*--- Global cleanup code ---*/r<  TF)r  r  z__Pyx_CleanupGlobals(r	  z$/*--- Type import cleanup code ---*/r  rq  z /*--- Builtin cleanup code ---*/z/*--- Intern cleanup code ---*/r  r  zwhile (%s > 0) {zPyObject* o = (PyObject*)r  r  r  r  r  rr  r  r  r  r  r'  rD  )0r   re  r8  r   cleanup_cnamer   r  r  r/  r	  r*  r-  r  r   r  r@  r  r_  r  r%  r!  r$  r   types_importedrM  rN  rQ  r  rU  cached_builtinsr   r	   r  r  r   r  r)  r/   r@   r*  r  r  r  r  r  r!  r   r  )rQ   rA   rk   rev_entriesr   entry_cnamer  r  cclass_typer/   r  r  r_  s   &&&          r(   r  'ModuleNode.generate_module_cleanup_func  s   ,,,

C''( 	)s#

f2232f6S6S5TTUVW 	

01

263K3K2LJWX

8

f3344UVW((A-JJ89s/K!$##x/zz---%*** +++*/++K*.*C*CEKK*PK..'04"' / ) zz<<SAA

@@M % 	

*6+H+H*ILM((A-JJ=>"3#5#58;N;N;_` $ E EhF\F\ ]&&!(, ' ! a !!!JJ9:,,&&KK!:!:(, ' ! -
 	

45!F!FvGYGY!Z [(7726$) 	 	+ ((E**K&&&+*?*?*?  ++//
A>>#)) $ E E))&*>*>?!A!%!F!F))&*?*?@"B

56

->?

!>3 4

;<

67

/0

7#

YZ

56

8$

67

+,

8$

3

8$7 )R )!!&"8"8.(-4 " I1163H3HIE99%@E!!%uZ^!_ J 	11#2G2GH%T 	 	Cr*   c                P   V P                  4       p\        P                  R 8X  d   RpM\        P                  p\        P                  ! RRRVP
                  RVR\        P                  RVR\        \        P                  4      /R	7      pVP                  P                  V4       R
# )mainwmainMainFunctionzEmbed.cr   r  r  wmain_methodembed_modulesr  N)
r  r   r  r   r   r   tupler  r   r   )rQ   rA   rk   r  r  r  s   &&&   r(   r  ModuleNode.generate_main_method  s    779==F"EMME(44	!3??$n!7=="E#U7+@+@%ACD 	))+6r*   c                    VP                  4       '       d   R V,           pM7RVP                  R4      P                  RR4      P                  R4      ,           pV: V: 2# )rt  U_punycode   -   _r  isasciiencoderf  decode)rQ   rg  r~   s   &&&r(   rd  ModuleNode.punycode_module_name  sL    <<>>:D$++j199$ELLWUUD&&r*   c                    VP                  4       '       d   R # RRV,           P                  R4      P                  RR4      P                  R4      ,           # )NPyInitUrt  r  r  r  r  r  )rQ   r~   s   &&r(   rG  %ModuleNode.wrong_punycode_module_name  sC    <<>>CH,,Z8@@tLSST[\\\r*   c                8    V P                  WP                  4      # r#   )rd  r   )rQ   rg  rA   s   &&&r(   rD  ModuleNode.mod_init_func_cname  s    ((AAr*   c                Z    V P                   pV P                  \        P                  V4      # r#   )r/   rD  r   pymodule_exec_func_cname)rQ   rA   s   & r(   rH  !ModuleNode.module_init_func_cname!  s$    jj''(G(GMMr*   c                
   VP                   '       d$   R VP                  VP                   4      ,          pMRp\        P                  '       d   R\        P
                  ,          pMRpVP                  R4       VP                  R4       V P                  4       pVP                  R\        P                  ,          4       VP                  RV,          4       VP                  R\        P                  ,          4       VP                  R	\        P                  ,          4       VP                  R
V,          4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       RRRRRR/P                  VP                  R,          4      pVP                  RV,          4       VP                  R4       VP                  R4       VP                  R4       VP                  P                  4       '       g#   VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R\        P                  ,          4       VP                  R4       VP                  R\        P                  ,          4       VP                  R4       VP                  R 4       VP                  R!4       VP                  R"VP                  P                  4       ,          4       VP                  R#V,          4       VP                  R$4       VP                  R%\        P                    R&24       VP                  R4       VP                  R'4       VP                  R4       VP                  R(VP"                  ,          4       VP                  R4       VP                  R)\        P                  ,          4       VP                  R4       VP                  R*4       VP                  R4       VP                  R$4       VP                  R+\        P$                  ,          4       VP                  R,\        P$                  ,          4       VP                  R-V,          4       VP                  R4       VP                  R.4       VP                  R/4       VP                  R-V,          4       VP                  R4       VP                  R4       VP                  R4       VP                  R04       VP                  R4       R1# )2%sr  z(freefunc)%sNULLrD   r2  z@static PyObject* %s(PyObject *spec, PyModuleDef *def); /*proto*/z*static int %s(PyObject* module); /*proto*/z static PyModuleDef_Slot %s[] = {z{Py_mod_create, (void*)%s},z{Py_mod_exec, (void*)%s},-#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADINGz-{Py_mod_gil, __Pyx_FREETHREADING_COMPATIBLE},r&  z;#if PY_VERSION_HEX >= 0x030C0000 && CYTHON_USE_MODULE_STATEno*Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED
shared_gil&Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTEDown_gil$Py_MOD_PER_INTERPRETER_GIL_SUPPORTEDsubinterpreters_compatiblez#{Py_mod_multiple_interpreters, %s},z	{0, NULL}r  z*#else /* CYTHON_PEP489_MULTI_PHASE_INIT */zT#error "Unicode module names are only supported with multi-phase init as per PEP489"r+  r,  zstruct PyModuleDef %s =rr  zstatic struct PyModuleDef %s =r  z  PyModuleDef_HEAD_INIT,z  %s,z  %s, /* m_doc */r*  z	  sizeof(z), /* m_size */z9  (CYTHON_PEP489_MULTI_PHASE_INIT) ? 0 : -1, /* m_size */z  %s /* m_methods */,z  %s, /* m_slots */z  NULL, /* m_reload */z  %s_traverse, /* m_traverse */z  %s_clear, /* m_clear */z  %s /* m_free */z  NULL, /* m_traverse */z  NULL, /* m_clear */r-  N)r   get_string_constr   re  r   r  r8  rH  pymodule_create_func_cnamepymoduledef_slots_cnamer*  r@   r   r  r/  rE  r  r  r  )rQ   rA   rk   r   cleanup_funcexec_func_cnamesubinterp_options   &&&    r(   rE  &ModuleNode.generate_pymoduledef_struct%  s   777..sww77CC((()F,@,@@L!L

2

78557

U445 	6

?/QR

58V8VVW

063T3TTU

.@A

BC

BC

8

PQ>B=
 #cnn9:
;	 	
 	

8;KKL

8

;

4&&((JJCDJJ ) *

8

2

'(

=!

,v/G/GGH

7

3f6N6NNO

8

3

-.

7S__@@BBC

&,-

01

Yv;;<OLM

7

NO

8

*S-C-CCD

78

(6+I+IIJ

7

+,

8

01

4v7J7JJK

.1D1DDE

&56

7

-.

*+

&56

8

4

'(

01

8r*   c           
     X	   VP                   '       d$   R VP                  VP                   4      ,          pMRpVP                  P                  \        RR7      pVP                  R4       VP                  V: R\        P                  : R24       VP                  V\        RR7       VP                  R4       VP                  V: R	\        P                  : R
VP                  W@P                  4      : 24       VP                  R4       VP                  R4       VP                  R4       VP                  RV: R\        P                  : R24       VP                  V: RV: RVP                  P                  4       : R24       VP                  VP                  RV P                  4      4       VP                  R4       VP                  R4       VP                  R4       VP                  VP                   RV R24       VP                  R4       VP                  P!                  V4       VP                  R4       VP"                  R,          '       d   RMRpVP                  RVP                   RV R24       VP                  R4       VP                  \        P$                   R\        P&                   R24       VP                  RV,          4       VP)                  VP*                  4      pVP                  V: RVP                  : R
VP                  W`P                  4      : 24       VP                  V\        RR7       VP)                  \        P,                  4      pVP                  V: RVP                  WpP                  4      : 24       VP)                  \        P.                  4      pVP                  V: R VP                  WP                  4      : 24       VP                  R!VP                  : R"V: R#VP1                  V P                  4      : 24       \2        P4                  ec   VP                  \        P6                  : R%\2        P4                  : R&VP                  \        P6                  V P                  4      : 24       R$# R$# )'r  r  F
manage_refr2  r|  rZ  r  rr  z = PyModule_Create(&r  r&  r*  r  z.int add_module_result = __Pyx_State_AddModule(z, &r	  z! = 0; /* transfer ownership from r
  z pseudovariable */add_module_resultzpystate_addmodule_run = 1;r'  r  r  r  r  zPyUnstable_Module_SetGIL(r#  zCYTHON_UNUSED_VAR(%s);z = PyModule_GetDict(z; = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); z2 = __Pyx_PyImport_AddModuleRef("cython_runtime"); r  z, "__builtins__", r  Nz  = __Pyx_PyImport_AddModuleRef("z"); )r   r  r]  r  r	   r8  r   rI  
put_increfr/  rR  rN   r   rE  r  r  r  r@   r  r  rQ  r  r   r!  r  r   r  r  )	rQ   rA   rk   r   module_temp
gil_option
dict_cnamer   runtime_cnames	   &&&      r(   rL  (ModuleNode.generate_module_creation_codep  s    777..sww77CC nn22>e2T

78

'') 	* 	^5A

7

((''XX>@	A
 	

8

01

3

113 	4

coo&I&I&K
 	 	

4))*=txxHI

/0

3

7

c&&'s;-q9:

8##K0

BC(BCC ,, 	 	

.s/?/?.@:,bQR

8

f334C8V8V7WWXYZ

+k9:::3;P;PQ


C,,''
HH=?	@ 	
N%@>>v?T?TU

''AC	D ==f>Y>YZ

''xx@B	C 	

  )+	,
 )JJ**&&++F,B,BDHHMOP *r*   c                (   VP                    F  pVP                  R 8w  g   K  VP                  '       d   VP                  P	                  W24       VP                  P                  V4      '       g   Kf  VP                  P                  W#4       K  	  R# r<  N)r*  r  r@  r   global_init_coder  r  )rQ   rA   rk   r   s   &&& r(   rV  $ModuleNode.generate_global_init_code  sb     __E8+:::JJ//<::99#>>JJ==dJ %r*   c                   \        VP                  P                  4       4       EFN  w  r4VP                  '       g   K  VP                  '       d   K.  VP
                  VJ g   K@  VP                  P                  V4      '       g(   \        VP                  R VP                  ,          4       VP                  R4       VP                  RVP                  P                  : RVP                  : R24       VP                  VP                  RVP                  4      4       VP                  RVP                  : RV: RVP                  VP                  4      : R	24       VP                  R
4       EKQ  	  R# )z$Cannot convert '%s' to Python objectr  zPyObject* wrapped = rv   r	  wrappedr  rz  z", wrapped) < 0) rZ  r'  N)r   r   r   r   r   r/   r   r  r   rN   r8  to_py_functionr_  rR  r  r  )rQ   rA   rk   r~   r   s   &&&  r(   rd  (ModuleNode.generate_wrapped_entries_code  s    !#++"3"3"56KD$$$!MMMs*zz;;C@@%))%Kejj%XY

3

JJ--KK! " 

4229eiiHI

((		245
 

3! 7r*   c                    V Uu. uFT  pVP                   '       g>   VP                  '       g,   \        P                  '       g   K?  VP                  R 8w  g   KR  VNKV  	  up# u upi )r<  )r  r  r   ru  r  )rQ   all_entriesr   s   && r(   _select_exported_entries#ModuleNode._select_exported_entries  sX    *
*eyyyE000W5M5M RWRbRbfnRn E{
 	
 
s   A"A"A"A"A"c                j   V P                  VP                  4      pV'       g   R# V Uu. uF4  pVP                  P                  4       VP                  VP
                  3NK6  	  ppVP                  P                  \        P                  ! RR4      4       \        W P                  VRR4       R# u upi )OGenerate code to create PyCFunction wrappers for exported C functions.
        NVoidPtrExportry   __Pyx_ExportVoidPtrzvoid *{name})r  r*  r   r  r~   r_  r   r   r
   r   r   rN   rQ   rA   rk   r   r   r   s   &&&   r(   rW  *ModuleNode.generate_c_variable_export_code  s     //@
 !
 ! ZZ..0%**ekkJ  	 

 	))##O5EF	H 	dHHg7Ln]
   :B0c                j   V P                  VP                  4      pV'       g   R# V Uu. uF4  pVP                  P                  4       VP                  VP
                  3NK6  	  ppVP                  P                  \        P                  ! RR4      4       \        W P                  VRR4       R# u upi )r  Nrx   ry   rz   r{   )r  r
  r   r  r~   r_  r   r   r
   r   r   rN   r  s   &&&   r(   rX  *ModuleNode.generate_c_function_export_code  s     //0A0AB
 !
 ! ZZ((*EJJD  	 

 	))##$46FG	I 	dHHg7MOef
r  c           
        \        V4      ;_uu_ 4       pVP                   F>  pVP                  '       g   K  V P                  W%P                  VP
                  W44       K@  	  R R R 4       R #   + '       g   i     R # ; ir#   )r  r   r  generate_type_import_coder   rN   )rQ   r  rA   rk   r  r   s   &&&&  r(   rZ  /ModuleNode.generate_type_import_code_for_module  sW     #4((,<//'''223

EIItf 0 )(((s   A-+A--A>	c                    VP                   R,           F;  pVP                  P                  '       g   K!  VP                  P                  4        K=  	  R# )z
If fused c(p)def functions are defined in an imported pxd, but not
used in this implementation file, we still have fused entries and
not specialized ones. This method replaces any fused entries with their
specialized ones.
r  N)r
  r   r  "get_all_specialized_function_types)rQ   pxd_envr   s   && r(   rA  !ModuleNode.specialize_fused_types  s<     **1--Ezz"""

==? .r*   c                    V Uu. uF5  pVP                   '       g   K  V'       d   VP                  '       g   K3  VNK7  	  up# u upi r#   )r  r@  )rQ   r  	used_onlyr   s   &&& r(   _select_imported_entries#ModuleNode._select_imported_entries  s?    *
*e## -6%** E{
 	
 
s   AAAAc           	        V P                  VP                  RR7      pV'       g   R# W!J pV Uu. uFf  pVP                  P                  4       VP                  V'       d   VP
                  M)VP                  \        P                  VP                  4      3NKh  	  ppVP                  P                  \        P                  ! RR4      4       \        W0P                  WqP                  R\        P                    2R4       R# u upi )QGenerate import code for all exported C functions in a cimported module.
        Fr  Nrw  ry   __Pyx_ImportVoidPtr_zvoid **{name})r   r*  r   r  r~   r_  r  r   rp  r   r   r
   r   r   rN   re  r   )rQ   r  rA   rk   r   is_module_scoper   r   s   &&&&    r(   r[  5ModuleNode.generate_c_variable_import_code_for_module"  s     //0B0Be/T- !

 ! ZZ..0ZZ+U[[v?S?SUZU_U_1`b ! 	 
 	))##O5EF	H 	((G%:%:>RSYScScRd<egv	x
s   0D ;Dc                   V P                  VP                  RR7      pV'       g   R# V Uu. uF4  pVP                  P                  4       VP                  VP
                  3NK6  	  ppVP                  P                  \        P                  ! RR4      4       \        W0P                  WaP                  R\        P                   2R4       R# u upi )r  Tr  Nr   ry   r   r   )r   r
  r   r  r~   r_  r   r   r
   r   r   rN   re  r   r   )rQ   r  rA   rk   r   r   r   s   &&&&   r(   r\  5ModuleNode.generate_c_function_import_code_for_module7  s     //0D0DPT/U
 !
 ! ZZ((*EJJD  	 

 	))##$46FG	I 	((G%:%:>STZTdTdSe<fh	A
s   :Cc           
        \        V4      ;_uu_ 4       pVP                   F  pVP                  R 8X  d<   VP                  '       g*   V P	                  WP
                  VP                  W#4       KO  V P                  WW#4       V P                  WB4       VP
                  P                  '       g   K  V P                  WB4       K  	  RRR4       R#   + '       g   i     R# ; ir  )r  r   r  utility_code_definitionr  r   rN   generate_base_type_import_code!generate_exttype_vtable_init_code
early_initgenerate_type_ready_code)rQ   rA   rk   r  r   s   &&&  r(   rY  "ModuleNode.generate_type_init_codeI  s     #4((,<,,##x/8U8U8U223

EIItf77D[::5Gzz,,,55eB - )(((s   2CA%C1CC!	c                2   VP                   P                  pV'       dy   VP                  VP                  8w  d\   VP                  '       gH   VP
                  '       g4   VP                  '       g    V P                  WV P                  W44       R # R # R # R # R # R # r#   )	r   r)  r   re  r  is_cython_builtin_typer  r  rN   )rQ   rA   r   rk   r  r)  s   &&&&& r(   r  )ModuleNode.generate_base_type_import_codeV  sv    JJ((	)//33E3EE***i.N.N.N666**3488T\ 7 /O* FIr*   c                v   W!P                   9   d   R # VP                  \        P                  9  d1   VP                  P                  \        P                  ! RR4      4       V P                  W$WSR7       VP                  '       d   VP                  P                  \        P                  ! RR4      4       VP                  VP                  : RVP                  : RVP                  VP                  4      : RVP                  VP                  V4      : 24       VP                   P                  V4       R # )Nrx  ry   )	error_pos	GetVTablez = (struct z*)__Pyx_GetVtable(r  )r  r~   r   ctypedef_builtins_mapr   r   r
   r   r  rH  r8  r9  rQ  r  rR  r   )rQ   rA   r   rN   rk   r  s   &&&&&&r(   r  $ModuleNode.generate_type_import_code]  s     %%%99D666--''6FGI&&t3C&S--''5EFHJJ""%%55d6H6HI''(:(:C@	B C
 	t$r*   c                t   VP                   '       d   VP                  MR VP                   2;rxVP                  p	VP                  p
V	R9   pV'       g   RV	 R2p	MV
\        P
                  9   dH   VP                  VP                  VP                  4       R\        P
                  V
,           R24       R# Rp	V
\        P                  9   d   \        P                  V
,          p
V\        P                  9   d   \        P                  V,          pV'       g   Vf   Q hVP                  V4      pVP                  W4      pVP                  pV'       g   VP                  V4      pVP                  V R\        P                   RV RV	 RVP                  P!                  4        R	2
4       R
\        P                   2pVP                  R4       VP                  RV RV RV R24       VP                  R4       V'       d   VP                  R4       MVP                  RV RV RV R24       VP                  R4       VP                  RV RV RV R24       VP                  R4       VP"                  '       d   VP"                  R9   d   VP"                  pMOVP$                  '       d   VP&                  '       d   RpM(\)        RVP"                   RV	 RVP                   24      hVP+                  RVP-                  4        R\        P                   R24       VP                  RV RV 24       R# )r@  ru  r|  rZ  N__Pyx_BUILTIN_MODULE_NAMEz = __Pyx_ImportType_rv   r#  r2  __PYX_GET_STRUCT_ALIGNMENT_z>#if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000zsizeof(z), z),z%#elif CYTHON_COMPILING_IN_LIMITED_APIz0, 0,rr  r&  r   zinvalid value for check_size 'z' when compiling r$  __Pyx_ImportType_CheckSize_rt  r	  z if (!z) )__builtin__builtins)r   warnignore)r  r>  r   r~   r   r  r8  r  r  renamed_py2_builtins_mapbasicsize_builtins_mapr  r  rQ  r   r   rE  
check_sizer  is_subclassedRuntimeErrorrp  r  )rQ   r   rk   r  r}  r  r~  sizeof_objstructr  r   	type_name
is_builtinr  r  alignment_funcr#  s   &&&&&&&         r(   r  $ModuleNode.generate_type_import_callr  s   ?C?P?P?Pt';';X_`d`t`t_uVvv&&II	 $??
k]!,K$444JJ,,T-?-?@ATE_E_`iEjDkklmo5KD999 99)D	D777#'#>#>y#I (((3J!11+J** AA-PM

o1&2B2B1C1hbR		(E(E(G'HK	

 7v7G7G6HI

ST

WYKs>*:!I;bIJ

:;
 JJwJJ3~.>a	{"MN

7

W-.c.1ACSBTTVWX

8 ???t2MMJ!!!T%7%7%7 J00AARS^R__`aeajaj`kln n.z/?/?/A.B!FDTDTCUUWXY

VM?"ZL9:r*   c                D    \         P                  P                  W4       R # r#   )r   CClassDefNoder  )rQ   r   rk   s   &&&r(   r  #ModuleNode.generate_type_ready_code  s    44UAr*   c                z    V P                   P                  R R4      pV P                  \        P                  V4      # rb  )r   rf  rd  r   r  )rQ   r   s   & r(   r  $ModuleNode.is_main_module_flag_cname  s5    0088dC(()>)>@PQQr*   c           
        VP                   pVP                  '       Eda   VP                  VP                  : R VP                  : R24       VP                  '       df   VP                  P                  '       dJ   VP                  VP                  : R\
        P                  : RVP                  P                  : R24       VP                  P                   Uu. uF  pVP                  '       g   K  VNK  	  ppV'       dz   V Fq  pVP                  ;'       g    VP                   pVP                  4       pVP                  VP                  : RVP                  : RV: VP                  : R24       Ks  	  R# R# R# u upi )r.  rZ  r$  z = *r|  N)r   r  r8  rH  r)  r   rB  r/   r
  r  vtable_typesignature_cast_stringr_  )rQ   r   rk   r   c_method_entries
meth_entryr1  casts   &&&     r(   r  ,ModuleNode.generate_exttype_vtable_init_code  s/    zzJJ&&%%'( ~~~$..">">">

))--4467 $(::#;#; %#;%## #;   %  "2J","8"8"K"KJOOK&<<>DJJ --&,, &11	34 #3    %s   F5F)r   r   r   r   r  )F)TT)NNF)|r   r   r   r   child_attrsr@   r   r   propertyr   r   r   r   r   r   r  r  r  r  rC  r5  r  r@  rA  r  r  r  r   r4  rJ  r  r_  r  staticmethodrl  r  r=  r?  r;  r  r  r9  r  r  r  r  r  r  r  r  r  rW  rX  rY  rZ  rT  rV  rc  rd  re  r  r  r  r  r  r  r  r  r#  r  r  r  r  rU  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  rR   rT  r  r  rd  rG  rD  rH  rE  rL  rV  rd  r  rW  rX  rZ  rA  r   r[  r\  rY  r  r  r  r  r  r  r   r   r   s   @r(   r   r      s     (KJI )JV#6	452`(DD+eN!fDP$\L*$@**X	/I6S. H H`aD.
	2&#KJ!N+I
%>G"aF!AF$.
%FR
*`X3.1;fM :)x$0 
y 
ya F!2b H U nL \ 26 p-N `G!R, \% N 6) VA &PEN@*,02@E N
A0.f.
YE NE"N9vlC\7 ']BNIVOPb	K &
^"g"g
@
x*A$C]%*<;zBR4 4r*   r   c                     \        \        V 4      !  w  rp\        V4      pR p\        V4       F  w  rVWd8X  d   RW&   K  TpK  	  WV3# )NrD   )zipr   r	  r
  )item_tuples
signaturesnamesr   last_sigir  s   &      r(   _deduplicate_inout_signaturesrA    sW      #F;$78Juj!JH!*- JM H	 . e##r*   c                8    V ^8  d   QhR\         P                  /# rW   rk   r   r-  )r\   s   "r(   r^   r^     s     ' 't'7'7 'r*   c                    \        V4      w  rp
\        P                   V'       d   R MR R2pVP                  RR7      pRP	                  V4      P                  R4      pRP	                  V	4      P                  R4      pV
 Uu. uF  pRV RV 2NK  	  pp\        VR	,           V,           R4      pV'       do   V P                  R
V RV P                  V4       R24       V P                  R4       V P                  V P                  V R2V4      4       V P                  R4       M&V P                  R
V RVP                  4        R24       V P                  R
V RV R\        V4      ^,            R24       V P                  VP                  RV R2R7       RRP	                  V4       RV R24       V P                  P                  \        P                  ! RR4      4       V P                  VP                  RV R2R7       RV R24       V P                  R V R!V R"24       V P                  R#V R$24       V P!                  VV RV RV R%V R&V R'2
4       V P                  R(V R)24       V P                  V R*V R+24       V P                  V R,V R-24       V P                  R.V R/V R!V R"24       V P                  R04       R1# u upi )2ry  exportrt  rD   )r~    zutf-8rv   z)&    zconst char * z#signature = __Pyx_PyBytes_AsString(r	  z#if !CYTHON_ASSUME_SAFE_MACROSr  r&  zsignature = rZ  zname = zsignature + zconst z
pointers[]z = {r#  z, (z) NULL};r  r  zconst *pointerr|  z	pointers;zconst char *zcurrent_signature = z
signature;zwhile (*z
pointer) {zname, *z	pointer, zcurrent_signature)z++zpointer;zname = strchr(zname, '\0') + 1;zsignature = strchr(zsignature, '\0') + 1;zif (*zsignature != '\0') r'  N)rA  r   pyrex_prefixr\   r  r  r   r8  r  rR  rE  r!  r   r   r
   r   rP  )rk   rN   inout_item_tuplesper_item_functargetpointer_decluse_pybytes	is_importr=  r>  inout_itemspyxpointer_cast	sig_bytesnames_bytes
item_cnamepointerssigs_and_names_bytess   &&&&&&&&          r(   _generate_import_export_coderY    s   %BCT%U"J{  !i(X!Fa
HC&&B&/L		*%,,W5I))E"))'2KCNO;Z!L>J<0;HO(U):[)H'R

]3%'J4KcKcdxKyJzz|}~

34

4**cU)+<cBC

8

]3%|4H4\4\4^3__`abJJse73%|C	NQ<N;OqQRJJ,%%VC5
+C%DEU499U]K^J__bcobppyz{%% 0/BD 	JJ,%%WSE+A%BC3se9UVJJcU"6se:FGJJ#k*+/6("SEYseCUV 	JJC5!"JJ#nSE):;<JJ#)#.DEFJJse/u4HZXYJJsO? Ps   Kc                8    V ^8  d   QhR\         P                  /# rC  rD  )r\   s   "r(   r^   r^     s       0 0 r*   c                   V P                  R4       V P                  P                  \        RR7      pV P                  P                  \        P                  ! RR4      4       V P                  V RV P                  WQ4       24       V P                  V\        4       \        WW#WTRRR7       V P                  V\        4       V P                  P                  V4       V P                  R	4       R
# )ziGenerate function/pointer export code.

'exports' is a list of (signature, name, exported_cname) tuples.
r  Tr  
GetApiDictry   z! = __Pyx_ApiExport_GetApiDict(); FrO  rP  r'  N)r8  r]  r  r	   r   r   r
   r   rR  r  rY  r  r  )rk   rN   r   export_funcrN  api_dicts   &&&&& r(   r   r     s    
 	JJsO~~++Nt+LH%%.>?AJJ*5""81
2	4 	OOHn- G(fjv{|(N3NN)JJsOr*   c                   V P                  R4       V P                  P                  \        RR7      pV P                  V RVP	                  4        RV P                  Wa4       24       V P                  V\        4       \        WW$WeRRR7       V P                  V\        4       V P                  P                  V4       V P                  R4       R# )	ziGenerate function/pointer import code.

'imports' is a list of (signature, name, imported_cname) tuples.
r  Tr   = PyImport_ImportModule(r  r]  r'  N)
r8  r]  r  r	   rE  rR  r  rY  r  r  )rk   rN   r   qualified_module_namer   rN  
module_refs   &&&&&& r(   r   r   )  s    
 	JJsO--n-NJJJ,/0E0Y0Y0[/\\_"":3
4	6 	OOJ/ G*hlx|}*n5NN
+JJsOr*   c                   @   a  ] tR tRt o RtR	R ltR tR tR tRt	V t
R# )
r  iA  z
Helper to generate module import while importing external types.
This is used to avoid excessive re-imports of external modules when multiple types are looked up.
Nc                    Wn         / V n        V'       d/   VP                  4        F  w  r4W@P                  R V,          &   K  	  . V n        R# )z"%s"N)rk   importedr   temps)rQ   rk   r{  r~   r_  s   &&&  r(   rS   ModuleImportGenerator.__init__F  s=    	/557/4ftm,  8
r*   c           	     d   WP                   9   d   V P                   V,          # V P                  pVP                  P                  \        R R7      pV P
                  P                  V4       VP                  V: RV: RV: RV: 24       VP                  V\        4       W@P                   V&   V# )Tr  ra  z); if (unlikely(!r	  )	rf  rk   r]  r  r	   rg  r   r8  r  )rQ   module_name_stringr}  rk   r  s   &&&  r(   r  %ModuleImportGenerator.imported_moduleN  s    .==!344yy~~++Nt+L

$

$dJ8 	9n-,0()r*   c                    V # r#   r  r   s   &r(   r  ModuleImportGenerator.__enter__[  s    r*   c                    V P                   pV P                   F4  pVP                  V\        4       VP                  P                  V4       K6  	  R # r#   )rk   rg  r  r	   r]  r  )rQ   excrk   r  s   &*  r(   r  ModuleImportGenerator.__exit__^  s;    yyJJD!!$7NN''- r*   )rk   rf  rg  r#   )r   r   r   r   r   rS   r  r  r  r   r   r   s   @r(   r  r  A  s#     . .r*   r  c                 0   V P                   ;'       d    V P                  pV P                   '       d   V P                  '       gH   V P                  '       Eg?   V'       g-   V P                  '       g   V P
                  R 8X  g
   V'       Ed	   V P
                  R 8X  d   \        P                  pRpM>V P
                  R8X  d   \        P                  pRpMV P
                  R8X  d   RpRpMRpRpV P                  pV P                  '       d   V'       g   RpRp\        V4      pVP                  V P                  VR7      pVP                  V P                  4      p	VP                  V: RV	: V: R24       VP                  P!                  V 4       R# R# R# )	r<  r  r  Nrg  rh  ri  rY  z; /*proto*/)r@  r  inline_func_in_pxdrA  r  r  r   r]  r   r   r^  r_  rL  rM  r8  r   rB  )
r   rA   rk   r]  from_cy_utilityrr  rj  r   r  rO  s
   &&&&      r(   rv  rv  e  sR   jjBBU%B%BOzzze...u7H7H7H%...%2B2Bh2NRaRax'"11M%K)"11MK*$MK$MKzz
$MKD>D&&KK[ ' 211%2F2FG	

 	 	//67 Sb 8Ir*   Refnannyr  zj
#if defined(__GNUC__)
#define __Pyx_PACKED __attribute__((__packed__))
#else
#define __Pyx_PACKED
#endif
utility_code_proto_before_types)rr  rs  proto_block)__lt____gt__)Tre  T)rw  __le__)Frg  F)rw  __ge__)TrD   N)ry  rz  )Trg  F)ry  rw  )Fre  T)ry  rx  )rx  rw  )rx  rz  )rx  ry  )rz  ry  )rz  rx  )rz  rw  )@cythondeclareobjectcollectionsr   r  rM  r  r  r   r,   typingr   r   r   rD   r   r   r   r   r   r   r   r   Errorsr   r   r   r   r	   r   Utilsr   r   r   r   r   r
   r   r   StringEncodingr   r   r    r!   r)   r$   r3   r7   rC   rj  rF   Node	BlockNoder   rA  rY  r   r   r  rv  r  r  r  r  r*   r(   <module>r     so    ff6VFPV#0 $   	  	 
             A A 8 o o > > Y Y #(
N
9, ,.* --* ,.* --*7<L  L ^T<4U__ T<4rx$ 'T00!. !.H7L $((5HI ( 0 ;= r*   