§
    3xÅjÄ+  ã                   ó  — d Z ddlZddlZddlmZ d„ Z G d„ dej        ¦  «        Zd„ ZdZ	ej
        j        j        Zej        j        ej        fe_        ej        j        e_        ej
        j        j        Zej        j        fe_        ej        j        e_        ej
        j        j        Zej        j        fe_        ej        j        e_        ej
        j        j        Zej        j        fe_        ej        e_        ej
        j        j        Zej        j        ej        ej        j        ej        j        ej        j        ej        j        ge_        ej        j        e_        ej
        j        j        Zej        j        e_        ej
        j        j        Zej        j        fe_        ej
        j        j         Z ej        ej        ej        fe _        ej        j!        fej
        j        j"        _         G d	„ d
¦  «        Z#dZ$dZ%e$Z&e$Z'e$Z(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6e%e*z  e+z  e,z  e-z  e.z  e/z  e0z  e1z  e2z  e3z  e4z  e5z  Z7e&e+z  e,z  Z8e'e-z  e.z  e/z  e0z  e1z  e2z  e3z  e4z  Z9e(e*z  e5z  Z: G d„ d¦  «        Z; G d„ d¦  «        Z< G d„ dej=        ¦  «        Z> G d „ d!ej=        ¦  «        Z? G d"„ d#ej=        ¦  «        Z@ ejA        e?¦  «        ej        ej        j        fej
        jB        jC        _        d$„ ZDd%„ ZEd&„ ZFd(d'„ZGdS ))zü
Windows API functions implemented as ctypes functions and classes as found
in jaraco.windows (3.4.1).

If you encounter issues with this module, please consider reporting the issues
in jaraco.windows and asking the author to port the fixes back here.
é    N)Úuc           	      óT  — d}d}||z  }d}| }d}t           j                             ¦   «         }d}d}	t           j        j                             ||||t          j        |¦  «        ||	¦  «        }
t          |
¦  «         |j        }t           j        j         	                    |¦  «         |S )zf
    Call FormatMessage with a system error number to retrieve
    the descriptive error message.
    é   é   Nr   )
ÚctypesÚwintypesÚLPWSTRÚwindllÚkernel32ÚFormatMessageWÚbyrefÚhandle_nonzero_successÚvalueÚ	LocalFree)ÚerrnoÚALLOCATE_BUFFERÚFROM_SYSTEMÚflagsÚsourceÚ
message_idÚlanguage_idÚresult_bufferÚbuffer_sizeÚ	argumentsÚbytesÚmessages               úAC:\Projects\Historical\venv\Lib\site-packages\paramiko/_winapi.pyÚformat_system_messager      sµ   € ð €OØ€Kð ˜kÑ)€EØ€FØ€JØ€KÝ”O×*Ò*Ñ,Ô,€MØ€KØ€IÝŒMÔ"×1Ò1ØØØØÝŒ�]Ñ#Ô#ØØñô €Eõ ˜5Ñ!Ô!Ð!ØÔ!€GÝ
„MÔ×$Ò$ ]Ñ3Ô3Ð3Ø€Nó    c                   ó\   ‡ — e Zd ZdZdˆ fd„	Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Z	ˆ xZ
S )	ÚWindowsErrorzZmore info about errors at
    http://msdn.microsoft.com/en-us/library/ms681381(VS.85).aspxNc                 ó¨   •— |€#t           j        j                             ¦   «         }t	          |¦  «        }d|d |f} t          ¦   «         j        |Ž  d S ©Nr   )r   r
   r   ÚGetLastErrorr   ÚsuperÚ__init__)Úselfr   ÚstrerrorÚargsÚ	__class__s       €r   r&   zWindowsError.__init__;   sS   ø€ Øˆ=Ý”MÔ*×7Ò7Ñ9Ô9ˆEÝ(¨Ñ/Ô/ˆØ�(˜D %Ð'ˆØ�‰ŒÔ˜$ÐÐÐÐr   c                 ó   — | j         S ©N)r(   ©r'   s    r   r   zWindowsError.messageB   ó
   € àŒ}Ðr   c                 ó   — | j         S r,   )Úwinerrorr-   s    r   ÚcodezWindowsError.codeF   r.   r   c                 ó   — | j         S r,   )r   r-   s    r   Ú__str__zWindowsError.__str__J   s
   € ØŒ|Ðr   c                 ó4   —  dj         di t          ¦   «         ¤ŽS )Nz*{self.__class__.__name__}({self.winerror})© )ÚformatÚvarsr-   s    r   Ú__repr__zWindowsError.__repr__M   s    € ØBÐ;ÔBÐLÐLÅTÁVÄVÐLÐLÐLr   r,   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r&   Úpropertyr   r1   r3   r8   Ú__classcell__©r*   s   @r   r!   r!   7   s¤   ø€ € € € € ðDð Dð ð  ð  ð  ð  ð  ð ðð ñ „Xðð ðð ñ „Xððð ð ðMð Mð Mð Mð Mð Mð Mr   r!   c                 ó.   — | dk    rt          ¦   «         ‚d S r#   )r!   )Úresults    r   r   r   Q   s   € Ø�‚{€{Ý‰nŒnÐð €{r   é   c                   ó8   — e Zd ZdZd	d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )
