Ë
    CØïiÎ  ã                   óÐ   — U d dl Z d dlZd dlmZmZmZmZmZmZ ddl	m
Z
 ddlmZ dZ	 d dlZdZ G d„ d	e
«      Z G d
„ de
«      Zeeeef      ZereneZeed<   y# e$ r dZY Œ7w xY w)é    N)ÚAnyÚDictÚListÚOptionalÚTypeÚUnioné   )ÚAbstractResolver)Úget_running_loop)ÚThreadedResolverÚAsyncResolverÚDefaultResolverFc                   ó†   — e Zd ZdZddeej                     ddfd„Zdej                  fde
ded	edeee
ef      fd
„Zdd„Zy)r   z�Threaded resolver.

    Uses an Executor for synchronous getaddrinfo() calls.
    concurrent.futures.ThreadPoolExecutor is used by default.
    NÚloopÚreturnc                 ó$   — t        |«      | _        y ©N)r   Ú_loop)Úselfr   s     úJ/var/www/html/aiagents/fe/lib/python3.12/site-packages/aiohttp/resolver.pyÚ__init__zThreadedResolver.__init__   s   € Ü% dÓ+ˆ�
ó    r   ÚhostnameÚportÚfamilyc           
   ƒ   óB  K  — | j                   j                  ||t        j                  |t        j                  ¬«      ƒ d {  –—† }g }|D ]Í  \  }}}}}|t        j
                  k(  rat        |«      dk  rŒ+|d   rDt        j                  |t        j                  t        j                  z  «      \  }	}
t        |
«      }n#|d d \  }	}n|t        j                  k(  sJ ‚|\  }	}|j                  ||	|||t        j                  t        j                  z  dœ«       ŒÏ |S 7 ŒÚ­w)N)Útyper   Úflagsé   é   ©r   Úhostr   r   Úprotor   )r   ÚgetaddrinfoÚsocketÚSOCK_STREAMÚAI_ADDRCONFIGÚAF_INET6ÚlenÚgetnameinfoÚNI_NUMERICHOSTÚNI_NUMERICSERVÚintÚAF_INETÚappendÚAI_NUMERICHOSTÚAI_NUMERICSERV)r   r   r   r   ÚinfosÚhostsÚ_r#   Úaddressr"   Ú_ports              r   ÚresolvezThreadedResolver.resolve   s(  è ø€ ð —j‘j×,Ñ,ØØÜ×#Ñ#ØÜ×&Ñ&ð -ó 
÷ 
ˆð ˆØ,1ò 	Ñ(ˆF�A�u˜a ØœŸ™Ò(Ü�w“< !Ò#ð Ø˜1’:ô #)×"4Ñ"4Ø¤×!6Ñ!6¼×9NÑ9NÑ!Nó#‘K�D˜%ô ˜u›:‘Dà!(¨¨! ‘J�D™$à¤§¡Ò/Ð/Ð/Ø$‘
��dØ�L‰Là (Ø Ø Ø$Ø"Ü#×2Ñ2´V×5JÑ5JÑJñõ	ð'	ð< ˆðO
ús   ‚A DÁDÁCDc              ƒ   ó   K  — y ­wr   © ©r   s    r   ÚclosezThreadedResolver.closeJ   s	   è ø€ Øùs   ‚r   ©r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚasyncioÚAbstractEventLoopr   r%   r.   Ústrr-   r   r   r   r7   r;   r9   r   r   r   r      sh   „ ññ,˜X g×&?Ñ&?Ñ@ð ,ÈDó ,ð *+¸&¿.¹.ñ*Øð*Ø#&ð*Ø47ð*à	ˆd�3˜�8‰nÑ	ó*ôXr   r   c                   óÒ   — e Zd ZdZ	 ddeej                     dededdfd„Zde	j                  fd	ed
ededeeeef      fd„Zde	j                  fd	ed
ededeeeef      fd„Zdd„Zy)r   z9Use the `aiodns` package to make asynchronous DNS lookupsNr   ÚargsÚkwargsr   c                 óÎ   — t         €t        d«      ‚t        |«      | _        t        j                  |d|i|¤Ž| _        t        | j
                  d«      s| j                  | _        y y )Nz Resolver requires aiodns libraryr   Úgethostbyname)	ÚaiodnsÚRuntimeErrorr   r   ÚDNSResolverÚ	_resolverÚhasattrÚ_resolve_with_queryr7   )r   r   rE   rF   s       r   r   zAsyncResolver.__init__Q   s]   € ô ˆ>ÜÐAÓBÐBä% dÓ+ˆŒ
