
    	hx                         S SK Jr  S SKJrJrJrJrJrJrJ	r	J
r
  S SKJrJrJrJrJr  S SKJr   " S S\5      r\r " S S\5      rg	)
    )Serialisable)AliasTypedStringFloatIntegerBoolNoneSetSet)ExtensionList	HexBinaryGuidRelationBase64Binary)hash_passwordc                     ^  \ rS rSrSu  rrSr\" S5      r\	" SS9r
\" S5      r\	" SS9r\" SS9r\" S5      r\" SS9r\" S	5      r\" SS9r\" S
5      r\	" SS9r\" SS9r\" SS9r\" SS9r\	" SS9r\" SS9r\" SS9r\" SS9rSr               SS jrSS jr \!S 5       r"\"RF                  S 5       r"SS jr$\!S 5       r%\%RF                  S 5       r%\&U 4S j5       r'Sr(U =r)$ )WorkbookProtection   )NN
workbookPrworkbookPasswordT
allow_nonerevisionsPasswordlockStructurelockWindowslockRevisionr   workbookPasswordCharacterSetr   revisionsPasswordCharacterSetr   r   r   revisionsAlgorithmNamerevisionsHashValuerevisionsSaltValuerevisionsSpinCountworkbookAlgorithmNameworkbookHashValueworkbookSaltValueworkbookSpinCountc                     Ub  Xl         X l        Ub  X0l        X@l        XPl        X`l        Xpl        Xl        Xl        Xl	        Xl
        Xl        Xl        Xl        Xl        g Nr   )selfr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   s                   N/var/www/html/env/lib/python3.13/site-packages/openpyxl/workbook/protection.py__init__WorkbookProtection.__init__7   sj    " '$4!,H)(%6"-J**&(&<#"4"4"4%:"!2!2!2    c                 4    U(       d  [        U5      nXl        g)z Set a password on this workbook.N)r   _workbook_passwordr*   valuealready_hasheds      r+   set_workbook_password(WorkbookProtection.set_workbook_passwordZ   s    !%(E"'r.   c                     U R                   $ )z7Return the workbook password value, regardless of hash.)r0   r*   s    r+   r   #WorkbookProtection.workbookPassword`   s     &&&r.   c                 &    U R                  U5        g)z6Set a workbook password directly, forcing a hash step.N)r4   r*   r2   s     r+   r   r8   e   s     	""5)r.   c                 4    U(       d  [        U5      nXl        g)z)Set a revision password on this workbook.N)r   _revisions_passwordr1   s      r+   set_revisions_password)WorkbookProtection.set_revisions_passwordj   s    !%(E#( r.   c                     U R                   $ )z8Return the revisions password value, regardless of hash.)r<   r7   s    r+   r   $WorkbookProtection.revisionsPasswordp   s     '''r.   c                 &    U R                  U5        g)z7Set a revisions password directly, forcing a hash step.N)r=   r:   s     r+   r   r@   u   s     	##E*r.   c                    > [         TU ]  U5      nUR                  (       a  UR                  UR	                  S5      SS9  UR
                  (       a  UR                  UR	                  S5      SS9  U$ )z0Don't hash passwords when deserialising from XMLr   T)r3   r   )super	from_treer   r4   getr   r=   )clsnoder*   	__class__s      r+   rD   WorkbookProtection.from_treez   sg     w &  &&txx0B'CTX&Y!!''1D(EVZ'[r.   )r<   r0   r   r   r   r    r!   r   r   r"   r#   r$   r%   r   r   r&   r'   )NNNNNNNNNNNNNNN) F)*__name__
__module____qualname____firstlineno__r0   r<   tagnamer   workbook_passwordr   r   revision_passwordr   r	   r   lock_structurer   lock_windowsr   lock_revisionr    r   r!   r"   r   r#   r$   r%   r&   r'   	__attrs__r,   r4   propertyr   setterr=   r   classmethodrD   __static_attributes____classcell__)rH   s   @r+   r   r      s   .8++G01#)T#: 12$*d$;!D)M?+N$'K'L4(L.)M#t4%6%6 D1"d3$5$540;I #'.2#'/3#!"(,$($($('+#'#'#'!3F( ' ' * *) ( ( + +  r.   r   c                       \ rS rSrSr\" SS9r\" SS9r\	" SS9r
\" SS9r\" SS9r\" SS9r\" SS9r       SS jrSrg)	FileSharing   fileSharingTr   Nc                 X    Xl         X l        X0l        X@l        XPl        X`l        Xpl        g r)   )readOnlyRecommendeduserNamereservationPasswordalgorithmName	hashValue	saltValue	spinCount)r*   r`   ra   rb   rc   rd   re   rf   s           r+   r,   FileSharing.__init__   s*     $7  #6 *"""r.   )rc   rd   r`   rb   re   rf   ra   )NNNNNNN)rK   rL   rM   rN   rO   r	   r`   r   ra   r   rb   rc   r   rd   re   r   rf   r,   rY    r.   r+   r\   r\      sk    G$/&H#t4d+M-I-I4(I &*%)##r.   r\   N)!openpyxl.descriptors.serialisabler   openpyxl.descriptorsr   r   r   r   r   r	   r
   r   openpyxl.descriptors.excelr   r   r   r   r   openpyxl.utils.protectionr   r   DocumentSecurityr\   rh   r.   r+   <module>rn      sK    ;	 	 	  4j jZ & #, #r.   