
    Xhi                        d Z ddlZddlZddlZddlZddlmZ ddlZddl	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZ 	 dd	lmZ ddlmZmZmZ 	 ddlmZ ddlmZ ddlm Z m!Z! dZ" e'edd      xs ejP                  Z) G d d      Z* G d d      Z+ G d d      Z, G d d      Z- G d d      Z. G d d      Z/ G d  d!      Z0y# e$ r	 dd
lmZ Y w xY w# e$ r dZ"Y ye#$ r(Z$e$jJ                  jL                  dk(  rdZ"ne$Y dZ$[$dZ$[$ww xY w)"z/Debugger implementation for the IPython kernel.    N)Path)get_ipython)leading_empty_lines)Event)Queue)jsonapi)json_default)date_default   )get_file_nameget_tmp_directoryget_tmp_hash_seed)api)pydevd_frame_utils)SuspendedFramesManager_FramesTrackerTFDebuggerInitializationError
ROUTING_IDc                       e Zd ZdZd Zy)	_FakeCodezFake code class.c                      || _         || _        yInit.N)co_filenameco_name)selfr   r   s      F/var/www/html/myenv/lib/python3.12/site-packages/ipykernel/debugger.py__init__z_FakeCode.__init__3   s    &    N__name__
__module____qualname____doc__r    r   r   r   r   0   s
    r   r   c                       e Zd ZdZd Zy)
_FakeFramezFake frame class.c                 <    || _         || _        || _        d| _        yr   )f_code	f_globalsf_localsf_back)r   r)   r*   r+   s       r   r   z_FakeFrame.__init__<   s    " r   Nr    r%   r   r   r'   r'   9   s
    r   r'   c                       e Zd ZdZd Zy)
_DummyPyDBzFake PyDb class.c                 :    ddl m} |j                         | _        y)r   r   )	PyDevdAPIN)_pydevd_bundle.pydevd_apir0   VariablePresentationvariable_presentation)r   r0   s     r   r   z_DummyPyDB.__init__G   s    7%.%C%C%E"r   Nr    r%   r   r   r.   r.   D   s    Fr   r.   c                   *    e Zd ZdZd Zd Zd ZddZy)VariableExplorerzA variable explorer.c                     t               | _        t               | _        t	        | j                  | j                        | _        d| _        y)zInitialize the explorer.N)r   suspended_frame_managerr.   py_dbr   trackerframer   s    r   r   zVariableExplorer.__init__Q   s5    '='?$\
%d&B&BDJJO
r   c                     t               j                  }t        t        dt	        d            ||      | _        | j                  j                  dt        j                  | j
                               y)zStart tracking.<module>zsys._getframe()thread1N)
r   user_nsr'   r   r   r:   r9   trackr   create_frames_list_from_frame)r   vars     r   r@   zVariableExplorer.trackX   sU    m##	*mDU6V WY\^ab
9&8&V&VW[WaWa&bcr   c                 8    | j                   j                          y)zStop tracking.N)r9   untrack_allr;   s    r   rD   zVariableExplorer.untrack_all^   s      "r   Nc                     |}|st        | j                        }| j                  j                  |      }|j	                         D cg c]  }|j                          c}S c c}w )z1Get the child variables for a variable reference.)idr:   r7   get_variableget_children_variablesget_var_data)r   variable_refvar_ref	variablesxs        r   rH   z'VariableExplorer.get_children_variablesb   sQ    nG00==gF	*3*J*J*LMQ MMMs   A!N)r!   r"   r#   r$   r   r@   rD   rH   r%   r   r   r5   r5   N   s    d#Nr   r5   c                   >    e Zd ZdZdZdZdZdZd Zd Z	d Z
d	 Zd
 Zy)DebugpyMessageQueuezA debugpy message queue.zContent-Length:    z

   c                 l    d| _         | j                          || _        t               | _        || _        y)zInit the queue. N)
tcp_buffer_reset_tcp_posevent_callbackr   message_queuelog)r   rW   rY   s      r   r   zDebugpyMessageQueue.__init__s   s.    ,+07r   c                 <    d| _         d| _        d| _        d| _        y )Nr   )
header_posseparator_posmessage_sizemessage_posr;   s    r   rV   z"DebugpyMessageQueue._reset_tcp_pos{   s!    r   c                    | j                   j                  d       t        j                  t        t
        t        j                  f   t        j                  |            }|d   dk(  rH| j                   j                  d       | j                   j                  |       | j                  |       y | j                   j                  d       | j                   j                  |       | j                  j                  |       y )NzQUEUE - _put_message:typeeventzQUEUE - received event:zQUEUE - put message:)rY   debugtcastdictstrAnyr   loadsrW   rX   
