§
    eÉÝjà—  ã                  ó  — U d dl mZ g d¢Zd dlZd dlZd dlZd dlZd dlmZm	Z	 d dl
mZmZmZ d dlmZ d dlmZmZmZ d dlmZ d d	lmZ erd d
lmZ ej        dk    �rd dlZd dlZd dlmZ dZded<   dZ ded<   dZ!ded<   dZ"ded<   ee z  e!z  Z#ded<   dZ$ded<   dZ%ded<   dZ&ded<   dZ'ded<   dZ(ded<   dZ)ded <   dZ*ded!<   d"Z+ded#<   d$Z,ded%<   d&Z-ded'<   d(Z.ded)<   d*Z/ded+<   d,Z0ded-<   e,e-z  e/z  e0z  Z1ded.<   dZ2ded/<   dZ3ded0<   e,e3z  e0z  Z4ded1<   d&Z5ded2<   dZ6ded3<   d4Z7ded5<   d6Z8d7ed8<   dZ9ded9<    ej:        d:¦  «        j;        Z<d;ed<<   dZ=ded=<   d>Z>ded?<   d@Z?dedA<   dBZ@dedC<   dDZAdedE<   d ZBdedF<   dGZCdedH<   dIZDdedJ<   dKZEdedL<   dMZFdedN<   dOZGdedP<   dQZHdedR<   dSZIdedT<   dUZJdVedW<   dXZKdVedY<    ejL        dZ¦  «        ZMd[ed\<    ejL        d]d^¬_¦  «        ZNd[ed`<    ejL        dad^¬_¦  «        ZOd[edb<    G dc„ ddejP        ¦  «        ZQ G de„ dfejP        ¦  «        ZR G dg„ dhejP        ¦  «        ZS G di„ djejP        ¦  «        ZT G dk„ dlejP        ¦  «        ZU G dm„ dnejP        ¦  «        ZVejW        eMjX        _Y         ejZ        ej[        ¦  «        ej\         ejZ        eR¦  «         ejZ        eS¦  «         ejZ        ej]        ¦  «        ej^        ej^        ej^        ej^        ej:        ej^        geMjX        __        ejW        eMj`        _Y        eja         ejZ        eQ¦  «        ej:        ej:        geMj`        __        deMjb        _Y         ejZ        eQ¦  «        geMjb        __        ej^        eMjc        _Y        ejW        geMjc        __        ej[        geNjd        __        eje        eNjd        _Y        ej[         ejZ        eV¦  «        geNjf        __        eje        eNjf        _Y        ej[        ej\        ej\        ej\        ej\         ejZ        eU¦  «        geNjg        __        eje        eNjg        _Y        ej[        ej\        ej\        ej\         ejZ        eU¦  «        geNjh        __        eje        eNjh        _Y        eja        ej\         ejZ        ej:        ¦  «         ejZ        ej^        ¦  «        geOji        __        eje        eOji        _Y        eja        ejj        ej\         ejZ        ej:        ¦  «         ejZ        ej:        ¦  «         ejZ        ej:        ¦  «         ejZ        ej:        ¦  «         ejZ        ej:        ¦  «        geOjk        __        ej\        eOjk        _Y        ej[        ej\        eje         ejZ        ej[        ¦  «        geOjl        __        eje        eOjl        _Y        ej[        ej\         ejZ        ej[        ¦  «        geOjm        __        eje        eOjm        _Y        ej[        ejj        ej:        ej\         ejZ        ej\        ¦  «        geOjn        __        eje        eOjn        _Y        ej[        eNjo        _Y        ej[        eNjp        _Y        ej:        geNjq        __        ej:        eNjq        _Y        eja         ejZ        eT¦  «        geNjr        __        eje        eNjr        _Y        eja        ej\        ej\        ej:        ej\        ej\        ej[        geNjs        __        ej:        eNjs        _Y        d±ds„Ztd²du„Zu G dv„ dwe¦  «        ZveJdxœd³d„Zwd´d€„Zxd´d�„Zydµd‚„Zzd¶d…„Z{d·dˆ„Z|d¸dŠ„Z}d´d‹„Z~d´dŒ„Zd¹d�„Z€dºdŽ„Z�d»d’„Z‚ed¼d”„¦   «         Zƒe1fdd•œd½dœ„Z„dºd�„Z…d¾d „Z†d¿d¢„Z‡dÀd¤„ZˆdÁd¦„Z‰dµd§„ZŠedÂd©„¦   «         Z‹dÃdª„ZŒdÄd«„Z�edÅd­„¦   «         ZŽdÆd®„Z�n G d¯„ dwe¦  «        Zvg d°¢Z�dS )Çé    )Úannotations)zfilelock._utilÚmsvcrtÚstructN)ÚcontextmanagerÚsuppress)ÚENOENTÚENOTDIRÚEWOULDBLOCK)Úcache)ÚTYPE_CHECKINGÚFinalÚcast)ÚBaseFileLock)Úraise_on_not_writable_file)Ú	GeneratorÚwin32)Úwintypesl        z
Final[int]Ú_GENERIC_READi   @Ú_GENERIC_WRITEi   Ú_SYNCHRONIZEi   Ú_DELETEÚ_DESIRED_ACCESSé   Ú_FILE_SHARE_READ_WRITEé   Ú
_FILE_OPENÚ_FILE_OPEN_IFé€   Ú_FILE_READ_ATTRIBUTESé   Ú_FILE_SHARE_ALLÚ_FILE_ATTRIBUTE_READONLYÚ_FILE_ATTRIBUTE_NORMALi   Ú_FILE_ATTRIBUTE_REPARSE_POINTé    Ú_FILE_SYNCHRONOUS_IO_NONALERTé@   Ú_FILE_NON_DIRECTORY_FILEi   Ú_FILE_DELETE_ON_CLOSEé   Ú_FILE_COMPLETE_IF_OPLOCKEDi    Ú_FILE_OPEN_REPARSE_POINTÚ_CREATE_OPTIONSÚ_FILE_LIST_DIRECTORYÚ_FILE_DIRECTORY_FILEÚ_DIRECTORY_OPTIONSÚ_OBJ_CASE_INSENSITIVEÚ_OWNER_WRITEé?   Ú_GROUP_AND_OTHERSú'D:P(A;;FA;;;SY)(A;;FA;;;BA)(A;;FA;;;OW)z
Final[str]Ú_OWNER_ONLY_SDDLÚ_SDDL_REVISION_1éÿÿÿÿzFinal[int | None]Ú_INVALID_HANDLE_VALUEÚ_LOCKFILE_FAIL_IMMEDIATELYé   Ú_LOCKFILE_EXCLUSIVE_LOCKé   Ú_ERROR_ACCESS_DENIEDé!   Ú_ERROR_LOCK_VIOLATIONéž   Ú_ERROR_NOT_LOCKEDÚ_STATUS_SUCCESSi  Ú _STATUS_OPLOCK_BREAK_IN_PROGRESSl   "    Ú_STATUS_ACCESS_DENIEDl   4    Ú_STATUS_OBJECT_NAME_NOT_FOUNDl   :    Ú_STATUS_OBJECT_PATH_NOT_FOUNDl   C    Ú_STATUS_SHARING_VIOLATIONl   V    Ú_STATUS_DELETE_PENDINGéú   Ú_ACCESS_DENIED_PROBESg      à?zFinal[float]Ú_ACCESS_DENIED_GRACEgü©ñÒMb`?Ú_ACCESS_DENIED_RETRYÚntdllzFinal[ctypes.WinDLL]Ú_ntdllÚkernel32T)Úuse_last_errorÚ	_kernel32Úadvapi32Ú	_advapi32c                  óB   — e Zd Zdej        fdej        fdej        ffZdS )Ú_UNICODE_STRINGÚLengthÚMaximumLengthÚBufferN)Ú__name__Ú
__module__Ú__qualname__r   ÚUSHORTÚLPWSTRÚ_fields_© ó    úY/home/spazio/cosmos_universe_media/venv/lib/python3.11/site-packages/filelock/_windows.pyrV   rV   a   s3   € € € € € à�x”Ð'Ø˜hœoÐ.Ø�x”Ð'ð
ˆˆˆra   rV   c                  ó„   — e Zd Zdej        fdej        fd ej        e¦  «        fdej        fdej	        fdej	        ffZ
dS )Ú_OBJECT_ATTRIBUTESrW   ÚRootDirectoryÚ
ObjectNameÚ
AttributesÚSecurityDescriptorÚSecurityQualityOfServiceN)rZ   r[   r\   r   ÚULONGÚHANDLEÚctypesÚPOINTERrV   Úc_void_pr_   r`   ra   rb   rd   rd   h   s[   € € € € € à�x”~Ð&Ø˜hœoÐ.Ø˜>˜6œ>¨/Ñ:Ô:Ð;Ø˜8œ>Ð*Ø! 6¤?Ð3Ø'¨¬Ð9ð
ˆˆˆra   rd   c                  ó2   — e Zd Zdej        fdej        ffZdS )Ú_IO_STATUS_BLOCKÚStatusÚInformationN)rZ   r[   r\   rl   rn   r_   r`   ra   rb   rp   rp   r   s)   € € € € € à�v”Ð'Ø˜FœOÐ,ð
ˆˆˆra   rp   c                  óB   — e Zd Zdej        fdej        fdej        ffZdS )Ú_SECURITY_ATTRIBUTESÚnLengthÚlpSecurityDescriptorÚbInheritHandleN)	rZ   r[   r\   r   ÚDWORDrl   rn   ÚBOOLr_   r`   ra   rb   rt   rt   x   s3   € € € € € à˜œÐ'Ø# V¤_Ð5Ø˜xœ}Ð-ð
ˆˆˆra   rt   c                  ób   — e Zd Zdej        fdej        fdej        fdej        fdej        ffZdS )Ú_OVERLAPPEDÚInternalÚInternalHighÚOffsetÚ
OffsetHighÚhEventN)	rZ   r[   r\   rl   rn   r   rx   rk   r_   r`   ra   rb   r{   r{      sG   € € € € € à˜œÐ)Ø˜Vœ_Ð-Ø�x”~Ð&Ø˜8œ>Ð*Ø�x”Ð'ð
ˆˆˆra   r{   c                  ó²   — e Zd Zdej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fd	ej        fd
ej        ff
ZdS )Ú_BY_HANDLE_FILE_INFORMATIONÚdwFileAttributesÚftCreationTimeÚftLastAccessTimeÚftLastWriteTimeÚdwVolumeSerialNumberÚnFileSizeHighÚnFileSizeLowÚnNumberOfLinksÚnFileIndexHighÚnFileIndexLowN)rZ   r[   r\   r   rx   ÚFILETIMEr_   r`   ra   rb   r‚   r‚   ˆ   s|   € € € € € à ¤Ð0Ø˜xÔ0Ð1Ø Ô!2Ð3Ø Ô 1Ð2Ø# X¤^Ð4Ø˜hœnÐ-Ø˜Xœ^Ð,Ø˜xœ~Ð.Ø˜xœ~Ð.Ø˜hœnÐ-ð
ˆˆˆra   r‚   ÚfdÚintÚreturnÚboolc           
     ó.  — t          ¦   «         }t          t          z  }t                               t          j        | ¦  «        |dddt          j        |¦  «        ¦  «        rdS t          j	        ¦   «         }|t          k    rdS t          j        |¦  «        ‚)Nr   r   TF)r{   r<   r:   rR   Ú
LockFileExr   Úget_osfhandlerl   ÚbyrefÚget_last_errorr@   ÚWinError)rŽ   Ú
overlappedÚflagsÚerrs       rb   Ú_lock_fd_nonblockingr›   ù   s‚   € õ !‘]”]ˆ
Ý(Õ+EÑEˆÝ×Ò¥Ô 4°RÑ 8Ô 8¸%ÀÀAÀqÍ&Ì,ÐWaÑJbÔJbÑcÔcð 	Ø�4ÝÔ#Ñ%Ô%ˆØÕ'Ò'Ð'Ø�5åŒo˜cÑ"Ô"Ð"ra   ÚNonec           	     ó  — t          ¦   «         }t                               t          j        | ¦  «        dddt          j        |¦  «        ¦  «        s2t          j        ¦   «         x}t          k    rt          j	        |¦  «        ‚d S d S )Nr   r   )
r{   rR   ÚUnlockFileExr   r”   rl   r•   r–   rB   r—   )rŽ   r˜   rš   s      rb   Ú
_unlock_fdrŸ     sy   € Ý ‘]”]ˆ
å×&Ò&¥vÔ';¸BÑ'?Ô'?ÀÀAÀqÍ&Ì,ÐWaÑJbÔJbÑcÔcð	'åÔ-Ñ/Ô/Ð/�Õ4EÒEÐEå”/ #Ñ&Ô&Ð&ð		'ð 	'àEÐEra   c                  ó"   — e Zd ZdZdd„Zdd„ZdS )ÚWindowsFileLockay  
        Uses ``LockFileEx`` to hard lock a byte range of the lock file on Windows systems.

        Lock file cleanup: Windows attempts to delete the lock file after release, but deletion is
        not guaranteed in multi-threaded scenarios where another thread holds an open handle. The lock
        file may persist on disk, which does not affect lock correctness.
        r�   rœ   c                ó˜  — t          | j        ¦  «         	 t          | j        |                      ¦   «         ¦  «        }n# t          $ r Y d S w xY w|€d S 	 t          |¦  «        }|r|                      |¦  «         n7# t          $ r* |                      ¦   «          t          j
        |¦  «         ‚ w xY w|st          j
        |¦  «         d S d S ©N)r   Ú
_lock_pathÚ_open_non_reparse_fdÚ
_open_modeÚBlockingIOErrorr›   Ú_mark_descriptor_ownedÚBaseExceptionÚ_mark_descriptor_releasedÚosÚclose)ÚselfrŽ   Úlockeds      rb   Ú_acquirezWindowsFileLock._acquire  sñ   € Ý& t¤Ñ7Ô7Ð7ðÝ)¨$¬/¸4¿?º?Ñ;LÔ;LÑMÔM��øÝ"ð ð ð Ø��ðøøøàˆzØ�ðÝ-¨bÑ1Ô1�Øð 4Ø×/Ò/°Ñ3Ô3Ð3øøÝ ð ð ð à×.Ò.Ñ0Ô0Ð0Ý”˜‘”�Øð	øøøð
 ð Ý”˜‘”���ðð s   –'> ¾
AÁAÁ&A; Á;4B/c                óB  — t          d| j        j        ¦  «        }t          |¦  «         |                      ¦   «          |                      |d¬¦  «         | j        sCt          t          ¦  «        5  t          | j
        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S d S )Nr�   F)Údefault_suppresses)r   Ú_contextÚlock_file_fdrŸ   rª   Ú_close_released_fdÚ_preserve_lock_filer   ÚOSErrorÚunlink_without_oplock_waitr¤   )r­   rŽ   s     rb   Ú_releasezWindowsFileLock._release/  sü   € Ý�e˜Tœ]Ô7Ñ8Ô8ˆBõ �r‰NŒNˆNØ×*Ò*Ñ,Ô,Ð,Ø×#Ò# B¸5Ð#ÑAÔAÐAØÔ+ð @Ý�gÑ&Ô&ð @ð @Ý.¨t¬Ñ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ð @ð @ð@ð @s   Á0BÂBÂBN©r�   rœ   ©rZ   r[   r\   Ú__doc__r¯   r¸   r`   ra   rb   r¡   r¡     sL   € € € € € ð	ð 	ð	ð 	ð 	ð 	ð.
	@ð 
	@ð 
	@ð 
	@ð 
	@ð 
	@ra   r¡   )Úoplock_waitÚpathÚstrÚmoder¼   Úfloatú
int | Nonec               ó”  — t          j        d| dt          j        t          j        z  ¦  «         |t
          z   }|dz   }t          | ||¬¦  «        \  }}d}t          j        ¦   «         |z   }	 |t          k    r|t          k    rnZ|dz  }n%|t          k    rt          j        ¦   «         |k    rn1nn/t          j        t          ¦  «         t          | ||¬¦  «        \  }}Œq|t          k    rd}	t          t          |	| ¦  «        ‚|t           k    r"|t"          t$          hv rdS t'          || ¦  «        ‚t)          || t          j        ¦  «        S )	aœ
  
        Open *path* for locking while refusing reparse points, bound to the handle actually locked.

        The file is opened through ``NtCreateFile`` with ``FILE_OPEN_REPARSE_POINT`` so a symlink or junction planted
        at the path is not followed, and the reparse decision is read from *that* handle via
        ``GetFileInformationByHandle`` rather than from a prior pathname query. Reading the held handle closes the
        check-then-open race: an attacker cannot swap the path between validation and use because both act on the same
        handle. Share mode omits delete so a peer cannot unlink or rename the file out from under a live holder,
        matching ``os.open``'s ``_SH_DENYNO``.

        ``NtCreateFile`` is used instead of ``CreateFileW`` because its return value carries the raw ``NTSTATUS``.
        Windows collapses a transient delete-pending name and a permanent access denial into the same Win32
        ``ERROR_ACCESS_DENIED``; the status keeps them apart, so a real denial fails fast instead of spinning until the
        caller's timeout (#604).

        The reparse option only guards the final path component; Windows still follows reparse points in intermediate
        directories. This assumes the lock file sits in a lock directory untrusted users cannot modify. A path with
        attacker-controlled parent directories would need component-by-component handle validation.

        :param path: the lock file path.
        :param mode: the permission mode; as ``os.open`` does on Windows, a cleared owner-write bit creates the file
            read-only. A mode without group and other bits creates it with an owner-only DACL (discretionary access
            control list, the Windows permission list); any other mode has no Windows counterpart and leaves the file
            the entries its directory hands down. Both only take effect when the file is created, not when an existing
            one is opened.

        :param oplock_wait: seconds to wait for the holder of an oplock on the file to answer its break.

        :returns: a file descriptor owning the opened handle, or ``None`` on a sharing violation or a delete-pending
            name, which the caller should treat as contention and retry.

        :raises BlockingIOError: if an oplock break stays unanswered for *oplock_wait* seconds.
        :raises OSError: if the path resolves to a reparse point, or the open fails for any other reason, raised with
            the Win32 error the status maps to. An access denial is raised only once it outlasts a run of probes, since
            a peer unlinking the file as it releases can make the open answer ``STATUS_ACCESS_DENIED`` for a moment.

        ÚopenNr3   )Ú	read_onlyÚ
