
    dafv                        	 d dl Z d dlZd dlZd dlZd dl d dlmZmZmZm	Z	m
Z
mZmZmZ g dez   Z[ej                  ej                  ej                   eeefZed   Zdedfedfed	ffZed
   ZdZed   Zed   Zed   Zed   Z ed   Z!ed   Z"ed   Z#ed   Z$ed   Z%ed   Z&ed   Z'ed   Z( e)e*      Z+ e,e      Z- e.e+      D  cg c]  \  } }|j_                  d      s|  c}} Z0 e1e0e      D ]  \  Z2Z3e3e+e2<   e2e-e3<     ejh                         D ci c]  \  }}|D ]  }||  c}}}Z5d Z6ddddddddZ7dddddddZ8dd d!d"d#d$d%d&d'd(d)
Z9d* Z: G d+ d,      Z; e;       Z<d- Z=d. Z>d/ Z?d0 Z@d1 ZAdd2d3ZB ej                  d4g d5dgd6z  7      ZD ej                  d8g d9dg7      ZEd:eEjT                  _F        d;eEj                  _F        d<eEj                  _F        d=eEj                  _F        d>eEj                  _F        d?eEj                  _F        d@eEj                  _F        dAeEj                  _F        dBeEj                  _F         ej                  dCdD      ZNdEZOdFZP G dG dHeE      ZQddddIdJZRdK ZSdL ZTdM ZUdN ZVdO ZWdP ZX	 	 	 	 	 dedRZYdfdddddSZZddddddTZ[	 	 dgdd dQdddUdVZ\dW Z]eZZ^dXZ_dYe_dZz
  z  Z`d[ Zad\ Zbd] Zcd^ Zdd_ Ze G d` da      Zfdb Zgehdck(  r eg        yyc c}} w c c}}}w )h    N)*)__all___cache_format_inline_cache_entries_nb_ops_intrinsic_1_descs_intrinsic_2_descs_specializations_specialized_instructions)	code_infodisdisassembledistbdiscofindlinestarts
findlabels	show_codeget_instructionsInstructionBytecodeFORMAT_VALUEN strreprasciiMAKE_FUNCTION)defaults
kwdefaultsannotationsclosure
LOAD_CONSTRETURN_CONSTLOAD_GLOBAL	BINARY_OPJUMP_BACKWARDFOR_ITERSEND	LOAD_ATTRLOAD_SUPER_ATTRCALL_INTRINSIC_1CALL_INTRINSIC_2CACHE<c                 X    	 	 t        | |d      S # t        $ r Y nw xY wt        | |d      S )Nevalexec)compileSyntaxError)sourcenames     /root/Python-3.12.4/Lib/dis.py_try_compiler7   @   s<    vtV,, 64((s    	Ffiledepthshow_cachesadaptivec                \   	 | t        |||       y t        | d      r| j                  } t        | d      r| j                  } nJt        | d      r| j                  } n1t        | d      r| j
                  } nt        | d      r| j                  } t        | d      rlt        | j                  j                               }|D ]C  \  }}t        |t              st        d|z  |	       	 t        |||||
       t        |	       E y t        | d      rt        | ||||
       y t        | t         t"        f      rt%        | ||       y t        | t&              rt)        | ||||
       y t        dt+        |       j,                  z        # t        $ r}t        d||	       Y d }~d }~ww xY w)Nr9   r;   r<   __func____code__gi_codeag_codecr_code__dict__zDisassembly of %s:r9   r8   zSorry:co_code)r9   r;   (don't know how to disassemble %s objects)r   hasattrr?   r@   rA   rB   rC   sortedrD   items