put_nowait)r   raw_msgmsgs      r   _put_messagez DebugpyMessageQueue._put_message   s    ./ffT#quu*%w}}W'=>v;'!HHNN45HHNN3$HHNN12HHNN3))#.r   c                 V   | xj                   |z  c_         | j                  j                  d       	 | j                  dk(  r.| j                   j	                  t
        j                        | _        | j                  dk(  ry| j                  j                  d| j                         | j                  dk(  rL| j                  t
        j                  z   }| j                   j	                  t
        j                  |      | _        | j                  dk(  ry| j                  j                  d| j                         | j                  dk(  rf| j                  t
        j                  z   }| j                  t
        j                  z   | _
        t        | j                   || j                         | _        | j                  j                  d| j                         | j                  j                  d| j                         t        | j                         | j                  z
  | j                  k  ry| j                  | j                   | j                  | j                  | j                  z           t        | j                         | j                  z
  | j                  k(  r3| j                  j                  d       d	| _         | j!                          y| j                   | j                  | j                  z   d | _         | j                  j                  d
| j                          | j!                          )zPut a tcp frame in the queue.zQUEUE - received framer[   NzQUEUE - found header at pos %iz!QUEUE - found separator at pos %izQUEUE - found message at pos %izQUEUE - message size is %izQUEUE - resetting tcp_bufferrT   zQUEUE - slicing tcp_buffer: %s)rU   rY   rc   r\   findrP   HEADERr]   HEADER_LENGTH	SEPARATORr_   SEPARATOR_LENGTHintr^   lenrm   rV   )r   r:   hintsize_poss       r   put_tcp_framez!DebugpyMessageQueue.put_tcp_frame   s`   5 /0"$"&//"6"67J7Q7Q"R"$HHNN;T__M !!R')<)J)JJ%)__%9%9:M:W:WY]%^"!!R'HHNN>@R@RS2%??-@-N-NN#'#5#58K8\8\#\ $'4CUCU(V$W!HHNN<d>N>NOHHNN79J9JK4??#d&6&669J9JJ 0 043C3CdFWFW3WX 4??#d&6&66$:K:KK=>"$##%"ood.>.>ARAR.R.TUDOHHNN;T__M!Q r   c                 R   K   | j                   j                          d{   S 7 w)zGet a message from the queue.N)rX   getr;   s    r   get_messagezDebugpyMessageQueue.get_message   s!     ''++----   '%'N)r!   r"   r#   r$   rp   rq   rr   rs   r   rV   rm   rx   r{   r%   r   r   rP   rP   k   s4    "FMI
/-"^.r   rP   c                   R    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)DebugpyClientzA client for debugpy.c                     || _         || _        || _        t        | j                  | j                         | _        d| _        d| _        d| _        d| _	        t               | _        d| _        y)zInitialize the client.	127.0.0.1r[   NT)rY   debugpy_streamrW   rP   _forward_eventrX   debugpy_hostdebugpy_port
routing_idwait_for_attachr   
init_eventinit_event_seq)r   rY   r   rW   s       r   r   zDebugpyClient.__init__   sb    ,,01D1DdhhO'#' r   c                 P    | j                         \  }}d|z   dz   t        |      z   S )Ntcp://:)get_host_portrg   )r   hostports      r   _get_endpointzDebugpyClient._get_endpoint   s,    '')
d$$s4y00r   c                 ~    |d   dk(  r$| j                   j                          |d   | _        | j                  |       y )Nrb   initializedseq)r   setr   rW   r   rl   s     r   r   zDebugpyClient._forward_event   s8    w<=(OO!"%e*DC r   c                 N   | j                   .| j                  j                  j                  t              | _         t        j                  |t        dd      }t        t        |            }t        j                  |z   t        j                  z   j                  d      }||z  }| j                  j                  d       | j                  j                  | j                          | j                  j                  |       | j                  j!                  | j                   |f       y )NF)defaultensure_ascii	allow_nanasciizDEBUGPYCLIENT:)r   r   socket
getsockoptr   r   dumpsr	   rg   ru   rP   rp   rr   encoderY   rc   send_multipart)r   rl   contentcontent_lengthbufs        r   _send_requestzDebugpyClient._send_request   s    ??""1188CCJODO-- 	
 S\*"))N:=P=Z=ZZbb
 	w'(t's**DOOS+ABr   c                 R   K   | j                   j                          d {   S 7 wrN   )rX   r{   r;   s    r   _wait_for_responsez DebugpyClient._wait_for_response   s#      ''335555r|   c                   K   | j                   j                          d {    dt        | j                        dz   dd}| j	                  |       | j                          d {    | j                          d {   S 7 a7 7 w)Nrequestr   configurationDone)ra   r   command)r   waitrt   r   r   r   )r   r   s     r   _handle_init_sequencez#DebugpyClient._handle_init_sequence   s     oo""$$$ t**+a/*

 	,- %%''' ,,... 	% 	( /s4   BBAB%B&B=B>BBBc                    | j                   dk(  r| j                  j                  }|j                  d| j                  z          |j                  t        j                        j                  d      | _	        |j                  | j                         | j                  j                  d      }| j                  |dz   d | _         | j                  | j                   fS )zGet the host debugpy port.r[   r   utf-8r   r   N)r   r   r   bind_to_random_portr   r   zmqLAST_ENDPOINTdecodeendpointunbindrfind)r   r   indexs      r   r   zDebugpyClient.get_host_port  s    "((//F&&x$2C2C'CD"--c.?.?@GGPDMMM$--(MM'',E $eaik :D  $"3"333r   c                     | j                   j                  j                  | j                                | j                   j                  j	                  t
              | _        y)zConnect to the tcp socket.N)r   r   connectr   r   r   r   r;   s    r   connect_tcp_socketz DebugpyClient.connect_tcp_socket  sC    ""**4+=+=+?@--44??
Kr   c                     | j                   j                  j                  | j                                d| _        t               | _        d| _        d| _        y)zDisconnect from the tcp socket.Nr[   T)	r   r   
disconnectr   r   r   r   r   r   r;   s    r   disconnect_tcp_socketz#DebugpyClient.disconnect_tcp_socket  sE    ""--d.@.@.BC' #r   c                 :    | j                   j                  |       y)zReceive a dap frame.N)rX   rx   )r   r:   s     r   receive_dap_framezDebugpyClient.receive_dap_frame  s    ((/r   c                 >  K   | j                  |       | j                  r)|d   dk(  r!| j                          d{   }d| _        |S | j                          d{   }| j                  j                  d       | j                  j                  |       |S 7 ]7 >w)zSend a dap request.r   attachNFzDEBUGPYCLIENT - returning:)r   r   r   r   rY   rc   )r   rl   reps      r   send_dap_requestzDebugpyClient.send_dap_request"  s     3C	Nh$>2244C#(D J++--34s
 5 .s!   9BB BB=BBN)r!   r"   r#   r$   r   r   r   r   r   r   r   r   r   r   r   r%   r   r   r~   r~      s>    !1!C&6/$	4L
$0r   r~   c                       e Zd ZdZg dZg dZ	 ddZd Zd Zd Z	d Z
d	 Zed
        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)DebuggerzThe debugger class.)dumpCellsetBreakpointssource
stackTracerL   r   r   )	debugInfoinspectVariablesrichInspectVariablesmodulescopyToGlobalsc                    || _         t        ||| j                        | _        || _        || _        d| _        || _        || _        t               | _
        i | _        t        j                  D ]  }t        | |      | j                  |<    i | _        t        j                   D ]  }t        | |      | j                  |<    i | _        t%               | _        d| _        i | _        d| _        d| _        d| _        t3               | _        y)zInitialize the debugger.Fr   r   N)rY   r~   _handle_eventdebugpy_clientshell_socketsession
is_startedrW   just_my_coder   stopped_queuestarted_debug_handlersr   started_debug_msg_typesgetattrstatic_debug_handlersstatic_debug_msg_typesbreakpoint_listr   stopped_threadsdebugpy_initialized_removed_cleanupr   r   r   r5   variable_explorer)r   rY   r   rW   r   r   r   msg_types           r   r   zDebugger.__init__G  s    +CASAST(,(+07&(# 88 	LH4;D(4KD''1	L &(" 77 	KH3:43JD&&x0	K  ""u#(  "'!1!3r   c                    |d   dk(  rW|d   d   r| j                   j                  |       y | j                  j                  |d   d          | j	                  |       y |d   dk(  rK|d   d   rt               | _        n!| j                  j                  |d   d          | j	                  |       y | j	                  |       y )Nrb   stoppedbodyallThreadsStoppedthreadId	continuedallThreadsContinued)r   rj   r   addrW   r   remover   s     r   r   zDebugger._handle_eventh  s    w<9$6{./""--c2  $$S[%<=$\[(6{01'*u$$$++CK
,CD$$r   c                 T   K   | j                   j                  |       d {   S 7 wrN   )r   r   r   s     r   _forward_messagezDebugger._forward_messagey  s#     ((99#>>>>s   (&(c                 |    |D cg c]  }| j                  |d         s| }}|d   d|d   d|d   d|idS c c}w )Nnamer   responseTr   rL   )r   ra   request_seqsuccessr   r   )accept_variable)r   r   rL   rB   var_lists        r   _build_variables_responsez"Debugger._build_variables_response|  sZ    #,RC0D0DS[0QCRR5>"5>y) (+
 	
 Ss   99c                     g d}||vS )N)IPythonHistorySavingThreadzThread-2zThread-3zThread-4r%   )r   thread_nameforbid_lists      r   _accept_stopped_threadzDebugger._accept_stopped_thread  s     Y+--r   c                 D  K   | j                   j                          d{   }|d   dz   ddd}| j                  |       d{   }|d   d   D ]5  }| j                  |d         s| j                  j                  |d	          7 | j                  |       y7 {7 Xw)
zHandle a stopped event.Nr   r   r   threads)r   ra   r   r   r   rF   )r   rz   r   r   r   r   rW   )r   rb   reqr   threads        r   handle_stopped_eventzDebugger.handle_stopped_event  s      ((,,..ElQ&	iP))#..&k), 	7F**6&>:$$((6	7 	E" /.s'   B B$B B#B *3B B c                     | j                   S rN   )r   r;   s    r   
tcp_clientzDebugger.tcp_client  s    """r   c           	         | j                   st               }t        |      j                         st        |      j	                  d       | j
                  j                         \  }}d}|d|z   dz   |z   dz   z  }|dd}| j                  j                  | j                  d|d	| j                  j                  t                     | j                  j                  | j                  d
      \  }}|d   d   dk(  | _         t               j                  j                  }t         |v r3|j#                  t               }	|j%                  |	      | j&                  |	<   | j
                  j)                          | j                   S )zStart the debugger.T)parentszimport debugpy;zdebugpy.listen(("z",z)))codesilentexecute_requestNr   )moder   statusok)r   r   r   existsmkdirr   r   r   sendr   r   r   recvr   input_transformer_managercleanup_transformsr   r   popr   r   )
r   tmp_dirr   r   r   r   identrl   r  r   s
             r   startzDebugger.start  sZ   ''')G='')W##D#1,,::<JD$$D'$.5<tCCD#t4GLL!!!""--j9 **4+<+<1*EJE3'*9~h'?4'GD$ )]DDWW"44&,,-@AE+=+A+A%+HD!!%(..0'''r   c                    | j                   j                          t               j                  j                  }t        | j                        D ]/  }| j                  j                  |      }|j                  ||       1 y)zStop the debugger.N)	r   r   r   r
  r  sortedr   r  insert)r   r  r   funcs       r   stopzDebugger.stop  sj    113 )]DDWWD112 	3E((,,U3D%%eT2	3r   c                    K   |d   d   }t        |      }t        |dd      5 }|j                  |       ddd       d|d   d	|d
   d|idS # 1 sw Y   xY ww)zHandle a dump cell message.	argumentsr   wr   encodingNr   r   Tr   
sourcePathra   r   r   r   r   )r   openwrite)r   messager   	file_namefs        r   r   zDebugger.dumpCell  su     {#F+!$'	)S73 	qGGDM	 "5>y)!9-
 	
	 	s   "AAAAAc                    K   |d   d   d   }|d   d   | j                   |<   | j                  |       d{   }|j                  d      r(|d   d   D cg c]	  }d|d   i c}| j                   |<   |S 7 ?c c}w w)	z!Handle a set breakpoints message.r  r   pathbreakpointsNr   r   line)r   r   rz   )r   r  r   message_response
breakpoints        r   r   zDebugger.setBreakpoints  s     %h/7'.{';M'JV$!%!6!6w!?? 	* #36":="I, F+,,D  (   @,s!   5A>A7A>A9%A>9A>c                 
  K   d|d   |d   d}|d   d   d   }t        |      j                         r2t        |d	      5 }d
|d<   d|j                         i|d<   ddd       |S d|d<   d|d<   i |d<   |S # 1 sw Y   |S xY ww)zHandle a source message.r   r   r   )ra   r   r   r  r   r"  r   r  Tr   r   r   NFzsource unavailabler  )r   is_filer  read)r   r  replysource_pathr   s        r   r   zDebugger.source  s     #GENwW`Oabk*84V<$$&kG4 6#'i !*AFFH 5f6 	  %E)3E)E&M6 s   >B A6B6B ;Bc           	         K   | j                  |       d{   }	 |d   d   }t        |      t        d t        t	        |      d      D              z
  }|d   d   d|dz    |d   d<   |S 7 T# t
        $ r Y |S w xY ww)zHandle a stack trace message.Nr   stackFramesc              3   D   K   | ]  \  }}|d    dk(  s|dk7  s|  yw)r   r=   r   Nr%   ).0ivs      r   	<genexpr>z&Debugger.stackTrace.<locals>.<genexpr>   s-      -a6jAX]^bc]c-s      r   )r   ru   next	enumeratereversedStopIteration)r   r  r*  sf_list
