
    *GjG              )          d dl Z d dl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m	Z	m
Z
mZ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mZmZ dd
lmZ ddlmZ ddlm Z m!Z! ddl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z] ddl^m_Z_ ddl`maZa ddlbmcZcmdZd ddlemfZfmgZgmhZh ddlimjZjmkZkmlZl ddlmmnZnmoZompZpmqZqmrZr ddlsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZ ddlmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZ dZerd dlmZ n	 d dlmZ n# e$ r eZY nw xY w ej        de]d           ee         Zdddddedddd	d e e	e          z  d!eez  dz  d"edz  d#eee         z  dz  d$ej        eej                 z  dz  d%edz  d&e
d'         dz  d(ed)edz  d*edz  d+ed,dfd-Zd.ed/         d0e j        d,dfd1Zddddd2d3dedeaeaj        edddd4dd5d e e	e          z  d!eez  dz  d"edz  d#eee         z  dz  d$ej        eej                 z  dz  d6ed7ed%edz  d&e
d'         dz  d(ed8ee         d9ed:ej        dz  d;ed)edz  d*edz  d<ed0e j        dz  d+ed,df(d=Zd>ee         d,dfd?Zed@k    r eej        dd                    dS dS )A    N)ArgumentParser)	AwaitableCallableIterabler   )suppress)import_module)TYPE_CHECKINGAnycast   )AbstractAccessLogger)AppKey
RequestKeyResponseKey)access_logger)PathLike)ApplicationCleanupError);HTTPAcceptedHTTPBadGatewayHTTPBadRequestHTTPClientErrorHTTPConflictHTTPCreated	HTTPErrorHTTPExceptionHTTPExpectationFailedHTTPFailedDependencyHTTPForbidden	HTTPFoundHTTPGatewayTimeoutHTTPGoneHTTPInsufficientStorageHTTPInternalServerErrorHTTPLengthRequiredHTTPMethodNotAllowedHTTPMisdirectedRequestHTTPMoveHTTPMovedPermanentlyHTTPMultipleChoices!HTTPNetworkAuthenticationRequiredHTTPNoContentHTTPNonAuthoritativeInformationHTTPNotAcceptableHTTPNotExtendedHTTPNotFoundHTTPNotImplementedHTTPNotModifiedHTTPOkHTTPPartialContentHTTPPaymentRequiredHTTPPermanentRedirectHTTPPreconditionFailedHTTPPreconditionRequiredHTTPProxyAuthenticationRequiredHTTPRedirectionHTTPRequestEntityTooLargeHTTPRequestHeaderFieldsTooLargeHTTPRequestRangeNotSatisfiableHTTPRequestTimeoutHTTPRequestURITooLongHTTPResetContentHTTPSeeOtherHTTPServerErrorHTTPServiceUnavailableHTTPSuccessfulHTTPTemporaryRedirectHTTPTooManyRequestsHTTPUnauthorizedHTTPUnavailableForLegalReasonsHTTPUnprocessableEntityHTTPUnsupportedMediaTypeHTTPUpgradeRequiredHTTPUseProxyHTTPVariantAlsoNegotiatesHTTPVersionNotSupportedNotAppKeyWarning)FileResponse)AccessLogger)
middlewarenormalize_path_middleware)PayloadAccessErrorRequestHandlerRequestPayloadError)BaseRequest	FileFieldRequest)ContentCodingResponseStreamResponsejson_bytes_responsejson_response)AbstractRouteDefRouteDefRouteTableDef	StaticDefdeletegetheadoptionspatchpostputroutestaticview)		AppRunner
BaseRunnerBaseSiteGracefulExitNamedPipeSiteServerRunnerSockSiteTCPSiteUnixSite)Server)AbstractResourceAbstractRouteDynamicResourcePlainResourcePrefixedSubAppResourceResourceResourceRouteStaticResourceUrlDispatcherUrlMappingMatchInfoView)WebSocketReadyWebSocketResponse	WSMsgType)ur   r   r   rO   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rP   rR   rS   rT   rU   rV   rW   rX   rY   r   rZ   r[   r\   r]   r^   r   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rr   rs   rt   ru   rq   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   run_app)
SSLContextignoreT)categoryappend   )	hostportpathsockssl_contextprintbacklogreuse_address
reuse_portappr   r   r   r   r   r   ).Nr   r   r   kwargsreturnc       	         
  K   t          j        |           r|  d {V } t          t          |           } t	          | fi |
}|                                 d {V  g }	 |nt          |t                    r*|                    t          |||||||	                     n]|D ]+}|                    t          |||||||	                     ,n.|||(|                    t          ||||||	                     |st          |t          t          j        f          r'|                    t          ||||                     n+|D ](}|                    t          ||||                     )|gt          |t                    s'|                    t          ||||                     n+|D ](}|                    t          ||||                     )|D ]}|                                 d {V  |rOt!          d |j        D                       } |d                    d                    |                               	 t          j        d           d {V  # |                                 d {V  w xY w)	N)r   r   r   r   )r   r   r   r   r   )r   r   c              3   >   K   | ]}t          |j                  V  d S )N)strname).0ss     S/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/aiohttp/web.py	<genexpr>z_run_app.<locals>.<genexpr>  s*      ==13qv;;======    z6======== Running on {} ========
(Press CTRL+C to quit)z, Ti  )asyncioiscoroutiner   r   rm   setup
isinstancer   r   rt   osr   ru   r   rs   startsortedsitesformatjoinsleepcleanup)r   r   r   r   r   r   r   r   r   r   r   runnerr   hpr   sitenamess                     r   _run_appr   )  s      3 iiiiii
{C
 
 Cs%%f%%F
,,..E^$$$ $/ '&3#-  
 
 
 
   ALL" (3$+*7'1  
 
 
 
 \dld.>LL +#"/)  	 	 	 $bk 233 $/ '	        ALL "(3$+	      dH-- $/ '	        ALL "(3$+	       	 	D**,, 	=======EE))/		%0@0@)A)A  	&-%%%%%%%%%	& nns   HI& &J	to_cancelzasyncio.Task[Any]loopc                 :   | sd S | D ]}|                                  |                    t          j        | ddi           | D ]V}|                                r|                                +|                    d|                                |d           Wd S )Nreturn_exceptionsTz1unhandled exception during asyncio.run() shutdown)message	exceptiontask)cancelrun_until_completer   gather	cancelledr   call_exception_handler)r   r   r   s      r   _cancel_tasksr     s        GNINNNOOO 
 
>> 	>>'''R!%!1!1    	
 
r   g      N@g     R@F)r   r   r   r   shutdown_timeoutkeepalive_timeoutr   r   r   access_log_classaccess_log_format
access_loghandle_signalsr   r   handler_cancellationr   r   r   r   r   r   r   r   c          	      4   |t          j                    }|                                r{|ry|j        dk    rn|j        t
          j        k    r|                    t
          j                   |	                                s&|
                    t          j                               |                    t          | fi d|d|d|d|d|d|d	|d
|d|	d|
d|d|d|d|d|d||          }	 t          j        |           |                    |           n# t           t"          f$ r Y nw xY w	 |                                sZ|                                 t)          t           j                  5  |                    |           ddd           n# 1 swxY w Y   t-          t          j        |          |           |                    |                                           |                                 dS # t-          t          j        |          |           |                    |                                           |                                 w xY w# 	 |                                sZ|                                 t)          t           j                  5  |                    |           ddd           n# 1 swxY w Y   t-          t          j        |          |           |                    |                                           |                                 w # t-          t          j        |          |           |                    |                                           |                                 w xY wxY w)zRun an app locallyNzaiohttp.accessr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   new_event_loop	get_debugr   levelloggingNOTSETsetLevelDEBUGhasHandlers
addHandlerStreamHandlercreate_taskr   set_event_loopr   rp   KeyboardInterruptdoner   r   CancelledErrorr   	all_tasksshutdown_asyncgensclose)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	main_tasks                       r   r   r     sf   . |%'' ~~ ;J ;:?>N+N+Nw~--...%%'' 	;!!'"7"9"9:::  	
 	
 	
	
 	
 		

 	
 .-	
 0/	
 $	
 %	
 G	
 .-	
 0/	
 "z	
 *>	
 (-	
  "z!	
" "6!5%	
 	
 I.t$$$	****+,   	 >>## 7  """g455 7 7++I6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 '+D114888##D$;$;$=$=>>>JJLLLLL '+D114888##D$;$;$=$=>>>JJLLLL!	 >>## 7  """g455 7 7++I6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 '+D114888##D$;$;$=$=>>>JJLLLL '+D114888##D$;$;$=$=>>>JJLLLLs   6)D  I'  D41I' 3D44I' 8AH 9FH FH "F#H AI$'N)AL5*K L5KL5KL5AN5ANNargvc                 B   t          dd          }|                    ddd           |                    dd	d
d            |                    dddt          d           |                    ddd           |                    |           \  }}|j                            d          \  }}}|r|s|                    d           |                    d          r|                    d           	 t          |          }n2# t          $ r%}|                    d| d|            Y d }~nd }~ww xY w	 t          ||          }	n+# t          $ r |                    d|d|           Y nw xY w|j        *t          t          d          s|                    d           t          j        t          j                   |j        r|j        d x}
}n|j        pd }
|j        } |	|          }t)          ||
||j        !           |                    d"#           d S )$Nzaiohttp.web Application serverzaiohttp.web)descriptionprog
entry_funczvCallable returning the `aiohttp.web.Application` instance to run. Should be specified in the 'module:function' syntax.z
entry-func)helpmetavarz-Hz
--hostnamez0TCP/IP hostname to serve on (default: localhost))r   defaultz-Pz--portz.TCP/IP port to serve on (default: %(default)r)i  )r   typer   z-Uz--pathz_Unix file system path to serve on. Can be combined with hostname to serve on both Unix and TCP.)r   :z,'entry-func' not in 'module:function' syntax.z#relative module names not supportedzunable to import z: zmodule z has no attribute AF_UNIXz=file system paths not supported by your operating environment)r   	localhost)r   r   r   zStopped
)r   )r   add_argumentintparse_known_argsr   	partitionerror
startswithr   ImportErrorgetattrAttributeErrorr   hasattrsocketr   basicConfigr   hostnamer   r   exit)r   
arg_parserargs
extra_argvmod_str_func_strmoduleexfuncr   r   r   s                r   mainr     s   4=  J H      ?	     =     )     "22488D*  ?44S99GQ I7 IGHHH# @>???>w'' > > ><W<<<<========>Nvx(( N N NL7LLLLMMMMMN yWVY%?%?K	
 	
 	
 gm,,,,y T]*tt}+y
$z

CCdDI6666OOKO(((((s*   4D 
D3D..D37E %E0/E0__main__)r   r   r   r   syswarningsargparser   collections.abcr   r   r   TypingIterable
contextlibr   	importlibr   typingr	   r
   r   abcr   helpersr   r   r   logr   typedefsr   web_appr   r   web_exceptionsr   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   web_fileresponserP   web_logrQ   web_middlewaresrR   rS   web_protocolrT   rU   rV   web_requestrW   rX   rY   web_responserZ   r[   r\   r]   r^   web_routedefr_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   
web_runnerrm   rn   ro   rp   rq   rr   rs   rt   ru   
web_serverrv   web_urldispatcherrw   rx   ry   rz   r{   r|   r}   r~   r   r   r   web_wsr   r   r   __all__sslr   r   objectfilterwarningsr   HostSequencer   r   boolr   setAbstractEventLoopr   
LOG_FORMATfloatr   Loggerr   listr   __name__r    r   r   <module>r'     s&
     				  



  # # # # # # U U U U U U U U U U U U       # # # # # # + + + + + + + + + + % % % % % % 4 4 4 4 4 4 4 4 4 4             M M M M M M M M< < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < <z ; : : : : : ! ! ! ! ! !                
         
                                             
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ) ( ( ( ( (                                  CL  """""""   


  +;D I I I Ic" '+7;AE%)(-!%"x x x	y-	-x 
t
#x *	x
 ^H-
-
4x -.7
7$
>x d"x I%x x $;x tx x 
x x x xv&'/6/H	   6 '+7;AE"#%)(-3?)4(5!%"!&-1'N N N	y-	-N 
t
#N *	N
 ^H-
-
4N -.7
7$
>N N N d"N I%N N /0N N %N N  $;!N" t#N$ %N& 
#d
*'N( )N* 
+N N N Nb@)tCy @)T @) @) @) @)F zD!"" s   F FF