isinstance
_have_codeprintr   	TypeError_disassemble_recursivebytes	bytearray_disassemble_bytesr   _disassemble_strtype__name__)	xr9   r:   r;   r<   rJ   r5   x1msgs	            r6   r   r   M   s    	y4[8Dq*JJq*JJ	I	II	I	II	I	IIq*qzz'')* 	!HD""j)*T1=4UV^_ 4 	! 
I	qt5k\de	Ay)	*14[A	As	UV^_BQ(() * 	* ! 4(Cd334s   'F

	F+F&&F+r>   c                Z   	 | a	 t        t        d      rt        j                  j                  } nt        j                  } | j                  r| j                  } | j                  rt        | j                  j                  | j                  |||       y # t
        $ r t        d      d w xY w)Nlast_excz no last traceback to disassembler>   )rH   sysrZ   __traceback__last_tracebackAttributeErrorRuntimeErrortb_nextr   tb_framef_codetb_lasti)tbr9   r;   r<   s       r6   r   r   z   s    <	z	MsJ'\\//'' jjrzz"bjj""BKKd^fg  	MABL	Ms   ;B B*	OPTIMIZED	NEWLOCALSVARARGSVARKEYWORDSNESTED	GENERATORNOFREE	COROUTINEITERABLE_COROUTINEASYNC_GENERATOR)
                   @         i   c           	         	 g }t        d      D ]D  }d|z  }| |z  s|j                  t        j                  |t	        |                   | |z  } | rD n |j                  t	        |              dj                  |      S )Nrt   ro   , )rangeappendCOMPILER_FLAG_NAMESgethexjoin)flagsnamesiflags       r6   pretty_flagsr      s{    5E2Y !!t4<LL,00s4yABTME! 	SZ 99U    c                       e Zd Zd Zy)_Unknownc                      y)Nz	<unknown> selfs    r6   __repr__z_Unknown.__repr__   s    r   N)rU   
__module____qualname__r   r   r   r6   r   r      s    r   r   c                    	 t        | d      r| j                  } t        | d      r| j                  } nJt        | d      r| j                  } n1t        | d      r| j                  } nt        | d      r| j
                  } t        | t              rt        | d      } t        | d      r| S t        dt        |       j                  z        )	Nr?   r@   rA   rB   rC   z<disassembly>rF   rG   )rH   r?   r@   rA   rB   rC   rK   r   r7   rN   rT   rU   rV   s    r6   _get_code_objectr      s    Nq*JJq*JJ	I	II	I	II	I	II!SO,q)
>G$$% & &r   c                 H    t         |    }|t        v rt        t        |      S | S N)_all_opnamedeoptmap
_all_opmap)opr5   s     r6   _deoptopr      s&    r?D)-)9:htn%ArAr   c                 6    |r| j                   S | j                  S r   )_co_code_adaptiverF   )cor<   s     r6   _get_code_arrayr      s    #+2;;r   c                 ,    	 t        t        |             S r   )_format_code_infor   r   s    r6   r   r      s    ;-a011r   c                    g }|j                  d| j                  z         |j                  d| j                  z         |j                  d| j                  z         |j                  d| j                  z         |j                  d| j
                  z         |j                  d| j                  z         |j                  d| j                  z         |j                  dt        | j                        z         | j                  r?|j                  d	       t        | j                        D ]  }|j                  d
