
    <i                        S 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
JrJr  / SQr\" S\R                  \
R                  \
R                   5      q\R$                  \
R&                  4r\R$                  \
R                  \
R&                  4r\R                  \
R&                  4r\R                  \
R                  \
R&                  4r\
R                  \R0                  \
R&                  4r\R4                  R7                  \R4                  R9                  \5      S5      r\R>                  R@                  RC                  S\5      r!\!S 5       r"S	 r#g)
z
Interactive interpreter for interacting with Tor directly. This adds usability
features such as tab completion, history, and IRC-style functions (like /help).
    N)AttrColorformat)	argumentsautocompletecommandshelp>>> zsettings.cfgstem_interpreterc                 D    UR                  U 5      R                  " S0 UD6$ )N )getr   )messageconfigattrs      S/home/james-whalen/.local/lib/python3.13/site-packages/stem/interpreter/__init__.pymsgr   )   s    	G		#	#	+d	++    c                  8   SS K n SS KnSS KnSS Kn UR                  R
                  R                  [        R                  SS  5      nWR                  (       aB  [        UR                  R
                  R                  5       5        [        R                  " 5         UR                  (       d#  [        R                  R!                  5       (       d  SUR"                  R$                  l        SqUR*                  (       Gdu  UR,                  (       Gdc  UR"                  R.                  R1                  S5      =(       d%    UR"                  R.                  R1                  S5      nU(       Gd
  UR2                  S:X  ac  UR"                  R.                  R5                  S5      (       d9  [        [7        [9        S5      /[:        Q76 5        [        R                  " S5        OUR<                  (       d3  UR>                  (       d"  [        [7        [9        S5      /[@        Q76 5        URB                  S	:X  a  S
O[E        URB                  5      n URF                  RI                  SUSSS.UR2                  SSS9  URL                  URB                  4nURN                  nUR,                  (       a  UR*                  (       d  S nO$UR*                  (       a  UR,                  (       d  S nURP                  RS                  UUSS9nUc  [        R                  " S5        U   UR                  RT                  RW                  U5      nSn	UR<                  (       a  UR<                  RY                  5       R[                  S5      (       a  S n
Xl.        [        R                  R!                  5       (       aI  UR<                  RY                  5       R_                  SS5      S   n[        [7        SU-  /[`        Q76 5        UR9                  UR<                  5         [c        5         GOURi                  UR<                  SS9  GOUR>                  (       aK   [k        UR>                  5      Rm                  5        H!  nURi                  URo                  5       SS9  M#     GO&UR                  Rr                  Ru                  U5      nU Rw                  S5        U Ry                  URz                  5        U R}                  S5        [9        S5      R                  5        H:  nUR[                  S5      (       a  [`        O[@        n[        [7        U/UQ76 5        M<     [        S 5          UR                  (       a  S!O[(        nUR                  R                  5       (       a  [        U5      O
[c        U5      nURi                  USS9  Ma  S S S 5        g ! [         a,  n[        U5        [        R                  " S5         S nAGNS nAff = f! [J         aB  n[        [7        [9        SUS9/[:        Q76 5        [        R                  " S5         S nAGNS nAff = f! [d        URf                  4 a     Nf = f! [p         aL  n[        [7        [9        SUR>                  US9/[:        Q76 5        [        R                  " S5         S nANS nAff = f! URf                   a    U	(       a  [        [7        S"/[:        Q76 5         GN;[7        S#/[`        Q76 nUR                  R                  5       (       a  [        U5      O
[c        U5      n[        S 5        UR                  5       S$;   a  Sn	 GN GM  [d        [        URf                  4 a    [        S 5         GM  f = f! , (       d  f       g = f)%Nr      Tr
   torztor.realzmsg.tor_unavailablezmsg.starting_tordefault905101z
reject *:*)	SocksPortControlPortCookieAuthentication
ExitPolicy   )r   tor_cmdcompletion_percenttake_ownershipzmsg.unable_to_start_tor)error)control_portcontrol_socketpassword_promptFz
SETEVENTS c                 H    [        [        [        U 5      /[        Q76 5        g )N)printr   strSTANDARD_OUTPUT)event_messages    r   handle_eventmain.<locals>.handle_event   s    
s=)<O<
=r    z/Listening to %s events. Press any key to quit.
)print_responsezmsg.unable_to_read_file)pathr$   ztab: complete
zmsg.startup_bannerz   z... zCUnable to run tor commands. The control connection has been closed.zOTor's control port has closed. Do you want to continue this interpreter? (y/n) )yyes)Freadlinestem.interpreter.argumentsstem.interpreter.autocompletestem.interpreter.commandsinterpreterr   parsesysargv
ValueErrorr)   exit
print_helpget_helpdisable_colorstdoutisattyutiltermDISABLE_COLOR_SUPPORTPROMPTuser_provided_portuser_provided_socketsystem
is_runningtor_pathis_availabler   r   ERROR_OUTPUTrun_cmdrun_pathHEADER_OUTPUTr%   r*   processlaunch_tor_with_configOSErrorcontrol_addressr&   
connectionconnectr   ControlInterpreterupper
startswith_handle_eventsplitHEADER_BOLD_OUTPUT	raw_inputKeyboardInterruptSocketClosedrun_commandopen	readlinesstripIOErrorr   Autocompleterparse_and_bindset_completercompleteset_completer_delims
splitlinesis_multiline_contextprereqis_python_3inputlowerEOFError)r6   stemargsexcis_tor_runningr%   r&   
controllerr:   showed_close_confirmationr-   eventslineautocompleterline_formatprompt
user_inputs                    r   mainr   .   s   #&"%%++CHHQRL9D
 
__	$


$
$
-
-
/0HHJ	szz0022+/DIINN(F
 
!
!
!T%>%>%>YY%%007b499;K;K;V;VWa;bN	%			(8(8(E(Ee(L(LfS./?,?@||DMM
s-.??
@!%!2!2i!?vSIZIZE[	
,,
-
-)&)(	 mm!"! . 
 &&(9(9:,&&.
 
t'>'>Lt'@'@N&&# ' * HHQK""++>>zJK %||					(	(	6	6
	> $0 ::<<%%'--c15a8&
IFRhUgh
it||$	
+ 	tD	'113D

!
!$**,
!
F 4 &&33AA*Mmo.]334##D)*+668$,0OOD,A,A(}fT(K() 9 Bi	(==66&(,(?(?(A(AuV}yQWGX*

!
!*t
!
D	 _ zC 
 	#JHHQKKR  	
s4cBR\R
S
((1++	^ "4#4#45 	
	  fS24==RUVfYefg*    	&&^namnom  D  qC  DF*.++*A*A*C*CvSYIZJ"I!\1*.'!8T->->? 	
)
	A zs   6W +W: C7^
Y	/^AY%C^AZ>6^
W7!W22W7:
Y7YY	Y"^!Y""^%
Z;/AZ61^6Z;;^>0^.^1A&^^%^^^^
^)$__doc__osr<   rs   stem.connectionstem.prereqstem.processstem.util.confstem.util.systemstem.util.termr   r   r   __all__GREENBOLDREADLINE_ESCAPErH   BLUELINESr+   BOLD_OUTPUTrR   r^   REDrO   r1   joindirname__file__settings_pathrE   confuses_settingsr   r   r   r   r   <module>r      s  
 
 
        . . 
TYY0D0D	E::tzz*zz499djj1djj)kk499djj9 		599djj1RWW__X6G		,,-?O , ,Lr   