Ú	MemoryMapzL
    A memory map object which can have security attributes overridden.
    Nc                 ó>   — || _         || _        || _        d| _        d S r#   )ÚnameÚlengthÚsecurity_attributesÚpos)r'   rF   rG   rH   s       r   r&   zMemoryMap.__init__Š   s#   € ØˆŒ	ØˆŒØ#6ˆÔ ØˆŒˆˆr   c           
      ó\  — | j         rt          j        | j         ¦  «        nd }d}d}d}t          j        j                             |||d| j        t          | j        ¦  «        ¦  «        }t          |¦  «         ||k    rt          d¦  «        ‚|| _        t          ||ddd¦  «        | _        | S )Néÿÿÿÿé   rB   r   zFailed to create file mapping)rH   r   r   r
   r   ÚCreateFileMappingWrG   r   rF   r   Ú	ExceptionÚfilemapÚMapViewOfFileÚview)r'   Úp_SAÚINVALID_HANDLE_VALUEÚPAGE_READWRITEÚFILE_MAP_WRITErO   s         r   Ú	__enter__zMemoryMap.__enter__�   s¿   € ð Ô'ð�FŒL˜Ô1Ñ2Ô2Ð2àð 	ð
  "ÐØˆØˆÝ”-Ô(×;Ò;Ø ØØØØŒKÝˆdŒi‰LŒLñ
ô 
ˆõ 	˜wÑ'Ô'Ð'ØÐ*Ò*Ð*ÝÐ;Ñ<Ô<Ð<ØˆŒÝ! '¨>¸1¸aÀÑCÔCˆŒ	Øˆr   c                 ó   — || _         d S r,   )rI   )r'   rI   s     r   ÚseekzMemoryMap.seek¨   s   € ØˆŒˆˆr   c                 óP  — t          |t          ¦  «        sJ ‚t          |¦  «        }| j        |z   | j        k    rt          d|› d�¦  «        ‚| j        | j        z   }t          j        |¦  «        }t          j	        j
                             |||¦  «         | xj        |z  c_        d S )NzRefusing to write z bytes)Ú
isinstancer   ÚlenrI   rG   Ú
ValueErrorrQ   r   Úc_size_tr
   r   ÚRtlMoveMemory)r'   ÚmsgÚnÚdestrG   s        r   ÚwritezMemoryMap.write«   s�   € Ý˜#�uÑ%Ô%Ð%Ð%Ð%Ý�‰HŒHˆØŒ8�a‰<˜4œ;Ò&Ð&ÝÐ;°!Ð;Ð;Ð;Ñ<Ô<Ð<ØŒy˜4œ8Ñ#ˆÝ” Ñ#Ô#ˆÝŒÔ×,Ò,¨T°3¸Ñ?Ô?Ð?ØˆŒ�A‰ˆŒˆˆr   c                 óê   — t          j        |¦  «        }| j        | j        z   }t          j        |¦  «        }t           j        j                             |||¦  «         | xj        |z  c_        |j        S )z0
        Read n bytes from mapped view.
        )	r   Úcreate_string_bufferrQ   rI   r]   r
   r   r^   Úraw)r'   r`   Úoutr   rG   s        r   ÚreadzMemoryMap.readµ   sd   € õ Ô)¨!Ñ,Ô,ˆØ”˜TœXÑ%ˆÝ” Ñ#Ô#ˆÝŒÔ×,Ò,¨S°&¸&ÑAÔAÐAØˆŒ�A‰ˆŒØŒwˆr   c                 óª   — t           j        j                             | j        ¦  «         t           j        j                             | j        ¦  «         d S r,   )r   r
   r   ÚUnmapViewOfFilerQ   ÚCloseHandlerO   )r'   Úexc_typeÚexc_valÚtbs       r   Ú__exit__zMemoryMap.__exit__À   s>   € ÝŒÔ×.Ò.¨t¬yÑ9Ô9Ð9ÝŒÔ×*Ò*¨4¬<Ñ8Ô8Ð8Ð8Ð8r   r,   )