owner_onlyr   Tr   úoplock break in progress)ÚsysÚauditr«   ÚO_RDWRÚO_CREATr2   Ú_nt_openÚtimeÚ	monotonicrE   rK   rD   ÚsleeprM   r§   r
   rC   rH   rI   Ú_status_errorÚ_descriptor_for_non_reparse)
r½   r¿   r¼   rÄ   rÅ   ÚhandleÚstatusÚdenied_probesÚoplock_deadlineÚmsgs
             rb   r¥   r¥   ;  s_  € õN 	Œ	�&˜$ ¥b¤iµ"´*Ñ&<Ñ=Ô=Ð=Ø�|Ñ+Ð+ˆ	Ø ™Ð%ˆ
Ý! $°)È
ÐSÑSÔS‰ˆ�ØˆÝœ.Ñ*Ô*¨[Ñ8ˆð	XØÕ.Ò.Ð.Ø Õ$9Ò9Ð9ØØ Ñ"��ØÕ;Ò;Ð;Ý”>Ñ#Ô# Ò6Ð6Øð 7ð ÝŒJÕ+Ñ,Ô,Ð,Ý% d°iÈJÐWÑWÔW‰NˆF�Fð	Xð Õ5Ò5Ð5Ø,ˆCÝ!¥+¨s°DÑ9Ô9Ð9Ø•_Ò$Ð$ØÕ3Õ5KÐLÐLÐLØ�tÝ ¨Ñ-Ô-Ð-å*¨6°4½¼ÑCÔCÐCra   c                ó”   — t          j        d| dt          j        ¦  «         t	          | t
          t          z  t          j        ¦  «        S )aÇ  
        Open *path* read-only and return a descriptor, without waiting for an oplock holder to answer its break.

        ``os.open`` waits inside the system call until the holder of an oplock on the file answers or closes its handle,
        so no timeout or ``blocking=False`` ends the wait. A reparse point at *path* is refused rather than followed.

        :param path: the file to read.

        :returns: a read-only file descriptor.

        :raises BlockingIOError: if an oplock break is in progress, which callers treat as contention.
        :raises FileNotFoundError: if *path* does not exist.
        :raises OSError: if the open fails for any other reason, or *path* is a reparse point.

        rÃ   N)rÇ   rÈ   r«   ÚO_RDONLYÚ"_open_existing_without_oplock_waitr   r   ©r½   s    rb   Úopen_read_without_oplock_waitrÚ   ~  s7   € õ  	Œ	�&˜$ ¥b¤kÑ2Ô2Ð2Ý1°$½ÍÑ8TÕVXÔVaÑbÔbÐbra   c                ób   — t          | t          t          z  t          z  t          j        ¦  «        S )a  
        Open *path* with delete access and return a descriptor, without waiting for an oplock holder to answer.

        The open handle shares read, write and delete, so a rename of *path* can proceed while the caller keeps it.
        A holder that took an oplock through another handle is asked to answer by this open, which then raises, so the
        caller skips the rename instead of waiting for it.

        :param path: the file to rename.

        :returns: a file descriptor owning the handle; the caller closes it.

        :raises BlockingIOError: if an oplock break is in progress, which callers treat as contention.
        :raises FileNotFoundError: if *path* does not exist.
        :raises OSError: if the open fails for any other reason, or *path* is a reparse point.

        )rØ   r   r   r   r«   r×   rÙ   s    rb   Ú#open_for_delete_without_oplock_waitrÜ   ‘  s&   € õ" 2°$½ÕBWÑ8WÕZfÑ8fÕhjÔhsÑtÔtÐtra   c           	     ó8  — t          j        d| d¦  «         t          | t          t          z  t
          t          t          t          t          z  ¬¦  «        \  }}|t          k    rt                               |¦  «         dS |t          k    rt          || ¦  «        ‚dS )a  
        Delete *path* through a handle that does not wait for an oplock holder to answer its break.

        ``os.unlink`` waits like ``os.open`` does. Here an unanswered break leaves the file in place, which callers
        accept since deleting a lock file is best effort. A symlink at *path* is deleted as a link.

        :param path: the file to delete.

        :raises FileNotFoundError: if *path* does not exist.
        :raises OSError: if the open fails for any other reason, such as a sharing violation.

        z	os.removeN)Úoptions)rÇ   rÈ   Ú
