+
    �WÝjA«  ã                   ó
  € . 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	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]P6                  ! 4       t^dtR	tR	.t] ! ]R
4      '       d   R
t]R
.,          t]P0                  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+]P0                  R8w  d   R@R lt,MR@R lt, ! R R])4      t-R t.]P0                  R8X  d    ! R R])4      t/R  t0^(t1R!t2R"t3R#t4]5! 0 RAm4      t6]7! R$ ]6 4       4      t8^t9^t:]9]:3t;R% t<R& t=R' t>RBR( R) llt?R* R+ lt@ ! R, R-])4      tAR. tBR/ tC ! R0 R1]*4      tDR2 tE]P0                  R8X  d"   R3 tF]PŽ                  ]P�                  0tIRCR4 ltJM1^ RIKtK] ! ]KR54      '       d   ]KP˜                  tMM]KPœ                  tMRCR6 ltJ]P0                  R8X  d5   R7 tOR8 tP]P¢                  ! ](]O4       R9 tRR: tS]P¢                  ! ]']R4       R# R; tOR< tP]P¢                  ! ](]O4       R#   ] d    ]P0                  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   &ÚkC:\Users\johnn\AppData\Roaming\uv\python\cpython-3.14-windows-x86_64-none\Lib\multiprocessing\connection.pyÚ_init_timeoutr   >   s   € Ü�>Š>Ó˜gÕ%Ð%ó    c                 ó2   € \         P                  ! 4       V 8„  # r   r   )Úts   &r   Ú_check_timeoutr   A   s   € Ü�>Š>Ó˜aÑÐr   c                ó’  € V R8X  d   R# V R8X  dY   \         P                  P                  \        P                  ! 4       R\         P
                  ! ^4      P                  4        24      # 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-r   z\\.\pipe\pyc-%d-%d-%szunrecognized family)Ú	localhosté    )ÚosÚpathÚjoinr   Úget_temp_dirÚurandomÚhexÚgetpidÚnextÚ_mmap_counterÚ
