+
    '(j                     `    ^ RI Ht ^ RIHt ^RIHt R t^t^t^t	^t
 ! R R]4      tR	R ltR# )
    )long_to_bytes)bchr)TurboSHAKE128c                 `    V ^ 8X  d   R# \        V 4      pV\        \        V4      4      ,           # )r       )r   r   len)xSs   & O/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/Hash/KangarooTwelve.py_length_encoder   $   s)    AvaAtCF|    c                   @   a  ] tR t^3t o RtR tR tR tRR ltRt	V t
R# )	K12_XOFzYA KangarooTwelve hash object.
Do not instantiate directly.
Use the :func:`new` function.
c                "   VR 8X  d   RpV\        \        V4      4      ,           V n        \        V n        R V n        \        P                  ! ^R7      V n        ^ V n	        R V n
        ^ V n        ^ V n        V'       d   V P                  V4       R # R # )Nr   domain)r   r   _custom	SHORT_MSG_state_paddingr   new_hash1_length1_hash2_length2_ctrupdateselfdatacustoms   &&&r   __init__K12_XOF.__init__9   sy    T>Fs6{ ;; $''q1  	KK r   c                   V P                   \        8X  d   \        R4      hV P                   \        8X  dl   V P                  \        V4      ,           pV\        V P                  4      ,           R8:  d$   W n        V P                  P                  V4       V # \        V n         V P                   \        8X  Ed    \        V4      pV P                  R8  g   Q h\        \        V4      RV P                  ,
          4      pV P                  P                  VRV 4       V ;P                  V,          un        V P                  R8  d   V # V P                  R8X  g   Q hRpV P                  P                  V4       V ;P                  ^,          un        \        P                  ! ^R7      V n        ^ V n        ^V n        \"        V n         V P                  W4R 4      # V P                   \"        8X  g   Q h^ p\        V4      p\        V4      pWg8  Ed   \        VR,           V P                  ,
          V4      pV P                  P                  W6V 4       V ;P                  W,
          ,          un        TpV P                  R8X  g   K|  V P                  P%                  ^ 4      p	V P                  P                  V	4       V ;P                  ^ ,          un        V P                  P'                  4        ^ V n        V ;P                   ^,          un        EK  V # )zHash the next piece of data.

.. note::
    For better performance, submit chunks with a length multiple of 8192 bytes.

Args:
    data (byte string/byte array/memoryview): The next chunk of the
      message to hash.
z/You cannot call 'update' after the first 'read'i    Nr   s          )r   	SQUEEZING	TypeErrorr   r   r   r   r   r   LONG_MSG_S0
memoryviewminr   r   r   r   r   LONG_MSG_SXread_reset)
r   r    next_lengthdata_memdtcdividerindexlen_data	new_indexcv_is
   &&        r   r   K12_XOF.updateQ   sE    ;;)#MNN;;)#--#d)3KS..$6 +""4( &DK;;+%!$'H==4'('c$i!56CKKx~.MMS M}}t# ==D()(+GKKw'MMQM'++48DKDMDI%DK;;x~.. {{k)*)t9 d#EDL4==8(CIKKxi89MMY..ME}}${{''+""4(#""$ !		Q		r   c                   RpV P                   \        8X  d8   V P                  P                  V P                  4       ^V n        \        V n         V P                   \        8X  d5   V P                  V P                  4       RpV P                   \        8X  g   Q hV P                   \        8X  Ed   V'       g   V P                  V P                  4       V P                  ^ 8  d   V P                  P                  ^ 4      pV P                  P                  V4       V ;P                  ^ ,          un        V P                  P                  4        ^ V n	        V ;P                  ^,          un        \        V P                  ^,
          4      R,           pV P                  P                  V4       ^V n        \        V n         V P
                  V P                  n        V P                  P                  V4      # )a  
Produce more bytes of the digest.

.. note::
    You cannot use :meth:`update` anymore after the first call to
    :meth:`read`.

Args:
    length (integer): the amount of bytes this method must return

:return: the next piece of XOF output (of the given length)
:rtype: byte string
FTs   )r   r   r   r   r   r   r%   r'   r*   r   r   r+   r   r,   r   r   _domain)r   lengthcustom_was_consumedr4   trailers   &&   r   r+   K12_XOF.read   sO    $;;)#KKt||, DM#DK;;+%KK%"&;;+-.-;;+%&DLL) }}q {{''+""4(#""$ !		Q	$TYY]3kAGKKw' DM#DK"mm{{''r   Nc                $    \        V 4      ! W4      # )N)typer   s   &&&r   r   K12_XOF.new   s    Dz$''r   )r   r   r   r   r   r   r   r   )Nr   )__name__
__module____qualname____firstlineno____doc__r"   r   r+   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r   3   s&     
0GR/(b( (r   r   Nc                    \        W4      # )a?  Return a fresh instance of a KangarooTwelve object.

Args:
   data (bytes/bytearray/memoryview):
    Optional.
    The very first chunk of the message to hash.
    It is equivalent to an early call to :meth:`update`.
   custom (bytes):
    Optional.
    A customization byte string.

:Return: A :class:`K12_XOF` object
)r   )r    r!   s   &&r   r   r      s     4  r   )NN)Crypto.Util.numberr   Crypto.Util.py3compatr    r   r   r   r'   r*   r%   objectr   r    r   r   <module>rM      s?   > - &  		Y(f Y(x!r   