_nt_creater   r   r#   r!   r   r-   r)   rC   rR   ÚCloseHandlerD   rÏ   ©r½   rÑ   rÒ   s      rb   r·   r·   ¤  s˜   € õ 	Œ	�+˜t TÑ*Ô*Ð*Ý#ØÝ•lÑ"Ý"ÝÝÝ#Õ&;Ñ;ð
ñ 
ô 
‰ˆ�ð •_Ò$Ð$Ý×!Ò! &Ñ)Ô)Ð)Ð)Ð)ØÕ7Ò7Ð7Ý ¨Ñ-Ô-Ð-ð 8Ð7ra   Úaccessr™   c                ó¤   — t          | |t          t          t          ¦  «        \  }}|t          k    rt          || ¦  «        ‚t          || |¦  «        S r£   )rß   r#   r!   r   rC   rÏ   rÐ   )r½   râ   r™   rÑ   rÒ   s        rb   rØ   rØ   ¿  sJ   € Ý# D¨&Õ2HÍ/Õ[eÑfÔf‰ˆ�Ø•_Ò$Ð$Ý ¨Ñ-Ô-Ð-Ý*¨6°4¸Ñ?Ô?Ð?ra   rÒ   r¶   c                ó^  — | t           k    rt          t          d|¦  «        S | t          t          hv r-t          t          t          j        t          ¦  «        |¦  «        S t           
                    | ¦  «        }t          d t          j        |¦  «                             ¦   «         ||¦  «        S )NrÆ   )rD   r§   r
   rF   rG   ÚFileNotFoundErrorr   r«   ÚstrerrorrO   ÚRtlNtStatusToDosErrorr¶   rl   ÚFormatErrorÚstrip)rÒ   r½   Úwinerrors      rb   rÏ   rÏ   Å  s�   € ØÕ5Ò5Ð5Ý"¥;Ð0JÈDÑQÔQÐQØÕ3Õ5RÐSÐSÐSÝ$¥V­R¬[½Ñ-@Ô-@À$ÑGÔGÐGÝ×/Ò/°Ñ7Ô7ˆÝ�t�VÔ/°Ñ9Ô9×?Ò?ÑAÔAÀ4ÈÑRÔRÐRra   rÑ   c                ó  — t          ¦   «         }t                               | t          j        |¦  «        ¦  «        sAt          j        ¦   «         }t                               | ¦  «         t          j        |¦  «        ‚|j        t          z  r.t                               | ¦  «         d|› �}t          |¦  «        ‚	 t          j        | |t          j        z  ¦  «        S # t          $ r t                               | ¦  «         ‚ w xY w)Nz1Lock file is a reparse point (symlink/junction): )r‚   rR   ÚGetFileInformationByHandlerl   r•   r–   rà   r—   rƒ   r$   r¶   r   Úopen_osfhandler«   ÚO_NOINHERITr©   )rÑ   r½   r™   Úinforš   rÕ   s         rb   rÐ   rÐ   Í  sð   € Ý*Ñ,Ô,ˆå×3Ò3°F½F¼LÈÑ<NÔ<NÑOÔOð 	'ÝÔ'Ñ)Ô)ˆCÝ×!Ò! &Ñ)Ô)Ð)Ý”/ #Ñ&Ô&Ð&ØÔ Õ#@Ñ@ð 	Ý×!Ò! &Ñ)Ô)Ð)ØLÀdÐLÐLˆCÝ˜#‘,”,Ðð	åÔ(¨°½¼Ñ1GÑHÔHÐHøÝð 	ð 	ð 	Ý×!Ò! &Ñ)Ô)Ð)Øð	øøøs   Â;!C Ã&Dc                ó   — t          j        d| dt          j        ¦  «         t	          | t
          t          z  dt          t          ¦  «        \  }}|t          k    rPt                               |¦  «        }t          dt          j        |¦  «                             ¦   «         | |¦  «        ‚	 t!          j        |t          j        t          j        z  ¦  «        S # t&          $ r t(                               |¦  «         ‚ w xY w)a§  
        Open *path* read-only without blocking a concurrent unlink and without following a reparse point.

        ``os.open`` omits ``FILE_SHARE_DELETE``, so while a process has a file open that way, a delete of it fails with
        a sharing violation. Every contender reads a strict claim and its owner unlinks it, so a reader that keeps the
        claim open past the owner's retries makes the release fail.
        rÃ   Nr   )rÇ   rÈ   r«   r×   rß   r   r   r!   r   rC   rO   rç   r¶   rl   rè   ré   r   rí   rî   r©   rR   rà   )r½   rÑ   rÒ   rê   s       rb   Ú_open_deletable_for_readingrñ   à  s×   € õ 	Œ	�&˜$ ¥b¤kÑ2Ô2Ð2Ý# D­-½,Ñ*FÈÍ?Õ\fÑgÔg‰ˆ�Ø•_Ò$Ð$Ý×3Ò3°FÑ;Ô;ˆHÝ˜$¥Ô 2°8Ñ <Ô <× BÒ BÑ DÔ DÀdÈHÑUÔUÐUð	ÝÔ(¨µ´½r¼~Ñ1MÑNÔNÐNøÝð 	ð 	ð 	Ý×!Ò! &Ñ)Ô)Ð)Øð	øøøs   Â++C Ã&C=c                óî  — t          j        d| dt          j        ¦  «         t          t
          z  t          z  }t          | |dt          t          t          ¦  «        \  }}|t          k    rPt                               |¦  «        }t          dt          j        |¦  «                             ¦   «         | |¦  «        ‚t%          ¦   «         }t&                               |t          j        |¦  «        ¦  «        sAt          j        ¦   «         }t&                               |¦  «         t          j        |¦  «        ‚|j        t4          z  r0t&                               |¦  «         t7          t8          d| ¦  «        ‚|S )aý  
        Open the directory at *path* so that no process can rename or remove it until :func:`_unpin_directory`.

        Windows has no ``dir_fd``, so an operation resolves every path component by name again. A handle on each
        directory of a record path, opened without following a reparse point, keeps that name bound to the directory
        checked here until the operation ends.

        :raises NotADirectoryError: when *path* is a junction, a symlink or anything other than a directory.
        rÃ   Nr   z)is a junction or symlink, not a directory)rÇ   rÈ   r«   r×   r.   r   r   rß   r   r   r0   rC   rO   rç   r¶   rl   rè   ré   r‚   rR   rì   r•   r–   rà   r—   rƒ   r$   ÚNotADirectoryErrorr	   )r½   râ   rÑ   rÒ   rê   rï   Úerrors          rb   Ú_pin_directoryrõ   ó  s0  € õ 	Œ	�&˜$ ¥b¤kÑ2Ô2Ð2å%Õ(=Ñ=ÅÑLˆÝ# D¨&°!Õ5KÍZÕYkÑlÔl‰ˆ�Ø•_Ò$Ð$Ý×3Ò3°FÑ;Ô;ˆHÝ˜$¥Ô 2°8Ñ <Ô <× BÒ BÑ DÔ DÀdÈHÑUÔUÐUÝ*Ñ,Ô,ˆå×3Ò3°F½F¼LÈÑ<NÔ<NÑOÔOð 	)ÝÔ)Ñ+Ô+ˆEÝ×!Ò! &Ñ)Ô)Ð)Ý”/ %Ñ(Ô(Ð(ØÔ Õ#@Ñ@ð 	aÝ×!Ò! &Ñ)Ô)Ð)Ý$¥WÐ.YÐ[_Ñ`Ô`Ð`Øˆra   c                ó:   — t                                | ¦  «         d S r£   )rR   rà   )rÑ   s    rb   Ú_unpin_directoryr÷     s   € Ý×Ò˜fÑ%Ô%Ð%Ð%Ð%ra   c                ó´   — t          | t          t          z  dt          t          ¦  «        \  }}|rt
                               |¦  «         |t          t          hv S )a¾  
        Report whether *path* is gone or pending deletion, which ``os.open`` reports as the same EACCES as a denial.

        NTFS keeps an unlinked name listed, refusing every open with ``STATUS_DELETE_PENDING``, until the last handle
        to the file closes. Another process holding such a handle, such as an antivirus scan, can keep it that way for
        longer than any retry grace, yet the name's owner has already removed it.
        r   )	rß   r   r   r!   r   rR   rà   rF   rI   rá   s      rb   Ú_is_unlinkedrù     sT   € õ $ DÕ*?Å,Ñ*NÐPQÕSbÕdnÑoÔo‰ˆ�Øð 	*Ý×!Ò! &Ñ)Ô)Ð)ØÕ7Õ9OÐPÐPÐPra   rÄ   rÅ   útuple[int, int]c               óŽ   — |rt           nt          }|rt          ¦   «         nd}t          | t          |t
          t          |¬¦  «        S )zÞ
        Open or create *path* for locking through ``NtCreateFile`` and return ``(handle, status)``.

        Without *owner_only* a file this call creates gets no DACL of its own and inherits its directory's ACL.
        N©Ú
