
    hE                        % S SK r S SKrS SKJrJrJrJrJrJrJ	r	  SSK
JrJr  Sr S SKr\" \R                   S5      r\R&                  \R(                  -  r\R,                  \R.                  -  r\R2                  r\" \S5      (       a  \\R6                  -  r " S	 S
\5      r " S S\5      r\\	\\4      r\(       a  \O\r\\ S'   g! \ a    SrSr Nf = f)    N)AnyDictListOptionalTupleTypeUnion   )AbstractResolverResolveResult)ThreadedResolverAsyncResolverDefaultResolvergetaddrinfoFAI_MASKc            
           \ rS rSrSrSS\\R                     SS4S jjrS\	R                  4S\S	\S
\	R                  S\\   4S jjrSS jrSrg)r      zThreaded resolver.

Uses an Executor for synchronous getaddrinfo() calls.
concurrent.futures.ThreadPoolExecutor is used by default.
Nloopreturnc                 J    U=(       d    [         R                  " 5       U l        g N)asyncioget_running_loop_loop)selfr   s     B/var/www/html/env/lib/python3.13/site-packages/aiohttp/resolver.py__init__ThreadedResolver.__init__!   s    7W557
    r   hostportfamilyc                   #    U R                   R                  UU[        R                  U[        S9I S h  vN n/ nU H  u  p6pvnU[        R
                  :X  aY  [        U5      S:  a  M,  US   (       a6  U R                   R                  U[        5      I S h  vN u  p[        U
5      nO"US S u  pOU[        R                  :X  d   eUu  pUR                  [        UU	UUU[        S95        M     U$  N N]7f)N)typer"   flags      hostnamer    r!   r"   protor%   )r   r   socketSOCK_STREAM_AI_ADDRCONFIGAF_INET6lengetnameinfo_NAME_SOCKET_FLAGSintAF_INETappendr   _NUMERIC_SOCKET_FLAGS)r   r    r!   r"   infoshosts_r*   addressresolved_host_ports              r   resolveThreadedResolver.resolve$   s     jj,,##  - 
 
 &(,1(Fu(w<!# 1: 261G1G!32 ,(M u:D*1"1+'M4///&-#LL!&!/	' -2< O
&,s#   3C7C3A!C7C5AC75C7c                    #    g 7fr    r   s    r   closeThreadedResolver.closeP   s     s   )r   r   r   N)__name__
__module____qualname____firstlineno____doc__r   r   AbstractEventLoopr   r+   r3   strr2   AddressFamilyr   r   r<   rA   __static_attributes__r?   r   r   r   r      sf    8Xg&?&?@ 8D 8 &'v~~**"*060D0D*	m	*Xr   r   c                       \ rS rSrSr SS\\R                     S\S\SS4S jjr	S	\
R                  4S
\S\S\
R                  S\\   4S jjrS	\
R                  4S
\S\S\S\\\\4      4S jjrSS jrSrg)r   T   z9Use the `aiodns` package to make asynchronous DNS lookupsNr   argskwargsr   c                     [         c  [        S5      e[         R                  " U0 UD6U l        [	        U R                  S5      (       d  U R
                  U l        g g )Nz Resolver requires aiodns librarygethostbyname)aiodnsRuntimeErrorDNSResolver	_resolverhasattr_resolve_with_queryr<   )r   r   rO   rP   s       r   r   AsyncResolver.__init__W   sO     >ABB++T<V<t~~7733DL 8r   r   r    r!   r"   c                   #     U R                   R                  UU[        R                  U[        S9I S h  vN n/ nUR                   GH  nUR                  n	UR                  nU[        R                  :X  a  [        U	5      S:  aX  U	S   (       aN  U R                   R                  U	S   R!                  S5      /U	SS  Q7["        5      I S h  vN n
U
R$                  nOIU	S   R!                  S5      nU	S   nO/U[        R&                  :X  d   eU	S   R!                  S5      nU	S   nUR)                  [+        UUUUS[,        S95        GM     U(       d  [        S S5      eU$  GN.! [
        R                  R                   a<  n[        UR                  5      S:  a  UR                  S   OSn[        S U5      UeS nAff = f N7f)N)r!   r$   r"   r%   r
   DNS lookup failedr&   r   asciir(   )rV   r   r+   r,   r-   rS   errorDNSErrorr/   rO   OSErrornodesaddrr"   r.   r0   decoder1   noder3   r4   r   r5   )r   r    r!   r"   respexcmsgr7   rc   r9   resultr:   s               r   r<   AsyncResolver.resolvef   s    
	.33''$ 4  D &(JJDMQYYG[[F(w<!#
 $(>>#=#= **73BgabkB*$ F %+KKM$+AJ$5$5g$>M"1:D/// '
 1 1' :qzLL!&!/	) > $ 344[ ||$$ 	.!$SXX!!3#((1+9LC$$#-	.sE   G2E' E$E' BGGBG$E' 'G7F<<GGc           
        #    U[         R                  :X  a  SnOSn U R                  R                  X5      I S h  vN n/ nU H3  n	UR                  UU	R                  UUS[         R                  S.5        M5     U(       d  [        S S5      eU$  NT! [        R
                  R                   a<  n[        UR                  5      S:  a  UR                  S   OSn[        S U5      UeS nAff = f7f)NAAAAAr
   r[   r   r(   )r+   r.   rV   queryrS   r]   r^   r/   rO   r_   r4   r    AI_NUMERICHOST)
r   r    r!   r"   qtyperd   re   rf   r7   rrs
             r   rX   !AsyncResolver._resolve_with_query   s      V__$EE	.--d::D
 BLL $GG $#22	  $ 344+ ;||$$ 	.!$SXX!!3#((1+9LC$$#-	.s9   C/B BB  AC/B C,07C''C,,C/c                 @   #    U R                   R                  5         g 7fr   )rV   cancelr@   s    r   rA   AsyncResolver.close   s     s   )rV   r<   r   rC   )rD   rE   rF   rG   rH   r   r   rI   r   r   r+   r3   rJ   r2   rK   r   r   r<   r   rX   rA   rL   r?   r   r   r   r   T   s    C 594w0014 4 	4
 
4  &'v~~11"1060D0D1	m	1h &'fnn"03	d38n	@ r   r   r   )!r   r+   typingr   r   r   r   r   r   r	   abcr   r   __all__rS   rW   rU   aiodns_defaultImportErrorrm   AI_NUMERICSERVr5   NI_NUMERICHOSTNI_NUMERICSERVr1   AI_ADDRCONFIGr-   r   r   r   _DefaultTyper   __annotations__r?   r   r   <module>r      s      @ @ @ 0
BV//?N --0E0EE **V-B-BB %%
69fnn$N7' 7tf $ f R E-)99:;1?EU Ua  FNs   C
 

CC