ValueError©Úfamilys   &r   Úarbitrary_addressr+   H   s£   € ð �ÔØÐØ	�9Ô	ô �w‰w�|‰|œD×-Ò-Ó/Ø#¤B§J¢J¨q£M×$5Ñ$5Ó$7Ð#8Ð9ó;ð 	;à	�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_familyr1   Z   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_typer9   f   sb   € ô ˆGƒ}œÔÙÜ	ˆg‹œ#Ó	 '×"4Ñ"4°V×"<Ò"<ÙÜ	ˆg‹œ#Ó	¤×!BÒ!BÀ7×!KÒ!KÙäÐ:¸WÕDÓEÐEr   c                   óÎ   a € ] tR t^yt 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__|   sI   € Ø×!Ñ!Ó#ˆØ�AŒ:ÜÐ-Ó.Ð.ß§ÜØHóJð JàŒØ!ŒØ!Žr   c                óF   € V P                   e   V P                  4        R # R # r   ©r>   Ú_close©rA   s   &r   Ú__del__Ú_ConnectionBase.__del__‰   s   € Ø�<‰<Ò#Ø�K‰KŽMñ $r   c                ó8   € V P                   f   \        R4      hR # )Núhandle is closed)r>   ÚOSErrorrJ   s   &r   Ú_check_closedÚ_ConnectionBase._check_closed�   s   € Ø�<‰<ÒÜÐ,Ó-Ð-ñ  r   c                ó@   € V P                   '       g   \        R 4      hR# )zconnection is write-onlyN)r?   rO   rJ   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)r@   rO   rJ   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)r@   r?   ÚcloserO   rJ   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>   rJ   s   &r   ÚclosedÚ_ConnectionBase.closed    s   € ð �|‰|˜tÐ#Ð#r   c                ó   € V P                   # )z"True if the connection is readable)r?   rJ   s   &r   rC   Ú_ConnectionBase.readable¥   ó   € ð �~‰~Ðr   c                ó   € V P                   # )z"True if the connection is writable)r@   rJ   s   &r   rD   Ú_ConnectionBase.writableª   rb   r   c                ó:   € V P                  4        V P                  # )z+File descriptor or handle of the connection)rP   r>   rJ   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 connectionNrH   rJ   s   &r   rY   Ú_ConnectionBase.close´   s1   € à�<‰<Ò#ð$Ø—‘”à#�–ñ	 $øð  $�•ús   �+ «	4c                ó   € RV n         R# )z7Stop managing the underlying file descriptor or handle.Nr]   rJ   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)rP   rV   Ú
memoryviewÚitemsizeÚcastÚnbytesr(   Ú_send_bytes)rA   Ú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)rP   rV   rs   Ú_ForkingPicklerÚdumps©rA   Ú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)rP   rS   r(   Ú_recv_bytesrZ   Úgetvalue)rA   Ú	maxlengthrt   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)rP   rS   ro   rp   Úlenr(   rƒ   Útellr   r„   ÚseekÚreadinto)rA   rt   ru   rw   rp   ÚbytesizeÚresultrv   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)rP   rS   rƒ   r|   ÚloadsÚ	getbuffer)rA   rt   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)rP   rS   Ú_poll©rA   r   s   &&r   ÚpollÚ_ConnectionBase.poll  s)   € à×ÑÔØ×ÑÔØ�z‰z˜'Ó"Ð"r   c                ó   € V # r   © rJ   s   &r   Ú	__enter__Ú_ConnectionBase.__enter__  ó   € Øˆr   c                ó&   € V P                  4        R # r   ©rY   ©rA   Úexc_typeÚ	exc_valueÚexc_tbs   &&&&r   Ú__exit__Ú_ConnectionBase.__exit__  ó   € Ø�
‰
Žr   )r>   r?   r@   )TT©r   Nr   ©r   )g        )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r>   rE   rK   rP   rS   rV   rZ   Úpropertyr^   rC   rD   rf   rY   rk   ry   r€   r†   r�   r”   r™   r�   r¦   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r;   r;   y   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>   )rA   Ú_CloseHandleÚovs   && r   rI   Ú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©Ú
overlappedFrN   )r·   r(   Ú_winapiÚ	WriteFiler>   ÚERROR_IO_PENDINGÚWaitForMultipleObjectsÚeventr   r   r¸   ÚGetOverlappedResultÚERROR_OPERATION_ABORTEDrO   ÚerrnoÚEPIPEr‰   )rA   rt   rº   ÚerrÚwaitresÚnwrittens   &&    r   rs   Ú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_datarO   ÚwinerrorÚERROR_BROKEN_PIPEÚEOFErrorÚRuntimeError)rA   Ú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._pollj  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‰   rZ   rÑ   rÄ   )rA   rº   rÚ   rt   rß   ÚleftrÈ   Úrbytess   &&&     r   rÕ   ÚPipeConnection._get_more_datap  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¿   ÚCloseHandlerI   rs   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]   ©rA   rI   s   &&r   rI   ÚConnection._close‡  ó   € Ù�4—<‘<Ö r   c                ó*   € V! V P                   4       R # r   r]   rñ   s   &&r   rI   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>   )rA   rt   rÓ   Ú	remainingrx   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Ø   rO   rÓ   )	rA   rv   Úreadrt   rB   rö   Úto_readÚchunkrx   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÷   )rA   rt   rx   Ú
pre_headerÚheaders   &&   r   rs   Ú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„   )rA   rÚ   rt   rv   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ä   )rA   r   Úrs   && r   r—   ÚConnection._pollÌ  s   € Ü�$�˜Ó!ˆÜ�A‹wˆr   rœ   r   )r«   r¬   r­   r®   rì   r¿   Ú_multiprocessingÚclosesocketrI   r€   Ú_writer”   Ú_readr   rY   rÓ   rû   r÷   rþ   rs   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   )r9   Údefault_familyr1   Ú
isinstanceÚbytesÚ	TypeErrorÚPipeListenerÚ	_listenerÚ	itertoolsÚcountr+   rO   Ú_MAX_PIPE_ATTEMPTSrÖ   r¿   ÚERROR_PIPE_BUSYÚERROR_ACCESS_DENIEDÚSocketListenerÚ_authkey)rA   r8   r*   ÚbacklogÚauthkeyÚattemptsrà   s   &&&&&  r   rE   Ú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  rO   Úacceptr#  Údeliver_challengeÚanswer_challenge)rA   Ú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  rY   )rA   Úlisteners   & r   rY   ÚListener.close  s)   € ð —>‘>ˆØÒØ!ˆDŒNØ�N‰NÖñ  r   c                ó.   € V P                   P                  # r   )r  Ú_addressrJ   s   &r   r8   ÚListener.address  s   € à�~‰~×&Ñ&Ð&r   c                ó.   € V P                   P                  # r   )r  Ú_last_acceptedrJ   s   &r   Úlast_acceptedÚListener.last_accepted  s   € à�~‰~×,Ñ,Ð,r   c                ó   € V # r   rœ   rJ   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ì   rE   r)  rY   r¯   r8   r6  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  )	r9   r1   Ú
PipeClientÚSocketClientr  r  r  r+  r*  )r8   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©rD   ©rC   )r0   Ú
socketpairÚsetblockingrï   Údetachr   Úpipe)ÚduplexÚs1Ús2Úc1Úc2Úfd1Úfd2s   &      r   ÚPiperN  6  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)r@  r   NTr½   rA  rB  )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ÚNULLrO   r  rÖ   r   r!  Ú
CreateFileÚOPEN_EXISTINGÚSetNamedPipeHandleStateÚConnectNamedPiperÄ   rµ   )rG  ÚopenmodeÚaccessÚobsizeÚibsizer&  r8   Úh1rà   Úh2r¾   Ú_rÈ   rJ  rK  s   &              r   rN  rN  I  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)r0   ÚgetattrÚ_socketr   ÚnameÚ
setsockoptÚ
SOL_SOCKETÚSO_REUSEADDRrD  ÚbindÚlistenÚgetsocknamer2  rO   rY   Ú_familyr5  r   r7   ÚFinalizeÚunlinkÚ_unlink)rA   r8   r*   r$  s   &&&&r   rE   Ú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)rn  r)  r5  rD  rï   rE  ©rA   Ú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   )rn  rY   ry  )rA   rx  s   & r   rY   ÚSocketListener.close   s[   € ð	Ø�L‰L×ÑÔ à—\‘\ˆFØÒ!Ø#�”Ù–ñ "øð —\‘\ˆFØÒ!Ø#�”Ù•ð "ús	   ‚> ¾!A)r2  rv  r5  rn  ry  N)rè   )
r«   r¬   r­   r®   rì   rE   r)  rY   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)r9   r0   rm  rD  Úconnectrï   rE  )r8   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=%rrj  )
r2  Ú_new_handleÚ_handle_queuer5  r   Ú	sub_debugrw  r  Ú_finalize_pipe_listenerrY   )rA   r8   r$  s   &&&r   rE   Ú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¿   rP  rU  rV  rT  r2  rW  rX  rY  ÚPIPE_UNLIMITED_INSTANCESrú   rZ  r[  )rA   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¿   r_  rÂ   rÃ   r   r¸   rí   rÄ   rO   rÖ   ÚERROR_NO_DATArµ   )rA   rB   rº   Úresrf  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í   )Úqueuer8   rB   s   && r   rŠ  Ú$PipeListener._finalize_pipe_listenerì  s)   € ä�NŠNÐ=¸wÔGÛ�Ü×#Ò# FÖ+ó  r   )r2  rˆ  r5  rY   r   )F)r«   r¬   r­   r®   rì   rE   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\  rQ  rR  r[  r]  rU  rO   rÖ   ÚERROR_SEM_TIMEOUTr   r   r^  rX  rµ   )r8   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‰   )Ú.0rf  s   & r   Ú	<genexpr>r¡  p  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_LENGTHSr6   ÚfindÚ_MAX_DIGEST_LENÚ_ALLOWED_DIGESTSÚdecoder   )ÚmessageÚcurlyÚdigestÚpayloads   &   r   Ú_get_digest_name_and_payloadr°  {  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Å  r3   ÚMESSAGE_LENGTHÚ_MD5ONLY_MESSAGE_LENGTHr   r#   r·  ry   Ú
_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Å  r3   r†   r6   rÌ  r   r‰   rË  rº  ry   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# )rf   N)rf   rY   r™   r†   ry   )Ú_connÚ_dumpsÚ_loadsrm  Úsetattr)rA   Úconnr}   r’   Úattrr   s   &&&&  r   rE   ÚConnectionWrapper.__init__õ  s0   € ØŒ
ØŒØŒÛKˆDÜ˜$Ó%ˆCÜ�D Ö$ó Lr   c                ó^   € V P                  V4      pV P                  P                  V4       R # r   )rÖ  rÕ  ry   )rA   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®   rE   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æ  )rk  Ú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      à?rf   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÷  Úsetrm  r¿   rÑ   rO   rÖ   Ú_ready_errorsrÁ   r‘  rÃ   r-   ÚgetwindowsversionrÄ   r/   rÍ   ÚaddÚAttributeErrorr=   rÿ  Úkeysr¸   rÅ   Úupdate)Úobject_listr   Úov_listÚready_objectsÚready_handlesÚorf   rº   rÈ   rà   rf  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)rf   r0   Úfromfdr   ÚSOCK_STREAMr£  r   Ú	DupSocketÚrebuild_connectionrC   rD   )rÙ  rB   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   ©rE  rï   )r%  rC   rD   Ú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ª   )	rC   r¿   ÚFILE_GENERIC_READrD   ÚFILE_GENERIC_WRITEr   Ú	DupHandlerf   Úrebuild_pipe_connection)rÙ  ra  Údhs   &  r   Úreduce_pipe_connectionr0  ¿  s`   € Ø04··°”7×,Ò,À1Ø15··°”7×-Ò-ÀAõGˆä× Ò  §¡£°Ó7ˆÜ&¨¯]©]¸D¿M¹MÐ(JÐJÐJr   c                 ó:   € V P                  4       p\        W1V4      # r   )rE  rµ   )r/  rC   rD   rB   s   &&& r   r.  r.  Ä  s   € Ø—‘“ˆÜ˜f°Ó9Ð9r   c                 ó†   € \         P                  ! V P                  4       4      p\        WP                  V P
                  33# r   )r   ÚDupFdrf   r$  rC   rD   )rÙ  Údfs   & r   r&  r&  Ê  s.   € Ü�_Š_˜TŸ[™[›]Ó+ˆÜ! B¯©°t·}±}Ð#EÐEÐEr   c                 ó:   € V P                  4       p\        W1V4      # r   r(  )r4  rC   rD   Úfds   &&& r   r$  r$  Í  s   € Ø�Y‰Y‹[ˆÜ˜"¨Ó1Ð1r   )r   r   rN  rå   i   )NNr|  >   ó   md5ó   sha256ó   sha384ó   sha3_256ó   sha3_384)r³  r   )TÚ__all__rÆ   rÎ   r  r   r-   r0   r  r   r£  r   r   r   Úcontextr   ÚForkingPicklerr|   r  r¿   r   r	   r
   r   ÚImportErrorr.   rú   ÚCONNECTION_TIMEOUTr  r'   r  r  Úfamiliesr/   r   r   r+   r1   r9   r;   rµ   rï   rÒ   r   r   rN  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  r0  r.  rœ   r   r   Ú<module>rG     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øða% ô Ø
‡|�|�wÔØØƒGðús   ÁI# É#JÊJ