§
    ÏÁ³g›  ã                   óì  — 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mZ d dl	m
Z
 d dlmZmZ d dlmZ d dlZededej        f         deej        ddf         fd	„¦   «         Zej                             ej                             e¦  «        d
¦  «        Z eed¦  «        5 Ze                     ¦   «         Zddd¦  «         n# 1 swxY w Y    G d„ de
¦  «        Zdd„Z G d„ dej        ¦  «        Zdd„Z dS )é    N)ÚclosingÚcontextmanager)ÚSimpleHTTPRequestHandler)ÚCallableÚ	Generator)ÚurlopenÚhandler.Úreturnc              #   ó  K  — t          j        d| ¦  «        }t          j        |j        ddi¬¦  «        }d|_        	 |                     ¦   «          |V — |                     ¦   «          d S # |                     ¦   «          w xY w)N)z	127.0.0.1r   Úpoll_intervalg{®Gáz„?)ÚtargetÚkwargsT)ÚsocketserverÚ	TCPServerÚ	threadingÚThreadÚserve_foreverÚdaemonÚstartÚshutdown)r	   ÚhttpdÚthreads      ú`/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/h11/tests/test_against_stdlib_http.pyÚsocket_serverr      s�   è è € õ Ô"Ð#3°WÑ=Ô=€EÝÔØÔ"¨O¸TÐ+Bðñ ô €Fð €F„MðØ�Š‰ŒˆØˆˆˆà�ŠÑÔÐÐÐøˆ�ŠÑÔÐÐøøøs   ½A+ Á+Bzdata/test-fileÚrbc                   ó   — e Zd Zdedefd„ZdS )ÚSingleMindedRequestHandlerÚpathr
   c                 ó   — t           S )N)Útest_file_path)Úselfr   s     r   Útranslate_pathz)SingleMindedRequestHandler.translate_path$   s   € ÝÐó    N)Ú__name__Ú
__module__Ú__qualname__Ústrr"   © r#   r   r   r   #   s6   € € € € € ð 3ð ¨3ð ð ð ð ð ð r#   r   c                  óâ  — t          t          ¦  «        5 } t          t          j        | j        ¦  «        ¦  «        5 }t          j        t          j        ¦  «        }| 	                    | 
                    t          j        dddg¬¦  «        ¦  «        ¦  «         | 	                    | 
                    t          j        ¦   «         ¦  «        ¦  «         t          ¦   «         }	 |                     ¦   «         }t          |¦  «         |t          j        u r)|                     |                     d¦  «        ¦  «         Œ[t'          |¦  «        t          j        u r|j        dk    sJ ‚t'          |¦  «        t          j        u r
||j        z  }t'          |¦  «        t          j        u rnŒÄt1          |¦  «        t2          k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NÚGETz/foo)ÚHostÚ	localhost©Úmethodr   ÚheadersTé
   éÈ   )r   r   r   ÚsocketÚcreate_connectionÚserver_addressÚh11Ú
ConnectionÚCLIENTÚsendallÚsendÚRequestÚEndOfMessageÚ	bytearrayÚ
next_eventÚprintÚ	NEED_DATAÚreceive_dataÚrecvÚtypeÚResponseÚstatus_codeÚDataÚdataÚbytesÚtest_file_data)r   ÚsÚcrF   Úevents        r   Útest_h11_as_clientrL   (   s2  € Ý	Õ1Ñ	2Ô	2ð 1°eÝ•VÔ-¨eÔ.BÑCÔCÑDÔDð 	1ÈÝ”�sœzÑ*Ô*ˆAà�IŠIØ—’Ý”KØ$¨VÐ>SÐ=Tðñ ô ñô ñô ð ð �IŠI�a—f’f�SÔ-Ñ/Ô/Ñ0Ô0Ñ1Ô1Ð1å‘;”;ˆDðØŸš™œ�Ý�e‘”�Ø�CœMÐ)Ð)ð —N’N 1§6¢6¨"¡:¤:Ñ.Ô.Ð.ØÝ˜‘;”;¥#¤,Ð.Ð.Ø Ô,°Ò3Ð3Ð3Ð3Ý˜‘;”;¥#¤(Ð*Ð*Ø˜EœJÑ&�DÝ˜‘;”;¥#Ô"2Ð2Ð2Øðõ ˜‘;”;¥.Ò0Ð0Ð0Ð0Ð0ð7	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1s5   •'G$¼FGÇ G$ÇG	ÇG$ÇG	ÇG$Ç$G(Ç+G(c                   ó   — e Zd Zdd„ZdS )ÚH11RequestHandlerr
   Nc           
      óè  — t          | j        ¦  «        5 }t          j        t          j        ¦  «        }d }	 |                     ¦   «         }|t          j        u r)|                     |                     d¦  «        ¦  «         ŒLt          |¦  «        t          j
        u r|}t          |¦  «        t          j        u rnŒ…|€J ‚t          j        |j                             d¦  «        |j                             d¦  «        d„ |j        D ¦   «         dœ¦  «        }|                     |                     t          j        dg ¬¦  «        ¦  «        ¦  «         |                     |                     t          j        |                     d¦  «        ¬¦  «        ¦  «        ¦  «         |                     |                     t          j        ¦   «         ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NTr0   Úasciic                 óf   — i | ].\  }}|                      d ¦  «        |                      d ¦  «        “Œ/S )rP   )Údecode)Ú.0ÚnameÚvalues      r   ú