descriptor)r"   r#   Ú_owner_only_descriptorrß   r   r   r   )r½   rÄ   rÅ   Ú
attributesrý   s        rb   rË   rË     sQ   € ð 2;ÐVÕ-Ð-Õ@Vˆ
Ø1;ÐEÕ+Ñ-Ô-Ð-Àˆ
ÝØ•/ :Õ/EÅ}Ðakð
ñ 
ô 
ð 	
ra   úctypes.c_void_pc                 óÔ   — t          j        ¦   «         } t                               ddt          j        | ¦  «        d ¦  «        s%t          j        t          j        ¦   «         ¦  «        ‚| S )Nr5   r   )rl   rn   rT   Ú4ConvertStringSecurityDescriptorToSecurityDescriptorWr•   r—   r–   rü   s    rb   rþ   rþ   +  s^   € õ
 ”_Ñ&Ô&ˆ
Ý×MÒMØ5°q½&¼,ÀzÑ:RÔ:RÐTXñ
ô 
ð 	;õ ”/¥&Ô"7Ñ"9Ô"9Ñ:Ô:Ð:ØÐra   rü   rÿ   ÚshareÚdispositionrÞ   rý   úctypes.c_void_p | Nonec               óˆ  — t          ¦   «         }t                               | t          j        |¦  «        dd¦  «        dz  }|t
          k    rd|fS 	 t          ¦   «         }	t          j        t          ¦  «        |	_        t          j	        |¦  «        |	_
        t          |	_        ||	_        t          j        ¦   «         }
