ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     U
    e5d3                  	   @   s  d dl mZmZ d dlZd dlZd dlmZ d dlm	Z	 dZ
dddd	gZd
e
 Ze	 d ej d   Zed e ZG dd deZG dd deZG dd deZdd Zeefdd	ZedkreddeBZej Zeded  ded d d dlZed e  W 5 Q R X dS )    )BaseHTTPRequestHandler
HTTPServerN)SimpleHandler)python_implementationz0.2
WSGIServerWSGIRequestHandlerdemo_appmake_serverWSGIServer// c                   @   s   e Zd ZeZdd ZdS )ServerHandlerc              	   C   s4   z"| j| jddd | j W 5 t |  X d S )Nr      r   )r   closerequest_handlerZlog_requestZstatussplitZ
bytes_sentself r   -/usr/lib64/python3.8/wsgiref/simple_server.pyr       s     zServerHandler.closeN)__name__
__module____qualname__software_versionZserver_softwarer   r   r   r   r   r      s   r   c                   @   s0   e Zd ZdZdd Zdd Zdd Zdd	 ZdS )
r   Nc                 C   s   t |  |   d S N)r   server_bindsetup_environr   r   r   r   r   0   s    
zWSGIServer.server_bindc                 C   sF   i  }| _ | j|d< d|d< t| j|d< d|d< d|d< d|d< d S )	NZSERVER_NAMEzCGI/1.1ZGATEWAY_INTERFACEZSERVER_PORT REMOTE_HOSTCONTENT_LENGTHZSCRIPT_NAME)base_environZserver_namestrZserver_port)r   envr   r   r   r   5   s    

zWSGIServer.setup_environc                 C   s   | j S r   applicationr   r   r   r   get_app?   s    zWSGIServer.get_appc                 C   s
   || _ d S r   r#   )r   r$   r   r   r   set_appB   s    zWSGIServer.set_app)r   r   r   r$   r   r   r%   r&   r   r   r   r   r   *   s
   
c                   @   s,   e Zd Zde Zdd Zdd Zdd ZdS )	r   r
   c                 C   sP  | j j }| j|d< | j|d< | j|d< d| jkrH| jdd\}}n| jd }}tj	
|d|d< ||d	< |  }|| jd
 kr||d< | jd
 |d< | jdd kr| j |d< n| jd |d< | jd}|r||d< | j D ]`\}}|dd }| }||krqd| |kr>|d|   d| 7  < q||d| < q|S )NZSERVER_PROTOCOLZSERVER_SOFTWAREZREQUEST_METHOD?r   r   z
iso-8859-1Z	PATH_INFOZQUERY_STRINGr   r   ZREMOTE_ADDRzcontent-typeZCONTENT_TYPEzcontent-lengthr   -_ZHTTP_,)serverr    copyrequest_versionserver_versioncommandpathr   urllibparseZunquoteZaddress_stringZclient_addressZheadersgetZget_content_typeitemsreplaceupperstrip)r   r"   r0   ZqueryhostZlengthkvr   r   r   get_environK   s8    



 
zWSGIRequestHandler.get_environc                 C   s   t jS r   )sysstderrr   r   r   r   
get_stderrp   s    zWSGIRequestHandler.get_stderrc                 C   s   | j d| _t| jdkr<d| _d| _d| _| d d S |  sHd S t	| j | j
|  |  dd}| |_|| j  d S )Ni  i   r   i  F)Zmultithread)ZrfilereadlineZraw_requestlinelenZrequestliner-   r/   Z
send_errorZparse_requestr   Zwfiler>   r;   r   runr+   r%   )r   Zhandlerr   r   r   handles   s$    
   zWSGIRequestHandler.handleN)r   r   r   __version__r.   r;   r>   rB   r   r   r   r   r   G   s   %c                 C   sr   ddl m} | }td|d t|d t|  }|D ]\}}t|dt||d q8|ddg | dgS )	Nr   )StringIOzHello world!)file=z200 OK)zContent-Typeztext/plain; charset=utf-8zutf-8)iorD   printsortedr4   reprgetvalueencode)environZstart_responserD   stdouthr9   r:   r   r   r   r      s    
c                 C   s   || |f|}| | |S r   )r&   )r8   portZappZserver_classZhandler_classr+   r   r   r   r	      s    
__main__r   i@  zServing HTTP onrP   r   z...zhttp://localhost:8000/xyz?abc)Zhttp.serverr   r   r<   Zurllib.parser1   Zwsgiref.handlersr   platformr   rC   __all__r.   versionr   sys_versionr   r   r   r   r   r	   r   ZhttpdZsocketZgetsocknameZsarH   Z
webbrowseropenZhandle_requestr   r   r   r   <module>   s.   C 
	