<dictcomp>z,H11RequestHandler.handle.<locals>.<dictcomp>]   sF   € ð  ð  ð  á)˜T 5ð Ÿš GÑ,Ô,¨e¯lªl¸7Ñ.CÔ.Cð ð  ð  r#   r-   r1   )rD   r/   )rF   )r   Úrequestr5   r6   ÚSERVERr=   r?   r@   rA   rB   r:   r;   ÚjsonÚdumpsr.   rR   r   r/   r8   r9   rC   rE   Úencode)r!   rI   rJ   rW   rK   Úinfos         r   ÚhandlezH11RequestHandler.handleI   s÷  € Ý�T”\Ñ"Ô"ð 	2 aÝ”�sœzÑ*Ô*ˆAØˆGð
ØŸš™œ�Ø�CœMÐ)Ð)ð —N’N 1§6¢6¨"¡:¤:Ñ.Ô.Ð.ØÝ˜‘;”;¥#¤+Ð-Ð-Ø#�GÝ˜‘;”;¥#Ô"2Ð2Ð2Øð
ð Ð&Ð&Ð&Ý”:à%œn×3Ò3°GÑ<Ô<Ø%œn×3Ò3°GÑ<Ô<ð ð  à-4¬_ð ñ  ô  ðð ñ	ô 	ˆDð �IŠI�a—f’f�Sœ\°cÀ2ÐFÑFÔFÑGÔGÑHÔHÐHØ�IŠI�a—f’f�SœX¨4¯;ª;°wÑ+?Ô+?Ð@Ñ@Ô@ÑAÔAÑBÔBÐBØ�IŠI�a—f’f�SÔ-Ñ/Ô/Ñ0Ô0Ñ1Ô1Ð1ð7	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 	2ð 	2s   •GG'Ç'G+Ç.G+©r
   N)r$   r%   r&   r]   r(   r#   r   rN   rN   H   s(   € € € € € ð2ð 2ð 2ð 2ð 2ð 2r#   rN   c                  ó*  — t          t          ¦  «        5 } | j        \  }}d                     ||¦  «        }t	          t          |¦  «        ¦  «        5 }|                     ¦   «         dk    sJ ‚|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          j	        | 
                    d¦  «        ¦  «        }t          |¦  «         |d         dk    sJ ‚|d         dk    sJ ‚d|d	         d
         v sJ ‚d S )Nzhttp://{}:{}/some-pathr1   rP   r.   r*   r   z
/some-pathÚurllibr/   z
user-agent)r   rN   r4   Úformatr   r   ÚgetcodeÚreadrY   ÚloadsrR   r>   )r   ÚhostÚportÚurlÚfrF   r\   s          r   Útest_h11_as_serverri   h   s‚  € Ý	Õ(Ñ	)Ô	)ð ¨UØÔ)‰
ˆˆdØ&×-Ò-¨d°DÑ9Ô9ˆÝ•W˜S‘\”\Ñ"Ô"ð 	 aØ—9’9‘;”; #Ò%Ð%Ð%Ð%Ø—6’6‘8”8ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Œ:�d—k’k 'Ñ*Ô*Ñ+Ô+€DÝ	ˆ$�K„K€KØ�Œ>˜UÒ"Ð"Ð"Ð"Ø�Œ>˜\Ò)Ð)Ð)Ð)Ø�t˜I” |Ô4Ð4Ð4Ð4Ð4Ð4Ð4s5   •=B$Á/BÂB$ÂB	ÂB$ÂB	ÂB$Â$B(Â+B(r^   )!rY   Úos.pathÚosr2   r   r   Ú
contextlibr   r   Úhttp.serverr   Útypingr   r   Úurllib.requestr   r5   ÚBaseRequestHandlerr   r   r   ÚjoinÚdirnameÚ__file__r    Úopenrh   rc   rH   r   rL   rN   ri   r(   r#   r   ú<module>ru      s  ðØ €€€Ø €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
ð ðØ�c˜<Ô:Ð:Ô;ðàˆ|Ô% t¨TÐ1Ô2ðð ð ñ „ðð ”—’˜bœgŸošo¨hÑ7Ô7Ð9IÑJÔJ€Ø	€Tˆ.˜$ÑÔð  1Ø—V’V‘X”X€Nðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ðð ð ð ð Ð!9ñ ô ð ð
1ð 1ð 1ð 1ð@2ð 2ð 2ð 2ð 2˜Ô7ñ 2ô 2ð 2ð@5ð 5ð 5ð 5ð 5ð 5s   ÂC Ã CÃC