+
    öÙ†j_ª  ã                   ó  € . R=Ot ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^RI
Ht ^RI
HtHt ^RIHt ]P                   t ^ RIt^ RIt^ RIHtHtHtHt R>tRt]P8                  ! 4       t^dtR	tR	.t ]!! ]R
4      '       d   R
t] R
.,          t ]P2                  R8X  d   Rt] R.,          t ]3R lt"R t#R t$R t%R t& ! R R4      t']'       d    ! R R]'4      t( ! R R]'4      t) ! R R]*4      t+R?R lt,]P2                  R8w  d   R@R lt-MR@R lt- ! R R]*4      t.R t/]P2                  R8X  d    ! R R]*4      t0R  t1^(t2R!t3R"t4R#t5]6! 0 RAm4      t7]8! R$ ]7 4       4      t9^t:^t;]:];3t<R% t=R& t>R' t?RBR( R) llt@R* R+ ltA ! R, R-]*4      tBR. tCR/ tD ! R0 R1]+4      tER2 tF]P2                  R8X  d"   R3 tG]P�                  ]P’                  0tJRCR4 ltKM1^ RILtL]!! ]LR54      '       d   ]LPš                  tNM]LPž                  tNRCR6 ltK]P2                  R8X  d5   R7 tPR8 tQ]P¤                  ! ])]P4       R9 tSR: tT]P¤                  ! ](]S4       R# R; tPR< tQ]P¤                  ! ])]P4       R#   ] d    ]P2                  R8X  d   h Rt EL'i ; i)DÚClientÚListenerN)Úutil)ÚAuthenticationErrorÚBufferTooShort)Ú	reduction)ÚWAIT_OBJECT_0ÚWAIT_ABANDONED_0ÚWAIT_TIMEOUTÚINFINITEÚwin32g      4@ÚAF_INETÚAF_UNIXÚAF_PIPEc                 ó:   € \         P                  ! 4       V ,           # ©N©ÚtimeÚ	monotonic)Útimeouts   &Ú1/usr/lib/python3.14/multiprocessing/connection.pyÚ_init_timeoutr   ?   s   € Ü�>Š>Ó˜gÕ%Ð%ó    c                 ó2   € \         P                  ! 4       V 8„  # r   r   )Úts   &r   Ú_check_timeoutr   B   s   € Ü�>Š>Ó˜aÑÐr   c                ó8  € V R8X  d   R# V R8X  d,   \         P                  ! R\        P                  ! 4       R7      # V R8X  dO   R\        P
                  ! 4       \        \        4      \        P                  ! ^4      P                  4       3,          # \        R4      h)	z7
Return an arbitrary free address for the given family
r   r   zsock-)ÚprefixÚdirr   z\\.\pipe\pyc-%d-%d-%szunrecognized family)Ú	localhosté    )ÚtempfileÚmktempr   Úget_temp_dirÚosÚgetpidÚnextÚ_mmap_counterÚurandomÚhexÚ
ValueError©Úfamilys   &r   Úarbitrary_addressr-   I   s   € ð �ÔØÐØ	�9Ô	Ü�Š g´4×3DÒ3DÓ3FÔGÐGØ	�9Ô	Ø(Ü—’“œd¤=Ó1´2·:²:¸a³=×3DÑ3DÓ3FÐGõHð 	Iô Ð.Ó/Ð/r   c                óò   € \         P                  R8w  d   V R8X  d   \        RV ,          4      h\         P                  R8X  d4   V R8X  d+   \        \        V 4      '       g   \        RV ,          4      hR# R# R# )z<
Checks if the family is valid for the current environment.
r   r   zFamily %s is not recognized.r   N)ÚsysÚplatformr*   ÚhasattrÚsocketr+   s   &r   Ú_validate_familyr3   W   sf   € ô ‡|�|�wÔ 6¨YÔ#6ÜÐ7¸&Õ@ÓAÐAä
‡|�|�wÔ 6¨YÔ#6ä”v˜v×&Ò&ÜÐ;¸fÕDÓEÐEñ 'ñ $7Ñr   c                ó  € \        V 4      \        8X  d   R# \        V 4      \        J d   V P                  R4      '       d   R# \        V 4      \        J g   \        P
                  ! V 4      '       d   R# \        RV ,          4      h)zQ
Return the types of the address

This can be 'AF_INET', 'AF_UNIX', or 'AF_PIPE'
r   z\\r   r   zaddress type of %r unrecognized)ÚtypeÚtupleÚstrÚ
startswithr   Úis_abstract_socket_namespacer*   )Úaddresss   &r   Úaddress_typer;   c   sb   € ô ˆGƒ}œÔÙÜ	ˆg‹œ#Ó	 '×"4Ñ"4°V×"<Ò"<ÙÜ	ˆg‹œ#Ó	¤×!BÒ!BÀ7×!KÒ!KÙäÐ:¸WÕDÓEÐEr   c                   óÎ   a € ] tR t^vt o RtRR ltR tR tR tR t	R t
]R 4       t]R	 4       t]R
 4       tR tR tR tRR ltR tRR ltRR ltR tRR ltR tR tRtV tR# )Ú_ConnectionBaseNc                ó¤   € VP                  4       pV^ 8  d   \        R4      hV'       g   V'       g   \        R4      hWn        W n        W0n        R# )r    zinvalid handlez6at least one of `readable` and `writable` must be TrueN)Ú	__index__r*   Ú_handleÚ	_readableÚ	_writable)ÚselfÚhandleÚreadableÚwritables   &&&&r   Ú__init__Ú_ConnectionBase.__init__y   sI   € Ø×!Ñ!Ó#ˆØ�AŒ:ÜÐ-Ó.Ð.ß§ÜØHóJð JàŒØ!ŒØ!Žr   c                óF   € V P                   e   V P                  4        R # R # r   ©r@   Ú_close©rC   s   &r   Ú__del__Ú_ConnectionBase.__del__†   s   € Ø�<‰<Ò#Ø�K‰KŽMñ $r   c                ó8   € V P                   f   \        R4      hR # )Núhandle is closed)r@   ÚOSErrorrL   s   &r   Ú_check_closedÚ_ConnectionBase._check_closedŠ   s   € Ø�<‰<ÒÜÐ,Ó-Ð-ñ  r   c                ó@   € V P                   '       g   \        R 4      hR# )zconnection is write-onlyN)rA   rQ   rL   s   &r   Ú_check_readableÚ_ConnectionBase._check_readableŽ   s   € Ø�~�~ˆ~ÜÐ4Ó5Ð5ñ r   c                ó@   € V P                   '       g   \        R 4      hR# )zconnection is read-onlyN)rB   rQ   rL   s   &r   Ú_check_writableÚ_ConnectionBase._check_writable’   s   € Ø�~�~ˆ~ÜÐ3Ó4Ð4ñ r   c                ól   € V P                   '       d	   R V n        MV P                  4        \        R4      h)Fzbad message length)rB   rA   ÚcloserQ   rL   s   &r   Ú_bad_message_lengthÚ#_ConnectionBase._bad_message_length–   s'   € Ø�>�>ˆ>Ø"ˆD�Nà�J‰JŒLÜÐ*Ó+Ð+r   c                ó   € V P                   RJ # )z True if the connection is closedN©r@   rL   s   &r   ÚclosedÚ_ConnectionBase.closed�   s   € ð �|‰|˜tÐ#Ð#r   c                ó   € V P                   # )z"True if the connection is readable)rA   rL   s   &r   rE   Ú_ConnectionBase.readable¢   ó   € ð �~‰~Ðr   c                ó   € V P                   # )z"True if the connection is writable)rB   rL   s   &r   rF   Ú_ConnectionBase.writable§   rd   r   c                ó:   € V P                  4        V P                  # )z+File descriptor or handle of the connection)rR   r@   rL   s   &r   ÚfilenoÚ_ConnectionBase.fileno¬   s   € à×ÑÔØ�|‰|Ðr   c                ón   € V P                   e    V P                  4        RV n         R# R#   RT n         i ; i)zClose the connectionNrJ   rL   s   &r   r[   Ú_ConnectionBase.close±   s1   € à�<‰<Ò#ð$Ø—‘”à#�–ñ	 $øð  $�•ús   �+ «	4c                ó   € RV n         R# )z7Stop managing the underlying file descriptor or handle.Nr_   rL   s   &r   Ú_detachÚ_ConnectionBase._detach¹   s	   € àˆŽr   c                óž  € V P                  4        V P                  4        \        V4      pVP                  ^8”  d   VP	                  R4      pVP
                  pV^ 8  d   \        R4      hWR8  d   \        R4      hVf
   WR,
          pM*V^ 8  d   \        R4      hW#,           V8”  d   \        R4      hV P                  WBW#,            4       R# )z,Send the bytes data from a bytes-like objectÚBzoffset is negativezbuffer length < offsetNzsize is negativezbuffer length < offset + size)rR   rX   Ú