|z          | j                  r?|j                  d       t        | j                        D ]  }|j                  d|z          | j                  r?|j                  d       t        | j                        D ]  }|j                  d|z          | j                  r?|j                  d       t        | j                        D ]  }|j                  d|z          | j                  r?|j                  d       t        | j                        D ]  }|j                  d|z          dj!                  |      S )NzName:              %szFilename:          %szArgument count:    %szPositional-only arguments: %szKw-only arguments: %szNumber of locals:  %szStack size:        %szFlags:             %sz
Constants:z%4d: %rzNames:z%4d: %szVariable names:zFree variables:zCell variables:
)r{   co_nameco_filenameco_argcountco_posonlyargcountco_kwonlyargcount
co_nlocalsco_stacksizer   co_flags	co_consts	enumerateco_namesco_varnamesco_freevarsco_cellvarsr   )r   linesi_ci_ns       r6   r   r      s   E	LL(2::56	LL(2>>9:	LL(2>>9:	LL023H3HHI	LL(2+?+??@	LL(2==89	LL(2??:;	LL(<+DDE	||\"R\\* 	*CLLS)	*	{{XR[[) 	*CLLS)	*	~~&'R^^, 	*CLLS)	*	~~&'R^^, 	*CLLS)	*	~~&'R^^, 	*CLLS)	*99Ur   rE   c                2    	 t        t        |       |       y )NrE   )rM   r   )r   r9   s     r6   r   r      s     
)B-d#r   	Positions)lineno
end_lineno
col_offsetend_col_offsetrq   )r   _Instruction)	opnameopcodeargargvalargreproffsetstarts_lineis_jump_target	positionsz!Human readable name for operationzNumeric code for operationz6Numeric argument to operation (if any), otherwise Nonez4Resolved arg value (if known), otherwise same as argz0Human readable description of operation argumentz1Start index of operation within bytecode sequencez4Line started by this opcode (if any), otherwise Nonez1True if other code jumps to here, otherwise FalsezPdis.Positions object holding the span of source code covered by this instruction_ExceptionTableEntryzstart end target depth lasti      c                       e Zd Z	 ddZy)r   c                    	 g }|rD| j                   $d|z  }|j                  || j                   z         n|j                  d|z         |r|j                  d       n|j                  d       | j                  r|j                  d       n|j                  d       |j                  t        | j                        j                  |             |j                  | j                  j                  t                     | j                  d|j                  t        | j                        j                  t                     | j                  r!|j                  d| j                  z   dz          dj                  |      j                         S )	Nz%%%dd z-->z   z>>  ())r   r{   r   r   r   rjustr   ljust_OPNAME_WIDTHr   _OPARG_WIDTHr   r   rstrip)r   lineno_widthmark_as_currentoffset_widthfields
lineno_fmts         r6   _disassemblezInstruction._disassemble0  s(   	 +$|3
j4+;+;;<cL01MM% MM% MM$MM$d4;;'--l;<dkk''6788MM$txx...|<=||cDLL0367xx&&((r   N)   Frq   )rU   r   r   r   r   r   r6   r   r      s    #)r   r   )
first_liner;   r<   c          
          	 t        |       }t        t        |            }|||j                  z
  }nd}t	        t        ||      |j                  |j                  |j                  |||j                         |      S )Nr   )co_positionsr;   )