t!          ¦   «         }t                               t          j        |
¦  «        |t          j        |	¦  «        t          j        |¦  «        d||||dd¦  «        dz  }t                               t          j        |¦  «        ¦  «         n1# t                               t          j        |¦  «        ¦  «         w xY w|t&          k    rt(                               |
¦  «         |t
          k    rd|fS |
j        pd|fS )a/  
        Open *path* through ``NtCreateFile`` and return ``(handle, status)``.

        ``RtlDosPathNameToNtPathName_U_WithStatus`` translates the Win32 path to the NT namespace, handling relative,
        drive, UNC and extended-length path forms as Win32 itself would, and allocates a buffer that
        ``RtlFreeUnicodeString`` releases. The handle is ``0`` unless the status is ``STATUS_SUCCESS``: one that comes
        with ``STATUS_OPLOCK_BREAK_IN_PROGRESS`` is closed here, since the file is not ours until the oplock holder
        answers.
        Nl   ÿÿ r   )rV   rO   Ú'RtlDosPathNameToNtPathName_U_WithStatusrl   r•   rC   rd   ÚsizeofrW   Úpointerrf   r1   rg   rh   r   rk   rp   ÚNtCreateFileÚRtlFreeUnicodeStringrD   rR   rà   Úvalue)r½   râ   rÿ   r  r  rÞ   rý   Únt_namerÒ   Úobject_attributesrÑ   Ú	io_statuss               rb   rß   rß   7  s¢  € õ& "Ñ#Ô#ˆÝ×?Ò?ÀÅfÄlÐSZÑF[ÔF[Ð]aÐcgÑhÔhÐkuÑuˆØ•_Ò$Ð$Ø�f�9Ðð	?Ý 2Ñ 4Ô 4ÐÝ'-¤}Õ5GÑ'HÔ'HÐÔ$Ý+1¬>¸'Ñ+BÔ+BÐÔ(Ý+@ÐÔ(Ø3=ÐÔ0Ý”_Ñ&Ô&ˆFÝ(Ñ*Ô*ˆIå×#Ò#Ý”L Ñ(Ô(ØÝ”LÐ!2Ñ3Ô3Ý”L Ñ+Ô+ØØØØØØØñô ð ñð õ" ×'Ò'­¬°WÑ(=Ô(=Ñ>Ô>Ð>Ð>ø�F×'Ò'­¬°WÑ(=Ô(=Ñ>Ô>Ð>Ð>øøøØÕ5Ò5Ð5Ý×!Ò! &Ñ)Ô)Ð)Ø•_Ò$Ð$Ø�f�9ÐØŒ|Ð ˜q &Ð(Ð(s   ÁCE Å.Fc                óô  — t          j        ¦   «         t          j        ¦   «         t          j        ¦   «         }}}t                               | ddt          j        |¦  «        dt          j        |¦  «        dt          j        |¦  «        ¦  «        }|t
          k    rdS |rt          j        |¦  «        ‚	 d„ dD ¦   «         }|                     t          ¦   «         ¦  «         t          |j
        ¦  «        oIt          t          d|j
        ¦  «        ¦  «        |v o%t          t          d|j
        ¦  «        ¦  «        |k    	 t                               |¦  «         S # t                               |¦  «         w xY w)aM  
        Report whether only the current user, ``SYSTEM`` and ``Administrators`` can create or remove names in *path*.

        A directory whose owner is anyone else can have its ACL rewritten by that owner. Entries that only a child
        inherits count too, since the DACL says nothing more precise about who may write.
        r   r=   NFc                ó,   — h | ]}t          |¦  «        ’ŒS r`   )Ú_sid_from_text)Ú.0Útexts     rb   ú	<setcomp>z(_directory_is_private.<locals>.<setcomp>‡  s    € ÐkÐkÐk°•~ dÑ+Ô+ÐkÐkÐkra   )zS-1-5-18zS-1-5-32-544zS-1-3-0zS-1-3-4r�   )rl   rn   rT   ÚGetNamedSecurityInfoWr•   r>   r—   ÚaddÚ	_user_sidr‘   r  Ú_sid_atr   Ú_name_writersrR   Ú	LocalFree)r½   ÚownerÚdaclrý   rô   Útrusteds         rb   Ú_directory_is_privater  n  sY  € õ #)¤/Ñ"3Ô"3µV´_Ñ5FÔ5FÍÌÑHYÔHY�ZˆtˆÝ×/Ò/ØØØÝŒL˜ÑÔØÝŒL˜ÑÔØÝŒL˜Ñ$Ô$ñ	
ô 	
ˆð Õ(Ò(Ð(à�5Øð 	)Ý”/ %Ñ(Ô(Ð(ð	,àkÐkÐ8jÐkÑkÔkˆGØ�KŠK�	™œÑ$Ô$Ð$õ �T”ZÑ Ô ð FÝ�D ¨¬Ñ4Ô4Ñ5Ô5¸Ð@ðFå!¥$ u¨d¬jÑ"9Ô"9Ñ:Ô:¸gÒEðõ ×Ò 
Ñ+Ô+Ð+Ð+ø�I×Ò 
Ñ+Ô+Ð+Ð+øøøs   Â5B
E ÅE7r  ú
set[bytes]c                ój  — t          j        dt          j        | d¦  «        ¦  «        \  }t	          ¦   «         }d}t          |¦  «        D ]h}t          j        dt          j        | |z   d¦  «        ¦  «        \  }}}}|dv r-|dz  r(|                     t          | |z   dz   ¦  «        ¦  «         ||z  }Œi|S )Nz<4xH2xé   z<BBHI>   r   é	   iF P)r   Úunpackrl   Ú	string_atÚsetÚranger  r  )	r  ÚcountÚwritersÚoffsetÚ_Úace_typeÚ_flagsÚace_sizeÚmasks	            rb   r  r  ’  sÀ   € Ý”= ­6Ô+;¸DÀ!Ñ+DÔ+DÑEÔE‰ˆÝ‘%”%ˆØˆÝ�u‘”ð 	ð 	ˆAÝ/5¬}¸WÅfÔFVÐW[Ð^dÑWdÐfgÑFhÔFhÑ/iÔ/iÑ,ˆH�f˜h¨ð ˜6Ð!Ð! dÐ.lÑ&mÐ!Ø—’�G D¨6¡M°AÑ$5Ñ6Ô6Ñ7Ô7Ð7Ø�hÑˆFˆFØˆra   Úbytesc            	     óä  — t          j        ¦   «         } d}d}t                               t                               ¦   «         ||t          j        | ¦  «        ¦  «        sjt                               t           	                    ¦   «         |t          j        | ¦  «        ¦  «        s%t          j
        t          j        ¦   «         ¦  «        ‚	 t          j        ¦   «         }t                               | dd dt          j        |¦  «        ¦  «         t          j        |j        ¦  «        }t                               | d||t          j        |¦  «        ¦  «        s%t          j
        t          j        ¦   «         ¦  «        ‚t!          t#          dt          j                             |¦  «        j        ¦  «        ¦  «        t                               | ¦  «         S # t                               | ¦  «         w xY w)Nr"  Tr   r   r�   )r   rk   rT   ÚOpenThreadTokenrR   ÚGetCurrentThreadrl   r•   ÚOpenProcessTokenÚGetCurrentProcessr—   r–   rx   ÚGetTokenInformationÚcreate_string_bufferr  r  r   rn   Úfrom_bufferrà   )ÚtokenÚtoken_queryÚopen_as_selfÚsizeÚbuffers        rb   r  r     sŠ  € Ý”Ñ!Ô!ˆØ#ˆØ"ˆõ ×%Ò%¥i×&@Ò&@Ñ&BÔ&BÀKÐQ]Õ_eÔ_kÐlqÑ_rÔ_rÑsÔsð	;å×)Ò)­)×*EÒ*EÑ*GÔ*GÈÕV\ÔVbÐchÑViÔViÑjÔjð	;õ ”/¥&Ô"7Ñ"9Ô"9Ñ:Ô:Ð:ð
	)Ý”>Ñ#Ô#ˆDÝ×)Ò)¨%°°D¸!½V¼\È$Ñ=OÔ=OÑPÔPÐPÝÔ0°´Ñ<Ô<ˆFÝ×0Ò0Ø�q˜& $­¬°TÑ(:Ô(:ñô ð ?õ ”o¥fÔ&;Ñ&=Ô&=Ñ>Ô>Ð>Ý�4 ¥v¤×'BÒ'BÀ6Ñ'JÔ'JÔ'PÑQÔQÑRÔRå×!Ò! %Ñ(Ô(Ð(Ð(ø�I×!Ò! %Ñ(Ô(Ð(Ð(øøøs   Ã	C/G ÇG/r  c                ó(  — d„ |                       d¦  «                             d¦  «        D ¦   «         ^}}}t          j        d|t	          |¦  «        ¦  «        |                     dd¦  «        z   t          j        dt	          |¦  «        › d�g|¢R Ž z   S )	Nc              3  ó4   K  — | ]}t          |¦  «        V — Œd S r£   )r�   )r  Úparts     rb   ú	<genexpr>z!_sid_from_text.<locals>.<genexpr>·  s(   è è € Ð/iÐ/i¸dµ°D±	´	Ð/iÐ/iÐ/iÐ/iÐ/iÐ/ira   zS-Ú-z<BBé   ÚbigÚ<ÚI)ÚremoveprefixÚsplitr   ÚpackÚlenÚto_bytes)r  ÚrevisionÚ	authorityÚsubauthoritiess       rb   r  r  ¶  sŸ   € Ø/iÐ/iÀd×FWÒFWÐX\ÑF]ÔF]×FcÒFcÐdgÑFhÔFhÐ/iÑ/iÔ/iÐ,ˆ�)˜nåŒK˜˜x­¨^Ñ)<Ô)<Ñ=Ô=Ø× Ò   EÑ*Ô*ñ+åŒkÐ4�c .Ñ1Ô1Ð4Ð4Ð4ÐF°~ÐFÐFÐFñGð	
ra   Úaddressc           	     óp   — t          j        | ddt          j        | dz   d¦  «        d         z  z   ¦  «        S )Nr"  é   r   r   )rl   r%  )rO  s    rb   r  r  ¾  s6   € ÝÔ ¨¨QµÔ1AÀ'ÈAÁ+ÈqÑ1QÔ1QÐRSÔ1TÑ-TÑ)TÑUÔUÐUra   c                ó  — t          t          j        t           ¦  «        t          ¦   «         d¬¦  «        }t                               | t          j        |¦  «        ¦  «        s%t          j        t          j        ¦   «         ¦  «        ‚dS )zWCreate *path* with the owner-only descriptor, so that nobody else can add a name to it.F)ru   rv   rw   N)	rt   rl   r  rþ   rR   ÚCreateDirectoryWr•   r—   r–   )r½   rÿ   s     rb   Ú_make_private_directoryrT  Á  sw   € å)Ý”MÕ"6Ñ7Ô7Ý!7Ñ!9Ô!9Ø ð
ñ 
ô 
ˆ
õ
 ×)Ò)¨$µ´¸ZÑ0HÔ0HÑIÔIð 	;Ý”/¥&Ô"7Ñ"9Ô"9Ñ:Ô:Ð:ð	;ð 	;ra   úGenerator[tuple[int, int]]c              #  óˆ   K  — t          | t          ¦  «        5 }t          |¦  «        V — ddd¦  «         dS # 1 swxY w Y   dS )z\Hold *path* open without delete sharing, which keeps its name from being renamed or removed.N)Ú_openedr   Ú_identity_of©r½   rÑ   s     rb   Ú_pinnedrZ  Ë  sŽ   è è € õ �TÕ1Ñ2Ô2ð 	'°fÝ˜vÑ&Ô&Ð&Ð&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	'ð 	's   ˜7·;¾;c                ó~   — t          | t          ¦  «        5 }t          |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r£   )rW  r!   rX  rY  s     rb   Ú_identity_atr\  Ñ  s~   € Ý�T�?Ñ+Ô+ð 	(¨vÝ Ñ'Ô'ð	(ð 	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s   –2²6¹6c                óD   — t          t          j        | ¦  «        ¦  «        S r£   )rX  r   r”   )rŽ   s    rb   Ú_identity_of_fdr^  Õ  s   € Ý�FÔ0°Ñ4Ô4Ñ5Ô5Ð5ra   úGenerator[int]c           	   #  óL  K  — t                                | t          |d ddd ¦  «        }|d t          hv r%t	          j        t	          j        ¦   «         ¦  «        ‚	 t          d|¦  «        V — t                                |¦  «         d S # t                                |¦  «         w xY w)Nr   i   r�   )	rR   ÚCreateFileWr   r9   rl   r—   r–   r   rà   )r½   r  rÑ   s      rb   rW  rW  Ø  s­   è è € õ ×&Ò&ØÝ!ØØØØ#Øñ
ô 
ˆð �dÕ1Ð2Ð2Ð2Ý”/¥&Ô"7Ñ"9Ô"9Ñ:Ô:Ð:ð	*Ý�u˜fÑ%Ô%Ð%Ð%Ð%å×!Ò! &Ñ)Ô)Ð)Ð)Ð)ø�I×!Ò! &Ñ)Ô)Ð)Ð)øøøs   ÁB ÂB#c                óô   — t          ¦   «         }t                               | t          j        |¦  «        ¦  «        s%t          j        t          j        ¦   «         ¦  «        ‚|j        |j        dz  |j	        z  fS )Nr%   )
r‚   rR   rì   rl   r•   r—   r–   r‡   r‹   rŒ   )rÑ   rï   s     rb   rX  rX  ë  sf   € Ý*Ñ,Ô,ˆÝ×3Ò3°F½F¼LÈÑ<NÔ<NÑOÔOð 	;Ý”/¥&Ô"7Ñ"9Ô"9Ñ:Ô:Ð:ØÔ(¨$Ô*=ÀÑ*CÀdÔFXÑ*XÐXÐXra   c                  ó"   — e Zd ZdZdd„Zdd„ZdS )r¡   zRUses ``LockFileEx`` to hard lock a byte range of the lock file on Windows systems.r�   rœ   c                ó   — t           ‚r£   ©ÚNotImplementedError©r­   s    rb   r¯   zWindowsFileLock._acquireö  ó   € Ý%Ð%ra   c                ó   — t           ‚r£   re  rg  s    rb   r¸   zWindowsFileLock._releaseù  rh  ra   Nr¹   rº   r`   ra   rb   r¡   r¡   ó  sB   € € € € € Ø`Ð`ð	&ð 	&ð 	&ð 	&ð	&ð 	&ð 	&ð 	&ð 	&ð 	&ra   )r¡   r  r\  r^  rù   rT  rñ   r¥   rõ   rZ  r÷   rÜ   rÚ   r·   )rŽ   r�   r�   r‘   )rŽ   r�   r�   rœ   )r½   r¾   r¿   r�   r¼   rÀ   r�   rÁ   )r½   r¾   r�   r�   )r½   r¾   r�   rœ   )r½   r¾   râ   r�   r™   r�   r�   r�   )rÒ   r�   r½   r¾   r�   r¶   )rÑ   r�   r½   r¾   r™   r�   r�   r�   )rÑ   r�   r�   rœ   )r½   r¾   r�   r‘   )r½   r¾   rÄ   r‘   rÅ   r‘   r�   rú   )r�   r   )r½   r¾   râ   r�   rÿ   r�   r  r�   r  r�   rÞ   r�   rý   r  r�   rú   )r  r�   r�   r   )r�   r0  )r  r¾   r�   r0  )rO  r�   r�   r0  )r½   r¾   r�   rU  )r½   r¾   r�   rú   )rŽ   r�   r�   rú   )r½   r¾   r  r�   r�   r_  )rÑ   r�   r�   rú   )‘Ú
__future__r   Ú__lazy_modules__r«   r   rÇ   rÌ   Ú
contextlibr   r   Úerrnor   r	   r
   Ú	functoolsr   Útypingr   r   r   Úfilelock._apir   Úfilelock._utilr   Úcollections.abcr   Úplatformrl   r   r   r   Ú__annotations__r   r   r   r   r   r   r   r   r!   r"   r#   r$   r&   r(   r)   r+   r,   r-   r.   r/   r0   r1   r2   r4   r6   r7   rn   r  r9   r:   r<   r>   r@   rB   rC   rD   rE   rF   rG   rH   rI   rK   rL   rM   ÚWinDLLrO   rR   rT   Ú	StructurerV   rd   rp   rt   r{   r‚   ÚLONGr
  Úrestyperm   rk   rx   Ú
