ó
    sñ:i;i  ã                   óN   • S SK r S SKrS SKrSSKJr  SSKJr   " S S\5      rSr	g)é    Né   )Úmodel©ÚVerificationErrorc                   óJ  • \ rS rSrSrSrS rS rS rS r	S/S jr
S	 rS0S
 jrS rS rS rS rS r\r\r\rS r\rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$  S1S  jr%S! r&\r'S2S" jr(S# r)S$ r*S% r+S& r,S3S' jr-S3S( jr.S) r/S* r0\r1S+ r2S, r3\r4S- r5S.r6g)4ÚVGenericEngineé   ÚgFc                 óN   • Xl         UR                  U l        / U l        0 U l        g ©N)ÚverifierÚffiÚexport_symbolsÚ_struct_pending_verification)Úselfr   s     ÚS/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/cffi/vengine_gen.pyÚ__init__ÚVGenericEngine.__init__   s"   € Ø ŒØ—<‘<ˆŒØ ˆÔØ,.ˆÕ)ó    c                 ó<   • UR                  SU R                  5        g )Nr   )Ú
setdefaultr   )r   Úkwdss     r   Úpatch_extension_kwdsÚ#VGenericEngine.patch_extension_kwds   s   € ð 	�‰Ð(¨$×*=Ñ*=Õ>r   c                 óè   • U Hl  nX-   nUc  [         R                  nU HL  n[        R                  R                  Xe5      n[        R                  R	                  U5      (       d  MH  Us  s  $    Mn     g r   )ÚsysÚpathÚosÚjoinÚisfile)r   Úmodule_namer   Úso_suffixesÚ	so_suffixÚbasenameÚdirnameÚfilenames           r   Úfind_moduleÚVGenericEngine.find_module   sV   € Û$ˆIØ"Ñ.ˆHØ‰|Ü—x‘x�Û�ÜŸ7™7Ÿ<™<¨Ó:�Ü—7‘7—>‘> (×+Ó+Ø#”Oó  ò	 %r   c                 ó   • g r   © )r   s    r   Úcollect_typesÚVGenericEngine.collect_types%   ó   € Ør   c                 ó@   • U R                   R                  US-   5        g )NÚ
)Ú_fÚwrite)r   Úwhats     r   Ú_prntÚVGenericEngine._prnt(   s   € Ø�‰�‰�d˜T‘kÕ"r   c                 ó>  • U R                   nU" [        5        U" U R                  R                  5        U R	                  S5        [
        R                  S:X  aD  [
        R                  S:¼  a  SnOSnU R                  R                  5       nU" SU< U< S35        g g )NÚdeclÚwin32©é   ÚPyInit_Úinitzvoid z(void) { }
)	r3   Úcffimod_headerr   ÚpreambleÚ	_generater   ÚplatformÚversion_infoÚget_module_name)r   ÚprntÚprefixÚmodnames       r   Úwrite_source_to_fÚ VGenericEngine.write_source_to_f+   s}   € Ø�z‰zˆáŒ^ÔáˆT�]‰]×#Ñ#Ô$ð 	�‰�vÔô
 �<‰<˜7Ó"Ü×Ñ 4Ó'Ø"‘à�Ø—m‘m×3Ñ3Ó5ˆGÚªF³GÐ<Õ=ð #r   c                 óp  ^ ^^• T R                   R                  n[        R                  R	                  [        R
                  T R                  R                  5      nUR                  X15      mT R                  TS5         " UUU 4S jS[        R                  5      mT" S5      nT R                  TSUS9  U$ )NÚloadingc                   óF   >• \ rS rSr Yr YR
                  r/ rU 4S jrSr	g)Ú/VGenericEngine.load_library.<locals>.FFILibraryéP   c                 ó   >• TR                   $ r   )Ú	_cffi_dir)r   Ú
