e/SQrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK r SSK J r SSK J r J r SSKJr \R rSSKrSSKrSSKJrJrJrJr S rS r\ R8"5rS rS /r\ "\S 5(aS r\S /- r\R2S:XaS r\S /- r\4Sjr!Sr"Sr#Sr$Sr%"SS5r&\(a "SS\&5r'"SS\&5r("SS\)5r*SCSjr+\R2S:waSDSjr,OSDSjr,"SS\)5r-S r.\R2S:Xa"S!S"\)5r/S#r0S$r1S%r2S&r3S'r4\5"1S(k5r6\7"S)\655r8S*r9S+r:\9\:4r;S,rSES/\?4S0jjr@S/\?4S1jrA"S2S3\)5rBS4rCS5rD"S6S7\*5rES8rF\R2S:Xa!S9rG\R\R1rJSFS:jrKO0SSKLrL\ "\LS;5(a \LRrNO \LRrNSFS<jrK\R2S:Xa3S=rPS>rQ\R"\(\P5 S?rSS@rT\R"\'\S5 gSArPSBrQ\R"\(\P5 g!\a \R2S:XaeSrGNf=f)G)ClientListenerPipewaitN)util)AuthenticationErrorBufferTooShort) reduction) WAIT_OBJECT_0WAIT_ABANDONED_0 WAIT_TIMEOUTINFINITEwin32i g4@AF_INETAF_UNIXAF_PIPEc2[R"5U-$Ntime monotonic)timeouts @/opt/imh/python3.13/lib/python3.13/multiprocessing/connection.py _init_timeoutr<s >> g %%c2[R"5U:$rr)ts r_check_timeoutr?s >> a rcUS:XagUS:Xa([R"S[R"5S9$US:Xa:[R"S[R "5[ [54-SS9$[S 5e) z7 Return an arbitrary free address for the given family r) localhostrrz listener-)prefixdirrz\\.\pipe\pyc-%d-%d-zunrecognized family) tempfilemktempr get_temp_dirosgetpidnext _mmap_counter ValueErrorfamilys rarbitrary_addressr/Fsy 9 kt7H7H7JKK 9 &< " T--@A'BGIK K.//rc[RS:waUS:Xa[SU-5e[RS:Xa+US:Xa$[[U5(d[SU-5eggg)z< Checks if the family is valid for the current environment. rrzFamily %s is not recognized.rN)sysplatformr,hasattrsocketr-s r_validate_familyr5Tsf ||w6Y#67&@AA ||w6Y#6vv&&;fDE E'$7rc[U5[:Xag[U5[LaURS5(ag[U5[Ld[R "U5(ag[ SU-5e)zQ Return the types of the address This can be 'AF_INET', 'AF_UNIX', or 'AF_PIPE' rz\\rrzaddress type of %r unrecognized)typetuplestr startswithris_abstract_socket_namespacer,)addresss r address_typer=`sb  G} g# '"4"4V"<"< g# !B!B7!K!K:WDEErc\rSrSrSrSSjrSrSrSrSr Sr \ S 5r \ S 5r \ S 5rS rS rSSjrSrSSjrSSjrSrSSjrSrSrSrg)_ConnectionBasesNcUR5nUS:a [S5eU(dU(d [S5eXlX lX0lg)Nrzinvalid handlez6at least one of `readable` and `writable` must be True) __index__r,_handle _readable _writable)selfhandlereadablewritables r__init___ConnectionBase.__init__vsI!!# A:-. .HJ J !!rc@URbUR5 ggrrC_closerFs r__del___ConnectionBase.__del__s << # KKM $rc4URc [S5eg)Nhandle is closed)rCOSErrorrOs r _check_closed_ConnectionBase._check_closeds << ,- - rc<UR(d [S5eg)Nzconnection is write-only)rDrTrOs r_check_readable_ConnectionBase._check_readables~~45 5rc<UR(d [S5eg)Nzconnection is read-only)rErTrOs r_check_writable_ConnectionBase._check_writables~~34 4rcjUR(aSUlOUR5 [S5e)NFzbad message length)rErDcloserTrOs r_bad_message_length#_ConnectionBase._bad_message_lengths% >>"DN JJL*++rcURSL$)z True if the connection is closedNrCrOs rclosed_ConnectionBase.closeds||t##rcUR$)z"True if the connection is readable)rDrOs rrH_ConnectionBase.readable~~rcUR$)z"True if the connection is writable)rErOs rrI_ConnectionBase.writablergrc:UR5 UR$)z+File descriptor or handle of the connection)rUrCrOs rfileno_ConnectionBase.filenos ||rchURbUR5 SUlgg!SUlf=f)zClose the connectionNrMrOs rr^_ConnectionBase.closes1 << # $ # $ $ s( 1cxUR5 UR5 [U5nURS:aUR S5nUR nUS:a [ S5eXR:a [ S5eUcXR- nO$US:a [ S5eX#-U:a [ S5eURXBX#-5 g) z,Send the bytes data from a bytes-like objectrBrzoffset is negativezbuffer length < offsetNzsize is negativezbuffer length < offset + size)rUr[ memoryviewitemsizecastnbytesr, _send_bytes)rFbufoffsetsizemns r send_bytes_ConnectionBase.send_bytess   sO ::>s A HH A:12 2 :56 6 <:D AX/0 0 ]Q <= = &-01rcUR5 UR5 UR[R U55 g)zSend a (picklable) objectN)rUr[ru_ForkingPicklerdumpsrFobjs rsend_ConnectionBase.sends3   ..s34rcUR5 UR5 UbUS:a [S5eURU5nUcUR 5 UR 5$)z' Receive bytes data as a bytes object. rznegative maxlength)rUrXr, _recv_bytesr_getvalue)rF maxlengthrvs r recv_bytes_ConnectionBase.recv_bytessa    Y]12 2y) ;  $ $ &||~rcUR5 UR5 [U5nURnU[ U5-nUS:a [ S5eX%:a [ S5eUR 5nUR5nXRU-:a[UR55eURS5 URX2U-X'-U-5 UsSSS5 $!,(df  g=f)zY Receive bytes data into a writeable bytes-like object. Return the number of bytes read. rznegative offsetzoffset too largeN) rUrXrqrrlenr,rtellr rseekreadinto)rFrvrwryrrbytesizeresultrxs rrecv_bytes_into_ConnectionBase.recv_bytes_intos   _zzH#a&(Hz !233" !344%%'F;;=D4-'$V__%677 KKN OOA0%}9; <!__s B*C  C.cUR5 UR5 UR5n[R UR 55$)zReceive a (picklable) object)rUrXrr~loads getbuffer)rFrvs rrecv_ConnectionBase.recvs?   $$S]]_55rcdUR5 UR5 URU5$)z/Whether there is any input available to be read)rUrX_pollrFrs rpoll_ConnectionBase.polls)  zz'""rcU$rrOs r __enter___ConnectionBase.__enter__ rc$UR5 grr^rFexc_type exc_valueexc_tbs r__exit___ConnectionBase.__exit__  r)rCrDrE)TT)rNr)r)g)__name__ __module__ __qualname____firstlineno__rCrJrPrUrXr[r_propertyrcrHrIrkr^r{rrrrrrr__static_attributes__rrrr?r?ssG ".65,$$ $2(5 26# rr?c\\rSrSrSrSrSr\R4Sjr Sr S Sjr Sr S r S rg) PipeConnectioni z Connection class based on a Windows named pipe. Overlapped I/O is used, so the handles must have been created with FILE_FLAG_OVERLAPPED. FNcfURnUbUR5 U"UR5 gr)_send_ovcancelrC)rF _CloseHandleovs rrNPipeConnection._closes%B~  &rc@URb [S5e[R"URUSS9up#X lU[R :Xa3[R "UR/S[5nU[:XdeSUlURS5upSU[R:Xa[[RS5eUS:XdeU[!U5:Xdeg! UR5 e=f!SUlURS5upSf=f)Nz/concurrent send_bytes() calls are not supportedT overlappedFrSr)rr,_winapi WriteFilerCERROR_IO_PENDINGWaitForMultipleObjectseventrr rGetOverlappedResultERROR_OPERATION_ABORTEDrTerrnoEPIPEr)rFrvrerrwaitresnwrittens rruPipeConnection._send_bytess}}( "566'' cdKGBM ='222%<< E85G"m333 !% " 6 6t < g555ekk+=>>!8O8s3x' ''   $ " 6 6t < #sAC++C>>DDcUR(aSUl[R"5$UcSO [US5n[R "UR USS9up4U[R:Xa3[R"UR/S[5nU[:XdeURS5updUS:Xa6[R"5nURUR55 U$U[R :XaUR#X15$[-S5e! UR5 e=f!URS5updUS:Xa:[R"5nURUR55 Us s$U[R :XaUR#X15s s$f=f![$a*nUR&[R(:Xa[*eeSnAff=f)NFTrrz.shouldn't get here; expected KeyboardInterrupt)_got_empty_messageioBytesIOminrReadFilerCrrrrr rrwriterERROR_MORE_DATA_get_more_datarTwinerrorERROR_BROKEN_PIPEEOFError RuntimeError) rFmaxsizebsizerrrnreadfes rrPipeConnection._recv_bytes6s&&*/'zz|#&C4E%..t||U;?AGBD'":"::&-&D&D!# E8'=G#*m#;;#; &(%;%;D%A !8 " AGGBLLN3#$H G$;$;;#'#6#6r#CC<OP P! %'%;%;D%A !8 " AGGBLLN3#$H G$;$;;#'#6#6r#CC<zzW%>%>>& s]"G#AD**AG9$G*D==EAF>G'F>;G=F>>G G5 %G00G5cUR(d'[R"UR5SS:wag[ [ U/U55$)NrT)rr PeekNamedPiperCboolrrs rrPipeConnection._pollVs>''--dll;A>!CdVW-. .rcUR5n[R"5nURU5 [R "UR 5SnUS:deUb"[U5U-U:aUR5 [R"UR USS9upURS5upvUS:XdeXu:XdeURUR55 U$)NrrTr) rrrrrrrCrr_rr)rFrrrvrleftrrbytess rrPipeConnection._get_more_data\s,,.C A GGCL((6q9D!8O8"s3x$'@((*&&t||TdKGB006KF!8O8> !> GGBLLN #Hr)rrr)rrrr__doc__rrr CloseHandlerNrurrrrrrrrr s8 #&-&9&9 ' (4 Q@ / rrc\rSrSrSr\(a)\R4Sjr\Rr \Rr O(\ R4Sjr\ Rr \ R r \ 4Sjr\ 4SjrSrS S jrS rS rg) Connectionilzc Connection class based on an arbitrary file descriptor (Unix only), or a socket handle (Windows). c(U"UR5 grrbrFrNs rrNConnection._closes 4<< rc(U"UR5 grrbrs rrNrxrrcb[U5nU"URU5nX4-nUS:XagXSnM$Nr)rrC)rFrvr remainingrzs r_sendConnection._send}s=H dllC(A NIA~b'C rc[R"5nURnUnUS:aLU"XE5n[U5nUS:XaXQ:Xa[e[ S5eUR U5 XW-nUS:aMLU$)Nrzgot end of file during message)rrrCrrrTr)rFrxreadrvrGrchunkrzs r_recvConnection._recvsvjjl !m+EE AAv$"N!"BCC IIe  NI!m rc[U5nUS:ab[R"SS5n[R"SU5nURU5 URU5 URU5 g[R"SU5nUS:a#URU5 URU5 gURXA-5 g)Ni!i!Qi@)rstructpackr)rFrvrz pre_headerheaders rruConnection._send_bytess H z>T2.J[[q)F JJz " JJv  JJsO[[q)F5y 6" 3  6<(rNc"URS5n[R"SUR55unUS:Xa8URS5n[R"SUR55unUbX1:agURU5$)Nrrr)rrunpackr)rFrrvrxs rrConnection._recv_bytessojjm dCLLN3 2:**Q-CMM$ 7ED  4>zz$rc2[U/U5n[U5$r)rr)rFrrs rrConnection._polls $ !Awrrr)rrrrrr_multiprocessing closesocketrNr_writer_readr(r^rrrrrurrrrrrrrlso  0 < < !!&& %% " !% % ). rrcZ\rSrSrSrS SjrSrSr\S5r \S5r S r S r S r g) riz Returns a listener object. This is a wrapper for a bound socket which is 'listening' for connections, or for a Windows named pipe. Nc8U=(d! U=(a [U5=(d [nU=(d [U5n[U5 US:Xa[ X5UlO[ XU5UlUb [U[5(d [S5eX@l g)Nrauthkey should be a byte string) r=default_familyr/r5 PipeListener _listenerSocketListener isinstancebytes TypeError_authkey)rFr<r.backlogauthkeys rrJListener.__init__s#G= W(=#" 6.v6 Y )';DN+GWEDN  z'5'A'A=> > rcURc [S5eURR5nURb*[ XR5 [ XR5 U$)zb Accept a connection on the bound socket or named pipe of `self`. Returns a `Connection` object. zlistener is closed)rrTacceptrdeliver_challengeanswer_challenge)rFcs rrListener.acceptsS >> !./ / NN ! ! # == $ a / Q .rcRURnUbSUlUR5 gg)z1 Close the bound socket or named pipe of `self`. N)rr^)rFlisteners rr^Listener.closes)>>  !DN NN  rc.URR$r)r_addressrOs rr<Listener.addresss~~&&&rc.URR$r)r_last_acceptedrOs r last_acceptedListener.last_accepteds~~,,,rcU$rrrOs rrListener.__enter__rrc$UR5 grrrs rrListener.__exit__rr)rr)NNrN)rrrrrrJrr^rr<r)rrrrrrrrsH  ''--rrcU=(d [U5n[U5 US:Xa [U5nO [U5nUb [ U[ 5(d [ S5eUb[X25 [X25 U$)z5 Returns a connection to the address of a `Listener` rr) r=r5 PipeClient SocketClientrrrrr)r<r.rrs rrrsp ,|G,FV  w   !:gu#=#=9::$!% HrcHU(an[R"5upURS5 URS5 [UR 55n[UR 55nX44$[ R "5upV[USS9n[USS9nX44$)< Returns pair of connection objects at either end of a pipe TFrIrH)r4 socketpair setblockingrdetachr(pipe)duplexs1s2c1c2fd1fd2s rrrs &&(FB NN4 NN4 BIIK(BBIIK(B v wwyHCC%0BC%0Bv rc ~[S5nU(a=[Rn[R[R-n[ [ pTO'[R n[RnS[ pT[R"X[R-[R-[R[R-[R-SXE[R[R5n[R"XS[R[R [R[R5n[R""U[RSS5 [R$"USS9nUR'S5upU S:Xde[)X`S9n [)XpS9n X4$) r3rrrNTrr4r5)r/rPIPE_ACCESS_DUPLEX GENERIC_READ GENERIC_WRITEBUFSIZEPIPE_ACCESS_INBOUNDCreateNamedPipeFILE_FLAG_OVERLAPPEDFILE_FLAG_FIRST_PIPE_INSTANCEPIPE_TYPE_MESSAGEPIPE_READMODE_MESSAGE PIPE_WAITNMPWAIT_WAIT_FOREVERNULL CreateFile OPEN_EXISTINGSetNamedPipeHandleStateConnectNamedPiperr) r:r<openmodeaccessobsizeibsizeh1h2r_rr=r>s rrr(sW$I. 11H))G,A,AAF$gF22H**FF  $ $  < <<  1 12  % %(E(E E     vw;; LL   Q g.C.C  ( (',, '' --tT --bTB //5axx B 0 B 0v rc.\rSrSrSrSSjrSrSrSrg) riTzG Representation of a socket which is bound to an address and listening c[R"[[U55Ul[RS:Xa9URR [R [RS5 URRS5 URRU5 URRU5 URR5Ul X lSUlUS:XaG["R$"U5(d,["R&"U[R(U4SS9UlgSUlg![a URR5 ef=f)NposixrTrrargs exitpriority)r4getattr_socketr(name setsockopt SOL_SOCKET SO_REUSEADDRr7bindlisten getsocknamer%rTr^_familyr(rr;Finalizeunlink_unlink)rFr<r.rs rrJSocketListener.__init__Xs }}WVV%<=  ww'! ''(9(9(.(;(;Q@ LL $ $T * LL  g & LL   ( LL446DM " Y t'H'H'Q'Q==biiwjqDL DL  LL    s B=E &E0cURR5uolURS5 [ UR 55$)NT)rarr(r7rr8rFss rrSocketListener.acceptqs7!%!4!4!6  d!((*%%rcURR5 URnUbSUlU"5 gg!URnUbSUlU"5 ff=fr)rar^rl)rFrks rr^SocketListener.closevs[  LL   \\F!# "\\F!# "s ; A)r%rir(rarlN)r) rrrrrrJrr^rrrrrrTs 2& rrc [U5n[R"[[U55nURS5 UR U5 [ UR 55sSSS5 $!,(df  g=f)zG Return a connection object connected to the socket given by `address` TN)r=r4r`r7connectrr8)r<r.rps rr1r1sU' "F / 1Q d '!((*% 2 1 1s ;A55 BcB\rSrSrSrS SjrS SjrSr\S5r Sr g) riz Representation of a named pipe Nc XlURSS9/UlSUl[R "SUR5 [R "U[RURUR4SS9Ul g)NT)firstz listener created with address=%rrr]) r% _new_handle _handle_queuer(r sub_debugrjr_finalize_pipe_listenerr^)rFr<rs rrJPipeListener.__init__sj#M"&"2"2"2">!?D "&D  NN=t}} Ml::(($--8qDJrc [R[R-nU(aU[R-n[R"UR U[R [R-[R-[R[[[R[R5$r) rrBrHrIrGr%rJrKrLPIPE_UNLIMITED_INSTANCESrErMrN)rFrxflagss rryPipeListener._new_handles..1M1MME>>>** u))G,I,II!!"00'7,,gll  rcZURRUR55 URRS5n[R "USS9n[R "UR/S[5nURS5upEUS:Xde[U5$! UR5 [R"U5 e=f!URS5upEUS:Xdef=f![a)nUR[R:waeSnANSnAff=f)NrTrF)rzappendrypoprrRrrrrrrrTr ERROR_NO_DATAr)rFrGrresrYrrs rrPipeListener.accepts    % %d&6&6&8 9''++A.F $--fF $!88 E85C 33D9FA!8O8!&) )IIK''/33D9FA!8O8 ::!6!667 s0C7'B++)CCC47 D*D%%D*cp[R"SU5 UHn[R"U5 M g)Nz closing listener with address=%r)rr{rr)queuer<rGs rr|$PipeListener._finalize_pipe_listeners) NN=w G##F+ r)r%rzr(r^r)F) rrrrrrJryr staticmethodr|rrrrrrs*    *.  ,  ,rrc F[5n[R"US5 [R"U[R[R -S[R [R[R[R 5n[R"U[RSS5 [!U5$![aInUR[R[R4;d[U5(aeSnAOSnAff=fGM)zE Return a connection object connected to the pipe given by `address` rN)rr WaitNamedPiperOrCrDrNrPrHrTrERROR_SEM_TIMEOUTERROR_PIPE_BUSYrrQrKr)r<rhrs rr0r0s O %%gt4&&W11G4I4IIw||W%:%:00',, '' w,,dD a   ::g&?&?&-&=&=&??BPQRBSBSCT sB C D?DD(s #CHALLENGE#s #WELCOME#s #FAILURE#>md5sha256sha384sha3_256sha3_384c#8# UHn[U5v M g7fr)r).0rYs r rFs7&6c!ff&6sc [U5[;aSU4$URS5(aIURSS[S-5=nS:a)USUnU[ ;aXS-SnUR S5U4$[S U<35e) zReturns a digest name and the payload for a response hash. If a legacy protocol is detected based on the message length or contents the digest name returned will be empty to indicate legacy mode where MD5 and no digest prefix should be sent. r${}rrNasciizRunsupported message length, missing digest prefix, or unsupported digest: message=)r_LEGACY_LENGTHSr:find_MAX_DIGEST_LEN_ALLOWED_DIGESTSdecoder )messagecurlydigestpayloads r_get_digest_name_and_payloadrQs 7|& 7{4  ,,tQ(9: :a?5! % %Agh'G==)72 2  /&-Z 1 22rcSSKn[U5SnU(d!URXS5R5$URXU5R5nSUR S5U4-$![a SnNDf=f)aoCreate a MAC based on authkey and message The MAC algorithm defaults to HMAC-MD5, unless MD5 is not available or the message has a '{digest_name}' prefix. For legacy HMAC-MD5, the response is the raw MAC, otherwise the response is prefixed with '{digest_name}', e.g. b'{sha256}abcdefg...' Note: The MAC protects the entire message including the digest_name prefix. rNmd5sha256{%s}%sr)hmacrnewrr,encode)rrr digest_nameresponses r_create_responserks.w7:K  #88Ge4;;= =xx+6==?H  **73X> >> ##K  #sA11 B?Bc zSSKn[U5upEU=(d SnURXU5R5n[ U5[ U5:wa'[ SU<S[ U5S[ U535eURXe5(d [ S 5eg![a [ SU<S35ef=f) aHVerify MAC challenge If our message did not include a digest_name prefix, the client is allowed to select a stronger digest_name from _ALLOWED_DIGESTS. In case our message is prefixed, a client cannot downgrade to a weaker algorithm, because the MAC is calculated over the entire message including the '{digest_name}' prefix. rNrzresponse_digest=z unsupportedz expected z of length z got zdigest received was wrong)rrrrr,r rcompare_digest)rrrrresponse_digest response_macexpecteds r_verify_challengers$@$J!O%.OE88Go>EEG 8}L))!O.k#h-I<()+, ,   x 6 6!"=>> 7 E!%5_$6l"CDDEs BB:rc[U[5(d#[SR[ U555e[ [ :dS5e[R"[ 5nSURS5U4-nUR[U-5 URS5n[XU5 UR[5 g![a UR[ 5 ef=f)N Authkey must be bytes, not {0!s}zprotocol constraintrr)rrr,formatr7MESSAGE_LENGTH_MD5ONLY_MESSAGE_LENGTHr(urandomrr{ _CHALLENGErr_WELCOMEr _FAILURE) connectionrrrrs rrrs gu % % . 5 5d7m DF F 3 3J5JJ 3jj(G;--g6@@G*w./$$S)H('H5 h' h' s ( C !C+c[U[5(d#[SR[ U555eUR S5nUR [5(d[SU<35eU[[5Sn[U5[:a[S[U5S35e[X5nURU5 UR S5nU[:wa [S5eg)Nrrz,Protocol error, expected challenge: message=zchallenge too short: z byteszdigest sent was rejected)rrr,rr7rr:rr rrrr{r)rrrrrs rrrs gu % % . 5 5d7m DF F##C(G   j ) )!?wjAC Cc*o&'G 7|--!$9#g,v"NOO g /F&!$$S)H8!"<==rc&\rSrSrSrSrSrSrg)ConnectionWrapperichXlX lX0lSHn[X5n[ XU5 M g)N)rkr^rrr{)_conn_dumps_loadsr`setattr)rFconnrrattrrs rrJConnectionWrapper.__init__s0   KD$%C D $Lrc\URU5nURRU5 gr)rrr{)rFrrps rrConnectionWrapper.sends" KK  a rcXURR5nURU5$r)rrrros rrConnectionWrapper.recvs" JJ ! ! #{{1~r)rrrN)rrrrrJrrrrrrrrs%!rrcT[RU4SSSS5RS5$)Nrutf-8) xmlrpclibrr)rs r _xml_dumpsrs& ??C64tQ 7 > >w GGrcV[RURS55uupU$)Nr)rrr)rprmethods r _xml_loadsrs"__QXXg%67NFS Jrc\rSrSrSrSrg) XmlListenericbSSKJq [R U5n[ U[ [5$r) xmlrpc.clientclientrrrrrrrs rrXmlListener.accepts")ood# j*==rrN)rrrrrrrrrrrs>rrcJSSKJq [[ U0UD6[ [ 5$r)rrrrrrr)r^kwdss r XmlClientrs% VT2T2J KKrc^[U5m/n[T5S:au[R"TSU5nUR U4SjU55 U(a8[ T5VVs/sHupEXCSU-s=:aU;dMO MUPM! snnmSnT(a[T5S:aTSSOTn[R"USU5nU[:XaU$[Us=::a[[T5-:a O O U[-nO9[Us=::a[[T5-:a O O U[-nO [S5eURTU5 TUS-SmSnT(aMU$![a /s$f=fs snnf)N<Fc3.># UH nTUv M g7frr)riLs rr#_exhaustive_wait..s+s!1srzShould not get herer) listrrBatchedWaitForMultipleObjects TimeoutErrorextend enumeraterrr r rr)handlesrreadyrrrshort_Lrs @r_exhaustive_waitrsc M q6B; ;;AugN LL+s+ +#,Q<M<4111vz3L3LQ3LQ<MG #A afG00%ICl" #> A(>>}$!SD+;c!f+DD''"#899 LL3 #a%& AGa )    Ns#E%'E7E7E7% E43E4c^ Uc[nOUS:aSnO[US-S-5n[U5n0m /n[5n[5nUHn[ US5n[ R "U"5SS5upxU[ R:Xa"URU5 UT UR'MfU(aO[R"5SSS:a3URS 5upU(d[!US 5(aSUlUR%U5 SnM [+T R-5U5nUHnUR/5 M UHonURS5upU[ R0:wdM-T URnUR%U5 US:XdMU[!US 5(dMhSUlMq UR3U 4S jU55 UVs/sH oUU;dM UPM sn$![a#n SU RpU[;aeSn A GNSn A ff=f![an U RnSn A GN_Sn A ff=f![&a UT UR)5'GM%f=f![a"n U RnU[;aeSn A GN1Sn A ff=f!UHnUR/5 M UHnURS5upO.![a!n U RnU[;aeSn A OSn A ff=fU[ R0:wdM\T URnUR%U5 US:XdM[!US 5(dMSUlM f=fs snf)  Wait till an object in object_list is ready/readable. Returns list of those objects in object_list which are ready/readable. Nrrg?rkTr)rFrc3.># UH nTUv M g7frr)rrwaithandle_to_objs rrwait.._sI=a.q1=r)rintrsetr`rrrTr _ready_errorsrrrr1getwindowsversionrr3raddAttributeErrorrBrkeysrrupdate) object_listrov_list ready_objects ready_handlesorkrrrrYrs @rrrs, ?G q[G'D.3./G;'   6 8 $$Q1F "")"2"268Q"E g666r*67)"((3 #"7"7"9"1"="G1)+)?)?)F$'716J+K+K7; 4%))!,"#=!@-->-C-C-EwOM 33D9FA '999)"((3A!%%a(ax#1&:;;37A0 I=II&=;a}*<;==_#""& Cm3!4" $+1&'jj1-&978%akkm49N**C-/0 33D9FAs**C-/0'999)"((3A!%%a(ax#1&:;;37A0">s J$ IG< 9M#>L M#$M#M# M# PollSelectorc[5nUH#nURU[R5 M% Ub[R "5U-nUR U5nU(a*UVVs/sHupgURPM snnsSSS5 $Ub)W[R "5- nUS:a UsSSS5 $Mps snnf!,(df  g=f)rNr) _WaitSelectorregister selectors EVENT_READrrselectfileobj)rrselectorrdeadlinerkeyeventss rrrns _"!!#y';';<#">>+g5 0=BCUMSCKKUC_*"*T^^-="="Q;#(_D_s$A#C.CC"C?C Cc*UR5n[R"U[R[R5nSSKJn URU5n[X@RUR44sSSS5 $!,(df  g=f)Nr)resource_sharer) rkr4fromfdr SOCK_STREAMr$r DupSocketrebuild_connectionrHrI)rrGrprdss rreduce_connectionrs^ ]]66>>63E3E F! ) **1-B%MM4=='IIG F Fs 5B BcVUR5n[UR5X5$rr8r)rrHrIsocks rrrs yy{$++-<r;s 3 1**OO !  ; 69N  H<<7N  H-&  0 F F&TTn ]]@MMh;v;| *<<7&&X)V)X&<<76,v6,p!>   r@B7&677 *O<24?8?2(5(*>%>*  H>(>L<<7@..0M0MNML>` y.))!.. !00 )6<<7J =z#45K :~'=>F2z#45K$ ||w Gs II21I2