r9   r:   r;   r<   r&   rV   rX   rb   rg   rn   r5   r   r   rD   rD   …   s}   € € € € € ðð ðð ð ð ðð ð ð0ð ð ðð ð ð	ð 	ð 	ð9ð 9ð 9ð 9ð 9r   rD   i   i   i   é   rL   é   é   é    é@   é€   r   i   i   i   r   c                   ó   — e Zd ZdZdS )ÚTokenAccessrp   N)r9   r:   r;   ÚTOKEN_QUERYr5   r   r   rv   rv   	  s   € € € € € Ø€K€K€Kr   rv   c                   ó   — e Zd ZdZdS )ÚTokenInformationClassro   N)r9   r:   r;   Ú	TokenUserr5   r   r   ry   ry     s   € € € € € Ø€I€I€Ir   ry   c                   ó@   — e Zd ZdZdej        fdej        j        fgZdS )Ú
TOKEN_USERro   ÚSIDÚ
ATTRIBUTESN)	r9   r:   r;   Únumr   Úc_void_pr   ÚDWORDÚ_fields_r5   r   r   r|   r|     s1   € € € € € Ø
€Cà	�”Ð Ø	�v”Ô,Ð-ð€H€H€Hr   r|   c                   ó˜   — e Zd ZdZej        j        ZdZdej	        fdej	        fdefdej
        fdej
        fdej
        fd	ej
        fgZd
S )ÚSECURITY_DESCRIPTORzÿ
    typedef struct _SECURITY_DESCRIPTOR
        {
        UCHAR Revision;
        UCHAR Sbz1;
        SECURITY_DESCRIPTOR_CONTROL Control;
        PSID Owner;
        PSID Group;
        PACL Sacl;
        PACL Dacl;
        }   SECURITY_DESCRIPTOR;
    ro   ÚRevisionÚSbz1ÚControlÚOwnerÚGroupÚSaclÚDaclN)r9   r:   r;   r<   r   r   ÚUSHORTÚSECURITY_DESCRIPTOR_CONTROLÚREVISIONÚc_ubyter€   r‚   r5   r   r   r„   r„     sx   € € € € € ðð ð #)¤/Ô"8ÐØ€Hð 
�V”^Ð$Ø	�”Ð Ø	Ð/Ð0Ø	�&”/Ð"Ø	�&”/Ð"Ø	�”Ð!Ø	�”Ð!ð€H€H€Hr   r„   c                   ó    ‡ — e Zd ZdZdej        j        fdej        fdej        j        fgZ	ˆ fd„Z
ed„ ¦   «         Zej        d„ ¦   «         Zˆ xZS )ÚSECURITY_ATTRIBUTESz¦
    typedef struct _SECURITY_ATTRIBUTES {
        DWORD  nLength;
        LPVOID lpSecurityDescriptor;
        BOOL   bInheritHandle;
    } SECURITY_ATTRIBUTES;
    ÚnLengthÚlpSecurityDescriptorÚbInheritHandlec                 óv   •—  t          ¦   «         j        |i |¤Ž t          j        t          ¦  «        | _        d S r,   )r%   r&   r   Úsizeofr‘   r’   )r'   r)   Úkwargsr*   s      €r   r&   zSECURITY_ATTRIBUTES.__init__D  s5   ø€ Ø�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ý”}Õ%8Ñ9Ô9ˆŒˆˆr   c                 ó   — | j         S r,   )Ú_descriptorr-   s    r   Ú
