§
    ÏÁ³g)  ã                  óÖ   — d dl m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m	Z	m
Z
mZmZmZmZmZ ddlmZ ddlmZmZmZ  G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        ZdS )é    )ÚannotationsNé   )ÚConnectErrorÚConnectTimeoutÚExceptionMappingÚ	ReadErrorÚReadTimeoutÚ
WriteErrorÚWriteTimeoutÚmap_exceptions)Úis_socket_readableé   )ÚSOCKET_OPTIONÚNetworkBackendÚNetworkStreamc                  ó^   — e Zd ZdZdZ	 	 dd d„Zd!d„Zd"d#d„Zd"d$d„Zd%d„Z		 	 dd&d„Z
d'd„ZdS )(ÚTLSinTLSStreamzì
    Because the standard `SSLContext.wrap_socket` method does
    not work for `SSLSocket` objects, we need this class
    to implement TLS stream using an underlying `SSLObject`
    instance in order to support TLS on top of TLS.
    i @  NÚsockúsocket.socketÚssl_contextússl.SSLContextÚserver_hostnameú
str | NoneÚtimeoutúfloat | Nonec                ó4  — || _         t          j        ¦   «         | _        t          j        ¦   «         | _        |                     | j        | j        |¬¦  «        | _        | j                              |¦  «         |                      | j        j	        ¦  «         d S )N)ÚincomingÚoutgoingr   )
Ú_sockÚsslÚ	MemoryBIOÚ	_incomingÚ	_outgoingÚwrap_bioÚssl_objÚ
settimeoutÚ_perform_ioÚdo_handshake)Úselfr   r   r   r   s        úU/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/httpcore/_backends/sync.pyÚ__init__zTLSinTLSStream.__init__"   s…   € ð ˆŒ
Ýœ™œˆŒÝœ™œˆŒà"×+Ò+Ø”^Ø”^Ø+ð ,ñ 
ô 
ˆŒð 	Œ
×Ò˜gÑ&Ô&Ð&Ø×Ò˜œÔ2Ñ3Ô3Ð3Ð3Ð3ó    Úfuncú typing.Callable[..., typing.Any]Úreturnú
typing.Anyc                ó¸  — d }	 d }	  |¦   «         }n/# t           j        t           j        f$ r}|j        }Y d }~nd }~ww xY w| j                             | j                             ¦   «         ¦  «         |t           j        k    rU| j         	                    | j
        ¦  «        }|r| j                             |¦  «         n| j                             ¦   «          |€|S ŒØ©N)r    ÚSSLWantReadErrorÚSSLWantWriteErrorÚerrnor   Úsendallr#   ÚreadÚSSL_ERROR_WANT_READÚrecvÚTLS_RECORD_SIZEr"   ÚwriteÚ	write_eof)r)   r-   Úretr5   ÚeÚbufs         r*   r'   zTLSinTLSStream._perform_io6   sî   € ð ˆð	ØˆEð Ø�d‘f”f��øÝÔ(­#Ô*?Ð@ð  ð  ð  Øœ������øøøøð øøøð ŒJ×Ò˜tœ~×2Ò2Ñ4Ô4Ñ5Ô5Ð5à�Ô/Ò/Ð/Ø”j—o’o dÔ&:Ñ;Ô;�àð /Ø”N×(Ò(¨Ñ-Ô-Ð-Ð-à”N×,Ò,Ñ.Ô.Ð.Øˆ}Ø�
ð#	s   ‡
 ’>­9¹>Ú	max_bytesÚintÚbytesc           
     óZ  — t           j        t          t          t          i}t          |¦  «        5  | j                             |¦  «         t          j	        t          |                      t          j        | j        j        |¦  «        ¦  «        ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r2   )Úsocketr   r	   ÚOSErrorr   r   r   r&   ÚtypingÚcastrB   r'   Ú	functoolsÚpartialr%   r7   ©r)   r@   r   Úexc_maps       r*   r7   zTLSinTLSStream.readO   sÎ   € Ý%+¤^µ[Å'Í9Ð$UˆÝ˜GÑ$Ô$ð 	ð 	ØŒJ×!Ò! 'Ñ*Ô*Ð*Ý”;Ý�t×'Ò'­	Ô(9¸$¼,Ô:KÈYÑ(WÔ(WÑXÔXñô ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¯A$B Â B$Â'B$ÚbufferÚNonec                óH  — t           j        t          t          t          i}t          |¦  «        5  | j                             |¦  «         |r>|                      t          j
        | j        j        |¦  «        ¦  «        }||d …         }|°>d d d ¦  «         d S # 1 swxY w Y   d S r2   )rD   r   r   rE   r
   r   r   r&   r'   rH   rI   r%   r;   )r)   rL   r   rK   Únsents        r*   r;   zTLSinTLSStream.writeW   sÞ   € Ý%+¤^µ\Å7ÍJÐ$WˆÝ˜GÑ$Ô$ð 	(ð 	(ØŒJ×!Ò! 'Ñ*Ô*Ð*Øð (Ø×(Ò(­Ô):¸4¼<Ô;MÈvÑ)VÔ)VÑWÔW�Ø   œ�ð ð (ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s   ¯ABÂBÂBc                ó8   — | j                              ¦   «          d S r2   ©r   Úclose©r)   s    r*   rR   zTLSinTLSStream.close_   ó   € ØŒ