module_idxs        r   r   zDebugger.stackTrace  s     ++G44	FmM2GW -'(91=- ) J ,1=+GHX*WX.+YE&M-( % 5   		s3   A>A,A>AA. *A>.	A;7A>:A;;A>c                 v    g d}||v}|xr  t        t        j                  d|             }|xr |dd dk7  }|S )zAccept a variable by name.)r!   r$   __package__
__loader____spec____annotations____builtins____builtin____display__r   debugpyexitquitInOut_oh_dh______z^_\dr      _i)boolresearch)r   variable_namer   conds       r   r   zDebugger.accept_variable  sM    
, K/CD7M!BCC2a*d2r   c                 2  K   i }| j                   s3| j                  j                  |d   d         }| j                  ||      S | j	                  |       d{   }|d   d   D cg c]  }| j                  |d         s| c}|d   d<   |S 7 7c c}w w)zHandle a variables message.r  variablesReferenceNr   rL   r   )r   r   rH   r   r   r   )r   r  r*  rL   rB   s        r   rL   zDebugger.variables%  s     ##..EE$%9:I 11'9EE++G44 !=5&
9M9McRXk9ZC&
fk"  5&
s*   ABBB'BBBBc                    K   | j                   j                         \  }}||d|d   d<   d|d   d<   | j                  s	dg|d   d<   | j                  |       d{   S 7 w)	zHandle an attach message.)r   r   r  r   T	logToFileDebugStdLibdebugOptionsN)r   r   r   r   )r   r  r   r   s       r   r   zDebugger.attach5  st     ((668
d37*FY',0[)
   4A?GK 0**73333s   AA#A!A#c                 ,   K   |d   d|d   d|d   dS w)z$Handle a configuration done message.r   r   Tr   )r   ra   r   r   r   r%   )r   r  s     r   r   zDebugger.configurationDoneB  s.      5>"5>y)
 	