memoryviewÚitemsizeÚcastÚnbytesr*   Ú_send_bytes)rC   ÚbufÚoffsetÚsizeÚmÚns   &&&&  r   Ú
send_bytesÚ_ConnectionBase.send_bytes½   s²   € à×ÑÔØ×ÑÔÜ�s‹OˆØ�:‰:˜Œ>Ø—‘�s“ˆAØ�H‰HˆØ�AŒ:ÜÐ1Ó2Ð2ØŒ:ÜÐ5Ó6Ð6ØŠ<Ø•:‰DØ�AŒXÜÐ/Ó0Ð0Ø�]˜QÔÜÐ<Ó=Ð=Ø×Ñ˜ &¥-Ð0Ö1r   c                óŽ   € V P                  4        V P                  4        V P                  \        P	                  V4      4       R# )zSend a (picklable) objectN)rR   rX   ru   Ú_ForkingPicklerÚdumps©rC   Úobjs   &&r   ÚsendÚ_ConnectionBase.sendÑ   s3   € à×ÑÔØ×ÑÔØ×Ñœ×.Ñ.¨sÓ3Ö4r   c                óØ   € V P                  4        V P                  4        Ve   V^ 8  d   \        R4      hV P                  V4      pVf   V P	                  4        VP                  4       # )z'
Receive bytes data as a bytes object.
znegative maxlength)rR   rU   r*   Ú_recv_bytesr\   Úgetvalue)rC   Ú	maxlengthrv   s   && r   Ú
recv_bytesÚ_ConnectionBase.recv_bytes×   sa   € ð 	×ÑÔØ×ÑÔØÒ  Y°¤]ÜÐ1Ó2Ð2Ø×Ñ˜yÓ)ˆØŠ;Ø×$Ñ$Ô&Ø�|‰|‹~Ðr   c                ó(  € V P                  4        V P                  4        \        V4      ;_uu_ 4       pVP                  pV\	        V4      ,          pV^ 8  d   \        R4      hW%8”  d   \        R4      hV P                  4       pVP                  4       pWRV,           8  d   \        VP                  4       4      hVP                  ^ 4       VP                  W2V,          W',           V,           4       VuuRRR4       #   + '       g   i     R# ; i)zY
Receive bytes data into a writeable bytes-like object.
Return the number of bytes read.
znegative offsetzoffset too largeN)rR   rU   rq   rr   Úlenr*   r…   Útellr   r†   ÚseekÚreadinto)rC   rv   rw   ry   rr   ÚbytesizeÚresultrx   s   &&&     r   Úrecv_bytes_intoÚ_ConnectionBase.recv_bytes_intoä   sÔ   € ð
 	×ÑÔØ×ÑÔÜ˜�_Œ_ à—z‘zˆHØ¤# a£&Õ(ˆHØ˜ŒzÜ Ð!2Ó3Ð3ØÔ"Ü Ð!3Ó4Ð4Ø×%Ñ%Ó'ˆFØ—;‘;“=ˆDØ 4�-Ô'Ü$ V§_¡_Ó%6Ó7Ð7à�K‰K˜ŒNØ�O‰O˜A¨Õ0Ø%�}°Õ9ð;ô <à÷! �_�_‹_ús   ´CD Ä D	c                ó¨   € V P                  4        V P                  4        V P                  4       p\        P	                  VP                  4       4      # )zReceive a (picklable) object)rR   rU   r…   r~   ÚloadsÚ	getbuffer)rC   rv   s   & r   ÚrecvÚ_ConnectionBase.recvý   s?   € à×ÑÔØ×ÑÔØ×ÑÓ ˆÜ×$Ñ$ S§]¡]£_Ó5Ð5r   c                ód   € V P                  4        V P                  4        V P                  V4      # )z/Whether there is any input available to be read)rR   rU   Ú_poll©rC   r   s   &&r   ÚpollÚ_ConnectionBase.poll  s)   € à×ÑÔØ×ÑÔØ�z‰z˜'Ó"Ð"r   c                ó   € V # r   © rL   s   &r   Ú	__enter__Ú_ConnectionBase.__enter__
  ó   € Øˆr   c                ó&   € V P                  4        R # r   ©r[   ©rC   Úexc_typeÚ	exc_valueÚexc_tbs   &&&&r   Ú__exit__Ú_ConnectionBase.__exit__  ó   € Ø�
