+
    TŎi/'                       a  R t$0 t ^ RIt^ RIt^ RIt^ RIHtHtHtHtH	t	H
t
HtHt ^RIHtHt Rt ^ RIt]! ]P&                  R4      t]P,                  ]P.                  ,          t]P2                  ]P4                  ,          t]P8                  t]! ]R4      '       d   ]]P<                  ,          t ! R	 R]4      t ! R
 R]4      t  ! R R4      t!]]] ]3,          ,          t"]'       d   ] M]t#] ^ k R#   ] d    RtRt Li ; i)    N)AnyDictFinalListOptionalTupleTypeUnion)AbstractResolverResolveResultThreadedResolverAsyncResolvergetaddrinfoFAI_MASKc                   z   a  ] tR t^t o RtR
V 3R lR llt^ ]P                  3V 3R lR lltV 3R lR lt	R	t
V tR# )r   zThreaded resolver.

Uses an Executor for synchronous getaddrinfo() calls.
concurrent.futures.ThreadPoolExecutor is used by default.
Nc                H   < V ^8  d   QhRS[ S[P                  ,          RR/# )   loopreturnN)r   asyncioAbstractEventLoop)format__classdict__s   "_/Users/ahmad/.openclaw/workspace/scripts/.venv/lib/python3.14/site-packages/aiohttp/resolver.py__annotate__ThreadedResolver.__annotate__"   s&     8 8Xg&?&?@ 8D 8    c                N    T;'       g    \         P                  ! 4       V n        R # N)r   get_running_loop_loop)selfr   s   &&r   __init__ThreadedResolver.__init__"   s    77W557
r   c          	      V   < V ^8  d   QhRS[ RS[RS[P                  RS[S[,          /# r   hostportfamilyr   strintsocketAddressFamilyr   r   )r   r   s   "r   r   r   %   s8     * **"*060D0D*	m	*r   c                  "   V P                   P                  VV\        P                  V\        R 7      G Rj  xL
 p. pV F  w  r6rvpV\        P
                  8X  dd   \        V4      ^8  d   K.  V^,          '       d7   V P                   P                  V\        4      G Rj  xL
 w  r\        V
4      pM'VR,          w  rMV\        P                  8X  g   Q hVw  rVP                  \        VV	VVV\        R7      4       K  	  V#  L Le5i))typer)   flagsN:Nr   Nhostnamer'   r(   r)   protor1   )r!   r   r-   SOCK_STREAM_AI_ADDRCONFIGAF_INET6lengetnameinfo_NAME_SOCKET_FLAGSr,   AF_INETappendr   _NUMERIC_SOCKET_FLAGS)r"   r'   r(   r)   infoshosts_r4   addressresolved_host_ports   &&&&       r   resolveThreadedResolver.resolve%   s     jj,,##  - 
 
 &(,1(Fu(w<!# 1:: 261G1G!32 ,(M u:D*1"+'M4///&-#LL!&!/	' -2< O
&,s)   6D	DAD	>#D	!D"A$D	D	c                   < V ^8  d   QhRR/# r   r   N )r   r   s   "r   r   r   Q   s      T r   c                   "   R # 5ir   rH   r"   s   &r   closeThreadedResolver.closeQ   s     s   )r!   r   )__name__
__module____qualname____firstlineno____doc__r#   r-   r;   rD   rK   __static_attributes____classdictcell__r   s   @r   r   r      s4     8 8 &'v~~* *X r   c                      a  ] tR t^Ut o RtRV 3R lR llt^ ]P                  3V 3R lR llt^ ]P                  3V 3R lR llt	V 3R	 lR
 lt
RtV tR# )r   z9Use the `aiodns` package to make asynchronous DNS lookupsNc                T   < V ^8  d   QhRS[ S[P                  ,          RS[RS[RR/# )r   r   argskwargsr   N)r   r   r   r   )r   r   s   "r   r   AsyncResolver.__annotate__X   s>     4 4w0014 4 	4
 
4r   c                   \         f   \        R4      hT;'       g    \        P                  ! 4       V n        R V n        V'       g	   V'       d   \         P                  ! V/ VB V n        R # \        4       V n        V P
                  P                  W P                  4      V n        \        V P                  R4      '       g   V P                  V n        R # R # )Nz Resolver requires aiodns librarygethostbyname)aiodnsRuntimeErrorr   r    r!   _managerDNSResolver	_resolver_DNSResolverManagerget_resolverhasattr_resolve_with_queryrD   )r"   r   rW   rX   s   &&*,r   r#   AsyncResolver.__init__X   s     >ABB77W557
7; 6#//@@DN+-33D**Et~~7733DL 8r   c          	      V   < V ^8  d   QhRS[ RS[RS[P                  RS[S[,          /# r&   r*   )r   r   s   "r   r   rY   q   s8     1 11"1060D0D1	m	1r   c                  "    V P                   P                  VV\        P                  V\        R 7      G Rj  xL
 p. pTP                   EF$  pTP                  p	TP                  pT\        P                  8X  d   \        T	4      ^8  df   T	^,          '       dW   T P                   P                  T	^ ,          P!                  R4      .T	R,          O5\"        4      G Rj  xL
 p
T
P$                  pMZT	^ ,          P!                  R4      pT	^,          pM8T\        P&                  8X  g   Q hT	^ ,          P!                  R4      pT	^,          pTP)                  \+        TTTT^ \,        R7      4       EK'  	  T'       g   \        RR4      hT#  ELR  \
        P                  P                   dB   p\        TP                  4      ^8  d   TP                  ^,          MRp\        RT4      ThRp?ii ; i EL5i))r(   r0   r)   r1   NDNS lookup failedascii:   NNr2   )r`   r   r-   r5   r6   r\   errorDNSErrorr8   rW   OSErrornodesaddrr)   r7   r9   decoder:   noder;   r<   r   r=   )r"   r'   r(   r)   respexcmsgr?   rq   rA   resultrB   s   &&&&        r   rD   AsyncResolver.resolveq   s    
	.33''$ 4  D &(JJDMQYYG[[F(w<!#

 $(>>#=#= **73BgbkB*$ F %+KKM$+AJ$5$5g$>M"1:D/// '
 1 1' :qzLL!&!/	) > $ 344[ ||$$ 	.!$SXX!!3#((1+9LC$$#-	.sR   G45F FF AG4AG4 G1!BG4=G4F G.-<G))G..G4c                X   < V ^8  d   QhRS[ RS[RS[RS[S[S[ S[3,          ,          /# r&   )r+   r,   r   r   r   )r   r   s   "r   r   rY      s:      "03	d38n	r   c                  "   V\         P                  8X  d   R MRp V P                  P                  W4      G Rj  xL
 p. pT F8  p	TP                  RTRT	P                  RTRTR^ R	\         P                  /4       K:  	  T'       g   \        RR4      hT#  LZ  \        P
                  P                   dB   p\        TP                  4      ^8  d   TP                  ^,          MRp\        RT4      ThRp?ii ; i5i)
AAAAANrh   r3   r'   r(   r)   r4   r1   )r-   r7   r`   queryr\   rk   rl   r8   rW   rm   r<   r'   AI_NUMERICHOST)
r"   r'   r(   r)   qtyperr   rs   rt   r?   rrs
   &&&&      r   rd   !AsyncResolver._resolve_with_query   s      "(6??!:v	.--d::D
 BLLBGGDfQV22	  $ 344+ ;||$$ 	.!$SXX!!3#((1+9LC$$#-	.s?   C;B BB  AC;C;B C87<C33C88C;c                   < V ^8  d   QhRR/# rG   rH   )r   r   s   "r   r   rY      s     
 
T 
r   c                   "   V P                   '       d6   V P                   P                  W P                  4       R V n         R V n        R # V P                  e   V P                  P	                  4        R V n        R # 5ir   )r^   release_resolverr!   r`   cancelrJ   s   &r   rK   AsyncResolver.close   sV     ===MM**4< DM!DN>>%NN!!#s   A9A;)r!   r^   r`   rD   r   )rM   rN   rO   rP   rQ   r#   r-   r;   rD   rd   rK   rR   rS   rT   s   @r   r   r   U   sG     C4 44 &'v~~1 1h &'fnn :
 
r   c                      a a ] tR t^t oRtRtV3R lV 3R lltV3R lR ltV3R lR ltV3R	 lR
 lt	V3R lt
RtVtV ;t# )ra   zManager for aiodns.DNSResolver objects.

This class manages shared aiodns.DNSResolver instances
with no custom arguments across different event loops.
Nc                   < V ^8  d   QhRR/# )r   r   ra   rH   )r   r   s   "r   r    _DNSResolverManager.__annotate__   s      - r   c                   < V P                   f/   \        SV `	  V 4      V n         V P                   P                  4        V P                   # r   )	_instancesuper__new___init)cls	__class__s   &r   r   _DNSResolverManager.__new__   s7    == !GOC0CMMM!}}r   c                   < V ^8  d   QhRR/# rG   rH   )r   r   s   "r   r   r      s     ( (t (r   c                :    \         P                  ! 4       V n        R # r   )weakrefWeakKeyDictionary
_loop_datarJ   s   &r   r   _DNSResolverManager._init   s    
 %%' 	r   c                <   < V ^8  d   QhRRRS[ P                  RR/# )r   clientr   r   r   zaiodns.DNSResolverr   r   )r   r   s   "r   r   r      s+      %-4-F-F	r   c                    W P                   9  d>   \        P                  ! VR7      p\        P                  ! 4       pW43V P                   V&   MV P                   V,          w  r4VP                  V4       V# )zGet or create the shared aiodns.DNSResolver instance for a specific event loop.

Args:
    client: The AsyncResolver instance requesting the resolver.
           This is required to track resolver usage.
    loop: The event loop to use for the resolver.
)r   )r   r\   r_   r   WeakSetadd)r"   r   r   resolver
client_sets   &&&  r   rb    _DNSResolverManager.get_resolver   sa     &))t4H;B??;LJ%-$:DOOD! $(??4#8 H 	vr   c                <   < V ^8  d   QhRRRS[ P                  RR/# )r   r   r   r   r   Nr   )r   r   s   "r   r   r      s+     & &%&-4-F-F&	&r   c                    V P                   P                  V4      pVf   R# Vw  rEVP                  V4       V'       g$   Ve   VP                  4        V P                   V R# R# )zRelease the resolver for an AsyncResolver client when it's closed.

Args:
    client: The AsyncResolver instance to release.
    loop: The event loop the resolver was using.
N)r   getdiscardr   )r"   r   r   current_loop_datar   r   s   &&&   r   r   $_DNSResolverManager.release_resolver   s\     !OO//5$06"#!% r   c                4   < V ^8  d   Qh/ S[ R,          ;R&   # )r   ra   r   )r   )r   r   s   "r   r   r      s      -.5 r   )r   )rM   rN   rO   rP   rQ   r   r   r   rb   r   __annotate_func__rR   rS   __classcell__)r   r   s   @@r   ra   ra      sA      26I ( ( .& &[  r   ra   c                @    V ^8  d   Qh/ ^ \         9   d
   \        ;R&   # )r   DefaultResolver)__conditional_annotations___DefaultType)r   s   "r   r   r      s    b V U Uc r   )r   r   r   )%r   r   r-   r   typingr   r   r   r   r   r   r	   r
   abcr   r   __all__r\   rc   r_   aiodns_defaultImportErrorr|   AI_NUMERICSERVr=   NI_NUMERICHOSTNI_NUMERICSERVr:   AI_ADDRCONFIGr6   r   r   r   ra   r   r   r   )r   s   @r   <module>r      s       G G G 0
BV//?N --0E0EE **V-B-BB %%
69fnn$N7' 7tv$ vr@& @&F E-)99:;1?EU UG  FNs   C5 5DD