r   dictr   co_firstlineno_get_instructions_bytesr   _varname_from_opargr   r   r   )rV   r   r;   r<   r   
linestartsline_offsets          r6   r   r   V  s{    	 
!	BnR()J 2#4#44"?2x#@#%#9#9#%;;#-{020A/:< <r   c                 "    	 t         }|||   }|S r   UNKNOWN)r   r   r   r   s       r6   _get_const_valuer   n  s"     F3Mr   c                 P    	 t        | ||      }|t        urt        |      nd}||fS r   )r   r   r   )r   r   r   r   r   s        r6   _get_const_infor   |  s3     b#y1F$G3d6lG7?r   c                 2    	 | || fi |}||fS t         dfS r   r   )
name_indexget_name	extrainfor   s       r6   _get_name_infor     s2     *2	2v~{r   c                 l    t        |       }|dz  }|dz  r|dz  }t        |       }||dz  z  }|dz  r|S )N?   ru      )next)iteratorbvals      r6   _parse_varintr     sJ    XA
b&C
B$	Nqt B$ Jr   c           	      .   t        | j                        }g }	 	 t        |      dz  }t        |      dz  }||z   }t        |      dz  }t        |      }|dz	  }t        |dz        }	|j	                  t        |||||	             l# t        $ r |cY S w xY w)Nrp   ro   )iterco_exceptiontabler   boolr{   r   StopIteration)
coder   entriesstartlengthendtargetdlr:   lastis
             r6   _parse_exception_tabler     s    D**+HG!(+A-E"8,Q.F&.C"8,Q.Fx(B!GEAJENN/sFE5QR   s   A-B BBc                     dt         |    v S )Nr&   )r   )r   s    r6   _is_backward_jumpr    s    fRj((r   r   c	              #   B  K   	 |xs t        d      }|d n|j                  }	t        t        |             }
|D ]*  \  }}}}}t	        ||      D ]  }|
j                  |        , d }t        |       D ]&  \  }}||j                  |d       }|||z  }||
v }d }d}t        t        |d       }t        |      }t        |   }}|t        v rt        ||      \  }}n|t        v r|t        k(  r"t!        dz  |	      \  }}dz  r|rd|z   }n|t"        k(  r"t!        dz  |	      \  }}dz  rz|rwd|z   }np|t$        k(  r"t!        dz  |	      \  }}dz  rO|rLd|z   }nEt!        |	      \  }}n4|t&        v rdz  }dt)        |      z   }n|t*        v r2t-        |      r n}|dz   |dz  z   }|d|z  z  }dt)        |      z   }n|t.        v s|t0        v rt!        |      \  }}n|t2        v rt4        dz	     }|}n|t6        k(  r1t8        d	z     \  }}|t;        dz        f}|d   ry|r|d
z  }|dz  }nl|t<        k(  r(d
j?                  fdtA        tB              D              }n;|tD        k(  rtF           \  }}n%|tH        k(  r
tJ           }n|tL        k(  r	tN           }tQ        tR        |   |||||||	       t        |   }|sg|st	        |      D ]  }t        |d        tT        tV        |      jY                         D ]  \  }}t	        |      D ]l  }|dz  }|dk(  r5| ||d|z  z    }| dtZ        j]                  |t^        j`                         }nd}tQ        dtb        dd ||d dt        t        |d       	       n  ) y w)Nr   r   rp   ro   zNULL + zNULL|self + rq   zto r   ry   zwith formatc              3   8   K   | ]  \  }}d |z  z  r|  yw)ro   Nr   ).0r   sr   s      r6   	<genexpr>z*_get_instructions_bytes.<locals>.<genexpr>  s'      $5$!Q'*ad| %& $5s   r   z: r-   F)2r   __getitem__setr   rz   add_unpack_opargsr}   r   r   r   r   hasconstr   hasnamer$   r   r)   r*   hasjabsr   hasjrelr  haslocalhasfree
hascomparecmp_opr   FORMAT_VALUE_CONVERTERSr   r   r   r   MAKE_FUNCTION_FLAGSr%   r   r+   r   r,   r	   r   r   r   r   rJ   int
from_bytesr[   	byteorderr-   )r   varname_from_opargr   r   r   r   exception_entriesr   r;   r   labelsr   r   r   _r   r   r   r   r   r   r   r   deopcaches
signed_argr5   sizedatar   s                                @r6   r   r     s    
  +48L}t%*;*;HD!"F$5  sFAquc" 	AJJv	 K)$/ WC!$..6K&{*6)tL"56	|&t,?
 Fx"1$Y"G;&&4S!VX&FOFGaW"+g"5Y&&4S!VX&FOFGaW"07":_,&4S!VX&FOFGaW"07":&4S(&COFGQ$v,.%6t%<cT#
!jl2!f*$$v,.!TW_"06H"I#Q %"9#)"D $sSy/2!94},G&)) $5)<O2P $5 5"$S\
7)),S1)),S1+b/2vw +~yJ 	J 't,6] '\2&''t5;;= 	JD$4[ ! 6T(9:D!%bcmm)L(MNG G!UAtWfdEtL"56 	UWs   NNc                    	 t        t        |             }t        |       }t        t	        | |      || j
                  | j                  | j                  |||| j                         |
       y )N)r9   r  r   r;   )	r   r   r   rR   r   r   r   r   r   )r   r   r9   r;   r<   r   r  s          r6   r   r     s\    $nR()J.r2r84b44{{BLL*4):$&OO$5;	Pr   c                    t        | |||       ||dkD  rS||dz
  }| j                  D ]<  }t        |d      st        |       t        d|d|       t	        |||||       > y y )	Nr>   r   ro   rF   rE   zDisassembly of :r8   )r   r   rH   rM   rO   )r   r9   r:   r;   r<   rV   s         r6   rO   rO   )  su    ;J}	AIE 	Aq)$4 a1=&D;QY		 "r   )r9   r   r  r   r;   c                D   t        |      }|r9t        |j                               |z   }|dk\  rt        t	        |            }nd}nd}t        |       dz
  }|dk\  rt        t	        |            }nd}t        | |||||||	|
	      D ]  }|xr |j                  d uxr |j                  dkD  }|rt        |       |
r|j                  |k(  }nD|j                  |cxk  xr/ |j                  dt        t        |j                           z  z   k  nc }t        |j                  |||      |        |rnt        d	|       |D ][  }|j                  rd
nd}|j                  dz
  }t        d|j                   d| d|j                    d|j"                   d| 
|       ] y y )Ni  r   r   rp   i'  rq   r   r  r   r;   rE   zExceptionTable:z lastir   r   z to z -> z [])r   maxvalueslenr   r   r   r   rM   r   r   r   r   r   r   r   r   r:   )r   r   r  r   r   r   r9   r   r  r   r;   show_lineno	maxlinenor   	maxoffsetr   instrnew_source_lineis_current_instrentryr   s                        r6   rR   rR   6  s   
 z"K
))+,{:	s9~.LLD	AIE3y>*(/A5)2J5@;L6B5@B  ' , ,,D8, <<!+ 	 t$||u4  %||u  T<<!&;HU\\<R&S"SS Te  /?N	#& d+& 	cE %HE))A+CBu{{m4uDbQugV]ab	c r   c                 2    	 t        t        | d      fi | y )Nz<dis>)rO   r7   )r4   kwargss     r6   rS   rS   c  s    F<8CFCr   rt   rp   ro   c              #     K   d}d}t        dt        |       d      D ]g  }|r|dz  }| |   }t        |      }t        |   }|t        v r1| |dz      |z  }|t
        k(  r|dz  nd}|t        k\  r|dt        z  z  }nd }d}|||f i y w)Nr   rp   ro   rr   )rz   r*  r   r   hasargEXTENDED_ARG_INT_OVERFLOW)r   extended_argr  r   r   r  r   s          r6   r  r  o  s     LF1c$i# aKF!W|&t,6>qs)l*C)-)=C1H1L },M 11CL"cl's   BBc                     	 g }t        |       D ]l  \  }}}|
t        |      }t        |   }|t        v r"t	        |      r| }|dz   |dz  z   }|d|z  z  }n|t
        v r|dz  }nW||vs\|j                  |       n |S )Nrp   )r  r   r   r  r  r  r{   )r   r  r   r   r   r  r  labels           r6   r   r     s    
 F)$/ %C?B<D*40Fw$T*$C
SU*V#AF"e$% Mr   c              #   f   K   	 d }| j                         D ]  \  }}}|
||k7  s|}||f  y wr   )co_lines)r   lastliner   r   lines        r6   r   r     sO      H MMO sD 0H+ s   111c              #     K   	 t         d   }| j                  }| j                  }t        | j                        D cg c]  \  }}}|t
        k7  r||f }}}}t        |      D ]l  \  }\  }}	||k(  s|dk\  s||dz
     }
||dz
     }|
d   t        v s1|d   t        v s=t        |d   |d   |      }t        |
d   |
d   |      }||	   ||f n y c c}}}w w)NIMPORT_NAMErp   ro   r   )	opmapr   r   r  rF   r6  r   r  r   )r   r@  constsr   r  r   r   opargsr   opargfrom_oplevel_oplevelfromlists                 r6   _find_importsrI    s     &K\\FKKE*8*D ) )JAr3<' 3i )F )#F+ 6;BaQqSkGac{H
h&8A;(+B(!hqk6J+GAJ
FKU|UH556)s(   <CCC4C:CC":Cc              #      K   	 t         d   t         d   h}| j                  }t        | j                        D ]  \  }}}||v s||     y w)N
STORE_NAMESTORE_GLOBAL)rA  r   r  rF   )r   	STORE_OPSr   r  r   r   s         r6   _find_store_namesrN    s^     
 	lnI
 KKE$RZZ0 
2s?*s   A A
Ac                   P    e Zd Z	 ddddddZd Zd Zedddd       Zd	 Zd
 Z	y)r   NF)r   current_offsetr;   r<   c                   t        |      x| _        }||j                  | _        d| _        n|| _        ||j                  z
  | _        t        t        |            | _        || _        || _	        t        |      | _        || _        || _        y )Nr   )r   codeobjr   r   _line_offsetr   r   _linestarts_original_objectrP  r   r  r;   r<   )r   rV   r   rP  r;   r<   r   s          r6   __init__zBytecode.__init__  s    ,Q//r //DO !D(DO *R->-> >Dr 23 !,!7!;& r   c                    | j                   }t        t        || j                        |j                  |j
                  |j                  | j                  | j                  | j                  |j                         | j                  	      S )Nr&  )rR  r   r   r<   r   r   r   rT  rS  r  r   r;   )r   r   s     r6   __iter__zBytecode.__iter__  sk    \\&r4=='I')'='='){{BLL'+'7'7373D3D9=9O9O46OO4E373C3CE 	Er   c                 b    dj                  | j                  j                  | j                        S )Nz{}({!r}))format	__class__rU   rU  r   s    r6   r   zBytecode.__repr__  s*      !8!8!%!6!68 	8r   )r;   r<   c                    	 |j                   r|j                   }|j                   r | |j                  j                  |j                  ||      S )N)rP  r;   r<   )r`   ra   rb   rc   )clsrd   r;   r<   s       r6   from_tracebackzBytecode.from_traceback  sC    =jjB jjKKr{{^f
 	
r   c                 .    	 t        | j                        S r   )r   rR  r   s    r6   infozBytecode.info   s    A ..r   c                    	 | j                   }| j                  | j                  }nd}t        j                         5 }t	        t        || j                        |j                  |j                  |j                  | j                  | j                  ||| j                  |j                         | j                         |j                         cd d d        S # 1 sw Y   y xY w)N)
r  r   r   r   r   r9   r   r  r   r;   )rR  rP  ioStringIOrR   r   r<   r   r   r   rT  rS  r  r   r;   getvalue)r   r   r   outputs       r6   r   zBytecode.dis  s    A\\*((FF[[] 	%fr4==A242H2H%'[[BLL*.*:*:+/+<+<$*%+151G1G,.OO,=+/+;+;	= ??$	% 	% 	%s   BCC)
rU   r   r   rV  rX  r   classmethodr^  r`  r   r   r   r6   r   r     sF     )-Tu_d !	E8 /4u 
 
/%r   r   c                  N   dd l } | j                         }|j                  d| j                  d      dd       |j	                         }|j
                  5 }|j                         }d d d        t        |j
                  j                  d      }t        |       y # 1 sw Y   6xY w)Nr   infilerb?-)rT   nargsdefaultr1   )
argparseArgumentParseradd_argumentFileType
parse_argsri  readr2   r5   r   )ro  parserargsri  r4   r   s         r6   mainrw    s    $$&F
x'8'8'>cSVWD	 64;;++V4DI s   BB$__main__r   )NNNNr   r   NF)rb  )rb  NNNN)ir[   typescollectionsrc  r   r   _opcodes_allr   r   r   r   r	   r
   r   
MethodTypeFunctionTypeCodeTyperg  staticmethodrT   rL   rA  r   r   r   r   r  r   r  r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   listr   r   r   r   r   
startswith_empty_slotzipspec_opspecializedrJ   r   r7   r   r   r|   r   r   r   r   r   r   r   r   r   
namedtupler   r   __doc__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   rO   rR   rS   r   	_INT_BITSr7  r  r   r   rI  rN  r   rw  rU   )slotr5   basefamilyr  s   00000r6   <module>r     sG   6 
   	 	 	 	:<HI  2 2ENN</
 ^$%L	6N
G	  o&J < 
^$M"+	o&V}+	)*+, +, g6l%[
&/&<U
dPS@TtU-FG &G[&K%J{& +A*:*@*@*B &$V\GRK)+*Dee +*Zh4UU h" 	  
 *&.B<2@  $ #K"" VaZ		 &{%%
 V  B   :   S   T   Q   Q   #Y    &Y   #!s   -{--.D"$  3), 3)l '+ <0
 ) 6:269:?C(-	kZPd P (,4UUZ  ;?>B+c#b$(e+cZD 	 	i!m$00
6, E% E%P	 zF ] Vs   K("K(K.