descriptorzSECURITY_ATTRIBUTES.descriptorH  s   € àÔÐr   c                 óF   — || _         t          j        |¦  «        | _        d S r,   )r™   r   Ú	addressofr“   )r'   r   s     r   rš   zSECURITY_ATTRIBUTES.descriptorL  s#   € à ˆÔÝ$*Ô$4°UÑ$;Ô$;ˆÔ!Ð!Ð!r   )r9   r:   r;   r<   r   r   r�   r€   ÚBOOLr‚   r&   r=   rš   Úsetterr>   r?   s   @r   r‘   r‘   5  s©   ø€ € € € € ðð ð 
�F”OÔ)Ð*Ø	 ¤Ð1Ø	˜6œ?Ô/Ð0ð€Hð:ð :ð :ð :ð :ð ð ð  ñ „Xð ð Ôð<ð <ñ Ôð<ð <ð <ð <ð <r   r‘   c                 ó0  — t           j                             ¦   «         }t           j        j                             | |j        ddt          j        |¦  «        ¦  «         t          j        |j	        ¦  «        }t          t           j        j                             | |j        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        ¦  «        ¦  «         t          j        |t          j        t          ¦  «        ¦  «        j        S )z:
    Given a token, get the token information for it.
    r   )r   r   r�   r
   Úadvapi32ÚGetTokenInformationr   r   rd   r   r   r–   ÚcastÚPOINTERr|   Úcontents)ÚtokenÚinformation_classÚ	data_sizeÚdatas       r   r¡   r¡   \  sÜ   € õ ”×%Ò%Ñ'Ô'€IÝ
„MÔ×.Ò.ØÐ Ô$ a¨­F¬L¸Ñ,CÔ,Cñô ð õ Ô& y¤Ñ7Ô7€DÝÝŒÔ×2Ò2ØØÔ!ÝŒL˜ÑÔÝŒM˜$ÑÔÝŒL˜Ñ#Ô#ñ	
ô 	
ñô ð õ Œ;�t�Vœ^­JÑ7Ô7Ñ8Ô8ÔAÐAr   c           	      ó
  — t           j                             ¦   «         }t           j                             | ¦  «        } t          t           j        j                             | |t          j        |¦  «        ¦  «        ¦  «         |S r,   )r   r   ÚHANDLEr   r
   r    ÚOpenProcessTokenr   )Úproc_handleÚaccessrA   s      r   r«   r«   q  sl   € ÝŒ_×#Ò#Ñ%Ô%€FÝ”/×(Ò(¨Ñ5Ô5€KÝÝŒÔ×/Ò/Ø˜¥¤¨fÑ!5Ô!5ñ	
ô 	
ñô ð ð
 €Mr   c                  ó¢   — t          t          j        j                             ¦   «         t
          j        ¦  «        } t          | t          ¦  «        S )z<
    Return a TOKEN_USER for the owner of this process.
    )	r«   r   r
   r   ÚGetCurrentProcessrv   rw   r¡   r|   )Úprocesss    r   Úget_current_userr±   |  s>   € õ ÝŒÔ×0Ò0Ñ2Ô2µKÔ4Kñô €Gõ ˜w­
Ñ3Ô3Ð3r   c                 ó´  — | €t          ¦   «         } t          | t          ¦  «        s
J d¦   «         ‚t          ¦   «         }t	          ¦   «         }||_        d|_        t          j        j	         
                    t          j        |¦  «        t          j        ¦  «         t          j        j	                             t          j        |¦  «        | j        d¦  «         |S )z…
    Return a SECURITY_ATTRIBUTES structure with the SID set to the
    specified user (uses current user if none is specified).
    Nz user must be TOKEN_USER instancero   r   )r±   rZ   r|   r„   r‘   rš   r”   r   r
   r    ÚInitializeSecurityDescriptorr   rŽ   ÚSetSecurityDescriptorOwnerr}   )ÚuserÚSDÚSAs      r   Ú get_security_attributes_for_userr¸   †  sÃ   € ð
 €|ÝÑ!Ô!ˆå�d�JÑ'Ô'ÐKÐKÐ)KÑKÔKÐ'å	Ñ	Ô	€BÝ	Ñ	Ô	€Bð €B„MØ€BÔå
