+
    öÙ†j¼  ã            	       ób  € R t ^ RIHtHt ^ RIt^ RIt^ RIHt ^ RI	H
t
 Rt. ROtR],           t]
! 4       R	,           ]P                  P                  4       ^ ,          ,           t]R
,           ],           t ! R R]4      t ! R R]4      t ! R R]4      tR t]]3R lt]R8X  dx   ]! RR]4      ;_uu_ 4       t]P2                  P5                  4       t]! R]^ ,          R]^,          R4       ^ RIt]P<                  ! R4       ]P?                  4        RRR4       R# R#   + '       g   i     R# ; i)a!  BaseHTTPServer that implements the Python WSGI protocol (PEP 3333)

This is both an example of how WSGI can be implemented, and a basis for running
simple web applications on a local machine, such as might be done when testing
or debugging an application.  It has not been reviewed for security issues,
however, and we strongly recommend that you use a "real" web server for
production use.

For example usage, see the 'if __name__=="__main__"' block at the end of the
module.  See also the BaseHTTPServer module docs for other API information.
)ÚBaseHTTPRequestHandlerÚ
HTTPServerN)ÚSimpleHandler)Úpython_implementationz0.2Ú
WSGIServerÚWSGIRequestHandlerúWSGIServer/Ú/Ú c                   ó*   a € ] tR t^t o ]tR tRtV tR# )ÚServerHandlerc                óø   €  V P                   P                  V P                  P                  R ^4      ^ ,          V P                  4       \
        P                  ! V 4       R#   \
        P                  ! T 4       i ; i)r
   N)Úrequest_handlerÚlog_requestÚstatusÚsplitÚ
bytes_sentr   Úclose©Úselfs   &Ú,/usr/lib/python3.14/wsgiref/simple_server.pyr   ÚServerHandler.close    sY   € ð	&Ø× Ñ ×,Ñ,Ø—‘×!Ñ! # aÓ(¨Õ+¨T¯_©_ôô ×Ò Ö%øŒM×Ò Õ%ús   ‚AA! Á!A9© N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úsoftware_versionÚserver_softwarer   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s   ø‡ € à&€O÷&ð &ó    r   c                   ó@   a € ] tR t^*t o RtRtR tR tR tR t	Rt
V tR# )r   z7BaseHTTPServer that implements the Python WSGI protocolNc                óR   € \         P                  ! V 4       V P                  4        R# )z.Override server_bind to store the server name.N)r   Úserver_bindÚsetup_environr   s   &r   r&   ÚWSGIServer.server_bind0   s   € ä×Ò˜tÔ$Ø×ÑÖr#   c                óŒ   € / ;qn         V P                  VR &   RVR&   \        V P                  4      VR&   RVR&   RVR&   RVR&   R# )	ÚSERVER_NAMEzCGI/1.1ÚGATEWAY_INTERFACEÚSERVER_PORTÚ ÚREMOTE_HOSTÚCONTENT_LENGTHÚSCRIPT_NAMEN)Úbase_environÚserver_nameÚstrÚserver_port)r   Úenvs   & r   r'   ÚWSGIServer.setup_environ5   s\   € à"$Ð$ˆÔØ!×-Ñ-ˆˆMÑØ#,ˆÐÑ Ü  ×!1Ñ!1Ó2ˆˆMÑØˆˆMÑØ ˆÐÑØˆˆMÓr#   c                ó   € V P                   # ©N©Úapplicationr   s   &r   Úget_appÚWSGIServer.get_app?   s   € Ø×ÑÐr#   c                ó   € Wn         R # r8   r9   )r   r:   s   &&r   Úset_appÚWSGIServer.set_appB   s   € Ø&Ör#   )r:   r1   )r   r   r   r   Ú__doc__r:   r&   r'   r;   r>   r   r    r!   s   @r   r   r   *   s&   ø‡ € áAà€Kòò
 ò ÷'ð 'r#   c                   óD   a € ] tR t^Gt o R],           tR tR tR tRt	V t
R# )r   r   c                ó¼  € V P                   P                  P                  4       pV P                  VR &   V P                  VR&   V P
                  VR&   RV P                  9   d    V P                  P                  R^4      w  r#MV P                  Rr2\        P                  P                  VR4      VR&   W1R&   V P                  ^ ,          VR&   V P                  P                  R	4      f   V P                  P                  4       VR