‰
Žr   )r@   rA   rB   )TT©r    Nr   ©r    )g        )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r@   rG   rM   rR   rU   rX   r\   Úpropertyr`   rE   rF   rh   r[   rm   r{   r‚   rˆ   r‘   r–   r›   rŸ   r¨   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r=   r=   v   s    ø‡ € Ø€Gô	"òò.ò6ò5ò,ð ñ$ó ð$ð ñó ðð ñó ðòò
$òô2ò(5ôôò26ô#ò÷ð r   r=   c                   óh   a € ] tR tRt o RtRtRt]P                  3R lt	R t
RR ltR tR	 tR
tV tR# )Ú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.
FNc                ój   € V P                   pVe   VP                  4        V! V P                  4       R # r   )Ú_send_ovÚcancelr@   )rC   Ú_CloseHandleÚovs   && r   rK   ÚPipeConnection._close  s%   € Ø—‘ˆBØŠ~à—	‘	”Ù˜Ÿ™Ö&r   c                óT  € V P                   e   \        R4      h\        P                  ! V P                  VRR7      w  r#W n          V\        P
                  8X  d5   \        P                  ! VP                  .R\        4      pV\        8X  g   Q hR T n         TP                  R4      w  rST\        P                  8X  d   \        \        P                  R4      hT^ 8X  g   Q hT\!        T4      8X  g   Q hR #    TP                  4        h ; i  R T n         TP                  R4      w  rSi ; i)Nz/concurrent send_bytes() calls are not supportedT©Ú
overlappedFrP   )r¹   r*   Ú_winapiÚ	WriteFiler@   ÚERROR_IO_PENDINGÚWaitForMultipleObjectsÚeventr   r   rº   ÚGetOverlappedResultÚERROR_OPERATION_ABORTEDrQ   ÚerrnoÚEPIPEr‹   )rC   rv   r¼   ÚerrÚwaitresÚnwrittens   &&    r   ru   ÚPipeConnection._send_bytes#  s  € Ø�}‰}Ò(ä ð "5ó 6ð 6ä×'Ò'¨¯©°cÀdÔK‰GˆBØŒMð
=Øœ'×2Ñ2Ô2Ü%×<Ò<ØŸ™˜
 E¬8ó5�Gà"¤mÔ3Ð3Ð3ð
 !%�”Ø "× 6Ñ 6°tÓ <‘�Ø”g×5Ñ5Ô5ô œeŸk™kÐ+=Ó>Ð>Ø˜!”8ˆO�8Øœs 3›xÔ'Ð'Ò'øðØ—	‘	”Øûà $�”Ø "× 6Ñ 6°tÓ <‘�˜#ús   ÁA	C5 Ã5DÄD ÄD'c                óB  € V P                   '       d   R V n         \        P                  ! 4       # Vf   ^€M\        V^€4      p \        P
                  ! V P                  VRR7      w  r4\        4       pTp  V\        P                  8X  d5   \        P                  ! VP                  .R \        4      pV\        8X  g   Q hTP                  R4      w  r„T^ 8X  d8   \        P                  ! 4       p	T	P                  TP!                  4       4       T	pM&T\        P"                  8X  d   T P%                  Y14      pYeJd   T#  \/        R4      h   TP                  4        h ; i  TP                  R4      w  r„T^ 8X  d8   \        P                  ! 4       p	T	P                  TP!                  4       4       T	pi T\        P"                  8X  d   T P%                  Y14      pi i ; i   YeJ d   h  L°; i  \&         d,   p
T
P(                  \        P*                  8X  d   \,        hh Rp
?
ii ; i)FNTr¿   z.shouldn't get here; expected KeyboardInterrupt)Ú_got_empty_messageÚioÚBytesIOÚminrÁ   ÚReadFiler@   ÚobjectrÃ   rÄ   rÅ   r   r   rº   rÆ   Úwriter•   ÚERROR_MORE_DATAÚ_get_more_datarQ   ÚwinerrorÚERROR_BROKEN_PIPEÚEOFErrorÚRuntimeError)rC   ÚmaxsizeÚbsizer¼   rÊ   ÚsentinelÚreturn_valuerË   ÚnreadÚfÚes   &&         r   r…   ÚPipeConnection._recv_bytes=  sØ  € Ø×&×&Ð&Ø*/�Ô'Ü—z’z“|Ð#à&š™´C¸ÀÓ4E�ð!Ü%×.Ò.¨t¯|©|¸UØ;?ôA‘G�Bô  &›x�HØ#+�Lð"ðPØ"¤g×&>Ñ&>Ô>Ü*1×*HÒ*HØ%'§X¡X J°´xó+A à'.´-Ô'?Ð ?Ð'?ð
 *,×)?Ñ)?ÀÓ)E™J˜EØ" aœxÜ$&§J¢J£L Ø !§¡¨¯©«Ô 7Ø/0¡Ø!$¬×(?Ñ(?Ô!?Ø/3×/BÑ/BÀ2Ó/O ð
 $Ó3Ø+Ð+ð 4ô ÐOÓPÐPøð-"ØŸI™IœKØ!ûà)+×)?Ñ)?ÀÓ)E™J˜EØ" aœxÜ$&§J¢J£L Ø !§¡¨¯©«Ô 7Ø/0¡Ø!$¬×(?Ñ(?Ô!?Ø/3×/BÑ/BÀ2Ó/O¡ð "@ûð"Ø'Ó3Ø!ñ 4ûô
 ô Ø—z‘z¤W×%>Ñ%>Ô>Ü&˜àûð	ús]   Á1G( Á5A	E Â>AG ÄG( Ä&G Ä5G( ÅEÅE ÅA:GÇG ÇG%Ç#G( Ç(HÇ3&HÈHc                ó®   € V P                   '       g-   \        P                  ! V P                  4      ^ ,          ^ 8w  d   R# \	        \        V .V4      4      # )r    T)rÏ   rÁ   ÚPeekNamedPiper@   ÚboolÚwaitrš   s   &&r   r™   ÚPipeConnection._pollg  sA   € Ø×'×'Ð'Ü×-Ò-¨d¯l©lÓ;¸AÕ>À!ÔCÙÜœ˜d˜V WÓ-Ó.Ð.r   c                óø  € VP                  4       p\        P                  ! 4       pVP                  V4       \        P
                  ! V P                  4      ^,          pV^ 8”  g   Q hVe(   \        V4      V,           V8”  d   V P                  4        \        P                  ! V P                  VRR7      w  rVP                  R4      w  rvV^ 8X  g   Q hWu8X  g   Q hVP                  VP                  4       4       V# )é   Tr¿   )r•   rÐ   rÑ   rÕ   rÁ   rå   r@   r‹   r\   rÓ   rÆ   )rC   r¼   rÜ   rv   rá   ÚleftrÊ   Úrbytess   &&&     r   r×   ÚPipeConnection._get_more_datam  sÀ   € Ø—,‘,“.ˆCÜ—
’
“ˆAØ�G‰G�CŒLÜ×(Ò(¨¯©Ó6°qÕ9ˆDØ˜!”8ˆO�8ØÒ"¤s¨3£x°$¥¸Ô'@Ø×(Ñ(Ô*Ü×&Ò& t§|¡|°TÀdÔK‰GˆBØ×0Ñ0°Ó6‰KˆFØ˜!”8ˆO�8Ø”>Ð!�>Ø�G‰G�B—L‘L“NÔ#ØˆHr   )rÏ   r¹   r   )r­   r®   r¯   r°   Ú__doc__rÏ   r¹   rÁ   ÚCloseHandlerK   ru   r…   r™   r×   r²   r³   r´   s   @r   r·   r·     s@   ø‡ € ñ	ð
 #ÐØˆà&-×&9Ñ&9ô 	'ò	(ô4(	QòT	/÷	ð 	r   r·   c                   ó  a € ] tR tRt o Rt]'       d*   ]P                  3R lt]P                  t
]P                  tM(]P                  3R lt]P                  t
]P                   t]
3R lt]3R ltR tRR	 ltR
 tRtV tR# )Ú
Connectioni}  zc
Connection class based on an arbitrary file descriptor (Unix only), or
a socket handle (Windows).
c                ó*   € V! V P                   4       R # r   r_   ©rC   rK   s   &&r   rK   ÚConnection._close„  ó   € Ù�4—<‘<Ö r   c                ó*   € V! V P                   4       R # r   r_   ró   s   &&r   rK   rô   ‰  rõ   r   c                ón   € \        V4      p V! V P                  V4      pW4,          pV^ 8X  d   R# WR pK+  )TN)r‹   r@   )rC   rv   rÕ   Ú	remainingrz   s   &&&  r   Ú_sendÚConnection._sendŽ  s8   € Ü˜“Hˆ	ØÙ�d—l‘l CÓ(ˆAØ�NˆIØ˜AŒ~ÙØ�b�'ŠCr   c                ó  € \         P                  ! 4       pV P                  pTpV^ 8”  d]   \        \        V4      pV! WF4      p\        V4      pV^ 8X  d   WQ8X  d   \        h\        R4      hVP                  V4       WX,          pKc  V# )r    zgot end of file during message)	rÐ   rÑ   r@   rÒ   ÚBUFSIZEr‹   rÚ   rQ   rÕ   )	rC   rx   Úreadrv   rD   rø   Úto_readÚchunkrz   s	   &&&      r   Ú_recvÚConnection._recv—  sw   € Ü�jŠj‹lˆØ—‘ˆØˆ	Ø˜!ŒmÜœ' 9Ó-ˆGÙ˜Ó)ˆEÜ�E“
ˆAØ�AŒvØÔ$Ü"�Nä!Ð"BÓCÐCØ�I‰I�eÔØ�NŠIØˆ
r   c                ó¢  € \        V4      pVR 8”  dd   \        P                  ! RR4      p\        P                  ! RV4      pV P                  V4       V P                  V4       V P                  V4       R# \        P                  ! RV4      pVR8”  d%   V P                  V4       V P                  V4       R# V P                  WA,           4       R# )iÿÿÿú!iú!Qi @  Néÿÿÿÿ)r‹   ÚstructÚpackrù   )rC   rv   rz   Ú
pre_headerÚheaders   &&   r   ru   ÚConnection._send_bytes¨  s—   € Ü�‹HˆØˆzŒ>ÜŸš T¨2Ó.ˆJÜ—[’[  qÓ)ˆFØ�J‰J�zÔ"Ø�J‰J�vÔØ�J‰J�sŽOô —[’[  qÓ)ˆFØ�5Œyð —
‘
˜6Ô"Ø—
‘
˜3–ð —
‘
˜6�<Ö(r   Nc                ó*  € V P                  ^4      p\        P                  ! RVP                  4       4      w  pVR8X  d9   V P                  ^4      p\        P                  ! RVP                  4       4      w  pVe	   W18”  d   R# V P                  V4      # )é   r  r  Nr  )r   r  Úunpackr†   )rC   rÜ   rv   rx   s   &&  r   r…   ÚConnection._recv_bytes¿  so   € Ø�j‰j˜‹mˆÜ—’˜d C§L¡L£NÓ3‰ˆØ�2Œ:Ø—*‘*˜Q“-ˆCÜ—M’M $¨¯©«Ó7‰EˆDØÒ 4¤>ÙØ�z‰z˜$ÓÐr   c                ó2   € \        V .V4      p\        V4      # r   )rç   ræ   )rC   r   Úrs   && r   r™   ÚConnection._pollÉ  s   € Ü�$�˜Ó!ˆÜ�A‹wˆr   rž   r   )r­   r®   r¯   r°   rî   rÁ   Ú_multiprocessingÚclosesocketrK   r‚   Ú_writer–   Ú_readr$   r[   rÕ   rý   rù   r   ru   r…   r™   r²   r³   r´   s   @r   rñ   rñ   }  sw   ø‡ € ñ÷
 Ø 0× <Ñ <ô 	!à!×&Ñ&ˆØ ×%Ñ%‰à "§¡ô 	!à—‘ˆØ—‘ˆà%ô ð  %ô ò")ô. ÷ð r   rñ   c                   óf   a € ] tR tRt o RtRR ltR tR t]R 4       t	]R 4       t
R	 tR
 tRtV tR# )r   iÒ  z…
Returns a listener object.

This is a wrapper for a bound socket which is 'listening' for
connections, or for a Windows named pipe.
Nc                ót  € T;'       g$    T;'       d    \        V4      ;'       g    \        p\        V4       Ve"   \        V\        4      '       g   \        R4      hVR8X  dS   V'       d   \        W4      V n        M_\        P                  ! 4        F  p\        V4      p \        W4      V n         M)	  M&T;'       g    \        V4      p\#        WV4      V n        W@n        R #   \         dH   pT\        8¼  d   h TP                  \        P                  \        P                   39  d   h  R p?KŸ  R p?ii ; i)Núauthkey should be a byte stringr   )r;   Údefault_familyr3   Ú
isinstanceÚbytesÚ	TypeErrorÚPipeListenerÚ	_listenerÚ	itertoolsÚcountr-   rQ   Ú_MAX_PIPE_ATTEMPTSrØ   rÁ   ÚERROR_PIPE_BUSYÚERROR_ACCESS_DENIEDÚSocketListenerÚ_authkey)rC   r:   r,   ÚbacklogÚauthkeyÚattemptsrâ   s   &&&&&  r   rG   ÚListener.__init__Ù  s  € Ø÷ #ð #˜G×=Ð=¬°WÓ(=÷ #ð #Ü"ð 	ä˜Ô ØÒ¤z°'¼5×'AÒ'AÜÐ=Ó>Ð>à�YÔßÜ!-¨gÓ!?�•ä )§¢Ö 1�HÜ/°Ó7�Gð"Ü)5°gÓ)G˜œÙò	 !2ð ×:Ð:Ô!2°6Ó!:ˆGÜ+¨G¸WÓEˆDŒNàŽøô #ô "Ø#Ô'9Ô9Ø!ØŸ:™:¬g×.EÑ.EÜ.5×.IÑ.Ið.Kô Kà!õKûð"ús   Â"C%Ã%D7Ã0<D2Ä2D7c                óÜ   € V P                   f   \        R4      hV P                   P                  4       pV P                  e+   \	        WP                  4       \        WP                  4       V# )zb
Accept a connection on the bound socket or named pipe of `self`.

Returns a `Connection` object.
zlistener is closed)r  rQ   Úacceptr%  Údeliver_challengeÚanswer_challenge)rC   Úcs   & r   r+  ÚListener.acceptõ  sS   € ð �>‰>Ò!ÜÐ.Ó/Ð/à�N‰N×!Ñ!Ó#ˆØ�=‰=Ò$Ü˜a§¡Ô/Ü˜Q§¡Ô.Øˆr   c                óX   € V P                   pVe   RV n         VP                  4        R# R# )z1
Close the bound socket or named pipe of `self`.
N)r  r[   )rC   Úlisteners   & r   r[   ÚListener.close  s)   € ð —>‘>ˆØÒØ!ˆDŒNØ�N‰NÖñ  r   c                ó.   € V P                   P                  # r   )r  Ú_addressrL   s   &r   r:   ÚListener.address  s   € à�~‰~×&Ñ&Ð&r   c                ó.   € V P                   P                  # r   )r  Ú_last_acceptedrL   s   &r   Úlast_acceptedÚListener.last_accepted  s   € à�~‰~×,Ñ,Ð,r   c                ó   € V # r   rž   rL   s   &r   rŸ   ÚListener.__enter__  r¡   r   c                ó&   € V P                  4        R # r   r£   r¤   s   &&&&r   r¨   ÚListener.__exit__  rª   r   )r%  r  )NNrê   N)r­   r®   r¯   r°   rî   rG   r+  r[   r±   r:   r8  rŸ   r¨   r²   r³   r´   s   @r   r   r   Ò  sP   ø‡ € ñô ò8òð ñ'ó ð'ð ñ-ó ð-ò÷ð r   c                ó   € T;'       g    \        V 4      p\        V4       VR8X  d   \        V 4      pM\        V 4      pVe"   \	        V\
        4      '       g   \        R4      hVe   \        W24       \        W24       V# )z5
Returns a connection to the address of a `Listener`
r   r  )	r;   r3   Ú
PipeClientÚSocketClientr  r  r  r-  r,  )r:   r,   r'  r.  s   &&& r   r   r     ss   € ð ×,Ð,”| GÓ,€FÜ�VÔØ�ÔÜ�wÓ‰ä˜Ó!ˆàÒ¤:¨g´u×#=Ò#=ÜÐ9Ó:Ð:àÒÜ˜Ô$Ü˜!Ô%à€Hr   c                óV  € V '       do   \         P                  ! 4       w  rVP                  R4       VP                  R4       \        VP	                  4       4      p\        VP	                  4       4      pW43# \
        P                  ! 4       w  rV\        VRR7      p\        VRR7      pW43# )ú<
Returns pair of connection objects at either end of a pipe
TF©rF   ©rE   )r2   Ú
socketpairÚsetblockingrñ   Údetachr$   Úpipe)ÚduplexÚs1Ús2Úc1Úc2Úfd1Úfd2s   &      r   ÚPiperP  3  s†   € ÷ Ü×&Ò&Ó(‰FˆBØ�N‰N˜4Ô Ø�N‰N˜4Ô Ü˜BŸI™I›KÓ(ˆBÜ˜BŸI™I›KÓ(ˆBð ˆvˆô	 —w’w“y‰HˆCÜ˜C¨%Ô0ˆBÜ˜C¨%Ô0ˆBàˆvˆr   c                ó¤  € V '       dB   \         P                  p\         P                  \         P                  ,          p\        \        rCM'\         P
                  p\         P                  p^ \        rC\        P                  ! 4        F¨  p\        R4      p \         P                  ! Wa\         P                  ,          \         P                  ,          \         P                  \         P                  ,          \         P                  ,          ^W4\         P                  \         P                   4      p M	  \         P,                  ! XV^ \         P                   \         P.                  \         P                  \         P                   4      p	\         P0                  ! V	\         P                  RR4       \         P2                  ! XRR7      p
V
P5                  R4      w  r¼V^ 8X  g   Q h\7        WpR7      p\7        W�R7      pWÞ3#   \"         dI   pT\$        8¼  d   h TP&                  \         P(                  \         P*                  39  d   h  Rp?EKÄ  Rp?ii ; i)rB  r   NTr¿   rC  rD  )rÁ   ÚPIPE_ACCESS_DUPLEXÚGENERIC_READÚGENERIC_WRITErü   ÚPIPE_ACCESS_INBOUNDr  r   r-   ÚCreateNamedPipeÚFILE_FLAG_OVERLAPPEDÚFILE_FLAG_FIRST_PIPE_INSTANCEÚPIPE_TYPE_MESSAGEÚPIPE_READMODE_MESSAGEÚ	PIPE_WAITÚNMPWAIT_WAIT_FOREVERÚNULLrQ   r!  rØ   r"  r#  Ú
CreateFileÚOPEN_EXISTINGÚSetNamedPipeHandleStateÚConnectNamedPiperÆ   r·   )rI  ÚopenmodeÚaccessÚobsizeÚibsizer(  r:   Úh1râ   Úh2rÀ   Ú_rÊ   rL  rM  s   &              r   rP  rP  F  s¿  € ÷ Ü×1Ñ1ˆHÜ×)Ñ)¬G×,AÑ,AÕAˆFÜ$¤g‘Fä×2Ñ2ˆHÜ×*Ñ*ˆFØ¤�Fä!ŸšÖ)ˆHÜ'¨	Ó2ˆGðÜ×,Ò,Ø¬×(DÑ(DÕDÜ×9Ñ9õ:ä×-Ñ-´×0MÑ0MÕMÜ×%Ñ%õ&à�v¤w×'CÑ'Cä—L‘Ló�ñ ñ *ô& ×ÒØ�V˜Q¤§¡¬g×.CÑ.CÜ×(Ñ(¬'¯,©,óˆô 	×'Ò'Ø”×-Ñ-¨t°Tô	ô ×-Ò-¨b¸TÔBˆ
Ø×/Ñ/°Ó5‰ˆØ�aŒxˆˆxä˜BÔ0ˆÜ˜BÔ0ˆàˆvˆøô+ ô ØÔ1Ô1ØØ—:‘:¤g×&=Ñ&=Ü&-×&AÑ&Að&Cô CàöCûðús   ÂBG<Ç<IÈ<I
É
Ic                   ó:   a € ] tR tRt o RtRR ltR tR tRtV t	R# )	r$  i{  zG
Representation of a socket which is bound to an address and listening
c                óø  € \         P                   ! \        \         V4      4      V n         \        P                  R 8X  d:   V P                  P                  \         P                  \         P                  ^4       V P                  P                  R4       V P                  P                  V4       V P                  P                  V4       V P                  P                  4       V n        Y n        RT n        TR8X  dM   \"        P$                  ! T4      '       g1   \"        P&                  ! T \        P(                  T3^ R7      T n        R# RT n        R#   \         d    T P                  P                  4        h i ; i)ÚposixTNr   ©ÚargsÚexitpriority)r2   ÚgetattrÚ_socketr$   ÚnameÚ
setsockoptÚ
SOL_SOCKETÚSO_REUSEADDRrF  ÚbindÚlistenÚgetsocknamer4  rQ   r[   Ú_familyr7  r   r9   ÚFinalizeÚunlinkÚ_unlink)rC   r:   r,   r&  s   &&&&r   rG   ÚSocketListener.__init__  s  € Ü—}’}¤W¬V°VÓ%<Ó=ˆŒð	ä�w‰w˜'Ô!Ø—‘×'Ñ'¬×(9Ñ(9Ü(.×(;Ñ(;¸Qô@à�L‰L×$Ñ$ TÔ*Ø�L‰L×Ñ˜gÔ&Ø�L‰L×Ñ Ô(Ø ŸL™L×4Ñ4Ó6ˆDŒMð ŒØ"ˆÔà�YÔ¤t×'HÒ'HÈ×'QÒ'QäŸ=š=Ø”b—i‘i w j¸qôˆDŽLð  ˆDŽLøô ô 	Ø�L‰L×ÑÔ Øð	ús   «B>E Å'E9c                ó˜   € V P                   P                  4       w  qn        VP                  R 4       \	        VP                  4       4      # ©T)rp  r+  r7  rF  rñ   rG  ©rC   Úss   & r   r+  ÚSocketListener.accept˜  s7   € Ø!%§¡×!4Ñ!4Ó!6ÑˆÔØ	�‰�dÔÜ˜!Ÿ(™(›*Ó%Ð%r   c                óÄ   €  V P                   P                  4        V P                  pVe   R V n        V! 4        R # R #   T P                  pTe   R T n        T! 4        i i ; ir   )rp  r[   r{  )rC   rz  s   & r   r[   ÚSocketListener.close�  s[   € ð	Ø�L‰L×ÑÔ à—\‘\ˆFØÒ!Ø#�”Ù–ñ "øð —\‘\ˆFØÒ!Ø#�”Ù•ð "ús	   ‚> ¾!A)r4  rx  r7  rp  r{  N)rê   )
r­   r®   r¯   r°   rî   rG   r+  r[   r²   r³   r´   s   @r   r$  r$  {  s   ø‡ € ñô ò2&÷
ð r   r$  c                ó$  € \        V 4      p\        P                  ! \        \        V4      4      ;_uu_ 4       pVP                  R4       VP	                  V 4       \        VP                  4       4      uuRRR4       #   + '       g   i     R# ; i)zG
Return a connection object connected to the socket given by `address`
TN)r;   r2   ro  rF  Úconnectrñ   rG  )r:   r,   r€  s   &  r   r@  r@  §  s[   € ô ˜'Ó"€FÜ	�Šœ¤¨Ó/×	1Ô	1°QØ	�‰�dÔØ	�	‰	�'ÔÜ˜!Ÿ(™(›*Ó%÷ 
2×	1×	1Ó	1ús   ¸;A>Á>B	c                   óN   a € ] tR tRt o RtR	R ltR
R ltR t]R 4       t	Rt
V tR# )r  i·  z 
Representation of a named pipe
Nc                ó  € Wn         V P                  R R7      .V n        RV n        \        P
                  ! RV P                   4       \        P                  ! V \        P                  V P                  V P                   3^ R7      V n	        R# )T)ÚfirstNz listener created with address=%rrl  )
r4  Ú_new_handleÚ_handle_queuer7  r   Ú	sub_debugry  r  Ú_finalize_pipe_listenerr[   )rC   r:   r&  s   &&&r   rG   ÚPipeListener.__init__»  sj   € Ø#ŒMØ"&×"2Ñ"2¸Ð"2Ó">Ð!?ˆDÔà"&ˆDÔÜ�NŠNÐ=¸t¿}¹}ÔMÜŸšØ”l×:Ñ:Ø×(Ñ(¨$¯-©-Ð8ÀqôˆDŽJr   c           
     ó¬  € \         P                  \         P                  ,          pV'       d   V\         P                  ,          p\         P                  ! V P
                  V\         P                  \         P                  ,          \         P                  ,          \         P                  \        \        \         P                  \         P                  4      # r   )rÁ   rR  rW  rX  rV  r4  rY  rZ  r[  ÚPIPE_UNLIMITED_INSTANCESrü   r\  r]  )rC   rˆ  Úflagss   && r   r‰  ÚPipeListener._new_handleÆ  s…   € Ü×.Ñ.´×1MÑ1MÕMˆEßØœ×>Ñ>Õ>�Ü×*Ò*Ø—‘˜uÜ×)Ñ)¬G×,IÑ,IÕIÜ×!Ñ!õ"ä×0Ñ0´'¼7Ü×,Ñ,¬g¯l©lóð r   c                óh  € V P                   P                  V P                  4       4       V P                   P                  ^ 4      p \        P
                  ! VRR7      p \        P                  ! VP                  .R\        4      p TP                  R4      w  rET^ 8X  g   Q h \        T4      #    TP                  4        \        P                  ! T4       h ; i  TP                  R4      w  rET^ 8X  g   Q hi ; i  \         d+   pTP                  \        P                  8w  d   h  Rp?LˆRp?ii ; i)r    Tr¿   FN)rŠ  Úappendr‰  ÚpoprÁ   ra  rÄ   rÅ   r   rº   rï   rÆ   rQ   rØ   ÚERROR_NO_DATAr·   )rC   rD   r¼   Úresrh  rÊ   râ   s   &      r   r+  ÚPipeListener.acceptÒ  s  € Ø×Ñ×%Ñ% d×&6Ñ&6Ó&8Ô9Ø×'Ñ'×+Ñ+¨AÓ.ˆFð$Ü×-Ò-¨fÀÔF�ð	$Ü!×8Ò8ØŸ™˜
 E¬8ó5‘Cð  ×3Ñ3°DÓ9‘F�AØ !œ8�O™8Ü! &Ó)Ð)øðØ—I‘I”KÜ×'Ò'¨Ô/Øûà×3Ñ3°DÓ9‘F�AØ !œ8�O™8ûô ô Ø—:‘:¤×!6Ñ!6Ô6Øô 7ûðús0   ÁC< Á'B/ Â/)CÃC ÃC9Ã<D1Ä D,Ä,D1c                ór   € \         P                  ! R V4       V  F  p\        P                  ! V4       K  	  R# )z closing listener with address=%rN)r   r‹  rÁ   rï   )Úqueuer:   rD   s   && r   rŒ  Ú$PipeListener._finalize_pipe_listeneré  s)   € ä�NŠNÐ=¸wÔGÛ�Ü×#Ò# FÖ+ó  r   )r4  rŠ  r7  r[   r   )F)r­   r®   r¯   r°   rî   rG   r‰  r+  ÚstaticmethodrŒ  r²   r³   r´   s   @r   r  r  ·  s-   ø‡ € ñ	ô		ô
	ò	*ð. 
ñ	,ó 
ö	,r   r  c           	     óR  € \        4       p  \        P                  ! V R4       \        P                  ! V \        P                  \        P
                  ,          ^ \        P                  \        P                  \        P                  \        P                  4      p \        P                  ! T\        P                  RR4       \!        T4      #   \         dN   pTP                  \        P                  \        P                  39  g   \        T4      '       d   h  Rp?EK  Rp?ii ; i)zE
Return a connection object connected to the pipe given by `address`
éè  N)r   rÁ   ÚWaitNamedPiper^  rS  rT  r]  r_  rW  rQ   rØ   ÚERROR_SEM_TIMEOUTr"  r   r`  rZ  r·   )r:   r   Úhrâ   s   &   r   r?  r?  ï  sä   € ô ‹OˆØðÜ×%Ò% g¨tÔ4Ü×&Ò&ØœW×1Ñ1´G×4IÑ4IÕIØ”w—|‘|¤W×%:Ñ%:Ü×0Ñ0´'·,±,ó�ð ô 	×'Ò'ØŒw×,Ñ,¨d°Dô	ô ˜aÓ Ð øô ô Ø—:‘:¤g×&?Ñ&?Ü&-×&=Ñ&=ð&?ô ?ÜBPÐQR×BSÒBSØö CTûðús   �BC ÃD&ÃAD!Ä!D&s   #CHALLENGE#s	   #WELCOME#s	   #FAILURE#c              #   ó8   "  € T F  p\        V4      x € K  	  R # 5ir   )r‹   )Ú.0rh  s   & r   Ú	<genexpr>r£  m  s   é € Ð7Ñ&6 ”c˜!—f�fÓ&6ùs   ‚c                ó$  € \        V 4      \        9   d   RV 3# V P                  R4      '       dT   V P                  R^\        ^,           4      ;p^ 8”  d/   V ^V pV\
        9   d   W^,           R pVP                  R4      V3# \        RV : 24      h)zóReturns 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.
