§
    #ˆtj
  ã                  óz   — d dl mZ d dlZd dlZd dlZd dlmZ  G d„ de¦  «        Z	dd
„Z
dd„Zdd„Zdd„Zdd„ZdS )é    )ÚannotationsN)ÚWWWScopec                  ó   — e Zd ZdS )ÚClientDisconnectedN)Ú__name__Ú
__module__Ú__qualname__© ó    úU/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/uvicorn/protocols/utils.pyr   r   
   s   € € € € € € € r   r   Ú	transportúasyncio.TransportÚreturnútuple[str, int] | Nonec                óä  — |                       d¦  «        }|�g	 |                     ¦   «         }t          |t          ¦  «        r*t	          |d         ¦  «        t          |d         ¦  «        fnd S # t          $ r Y d S w xY w|                       d¦  «        }|�Zt          |t          t          z  ¦  «        r=t          |¦  «        dk    r*t	          |d         ¦  «        t          |d         ¦  «        fS d S )NÚsocketr   é   Úpeernameé   )	Úget_extra_infoÚgetpeernameÚ
isinstanceÚtupleÚstrÚintÚOSErrorÚlistÚlen©r   Úsocket_infoÚinfos      r   Úget_remote_addrr"      sé   € Ø(1×(@Ò(@ÀÑ(JÔ(J€KØÐð	Ø×*Ò*Ñ,Ô,ˆDÝ3=¸dÅEÑ3JÔ3JÐT•C˜˜Qœ‘L”L¥# d¨1¤g¡,¤,Ð/Ð/ÐPTÐTøÝð 	ð 	ð 	ð �4�4ð	øøøð
 ×#Ò# JÑ/Ô/€DØÐ�J t­TµE©\Ñ:Ô:Ð½sÀ4¹y¼yÈAº~¸~Ý�D˜”G‘”�c $ q¤'™lœlÐ+Ð+Øˆ4s   ™AA. Á.
A<Á;A<útuple[str, int | None] | Nonec                ó$  — |                       d¦  «        }|�n|                     ¦   «         }t          |t          ¦  «        r*t	          |d         ¦  «        t          |d         ¦  «        fS t          |t          ¦  «        r|d fS d S |                       d¦  «        }|�Zt          |t          t          z  ¦  «        r=t          |¦  «        dk    r*t	          |d         ¦  «        t          |d         ¦  «        fS t          |t          ¦  «        r|d fS d S )Nr   r   r   Úsocknamer   )r   Úgetsocknamer   r   r   r   r   r   r   s      r   Úget_local_addrr'      sø   € Ø(1×(@Ò(@ÀÑ(JÔ(J€KØÐØ×&Ò&Ñ(Ô(ˆÝ�d�EÑ"Ô"ð 	0Ý˜˜Qœ‘L”L¥# d¨1¤g¡,¤,Ð/Ð/Ý�d�CÑ Ô ð 	 Ø˜$�<ÐØˆtØ×#Ò# JÑ/Ô/€DØÐ�J t­TµE©\Ñ:Ô:Ð½sÀ4¹y¼yÈAº~¸~Ý�D˜”G‘”�c $ q¤'™lœlÐ+Ð+Ý�$�ÑÔð Ø�dˆ|ÐØˆ4r   Úboolc                óF   — t          |                      d¦  «        ¦  «        S )NÚ
sslcontext)r(   r   )r   s    r   Úis_sslr+   /   s   € Ý�	×(Ò(¨Ñ6Ô6Ñ7Ô7Ð7r   Úscoper   r   c                ó>   — |                       d¦  «        }|sdS d|z  S )NÚclientÚ z%s:%d)Úget)r,   r.   s     r   Úget_client_addrr1   3   s+   € Ø�YŠY�xÑ Ô €FØð ØˆrØ�VÑÐr   c                ó¾   — t           j                             | d         ¦  «        }| d         r/d                     || d                              d¦  «        ¦  «        }|S )NÚpathÚquery_stringz{}?{}Úascii)ÚurllibÚparseÚquoteÚformatÚdecode)r,   Úpath_with_query_strings     r   Úget_path_with_query_stringr<   :   sY   € Ý#œ\×/Ò/°°f´Ñ>Ô>ÐØˆ^Ôð oØ!(§¢Ð0FÈÈnÔH]×HdÒHdÐelÑHmÔHmÑ!nÔ!nÐØ!Ð!r   )r   r   r   r   )r   r   r   r#   )r   r   r   r(   )r,   r   r   r   )Ú
__future__r   Úasyncior   Úurllib.parser6   Úuvicorn._typesr   r   r   r"   r'   r+   r1   r<   r
   r   r   ú<module>rA      sÑ   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð à #Ð #Ð #Ð #Ð #Ð #ð 'Ð &Ð &Ð &Ð &˜Ñ &Ô &Ð &ðð ð ð ð"ð ð ð ð"8ð 8ð 8ð 8ðð ð ð ð"ð "ð "ð "ð "ð "r   