c_longlongrj   Úargtypesr  ÚLPCWSTRr  rç   rà   ry   rì   r“   rž   r  Úc_intr  r2  r4  r6  r5  r3  r  rS  ra  r›   rŸ   r¡   r¥   rÚ   rÜ   r·   rØ   rÏ   rÐ   rñ   rõ   r÷   rù   rË   rþ   rß   r  r  r  r  r  rT  rZ  r\  r^  rW  rX  Ú__all__r`   ra   rb   ú<module>r~     sß  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à9Ð9Ð9Ð à 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -à &Ð &Ð &Ð &Ð &Ð &Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5àð *Ø)Ð)Ð)Ð)Ð)Ð)à„<�7ÒÑØ€M€M€MØ€M€M€MØÐÐÐÐÐà *€MÐ*Ð*Ð*Ñ*Ø!+€NÐ+Ð+Ð+Ñ+Ø)€LÐ)Ð)Ð)Ñ)Ø$€GÐ$Ð$Ð$Ñ$Ø"/°.Ñ"@À<Ñ"O€OÐOÐOÐOÑOàð ð ð ð ñ ð €JÐÐÐÑØ !€MÐ!Ð!Ð!Ñ!à(2ÐÐ2Ð2Ð2Ñ2Ø"F€OÐFÐFÐFÑFØ+5ÐÐ5Ð5Ð5Ñ5Ø)3ÐÐ3Ð3Ð3Ñ3Ø0:Ð!Ð:Ð:Ð:Ñ:ð 1;Ð!Ð:Ð:Ð:Ñ:Ø+5ÐÐ5Ð5Ð5Ñ5Ø(2ÐÐ2Ð2Ð2Ñ2Ø-7ÐÐ7Ð7Ð7Ñ7Ø+5ÐÐ5Ð5Ð5Ñ5à%Ð(@Ñ@ÐC]Ñ]Ð`xÑxð ð ð ð ñ ð
 (2ÐÐ1Ð1Ð1Ñ1Ø'1ÐÐ1Ð1Ð1Ñ1Ø%BÐEYÑ%YÐ\tÑ%tÐÐtÐtÐtÑtØ(2ÐÐ2Ð2Ð2Ñ2Ø$€LÐ$Ð$Ð$Ñ$Ø$)ÐÐ)Ð)Ð)Ñ)ð $MÐÐLÐLÐLÑLØ#$ÐÐ$Ð$Ð$Ñ$Ø/>¨v¬¸rÑ/BÔ/BÔ/HÐÐHÐHÐHÑHð .8ÐÐ7Ð7Ð7Ñ7Ø+5ÐÐ5Ð5Ð5Ñ5Ø'(ÐÐ(Ð(Ð(Ñ(Ø(*ÐÐ*Ð*Ð*Ñ*Ø$'ÐÐ'Ð'Ð'Ñ'ð
 #-€OÐ,Ð,Ð,Ñ,à3=Ð$Ð=Ð=Ð=Ñ=Ø(2ÐÐ2Ð2Ð2Ñ2Ø0:Ð!Ð:Ð:Ð:Ñ:Ø0:Ð!Ð:Ð:Ð:Ñ:Ø,6ÐÐ6Ð6Ð6Ñ6Ø)3ÐÐ3Ð3Ð3Ñ3ð ),ÐÐ+Ð+Ð+Ñ+Ø),ÐÐ,Ð,Ð,Ñ,Ø).ÐÐ.Ð.Ð.Ñ.à#0 6¤=°Ñ#9Ô#9€FÐ9Ð9Ð9Ñ9Ø&3 f¤m°JÈtÐ&TÑ&TÔ&T€IÐTÐTÐTÑTØ&3 f¤m°JÈtÐ&TÑ&TÔ&T€IÐTÐTÐTÑTð
ð 
ð 
ð 
ð 
˜&Ô*ñ 
ô 
ð 
ð
ð 
ð 
ð 
ð 
˜VÔ-ñ 
ô 
ð 
ð
ð 
ð 
ð 
ð 
˜6Ô+ñ 
ô 
ð 
ð
ð 
ð 
ð 
ð 
˜vÔ/ñ 
ô 
ð 
ð
ð 
ð 
ð 
ð 
�fÔ&ñ 
ô 
ð 
ð
ð 
ð 
ð 
ð 
 fÔ&6ñ 
ô 
ð 
ð #+¤-€FÔÔàˆŒ�x”Ñ'Ô'ØŒØˆŒÐ)Ñ*Ô*ØˆŒÐ'Ñ(Ô(ØˆŒ�vÔ(Ñ)Ô)ØŒØŒØŒØŒØŒØŒð$€FÔÔ ð >F¼]€FÔ2Ô:àÔØˆŒ�Ñ'Ô'ØŒØŒð	?€FÔ2Ô;ð +/€FÔÔ'Ø,:¨F¬N¸?Ñ,KÔ,KÐ+L€FÔÔ(Ø+3¬>€FÔ Ô(Ø-5¬]¨O€FÔ Ô)à&.¤oÐ%6€IÔÔ"Ø$,¤M€IÔÔ!Ø5=´_ÀnÀfÄnÐUpÑFqÔFqÐ4r€IÔ(Ô1Ø3;´=€IÔ(Ô0àŒØŒØŒØŒØŒØˆŒ�{Ñ#Ô#ð%€IÔÔ!ð $,¤=€IÔÔ àŒØŒØŒØŒØˆŒ�{Ñ#Ô#ð'€IÔÔ#ð &.¤]€IÔÔ"àÔØŒØˆŒ�v”Ñ'Ô'ØˆŒ�x”~Ñ&Ô&ð	O€IÔBÔKð NVÌ]€IÔBÔJàÔØŒØŒØˆŒ�v”Ñ'Ô'ØˆŒ�v”Ñ'Ô'ØˆŒ�v”Ñ'Ô'ØˆŒ�v”Ñ'Ô'ØˆŒ�v”Ñ'Ô'ð	0€IÔ#Ô,ð /7¬n€IÔ#Ô+àŒØŒØŒØˆŒ�x”Ñ'Ô'ð	*€IÔÔ&ð )1¬€IÔÔ%Ø+3¬?¸H¼NÈNÈFÌNÐ[cÔ[jÑLkÔLkÐ*l€IÔÔ'Ø)1¬€IÔÔ&àŒØŒØŒØŒØˆŒ�x”~Ñ&Ô&ð.€IÔ!Ô*ð -5¬M€IÔ!Ô)Ø*2¬/€IÔÔ'Ø)1¬€IÔÔ&Ø$*¤OÐ#4€IÔÔ Ø"(¤/€IÔÔØ+3Ô+;¸^¸V¼^ÐL`Ñ=aÔ=aÐ*b€IÔÔ'Ø)1¬€IÔÔ&àÔØŒØŒØŒØŒØŒØŒð&€IÔÔ"ð %+¤O€IÔÔ!ð#ð #ð #ð #ð'ð 'ð 'ð 'ð*@ð *@ð *@ð *@ð *@˜,ñ *@ô *@ð *@ðX L`ð ADð ADð ADð ADð ADð ADðFcð cð cð cð&uð uð uð uð&.ð .ð .ð .ð6@ð @ð @ð @ðSð Sð Sð Sðð ð ð ð&ð ð ð ð&ð ð ð ð8&ð &ð &ð &ðQð Qð Qð Qð

ð 

ð 

ð 

ð ð	ð 	ð 	ñ „Uð	ð" 'ð5)ð .2ð5)ð 5)ð 5)ð 5)ð 5)ð 5)ðn",ð ",ð ",ð ",ðHð ð ð ð)ð )ð )ð )ð,
ð 
ð 
ð 
ðVð Vð Vð Vð;ð ;ð ;ð ;ð ð'ð 'ð 'ñ „^ð'ð
(ð (ð (ð (ð6ð 6ð 6ð 6ð ð*ð *ð *ñ „^ð*ð$Yð Yð Yð Yð Yð&ð &ð &ð &ð &˜,ñ &ô &ð &ðð ð €€€ra   