Ú ó   {ó   }NÚasciizRunsupported message length, missing digest prefix, or unsupported digest: message=)r‹   Ú_LEGACY_LENGTHSr8   ÚfindÚ_MAX_DIGEST_LENÚ_ALLOWED_DIGESTSÚdecoder   )ÚmessageÚcurlyÚdigestÚpayloads   &   r   Ú_get_digest_name_and_payloadr²  x  sŸ   € ô ˆ7ƒ|”Ô&ð
 �7ˆ{ÐØ×Ñ˜4× Ò Ø—,‘,˜t Q¬¸Õ(9Ó:Ð	:ˆ¸aÔ?Ø˜˜5Ð!ˆØÔ%Ô%Ø A�g˜hÐ'ˆGØ—=‘= Ó)¨7Ð2Ð2Ü
ð/Ø&-¡Zð1ó2ð 2r   c                ó  € ^ RI p\        V4      ^ ,          pV'       g"    VP                  WR4      P                  4       # VP                  WV4      P                  4       pRVP                  R4      V3,          #   \         d    Rp LIi ; i)ao  Create 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.
NÚmd5Úsha256ó   {%s}%sr¨  )Úhmacr²  Únewr°  r*   Úencode)r'  r®  r·  Údigest_nameÚresponses   &&   r   Ú_create_responser¼  ’  s†   € ó Ü.¨wÓ7¸Õ:€Kçð	#Ø—8‘8˜G¨eÓ4×;Ñ;Ó=Ð=ð �x‰x˜¨+Ó6×=Ñ=Ó?€HØ˜×*Ñ*¨7Ó3°XÐ>Õ>Ð>øô ô 	#ð #ŠKð		#ús    A: Á:B
Â	B
c           
     ó„  € ^ RI p\        V4      w  rET;'       g    Rp VP                  WV4      P                  4       p\        T4      \        T4      8w  d(   \        RT: R\        T4       R\        T4       24      hTP                  Ye4      '       g   \        R4      hR#   \         d    \        RT: R24      hi ; i)	aH  Verify 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.
