o
    ѽb\                     @   s
  d dl mZ G dd deZdd Zd ZdZdZdZd	Z	d
Z
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd ZdZdZdZdZdZ dZ!dZ"d	Z#dZ$d
Z%d Z&dZ'd!Z(dZ)d"Z*dZ+d#Z,dZ-d$Z.dZ/d%Z0dZ1d&Z2dZ3d'Z4dZ5d(Z6dZ7d)Z8dZ9d*Z:dZ;d+Z<dZ=d,Z>dZ?d-Z@dZAd.ZBdZCd/ZDd0ZEd1ZFd2ZGd3ZHd4ZId5ZJd6ZKd7ZLd8ZMd9ZNd:ZOd;ZPd<ZQd:ZRi d=ed>ed?e!d@e#dAe%dBedCedDe dEe"dFe$dGe&dHe'dIe(dJe)dKeJdLeKdMei dNe*dOeLdPeMdQe+dRe,dSe-dTe.dUe/dVe0dWe1dXe2dYe3dZe4d[e5d\e6d]e7d^e8i d_e9d`e:dae;dbe<dce=dde>dee?dfe@dgeAdheBdieCdjeDdkeEdleFdmeGdneHdoeIZSd ZTdZUdZVdZWd"ZXeYdpdq drD ZZi Z[e\e] ^ D ]\Z_Z`e_adsrebe`ecre_ddt e[e`< qidtS )u   )VerificationErrorc                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
CffiOpc                 C   s   || _ || _d S )N)oparg)selfr   r    r   4usr/lib/python3.10/site-packages/cffi/cffi_opcode.py__init__   s   
zCffiOp.__init__c                 C   s>   | j d u rt| jtsJ d| jf S t| j  }d|| jf S )Nz(_cffi_opcode_t)(%s)z_CFFI_OP(_CFFI_OP_%s, %s))r   
isinstancer   str
CLASS_NAMEr   	classnamer   r   r   	as_c_expr   s
   

zCffiOp.as_c_exprc                 C   sn   | j d u r| j rt| j}|dkrtd| jf t|S t| jtr-td| jf t| jd> | j B S )Nl        z"cannot emit %r: limited to 2**31-1zcannot emit to Python: %r   )	r   r   isdigitintOverflowErrorformat_four_bytesr
   r   r   )r   valuer   r   r   as_python_bytes   s   
zCffiOp.as_python_bytesc                 C   s   t | j| j}d|| jf S )Nz(%s %s))r   getr   r   r   r   r   r   __str__   s   zCffiOp.__str__N)__name__
__module____qualname__r	   r   r   r   r   r   r   r   r      s
    r   c                 C   s,   d| d? d@ | d? d@ | d? d@ | d@ f S )Nz\x%02X\x%02X\x%02X\x%02X         r   r   )numr   r   r   r      s   


r            	                                    !   #   %   '   )                r   
         r            r                "   $   &   (   *   +   ,   -   .   /   0   1   2   3   4   charshortr   longz	long longzsigned charzunsigned charzunsigned shortzunsigned intzunsigned longzunsigned long longfloatZdoublezlong doublezfloat _Complexzdouble _ComplexZ_BoolZwchar_tZchar16_tZchar32_tZint8_tZuint8_tZint16_tZuint16_tZint32_tZuint32_tZint64_tZuint64_tZintptr_tZ	uintptr_tZ	ptrdiff_tZsize_tZssize_tZint_least8_tZuint_least8_tZint_least16_tZuint_least16_tZint_least32_tZuint_least32_tZint_least64_tZuint_least64_tZint_fast8_tZuint_fast8_tZint_fast16_tZuint_fast16_tZint_fast32_tZuint_fast32_tZint_fast64_tZuint_fast64_tZintmax_tZ	uintmax_tc                 C   s   g | ]}d | t  | fqS )Z_CFFI_)globals).0_keyr   r   r   
<listcomp>   s    r[   )F_UNIONF_CHECK_FIELDSF_PACKED
F_EXTERNALF_OPAQUEZOP_N)derrorr   objectr   r   ZOP_PRIMITIVEZ
OP_POINTERZOP_ARRAYZOP_OPEN_ARRAYZOP_STRUCT_UNIONZOP_ENUMZOP_FUNCTIONZOP_FUNCTION_ENDZOP_NOOPZOP_BITFIELDZOP_TYPENAMEZOP_CPYTHON_BLTN_VZOP_CPYTHON_BLTN_NZOP_CPYTHON_BLTN_OZOP_CONSTANTZOP_CONSTANT_INTZOP_GLOBAL_VARZOP_DLOPEN_FUNCZOP_DLOPEN_CONSTZOP_GLOBAL_VAR_FZOP_EXTERN_PYTHONZ	PRIM_VOIDZ	PRIM_BOOLZ	PRIM_CHARZ
PRIM_SCHARZ
PRIM_UCHARZ
PRIM_SHORTZPRIM_USHORTZPRIM_INTZ	PRIM_UINTZ	PRIM_LONGZ
PRIM_ULONGZPRIM_LONGLONGZPRIM_ULONGLONGZ
PRIM_FLOATZPRIM_DOUBLEZPRIM_LONGDOUBLEZ
PRIM_WCHARZ	PRIM_INT8Z
PRIM_UINT8Z
PRIM_INT16ZPRIM_UINT16Z
PRIM_INT32ZPRIM_UINT32Z
PRIM_INT64ZPRIM_UINT64ZPRIM_INTPTRZPRIM_UINTPTRZPRIM_PTRDIFFZ	PRIM_SIZEZ
PRIM_SSIZEZPRIM_INT_LEAST8ZPRIM_UINT_LEAST8ZPRIM_INT_LEAST16ZPRIM_UINT_LEAST16ZPRIM_INT_LEAST32ZPRIM_UINT_LEAST32ZPRIM_INT_LEAST64ZPRIM_UINT_LEAST64ZPRIM_INT_FAST8ZPRIM_UINT_FAST8ZPRIM_INT_FAST16ZPRIM_UINT_FAST16ZPRIM_INT_FAST32ZPRIM_UINT_FAST32ZPRIM_INT_FAST64ZPRIM_UINT_FAST64ZPRIM_INTMAXZPRIM_UINTMAXZPRIM_FLOATCOMPLEXZPRIM_DOUBLECOMPLEXZPRIM_CHAR16ZPRIM_CHAR32Z	_NUM_PRIMZ_UNKNOWN_PRIMZ_UNKNOWN_FLOAT_PRIMZ_UNKNOWN_LONG_DOUBLEZ_IO_FILE_STRUCTZPRIMITIVE_TO_INDEXr\   r]   r^   r_   r`   dictZG_FLAGSr   listrX   items_name_value
startswithr
   r   r   r   r   r   <module>   s   	
 !"#$%&'()*+,-./01236