&   MV P                  R	,          VR
&   V P                  P                  R4      pV'       d   WAR&   V P                  P                  4        Fz  w  rVVP!                  RR4      P#                  4       qVP%                  4       pWQ9   d   K<  RV,           V9   d&   VRV,           ;;,          RV,           ,          uu&   Ko  WaRV,           &   K|  	  V# )ÚSERVER_PROTOCOLÚSERVER_SOFTWAREÚREQUEST_METHODÚ?r-   z
iso-8859-1Ú	PATH_INFOÚQUERY_STRINGÚREMOTE_ADDRzcontent-typeÚCONTENT_TYPEzcontent-lengthr/   Ú-Ú_ÚHTTP_Ú,)Úserverr1   ÚcopyÚrequest_versionÚserver_versionÚcommandÚpathr   ÚurllibÚparseÚunquoteÚclient_addressÚheadersÚgetÚget_content_typeÚitemsÚreplaceÚupperÚstrip)r   r5   rT   ÚqueryÚlengthÚkÚvs   &      r   Úget_environÚWSGIRequestHandler.get_environK   sˆ  € Ø�k‰k×&Ñ&×+Ñ+Ó-ˆØ!%×!5Ñ!5ˆÐÑØ!%×!4Ñ!4ˆÐÑØ $§¡ˆÐÑØ�$—)‘)ÔØŸ™Ÿ™¨¨QÓ/‰JˆD�àŸ™ 2�ä!Ÿ<™<×/Ñ/°°lÓCˆˆKÑØ#ˆNÑØ!×0Ñ0°Õ3ˆˆMÑà�<‰<×Ñ˜NÓ+Ò3Ø"&§,¡,×"?Ñ"?Ó"AˆC�Òà"&§,¡,¨~Õ">ˆC�Ñà—‘×!Ñ!Ð"2Ó3ˆßØ$*Ð Ñ!à—L‘L×&Ñ&Ö(‰DˆAØ�i‰i˜˜CÓ ×&Ñ&Ó(ˆA¯G©G«I¨!ØŒxÙØ�q�y˜CÔØ�G˜A•I— # a¥%Õ'•à!"�G˜A•I“ñ )ð ˆ
r#   c                ó"   € \         P                  # r8   )ÚsysÚstderrr   s   &r   Ú
get_stderrÚWSGIRequestHandler.get_stderrl   s   € Ü�z‰zÐr#   c                óØ  € V P                   P                  R4      V n        \        V P                  4      R8”  d)   RV n        RV n        RV n        V P                  R4       R# V P                  4       '       g   R# \        V P                   V P                  V P                  4       V P                  4       RR7      pWn        VP                  V P                  P!                  4       4       R# )zHandle a single HTTP requesti  i   r-   iž  NF)Úmultithread)ÚrfileÚreadlineÚraw_requestlineÚlenÚrequestlinerQ   rS   Ú
send_errorÚparse_requestr   Úwfileri   rd   r   ÚrunrO   r;   )r   Úhandlers   & r   ÚhandleÚWSGIRequestHandler.handleo   sµ   € ð  $Ÿz™z×2Ñ2°5Ó9ˆÔÜˆt×#Ñ#Ó$ uÔ,Ø!ˆDÔØ#%ˆDÔ ØˆDŒLØ�O‰O˜CÔ Ùà×!Ñ!×#Ò#ÙäØ�J‰J˜Ÿ
™
 D§O¡OÓ$5°t×7GÑ7GÓ7IØô
ˆð #'ÔØ�‰�D—K‘K×'Ñ'Ó)Ö*r#   )rS   ro   rQ   rq   N)r   r   r   r   Ú__version__rR   rd   ri   rw   r   r    r!   s   @r   r   r   G   s$   ø‡ € à" [Õ0€NòòB÷+ð +r#   c                 ó  € ^ RI Hp V! 4       p\        RVR7       \        VR7       \        V P	                  4       4      pV F  w  rV\        VR\        V4      VR7       K  	  V! RR.4       VP                  4       P                  R4      .# )é    )ÚStringIOzHello world!)ÚfileÚ=z200 OKzutf-8)zContent-Typeztext/plain; charset=utf-8)Úior|   ÚprintÚsortedr\   ÚreprÚgetvalueÚencode)ÚenvironÚstart_responser|   ÚstdoutÚhrb   rc   s   &&     r   Údemo_appr‰   †   su   € ÝÙ‹Z€FÜ	ˆ.˜vÕ&Ü	ˆvÕÜˆw�}‰}‹Ó€AÛ‰ˆÜˆa�”D˜“G &×)ñ á�8ÐJÐKÔLØ�O‰OÓ×$Ñ$ WÓ-Ð.Ð.r#   c                ó<   € V! W3V4      pVP                  V4       V# )zACreate a new WSGI server listening on `host` and `port` for `app`)r>   )ÚhostÚportÚappÚserver_classÚhandler_classrO   s   &&&&& r   Úmake_serverr�   ’   s#   € ñ ˜4˜,¨Ó6€FØ
‡N�N�3ÔØ€Mr#   Ú__main__r-   i@  zServing HTTP onrŒ   z...zhttp://localhost:8000/xyz?abc)r   r   r‰   r�   ) r@   Úhttp.serverr   r   rg   Úurllib.parserU   Úwsgiref.handlersr   Úplatformr   ry   Ú__all__rR   Úversionr   Úsys_versionr   r   r   r   r‰   r�   r   ÚhttpdÚsocketÚgetsocknameÚsar€   Ú
webbrowserÚopenÚhandle_requestr   r#   r   Ú<module>r       s  ðñ
÷ ;Û 
Û Ý *Ý *à€Ú
I€ð  Õ,€Ù#Ó%¨Õ+¨c¯k©k×.?Ñ.?Ó.AÀ!Õ.DÕD€Ø! CÕ'¨+Õ5Ð ô
&�Mô 
&ô'�ô 'ô:;+Ð/ô ;+ò~	/ð #-Ð<Nôð ˆzÔÙ	�R˜˜x×	(Ô	(¨EØ�\‰\×%Ñ%Ó'ˆÙÐ  A¥¨°°1µ°uÔ=ÛØ�ŠÐ7Ô8Ø×ÑÔ÷ 
)Ñ	(ñ ß	(×	(Ð	(ús   Â6ADÄD.	