Nr´  zresponse_digest=z unsupportedz	expected z of length z got zdigest received was wrong)r·  r²  r¸  r°  r*   r   r‹   Úcompare_digest)r'  r®  r»  r·  Úresponse_digestÚresponse_macÚexpecteds   &&&    r   Ú_verify_challengerÂ  ®  sÕ   € ó Ü$@ÀÓ$JÑ!€OØ%×.Ð.¨€OðEØ—8‘8˜G¨oÓ>×EÑEÓGˆô ˆ8ƒ}œ˜LÓ)Ô)Ü!Ø˜OÑ.¨k¼#¸h»-¸ð IÜ˜<Ó(Ð)ð+ó,ð 	,ð ×Ñ˜x×6Ò6Ü!Ð"=Ó>Ð>ñ 7øô ô EÜ!Ð%5 _Ñ$6°lÐ"CÓDÐDðEús   Ÿ B# Â#B?c                ó$   € V ^8„  d   QhR\         /# ©é   r'  ©r  )Úformats   "r   Ú__annotate__rÈ  Ç  s   € ÷ (ñ (¬5ñ (r   c                 óô  € \        V\        4      '       g$   \        R P                  \	        V4      4      4      h\
        \        8”  g   Q R4       h\        P                  ! \
        4      pRVP                  R4      V3,          pV P                  \        V,           4       V P                  R4      p \        WV4       V P                  \        4       R#   \         d    T P                  \         4       h i ; i)ú Authkey must be bytes, not {0!s}zprotocol constraintr¶  r¨  é   N)r  r  r*   rÇ  r5   ÚMESSAGE_LENGTHÚ_MD5ONLY_MESSAGE_LENGTHr$   r(   r¹  r{   Ú