×ÒÑÔÐÐÐr,   r   c                ó   — t          ¦   «         ‚r2   )ÚNotImplementedError)r)   r   r   r   s       r*   Ú	start_tlszTLSinTLSStream.start_tlsb   s   € õ "Ñ#Ô#Ð#r,   ÚinfoÚstrc                óê   — |dk    r| j         S |dk    r| j                             ¦   «         S |dk    r| j                             ¦   «         S |dk    r| j        S |dk    rt	          | j        ¦  «        S d S ©NÚ
ssl_objectÚclient_addrÚserver_addrrD   Úis_readable)r%   r   ÚgetsocknameÚgetpeernamer   ©r)   rX   s     r*   Úget_extra_infozTLSinTLSStream.get_extra_infoj   s†   € Ø�<ÒÐØ”<ÐØ�=Ò Ð Ø”:×)Ò)Ñ+Ô+Ð+Ø�=Ò Ð Ø”:×)Ò)Ñ+Ô+Ð+Ø�8ÒÐØ”:ÐØ�=Ò Ð Ý% d¤jÑ1Ô1Ð1Øˆtr,   ©NN)r   r   r   r   r   r   r   r   )r-   r.   r/   r0   r2   ©r@   rA   r   r   r/   rB   ©rL   rB   r   r   r/   rM   ©r/   rM   ©r   r   r   r   r   r   r/   r   ©rX   rY   r/   r0   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r:   r+   r'   r7   r;   rR   rW   rc   © r,   r*   r   r      sÕ   € € € € € ðð ð €Oð '+Ø $ð4ð 4ð 4ð 4ð 4ð(ð ð ð ð2ð ð ð ð ð(ð (ð (ð (ð (ðð ð ð ð '+Ø $ð	$ð $ð $ð $ð $ðð ð ð ð ð r,   r   c                  óH   — e Zd Zdd„Zddd„Zddd„Zdd„Z	 	 dd d„Zd!d„ZdS )"Ú
SyncStreamr   r   r/   rM   c                ó   — || _         d S r2   )r   )r)   r   s     r*   r+   zSyncStream.__init__y   s   € ØˆŒ
ˆ
ˆ
r,   Nr@   rA   r   r   rB   c                óú   — t           j        t          t          t          i}t          |¦  «        5  | j                             |¦  «         | j                             |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r2   )	rD   r   r	   rE   r   r   r   r&   r9   rJ   s       r*   r7   zSyncStream.read|   s«   € Ý%+¤^µ[Å'Í9Ð$UˆÝ˜GÑ$Ô$ð 	.ð 	.ØŒJ×!Ò! 'Ñ*Ô*Ð*Ø”:—?’? 9Ñ-Ô-ð	.ð 	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.s   ¯4A0Á0A4Á7A4rL   c                ó   — |sd S t           j        t          t          t          i}t          |¦  «        5  |r@| j                             |¦  «         | j                             |¦  «        }||d …         }|°@d d d ¦  «         d S # 1 swxY w Y   d S r2   )	rD   r   r   rE   r
   r   r   r&   Úsend)r)   rL   r   rK   Úns        r*   r;   zSyncStream.write‚   sÙ   € Øð 	ØˆFå%+¤^µ\Å7ÍJÐ$WˆÝ˜GÑ$Ô$ð 	$ð 	$Øð $Ø”
×%Ò% gÑ.Ô.Ð.Ø”J—O’O FÑ+Ô+�Ø   œ�ð ð $ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$s   ³ABÂBÂ
Bc                ó8   — | j                              ¦   «          d S r2   rQ   rS   s    r*   rR   zSyncStream.close�   rT   r,   r   r   r   r   r   c                óò  — t           j        t          t          t          i}t          |¦  «        5  	 t          | j        t          j	        ¦  «        r#t          | j        |||¦  «        cd d d ¦  «         S | j                             |¦  «         |                     | j        |¬¦  «        }n(# t          $ r}|                      ¦   «          |‚d }~ww xY w	 d d d ¦  «         n# 1 swxY w Y   t          |¦  «        S )N)r   )rD   r   r   rE   r   r   Ú
isinstancer   r    Ú	SSLSocketr   r&   Úwrap_socketÚ	ExceptionrR   rp   )r)   r   r   r   rK   r   Úexcs          r*   rW   zSyncStream.start_tls�   s\  € õ ŒN�NÝ•\ð%
ˆõ ˜GÑ$Ô$ð 	ð 	ðÝ˜dœj­#¬-Ñ8Ô8ð õ *Øœ
 K°À'ñô ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð ”J×)Ò)¨'Ñ2Ô2Ð2Ø&×2Ò2Øœ