s   c                 *  K   g }| j                   j                         D ]  \  }}|j                  ||d        d|d   d|d   | j                  dt	               t               t        j                  z   d|t        | j                        ddgdd	
d
S w)zHandle a debug info message.)r   r#  r   r   Tr   Murmur2.pyzPython Exceptions)
	isStarted
hashMethodhashSeedtmpFilePrefixtmpFileSuffixr#  stoppedThreadsrichRenderingexceptionPathsr   r  )
r   itemsappendr   r   r   osseplistr   )r   r  r   keyvalues        r   r   zDebugger.debugInfoL  s     ..446 	JJC""c%#HI	J "5>y)!__'-/!2!4rvv!=!&."&t';';"<!%#6"7!%
 	
s   BBc                    K   | j                   j                          t               | _         | j                   j                          | j                   j	                         }| j                  ||      S w)z$Handle an inspect variables message.)r   rD   r5   r@   rH   r   )r   r  rL   s      r   r   zDebugger.inspectVariablesd  s^     **, "2!3$$&**AAC	--gyAAs   A0A2c           	        K   d|d   d|d   d}|d   d   }t         j                  |      }|si i d|d	<   |d
k(  s|dk(  rd|d<   |S i }i }| j                  sXt               j	                  ||i      |   }|j                  dd      dk(  rx|j                  di       }|j                  di       }nSd| d}|d   d   }	|d   }
| j                  dd|
dz   ||	ddd       d{   }|d   rt        |d	   d   i i       \  }}||j                         D ci c]  \  }}||v s|| c}}d}||d	<   d|d<   |S 7 Wc c}}w w)z(Handle a rich inspect variables message.r   r   Fr   )ra   sequence_seqr   r   r  variableName)datametadatar   zspecial variableszfunction variablesTr   r  errorr  ro  rp  z'get_ipython().display_formatter.format()frameIdr   evaluater   	clipboard)
expressionrs  contextra   r   r   r  Nresult)	rg   isidentifierr   r   user_expressionsrz   r   evalrd  )r   r  r*  var_name
valid_name	repr_datarepr_metadatary  r   frame_idr   kr1  r   s                 r   r   zDebugger.richInspectVariableso  s     #ENy)	
 ;'7%%h/
