§
    ¥”j]  ã                   óŽ   — d dl Z d dlZd dlmZ d dlmZ g d¢Z G d„ de¦  «        Z G d„ dee¦  «        Z G d	„ d
ee¦  «        Z	dS )é    N)ÚFlag)Úreduce)ÚPdfPermissionsÚPubKeyPermissionsÚStandardPermissionsc                   ó¬   — e Zd ZdZed„ ¦   «         Zedefd„¦   «         Zedefd„¦   «         Z	edefd„¦   «         Z
d	efd
„Zd	efd„Zd	efd„Zd	efd„ZdS )r   z1
    Utility mixin for PDF permission flags.
    c                 ód   — t          t          j        | j                             ¦   «         ¦  «        S )z&
        Set all permissions.
        )r   ÚoperatorÚor_Ú__members__Úvalues)Úclss    úr/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/pyhanko/pdf_utils/crypt/permissions.pyÚallow_everythingzPdfPermissions.allow_everything   s$   € õ •h”l C¤O×$:Ò$:Ñ$<Ô$<Ñ=Ô=Ð=ó    Ú
uint_flagsc                 óD   —  | d¦  «        }| D ]}||j         z  r||z  }Œ|S )zN
        Convert a 32-bit unsigned integer into PDF permission flags.
        r   ©Úvalue)r   r   ÚresultÚflags       r   Ú	from_uintzPdfPermissions.from_uint   s>   € ð ��Q‘”ˆØð 	ð 	ˆDØ˜DœJÑ&ð Ø˜$‘�øØˆr   Úflagsc                 ób   — t          j        d|¦  «        d         }|                      |¦  «        S )zH
        Convert a string of 4 bytes into PDF permission flags.
        ú>Ir   )ÚstructÚunpackr   )r   r   r   s      r   Ú
