
    ,hhg                       S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKrS SKrS SKrS SKrS SKr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QrS rS rS	 r " S
 S\5      r " S S5      r  " S S\ 5      r! " S S\ 5      r" " S S\ 5      r# " S S\RH                  5      r%Sr& " S S\RN                  \RP                  5      r)\*bR  / SQr+\+ H-  r,\*\-" \)S\,-   5      RT                  R]                  5       S-   -  r*M/     \*\)R^                  RT                  -  r*C+C,S+S jr0S+S jr1S r2S r3SS .S! jr4S,S" jr5S# r6S$ r7S%r8S& r9S' r:S(r;S) r<\=S*:X  a  S SK>r>\>Rx                  " 5         gg)-    N)contextmanager)CodeTypec                       \ rS rSrSrg)Restart`    N)__name__
__module____qualname____firstlineno____static_attributes__r       ,/opt/python-3.13.8/usr/lib/python3.13/pdb.pyr   r   `   s    r   r   )	runpmPdbrunevalrunctxruncall	set_tracepost_mortemhelpc                     S n[         R                  " U 5       HU  nUbM  UR                  S:X  a=  UR                  R                  b  UR                  R                  s  $ U R
                  s  $ UnMW     U R
                  $ )NRESUME)disget_instructionsopname	positionslinenoco_firstlineno)codeprevinstrs      r   find_first_executable_liner$   h   sn     D%%d+x 7%%1---&&& , r   c                   ^  [         R                  " S[         R                  " T 5      -  5      n [        R                  " U5      nSnS nU   [        USS9 H|  u  pxUR                  U5      (       a  XxpVOU(       a  XX-  nU(       d  M2   [        XQS5      n	[        U 4S jU	R                   5       5      n
[!        U
5      nT XU-   S-
  4s  sS S S 5        $    S S S 5        g ! [
         aG    [        R                  " U5      nU(       d   g [        R                  " SR                  U5      5      n Nf = f! [         a     M  f = f! , (       d  f       g = f)Nzdef\s+%s(\s*\[.+\])?\s*[(]    )startexecc              3   z   >#    U  H0  n[        U[        5      (       d  M  UR                  T:X  d  M,  Uv   M2     g 7fN)
isinstancer   co_name).0cfuncnames     r   	<genexpr> find_function.<locals>.<genexpr>   s4       S>a *1h 7 !"<=II<Q !">s   ;;	;)recompileescapetokenizeopenOSError	linecachegetlinesioStringIOjoin	enumeratematchSyntaxErrornext	co_constsr$   )r0   filenamecrefplinesfuncdef	funcstartr   liner!   funccodelineno_offsets   `           r   find_functionrL   y   s1   
**2RYYx5HH
IC)]]8$ GI	%b2LFyy%+7w"7f=D    S4>>  S S :8 D}+Dq+HHH! 
2 
" 3  )""8,[[(	)$ #  
" sM   C  9E
D45EE 'D1	%D10D14
E>EEE
Ec                     [        [        R                  " U 5      5      nUR                  5         U H  u  p4X:  d  M  Us  $    gNr   )listr   findlinestartsreverse)r!   lasti
linestartsir   s        r   lasti2linenorU      s>    c((./J	:M   r   c                       \ rS rSrS rSrg)_rstr   c                     U $ r+   r   selfs    r   __repr___rstr.__repr__   s    r   r   N)r	   r
   r   r   r\   r   r   r   r   rW   rW      s    r   rW   c                   :    \ rS rSr% \\S'   \\-  \S'   \\S'   Srg)_ExecutableTarget   rC   r!   	namespacer   N)	r	   r
   r   r   str__annotations__r   dictr   r   r   r   r_   r_      s    M
S.Or   r_   c                   P    \ rS rSrS rS r\S 5       r\S 5       r\S 5       r	Sr
g)	_ScriptTarget   c                 L   [         R                  R                  U5      U l        [         R                  R	                  U R                  5      (       d%  [        SU S35        [        R                  " S5        [         R                  R                  U R                  5      (       a%  [        SU S35        [        R                  " S5        [        R                  R                  (       d;  [         R                  R                  U R                  5      [        R                  S'   g g )NzError: z does not existr'   z is a directoryr   )ospathrealpath_targetexistsprintsysexitisdirflags	safe_pathdirname)r[   targets     r   __init___ScriptTarget.__init__   s    ww''/ww~~dll++GF8?34HHQK77==&&GF8?34HHQK yy""''//$,,7CHHQK #r   c                     U R                   $ r+   rl   rZ   s    r   r\   _ScriptTarget.__repr__       ||r   c                     U R                   $ r+   ry   rZ   s    r   rC   _ScriptTarget.filename   s    ||r   c                     [         R                  " U R                  5       nSUR                  5       < SU R                  < S3sS S S 5        $ ! , (       d  f       g = f)Nzexec(compile(z, z
, 'exec')))r;   	open_coderl   read)r[   rE   s     r   r!   _ScriptTarget.code   s?     \\$,,'2"2779-r$,,1AL (''s   #A
Ac                 6    [        SU R                  [        S S9$ )N__main__)r	   __file____builtins____spec__)rd   rl   r   rZ   s    r   ra   _ScriptTarget.namespace   s    \\%	
 	
r   ry   Nr	   r
   r   r   rv   r\   propertyrC   r!   ra   r   r   r   r   rf   rf      sJ    8   M M
 
 
r   rf   c                   P    \ rS rSrS rS r\S 5       r\S 5       r\S 5       r	Sr
g)	_ModuleTarget   c                 L   Xl         SS Kn UR                  U R                   5      u  o0l        U l        g ! [
         a.  n[        SU 35        [        R                  " S5         S nAg S nAf[         a.    [        R                  " 5         [        R                  " S5         g f = fNr   zImportError: r'   )rl   runpy_get_module_details_spec_codeImportErrorrn   ro   rp   	Exception	traceback	print_excr[   ru   r   _es        r   rv   _ModuleTarget.__init__   sw    	(-(A(A$,,(O%Az4: 	M!%&HHQKK 	!HHQK	s   (5 
B#$A((8B#"B#c                     U R                   $ r+   ry   rZ   s    r   r\   _ModuleTarget.__repr__   r{   r   c                 .    U R                   R                  $ r+   r   co_filenamerZ   s    r   rC   _ModuleTarget.filename       zz%%%r   c                     U R                   $ r+   r   rZ   s    r   r!   _ModuleTarget.code       zzr   c           	         [        S[        R                  R                  [        R                  R	                  U R
                  5      5      U R                  R                  U R                  R                  U R                  [        S9$ Nr   )r	   r   __package__
__loader__r   r   
rd   ri   rj   normcaseabspathrC   r   parentloaderr   rZ   s    r   ra   _ModuleTarget.namespace   Y    WW%%bggoodmm&DE

))zz((ZZ%
 	
r   r   r   rl   Nr   r   r   r   r   r      sH     & &   
 
r   r   c                   P    \ rS rSrS rS r\S 5       r\S 5       r\S 5       r	Sr
g)	
_ZipTarget   c                    SS K n[        R                  R                  U5      U l        [
        R                  R                  SU R                  5         UR                  5       u  o0l        U l	        g ! [         a.  n[        SU 35        [
        R                  " S5         S nAg S nAf[         a.    [        R                  " 5         [
        R                  " S5         g f = fr   )r   ri   rj   rk   rl   ro   insert_get_main_module_detailsr   r   r   rn   rp   r   r   r   r   s        r   rv   _ZipTarget.__init__   s    ww''/4<<(	(-(F(F(H%Az4: 	M!%&HHQKK 	!HHQK	s   A2 2
C <$B%%8C C c                     U R                   $ r+   ry   rZ   s    r   r\   _ZipTarget.__repr__  r{   r   c                 .    U R                   R                  $ r+   r   rZ   s    r   rC   _ZipTarget.filename  r   r   c                     U R                   $ r+   r   rZ   s    r   r!   _ZipTarget.code  r   r   c           	         [        S[        R                  R                  [        R                  R	                  U R
                  5      5      U R                  R                  U R                  R                  U R                  [        S9$ r   r   rZ   s    r   ra   _ZipTarget.namespace  r   r   r   Nr   r   r   r   r   r      sH     & &   
 
r   r   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )_PdbInteractiveConsolei  c                 .   > X l         [        TU ]	  USS9  g )NT)locals
local_exit)_messagesuperrv   )r[   nsmessage	__class__s      r   rv   _PdbInteractiveConsole.__init__   s    t4r   c                 $    U R                  USS9  g )Nr&   endr   )r[   datas     r   write_PdbInteractiveConsole.write$  s    d#r   r   )r	   r
   r   r   rv   r   r   __classcell__r   s   @r   r   r     s    5$ $r   r   z
-> c                   P  ^  \ rS rSrSrSr0 r  SeS jrS rS r	S r
S rS	 rS
 r\rS rS rS rS rS rS rS r\S 5       rS rS r\S 5       rS rS rS rS rS rS r SfS jr!S r"S r#\$S 5       r%U 4S  jr&S! r'S" r(S# r)S$ r*S% r+S& r,\(r-SgS' jr.S( r/\.r0\'r1\'r2S) r3\'r4S* r5S+ r6S, r7\(r8S- r9\(r:S. r;\(r<S/ r=\(r>S0 r?\?r@\'rA\'rBS1 rC\CrD\CrES2 rFS3 rGS4 rH\HrIS5 rJ\JrKS6 rL\LrMS7 rN\NrOS8 rP\PrQS9 rR\RrSS: rT\TrUS; rV\V=rWrXS< rY\YrZS= r[\)r\S> r]\]r^\]r_S? r`S@ ra\arbSA rc\crdSB reShSC jrfSD rgSE rhSF riSG rjSH rk\)rl\)rm\)rnSI ro\orpSJ rq\qrrSK rs\)rtSiSL jruSM rv\)rwSN rx\)rySO rzSP r{SQ r|SR r}SS r~ST r/ SUQrSV r\4SW jrSX r\rSY rSZ rS[ rS\\4S] jrS^\4S_ jrS` rSa rSjSb jrSc rSdrU =r$ )kr   i1  Ni  c                    [         R                  R                  XS9  [        R                  R                  XX#5        [
        R                  " S5        U(       a  SU l        SU l        0 U l	        0 U l
        SU l        SU l        0 U l         SS KnUR                  S5        SU l        XPl        [        R                  R&                  S-   U l        / U l        U(       a{   [+        [,        R.                  R1                  S	5      S
S9 nU R(                  R3                  U5        S S S 5         [+        SS
S9 nU R(                  R3                  U5        S S S 5        0 U l        0 U l        0 U l        SU l        S U l        [A        5       U l!        SU l"        g ! [          a     Nf = f! , (       d  f       N= f! [4         a     Nf = f! , (       d  f       Ny= f! [4         a     Nf = f)N)skipzpdb.Pdbr   z(Pdb) r&   Fz 	
`@#%^&*()=+[{]}\|;:'",<>?z=.[](),"'+-*/%@&|<>~^z~/.pdbrczutf-8)encodingz.pdbrc)#bdbBdbrv   cmdCmdro   audituse_rawinputpromptaliases
displaying
mainpyfile_wait_for_mainpyfile	tb_linenoreadlineset_completer_delimsr   allow_kbdintnosigint
identcharsrcLinesr7   ri   rj   
expanduserextendr8   commandscommands_dopromptcommands_silentcommands_definingcommands_bnumtuple_chained_exceptions_chained_exception_index)	r[   completekeystdinstdoutr   r   readrcr   rcFiles	            r   rv   Pdb.__init__:  s   )E:		) !D$)!	))*LM "  '',,/GG "'',,Z87KvLL''/ L(W5LL''/ 6
 !#!!&! $)7 ()%E  		 LK  65 sr   F  'F5 F$#F5 ,
G 6GG 
F! F!$
F2.F5 2F5 5
GG
GG G 
G#"G#c                     U R                   (       a  [        eU R                  S5        U R                  5         U R	                  U5        g )Nz-
Program interrupted. (Use 'cont' to resume).)r   KeyboardInterruptr   set_stepr   )r[   signumframes      r   sigint_handlerPdb.sigint_handlerp  s3    ##EFur   c                 b    [         R                  R                  U 5        U R                  5         g r+   )r   r   resetforgetrZ   s    r   r  	Pdb.resetw  s    dr   c                    S U l         / U l        SU l        [        U S5      (       a7  U R                  (       a&  U R                  R
                  R                  SS 5        S U l        0 U l        U R                  R                  5         g )Nr   curframe__pdb_convenience_variables)