%'R8E&M..(>R2R#'i L	## !]33Xx4HI(SFzz(G,4"JJvr2	 &

:r : =XJaHD{+I6H%.C//%)704Va!b	 E Y+/fh0GR+P(	= *7*=*=*?R$!Q1	>AR

 fi% Ss*   C!E#D;$3ED=$D=)E=Ec           	         K   |d   d   }|d   d   }|d   d   }d| d}|d   }| j                  dd	|d
z   |||dd       d {   S 7 w)Nr  dstVariableNamesrcVariableName
srcFrameIdzglobals()['z']r   r   setExpressionr   )rv  rj  rs  rx  )r   )r   r  dst_var_namesrc_var_namesrc_frame_idrv  r   s          r   r   zDebugger.copyToGlobals  s     {+,=>{+,=>{+L9"<.3
en**!*Qw",)+		
 
 	
 
s   AAAAc                   K   t        t        j                  j                               }|j	                  dd      }|j	                  dt        |            }g }t        ||      D ]S  }||   }t        t        |dd      dd      }|s#|j                  d      s5|j                  ||j                  |d       U d	|t        |      d
iS w)zHandle a modules message.startModuler   moduleCountr<  Noriginr[  )rF   r   r"  r   )r   totalModules)rh  sysr   valuesrz   ru   ranger   endswithre  r!   )	r   r  r   r  r  modsr0  modulefilenames	            r   r   zDebugger.modules  s     s{{))+,kk-3kk-W>{K0 	RAQZFwvz4@(DQHH--e41fooxPQ		R D#g,GHHs   BCC1Cc                   K   i }|d   dk(  rp| j                   r| j                  j                  d       nH| j                         | _         | j                   r| j                  j                  d       nd|d   dddd	}| j                  j                  |d   d
      }| ||       d
{   }nW| j                   rK| j                  j                  |d   d
      }| ||       d
{   }n| j                  |       d
{   }|d   dk(  rH| j                          i | _	        t               | _        d| _         | j                  j                  d       |S 7 7 r7 Zw)zProcess a request.r   
initializez The debugger has already startedzThe debugger has startedr      Fr   )r   r   r   r   ra   Nr   zThe debugger has stopped)r   rY   infor  r   rz   r   r   r  r   r   r   )r   r  r*  handlers       r   process_requestzDebugger.process_request  sA    9-@A"&**,??HHMM"<= $0'.u~ #( *E ,,001CTJ!'**E__1155gi6H$OG"%g.."33G<<9-IIK#%D #&5D #DOHHMM45 + /<s7   B'E)E*=E'E(EEAEEEN)T)r!   r"   r#   r$   r   r   r   r   r   r   r   r   propertyr   r  r  r   r   r   r   r   rL   r   r   r   r   r   r   r   r  r%   r   r   r   r   0  s     X\4B%"?	
.
# # #(<3
  ,: 4

0	B2h
(I%r   r   )1r$   rf  rN  r  typingrd   pathlibr   r   IPython.core.getipythonr   IPython.core.inputtransformer2r   tornado.locksr   tornado.queuesr   	zmq.utilsr   jupyter_client.jsonutilr	   ImportErrorr
   compilerr   r   r   debugpy.serverr   _pydevd_bundler   &_pydevd_bundle.pydevd_suspended_framesr   r   _is_debugpy_available	Exceptione	__class__r!   r   IDENTITYr   r   r'   r.   r5   rP   r~   r   r%   r   r   <module>r     s   5 	 	 
   
 / >    E4 J I"1
 ! S,-=
  F FN N:S. S.ll l^z z  EDE   "!  	{{<< % 		s/   C C CCDD DD