from_byteszPdfPermissions.from_bytes'   s,   € õ ”] 4¨Ñ/Ô/°Ô2ˆ
Ø�}Š}˜ZÑ(Ô(Ð(r   Úsint32_flagsc                 ó2   — |                       |dz  ¦  «        S )zL
        Convert a 32-bit signed integer into PDF permission flags.
        l   ÿÿ )r   )r   r   s     r   Úfrom_sint32zPdfPermissions.from_sint320   s   € ð �}Š}˜\¨JÑ6Ñ7Ô7Ð7r   Úreturnc                 ó   — t           ‚)a  
        Convert a set of PDF permission flags to their 32-bit
        unsigned integer representation.

        This will already take into account some conventions
        in the PDF specification, i.e. to set as-yet undefined
        permission flags to 'Allow'.
        ©ÚNotImplementedError©Úselfs    r   Ú	as_uint32zPdfPermissions.as_uint328   s
   € õ "Ð!r   c                 óP   — t          j        d|                      ¦   «         ¦  «        S )z_
        Convert a set of PDF permission flags to their binary
        representation.
        r   )r   Úpackr(   r&   s    r   Úas_byteszPdfPermissions.as_bytesD   s    € õ
 Œ{˜4 §¢Ñ!1Ô!1Ñ2Ô2Ð2r   c                 ó\   — t          j        d|                      ¦   «         ¦  «        d         S )zg
        Convert a set of PDF permission flags to their
        signed integer representation.
        z>ir   )r   r   r+   r&   s    r   Ú	as_sint32zPdfPermissions.as_sint32K   s#   € õ
 Œ}˜T 4§=¢=¡?¤?Ñ3Ô3°AÔ6Ð6r   c                 ó   — t           ‚©Nr$   r&   s    r   Úmac_requiredzPdfPermissions.mac_requiredR   s   € Ý!Ð!r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úclassmethodr   Úintr   Úbytesr   r!   r(   r+   r-   Úboolr0   © r   r   r   r   	   s  € € € € € ðð ð ð>ð >ñ „[ð>ð ð	 3ð 	ð 	ð 	ñ „[ð	ð ð)˜uð )ð )ð )ñ „[ð)ð ð8 sð 8ð 8ð 8ñ „[ð8ð
"˜3ð 
"ð 
"ð 
"ð 
"ð3˜%ð 3ð 3ð 3ð 3ð7˜3ð 7ð 7ð 7ð 7ð"˜dð "ð "ð "ð "ð "ð "r   r   c                   óN   — 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efd„Zdefd„ZdS )r   zd
    Permission flags for the standard security handler.

    See Table 22 in ISO 32000-2:2020.
    é   é   é   é    é   é   é   é   é   r"   c                 óJ   ‡ — t          ˆ fd„‰ j        D ¦   «         ¦  «        dz  S )Nc              3   ó.   •K  — | ]}|‰v ¯|j         V — Œd S r/   r   ©Ú.0Úxr'   s     €r   ú	<genexpr>z0StandardPermissions.as_uint32.<locals>.<genexpr>h   ó)   øè è € Ð@Ð@˜q°a¸4°i°i�1”7°i°i°i°iÐ@Ð@r   l   À`ÿ ©ÚsumÚ	__class__r&   s   `r   r(   zStandardPermissions.as_uint32g   s-   ø€ ÝÐ@Ð@Ð@Ð@ D¤NÐ@Ñ@Ô@Ñ@Ô@À:ÑMÐMr   c                 ó   — t           j        | vS r/   )r   ÚTOLERATE_MISSING_PDF_MACr&   s    r   r0   z StandardPermissions.mac_requiredj   s   € Ý"Ô;À4ÐGÐGr   N)r1   r2   r3   r4   ÚALLOW_PRINTINGÚALLOW_MODIFICATION_GENERICÚALLOW_CONTENT_EXTRACTIONÚALLOW_ANNOTS_FORM_FILLINGÚALLOW_FORM_FILLINGÚALLOW_ASSISTIVE_TECHNOLOGYÚALLOW_REASSEMBLYÚALLOW_HIGH_QUALITY_PRINTINGrO   r6   r(   r8   r0   r9   r   r   r   r   V   s—   € € € € € ðð ð €NØ!"ÐØ!ÐØ "ÐØÐØ!$ÐØÐØ"&ÐØ#ÐðN˜3ð Nð Nð Nð NðH˜dð Hð Hð Hð Hð Hð Hr   r   c                   óR   — 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defd„Zdefd„ZdS )r   zf
    Permission flags for the public-key security handler.

    See Table 24 in ISO 32000-2:2020.
    é   r;   r<   r=   r>   r?   r@   rA   rB   rC   r"   c                 óJ   ‡ — t          ˆ fd„‰ j        D ¦   «         ¦  «        dz  S )Nc              3   ó.   •K  — | ]}|‰v ¯|j         V — Œd S r/   r   rF   s     €r   rI   z.PubKeyPermissions.as_uint32.<locals>.<genexpr>‚   rJ   r   l   Á`ÿ rK   r&   s   `r   r(   zPubKeyPermissions.as_uint32€   s-   ø€ åÐ@Ð@Ð@Ð@ D¤NÐ@Ñ@Ô@Ñ@Ô@À:ÑMÐMr   c                 ó   — t           j        | vS r/   )r   rO   r&   s    r   r0   zPubKeyPermissions.mac_required„   s   € Ý Ô9ÀÐEÐEr   N)r1   r2   r3   r4   ÚALLOW_ENCRYPTION_CHANGErP   rQ   rR   rS   rT   rU   rV   rW   rO   r6   r(   r8   r0   r9   r   r   r   r   n   s�   € € € € € ðð ð  ÐØ€NØ!"ÐØ!ÐØ "ÐØÐØ!$ÐØÐØ"&ÐØ#ÐðN˜3ð Nð Nð Nð NðF˜dð Fð Fð Fð Fð Fð Fr   r   )
r
   r   Úenumr   Ú	functoolsr   Ú__all__r   r   r   r9   r   r   ú<module>ra      sí   ðØ €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à
HÐ
HÐ
H€ðJ"ð J"ð J"ð J"ð J"�Tñ J"ô J"ð J"ðZHð Hð Hð Hð H˜.¨$ñ Hô Hð Hð0Fð Fð Fð Fð F˜¨ñ Fô Fð Fð Fð Fr   