GIF89a=( õ' 7IAXKgNgYvYx\%wh…hŽth%ˆs%—x¨}9®Œ©€&©‰%¶†(¹–.¹5·œD¹&Çš)ÇŸ5ǘ;Í£*È¡&Õ²)ׯ7×µ<Ñ»4ï°3ø‘HÖ§KͯT÷¨Yÿšqÿ»qÿÔFØ !ù ' !ÿ NETSCAPE2.0 , =( þÀ“pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§gª«ªE¯°¨¬ª±²Œ¹º¹E¾­”´ÂB¶¯ §Åȸ»ÑD¾¿Á•ÄÅ®° ÝH¾ÒLÀÆDÙ«D¶BÝïðÀ¾DÑÑÔTÌÍíH òGö¨A RÎڐ |¥ ٭&ºìE8œ¹kGÔAÞpx­a¶­ã R2XB®åE8I€Õ6Xî:vT)äžþÀq¦è³¥ì仕F~%xñ  4#ZÔ‰O|-4Bs‘X:= QÉ œš lºÒyXJŠGȦ|s hÏíK–3l7·B|¥$'7Jީܪ‰‡àá”Dæn=Pƒ ¤Òëí‰`䌨ljóá¯Éüv>á–Á¼5 ½.69ûϸd«­ºÀûnlv©‹ªîf{¬ÜãPbŸ  l5‘ޝpß ´ ˜3aÅùäI«O’ý·‘áÞ‡˜¾Æ‚ÙÏiÇÿ‹Àƒ #öó)pâš Þ½ ‘Ý{ó)vmÞü%D~ 6f s}ŃƒDØW Eþ`‡þ À…L8xá†ç˜{)x`X/> Ì}mø‚–RØ‘*|`D=‚Ø_ ^ð5 !_…'aä“OÚ—7âcð`D”Cx`ÝÂ¥ä‹éY¹—F¼¤¥Š?¡Õ™ n@`} lď’ÄÉ@4>ñd œ à‘vÒxNÃ×™@žd=ˆgsžG±æ ´²æud &p8Qñ)ˆ«lXD©øÜéAžHìySun jª×k*D¤LH] †¦§C™Jä–´Xb~ʪwStŽ6K,°£qÁœ:9ت:¨þªl¨@¡`‚ûÚ ».Û¬¯t‹ÆSÉ[:°=Š‹„‘Nåû”Ìî{¿ÂA ‡Rà›ÀÙ6úë°Ÿð0Ä_ ½;ÃϱîÉì^ÇÛÇ#Ëë¼ôº!±Ä˜íUîÅÇ;0L1óÁµö«p% AÀºU̬ݵ¼á%霼€‡¯Á~`ÏG¯»À× ­²± =4ªnpð3¾¤³¯­ü¾¦îuÙuµÙ®|%2ÊIÿür¦#0·ÔJ``8È@S@5ê¢ ö×Þ^`8EÜ]ý.뜃Âç 7 ú ȉÞj œ½Dç zý¸iþœÑÙûÄë!ˆÞÀl§Ïw‹*DçI€nEX¯¬¼ &A¬Go¼QföõFç°¯;é¦÷îŽêJ°îúôF5¡ÌQ|îúöXªæ»TÁÏyñêï]ê² o óÎC=öõ›ÒÓPB@ D×½œä(>èCÂxŽ`±«Ÿ–JЀ»Û á¤±p+eE0`ëŽ`A Ú/NE€Ø†À9‚@¤à H½7”à‡%B‰`Àl*ƒó‘–‡8 2ñ%¸ —€:Ù1Á‰E¸àux%nP1ð!‘ðC)¾P81lÑɸF#ˆ€{´âé°ÈB„0>±û °b¡Š´±O‚3È–Ù()yRpbµ¨E.Z‘D8ÊH@% òŒx+%Ù˜Æcü »¸˜fõ¬b·d`Fê™8èXH"ÉÈ-±|1Ô6iI, 2““¬$+](A*jÐ QTÂo‰.ÛU슬Œã„Ž`¯SN¡–¶Äåyše¯ª’­¬‚´b¦Éož œ)åyâ@Ì®3 ÎtT̉°&Ø+žLÀf"Ø-|žçÔ>‡Ðv¦Ðžì\‚ Q1)Ž@Žh#aP72”ˆ™¨$‚ !ù " , =( …7IAXG]KgNgYvYxR"k\%w]'}hŽth%ˆg+ˆs%—r.—m3šx3˜x¨}9®€&©€+¨‡7§‰%¶†(¹–.¹œD¹&ǘ;Í•&ײ)×»4ïÌ6ò§KÍ þ@‘pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g «¬ E ±± ¨­¶°ººE Á´”·®C¬²§Ç¶Œ»ÓDÃÕƷ¯Ê±H½ºM×ÁGÚ¬D¶BËÁ½î½DÓôTÏÛßîG»ôõC×CÌ l&âž:'òtU³6ɹ#·Ø)€'Ü.6±&ëÍÈ» K(8p0N?!æ2"ÛˆNIJX>R¼ÐO‚M '¡¨2¸*Ÿþ>#n↠å@‚<[:¡Iïf’ ¤TÚ˘CdbÜÙ“[«ŽEú5MBo¤×@€`@„€Êt W-3 ¶Ÿ¡BíêäjIÝ…Eò9[T…$íêﯧ„…•s»Óȳ¹€ÅÚdc®UUρ#±Ùïldj?´í¼²`\ŽÁðÞu|3'ÖŒ]ë6 ¶S#²‡˜FKLÈ *N E´‘áäŠ$˜›eÄYD„ºq«.è촁ƒs \-ÔjA 9²õ÷å- üúM[Âx(ís÷ì®x€|í¡Ù’p¦‚ ŽkÛTÇDpE@WÜ ²Ç]kŠ1¨ þ€·Yb ÓÁ‰l°*n0 ç™—žzBdОu¾7ĉBl€â‰-ºx~|UåU‰  h*Hœ|e"#"?vpÄiŠe6^ˆ„+qâŠm8 #VÇá ‘å–ÄV„œ|Аè•m"сœn|@›U¶ÆÎž—Špb¥G¨ED”€±Úê2FÌIç? >Éxå Œ± ¡¤„%‘žjŸ‘ꄯ<Ìaà9ijÐ2˜D¦È&›†Z`‚å]wþ¼Â:ç6àB¤7eFJ|õÒ§Õ,¨äàFÇ®cS·Ê¶+B°,‘Þ˜ºNûãØ>PADÌHD¹æž«ÄÀnÌ¥}­#Ë’ë QÀÉSÌÂÇ2ÌXÀ{æk²lQÁ2«ÊðÀ¯w|2Í h‹ÄÂG€,m¾¶ë3ÐÙ6-´ÅE¬L°ÆIij*K½ÀÇqï`DwVÍQXœÚÔpeœ±¬Ñ q˜§Tœ½µƒ°Œìu Â<¶aØ*At¯lmEØ ü ôÛN[P1ÔÛ¦­±$ÜÆ@`ùåDpy¶yXvCAyåB`ŽD¶ 0QwG#¯ æš[^Äþ $ÀÓÝǦ{„L™[±úKÄgÌ;ï£S~¹ìGX.ôgoT.»åˆ°ùŸûù¡?1zö¦Ÿž:ÅgÁ|ìL¹ „®£œŠ‚à0œ]PÁ^p F<"•ç?!,ñ‡N4—…PÄ Á„ö¨Û:Tè@hÀ‹%táÿ:ø-žI<`þ‹p I….)^ 40D#p@ƒj4–؀:²‰1Øâr˜¼F2oW¼#Z†;$Q q” ‘ ÂK¦ñNl#29 !’F@¥Bh·ᏀL!—XFóLH‘Kh¤.«hE&JòG¨¥<™WN!€ÑÙÚˆY„@†>Œž19J" 2,/ &.GXB%ÌRÈ9B6¹W]’î×ÔW¥’IÎ$ ñ‹ÓŒE8YÆ ¼³™ñA5“à®Q.aŸB€&Ø©³ JÁ—! ¦t)K%tœ-¦JF bòNMxLôþ)ÐR¸Ð™‘ èÝ6‘O!THÌ„HÛ ‰ !ù ) , =( …AXKgNgYvYxR"k\%wh…hŽh%ˆg+ˆs%—r.—x3˜x¨}9®€&©€+¨Œ,©‡7§‰%¶†(¹–.¹5·&Çš)ǘ;Í•&×£*Ȳ)ׯ7×»4ï°3øÌ6ò‘HÖ§KÍ»Hó¯T÷¨Yÿ»qÿÇhÿ þÀ”pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g ª« E$±²¨ª­ · °²½$E$ÂÕ««D· Í ¿¦Ç¶¸ÌŒ¾³CÃÅÆ E ééH½MÛÂGâªD­ çBêêϾD²ÒaÀà€Š1r­ðÓ¤ ÔožzU!L˜C'¾yW½UGtäÇïÙllê0×àÂuGþ)AÀs[þ·xì ÁxO%ƒûX2ó—  P£n›R/¡ÑšHše+êDm?# —‘Ç£6¡8íJ¡ŸâDiäªM¥Ö„ôj“¬¹£5oQ7°- <‡ *´lãÓŒ2r/a!l)dÈ A™ÈE¢ôÔ͆…ð ;Ö˜c ¡%ß‚’Ùˆâ¸b½—pe~C"BíëÚHïeF2§æŠ8qb t_`urŠeü wÅu3êæPv§h•"ß`íÍxçLĹÜÖ3á  ~Öº“®›¸ÏMDfJÙ °„ÛµáWõ%§œ‚à©–‚X ÓØ)@®Ñ›Eþ´wëuÅSxb8y\mÖzœ¥§ZbºE—ÂLªÌw!y(>¡™wú=Ç|ÅÝs¢d €CÁW)HÜcC$€L Ä7„r.á\{)@ð` @ äXÈ$PD” `šaG:§æˆOˆ72EÐamn]ù"ŒcÊxÑŒ° &dR8`g«iÙŸLR!¦P …d’ä¡“¦ðÎTƒ¦ià|À _ ¥ Qi#¦Šg›Æ ›noMµ ›V ã£)p ç£ÎW…š=Âeªk§†j„ ´®1ß²sÉxéW«jšl|0¯B0Û, \jÛ´›6±¬¶C ÛíWþï|ëÙ‹¸ñzĸV {ì;Ýñn¼òVˆm³I¼³.Ðã¤PN¥ ²µ¼„µCã+¹ÍByî£Ñ¾HŸ›ëê 7ìYÆFTk¨SaoaY$Dµœìï¿Ã29RÈkt Çïfñ ÇÒ:ÀÐSp¹3ÇI¨â¥DZÄ ü9Ïýögñ½­uÔ*3)O‘˜Ö[_hv ,àî×Et Ÿé¶BH€ Õ[ü±64M@ÔSÌM7dÐl5-ÄÙU܍´©zߌ3Ô€3ž„ „ ¶ÛPô½5×g› êÚ˜kN„Ý…0Îj4€Ìë°“#{þÕ3S2çKÜ'ợlø¼Ú2K{° {Û¶?žm𸧠ËI¼nEò='êüóºè^üæÃ_Û=°óž‚ì#Oý¿Í'¡½áo..ÏYìnüñCœO±Áa¿¢Kô½o,üÄËbö²çºíï{ËC Ú— "”Ï{ËK ÍÒw„õ±Oz dÕ¨à:$ ƒô—«v»] A#ð «€¿šéz)Rx׿ˆ¥‚d``èw-îyÏf×K!ð€þ­Ð|ìPľ„=Ì`ý(f” 'Pa ¥ÐBJa%Ðâf§„%Š¡}FàáÝ×6>ÉäŠG"éŽè=ø!oа^FP¼Ø©Q„ÀCÙÁ`(Ž\ÄÝ® ©Â$<n@dÄ E#ììUÒI! ‚#lù‹`k¦ÐÇ'Rró’ZýNBÈMF Í[¤+‹ðɈ-áwj¨¥þ8¾rá ,VÂh„"|½œ=×G_¦Ñ™EØ 0i*%̲˜Æda0mV‚k¾)›;„&6 p>ÓjK “¦Ç# âDÂ:ûc?:R Ó¬fÞéI-Ì“•Ã<ä=™Ï7˜3œ¨˜c2ŒW ,ˆ”8(T™P‰F¡Jhç"‚ ; 403WebShell
403Webshell
Server IP : 172.67.177.218  /  Your IP : 216.73.216.142
Web Server : LiteSpeed
System : Linux premium229.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User : akhalid ( 749)
PHP Version : 8.3.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/lib64/python3.6/site-packages/cffi/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib64/python3.6/site-packages/cffi/__pycache__/vengine_gen.cpython-36.opt-1.pyc
3

M��Z4h�@sHddlZddlZddlZddlmZddlmZGdd�de�ZdZ	dS)�N�)�model)�VerificationErrorc@s�eZdZdZdZdd�Zdd�Zdd�Zd	d
�ZdZdd
�Z	dd�Z
d[dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZeZeZeZdd�ZeZdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Z d5d6�Z!d7d8�Z"d9d:�Z#d\d=d>�Z$d?d@�Z%eZ&d]dAdB�Z'dCdD�Z(dEdF�Z)dGdH�Z*dIdJ�Z+d^dLdM�Z,d_dNdO�Z-dPdQ�Z.dRdS�Z/eZ0dTdU�Z1dVdW�Z2eZ3dXdY�Z4d;S)`�VGenericEngine�gFcCs||_|j|_g|_i|_dS)N)�verifier�ffi�export_symbols�_struct_pending_verification)�selfr�r�#/usr/lib64/python3.6/vengine_gen.py�__init__szVGenericEngine.__init__cCs|jd|j�dS)Nr	)�
setdefaultr	)r�kwdsrrr
�patch_extension_kwdssz#VGenericEngine.patch_extension_kwdscCsTxN|D]F}||}|dkr tj}x*|D]"}tjj||�}tjj|�r&|Sq&WqWdS)N)�sys�path�os�join�isfile)rZmodule_namerZso_suffixesZ	so_suffix�basename�dirname�filenamerrr
�find_modules