_CHALLENGErˆ   rÂ  Ú_WELCOMEr   Ú_FAILURE)Ú
connectionr'  rº  r®  r»  s   &&&  r   r,  r,  Ç  sÓ   € Ü�gœu×%Ò%ÜØ.×5Ñ5´d¸7³mÓDóFð 	FäÔ3Ô3ÐJÐ5JÓJÐ3Ü�jŠjœÓ(€GØ˜;×-Ñ-¨gÓ6¸Ð@Õ@€Gð ×Ñœ* wÕ.Ô/Ø×$Ñ$ SÓ)€Hð(Ü˜'¨HÔ5ð
 	×ÑœhÖ'øô	 ô Ø×ÑœhÔ'Øðús   Â2C Ã"C7c                ó$   € V ^8„  d   QhR\         /# rÄ  rÆ  )rÇ  s   "r   rÈ  rÈ  Ü  s   € ÷ >ñ >¬%ñ >r   c                 óð  € \        V\        4      '       g$   \        R P                  \	        V4      4      4      hV P                  R4      pVP                  \        4      '       g   \        RV: 24      hV\        \        4      R p\        V4      \        8  d   \        R\        V4       R24      h\        W4      pV P                  V4       V P                  R4      pV\        8w  d   \        R4      hR# )rÊ  rË  z,Protocol error, expected challenge: message=Nzchallenge too short: z byteszdigest sent was rejected)r  r  r*   rÇ  r5   rˆ   r8   rÎ  r   r‹   rÍ  r¼  r{   rÏ  )rÑ  r'  r®  r°  r»  s   &&   r   r-  r-  Ü  sâ   € Ü�gœu×%Ò%ÜØ.×5Ñ5´d¸7³mÓDóFð 	Fà×#Ñ# CÓ(€GØ×Ñœj×)Ò)Ü!Ø?°w±jÐAóCð 	Cà”cœ*“oÐ&Ð'€GÜ