°Oð 3ñ ô �D�Døõ ð ð ð Ø—
’
‘”�Ø�	øøøøðøøøð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ" ˜$ÑÔÐs:   ¯C±5B*Á36B*Â)CÂ*
CÂ4C
Ã
CÃCÃC#Ã&C#rX   rY   r0   c                ó2  — |dk    r+t          | j        t          j        ¦  «        r| j        j        S |dk    r| j                             ¦   «         S |dk    r| j                             ¦   «         S |dk    r| j        S |dk    rt          | j        ¦  «        S d S r[   )rx   r   r    ry   Ú_sslobjr`   ra   r   rb   s     r*   rc   zSyncStream.get_extra_info­   sœ   € Ø�<ÒÐ¥J¨t¬z½3¼=Ñ$IÔ$IÐØ”:Ô%Ð%Ø�=Ò Ð Ø”:×)Ò)Ñ+Ô+Ð+Ø�=Ò Ð Ø”:×)Ò)Ñ+Ô+Ð+Ø�8ÒÐØ”:ÐØ�=Ò Ð Ý% d¤jÑ1Ô1Ð1Øˆtr,   )r   r   r/   rM   r2   re   rf   rg   rd   rh   ri   )	rj   rk   rl   r+   r7   r;   rR   rW   rc   rn   r,   r*   rp   rp   x   s£   € € € € € ðð ð ð ð.ð .ð .ð .ð .ð	$ð 	$ð 	$ð 	$ð 	$ðð ð ð ð '+Ø $ð	 ð  ð  ð  ð  ð:ð ð ð ð ð r,   rp   c                  ó,   — e Zd Z	 	 	 ddd„Z	 	 ddd„ZdS )ÚSyncBackendNÚhostrY   ÚportrA   r   r   Úlocal_addressr   Úsocket_optionsú%typing.Iterable[SOCKET_OPTION] | Noner/   r   c                ón  — |€g }||f}|€d n|df}t           j        t          t          t          i}t          |¦  «        5  t          j        |||¬¦  «        }	|D ]}
 |	j        |
Ž  Œ|	                     t           j        t           j	        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          |	¦  «        S )Nr   )Úsource_addressr   )rD   r   r   rE   r   r   Úcreate_connectionÚ
setsockoptÚIPPROTO_TCPÚTCP_NODELAYrp   )r)   r�   r‚   r   rƒ   r„   Úaddressr‡   rK   r   Úoptions              r*   Úconnect_tcpzSyncBackend.connect_tcp¼   s#  € ð Ð!ØˆNØ˜�,ˆØ!.Ð!6˜˜¸]ÈAÐ<NˆåŒN�NÝ•\ð%
ˆõ
 ˜GÑ$Ô$ð 	Gð 	GÝÔ+ØØØ-ðñ ô ˆDð
 )ð )ð )�Ø�” Ð(Ð(Ð(Ø�OŠO�FÔ.µÔ0BÀAÑFÔFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gõ ˜$ÑÔÐs   ¿ABÂB!Â$B!Úpathc                ó¶  — t           j        dk    rt          d¦  «        ‚|€g }t          j        t
          t          t          i}t          |¦  «        5  t          j        t          j	        t          j
        ¦  «        }|D ]} |j        |Ž  Œ|                     |¦  «         |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |¦  «        S )NÚwin32z:Attempted to connect to a UNIX socket on a Windows system.)ÚsysÚplatformÚRuntimeErrorrD   r   r   rE   r   r   ÚAF_UNIXÚSOCK_STREAMr‰   r&   Úconnectrp   )r)   r�   r   r„   rK   r   r�   s          r*   Úconnect_unix_socketzSyncBackend.connect_unix_socketÚ   s  € õ Œ<˜7Ò"Ð"ÝØLñô ð ð Ð!ØˆNõ ŒN�NÝ•\ð%
ˆõ ˜GÑ$Ô$ð 	ð 	Ý”=¥¤µÔ1CÑDÔDˆDØ(ð )ð )�Ø�” Ð(Ð(Ð(Ø�OŠO˜GÑ$Ô$Ð$Ø�LŠL˜ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ ˜$ÑÔÐs   ÁA#CÃCÃC)NNN)r�   rY   r‚   rA   r   r   rƒ   r   r„   r…   r/   r   rd   )r�   rY   r   r   r„   r…   r/   r   )rj   rk   rl   rŽ   r˜   rn   r,   r*   r€   r€   »   sZ   € € € € € ð
 !%Ø$(Ø@Dð ð  ð  ð  ð  ðB !%Ø@Dð	 ð  ð  ð  ð  ð  ð  r,   r€   )Ú
__future__r   rH   rD   r    r’   rF   Ú_exceptionsr   r   r   r   r	   r
   r   r   Ú_utilsr   Úbaser   r   r   r   rp   r€   rn   r,   r*   ú<module>r�      sw  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø 
€
€
€
Ø 
€
€
€
Ø €€€ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð (Ð 'Ð 'Ð 'Ð 'Ð 'Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >ð^ð ^ð ^ð ^ð ^�]ñ ^ô ^ð ^ðB@ð @ð @ð @ð @�ñ @ô @ð @ðF6 ð 6 ð 6 ð 6 ð 6 �.ñ 6 ô 6 ð 6 ð 6 ð 6 r,   