Ü×+Ñ+¨TÐG¸ÐGÀÑGˆŒä�t—~‘~ Ô7à×3Ñ3ˆD�Lð 8r   r   r"   r   r   c           
   ƒ   ó¾  K  — 	 | j                   j                  ||«      ƒ d {  –—† }g }|j                  D ]9  }|j                  ||||dt        j                  t        j                  z  dœ«       Œ; |st        d«      ‚|S 7 Œ]# t        j                  j                  $ r:}t        |j                  «      dk\  r|j                  d   nd}t        |«      |‚d }~ww xY w­w)Nr	   úDNS lookup failedr   r!   )rL   rH   rI   ÚerrorÚDNSErrorr)   rE   ÚOSErrorÚ	addressesr/   r%   r0   r1   )	r   r"   r   r   ÚrespÚexcÚmsgr3   r5   s	            r   r7   zAsyncResolver.resolvea   sÒ   è ø€ ð	(ØŸ™×5Ñ5°d¸FÓC×CˆDð ˆØ—~‘~ò 
	ˆGØ�L‰Là $Ø#Ø Ø$ØÜ#×2Ñ2´V×5JÑ5JÑJñõ	ð
	ñ ÜÐ-Ó.Ð.àˆð) DùÜ�|‰|×$Ñ$ò 	(Ü!$ S§X¡X£°!Ò!3�#—(‘(˜1’+Ð9LˆCÜ˜#“, CÐ'ûð	(üs8   ‚C„B £B¤B ¨ACÂB ÂCÂ 5CÃCÃCc           
   ƒ   óÌ  K  — |t         j                  k(  rd}nd}	 | j                  j                  ||«      ƒ d {  –—† }g }|D ]2  }	|j                  ||	j                  ||dt         j                  dœ«       Œ4 |st        d«      ‚|S 7 ŒL# t        j
                  j                  $ r:}t        |j                  «      dk\  r|j                  d   nd}t        |«      |‚d }~ww xY w­w)NÚAAAAÚAr	   rP   r   r!   )r%   r(   rL   ÚqueryrI   rQ   rR   r)   rE   rS   r/   r"   r0   )
r   r"   r   r   ÚqtyperU   rV   rW   r3   Úrrs
             r   rN   z!AsyncResolver._resolve_with_query{   sÞ   è ø€ ð ”V—_‘_Ò$Ø‰EàˆEð	(ØŸ™×-Ñ-¨d°EÓ:×:ˆDð
 ˆØò 
	ˆBØ�L‰Là $ØŸG™GØ Ø$ØÜ#×2Ñ2ñõ	ð
	ñ ÜÐ-Ó.Ð.àˆð+ ;ùÜ�|‰|×$Ñ$ò 	(Ü!$ S§X¡X£°!Ò!3�#—(‘(˜1’+Ð9LˆCÜ˜#“, CÐ'ûð	(üs9   ‚C$œB
 »B¼B
 Á AC$ÂB
 Â
C!Â'5CÃC!Ã!C$c              ƒ   ó@   K  — | j                   j                  «        y ­wr   )rL   Úcancelr:   s    r   r;   zAsyncResolver.close›   s   è ø€ Ø�‰×ÑÕùs   ‚r   r<   )r=   r>   r?   r@   r   rA   rB   r   r   r%   r.   rC   r-   r   r   r7   rN   r;   r9   r   r   r   r   N   sÀ   „ ÙCð 59ñ4à�w×0Ñ0Ñ1ð4ð ð4ð ð	4ð
 
ó4ð" &'°f·n±nñØðØ"ðØ03ðà	ˆd�3˜�8‰nÑ	óð6 &'°f·n±nñØðØ"ðØ03ðà	ˆd�3˜�8‰nÑ	óô@ r   r   r   )rA   r%   Útypingr   r   r   r   r   r   Úabcr
   Úhelpersr   Ú__all__rI   ÚImportErrorÚaiodns_defaultr   r   Ú_DefaultTyper   Ú__annotations__r9   r   r   ú<module>rh      s†   ðÜ Û ß 9× 9å !Ý %à
B€ðÛð €ô7Ð'ô 7ôtN Ð$ô N ðb �E˜-Ð)9Ð9Ñ:Ñ;€Ù1?¡ÐEU€�Ô Uøðe ò Ø‚Fðús   ©A ÁA%Á$A%