r   stackcurindexhasattrr  	f_globalspopcurframe_localsr   clearrZ   s    r   r  
Pdb.forget{  sd    
4$$MM##''(EtL!r   c                 f   U R                  5         U R                  X5      u  U l        U l        U(       aW  [	        UR
                  R                  UR                  5      nX0R                  UR
                  '   UR                  nU(       a  MW  U R                  U R                     S   U l
        U R                  R                  U l        U R                  U R                  SU R                  5        U R                  (       a4  U R                  U R                  SU R                  U R                     5        U R                   (       ag  U R                    Vs/ s HB  nUR#                  5       (       d  M  UR#                  5       R%                  S5      (       a  M@  UPMD     snU l        / U l        g g s  snf )Nr   _frame
_exception#)r  	get_stackr	  r
  rU   tb_framef_codetb_lastir   tb_nextr  f_localsr  set_convenience_variabler   r   r   strip
startswithcmdqueue)r[   ftbr   rI   s        r   setup	Pdb.setup  s?   $(NN1$9!
DM ""++"4"4bkkBF*0NN2;;'B b 

4==1!4  $}}55%%dmmXt}}M##))(()F)FG <<!%!-::< (,

(?(?(D DM DL s   F.1"F.F.c                     U R                   (       a  g U R                  U5      (       a$  U R                  S5        U R                  US 5        g g )Nz--Call--)r   	stop_herer   interaction)r[   r   argument_lists      r   	user_callPdb.user_call  s@     $$>>%  LL$UD) !r   c                 L   U R                   (       a;  U R                  U R                  UR                  R                  5      :w  a  g SU l         U R
                  (       a  UR                  c  U R                  5         g U R                  U5      (       a  U R                  US 5        g g )NF)
r   r   canonicr  r   trace_opcodesf_linenoset_stepinstrbp_commandsr%  )r[   r   s     r   	user_linePdb.user_line  s    $$4<<0H0H#II(-D% ~~%""$E""UD) #r   c                    [        U SS5      (       a  U R                  U R                  ;   a  U R                  nSU l        U R                  nU R	                  US 5        U R                  U    H  nU R                  U5        M     X0l        U R                  U   (       d(  U R                  U R                  U R                     5        U R                  U   (       a  U R                  5         U R                  5         g g)N	currentbpFr   r'   )getattrr2  r   lastcmdr!  onecmdr   print_stack_entryr	  r
  r   _cmdloopr  )r[   r   r2  lastcmd_backrI   s        r   r.  Pdb.bp_commands  s     4e,,~~.IDN<<LJJud#i0D! 1'L''	2&&tzz$--'@A%%i0KKMr   c                     U R                   (       a  g X!R                  S'   U R                  USU5        U R                  S5        U R	                  US 5        g )N
__return___retvalz
--Return--)r   r  r  r   r%  )r[   r   return_values      r   user_returnPdb.user_return  sH    $$'3|$%%eYE\"%r   c                    U R                   (       a  g Uu  p4nX44UR                  S'   U R                  USU5        U(       d  U[        L a  SOSnU R	                  U< U R                  U5      < 35        U R                  X5        g )N__exception__r  z	Internal r&   )r   r  r  StopIterationr   _format_excr%  )r[   r   exc_infoexc_type	exc_valueexc_tracebackprefixs          r   user_exceptionPdb.user_exception  s     $$-5*]*2*='%%e\9E &3(0M(A HJ 	vt'7'7	'BCD.r   c                       SU l         U R                  5         SU l         g ! [         a    U R                  S5         Of = fMC  )NTFz--KeyboardInterrupt--)r   cmdloopr   r   rZ   s    r   r7  Pdb._cmdloop  sI    6 %)!$)!$ 6456 s   " A A c                 ,    U R                   R                  R                  n[        R                  R                  U5      nXR                  ;   a'  X R                  U   :w  a  U R                  SU S35        X R                  U'   g ! [         a     g f = f)Nz*** WARNING: file 'z;' was edited, running stale code until the program is rerun)	r  r  r   ri   rj   getmtimer   _file_mtime_tabler   )r[   rC   mtimes      r   _validate_file_mtimePdb._validate_file_mtime  s    	}}++77HGG$$X.E ...++H55LL.xj 9I I J+0x(  		s   ?B 
BBc                 L   U R                   R                  U R                  5      nU(       ax  UR                  5        Hc  u  p#U R	                  U5      nXCLd  M  XC:w  d  M#  XAU'   U R                  SU< SU R                  XB5      < SU R                  X25      < S35        Me     g g )Ndisplay : z  [old: ])r   getr  items_getval_exceptr   
_safe_repr)r[   r   exproldvaluenewvalues        r   _show_displayPdb._show_display  s    __((7
","2"2"4..t4 +0D'/t$LL"&(G"&//("A"C D #5 r   c                    / n[        U[        5      (       a  UR                  UpCUb  XB;   a  OUR                  U5        UR                  b  UR                  nO*UR
                  b  UR                  (       d  UR
                  n[        U5      U R                  :  a   U R                  SU R                   S35        OUb  M  OUn[        [        U5      5      U4$ )Nz
More than zQ chained exceptions found, not all exceptionswill be browsable with `exceptions`.)r,   BaseException__traceback__append	__cause____context____suppress_context__lenMAX_CHAINED_EXCEPTION_DEPTHr   r   reversed)r[   	tb_or_exc_exceptionsr   currents        r   _get_tb_and_exceptionsPdb._get_tb_and_exceptions#  s     i//!*!8!8)w%)""7+$$0%//G''3G<X<X%11G{#t'G'GGLL$T%E%E$F??
 # %& "IXk*+Y66r   c              #      #     Xl         [        U5      S-
  U l        S v   [        5       U l         SU l        g ! [        5       U l         SU l        f = f7f)Nr'   r   )r   rh  r   r   )r[   
exceptionss     r   _hold_exceptionsPdb._hold_exceptionsG  sM     	.'1$,/
Oa,?D) (-wD$,-D) (-wD$,-D)s   A8 AAAc                    [         R                  (       a?   [        R                  " [        R                  [         R                  5        S [         l        U R                  U5      u  p4[        U[        5      (       a   U R                  U5         U R                  X5        U R                  R                  S5        U R                  5         U R                  (       a-  U R                  S   S:X  a  U R                  R                  5         U R                  5         S S S 5        g ! [         a     Nf = f! , (       d  f       g = f)N_pdbcmd_print_frame_status)r   _previous_sigint_handlersignalSIGINT
ValueErrorrn  r,   rb  rr  r!  r  rd  r7  r  r  )r[   r   rk  r   r   s        r   r%  Pdb.interaction\  s    ''4fmmS-I-IJ 04,"&"="=i"Hi//""#67JJu! MM  !=>MMO}}r!26R!R!!#KKM 87   87s   3D" BD2"
D/.D/2
E c                 @    Ub  U R                  [        U5      5        g g r+   )r   repr)r[   objs     r   displayhookPdb.displayhookw  s    
 ?LLc# r   c              #   r   #    U R                   n U R                  U l         S v   Xl         g ! Xl         f = f7fr+   )completenamescompletedefault)r[   r  s     r   _disable_command_completionPdb._disable_command_completion  s8     **	/!%!5!5D!. "/s   7, 747c                 *  ^
 [        USS5      n[        S UR                   5       5      (       d  g[        U5      m
S 0 S.T
S'    [        USS5        SU-   nS	[
        R                  " US
5      -   S-   S-   S-   nSSR                  S T
 5       5      -   S-   S-   SR                  S T
 5       5      -   S-   [
        R                  " US5      -   S-   S-   n0 n [        U0 U5        US   " 5       n[        U
4S jUR                   5       5      n [        XBT
US9  T
S   nUS   R                  S5        UR                  US   5        US   n	U	b  [        [        U	5      5        g! [         a     GNf = f! [         a     gf = f! [         a     gf = f)N<string>r)   c              3   B   #    U  H  n[        U[        5      v   M     g 7fr+   )r,   r   )r.   consts     r   r1   'Pdb._exec_in_closure.<locals>.<genexpr>  s     KN5:eX..Ns   F)result
write_back__pdb_eval__evalz__pdb_eval__['result'] = ztry:
  
z	finally:
z'  __pdb_eval__['write_back'] = locals()zdef __pdb_outer():
c              3   .   #    U  H  nS U S3v   M     g7f)r  z = NoneNr   r.   vars     r   r1   r    s     (Rks2cU'):ks   z  def __pdb_scope():
c              3   ,   #    U  H
  nS U 3v   M     g7f)z    nonlocal Nr   r  s     r   r1   r    s     (V+3=)>+s   z    z  return __pdb_scope.__code____pdb_outerc              3   n   >#    U  H*  n[         R                  " TR                  U5      5      v   M,     g 7fr+   )typesCellTyperX  )r.   r  locals_copys     r   r1   r    s(     WFVsenn[__S%9::FVs   25)closurer  r  T)r4   anyrB   rd   r@   textwrapindentr=   r)   r   r   co_freevarsr  updatern   r}  )r[   sourceglobalsr   r!   source_with_closurer   cellspdb_evaleval_resultr  s             @r   _exec_in_closurePdb._exec_in_closure  s    vz62KDNNKKK 6l '
N#	:FJ/ 169F //&$/0267 <<  6#yy(Rk(RR SUY Z7 8  $yy(V+(VV W Z^ ^  (vv>	 ? BF	 F
  ? ? 	$b"- - "WdFVFVWW	U;
 ~. 	"">2 	h|,-x("${#$o  		@  		  		s6   E$ E5 F $
E21E25
FF
FFc                    US S S:X  a  USS  R                  5       nU R                  nU R                  R                  n Un[        R
                  " US-   SS5      =nGc7  U R                  5          UnSn[        R
                  " USS5      =nc  U R                  (       a   [        U5      nOU R                  R                  U5        U R                  R                  5         U R                   R#                  5       n[%        U5      (       dF  SU l        U R                  R                  S5        U R                  R                  5          S S S 5        g UR'                  S5      nUSU-   -  n[        R
                  " USS5      =nc  M  X@l        S S S 5        [(        R                  n[(        R                   n[(        R*                  n	 U R                   [(        l        U R                  [(        l        U R*                  [(        l        U R-                  XCU5      (       d  [/        XSU5        U[(        l        U[(        l        U	[(        l        g ! [        [        4 a    SU l        [        S5         S S S 5        g f = f! , (       d  f       N= f! U[(        l        U[(        l        U	[(        l        f = f!   U R1                  5          g = f)	Nr'   !r  <stdin>singlez...   r&   z
)r  r  r  r  codeopcompile_commandr  r   inputEOFErrorr   r4  rn   r   r   flushr   r   rh  rstripro   r  r  r)   
_error_exc)
r[   rI   r   r  bufferr!   continue_promptsave_stdout
save_stdinsave_displayhooks
             r   defaultPdb.default  s=   8s?48>>#3D%%--))*	F..td{IxPPY557!F&.O#)#9#9&)X#VV4_,,'',_'= !KK--o> KK--/#'::#6#6#8D#&t99/1 $ 1 1$ 7 $ 1 1 3 &' 87* (,{{6':$+-' $*#9#9&)X#VV4_( $*L/ 80 **KJ"	3 JJ	![[
"&"2"2,,VfEE/(
&	"2; %-.?#@ '/1 %d & 87' 87D )
&	"2	OOsz    1J4 11I=#I.BI=J4 4I=
I=8J4 	A"J +!J4 "I:/I=0J4 9I::I==
JJ4 #J11J4 4Kc                 4   SU;  a  U$ S=p#/ n [         R                  " [        R                  " U5      R                  5       H^  nUu  pgpn
U[
        R                  :X  a
  US:X  a  Xp2M'  X:X  d  M.  U[
        R                  :X  d  MD  UR                  US   U	S   U45        M`     U(       d  U$ Sn/ nU H"  u  pnUR                  XU SU S3-   5        U	nM$     UR                  XS  5        SR                  U5      $ ! [         R                   a    Us $ f = f)N$rv  r'   r   z__pdb_convenience_variables["z"]r&   )r6   generate_tokensr;   r<   r   tokenOPNAMErd  
TokenErrorr=   )r[   rI   dollar_start
dollar_endreplace_variablest
token_typetoken_stringr(   r   r   last_endline_piecesnames                 r   _replace_convenience_variables"Pdb._replace_convenience_variables  s&   
 d?K$&&		--bkk$.?.H.HI:;7
%a)lc.A/4*(Z5::-E%,,l1os1v|-TU J !K 1EtU38UVZU[[]6^^_H !2 	4	?+ww{## "" 	K	s   AC> 1C> C> >DDc                 8   UR                  5       (       d  U$ UR                  5       nUS   U R                  ;   a  U R                  US      n[        SS5       H  nSU 3U;   aB  U[	        U5      :  a  U R                  SUS    S35          gUR                  SU 3X#   5      nMN  SU;  d  MV  U[	        U5      :  a  U R                  S	US    S35          g  O   UR                  SS
R                  USS  5      5      nUR                  5       nUS   U R                  ;   a  M  US   S:w  a[  UR                  S5      nUS:  aD  XS-   S  R                  5       nU R                  R                  SU5        US U R                  5       nU R                  U5      nU$ )Nr   r'   
   %z Not enough arguments for alias ''r  %*zToo many arguments for alias ' aliasz;;   )r  splitr   rangerh  errorreplacer=   findlstripr  r   r  r  )r[   rI   argsidxmarkerrA   s         r   precmd
Pdb.precmd.  s   zz||Kzz|1g%<<Q(DQ|se9$c$i'

%Ed1gYa#PQ"<<!C5	49=D%SY

%CDG9A#NO" $ <<chhtABx&89D::<D# 1g%( 7gYYt_F{1HI--/$$Q-GV}++- 2248r   c                 :   U R                   (       dz  U R                  5         UR                  S5      (       a5  U R                  U5      u  p#n[	        X5      (       a  [        X5      " U5      $ [        R                  R                  X5      $ U R                  U5      $ )N_pdbcmd)
r   rR  r  	parseliner  r3  r   r   r5  handle_command_def)r[   rI   commandargs       r   r5  
Pdb.onecmdT  sz     %%%%'y))%)^^D%9"d4))"41#6677>>$--**400r   c                    U R                  U5      u  p#nU(       d  gUS:X  a  SU R                  U R                  '   gUS:X  a  gU R                  U R                     nU(       a  UR	                  US-   U-   5        OUR	                  U5         [        U SU-   5      nUR                  U R                  ;   a  SU R                  U R                  '   gg! [         a    U R                  n NMf = f)NFsilentTr   r  do_)r  r   r   r   rd  r3  AttributeErrorr  r	   commands_resumingr   )r[   rI   r   r  cmdlistfuncs         r   r  Pdb.handle_command_defe  s    -$(?7;D  !3!34E\-- 2 23NN3s73;'NN3	 4-D ==D2229>D""4#5#56  	 <<D	 s   C C+*C+c                 ,    [        XU R                  S9  g )N)r   filern   r   )r[   msgr   s      r   r   Pdb.message  s    c-r   c                 ,    [        SXR                  S9  g )Nz***)r  r  )r[   r  s     r   r  	Pdb.error  s    eS{{+r   c                 d    SUR                   ;  a  0 UR                   S'   X1R                   S   U'   g )Nr  )r  )r[   r   r  values       r   r  Pdb.set_convenience_variable  s/    (?=?EOO9:?D56t<r   c                    [        U S5      (       d>   SS KnUR                  5       nSSKJn  X0l        UR                  U5        U R
                  $ U R
                  $ ! [         a    SSKJn  X0l         U R
                  $ f = f)N_rlcompleterr   )	Completer)r  r   get_completerrlcompleterr  r  set_completerr   )r[   r   prev_completerr  s       r   r  Pdb.rlcompleter  s     t^,,7 "*!7!7!91$-!&&~6   t     .1$-!    .s   A B ?B c                   > [         TU ]  XX45      nU R                   H,  nUR                  U5      (       d  M  UR	                  U5        M.     U(       a  U$ U R                  XX45      nU(       a  U$ U R                  XX45      $ r+   )r   r  r   r  rd  _complete_expressionr  )	r[   textrI   begidxendidxr   r  expressionsr   s	           r   r  Pdb.completenames  sy     7(VD\\E%%& " O33DOK""''FCCr   c                 <   UR                  5       R                  S5      (       a  / $  U R                  XX45      n[        R                  " [        R
                  " U5      S-   5      nU H  n[        R                  R                  U5      (       a  UR                  US-   5        M=  [        R                  R                  U5      (       d  Mc  UR                  5       R                  S5      (       d  M  UR                  US-   5        M     U$ ! [         a    / n Nf = f)N):,*/).pyz.pywr  )r  endswithr  r   globr5   ri   rj   rq   rd  isfilelower)r[   r  rI   r  r  retglobsfns           r   _complete_locationPdb._complete_location  s    ::<  ,,I	++DGC 		$++d+c12Bww}}R  

28$##
(;(;O(L(L

28$	 
 
  	C	s   D DDc                     [        [        R                  R                  5       VVs/ s H6  u  pVUc  M
  [	        U5      R                  U5      (       d  M+  [	        U5      PM8     snn$ s  snnf r+   )r>   r   
Breakpoint
bpbynumberrb   r  )r[   r  rI   r  r  rT   bps          r   _complete_bpnumberPdb._complete_bpnumber  sZ     %.cnn.G.G$H ?$H51 &)!f&7&7&= A$H ? 	? ?s   	A(A(A(c                    U R                   (       d  / $ 0 U R                   R                  EU R                  EnUR                  S5      (       aV  U R                   R                  R	                  S0 5      nU Vs/ s H"  owR                  USS  5      (       d  M  SU 3PM$     sn$ SU;   a  UR                  S5      n XXS      n	USS  H  n
[        X5      n	M     SR                  US S 5      S-   n[        U	5       Vs/ s H!  oR                  US   5      (       d  M  X-   PM#     sn$ UR                  5        Vs/ s H  oR                  U5      (       d  M  UPM     sn$ s  snf ! [        [        4 a    / s $ f = fs  snf s  snf )Nr  r  r'   .r   rv  )r  r  r  r  rX  r  r3  KeyErrorr  r=   dirkeys)r[   r  rI   r  r  r   	conv_varsr  dottedr~  partrH  ns                r   r  Pdb._complete_expression  s`   }}I A''@4+?+?@??3//334QSUVI+4R94QR8QJavJ9RR$; ZZ_Fm"1RLD!#,C ) XXfSbk*S0F(+CM1LL4LJFJMM  "wwy?y!LL,>Ay??! S n- 	 N @s6   8E!	E!<E& >E>E>;FF&E;:E;c                    UR                  S5      (       aV  U R                  R                  R                  S0 5      nU Vs/ s H"  ofR                  USS  5      (       d  M  SU 3PM$     sn$ Sn/ nU R	                  U R                  R                  U R
                  -  5      n	U	R                  X5      =n
b,  UR                  U
5        US-  nU	R                  X5      =n
b  M,  U$ s  snf )Nr  r  r'   r   )r  r  r  rX  r  r  completerd  )r[   r  rI   r  r  r!  r  statematches	completerr?   s              r   r  Pdb.completedefault  s    ??3//334QSUVI+4R94QR8QJavJ9RR$$T]]%<%<t?S?S%ST	!**477uDNN5!QJE "**477uD  Ss   C%!	C%c                 t    U R                  U R                  U R                     5        U R                  5         g r+   )r6  r	  r
  r_  r[   r  s     r   ru  Pdb._pdbcmd_print_frame_status   s)    tzz$--89r   c                    U(       d'  [        [        R                  R                  5      S-
  nO [	        U5      n U R                  U5        X l	        X R                  ;   a-  U R                  U   U R                  U   U R                  U   4nOS n/ U R                  U'   SU R                  U'   SU R                  U'   U R                  nSU l        SU l         U R                  5         SU l        XPl        g !   U R                  U5         g = f! [         a  nU R                  SU-  5         S nAg S nAff = f! [          ay    U(       a7  US   U R                  U'   US   U R                  U'   US   U R                  U'   O'U R                  U	 U R                  U	 U R                  U	 U R                  S5         Nf = f! SU l        XPl        f = f)	Nr'   zcannot set commands: %sTFz(com) r   r  z1command definition aborted, old commands restored)rh  r   r  r  int_print_invalid_argget_bpbynumberrz  r  r   r   r   r   r   r   rL  r   )r[   r  bnumerrold_command_defsprompt_backs         r   do_commandsPdb.do_commands  s   J s~~001A5D3x	%
 "==  $d 3 $ 6 6t < $ 4 4T : <  $ d'+t$%*T"kk!%	&LLN &+D"%KO'',  	JJ0367	* ! 
	L&6q&9d#/?/B&&t,-=a-@$$T*MM$'**40((.JJJK
	L &+D"%KsG   C7 D D: 7D
D7D22D7:B F=:G  <F==G   Gc                 8   U(       dl  U R                   (       aZ  U R                  S5        [        R                  R                   H+  nU(       d  M  U R                  UR                  5       5        M-     g S nS nS nUR                  S5      nUS:  aZ  XS-   S  R                  5       nU R                  U5      =n(       a  U R                  SU< SU< 35        g US U R                  5       nUR                  S5      n	S n
U	S:  ad  US U	 R                  5       nU R                  U5      nU(       d  U R                  SU-  5        g UnXS-   S  R                  5       n [        U5      nO [        U5      nU(       d  U R5                  5       nU R7                  XE5      nU(       ax  U R9                  UUX&U
5      nU(       a  U R                  U5        g U R;                  UU5      S   nU R                  SUR<                  UR>                  UR@                  4-  5        g g ! [         a    U R                  S	U-  5         g f = f! [         a     [        UU R                   R"                  U R$                  5      nO	!   Un O= f ['        US
5      (       a  UR(                  nUR*                  nUR,                  n
[/        U5      nUR0                  n GN\!   U R3                  U5      u  pnU(       d  U R                  SU-  5          g Un
[        U5      n  GN= ff = f)Nz!Num Type         Disp Enb   Wherer	  r   r'   Invalid condition rV  r  z%r not found from sys.pathzBad lineno: %s__func__zJThe specified object %r is not a function or was not found along sys.path.rv  zBreakpoint %d at %s:%d)!breaksr   r   r  r  bpformatr  r  _compile_error_messager  r  rfindlookupmoduler0  rz  r  r  r  r  r  r;  __code__r-   r$   r   lineinfodefaultFile	checkline	set_break
get_breaksnumberr  rI   )r[   r  	temporaryr  rC   r   condcommar4  colonr0   r  r  r!   oklnrI   s                    r   do_breakPdb.do_break]  s     {{@A..33BrR[[]3 4  19Qwx='')D11$77s7

sCDfu+$$&C		#A:6E{))+H!!(+A

7(BCAgh-&&(CS%S4 '')H~~h/..4(KC

3__Xt4R85 ii"'':; < I  

+c12  % $ 7 7 $ 4 46DD%tZ00#}}==D  $||H7=F#//H%)-s);&R2

 $FHK$L M!H WF1%s[   H )I  H=<H= 
L+I76L7I=;LAK1LLLLLc                     U R                   R                  R                  nUS:X  a  U R                  (       a  U R                  nU$ )Nr  )r  r  r   r   )r[   rC   s     r   rC  Pdb.defaultFile  s3    ==''33z!dooHr   c                 (    U R                  US5        g Nr'   )rN  r-  s     r   	do_tbreakPdb.do_tbreak  s     	c1r   c                    SnUR                  S5      n[        U5      S:X  a  US   R                  5       nO%[        U5      S:X  a  US   R                  5       nOU$ US:X  a  U$ UR                  S5      nUS   S:X  a  US	 [        U5      S:X  a  U$ U R                  5       n[        U5      S:X  a  US   nO"U R	                  US   5      nU(       a  UnUS   n[        XpR                  U5      5      n	U	=(       d    U$ )	N)NNNr  r'   r      r&   r  r[   )r  rh  r  rC  r@  rL   r*  )
r[   
identifierfailedidstringidpartsfnameitemr  answers
             r   rB  Pdb.lineinfo  s    ###C(x=A!""$B]a!""$BM8F]8va5zQ  "u:?8D !!%(+A8Dt\\%%89r   c                 2   [        U SS 5      nU(       a  UR                  OS n[        R                  " XU5      nU(       d  U R	                  S5        gUR                  5       nU(       a  US   S:X  d  US S S:X  d	  US S S:X  a  U R                  S5        gU$ )	Nr  zEnd of filer   r  rW  z"""z'''zBlank or comment)r3  r  r9   getliner   r  r  )r[   rC   r   r   r  rI   s         r   rD  Pdb.checkline  s     j$/#(d  59LL'zz|aC2Ah%D!H$5JJ)*r   c                     UR                  5       nU H9  n U R                  U5      nUR                  5         U R                  SU-  5        M;     g ! [         a  nU R                  U5         S nAM_  S nAff = f)Nz
Enabled %s)r  r2  enabler   rz  r  r[   r  r  rT   r  r4  s         r   	do_enablePdb.do_enable  si     yy{A0((+ 		\B./    

3    A
A7A22A7c                     UR                  5       nU H9  n U R                  U5      nUR                  5         U R                  SU-  5        M;     g ! [         a  nU R                  U5         S nAM_  S nAff = f)NzDisabled %s)r  r2  disabler   rz  r  rf  s         r   
do_disablePdb.do_disable  si     yy{A1((+ 

]R/0    

3 ri  c                     UR                  SS5      n US   nU R                  U5      =n(       a  U R                  SU< SU< 35        g   U R	                  US   R                  5       5      nX5l        U(       d  U R                  SUR                  -  5        g U R                  SUR                  -  5        g ! [         a    S n N|f = f! [         a    U R                  S5         g [         a  nU R                  U5         S nAg S nAff = f)	Nr  r'   r:  rV  r   z#Breakpoint %d is now unconditional.z$New condition set for breakpoint %d.Breakpoint number expected)
r  r>  r  
IndexErrorr2  r  rI  r   rG  rz  )r[   r  r  rI  r4  r  s         r   do_conditionPdb.do_condition2  s     yya 	7D11$77s7

sCD 8
	Q$$T!W]]_5B GBRYYNOCbiiOP  	D	  	5JJ34 	JJsOO	s/   6B: "C :C	C	D)	D2DDc                 d   UR                  5       nU(       d  U R                  S5        g [        U5      S:X  a  SnO1[        U5      S:X  a   [        US   5      nOU R                  U5        g  U R                  US   R                  5       5      nX4l        US:  a.  US:  a  SU-  nOSnU R                  SXTR                  4-  5        g U R                  SUR                  -  5        g ! [         a    U R                  U5         g f = f! [         a  nU R                  U5         S nAg S nAff = f)	Nro  r'   r   r  z%d crossingsz
1 crossingz%Will ignore next %s of breakpoint %d.z-Will stop next time breakpoint %d is reached.)r  r  rh  r0  rz  r1  r2  r  ignorer   rG  )r[   r  r  countr  countstrr4  s          r   	do_ignorePdb.do_ignoreQ  s     yy{JJ34t9>EY!^DG
 ##C(	*$$T!W]]_5B Iqy19-5H+HD&		23 4 L!yy) *)  '',  	JJsOO	s*   C) ."D
 )DD

D/D**D/c                    U(       d   [        S5      nUR                  5       R                  5       nUS;   a_  [        R
                  R                   Vs/ s H  o3(       d  M  UPM     nnU R                  5         U H  nU R                  SU-  5        M     g SU;   a  UR                  S5      nUS U nXS-   S  n [        U5      nU R                  Xg5      S S  nU R                  Xg5      nU(       a  U R                  U5        g W H  nU R                  SU-  5        M     g UR                  5       n	U	 H:  n U R!                  U5      nU R#                  U5        U R                  SU-  5        M<     g ! [         a    Sn GNof = fs  snf ! [         a    SU-  n Nf = f! [         a  nU R                  U5         S nAM  S nAff = f)NzClear all breaks? no)yyesz
Deleted %sr  r'   zInvalid line number (%s))r  r  r  r  r   r  r  clear_all_breaksr   r?  r0  rF  clear_breakrz  r  r  r2  clear_bpbynumber)
r[   r  replyr  bplistrT   rC   r   r4  
numberlists
             r   do_clearPdb.do_clear}  s    23 KKM'')E$'*~~'@'@G'@B"'@G%%' BLL!23 !#:		#A2AwHcd)C9S :1=&&x8

3  !BLL!23 !YY[
A0((+ %%a(\B./ 9   H  70367   

3 sG   E4 
F"F<F 9F!4FFFF!
G+GGc                 V    U(       a  U R                  U5        g U R                  5         g r+   )r1  print_stack_tracer-  s     r   do_wherePdb.do_where  s$     ##C( r   c                 4   Xl         U R                  U R                      S   U l        U R                  R                  U l        U R                  U R                  SU R                  5        U R                  U R                  U R                      5        S U l        g )Nr   r  )r
  r	  r  r  r  r  r6  r   )r[   rG  s     r   _select_framePdb._select_frame  sn    

4==1!4#}}55%%dmmXt}}Mtzz$--89r   c                 <   U R                   (       d  U R                  S5        g U(       d  [        U R                   5       Hs  u  p#X R                  :X  a  SOSn[	        U5      n[        U5      S:  a  US S S-   nU R                   U   R                  c  SOUS nU R                  U SU SU 35        Mu     g  [        U5      nS
Us=::  a  [        U R                   5      :  a  O  OU R                   U   R                  c  U R                  S5        g Xpl        U R                  S U R                   U   R                  5        U R                  U R                  U R                     5        g U R                  S5        g ! [         a    U R                  S	5         g f = f)NzDid not find chained exceptions. To move between exceptions, pdb/post_mortem must be given an exception object rather than a traceback.>r  P   M   z...z  -z>3zArgument must be an integerr   z;This exception does not have a traceback, cannot jump to itzNo exception with that number)r   r   r>   r   r}  rh  rc  r0  rz  r  r!  r6  r	  r
  )r[   r  ixexcr   rep	indicatorrG  s           r   do_exceptionsPdb.do_exceptions  sy    ''LL3
 $T%=%=> "&C&C C3is8b=cr(U*C //3AAI r7 
 xq1SE:; ?S F:S!9!9::++F3AAIJJ\]06-

4!9!9&!A!O!OP&&tzz$--'@A

:;  

89s   9E= =FFc                     U R                   S:X  a  U R                  S5        g  [        U=(       d    S5      nUS:  a  SnO[	        SU R                   U-
  5      nU R                  U5        g ! [         a    U R                  SU-  5         g f = f)Nr   zOldest framer'   Invalid frame count (%s))r
  r  r0  rz  maxr  r[   r  ru  newframes       r   do_up	Pdb.do_up  s     ==AJJ~&	qME 19H1dmme34H8$  	JJ1C78	s   A, ,BBc                    U R                   S-   [        U R                  5      :X  a  U R                  S5        g  [	        U=(       d    S5      nUS:  a  [        U R                  5      S-
  nO/[        [        U R                  5      S-
  U R                   U-   5      nU R                  U5        g ! [
         a    U R                  SU-  5         g f = f)Nr'   zNewest framer  r   )r
  rh  r	  r  r0  rz  minr  r  s       r   do_downPdb.do_down  s     ==1DJJ/JJ~&	qME 194::*H3tzz?Q.0EFH8$  	JJ1C78	s   B. .CCc                    U(       a8   [        U5      nX R                  R                  ::  a  U R                  S5        g OS nU R                  U R                  U5        g! [         a    U R                  SU-  5         g f = f)NError in argument: %rz7"until" line number is smaller than current line numberr'   )r0  rz  r  r  r,  	set_until)r[   r  r   s      r   do_untilPdb.do_until!  s     S ///

 ) * 0
 Ft}}f-  

2S89s   A B ?B c                 V    U(       a  U R                  U5        g U R                  5         grS  )r1  r   r-  s     r   do_stepPdb.do_step:  s$     ##C(r   c                 l    U(       a  U R                  U5        g U R                  U R                  5        grS  )r1  set_nextr  r-  s     r   do_nextPdb.do_nextH  s+     ##C(dmm$r   c                    U(       aE  SS K n[        R                  SS n UR                  U5      [        l        U[        R                  S S& [        e! [         a#  nU R                  SU< SU< 35         S nAg S nAff = f)Nr   r'   zCannot run rV  )shlexro   argvr  rz  r  r   )r[   r  r  argv0r   s        r   do_run
Pdb.do_runU  sj     HHQqME ;;s+ !CHHRaL  

#q9:s   A 
B A;;B c                 l    U(       a  U R                  U5        g U R                  U R                  5        grS  )r1  
set_returnr  r-  s     r   	do_returnPdb.do_returnk  s+    
 ##C(&r   c                 
   U(       a  U R                  U5        g U R                  (       d9   [        R                  " [        R                  U R                  5      [
        l        U R                  5         g! [         a     Nf = frS  )	r1  r   rx  ry  r   r   rw  rz  set_continuer-  s     r   do_continuePdb.do_continuew  sk    
 ##C(}}MM&--1D1DE , 	  
 s   8A5 5
BBc                     U R                   S-   [        U R                  5      :w  a  U R                  S5        g  [	        U5      n XR
                  l        U R                  U R                      S   U4U R                  U R                   '   U R                  U R                  U R                      5        g ! [         a  nU R                  SU-  5         S nAg S nAff = f! [         a    U R                  S5         g f = f)Nr'   z)You can only jump within the bottom framer   zJump failed: %sz)The 'jump' command requires a line number)	r
  rh  r	  r  r0  r  r,  r6  rz  )r[   r  r   s      r   do_jumpPdb.do_jump  s     ==1DJJ/JJBC	2c(C2 *-&,0JJt}},Ea,H#,M

4==)&&tzz$--'@A 2

,q0112  	DJJBC	Ds*   C A-B4 4
C>CCC=<C=c                 <   [         R                  " S 5        U R                  R                  nU R                  n[        U R                  U R                  U R                  5      nSU R                  R                  5       -  Ul	        U R                  S5         [         R                  " UR                  XU45        U R                  S5        [         R                  " U R                   5        UR"                  U l        g ! [         a    U R                  5          N_f = f)Nz(%s) zENTERING RECURSIVE DEBUGGERzLEAVING RECURSIVE DEBUGGER)ro   settracer  r  r  r   r   r   r   r   r  r   call_tracingr   r   r  trace_dispatchr4  )r[   r  r  r   ps        r   do_debugPdb.do_debug  s     	T--))%%  $**dkk:T[[..0023	QUUS6$:; 	12T(()yy	  	OO	s   #C> >DDc                 2    SU l         U R                  5         g)NTr'   )_user_requested_quitset_quitr-  s     r   do_quitPdb.do_quit  s    
 %)!r   c                 T    U R                  S5        SU l        U R                  5         g)Nr&   Tr'   )r   r  r  r-  s     r   do_EOF
Pdb.do_EOF  s$    
 	R$(!r   c           	         U(       a  U R                  U5        g U R                  R                  nU R                  nUR                  UR
                  -   nUR                  [        R                  -  (       a  US-   nUR                  [        R                  -  (       a  US-   n[        U5       HX  nUR                  U   nXc;   a,  U R                  U< SU R                  X6   U5      < 35        MC  U R                  U< S35        MZ     g )Nr'    = z = *** undefined ***)r1  r  r  r  co_argcountco_kwonlyargcountco_flagsinspect
CO_VARARGSCO_VARKEYWORDSr  co_varnamesr   r[  )r[   r  cord   r$  rT   r  s          r   do_argsPdb.do_args  s    
 ##C(]]!!##NNR111;;+++1Q;;///QqSqA>>!$D|$
D0QRS?@ r   c                     U(       a  U R                  U5        g SU R                  ;   a/  U R                  U R                  U R                  S   S5      5        g U R	                  S5        g )Nr;  retvalzNot yet returned!)r1  r  r   r[  r  r-  s     r   	do_retvalPdb.do_retval  sU    
 ##C(4///LL)=)=l)KXVWJJ*+r   c                      [        XR                  R                  U R                  5      $ !   U R	                  5         e = fr+   )r  r  r  r  r  r-  s     r   _getvalPdb._getval  s8    	]]44d6J6JKK	OOs   ), ?c                     Uc*  [        XR                  R                  U R                  5      $ [        XR                  UR                  5      $ ! [
         a'  n[        SU R                  U5      -  5      s S nA$ S nAff = f)Nz** raised %s **)r  r  r  r  r  rb  rW   rC  )r[   r  r   r  s       r   rZ  Pdb._getval_except  sm    	D}C!8!8$:N:NOOC%..AA 	D*T-=-=c-BBCC	Ds"   ,A A 
B A;5B ;B c                 n    [         R                  " 5       nU R                  U R                  U5      5        g r+   )ro   	exceptionr  rC  r[   r  s     r   r  Pdb._error_exc  s$    mmo

4##C()r   c                      U R                  U5      n U R                  U" U5      5        g !    g = f!   U R                  5          g = fr+   )r  r   r  )r[   r  r  vals       r   _msg_val_funcPdb._msg_val_func  sD    	,,s#C	LLc#		OOs   , 3 0Ac           	           [        U5      $ ! [         a+  n[        SU SU R                  U5       S35      s S nA$ S nAff = f)Nz	*** repr(z
) failed: z ***)r}  r   rW   rC  )r[   r~  r\  r   s       r   r[  Pdb._safe_repr  sJ    	P9 	P9TF*T5E5Ea5H4INOO	Ps   
 
A =AAc                 0    U R                  U[        5        g r+   )r  r}  r-  s     r   do_pPdb.do_p  s    
 	3%r   c                 D    U R                  U[        R                  5        g r+   )r  pprintpformatr-  s     r   do_pp	Pdb.do_pp&  s    
 	3/r   c                 H   SU l         S nU(       a  US:w  a   SU;   aO  UR                  S5      u  p2[        UR                  5       5      n[        UR                  5       5      nX#:  a  X2-   nOo[        UR                  5       5      n[	        SUS-
  5      nOFU R                  b  US:X  a$  [	        SU R                  R                  S-
  5      nOU R                  S-   nUc  US-   nU R                  R                  R                  nUR                  S5      (       a<  U R                  R                  R                  S	5      n[        U[         5      (       a  UnU R#                  U5      n [$        R&                  " X@R                  R                  5      nU R)                  XsS-
  U X6U R                  5        [+        U[-        U5      5      U l        [-        U5      U:  a  U R/                  S
5        g g ! [
         a    U R                  SU-  5         g f = f! [0         a     g f = f)NrO   r  r	  r'      r  r  z<frozenr   z[EOF])r4  r  r0  r  r  rz  r  r   r  r,  r  r   r  r  rX  r,   rb   get_file_breaksr9   r:   _print_linesr  rh  r   r   )r[   r  lastfirstrC   tmp	breaklistrF   s           r   do_listPdb.do_list1  s    3#:#:"%))C.KE.Etzz|,D|$|		,E519-E [[ C3J4==11A56EKK!OE<2:D==''33 y))--))--j9C#s##((2		&&x1H1HIEe!GD15"mm-dCJ/DK5zD W% !-  

2S890 ! 		s+   AG0 -(G0 (BH 0HH
H! H!c                 \   U(       a  U R                  U5        g U R                  R                  R                  nU R	                  U5      n U R                  U R                  5      u  pEU R                  XEX0R                  5        g ! [         a  nU R                  U5         S nAg S nAff = fr+   )	r1  r  r  r   r  _getsourcelinesr8   r  r  )r[   r  rC   r  rF   r   r4  s          r   do_longlistPdb.do_longlistj  s    
 ##C(==''33((2		 00?ME 	%MMB  	JJsO	s   B 
B+B&&B+c                      U R                  U5      n U R                  U5      u  p4U R                  X45        g !    g = f! [        [        4 a  nU R	                  U5         S nAg S nAff = fr+   )r  r  r8   	TypeErrorr  r  )r[   r  r~  rF   r   r4  s         r   	do_sourcePdb.do_source|  sj    
	,,s#C	 005ME 	%(	 # 	JJsO	s   9 A  = A+A&&A+c                    U(       a)  UR                   nU R                  R                  US5      nOS=pV[        X5       H}  u  px[	        U5      R                  S5      n	[        U	5      S:  a  U	S-  n	Xs;   a  U	S-  n	OU	S-  n	Xu:X  a  U	S-  n	O
Xv:X  a  U	S-  n	U R                  U	S-   UR                  5       -   5        M     g )	Nrv  rW     r  Bz->z>>	)	r,  r   rX  r>   rb   rjustrh  r   r  )
r[   rF   r(   r<  r   current_lineno
exc_linenor   rI   ss
             r   r  Pdb._print_lines  s    "^^N++E26J*,,N%e3LFF!!!$A1vzSSS'T	%T	LLTDKKM12 4r   c                     U R                  U5      nS n UR                  R                  nU(       a  U R	                  SUR
                  -  5        g  UR                  nU(       a  U R	                  SUR
                  -  5        g UR                  [        L a.  U R	                  SUR                  < SUR                  < 35        g U R	                  [        U5      5        g !    g = f! [         a     Nf = f! [         a     Nf = f)Nz	Method %szFunction %szClass r  )
r  r;  rA  r   r   r-   r   typer
   r   )r[   r  r  r!   s       r   	do_whatisPdb.do_whatis  s    
	LL%E 	>>**D LLt||34	>>D LL56??d"LL%*:*:E<N<NOPT%[!3	
  		  		s.   C! C( C8 !C%(
C54C58
DDc           	      j   U(       d  U R                   (       av  U R                  S5        U R                   R                  U R                  0 5      R	                  5        H,  u  p#U R                  U< SU R                  X25      < 35        M.     g U R                  S5        g U R                  U5      =n(       a  U R                  SU< SU< 35        g U R                  U5      nX0R                   R                  U R                  0 5      U'   U R                  SU< SU R                  X15      < 35        g )NzCurrently displaying:rV  z No expression is being displayedzUnable to display rU  )
r   r   rX  r  rY  r[  r>  r  rZ  
setdefault)r[   r  keyr  r4  s        r   
do_displayPdb.do_display  s     45 $ 3 3DMM2 F L L NHCLLS$//#2K!LM !O ?@11#66s6

cBC))#.EH**4=="=cBdooc6OPQr   c                     U(       a)   U R                   R                  U R                  0 5      U	 g U R                   R                  U R                  S 5        g ! [         a    U R	                  SU-  5         g f = f)Nznot displaying %s)r   rX  r  r  r  r  r-  s     r   do_undisplayPdb.do_undisplay  sf     6OO''r:3? OOt4  6

.456s   'A A98A9c                     U R                   R                  U R                  0 5       Vs/ s H  nUR                  U5      (       d  M  UPM     sn$ s  snf r+   )r   rX  r  r  )r[   r  rI   r  r  r   s         r   complete_undisplayPdb.complete_undisplay  sH    ??..t}}bA 'Aa<<% A ' 	' 's   AAc                     0 U R                   R                  EU R                  En[        X R                  S9nUR                  SSS9  g )N)r   z*pdb interact start*z *exit from pdb interact command*)bannerexitmsg)r  r  r  r   r   interact)r[   r  r   consoles       r   do_interactPdb.do_interact  sL     A''@4+?+?@(\\B 6!C 	 	Er   c                    UR                  5       n[        U5      S:X  aR  [        U R                  R	                  5       5      nU H(  nU R                  U< SU R                  U   < 35        M*     g [        U5      S:X  aX  US   U R                  ;   a,  U R                  US   < SU R                  US      < 35        g U R                  SUS    S35        g SR                  USS  5      nSU;  aE  Sn[        SS	5       H3  nS
U 3U;  a  SnS
U 3U;   d  M  U(       a  M"  U R                  S5          g    X@R                  US   '   g )Nr   r  r'   zUnknown alias 'r  r  r  Tr  r  Fz*Replaceable parameters must be consecutive)	r  rh  sortedr   r   r   r  r=   r  )r[   r  r  r   r  consecutiver  s          r   do_aliasPdb.do_alias  s(   2 yy{t9>$,,++-.D%e1DEF t9>Aw$,,&$q'4<<Q3HIJ

_T!WIQ78 HHT!"X&E5 " B<C3%y-&+3%yE)++

#OP ( %*LLa!r   c                     UR                  5       n[        U5      S:X  a  U R                  U5        g US   U R                  ;   a  U R                  US   	 g g rN   )r  rh  r1  r   )r[   r  r  s      r   
do_unaliasPdb.do_unalias0  sP    
 yy{t9>##C(7dll"T!W% #r   c                 t    U R                    Vs/ s H  oUR                  U5      (       d  M  UPM     sn$ s  snf r+   )r   r  )r[   r  rI   r  r  as         r   complete_unaliasPdb.complete_unalias<  s'    <<><a<<+=<>>>s   55)r  r  r  r  r  r  c                 n     U R                    H  nU R                  U5        M     g ! [         a     g f = fr+   )r	  r6  r   )r[   frame_linenos     r   r  Pdb.print_stack_traceK  s5    	 $

&&|4 !+  		s   $' 
44c                 x    Uu  p4X0R                   L a  SnOSnU R                  UU R                  X5      -   5        g )Nz> r  )r  r   format_stack_entry)r[   r2  prompt_prefixr   r   rH  s         r   r6  Pdb.print_stack_entryR  s@    $MM!FFV,,\IJ 	Kr   c                    U(       d  [         R                  R                  X5      $   [        U SU-   5      nU" 5       $ ! [         a    [        U SU-   5      n Of = f [
        R                  R                  S:  a  U R                  SU-  5        g UR                  c  U R                  SU-  5        g U R                  U R                  UR                  5      5        g ! [         a    U R                  SU-  5         g f = f)Nhelp_r  r  zJNo help for %r; please do not run Python with -OO if you need command helpz&No help for %r; __doc__ string missingzNo help for %r)r   r   do_helpr3  r  ro   rr   optimizer  __doc__r   _help_message_from_doc)r[   r  topicr  s       r   r:  Pdb.do_help]  s     77??4--	G5gm4w! 5!$45 yy!!Q&

 68;< =&

CcIJLL44W__EF  	/JJ'#-.	/s'   ? AC AC D ?D c                 |    U R                  U R                  R                  =(       d    SR                  5       5        g )Nr&   )r   	help_execr<  r  rZ   s    r   rA  Pdb.help_exec{  s(     	dnn,,299;<r   c                     [        5         g r+   )r   rZ   s    r   help_pdbPdb.help_pdb  s    r   c                    UR                  S5      (       d#  UR                  S[        R                  5      S-   n[        R                  R                  U5      (       a'  [        R                  R                  U5      (       a  U$ g [        R                   H  n[        R                  R                  U5      (       a<  [        R                  " U5      n[        R                  R                  U5      (       a  M<  [        R                  R                  X!5      n[        R                  R                  U5      (       d  M  Us  $    g )Nr  r  )r  r  ri   seprj   isabsrm   ro   islinkreadlinkr=   )r[   rC   rt   fullnames       r   r@  Pdb.lookupmodule  s       ''''RVV4u<H77==""ww~~h''xxG''..))++g. ''..))ww||G6Hww~~h''   r   ru   c                 P   SU l         SU l        U R                  UR                  5      U l        SS KnUR                  R                  5         UR                  R                  UR                  5        U R                  R                  5         U R                  UR                  5        g )NTFr   )r   r  r*  rC   r   r   __dict__r  r  ra   rP  r   r!   )r[   ru   r   s      r   _runPdb._run  s}     %)!$)!,,v7
 	!  !1!12 	$$&r   r  c                 P    [         R                  " U5      S   R                  5       $ )Nrv  )r   format_exception_onlyr  r  s     r   rC  Pdb._format_exc  s!    ..s3B7==??r   c                      [        USS5        g! [         a$  n[        U R                  U5      5      s S nA$ S nAff = f)Nr  r  r&   )r4   r@   rW   rC  )r[   r\  r  s      r   r>  Pdb._compile_error_message  s@    	0D)V,   	0))#.//	0s    
>9>>c                 P    [         R                  " U5      u  p#[        SU5      nX#4$ rS  )r  getsourcelinesr  )r[   r~  rF   r   s       r   r  Pdb._getsourcelines  s)      ..s3Q}r   c                    UR                  5       R                  5        Vs/ s H  o3R                  5       PM     nnU(       d  gSU;   a  UR                  S5      nOSn/ nS[	        U R
                  5      -  n[        U5       H7  u  pUS:X  a  Sn	OX:  a  Sn	OU(       a    OSn	UR                  Xy-   U-   5        M9     SR                  U5      $ s  snf )	NzNo help message found.r&   r'   r  r   zUsage: z       r  )	r  
splitlinesr  indexrh  r   r>   rd  r=   )
r[   doc
usage_onlyrI   rF   	usage_end	formattedr  rT   rH  s
             r   r=  Pdb._help_message_from_doc  s    *-**,*A*A*CD*C$*CD+;BII	s4;;'' 'GAAv""V_t34 ( yy##' Es   Cc                    U R                  SU 35        [        R                  " [        U [        R
                  " S5      R                  R                  5      5      nUb   U R                  U R                  USS95        g g )NzInvalid argument: r'   T)r]  )
r  r  getdocr3  ro   	_getframer  r-   r   r=  )r[   r  r\  s      r   r1  Pdb._print_invalid_arg  sj     	

'u-.
 nnWT3==+;+B+B+J+JKL?LL44ST4JK r   )r   r   r  r  r   r   r   r  r   r   r   r   r   r  r  r  r
  r2  r   r   r4  r   r   r   r   r   r	  r   r   )tabNNNFT)r  )r   r+   )r   N)F)r	   r
   r   r   rw  ri  rP  rv   r   r  r  r!  r'  r/  user_opcoder.  r>  rI  r7  rR  r_  rn  r   rr  r%  r  r  r  r  r  r  r5  r  r   r  r  r   r  r  r  r  r  r  ru  r7  complete_commandsrN  rC  do_bcomplete_break
complete_brT  complete_tbreakrB  rD  rg  complete_enablerl  complete_disablerq  complete_conditionrw  complete_ignorer  do_clcomplete_clearcomplete_clr  do_wdo_btr  r  r  do_ur  do_dr  do_untr  do_sr  do_nr  
do_restartr  do_rr  do_cdo_contr  do_jr  complete_debugr  do_qdo_exitr  r  do_ar  do_rvr  rZ  r  r  r[  r  r  complete_print
complete_pcomplete_ppr  do_lr   do_llr  complete_sourcer  r  complete_whatisr  complete_displayr  r  r#  r(  r+  r/  r  r  line_prefixr6  r:  do_hrA  rD  r@  r_   rO  rb  rC  r>  r  r=  r1  r   r   r   s   @r   r   r   1  sd   # #&HL(,4*l H**  K0&/(
61 D"7H . .(6$  Rh.`$B$L1"8.,
E ! !0D&?@: Q&f +^<B D'N#J )O B,0  )O1& *Q: ,(*T )O.0^ E'N$K
! DE-<^%& D%& D. F D
 D( J	 D( ! D728 D!* *N DGA& D, ED*P&0 *N%J&K6n DC  E)  +O3* "D +OR. ,5'	E0*d
&?/ =H KG8 D= 
<, 0@} @$,
L 
Lr   r   )"r   wheredownupbreaktbreakr  rk  re  rt  	conditionr   steprA   untiljumpreturnr  r   continuerO   longlistr  r  ppwhatisr  display	undisplayr!  r  unaliasdebugquitr  z

c                 8    [        5       R                  XU5        g r+   )r   r   	statementr  r   s      r   r   r   	  s     EIIi&)r   c                 6    [        5       R                  XU5      $ r+   )r   r   )
expressionr  r   s      r   r   r   !	  s     5==f55r   c                     [        XU5        g r+   )r   r  s      r   r   r   *	  s    	F#r   c                  6    [        5       R                  " U 0 UD6$ r+   )r   r   )r  kwdss     r   r   r   .	  s     5==$'$''r   )headerc                     [        5       nU b  UR                  " U 5        UR                  " [        R                  " 5       R
                  5        g r+   )r   r   r   ro   rc  f_back)r  pdbs     r   r   r   8	  s5     %CFMM#--/(()r   c                 *    [        U [        5       5      $ r+   )_post_mortemr   )r  s    r   r   r   G	  s     35!!r   c                     U c$  [         R                  " 5       nUb  UR                  n U b"  [        U [        5      (       a  U R                  c  [        S5      eUR                  5         UR                  S U 5        g )NzAA valid traceback must be passed if no exception is being handled)ro   r  rc  r,   rb  rz  r  r%  )r  pdb_instancer  s      r   r  r  U	  sn     	ymmo?!!AyZ=11aoo6M 6 7 	7 T1%r   c                  6    [        [        R                  5        g r+   )r   ro   last_excr   r   r   r   r   h	  s    r   zimport x; x.main()c                  "    [        [        5        g r+   )r   TESTCMDr   r   r   testr  q	  s	    Lr   c                  6    SS K n U R                  [        5        g rN   )pydocpagerr<  )r  s    r   r   r   u	  s    	KKr   a  Debug the Python program given by pyfile. Alternatively,
an executable module or package to debug can be specified using
the -m switch.

Initial commands are read from .pdbrc files in your home directory
and in the current directory, if they exist.  Commands supplied with
-c are executed after commands from .pdbrc files.

To let the script run until an exception occurs, use "-c continue".
To let the script run up to a given line X in the debugged file, use
"-c 'until X'".c            
         SS K n U R                  SS[        U R                  SS9nUR	                  SSS/ S	S
SS9  UR	                  SSSS9  [        [        R                  5      S:X  a&  UR                  5         [        R                  " S5        UR                  5       u  p#UR                  (       aD  [        R                  R                  S5      n[        R                  SU nUR                  U5        Oa[        [        R                   " S U5      5      nU(       a9  UR#                  SSR%                  U5       35        [        R                  " S5        UR                  (       a  UR                  n['        U5      nOVU(       d  UR#                  S5        UR)                  S5      nUR+                  S5      (       a  [-        U5      nO[/        U5      nU/U-   [        R                  S S & [1        5       n	U	R2                  R5                  UR6                  5          U	R8                  " U5        U	RL                  (       a  g [=        S5        M2  ! [:         a>    [=        SUS5        [=        SSR%                  [        R                  SS  5      -   5         Nf[>         a  n
[=        SSS9  [=        U
5         S n
A
NS n
A
f[@         a  n
[B        RD                  " U
[F        RH                  " 5       S9  [=        S5        [=        S5         U	RJ                  " S U
5         S n
A
N! [:         aD    [=        SUS5        [=        SSR%                  [        R                  SS  5      -   5          S n
A
GMN  f = fS n
A
ff = f) Nr   r  z:%(prog)s [-h] [-c command] (-m module | pyfile) [args ...]F)progusagedescriptionformatter_classallow_abbrevz-cz	--commandrd  r  r   z4pdb commands to execute as if given in a .pdbrc file)actionr  metavardestr   z-mmodule)r  r  r'   r  c                 $    U R                  S5      $ )N-)r  )r.  s    r   <lambda>main.<locals>.<lambda>	  s    !,,s:Kr   zunrecognized arguments: r  zno module or script to runz.pyz
Restartingzwith arguments:r	  z/The program exited via sys.exit(). Exit status:r   )colorizez2Uncaught exception. Entering post mortem debuggingz1Running 'cont' or 'step' will restart the programz*The program finished and will be restarted)'argparseArgumentParser_usageRawDescriptionHelpFormatteradd_argumentrh  ro   r  
print_helprp   parse_known_argsr  r[  
parse_argsrO   	itertools	takewhiler  r=   r   r  r  r   rf   r   r   r   r   rO  r   rn   
SystemExitrb  r   print_exception	_colorizecan_colorizer%  r  )r  parseroptsr  r  args_to_pdbinvalid_argsr  ru   r  r   s              r   mainr  	  s   $$%+g175=5Y5Y27	 % 9F k(BPY`jS  U
hX>
388} 	((*JD{{ hhnnT"hhqo+&
 I//0KTRSLL3CHH\4J3KLMHHQK{{{{t$LL56xx{==  %F"4(F&4-CHHQK %CKKt}}%
	HHV$ ##:;-   	1,(9:$#((12,//0 	CM!HH 		%%a)2H2H2JKFGEFa(( lF,=>dSXXchhqrl334		sJ   I AM3	M3J99M3>M.LAM+"M.*M++M..M3r   )NNr+   )?ri   r;   r3   ro   r   r   r   r!   r  r  r  r  r  rx  r  r  r6   r  r   r9   r  
contextlibr   r   r   r   __all__r$   rL   rU   rb   rW   r_   rf   r   r   InteractiveConsoler   r  r   r   r   r<  _help_order_commandr3  r  rA  r   r   r   r   r   r   r  r   r  r  r   r  r  r	   r  r   r   r   <module>r     s  L 
 	 	 
 
 
 
               % 	i 	"">C  $
% $
N"
% "
J#
" #
L$T44 $ JL#''377 JL\> K  73 0199??AFJJ  s}}$$$GX
*6$(  *"&& 
U<r zHHJ r   