úÎ#oxkœ8      !"#$%&'()*+,-./01234567None&'.;=?@AHMXkR+blake3BLAKE3 internal state. Obtain with , .blake3 In bytes.blake3 In bytes.blake3 In bytes.blake3 In bytes. blake3/Context for BLAKE3 key derivation. Obtain with .8blake3NUL-terminated 9;. We store things this way so as to avoid re-creating the 9 each time we need to use this   in E. We never expose the NUL-terminating byte to users of this library. blake3 Key used for keyed hashing mode. Obtain with .See .:blake3MWe store things this way to avoid unnecessary conversions between different ; when using  for reading a   from a third party source. blake3!Output from BLAKE3 algorithm, of len bytes.(The default digest length for BLAKE3 is .<blake3MWe store things this way to avoid unnecessary conversions between different ; when using  for reading a   from a third party source.:Digest produced by this library are always allocated with =. blake3 hvoid blake3_hasher_finalize_seek(const blake3_hasher *self, uint64_t seek, uint8_t *out, size_t out_len) blake3 Tvoid blake3_hasher_finalize(const blake3_hasher *self, uint8_t *out, size_t out_len)blake3 Svoid blake3_hasher_update(blake3_hasher *self, const void *input, size_t input_len)blake3 Lvoid blake3_hasher_init_derive_key(blake3_hasher *self, const char *context)blake3 Evoid blake3_hasher_init_keyed(blake3_hasher *self, const uint8_t key[])blake3 ,void blake3_hasher_init(blake3_hasher *self)blake3;Obtain a digest containing bytes from a third-party source.&This is useful if you want to use the  g datatype in your programs, but you are loading the pre-calculated digests from a database or similar.blake3 Obtain a  ! for use in BLAKE3 keyed hashing.See .blake3 Obtain a   for BLAKE3 key derivation.LThe context should be hardcoded, globally unique, and application-specific.(A good format for the context string is: +[application] [commit timestamp] [purpose]  For example: 2example.com 2019-12-25 16:18:03 session tokens v1 blake3BLAKE3 hashing.blake3 Initialize a .blake3 Initialize a  in keyed mode.blake3 Initialize a  in derivation mode.:The input key material must be provided afterwards, using .blake3Update  state with new data.blake3)Finalize incremental hashin and obtain a  .blake3*Finalize incremental hashing and obtain a   of length len after1 the specified number of bytes of BLAKE3 output.  h =  h 0 blake3 Obtain a >  to use with functions like , etc.blake3When allocating a  , prefer to use ?A, which wipes and releases the memory as soon it becomes unused.blake3 Allocate a  -. The memory is wiped and freed as soon the   becomes unused. blake3Base 16 (hexadecimal).!blake3Constant time."blake3When allocating a  , prefer to use ?A, which wipes and releases the memory as soon it becomes unused.#blake3 Length is .$blake3Base 16 (hexadecimal).%blake3Constant time.&blake3@ is a partial" function that fails if the given A contains Bs outside the range [C 1 .. C 255]. See  for more details.'blake3Base 16 (hexadecimal).)blake3 Allocate a  0. The memory is wiped and freed as soon as the   becomes unused.*blake3When allocating a , prefer to use ?A, which wipes and releases the memory as soon it becomes unused.+blake3Base 16 (hexadecimal)..blake3 Length is ./blake3 Allocate a 0. The memory is wiped and freed as soon as the  becomes unused. blake3,Must have been previously initializedi. See , , .blake3Seek position.blake3Out.blake3 Out length. blake3,Must have been previously initializedi. See , , .blake3Out.blake3 Out length.blake3,Must have been previously initializedi. See , , .blake3Data.blake3 Data length.blake3You can obtain with ?. Otherwise, any chunk of  bytes aligned to  will do.blake3Context.blake3You can obtain with ?. Otherwise, any chunk of  bytes aligned to  will do.blake3You can obtain with ?". Otherwise, any chunk of length  will do.blake3You can obtain with ?. Otherwise, any chunk of  bytes aligned to  will do.blake3#Raw digest bytes. Must have length len.blake3blake3Key bytes. Must have length .blake3blake3If bin, contains null bytes, this function returns D.blake3 Data to hash.blake3Default digest length is . The  % is wiped from memory as soon as the   becomes unused.blake3 Obtain with ? or similar. It will be mutated.blake3 Obtain with ? or similar. It will be mutated.blake3 Obtain with ? or similar. It will be mutated.blake3 Obtain with . It will be mutated.blake3 Obtain with . It will be mutated.blake3Default digest length is . The  % is wiped from memory as soon as the   becomes unused.blake3 Obtain with . It will be mutated.blake3:Number of bytes to skip before obtaning the digest output.blake3Default digest length is . The  % is wiped from memory as soon as the   becomes unused.blake3 bytes.     None.;HMXkk0blake3BLAKE3 hashing.For incremental hashing, see 3, 5 and 6: 0 = 6 E 5 3 1blake3BLAKE3 hashing with a  .~This can be used for MAC (message authentication code), PRF (pseudo random function) and SHO (stateful hash object) purposes.For incremental hashing, see 4, 5 and 6: 1 key = 6 E 5 (4 key) 2blake3BLAKE3 key derivation.<This can be used for KDF (key derivation function) purposes.3blake3Initial  for incremental hashing.4blake3Initial  for incremental keyed hashing.5blake3Update  with new data.6blake3Finish hashing and obtain a   of the specified length.7blake3*Finalize incremental hashing and obtain a Digest of length len after1 the specified number of bytes of BLAKE3 output. 6 h = 7 h 0 0blake3 Data to hash.blake3Default digest length is . The Digest% is wiped from memory as soon as the Digest becomes unused.1blake3 Data to hash.blake3Default digest length is . The Digest% is wiped from memory as soon as the Digest becomes unused.2blake3Input key material.blake3Default digest length is . The Digest% is wiped from memory as soon as the Digest becomes unused.3blake34blake35blake3New data to hash.6blake3Default digest length is . The Digest% is wiped from memory as soon as the Digest becomes unused.7blake3:Number of bytes to skip before obtaning the digest output.blake3Default digest length is . The Digest% is wiped from memory as soon as the Digest becomes unused. 012345670 1 2 34567F      !"#$%&'()*+,-./01234567 !"89:;<=;>?8@A;>B8CD8EFGHI8JK8LM8ENOblake3-0.2-inplace BLAKE3.IOBLAKE3hasher hasherKeyedkey hashKeyedBIODEFAULT_DIGEST_LENHasherMAX_SIMD_DEGREE MAX_DEPTH CHUNK_LEN BLOCK_SIZEKEY_LEN HASHER_SIZEHASHER_ALIGNMENTContextKeyDigestc_finalize_seek c_finalizec_updatec_init_derive_key c_init_keyedc_initdigestcontexthashinit initKeyed initDeriveupdatefinalize finalizeSeek modifyHasher$fStorableDigest$fByteArrayNlenDigest$fByteArrayAccessDigest $fShowDigest $fEqDigest $fStorableKey$fByteArrayAccessKey $fShowKey$fEqKey$fIsStringContext $fShowContext$fByteArrayAccessContext$fByteArrayN32Key$fStorableHasher $fShowHasher $fEqHasher $fEqContext$fByteArrayAccessHasher$fByteArrayNHasherderivebaseForeign.C.StringCString$memory-0.15.0-GmuNYkBtQMdIlG6TaBijnKData.ByteArray.TypesByteArrayAccessData.ByteArray.SizedallocRetGHC.PtrPtralloc Data.String fromStringGHC.BaseStringghc-prim GHC.TypesCharGHC.EnumtoEnum GHC.MaybeNothing.