� !A?hm� �8�dZdZdZdZdZdZdZdZdZd Z d Z d �Z d �Z d Z dZdZdZdZdZdZdZdZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z dZ!dZ"e"Z#d Z$d!Z%d"Z&d#Z'd$Z(d!Z)d"Z*d#Z+d%Z,d&Z-d'Z.d Z/dZ0dZ1dZ2dZ3dZ4dZ5dZ6d Z7d'Z8d&Z9dZ:d(Z;d)Zd,Z?ed-fed.fed/fed0fe d1fed2fed3ffe)d4ffe*d5ffe+e!zd.fe!d6fe+d7ffe-d4ffe.d5ffe/e"zd.fe"d6fe/d7ffe1d4ffe2d5ffe3e$zd8fe$d9fe3d7fff Z@d:�ZAd&ZBdZCd#ZDd'ZEd ZFdZGdZHd"ZIdZJd)ZKdZLdZMdZNd ZOdZPd!ZQd(ZR dd;lSTdrrc�2�t|��tkS)z0Return True if mode is from a FIFO (named pipe).)r�S_IFIFOrs r�S_ISFIFOr$Brrc�2�t|��tkS)z,Return True if mode is from a symbolic link.)r�S_IFLNKrs r�S_ISLNKr'Frrc�2�t|��tkS)z%Return True if mode is from a socket.)r�S_IFSOCKrs r�S_ISSOCKr*Js�� �$�<�<�8� #�#rc��dS)z#Return True if mode is from a door.Fr rs r�S_ISDOORr,N��� �5rc��dS)z*Return True if mode is from an event port.Fr rs r�S_ISPORTr/Rr-rc��dS)z'Return True if mode is from a whiteout.Fr rs r�S_ISWHTr1Vr-riii���@i��8� �iiiii �l�s�-�b�d�c�p�r�w�S�x�t�Tc��g}tD]?}|D]%\}}||z|kr|�|��n�&|�d���@d�|��S)z;Convert a file's mode to a string of the form '-rwxrwxrwx'.r:�)�_filemode_table�append�join)r�perm�table�bit�chars r�filemoderN�sy�� �D� ����� � �I�C���c�z�S� � �� � �D�!�!�!���!� �K�K�� � � �� �7�7�4�=�=�r)�*N)U�__doc__�ST_MODE�ST_INO�ST_DEV�ST_NLINK�ST_UID�ST_GID�ST_SIZE�ST_ATIME�ST_MTIME�ST_CTIMErrrrrr r#r&r)�S_IFDOOR�S_IFPORT�S_IFWHTrrrr!r$r'r*r,r/r1�S_ISUID�S_ISGID�S_ENFMT�S_ISVTX�S_IREAD�S_IWRITE�S_IEXEC�S_IRWXU�S_IRUSR�S_IWUSR�S_IXUSR�S_IRWXG�S_IRGRP�S_IWGRP�S_IXGRP�S_IRWXO�S_IROTH�S_IWOTH�S_IXOTH� UF_NODUMP� UF_IMMUTABLE� UF_APPEND� UF_OPAQUE� UF_NOUNLINK� UF_COMPRESSED� UF_HIDDEN� SF_ARCHIVED� SF_IMMUTABLE� SF_APPEND� SF_NOUNLINK� SF_SNAPSHOTrGrN�FILE_ATTRIBUTE_ARCHIVE�FILE_ATTRIBUTE_COMPRESSED�FILE_ATTRIBUTE_DEVICE�FILE_ATTRIBUTE_DIRECTORY�FILE_ATTRIBUTE_ENCRYPTED�FILE_ATTRIBUTE_HIDDEN�FILE_ATTRIBUTE_INTEGRITY_STREAM�FILE_ATTRIBUTE_NORMAL�"FILE_ATTRIBUTE_NOT_CONTENT_INDEXED�FILE_ATTRIBUTE_NO_SCRUB_DATA�FILE_ATTRIBUTE_OFFLINE�FILE_ATTRIBUTE_READONLY�FILE_ATTRIBUTE_REPARSE_POINT�FILE_ATTRIBUTE_SPARSE_FILE�FILE_ATTRIBUTE_SYSTEM�FILE_ATTRIBUTE_TEMPORARY�FILE_ATTRIBUTE_VIRTUAL�_stat� ImportErrorr rr�r�sk���� �� �� �� �� �� �� �� �� �� ����� ��� �� �� �� �� �� �� �� �� �� ��#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�$�$�$���������� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��� �� �� �� �� �� �� �� �� �� �� �� ��s���s�� �s�� �s�� �s�� �s�� �s�� ��s��� �s��� �g�o�s�� �s�� �s����s��� �s��� �g�o�s�� �s�� �s����s��� �s��� �g�o�s�� �s�� �s���/��8 � � � �� ������ ����"'����%)�"�%������#�� �������� ��������� � � ��D�D� ���s� D�D�D