ˆ7ƒ|Ô-Ô-Ü!Ð$9¼#¸g»,¸ÀvÐ"NÓOÐOÜ˜gÓ/€FØ×Ñ˜&Ô!Ø×$Ñ$ SÓ)€HØ”8ÔÜ!Ð"<Ó=Ð=ñ r   c                   ó2   a € ] tR tRt o R tR tR tRtV tR# )ÚConnectionWrapperiñ  c                ój   € Wn         W n        W0n        R F  p\        W4      p\	        WV4       K  	  R# )rh   N)rh   r[   r›   rˆ   r{   )Ú_connÚ_dumpsÚ_loadsro  Úsetattr)rC   Úconnr   r”   Úattrr�   s   &&&&  r   rG   ÚConnectionWrapper.__init__ò  s0   € ØŒ
ØŒØŒÛKˆDÜ˜$Ó%ˆCÜ�D Ö$ó Lr   c                ó^   € V P                  V4      pV P                  P                  V4       R # r   )rØ  r×  r{   )rC   r�   r€  s   && r   r‚   ÚConnectionWrapper.sendù  s"   € Ø�K‰K˜ÓˆØ�
‰
×Ñ˜aÖ r   c                óX   € V P                   P                  4       pV P                  V4      # r   )r×  rˆ   rÙ  r  s   & r   r–   ÚConnectionWrapper.recvü  s"   € Ø�J‰J×!Ñ!Ó#ˆØ�{‰{˜1‹~Ðr   )r×  rØ  rÙ  N)	r­   r®   r¯   r°   rG   r‚   r–   r²   r³   r´   s   @r   rÕ  rÕ  ñ  s   ø‡ € ò%ò!÷ð r   rÕ  c                 óT   € \         P                  V 3R R R ^4      P                  R4      # )Núutf-8)Ú	xmlrpclibr   r¹  )r�   s   &r   Ú
_xml_dumpsrå     s&   € Ü�?‰?˜C˜6 4¨¨t°QÓ7×>Ñ>¸wÓGÐGr   c                 óV   € \         P                  V P                  R 4      4      w  w  rV# )rã  )rä  r”   r­  )r€  r�   Úmethods   &  r   Ú
_xml_loadsrè    s"   € Ü—_‘_ Q§X¡X¨gÓ%6Ó7�N�F€SØ€Jr   c                   ó&   a € ] tR tRt o R tRtV tR# )ÚXmlListeneri  c                ób   € ^ RI Hs \        P	                  V 4      p\        V\        \        4      # r«   )Úxmlrpc.clientÚclienträ  r   r+  rÕ  rå  rè  r€   s   & r   r+  ÚXmlListener.accept  s"   € å)Ü�o‰o˜dÓ#ˆÜ  ¤j´*Ó=Ð=r   rž   N)r­   r®   r¯   r°   r+  r²   r³   r´   s   @r   rê  rê    s   ø‡ € ÷>ð >r   rê  c                  óJ   € ^ RI Hs \        \	        V / VB \
        \        4      # r«   )rì  rí  rä  rÕ  r   rå  rè  )rm  Úkwdss   *,r   Ú	XmlClientrñ    s   € å%ÜœV TÐ2¨TÑ2´JÄ
ÓKÐKr   c                 óJ  a€ \        V 4      o. p\        S4      ^<8”  d€    \        P                  ! SRV4      pTP                  T3R lT 4       4       T'       dB   \        S4       UUu. uF)  w  rEYC^ ,          T,          u;8”  d
   T9  g   K#  M K'  TNK+  	  uppo^ pS'       då   \        S4      ^<8”  d
   SR,          MSp\        P                  ! VRV4      pV\        8X  d    V# \        Tu;8:  d   \        \        S4      ,           8  d   M MV\        ,          pMC\        Tu;8:  d   \        \        S4      ,           8  d   M MV\        ,          pM\        R4      hVP                  SV,          4       SV^,           R o^ pKì  V#   \         d    . u # i ; iu uppi )é<   Fc              3   ó6   <"  € T F  pSV,          x € K  	  R # 5ir   rž   )r¢  ÚiÚLs   & €r   r£  Ú#_exhaustive_wait.<locals>.<genexpr>%  s   øé € Ð+¡s !˜˜1Ÿš£sùó   ƒ:Nró  NzShould not get hereN)Úlistr‹   rÁ   ÚBatchedWaitForMultipleObjectsÚTimeoutErrorÚextendÚ	enumeraterÄ   r
   r   r	   rÛ   r“  )Úhandlesr   Úreadyr–  rõ  r   Úshort_Lrö  s   &&     @r   Ú_exhaustive_waitr    sX  ø€ ô �‹MˆØˆô ˆq‹6�BŒ;ðÜ×;Ò;¸A¸uÀgÓN�ð �L‰LÔ+¡sÓ+Ô+ßÜ#,¨Q¤<ÔM¡<™4˜1°1¸1µvÀµzÖ3LÈÑ3L”QÑ3L•Q¡<ÒM�ØˆGßÜ # A£¨¤�a˜–f°ˆGÜ×0Ò0°¸%ÀÓIˆCØ”lÔ"Øð ˆô  #Ö>¬¼¸A»Õ(>×>Ø”}Õ$‘Ü! SÖDÔ+;¼cÀ!»fÕ+D×DØÔ'Õ'‘ä"Ð#8Ó9Ð9Ø�L‰L˜˜3�Ô Ø�#�a•%�&�	ˆAØŠGØˆøô)  ô Ø’	ðüó Ns#    F Á) FÂFÂFÆFÆFc                ó(  a€ Vf   \         pM#V^ 8  d   ^ pM\        VR,          R,           4      p\        V 4      p / o. p\        4       p\        4       p V  FØ  p \	        VR4      p \
        P                  ! V! 4       ^ R4      w  rxV\
        P                  8X  d#   VP                  V4       VSVP                  &   Kg  V'       dW   \        P                  ! 4       R,          R
8¼  d6    VP                  R4      w  r¨V'       g   \!        VR4      '       d   RVn        VP%                  V4       ^ pKÚ  	  \+        SP-                  4       V4      pV F  pVP/                  4        K  	  V Fv  p VP                  R4      w  r¨V\
        P0                  8w  g   K.  SVP                  ,          pVP%                  V4       V^ 8X  g   K[  \!        VR4      '       g   Ko  RVn        Kx  	  TP3                  T3R	 lT 4       4       T  Uu. uF  qUT9   g   K  TNK  	  up#   \         d%   p	RT	P                  r‡T\        9  d   h  Rp	?	ELºRp	?	ii ; i  \         d   p	T	P                  p Rp	?	ELkRp	?	ii ; i  \&         d    TSTP)                  4       &    EK9  i ; i  \         d$   p	T	P                  pT\        9  d   h  Rp	?	EL>Rp	?	ii ; i  T F  pTP/                  4        K  	  T F§  p TP                  R4      w  r¨M0  \         d#   p	T	P                  pT\        9  d   h  Rp	?	MRp	?	ii ; iT\
        P0                  8w  g   K_  STP                  ,          pTP%                  T4       T^ 8X  g   KŒ  \!        TR4      '       g   K   RTn        K©  	  i ; iu upi )ú
Wait till an object in object_list is ready/readable.

Returns list of those objects in object_list which are ready/readable.
Nr�  g      à?rh   T:NrÅ  NFrÏ   c              3   ó6   <"  € T F  pSV,          x € K  	  R # 5ir   rž   )r¢  r   Úwaithandle_to_objs   & €r   r£  Úwait.<locals>.<genexpr>†  s   øé € ÐI¹=°aÐ.¨q×1Ò1»=ùrø  )é   rÅ  )r   Úintrù  Úsetro  rÁ   rÓ   rQ   rØ   Ú_ready_errorsrÃ   r“  rÅ   r/   ÚgetwindowsversionrÆ   r1   rÏ   ÚaddÚAttributeErrorr?   r  Úkeysrº   rÇ   Úupdate)Úobject_listr   Úov_listÚready_objectsÚready_handlesÚorh   r¼   rÊ   râ   rh  r  s   &&         @r   rç   rç   ;  s,  ø€ ð Š?Ü‰GØ�qŒ[Ø‰Gä˜' D�.¨3Õ.Ó/ˆGä˜;Ó'ˆØÐØˆÜ›ˆÜ›ˆð6	8Û �ð$Ü$ Q¨Ó1�Fð
"Ü")×"2Ò"2±6³8¸QÀÓ"E™˜ð
 œg×6Ñ6Ô6ØŸ™ rÔ*Ø67Ð)¨"¯(©(Ó3÷
 ¤#×"7Ò"7Ó"9¸"Õ"=ÀÔ"Gð1Ø)+×)?Ñ)?ÀÓ)F¡ ÷ $'¬7°1Ð6J×+KÒ+KØ7; Ô 4Ø%×)Ñ)¨!Ô,Ø"#šñ= !ô@ -Ð->×-CÑ-CÓ-EÀwÓOˆMó �Ø—	‘	–ñ ó �ðØ×3Ñ3°DÓ9‘F�Að
 œ'×9Ñ9Ö9Ø)¨"¯(©(Õ3�AØ!×%Ñ% aÔ(Ø˜a–xô # 1Ð&:×;Ô;Ø37˜AÖ0ñ ð  	×ÑÔI¹=ÓIÔIÙ&Ó=™;�a¨}Ñ*<—�™;Ñ=Ð=øô_ #ô "Ø"&¨¯