„MÔ×7Ò7ÝŒ�RÑÔÕ-Ô6ñô ð õ „MÔ×5Ò5ÝŒ�RÑÔ˜$œ( Añô ð ð €Ir   r,   )Hr<   ÚbuiltinsÚctypes.wintypesr   Úparamiko.utilr   r   r!   r   ÚGMEM_MOVEABLEr
   r   ÚGlobalAllocr   ÚUINTr]   Úargtypesrª   ÚrestypeÚ
GlobalLockÚHGLOBALÚLPVOIDÚGlobalUnlockr�   Ú
GlobalSizerM   ÚCreateFileMappingr€   r�   r	   rP   ri   r^   ÚHLOCALr   rD   ÚREAD_CONTROLÚSTANDARD_RIGHTS_REQUIREDÚSTANDARD_RIGHTS_READÚSTANDARD_RIGHTS_WRITEÚSTANDARD_RIGHTS_EXECUTEÚSTANDARD_RIGHTS_ALLÚPOLICY_VIEW_LOCAL_INFORMATIONÚPOLICY_VIEW_AUDIT_INFORMATIONÚPOLICY_GET_PRIVATE_INFORMATIONÚPOLICY_TRUST_ADMINÚPOLICY_CREATE_ACCOUNTÚPOLICY_CREATE_SECRETÚPOLICY_CREATE_PRIVILEGEÚPOLICY_SET_DEFAULT_QUOTA_LIMITSÚPOLICY_SET_AUDIT_REQUIREMENTSÚPOLICY_AUDIT_LOG_ADMINÚPOLICY_SERVER_ADMINÚPOLICY_LOOKUP_NAMESÚPOLICY_NOTIFICATIONÚPOLICY_ALL_ACCESSÚPOLICY_READÚPOLICY_WRITEÚPOLICY_EXECUTErv   ry   Ú	Structurer|   r„   r‘   r£   r    r´   r¡   r«   r±   r¸   r5   r   r   ú<module>rà      sÿ  ððð ð €€€Ø Ð Ð Ð à Ð Ð Ð Ð Ð ð!ð !ð !ðHMð Mð Mð Mð M�8Ô(ñ Mô Mð Mð4ð ð ð €àŒmÔ$Ô0€Ø”Ô+¨V¬_Ð<€Ô Ø”oÔ,€Ô àŒ]Ô#Ô.€
Ø”Ô.Ð0€
Ô Ø”_Ô+€
Ô àŒ}Ô%Ô2€ØœÔ0Ð2€Ô Ø”Ô+€Ô àŒ]Ô#Ô.€
Ø”Ô.Ð0€
Ô Ø”_€
Ô à”MÔ*Ô=Ð à
„OÔØ
„OØ
„OÔØ
„OÔØ
„OÔØ
„OÔðÐ Ô ð #œOÔ2Ð Ô à”Ô&Ô4€ØœÔ.€Ô à”-Ô(Ô8€Ø"œOÔ2Ð4€Ô à”Ô&Ô4€Ø œ/¨6¬?¸F¼OÐL€Ô à-3¬_Ô-CÐ,E€„Ô Ô  Ô )ð=9ð =9ð =9ð =9ð =9ñ =9ô =9ð =9ðH €Ø%Ð Ø#Ð Ø$Ð Ø&Ð Ø Ð ð !+Ð Ø *Ð Ø!+Ð ØÐ Ø"Ð Ø!Ð Ø$Ð Ø",Ð Ø *Ð Ø#Ð Ø Ð Ø Ð Ø Ð ð Ø#ñ$à#ñ$ð %ñ%ð ñ	ð
 ñð ñð ñð &ñ&ð $ñ	$ð ñ
ð ñð ñð ð$ Ø#ñ$à$ñ%ð ð Øñàñð ñð ñ	ð
 &ñ&ð $ñ$ð ñð ñð ð Ø#ñ$àñð ðð ð ð ð ñ ô ð ðð ð ð ð ñ ô ð ðð ð ð ð �Ô!ñ ô ð ðð ð ð ð ˜&Ô*ñ ô ð ð8<ð <ð <ð <ð <˜&Ô*ñ <ô <ð <ð< €F„NÐ&Ñ'Ô'Ø
„OØ
„OÔð>€„Ô Ô 1Ô :ðBð Bð Bð*ð ð ð4ð 4ð 4ðð ð ð ð ð r   