FFILibrarys    €r   Ú__dir__Ú7VGenericEngine.load_library.<locals>.FFILibrary.__dir__T   s   ø€ Ø!×+Ñ+Ð+r   r*   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú_cffi_generic_moduler   Ú	_cffi_ffirM   rO   Ú__static_attributes__)rN   Úmoduler   s   €€€r   rN   rJ   P   s!   ø† Ù#)Ð ÙŸ™ˆIØˆI÷,ð ,r   rN   Ú Úloaded)Úlibrary)r   Ú_backendr   r   r   Úcurdirr   ÚmodulefilenameÚload_libraryÚ_loadÚtypesÚ
ModuleType)r   ÚflagsÚbackendr&   r[   rN   rX   s   `    @@r   r_   ÚVGenericEngine.load_libraryA   s�   ú€ à—(‘(×#Ñ#ˆä—7‘7—<‘<¤§	¡	¨4¯=©=×+GÑ+GÓHˆØ×%Ñ% hÓ6ˆð 	�
‰
�6˜9Ô%÷	,ñ 	,œ×)Ñ)ô 	,ñ ˜R“.ˆð 	�
‰
�6˜8¨Wˆ
Ñ5Øˆr   c                 óÄ   • U R                   R                  R                  R                  5        VVVs/ s H  u  nu  p#X4PM     nnnnUR	                  5         U$ s  snnnf r   )r   Ú_parserÚ_declarationsÚitemsÚsort)r   ÚkeyÚtpÚqualÚlsts        r   Ú_get_declarationsÚ VGenericEngine._get_declarations]   sY   € à $§¡× 0Ñ 0× >Ñ >× DÑ DÔ FõHÚ Fñ /˜c¡: B�‹yÙ Fð 	ò Hà�‰Œ
Øˆ
ùôHs   ³Ac                 ó$  • U R                  5        H7  u  p#UR                  SS5      u  pE [        U SU< SU< 35      n U" X55        M9     g ! [         a    [	        SU-  5      ef = f! [
         a  n[        R                  " Xr5        e S nAff = f)NÚ r   Ú_generate_gen_Ú_znot implemented in verify(): %r)ro   ÚsplitÚgetattrÚAttributeErrorr   Ú	Exceptionr   Úattach_exception_info)r   Ú	step_nameÚnamerl   ÚkindÚrealnameÚmethodÚes           r   r>   ÚVGenericEngine._generatec   s›   € Ø×.Ñ.Ö0‰HˆDØ!ŸZ™Z¨¨QÓ/‰NˆDð>Ü ¡ÃÚ@Ið(Kó L�ð
Ù�rÖ$ò 1øô
 "ó >Ü'Ø5¸Ñ<ó>ð >ð>ûô
 ó Ü×+Ò+¨AÔ4Øûðús#   «AÁ A)ÁA&Á)
BÁ3B
Â
Bc                 óî   • U R                  5        H8  u  pEUR                  SS5      u  pg[        U SU< SU< 35      n U" XWU40 UD6  M:     g ! [         a  n	[        R
                  " X”5        e S n	A	ff = f)Nrr   r   rt   Ú_gen_)ro   ru   rv   rx   r   ry   )
r   rX   rz   r   r{   rl   r|   r}   r~   r   s
             r   r`   ÚVGenericEngine._loadr   sq   € Ø×.Ñ.Ö0‰HˆDØ!ŸZ™Z¨¨QÓ/‰NˆDÜ™T³9ºdÐ#CÓDˆFðÙ�r VÑ4¨tÔ4ò	 1øô
 ó Ü×+Ò+¨AÔ4Øûðús   ¿
AÁ
A4ÁA/Á/A4c                 ó   • g r   r*   ©r   rl   r{   s      r   Ú_generate_nothingÚ VGenericEngine._generate_nothing|   r-   r   c                 ó   • g r   r*   ©r   rl   r{   rX   r   s        r   Ú_loaded_noopÚVGenericEngine._loaded_noop   r-   r   c           	      ó   • [        U[        R                  5      (       d   eUR                  (       a  U R	                  SX!5        g U R
                  n[        UR                  5      n/ n[        UR                  5       H=  u  pgSn[        U[        R                  5      (       a  SnUR                  SX†4-  5        M?     SU-  n	[        UR                  U5       VV
s/ s H  u  pzUR                  SU
-  U	5      PM     nnn
UR                  n[        U[        R                  5      (       a2  UR                  SUR                  SU	5      5        [        R                  nS	R!                  U5      =(       d    S
nSU-  nU R"                  R                  U5        UR$                  (       a  UR$                  S-   nOSnSU< U< SU< S3nSU-  n	U" UR                  Xù5      5        U" S5        [        UR                  [        R                  5      (       a  SnO.[        UR                  [        R&                  5      (       d  SnOSnU" SU< U< SS	R!                  U5      < S35        U" S5        U" 5         g s  sn
nf )NFrY   Ú*z%sx%dzargument of %sz %sr   z *rú, Úvoidú
_cffi_f_%srr   Ú(Ú)zresult of %sÚ{z*r = zreturn ú  ú);Ú})Ú
isinstancer   ÚFunctionPtrTypeÚellipsisÚ_generate_gen_constr3   ÚlenÚargsÚ	enumerateÚStructOrUnionÚappendÚzipÚ
get_c_nameÚresultÚinsertÚ	void_typer   r   ÚabiÚVoidType)r   rl   r{   rB   ÚnumargsÚargnamesÚiÚtypeÚindirectionÚcontextÚargÚarglistÚtpresultÚwrappernamer¥   ÚfuncdeclÚresult_codes                    r   Ú_generate_gen_function_declÚ*VGenericEngine._generate_gen_function_declŒ   sÿ  € Ü˜"œe×3Ñ3×4Ñ4Ð4Ð4Ø�;�;ð ×$Ñ$ U¨DÔ5ØØ�z‰zˆÜ�b—g‘g“,ˆØˆÜ  §¡Ö)‰GˆAØˆKÜ˜$¤× 3Ñ 3×4Ñ4Ø!�Ø�O‰O˜G {Ð&6Ñ6Ö7ñ	 *ð
 # TÑ)ˆä$'¨¯©°Ô$:ô<Ú$:‘y�tð —?‘? 5¨3¡;°Ö8Ù$:ð 	ñ <à—9‘9ˆÜ�h¤× 3Ñ 3×4Ñ4Ø�N‰N˜1˜h×1Ñ1°%¸ÓAÔBÜ—‘ˆHØ—)‘)˜GÓ$×.¨ˆØ" TÑ)ˆØ×Ñ×"Ñ" ;Ô/Ø�6�6Ø—&‘&˜3‘,‰CàˆCøÚ"%£{³GÐ<ˆØ  4Ñ'ˆÙˆX× Ñ  Ó3Ô4ÙˆSŒ	ä�b—i‘i¤×!4Ñ!4×5Ñ5Ø!‰KÜ˜BŸI™I¤u§~¡~×6Ñ6Ø#‰KàˆKÚšk«4°·±¸8Ö1DÐEÔFÙˆSŒ	Ù�ùó5<s   Ã!I:c                 ó¶  • [        U[        R                  5      (       d   eUR                  (       a  U R	                  SXU5      nGOâ/ nUn[        S UR                   5       5      (       d*  [        UR                  [        R                  5      (       GaD  / n[        UR                  5       H]  u  pš[        U
[        R                  5      (       a(  [        R                  " U
5      n
UR                  Xš45        UR                  U
5        M_     UR                  n[        U[        R                  5      (       aw  UR                  c  [        SUR                  5       < S35      e[        R                  " U5      nUR                  SU5        UR                  SSU45        [        R                   n[        R                  " [#        U5      X±R                  5      nU R$                  R'                  U5      nSU-  nUR)                  XÍ5      nU H  u  pšU R+                  XYU
U5      nM     [-        XBU5        [/        U5      R0                  R                  U5        g )NFc              3   óV   #   • U  H  n[        U[        R                  5      v •  M!     g 7fr   )r—   r   rž   )Ú.0Útyps     r   Ú	<genexpr>Ú6VGenericEngine._loaded_gen_function.<locals>.<genexpr>Â   s    é € ÐLÂG¸S”J˜s¤E×$7Ñ$7×8Ð8ÂGùs   ‚')Ú'z'' is used as result type, but is opaquer   r¢   r�   )r—   r   r˜   r™   Ú_load_constantÚanyrœ   r¢   rž   r�   ÚPointerTyperŸ   ÚfldtypesÚ	TypeErrorÚ_get_c_namer£   r¤   Útupler   Ú_get_cached_btypeÚload_functionÚ_make_struct_wrapperÚsetattrrª   rM   )r   rl   r{   rX   r[   ÚnewfunctionÚindirectionsÚbase_tpÚindirect_argsr©   r¸   Úindirect_resultÚBFuncr°   s                 r   Ú_loaded_gen_functionÚ#VGenericEngine._loaded_gen_function»   sç  € Ü˜"œe×3Ñ3×4Ñ4Ð4Ð4Ø�;�;Ø×-Ñ-¨e°R¸vÓFŠKàˆLØˆGÜÑLÀBÇGÂGÓL×LÑLÜ! "§)¡)¬U×-@Ñ-@×AÒAØ "�Ü'¨¯©Ö0‘F�AÜ! #¤u×':Ñ':×;Ñ;Ü#×/Ò/°Ó4˜Ø$×+Ñ+¨Q¨HÔ5Ø!×(Ñ(¨Ö-ñ	 1ð
 #%§)¡)�Ü˜o¬u×/BÑ/B×CÑCØ&×/Ñ/Ñ7Ý'à,;×,GÑ,GÖ,Ið)Ló Mð Mô ',×&7Ò&7¸Ó&H�OØ!×(Ñ(¨¨OÔ<Ø ×'Ñ'¨¨H°oÐ+FÔGÜ&+§o¡o�OÜ×*Ò*¬5°Ó+?Ø+:¿K¹KóI�à—H‘H×.Ñ.¨rÓ2ˆEØ&¨Ñ-ˆKØ ×.Ñ.¨uÓBˆKÛ&‘�Ø"×7Ñ7¸ÈØ8?óA’ñ 'ô 	�˜{Ô+ÜˆW‹×Ñ×&Ñ& tÕ,r   c                 óÆ   ^^^^^• U R                   R                  mU R                   R                  U5      mTS:X  a  U R                   mUUU4S jnO	UUUU4S jnXEl        U$ )Nr¢   c                  óB   >• TR                  T5      nT" U/U Q76   US   $ ©Nr   )Únew)rœ   ÚresÚBTyper   Úoldfuncs     €€€r   ÚnewfuncÚ4VGenericEngine._make_struct_wrapper.<locals>.newfuncä   s&   ø€ Ø—g‘g˜e“n�Ù˜Ð#˜dÓ#Ø˜1‘v�r   c                  óX   >• U S T TR                  TU T   5      4-   U TS-   S  -   n T" U 6 $ )Nr   )Únewp)rœ   rÔ   rd   r©   rÕ   s    €€€€r   rÖ   r×   é   s>   ø€ Ø˜B˜Q�x 7§<¡<°°t¸A±wÓ#?Ð"AÑAÀDÈÈ1ÉÈÀJÑN�Ù �~Ð%r   )r   r\   rÃ   Ú_cffi_base_type)	r   rÕ   r©   rl   rÉ   rÖ   rÔ   rd   r   s	    ``   @@@r   rÅ   Ú#VGenericEngine._make_struct_wrapperß   sW   ü€ Ø—(‘(×#Ñ#ˆØ—‘×*Ñ*¨2Ó.ˆØ�‹=Ø—(‘(ˆC÷ð ÷
&ð &ð #*ÔØˆr   c                 óL   • X!R                   :X  d   eU R                  USU5        g ©NÚstruct©r{   Ú_generate_struct_or_union_declr…   s      r   Ú_generate_gen_struct_declÚ(VGenericEngine._generate_gen_struct_declò   s"   € Ø—w‘w‹ÐˆØ×+Ñ+¨B°¸$Õ?r   c                 ó*   • U R                  USX#5        g rÝ   ©Ú_loading_struct_or_union©r   rl   r{   rX   s       r   Ú_loading_gen_structÚ"VGenericEngine._loading_gen_structö   s   € Ø×%Ñ% b¨(°DÕAr   c                 ó&   • U R                  U5        g r   ©Ú_loaded_struct_or_unionr‰   s        r   Ú_loaded_gen_structÚ!VGenericEngine._loaded_gen_structù   ó   € Ø×$Ñ$ RÕ(r   c                 óL   • X!R                   :X  d   eU R                  USU5        g ©NÚunionrß   r…   s      r   Ú_generate_gen_union_declÚ'VGenericEngine._generate_gen_union_declü   s"   € Ø—w‘w‹ÐˆØ×+Ñ+¨B°¸Õ>r   c                 ó*   • U R                  USX#5        g rð   rä   ræ   s       r   Ú_loading_gen_unionÚ!VGenericEngine._loading_gen_union   s   € Ø×%Ñ% b¨'°4Õ@r   c                 ó&   • U R                  U5        g r   rê   r‰   s        r   Ú_loaded_gen_unionÚ VGenericEngine._loaded_gen_union  rî   r   c           
      óŽ  • UR                   c  g SU< SU< 3nSU< SU< 3nU< SU< 3R                  5       nU R                  nU" SU< SU< S35        U" S5        U" S	5        U" S
5        UR                  5        Hq  u  p‰p«[	        U	[
        R                  5      (       a  U	R                  5       (       d  U
S:¼  a  U" SU-  5        MM   U" SU	R                  SSU-  US9< SU< S35        Ms     U" S5        U R                  R                  U5        U" SU< S35        U" S5        U" SU-  5        U" S5        U" SU-  5        U" S5        UR                  5        Hw  u  p‰p«U
S:¼  a  M  U" SU< SU< S35        [	        U	[
        R                  5      (       a(  U	R                  c  U" SU	R                  5       -  5        Mf  U" SU< S U< S35        My     U" S!5        U" S"5        U" S#5        U" S$5        U" S%U< S&35        U" S5        U" 5         g ! [         a   nU" S[        U5      -  5         S nAGMÀ  S nAff = f)'NÚ_cffi_check_rt   Ú_cffi_layout_rr   zstatic void r‘   z *p)r“   z8  /* only to generate compile-time warnings or errors */z
  (void)p;r   z  (void)((p->%s) << 1);z  { z*tmpzfield %r)Úqualsz = &p->z; (void)tmp; }z
  /* %s */r–   z	intptr_t z(intptr_t i)z,  struct _cffi_aligncheck { char x; %s y; };z  static intptr_t nums[] = {z    sizeof(%s),z)    offsetof(struct _cffi_aligncheck, y),z    offsetof(rŽ   z),z    0,  /* %s */z    sizeof(((z *)0)->z    -1z  };z  return nums[i];z3  /* the next line is not executed, but compiled */r”   z(0);)ÚfldnamesÚstripr3   Ú
enumfieldsr—   r   ÚPrimitiveTypeÚis_integer_typer¡   r   Ústrr   rŸ   Ú	ArrayTypeÚlengthrÁ   )r   rl   rC   r{   ÚcheckfuncnameÚlayoutfuncnameÚcnamerB   ÚfnameÚftypeÚfbitsizeÚfqualr   s                r   rà   Ú-VGenericEngine._generate_struct_or_union_decl  s	  € Ø�;‰;ÑØð ã/5²tÐ<‰Û17ºÐ>ˆÛ"¢DÐ)×0Ñ0Ó2ˆà�z‰zˆÚ«³uÐ=Ô>ÙˆSŒ	ÙÐGÔHÙˆ\ÔØ-/¯]©]®_Ñ)ˆE˜(Ü˜5¤%×"5Ñ"5×6Ñ6Ø×)Ñ)×+Ñ+°¸A³áÐ.°Ñ6Ö7ð0ÚØ×(Ñ(¨°¸EÑ1AÈÐ(ÓOÛðö  ñ .=ñ 	ˆSŒ	Ø×Ñ×"Ñ" >Ô2Ú«.Ð:Ô;ÙˆSŒ	ÙÐ;¸eÑCÔDÙÐ+Ô,ÙÐ Ñ&Ô'ÙÐ8Ô9Ø-/¯]©]®_Ñ)ˆE˜(Ø˜1‹}ÙÚ«E³5Ð9Ô:Ü˜%¤§¡×1Ñ1°e·l±lÑ6JÙÐ'¨%×*;Ñ*;Ó*=Ñ=Ö>â³U»EÐBÖCñ .=ñ 	ˆXŒÙˆVŒÙÐ Ô!ÙÐBÔCÚ›=Ð*Ô+ÙˆSŒ	Ù�øô1 )ó 0Ù˜¬¨A«Ñ.×/Ó/ûð0ús   Ã#HÈ
IÈ$H?È?Ic                 ón  • UR                   c  g SU< SU< 3nU R                  R                  S5      S   nUR                  Xe5      n/ nSn	 U" U	5      n
U
S:  a  OUR	                  U
5        U	S-  n	M'  [        U[        R                  5      (       a|  UR                  (       ak  US   nUS   nUSS S2   nUSS S2   nUR                  5         [        U5      [        U5      s=:X  a  [        UR                   5      :X  d   e   eXÞX¼4Ul        g U< SU< 3R                  5       nX�4U R                  U'   g )	Nrü   rt   zintptr_t(*)(intptr_t)r   r   é   r9   rr   )rþ   r   Ú_typeof_lockedrÄ   rŸ   r—   r   rž   ÚpartialÚforce_flattenr›   Úfixedlayoutrÿ   r   )r   rl   rC   r{   rX   r  rÌ   ÚfunctionÚlayoutÚnumÚxÚ	totalsizeÚtotalalignmentÚfieldofsÚ	fieldsizer  s                   r   rå   Ú'VGenericEngine._loading_struct_or_union7  s5  € Ø�;‰;ÑØð ã17ºÐ>ˆà—‘×'Ñ'Ð(?Ó@ÀÑCˆØ×'Ñ'¨Ó>ˆØˆØˆØÙ˜“ˆAØ�1‹u�eØ�M‰M˜!ÔØ�1‰HˆCñ	 ô
 �bœ%×-Ñ-×.Ñ.°2·:·:ð ˜q™	ˆIØ# A™YˆNØ˜a˜d ˜d‘|ˆHØ˜q˜t !˜t™ˆIØ×ÑÔÜ�x“=¤C¨	£NÕF´c¸"¿+¹+Ó6FÓFÐFÑFÐFÐFØ%°)ÐKˆB�Nã &ªÐ-×4Ñ4Ó6ˆEØ4:°MˆD×-Ñ-¨bÒ1r   c                 ó�  • UR                   c  g U R                  R                  U5        XR                  ;   Ga  S nU R                  nUR                  U5      nU R                  R	                  U5      u  pVU" US   UR                  U5      S5        U" US   UR                  U5      S5        SnUR                  5        Hp  u  p‰p«U
S:¼  a  M  U" XW   UR                  XH5      SU< 35        XWS-      S:w  a3  UR                  U	5      nU" XWS-      UR                  U5      SU< 35        US-  nMr     U[        U5      :X  d   eg g )	Nc                 ó.   • X:w  a  [        SX!U 4-  5      eg )Nz'%s (we have %d, but C compiler says %d)r   )Ú	realvalueÚexpectedvalueÚmsgs      r   ÚcheckÚ5VGenericEngine._loaded_struct_or_union.<locals>.checkZ  s*   € ØÓ-Ü+ØAØ¨yÐ9ñ:ó;ð ;ð .r   r   zwrong total sizer   zwrong total alignmentr  zwrong offset for field zwrong size for field )
rþ   r   rÃ   r   ÚpopÚsizeofÚalignofr   Úoffsetofr›   )r   rl   r"  r   ÚBStructr  r  r©   r	  r
  r  r  ÚBFields                r   rë   Ú&VGenericEngine._loaded_struct_or_unionS  s=  € Ø�;‰;ÑØØ�‰×"Ñ" 2Ô&à×2Ñ2Ô2ò;ð
 —(‘(ˆCØ×+Ñ+¨BÓ/ˆGØ ×=Ñ=×AÑAÀ"ÓE‰MˆFÙ�&˜‘)˜SŸZ™Z¨Ó0Ð2DÔEÙ�&˜‘)˜SŸ[™[¨Ó1Ð3JÔKØˆAØ13·±¶Ñ-�˜hØ˜q“=ÙÙ�f‘i §¡¨gÔ!=Ú5:Ð<ô>à˜A™#‘; !Ó#Ø ×2Ñ2°5Ó9�FÙ˜& 1¡™+ s§z¡z°&Ô'9Ú7<Ð>ô@à�Q‘’ñ 2Að œ˜F›Ó#Ð#Ñ#ð/ 3r   c                 óŽ   • [        U[        R                  5      (       a  U R                  XS5        g U R	                  USU5        g ©NrY   )r—   r   ÚEnumTypeÚ_generate_gen_enum_declrà   r…   s      r   Ú_generate_gen_anonymous_declÚ+VGenericEngine._generate_gen_anonymous_declu  s5   € Ü�bœ%Ÿ.™.×)Ñ)Ø×(Ñ(¨°2Õ6à×/Ñ/°°B¸Õ=r   c                 ó�   • [        U[        R                  5      (       a  U R                  XUS5        g U R	                  USX#5        g r,  )r—   r   r-  Ú_loading_gen_enumrå   ræ   s       r   Ú_loading_gen_anonymousÚ%VGenericEngine._loading_gen_anonymous{  s7   € Ü�bœ%Ÿ.™.×)Ñ)Ø×"Ñ" 2¨V°RÕ8à×)Ñ)¨"¨b°$Õ?r   c                 óŽ   • [        U[        R                  5      (       a  U R                  " XU40 UD6  g U R	                  U5        g r   )r—   r   r-  Ú_loaded_gen_enumrë   r‰   s        r   Ú_loaded_gen_anonymousÚ$VGenericEngine._loaded_gen_anonymous�  s6   € Ü�bœ%Ÿ.™.×)Ñ)Ø×!Ò! "¨FÑ;°dÓ;à×(Ñ(¨Õ,r   Nc                 ó�  • U R                   nSU< SU< 3nU R                  R                  U5        UbF  U(       d   eUS:X  d   eU" SU-  5        U" S5        U R                  X%5        U" S5        U" S5        OÅU(       a>  US:X  d   eU" SU-  5        U" S5        U" S	U< S
35        U" SU< S35        U" S5        O€Uc   eUb   eUS:X  a  SnOSnSn	US:X  a#  [	        U[
        R                  5      (       a  Sn	SnU" UR                  SU	< U< S3U5      5        U" S5        U" SU< U< S
35        U" S5        U" 5         g )NÚ_cffi_rt   Úconstúint %s(char *out_error)r“   ú  return 0;r–   zint %s(long long *out_value)z  *out_value = (long long)(r•   z
  return (z) <= 0;ÚvarÚ&rY   zconst *rr   z(void))r3   r   rŸ   Ú_check_int_constant_valuer—   r   rž   r¡   )
r   Úis_intr{   rl   ÚcategoryÚcheck_valuerB   ÚfuncnameÚ	ampersandÚextras
             r   rš   Ú"VGenericEngine._generate_gen_constŠ  sB  € à�z‰z‰Û$,ªdÐ3ˆØ×Ñ×"Ñ" 8Ô,ØÑ"ÞˆM�6Ø˜wÓ&Ð&Ð&ÙÐ*¨XÑ5Ô6Ù�ŒIØ×*Ñ*¨4Ô=Ù�ÔÙ��IÞØ˜wÓ&Ð&Ð&ÙÐ/°(Ñ:Ô;Ù�ŒIÚ³dÐ<Ô=Ú«$Ð0Ô1Ù��Ià‘>Ð!�>ØÑ&Ð&Ð&Ø˜5Ó Ø‘	à�	ØˆEØ˜7Ó"¤z°"´e×6IÑ6I×'JÑ'JØ!�Ø�	Ù�—’²³xÐ@À$ÓGÔHÙ�ŒIÚ¢y³$Ð7Ô8Ù�ŒIÙ�r   c                 óŠ   • [        U[        R                  5      =(       a    UR                  5       nU R	                  X2U5        g r   )r—   r   r  r  rš   )r   rl   r{   rA  s       r   Ú_generate_gen_constant_declÚ*VGenericEngine._generate_gen_constant_decl¯  s2   € Ü˜B¤× 3Ñ 3Ó4×M¸×9KÑ9KÓ9MˆØ× Ñ  ¨rÕ2r   c                 ó&  • SU-  nUb  U(       d   eU R                  XF5        UnU$ U(       aÏ  U R                  R                  S5      S   nU R                  R                  S5      S   n	UR                  X–5      n
U R                  R	                  U5      nU
" U5      n[        US   5      nUS:  aI  U(       dB  U R                  R                  S5      S   nUSSU R                  R                  U5      -  -  -  nU$ Ub   eSn[        U[        R                  5      (       a  S	U-   nU R                  R                  UR                  Xã5      5      S   n	UR                  X–5      n
U
" 5       n[        U[        R                  5      (       a  US   nU$ )
Nz_cffi_const_%sz
long long*r   zint(*)(long long*)z	long longr   é   z	(*)(void)r�   )Ú_load_known_int_constantr   r  rÄ   rÒ   Úintr%  r—   r   rž   r¡   )r   rA  rl   r{   rX   rC  rD  ÚvaluerÔ   rÌ   r  ÚpÚnegativeÚ	BLongLongÚfntypeextras                  r   r¼   ÚVGenericEngine._load_constantµ  sw  € Ø# dÑ*ˆØÑ"ÞˆM�6Ø×)Ñ)¨&Ô;ØˆEð* ˆö) Ø—H‘H×+Ñ+¨LÓ9¸!Ñ<ˆEØ—H‘H×+Ñ+Ð,@ÓAÀ!ÑDˆEØ×+Ñ+¨EÓ<ˆHØ—‘—‘˜UÓ#ˆAÙ “{ˆHÜ˜˜!™“IˆEØ�q‹y¦Ø ŸH™H×3Ñ3°KÓ@ÀÑC�	Ø˜!  $§(¡(§/¡/°)Ó"<Ñ <Ñ=Ñ>�ð ˆð Ñ&Ð&Ð&Ø%ˆKÜ˜"œe×1Ñ1×2Ñ2Ø! KÑ/�Ø—H‘H×+Ñ+¨B¯M©M¸+Ó,LÓMÈaÑPˆEØ×+Ñ+¨EÓ<ˆHÙ“JˆEÜ˜"œe×1Ñ1×2Ñ2Ø˜a™�Øˆr   c                 óê   • [        U[        R                  5      =(       a    UR                  5       nU R	                  XQX#5      n[        XBU5        [        U5      R                  R                  U5        g r   )	r—   r   r  r  r¼   rÆ   rª   rM   rŸ   )r   rl   r{   rX   r[   rA  rO  s          r   Ú_loaded_gen_constantÚ#VGenericEngine._loaded_gen_constantÑ  sV   € Ü˜B¤× 3Ñ 3Ó4×M¸×9KÑ9KÓ9MˆØ×#Ñ# F°Ó=ˆÜ�˜uÔ%ÜˆW‹×Ñ×&Ñ& tÕ,r   c                 ó  • U R                   nUS::  a  U" SXU4-  5        OU" SXU4-  5        U" S5        U" SU-  5        U" SU-  5        U" S5        U" SU-  5        U" S	5        U" S
US S U4-  5        U" S5        U" S5        g )Nr   z&  if ((%s) > 0 || (long)(%s) != %dL) {z1  if ((%s) <= 0 || (unsigned long)(%s) != %dUL) {z    char buf[64];z    if ((%s) <= 0)z)        sprintf(buf, "%%ld", (long)(%s));z    elsez2        sprintf(buf, "%%lu", (unsigned long)(%s));z:    sprintf(out_error, "%s has the real value %s, not %s",z            "%s", buf, "%d");éd   z    return -1;z  })r3   )r   r{   rO  rB   s       r   r@  Ú(VGenericEngine._check_int_constant_valueÚ  s»   € Ø�z‰zˆØ�A‹:ÙÐ9Ø˜Eð=#ñ #õ $ñ ÐDØ˜EðH#ñ #ô $áÐ Ô!ÙÐ! DÑ(Ô)ÙÐ8¸4Ñ?Ô@ÙˆZÔÙÐAØñô 	áÐIÔJÙÐ,°°T°c°
¸EÐ/BÑBÔCÙÐÔÙˆU�r   c                 óz  • U R                   R                  S5      S   nU R                   R                  S5      S   nUR                  XB5      nU R                   R                  US5      nU" U5      S:  aF  U R                   R	                  U5      n[
        R                  S:¼  a  [        US5      n[        U5      eg )Nzchar[]r   zint(*)(char*)é   r8   zutf-8)	r   r  rÄ   rÒ   Ústringr   r@   r  r   )r   rX   rD  rÔ   rÌ   r  rP  Úerrors           r   rM  Ú'VGenericEngine._load_known_int_constantí  sŸ   € Ø—‘×'Ñ'¨Ó1°!Ñ4ˆØ—‘×'Ñ'¨Ó8¸Ñ;ˆØ×'Ñ'¨Ó8ˆØ�H‰H�L‰L˜ Ó$ˆÙ�A‹;˜‹?Ø—H‘H—O‘O AÓ&ˆEÜ×Ñ 4Ó'Ü˜E 7Ó+�Ü# EÓ*Ð*ð	 r   c                 ó:   • UR                  SS5      nSU< SU< 3$ )NÚ$Ú___D_Ú_cffi_e_rt   )Úreplace)r   rC   r{   s      r   Ú_enum_funcnameÚVGenericEngine._enum_funcnameø  s   € à�|‰|˜C Ó)‰Û"(ª$Ð/Ð/r   c                 óª  • UR                   (       a&  UR                   H  nU R                  SU5        M     g U R                  X25      nU R                  R                  U5        U R                  nU" SU-  5        U" S5        [        UR                  UR                  5       H  u  pGU R                  XG5        M     U" S5        U" S5        U" 5         g )NTr<  r“   r=  r–   )
r  Úenumeratorsrš   re  r   rŸ   r3   r    Ú
enumvaluesr@  )r   rl   r{   rC   Ú
enumeratorrD  rB   Ú	enumvalues           r   r.  Ú&VGenericEngine._generate_gen_enum_declý  s«   € Ø�:�:Ø Ÿnœn�
Ø×(Ñ(¨¨zÖ:ñ -àà×&Ñ& vÓ4ˆØ×Ñ×"Ñ" 8Ô,Ø�z‰zˆÙÐ&¨Ñ1Ô2ÙˆSŒ	Ü%(¨¯©¸¿¹Ö%GÑ!ˆJØ×*Ñ*¨:ÖAñ &Háˆ]ÔÙˆSŒ	Ù�r   c           	      óþ   • UR                   (       aE  UR                   Vs/ s H  nU R                  SXU5      PM     nn[        U5      Ul        SUl        g U R                  XB5      nU R                  X75        g s  snf )NT)r  rh  r¼   rÂ   ri  Úpartial_resolvedre  rM  )r   rl   r{   rX   rC   rj  ri  rD  s           r   r2  Ú VGenericEngine._loading_gen_enum  ss   € Ø�:�:à,.¯NªNó<Ú,:˜jð ×-Ñ-¨d°BÀFÖKÙ,:ð ð <ä! *Ó-ˆBŒMØ"&ˆBÕà×*Ñ*¨6Ó8ˆHØ×)Ñ)¨&Õ;ùò<s    A:c                 ó¶   • [        UR                  UR                  5       H5  u  pV[        XEU5        [	        U5      R
                  R                  U5        M7     g r   )r    rh  ri  rÆ   rª   rM   rŸ   )r   rl   r{   rX   r[   rj  rk  s          r   r6  ÚVGenericEngine._loaded_gen_enum  sA   € Ü%(¨¯©¸¿¹Ö%GÑ!ˆJÜ�G¨Ô3Ü�‹M×#Ñ#×*Ñ*¨:Ö6ò &Hr   c                 ó:   • US:X  a  S nOUnU R                  SX#S9  g ©Nz...T)rC  )rš   )r   rl   r{   rC  s       r   Ú_generate_gen_macro_declÚ'VGenericEngine._generate_gen_macro_decl   s&   € Ø�‹;Ø‰KàˆKØ× Ñ   tÐ ÒEr   c                 óž   • US:X  a  S nOUnU R                  SXUUS9n[        XBU5        [        U5      R                  R	                  U5        g rs  )r¼   rÆ   rª   rM   rŸ   )r   rl   r{   rX   r[   rC  rO  s          r   Ú_loaded_gen_macroÚ VGenericEngine._loaded_gen_macro)  sS   € Ø�‹;Ø‰KàˆKØ×#Ñ# D¨"°FØ0;ð $ð =ˆä�˜uÔ%ÜˆW‹×Ñ×&Ñ& tÕ,r   c                 óÊ  • [        U[        R                  5      (       a�  UR                  5       (       aU  U R                  nSU< 3nU R
                  R                  U5        U" SU-  5        U" S5        U" SU< S35        U" S5        [        R                  " UR                  5      nU R                  SX%5        g [        R                  " U5      nU R                  SX%SS	9  g )
NÚ_cffi_sizeof_zsize_t %s(void)r“   z  return sizeof(r•   r–   Fr>  )rB  )
r—   r   r  Úlength_is_unknownr3   r   rŸ   r¾   Úitemrš   )r   rl   r{   rB   rD  Útp_ptrs         r   Ú_generate_gen_variable_declÚ*VGenericEngine._generate_gen_variable_decl6  s·   € Ü�bœ%Ÿ/™/×*Ñ*Ø×#Ñ#×%Ñ%Ø—z‘z‘Ú04Ð6�Ø×#Ñ#×*Ñ*¨8Ô4ÙÐ&¨Ñ1Ô2Ù�S”	Ú«tÐ5Ô6Ù�S”	Ü×&Ò& r§w¡wÓ/ˆFØ×$Ñ$ U¨DÕ9ä×&Ò& rÓ*ˆFØ×$Ñ$ U¨DÀ5Ð$ÒIr   c                 ój  ^• [        U[        R                  5      (       Gaw  UR                  5       (       a»  SU< 3nU R                  R                  S5      S   nUR                  Xe5      nU" 5       nU R                  R                  UR                  5      n	[        X€R                  R                  U	5      5      u  p«US:w  a  [        SU< SUR                  < 35      eUR                  U
5      n[        R                  " UR                  5      nU R                  SXÂU5      nUR                  b6  U R                  R                  U5      nU R                  R!                  Xí5      n[#        XBU5        [%        U5      R&                  R)                  U5        g SU-  nU R                  R                  UR+                  SU5      5      S   nUR                  Xe5      nU" 5       mU4S	 jnU4S
 jn[#        [%        U5      U[-        UU5      5        [%        U5      R&                  R)                  U5        g )Nrz  zsize_t(*)(void)r   z
bad size: z! does not seem to be an array of Fz_cffi_var_%sz
*(*)(void)c                 ó   >• TS   $ rÑ   r*   )r[   Úptrs    €r   ÚgetterÚ3VGenericEngine._loaded_gen_variable.<locals>.getterg  s   ø€ Ø�q‘6ˆMr   c                 ó   >• UTS'   g rÑ   r*   )r[   rO  r‚  s     €r   ÚsetterÚ3VGenericEngine._loaded_gen_variable.<locals>.setteri  s   ø€ ØˆC�ŠFr   )r—   r   r  r{  r   r  rÄ   rÃ   r|  Údivmodr%  r   Úresolve_lengthr¾   r¼   r  ÚcastrÆ   rª   rM   rŸ   r¡   Úproperty)r   rl   r{   rX   r[   rD  rÌ   r  ÚsizeÚ	BItemTyper  Úrestr}  rO  ÚBArrayrƒ  r†  r‚  s                    @r   Ú_loaded_gen_variableÚ#VGenericEngine._loaded_gen_variableH  sÀ  ø€ Ü�bœ%Ÿ/™/×*Ò*à×#Ñ#×%Ò%Ú04Ð6�ØŸ™×/Ñ/Ð0AÓBÀ1ÑE�Ø!×/Ñ/°Ó@�Ù“z�Ø ŸH™H×6Ñ6°r·w±wÓ?�	Ü% d¯H©H¯O©O¸IÓ,FÓG‘�Ø˜1“9Ý+ã˜rŸw›wð(ó)ð )ð ×&Ñ& vÓ.�Ü×&Ò& r§w¡wÓ/ˆFØ×'Ñ'¨¨v¸VÓDˆEð �y‰yÑ$ØŸ™×3Ñ3°BÓ7�ØŸ™Ÿ™ fÓ4�Ü�G 5Ô)Ü�‹M×#Ñ#×*Ñ*¨4Ô0Øð " DÑ(ˆØ—‘×'Ñ'¨¯©°lÀDÓ(IÓJÈ1ÑMˆØ×'Ñ'¨Ó8ˆÙ‹jˆõ	õ	ä”�W“˜t¤X¨f°fÓ%=Ô>ÜˆW‹×Ñ×&Ñ& tÕ,r   )r   r   r   r   )rY   )r   )Nr;  Nr   )Úenum)7rQ   rR   rS   rT   Ú
_class_keyÚ_gen_python_moduler   r   r'   r+   r3   rE   r_   ro   r>   r`   r†   rŠ   Ú_generate_gen_typedef_declÚ_loading_gen_typedefÚ_loaded_gen_typedefr³   Ú_loading_gen_functionrÍ   rÅ   rá   rç   rì   rò   rõ   rø   rà   rå   rë   r/  r3  r7  rš   rI  Ú_loading_gen_constantr¼   rV  r@  rM  re  r.  r2  r6  rt  Ú_loading_gen_macrorw  r~  Ú_loading_gen_variabler�  rW   r*   r   r   r   r      s$  † Ø€JØÐò/ò?ò$òô#ò>ô,ò8òòòòð $5ÐØ#/ÐØ#/Ðò
+ðZ )Ðò"-òHò&@òBò)ò?òAò)ò/òbBò8$òD>ò@ò-ð CJØ(,ô#òJ3ð )Ðôò8-òò&	+ò0ô
ô"<ò7òFð &Ðò-òJð  )Ðõ$-r   r   ac  
#include <stdio.h>
#include <stddef.h>
#include <stdarg.h>
#include <errno.h>
#include <sys/types.h>   /* XXX for ssize_t on some platforms */

/* this block of #ifs should be kept exactly identical between
   c/_cffi_backend.c, cffi/vengine_cpy.py, cffi/vengine_gen.py
   and cffi/_cffi_include.h */
#if defined(_MSC_VER)
# include <malloc.h>   /* for alloca() */
# if _MSC_VER < 1600   /* MSVC < 2010 */
   typedef __int8 int8_t;
   typedef __int16 int16_t;
   typedef __int32 int32_t;
   typedef __int64 int64_t;
   typedef unsigned __int8 uint8_t;
   typedef unsigned __int16 uint16_t;
   typedef unsigned __int32 uint32_t;
   typedef unsigned __int64 uint64_t;
   typedef __int8 int_least8_t;
   typedef __int16 int_least16_t;
   typedef __int32 int_least32_t;
   typedef __int64 int_least64_t;
   typedef unsigned __int8 uint_least8_t;
   typedef unsigned __int16 uint_least16_t;
   typedef unsigned __int32 uint_least32_t;
   typedef unsigned __int64 uint_least64_t;
   typedef __int8 int_fast8_t;
   typedef __int16 int_fast16_t;
   typedef __int32 int_fast32_t;
   typedef __int64 int_fast64_t;
   typedef unsigned __int8 uint_fast8_t;
   typedef unsigned __int16 uint_fast16_t;
   typedef unsigned __int32 uint_fast32_t;
   typedef unsigned __int64 uint_fast64_t;
   typedef __int64 intmax_t;
   typedef unsigned __int64 uintmax_t;
# else
#  include <stdint.h>
# endif
# if _MSC_VER < 1800   /* MSVC < 2013 */
#  ifndef __cplusplus
    typedef unsigned char _Bool;
#  endif
# endif
# define _cffi_float_complex_t   _Fcomplex    /* include <complex.h> for it */
# define _cffi_double_complex_t  _Dcomplex    /* include <complex.h> for it */
#else
# include <stdint.h>
# if (defined (__SVR4) && defined (__sun)) || defined(_AIX) || defined(__hpux)
#  include <alloca.h>
# endif
# define _cffi_float_complex_t   float _Complex
# define _cffi_double_complex_t  double _Complex
#endif
)
r   r   ra   rY   r   r^  r   Úobjectr   r<   r*   r   r   Ú<module>r�     s)   ð÷ Û å Ý $ôa	-�Vô a	-ðF9�r   