
    h	                         S SK r S SKrS rg)    Nc                     ^^ [        [        S5      (       d  SSKmSSKmSUU4S jjn U [        l        [        [
        S5      (       d   " S S5      nU[
        l        gg)z#Add shims for older Python versionsrecv_fdsr   Nc           	      n  > TR                  S5      nU R                  UTR                  X$R                  -  5      5      u  pVp7U H`  u  pn
UTR                  :X  d  M  U	TR
                  :X  d  M*  UR                  U
S [        U
5      [        U
5      UR                  -  -
   5        Mb     U[        U5      X74$ )Ni)	arrayrecvmsgCMSG_LENitemsize
SOL_SOCKET
SCM_RIGHTS	frombyteslenlist)sockbufsizemaxfdsflagsfdsmsgancdataaddr
cmsg_level	cmsg_type	cmsg_data_socketr   s              3/usr/lib/python3/dist-packages/cockpit/polyfills.pyr   install.<locals>.recv_fds   s    ++c"C(,Wg>N>NvXdXdOd>e(f%C%4;0
y'"4"44gFXFX9XMM),]S^s9~PSP\P\?\-]"^_ 5< S	5..    AsyncExitStackc                   ,    \ rS rSrS rS rS rS rSrg)install.<locals>.AsyncExitStack*   c                 *   #    / U l         / U l        U $ 7fN)cms	async_cms)selfs    r   
__aenter__*install.<locals>.AsyncExitStack.__aenter__+   s     !#s   c                 x   #    UR                  5       I S h  vN nU R                  R                  U5        U$  N!7fr$   )r(   r&   appendr'   cmresults      r   enter_async_context3install.<locals>.AsyncExitStack.enter_async_context0   s/     !}}.%%b) /s   :8":c                 \    UR                  5       nU R                  R                  U5        U$ r$   )	__enter__r%   r+   r,   s      r   enter_context-install.<locals>.AsyncExitStack.enter_context5   s"    #r   c                    #    U R                    H  nUR                  XU5        M     U R                   H  nUR                  XU5        M     g 7fr$   )r&   	__aexit__r%   __exit__)r'   exc_type	exc_value	tracebackr-   s        r   r6   )install.<locals>.AsyncExitStack.__aexit__:   s=     ..BLLi@ )((BKKY? #s   AA)r&   r%   N)	__name__
__module____qualname____firstlineno__r(   r/   r3   r6   __static_attributes__ r   r   r   r!   *   s    


@r   )r   )hasattrsocketr   r   r   
contextlibr   )r   r   r   r   s     @@r   installrE      sV     6:&&	/ 	/ # :/00	@ 	@, %3
!/ 1r   )rD   rC   rE   rA   r   r   <module>rF      s   $  *3r   