©
˜CØ¤mÔ3Ø!õ 4ûð"ûô  $+ô 1Ø&'§j¡j¦ûð1ûô- &ô 9Ø78Ð% a§k¡k£mÕ4ð9ûôN ô ØŸ*™*�CØ¤-Ô/Øõ 0ûðûó �Ø—	‘	–ñ ó �ðØ×3Ñ3°DÓ9‘F�A�søÜô ØŸ*™*�CØ¤-Ô/Øô 0ûðúð œ'×9Ñ9Ö9Ø)¨"¯(©(Õ3�AØ!×%Ñ% aÔ(Ø˜a–xô # 1Ð&:×;Ô;Ø37˜AÖ0ò üò" >së   ÁK ÁI-Á'HÂ>K Ã!K Ã'IÃ:K ÄA
K Å+JÈ NÈNÈIÈ!I È:K É IÉK ÉI*ÉI%ÉK É%I*É*K É-JÊK ÊJÊK ÊKÊJ<Ê<KËNË$K8Ë7NË8L%	ÌL 	ÌNÌ L%	Ì%NÌ?(NÍ,NÎ NÚPollSelectorc                óä  € \        4       ;_uu_ 4       pV  F#  pVP                  V\        P                  4       K%  	  Ve   \        P
                  ! 4       V,           p VP                  V4      pV'       d+   V UUu. uF  w  rgVP                  NK  	  uppuuRRR4       # Vf   KJ  X\        P
                  ! 4       ,
          pV^ 8  g   Ko  VuuRRR4       # u uppi   + '       g   i     R# ; i)r  N)Ú_WaitSelectorÚregisterÚ	selectorsÚ
EVENT_READr   r   ÚselectÚfileobj)r  r   Úselectorr�   Údeadlinerÿ  ÚkeyÚeventss   &&      r   rç   rç   •  s³   € ô �_Œ_ Û"�Ø×!Ñ! #¤y×';Ñ';Ö<ñ #ð Ò"ÜŸ>š>Ó+¨gÕ5�àØ Ÿ™¨Ó0�ßÙ=BÔC¹U©M¨S˜CŸKœK¹UÒC÷ Š_ð Ô*Ø"*¬T¯^ª^Ó-=Õ"=˜Ø" Qž;Ø#(÷ Š_ùó D÷ �_ˆ_ús6   “A#CÁ7CÁ<C
ÂCÂ!CÂ' CÃCÃCÃC/	c                 óB  € V P                  4       p\        P                  ! V\        P                  \        P                  4      ;_uu_ 4       p^RIHp VP                  V4      p\        W@P                  V P                  33uuRRR4       #   + '       g   i     R# ; i)rê   )Úresource_sharerN)rh   r2   Úfromfdr   ÚSOCK_STREAMr¥  r"  Ú	DupSocketÚrebuild_connectionrE   rF   )rÛ  rD   r€  r"  Údss   &    r   Úreduce_connectionr(  ±  sd   € Ø—‘“ˆÜ�]Š]˜6¤6§>¡>´6×3EÑ3E×FÔFÈ!Ý)Ø ×*Ñ*¨1Ó-ˆBÜ%¨¯M©M¸4¿=¹=Ð'IÐI÷ G×F×FÓFús   Á5BÂB	c                 óV   € V P                  4       p\        VP                  4       W4      # r   ©rG  rñ   )r'  rE   rF   Úsocks   &&& r   r&  r&  ·  s    € Ø�y‰y‹{ˆÜ˜$Ÿ+™+›-¨Ó<Ð<r   c                 ó"  € V P                   '       d   \        P                  M^ V P                  '       d   \        P                  M^ ,          p\
        P                  ! V P                  4       V4      p\        W P                   V P                  33# r¬   )	rE   rÁ   ÚFILE_GENERIC_READrF   ÚFILE_GENERIC_WRITEr   Ú	DupHandlerh   Úrebuild_pipe_connection)rÛ  rc  Údhs   &  r   Úreduce_pipe_connectionr2  ¼  s`   € Ø04··°”7×,Ò,À1Ø15··°”7×-Ò-ÀAõGˆä× Ò  §¡£°Ó7ˆÜ&¨¯]©]¸D¿M¹MÐ(JÐJÐJr   c                 ó:   € V P                  4       p\        W1V4      # r   )rG  r·   )r1  rE   rF   rD   s   &&& r   r0  r0  Á  s   € Ø—‘“ˆÜ˜f°Ó9Ð9r   c                 ó†   € \         P                  ! V P                  4       4      p\        WP                  V P
                  33# r   )r   ÚDupFdrh   r&  rE   rF   )rÛ  Údfs   & r   r(  r(  Ç  s.   € Ü�_Š_˜TŸ[™[›]Ó+ˆÜ! B¯©°t·}±}Ð#EÐEÐEr   c                 ó:   € V P                  4       p\        W1V4      # r   r*  )r6  rE   rF   Úfds   &&& r   r&  r&  Ê  s   € Ø�Y‰Y‹[ˆÜ˜"¨Ó1Ð1r   )r   r   rP  rç   i   )NNr~  >   ó   md5ó   sha256ó   sha384ó   sha3_256ó   sha3_384)rµ  r   )UÚ__all__rÈ   rÐ   r  r$   r/   r2   r  r!   r   r¥  r   r   r   Úcontextr   ÚForkingPicklerr~   r  rÁ   r   r	   r
   r   ÚImportErrorr0   rü   ÚCONNECTION_TIMEOUTr   r'   r!  r  Úfamiliesr1   r   r   r-   r3   r;   r=   r·   rñ   rÔ   r   r   rP  r$  r@  r  r?  rÌ  rÎ  rÏ  rÐ  Ú	frozensetr¬  Úmaxr«  rÍ  Ú_MD5_DIGEST_LENr©  r²  r¼  rÂ  r,  r-  rÕ  rå  rè  rê  rñ  r  rÙ   ÚERROR_NETNAME_DELETEDr
  rç   r  r  r  ÚSelectSelectorr(  r&  r  r2  r0  rž   r   r   Ú<module>rI     sç  ðò 3€ã Û 	Û Û 	Û 
Û Û Û Û õ ç 1Ý Ø×*Ñ*€ðÛÛßOÓOð €ð Ð à—’Ó!€ØÐ à€Øˆ;€á
ˆ6�9×ÒØ€NØ��Õ€Hà‡<�<�7ÔØ€NØ��Õ€Hð -ô &ò ò0ò
FòF÷&Xñ X÷v ôg˜ô gôTN�ô NôjGˆvô GôTð* ‡<�<�7Ôõô&/ôj)�Vô )òX&ð ‡<�<�7Ôô6,�vô 6,òp!ð> €à€
Ø€Ø€ñr Ú@óBÐ áÑ7Ñ&6Ó7Ó7€ð Ð Ø€Ø*¨OÐ<€ò2ò4?ò8?÷2(õ*>ô*˜ô òHòô>�(ô >òLð ‡<�<�7Ôòð@ ×.Ñ.°×0MÑ0MÐN€MõL>ó` ñ
 ˆy˜.×)Ò)Ø!×.Ñ.‰à!×0Ñ0ˆô)ð6 ‡<�<�7ÔòJò=ð ×Ò�zÐ#4Ô5òKò
:ð ×Ò�~Ð'=Ö>òFò2ð ×Ò�zÐ#4Ö5øðY% ô Ø
‡|�|�wÔØØƒGðús   Á
I' É'JÊJ