zVGenericEngine.find_modulecCsdS)Nr)rrrr
�
collect_types%szVGenericEngine.collect_types�cCs|jj|d�dS)N�
)Z_f�write)rZwhatrrr
�_prnt(szVGenericEngine._prntcCs`|j}|t�||jj�|jd�tjdkr\tjdkr>d}nd}|jj�}|d||f�dS)NZdeclZwin32�ZPyInit_Zinitzvoid %s%s(void) { }
)r )	r�cffimod_headerrZpreamble�	_generater�platform�version_infoZget_module_name)r�prnt�prefix�modnamerrr
�write_source_to_f+s



z VGenericEngine.write_source_to_frcsj�jj}tjjtj�jj�}|j||���j	�d�G���fdd�dt
j���d�}�j	�d|d�|S)NZloadingcs&eZdZ�Z�jZgZ�fdd�ZdS)z/VGenericEngine.load_library.<locals>.FFILibrarycs�jS)N)�	_cffi_dir)r)�
FFILibraryrr
�__dir__Tsz7VGenericEngine.load_library.<locals>.FFILibrary.__dir__N)�__name__�
__module__�__qualname__Z_cffi_generic_modulerZ	_cffi_ffir)r+r)r*�modulerrr
r*Psr*rZloaded)�library)r�_backendrrr�curdirrZmodulefilename�load_library�_load�types�
ModuleType)r�flags�backendrr0r)r*r/rr
r3AszVGenericEngine.load_librarycCs$dd�|jjjj�D�}|j�|S)NcSsg|]\}\}}||f�qSrr)�.0�key�tpZqualrrr
�
<listcomp>^sz4VGenericEngine._get_declarations.<locals>.<listcomp>)rZ_parserZ
_declarations�items�sort)rZlstrrr
�_get_declarations]sz VGenericEngine._get_declarationscCs�x�|j�D]�\}}|jdd�\}}yt|d||f�}Wn tk
rXtd|��YnXy|||�Wq
tk
r�}ztj||��WYdd}~Xq
Xq
WdS)N� rz_generate_gen_%s_%sznot implemented in verify(): %r)r?�split�getattr�AttributeErrorr�	Exceptionr�attach_exception_info)r�	step_name�namer;�kind�realname�method�errr
r"cszVGenericEngine._generatec
Ks�x||j�D]p\}}|jdd�\}}t|d||f�}y||||f|�Wq
tk
rx}	ztj|	|��WYdd}	~	Xq
Xq
WdS)Nr@rz
_%s_gen_%s)r?rArBrDrrE)
rr/rFrrGr;rHrIrJrKrrr
r4rszVGenericEngine._loadcCsdS)Nr)rr;rGrrr
�_generate_nothing|sz VGenericEngine._generate_nothingcKsdS)Nr)rr;rGr/rrrr
�_loaded_noopszVGenericEngine._loaded_noopcsx|jr|jd||�dS|j}t|j�}g}x<t|j�D].\}}d}t|tj�rTd}|j	d||f�q8Wd|��fdd�t
|j|�D�}	|j}
t|
tj�r�|	jd|
j
d	���tj}
d
j|	�p�d}	d|}|jj	|�|jr�|jd
}nd}d|||	f}
d|�||
j
|
���|d�t|jtj��r4d}nt|jtj��sJd}nd}|d||d
j|�f�|d�|�dS)NFr�*z%sx%dzargument of %scs g|]\}}|jd|���qS)z %s)�
get_c_name)r9�type�arg)�contextrr
r<�sz>VGenericEngine._generate_gen_function_decl.<locals>.<listcomp>rz *rz, �voidz
_cffi_f_%sr@z	 %s%s(%s)zresult of %s�{z*r = zreturn z  %s%s(%s);�})�ellipsis�_generate_gen_constr�len�args�	enumerate�
isinstancer�
StructOrUnion�append�zip�result�insertrO�	void_typerr	�abiZVoidType)rr;rGr%ZnumargsZargnames�irPZindirectionZarglistZtpresult�wrappernamerbZfuncdeclZresult_coder)rRr
�_generate_gen_function_decl�sH

z*VGenericEngine._generate_gen_function_declcCs`|jr|jd|||�}�n&g}|}tdd�|jD��sDt|jtj�r�g}xDt|j�D]6\}	}
t|
tj�r�tj	|
�}
|j
|	|
f�|j
|
�qTW|j}t|tj�r�|jdkr�td|j
�f��tj	|�}|jd|�|jdd|f�tj}tjt|�||j�}|jj|�}d|}
|j||
�}x"|D]\}	}
|j||	|
|�}�q"Wt|||�t|�jj
|�dS)NFcss|]}t|tj�VqdS)N)r[rr\)r9�typrrr
�	<genexpr>�sz6VGenericEngine._loaded_gen_function.<locals>.<genexpr>z*'%s' is used as result type, but is opaquerr_z
_cffi_f_%s)rV�_load_constant�anyrYr[r_rr\rZ�PointerTyper]Zfldtypes�	TypeError�_get_c_namer`raZFunctionPtrType�tupler�_get_cached_btype�
load_function�_make_struct_wrapper�setattrrPr))rr;rGr/r0ZnewfunctionZindirections�base_tpZ
indirect_argsrcrfZindirect_result�BFuncrdrrr
�_loaded_gen_function�s>





z#VGenericEngine._loaded_gen_functioncsP|jj�|jj|���dkr4|j����fdd�}n����fdd�}||_|S)Nr_cs �j��}�|f|��|dS)Nr)�new)rY�res)�BTyper�oldfuncrr
�newfunc�s
z4VGenericEngine._make_struct_wrapper.<locals>.newfunccs6|d���j�|��f|�dd�}�|�S)Nr)Znewp)rY)rwr8rcrxrr
ry�s.)rr1rnZ_cffi_base_type)rrxrcr;rrryr)rwr8rrcrxr
rp�sz#VGenericEngine._make_struct_wrappercCs|j|d|�dS)N�struct)�_generate_struct_or_union_decl)rr;rGrrr
�_generate_gen_struct_decl�sz(VGenericEngine._generate_gen_struct_declcCs|j|d||�dS)Nrz)�_loading_struct_or_union)rr;rGr/rrr
�_loading_gen_struct�sz"VGenericEngine._loading_gen_structcKs|j|�dS)N)�_loaded_struct_or_union)rr;rGr/rrrr
�_loaded_gen_struct�sz!VGenericEngine._loaded_gen_structcCs|j|d|�dS)N�union)r{)rr;rGrrr
�_generate_gen_union_decl�sz'VGenericEngine._generate_gen_union_declcCs|j|d||�dS)Nr�)r})rr;rGr/rrr
�_loading_gen_unionsz!VGenericEngine._loading_gen_unioncKs|j|�dS)N)r)rr;rGr/rrrr
�_loaded_gen_unionsz VGenericEngine._loaded_gen_unionc
Cs|jdkrdSd||f}d||f}d||fj�}|j}|d||f�|d�|d�|d�x�|j�D]�\}}	}
}t|	tj�r�|	j�s�|
dkr�|d	|�qny$|d
|	jdd||d
�|f�Wqnt	k
r�}z|dt
|��WYdd}~XqnXqnW|d�|jj|�|d|f�|d�|d|�|d�|d|�|d�xt|j�D]h\}}	}
}|
dk�rv�q\|d||f�t|	tj
��r�|	jdk�r�|d|	j��n|d||f��q\W|d�|d�|d�|d�|d|f�|d�|�dS)Nz_cffi_check_%s_%sz_cffi_layout_%s_%sz%s %szstatic void %s(%s *p)rTz8  /* only to generate compile-time warnings or errors */z
  (void)p;rz  (void)((p->%s) << 1);z  { %s = &p->%s; (void)tmp; }z*tmpzfield %r)Zqualsz
  /* %s */rUzintptr_t %s(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(%s, %s),z    0,  /* %s */z    sizeof(((%s *)0)->%s),z    -1z  };z  return nums[i];z3  /* the next line is not executed, but compiled */z  %s(0);)�fldnames�stripr�
enumfieldsr[r�
PrimitiveType�is_integer_typerOr�strr	r]�	ArrayType�lengthrl)
rr;r&rGZ
checkfuncname�layoutfuncname�cnamer%�fname�ftype�fbitsize�fqualrKrrr
r{sT
&
z-VGenericEngine._generate_struct_or_union_declcCs�|jdkrdSd||f}|jjd�d}|j||�}g}d}	x(||	�}
|
dkrRP|j|
�|	d7}	q@Wt|tj�r�|jr�|d}|d}|ddd�}
|ddd�}|j	�|
|||f|_
nd||fj�}||f|j|<dS)Nz_cffi_layout_%s_%szintptr_t(*)(intptr_t)rr�r z%s %s)
r�r�_typeof_lockedror]r[rr\�partialZ
force_flattenZfixedlayoutr�r
)rr;r&rGr/r�rs�function�layoutZnum�xZ	totalsizeZtotalalignmentZfieldofsZ	fieldsizer�rrr
r}7s,

z'VGenericEngine._loading_struct_or_unionc
Cs|jdkrdS|jj|�||jk�rdd�}|j}|j|�}|jj|�\}}||d|j|�d�||d|j|�d�d}x�|j�D]v\}}	}
}|
dkr�q�||||j||�d|f�||ddkr�|j|	�}|||d|j|�d	|f�|d7}q�WdS)
NcSs||krtd|||f��dS)Nz'%s (we have %d, but C compiler says %d))r)Z	realvalueZ
expectedvalue�msgrrr
�checkZsz5VGenericEngine._loaded_struct_or_union.<locals>.checkrzwrong total sizerzwrong total alignmentr�zwrong offset for field %rzwrong size for field %r)	r�rrnr
�pop�sizeofZalignofr�Zoffsetof)
rr;r�rZBStructr�r�rcr�r�r�r�ZBFieldrrr
rSs,


z&VGenericEngine._loaded_struct_or_unioncCs.t|tj�r|j||d�n|j|d|�dS)Nr)r[r�EnumType�_generate_gen_enum_declr{)rr;rGrrr
�_generate_gen_anonymous_declusz+VGenericEngine._generate_gen_anonymous_declcCs2t|tj�r|j|||d�n|j|d||�dS)Nr)r[rr��_loading_gen_enumr})rr;rGr/rrr
�_loading_gen_anonymous{sz%VGenericEngine._loading_gen_anonymouscKs.t|tj�r |j|||f|�n
|j|�dS)N)r[rr��_loaded_gen_enumr)rr;rGr/rrrr
�_loaded_gen_anonymous�sz$VGenericEngine._loaded_gen_anonymousN�constc
Cs
|j}d||f}|jj|�|dk	rX|d|�|d�|j||�|d�|d�n�|r�|d|�|d�|d|f�|d|f�|d�nj|d	kr�d
}nd}d}	|dkr�t|tj�r�d
}	d
}||jd|	|f|��|d�|d||f�|d�|�dS)Nz_cffi_%s_%szint %s(char *out_error)rTz  return 0;rUzint %s(long long *out_value)z  *out_value = (long long)(%s);z  return (%s) <= 0;�var�&rr�zconst *z %s%s(void)z  return (%s%s);)rr	r]�_check_int_constant_valuer[rr\rO)
r�is_intrGr;�category�check_valuer%�funcnameZ	ampersandZextrarrr
rW�s6

z"VGenericEngine._generate_gen_constcCs&t|tj�o|j�}|j|||�dS)N)r[rr�r�rW)rr;rGr�rrr
�_generate_gen_constant_decl�sz*VGenericEngine._generate_gen_constant_declcCsd|}|dk	r"|j||�|}n�|r�|jjd�d}|jjd�d}	|j|	|�}
|jj|�}|
|�}t|d�}|dkr�|r�|jjd�d}
|dd|jj|
�>7}nXd}t|tj	�r�d	|}|jj|j
||��d}	|j|	|�}
|
�}t|tj	��r|d}|S)
Nz_cffi_const_%sz
long long*rzint(*)(long long*)z	long longr�z	(*)(void)rN)�_load_known_int_constantrr�roru�intr�r[rr\rO)rr�r;rGr/r�r��valuerwrsr��p�negativeZ	BLongLongZfntypeextrarrr
rh�s.zVGenericEngine._load_constantcCsDt|tj�o|j�}|j||||�}t|||�t|�jj|�dS)N)	r[rr�r�rhrqrPr)r])rr;rGr/r0r�r�rrr
�_loaded_gen_constant�sz#VGenericEngine._loaded_gen_constantcCs�|j}|dkr"|d|||f�n|d|||f�|d�|d|�|d|�|d�|d|�|d	�|d
|dd�|f�|d�|d
�dS)Nrz&  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");�dz    return -1;z  })r)rrGr�r%rrr
r��s z(VGenericEngine._check_int_constant_valuecCsr|jjd�d}|jjd�d}|j||�}|jj|d�}||�dkrn|jj|�}tjdkrft|d�}t|��dS)Nzchar[]rz
int(*)(char*)�r zutf-8)r )	rr�roru�stringrr$r�r)rr/r�rwrsr�r��errorrrr
r��s

z'VGenericEngine._load_known_int_constantcCs|jdd�}d||fS)N�$Z___D_z
_cffi_e_%s_%s)�replace)rr&rGrrr
�_enum_funcname�szVGenericEngine._enum_funcname�enumcCs�|jr&x|jD]}|jd|�qWdS|j||�}|jj|�|j}|d|�|d�x&t|j|j�D]\}}|j	||�qhW|d�|d�|�dS)NTzint %s(char *out_error)rTz  return 0;rU)
r��enumeratorsrWr�r	r]rr^�
enumvaluesr�)rr;rGr&�
enumeratorr�r%�	enumvaluerrr
r��sz&VGenericEngine._generate_gen_enum_declcsL�jr0���fdd��jD�}t|��_d�_n�j||�}�j�|�dS)Ncsg|]}�jd�|���qS)T)rh)r9r�)r/rr;rr
r<sz4VGenericEngine._loading_gen_enum.<locals>.<listcomp>T)r�r�rmr�Zpartial_resolvedr�r�)rr;rGr/r&r�r�r)r/rr;r
r�s

z VGenericEngine._loading_gen_enumcCs<x6t|j|j�D]$\}}t|||�t|�jj|�qWdS)N)r^r�r�rqrPr)r])rr;rGr/r0r�r�rrr
r�szVGenericEngine._loaded_gen_enumcCs&|dkrd}n|}|jd||d�dS)Nz...T)r�)rW)rr;rGr�rrr
�_generate_gen_macro_decl sz'VGenericEngine._generate_gen_macro_declcCsF|dkrd}n|}|jd||||d�}t|||�t|�jj|�dS)Nz...T)r�)rhrqrPr)r])rr;rGr/r0r�r�rrr
�_loaded_gen_macro)sz VGenericEngine._loaded_gen_macrocCs�t|tj�rx|jdkr\|j}d|f}|jj|�|d|�|d�|d|f�|d�tj|j�}|j	d||�ntj|�}|j	d||dd	�dS)
Nz...z_cffi_sizeof_%szsize_t %s(void)rTz  return sizeof(%s);rUFr�)r�)
r[rr�r�rr	r]rj�itemrW)rr;rGr%r��tp_ptrrrr
�_generate_gen_variable_decl6s


z*VGenericEngine._generate_gen_variable_declcs^t|tj�r�|jdkr�d|f}|jjd�d}|j||�}|�}|jj|j�}	t	||jj
|	��\}
}|dkr�td||jf��|j|
�}tj
|j�}|jd|||�}
|jdk	r�|jj|�}|jj||
�}
t|||
�t|�jj|�dSd|}|jj|jd|��d}|j||�}|���fd	d
�}�fdd�}tt|�|t||��t|�jj|�dS)
Nz...z_cffi_sizeof_%szsize_t(*)(void)rz/bad size: %r does not seem to be an array of %sFz_cffi_var_%sz
*(*)(void)cs�dS)Nrr)r0)�ptrrr
�gettergsz3VGenericEngine._loaded_gen_variable.<locals>.gettercs|�d<dS)Nrr)r0r�)r�rr
�setterisz3VGenericEngine._loaded_gen_variable.<locals>.setter)r[rr�r�rr�rornr��divmodr�rZresolve_lengthrjrh�castrqrPr)r]rO�property)rr;rGr/r0r�rsr��sizeZ	BItemTyper��restr�r�ZBArrayr�r�r)r�r
�_loaded_gen_variableHs:



z#VGenericEngine._loaded_gen_variable)r)r)Nr�N)N)r�)r�)5r,r-r.Z
_class_keyZ_gen_python_modulerrrrrr(r3r?r"r4rLrMZ_generate_gen_typedef_declZ_loading_gen_typedefZ_loaded_gen_typedefreZ_loading_gen_functionrtrpr|r~r�r�r�r�r{r}rr�r�r�rWr�Z_loading_gen_constantrhr�r�r�r�r�r�r�r�Z_loading_gen_macror�r�Z_loading_gen_variabler�rrrr
rsf



-$1"	
$
	



rad
#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
#else
# include <stdint.h>
# if (defined (__SVR4) && defined (__sun)) || defined(_AIX) || defined(__hpux)
#  include <alloca.h>
# endif
#endif
)
rrr5rrr�r�objectrr!rrrr
�<module>s

Youez - 2016 - github.com/yon3zu
LinuXploit