Files
boc/aamos-ledger-rust/target/debug/deps/libfoldhash-032a5228e2caa585.rlib
T

485 lines
200 KiB
Plaintext
Raw Normal View History

!<arch>
/ 0 0 0 0 2136 `
RŽ_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h5434cfd96a2c0c70E_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h47a48682ee90e5c8E_ZN4core3cmp3Ord3max17h63c08cfd28ac5040E_ZN4core3ptr9const_ptr33_$LT$impl$u20$$BP$const$u20$T$GT$13is_aligned_to17hc86f2bdfb635c5a8E_ZN4core4sync6atomic11atomic_load17h4320a015026d3214E_ZN4core4sync6atomic12atomic_store17h1bfeafb50957f645E_ZN4core4sync6atomic12atomic_store17he76c33bb70a5c7d4E_ZN4core4sync6atomic28atomic_compare_exchange_weak17h6cb36385b14ae82cE_ZN4core5array98_$LT$impl$u20$core..convert..TryFrom$LT$$RF$$u5b$T$u5d$$GT$$u20$for$u20$$u5b$T$u3b$$u20$N$u5d$$GT$8try_from17ha8e2e704d5641b3aE_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$12as_ptr_range17hfb0b5dcddc86ab15E_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$12chunks_exact17hc230211b2a1fd406E_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$18split_at_unchecked17hc9a39d4fe9fa17d2E_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$13rchunks_exact17h2018e9f9ae6a6f88E_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$8split_at17h69772d7da5789cd7E_ZN4core5slice4iter20ChunksExact$LT$T$GT$9remainder17hcbab1f4c5650933aE_ZN53_$LT$T$u20$as$u20$core..convert..TryInto$LT$U$GT$$GT$8try_into17h93d0fab019c3fbc0E_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h251c4737d5208f88E_ZN8foldhash15hash_bytes_long17he45131562c2af42aE_ZN98_$LT$core..slice..iter..ChunksExact$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h4dfb0548b4301c35E_ZN8foldhash17hash_bytes_medium17h18196141f79ed527E_ZN99_$LT$core..slice..iter..RChunksExact$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h61673853887fa5d0E_ZN8foldhash4seed10SharedSeed8from_u6417haa19534c7494b036E_ZN8foldhash4seed19gen_per_hasher_seed17h57f74e497165653cE_ZN8foldhash4seed6global10GlobalSeed9init_slow17hc317593a5d5551a6E_ZN8foldhash4seed6global19GLOBAL_SEED_STORAGE17h5197f0c0f23a4411EDW.ref.rust_eh_personality// 66 `
foldhash-032a5228e2caa585.foldhash.764242f1bae3dc14-cgu.0.rcgu.o/
lib.rmeta/ 0 0 0 644 84280 `
ELF·¸G@@GNUÀrust
&E#rustc 1.96.0 (ac68faa20 2026-05-25)ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁ¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁ‰WglobalÁ4§Jó¼ˆJ̇J convenienceÁ\¤&»À|Ž&ífastÁ 
   with_seedÁ write_numÁ¥writeÁwrite_u8Á write_u16Á write_u32Á write_u64Á
write_u128Á write_usizeÁfinishÁ>   build_hasherÁ#>%randomÁ%fixedÁ%Ÿ))Ú,Ÿ.> 00ÚqualityÁ3333333333=Ÿ3?Ê?Ö?å?õ???¦?¸3HHÚ3KûKˆKŸ3OOÚ3RŸ3TTÚseedÁWWWWWWWWWW WFIXED_GLOBAL_SEEDÁWgen_per_hasher_seedÁccccPER_HASHER_NONDETERMINISMÁWh
global_randomÁh global_fixedÁhfrom_u64ÁkmixÁk FORCED_ONESÁWŠnnnnnngenerate_global_seedÁt nGlobalSeedStorageÁvºv§nUNINITÁnLOCKEDÁnINITÁnnGLOBAL_SEED_STORAGEÁ} næ  init_slowÁgetÁW

ARBITRARY0Á
ARBITRARY1Á
ARBITRARY2Á
ARBITRARY3Á
ARBITRARY4Á
ARBITRARY5Á
ARBITRARY6Á
ARBITRARY7Á
ARBITRARY8Á
ARBITRARY9Áfolded_multiplyÁš hash_bytes_mediumÁhash_bytes_longÁ
FoldHasherÁ accumulatorÁspongeÁ
sponge_lenÁ fold_seedÁ expand_seedÁ expand_seed2Á expand_seed3Á
ƒ RandomStateÁper_hasher_seedÁ global_seedÁ  
¢ƒ¤×SeedableRandomStateÁ¦
¦ shared_seedÁ«ƒ­×
FixedStateÁ¯
³ƒµ×3× ·innerÁ3¹ƒ3ó »å33 3
¿ƒ3 Á>3 Ã×3Ï
Åå3
33Ƀ3Ë>3Í×3¤Ïå333Óƒ3Õ>3××W
SharedSeedÁÙseedsÁÚ W܃WÞ×n
GlobalSeedÁà_no_accidental_unsafe_initÁnnnäƒnæ×










"
+
2
>
@
@
A
B
C
D
E
F
G
J
Q
V


œ
£
¥
¥
¥
¬
®
®
®
´



º
À
Ä
Ä
Ä
Ê
Î
Î
Î
Ô
Ø
Ø
Ø
Ý
ß
ß
ß
å
ç
ç
ç
Ø× é ü Š œ ˜­ À šÔ ÂCHW
¢eÚŠ ó ž
Ÿ
'‰ú2
^WÛÚØÚ¿cÚ³ÚÅeÚŠ ¦¦Ï
§
¨ò
N™æ :¹äÛËØË¿c˳ËÅeËŠ ¯¯¤°
Ypö›þkºÛ¼Ø¼¿c¼³¼Åe¼Ø··× ¸å›/±·×Ëš¢e¢Š »»ó ¼å3
­U\j<ÛàØà³à¿càÅeàŠ ÅÅÏ
Æå3lÆ4aþh—ÛÆØÆ³Æ¿cÆÅeÆŠ ÏϤÐå3“tÔŒ¿‘!ô۬ج³¬¿c¬Åe¬ØÙÙ«Ú½/Á´>{=¿c vvÈwºnx§nzÏùÛï{ïŠ ààæáønùt³æ‚ÛÛØ¿c¢«¦³¯¹·¿»ÉÅÓÏÜÙäà?· ©¦±¯½»ÇÅÑÏâࡪ¦²¯¾»ÈÅÒÏãभ¦µ¯Ã»ÍÅ×ÏÞÙæà#¦.¯Á»ËÅÕÏ )¦0¯H»OÅTÏ|vØ
¼¢eFŠ  Û1¿c1³8Åe' $²`ÈpÚpî Ð  Ð
ˆ˜
Ð
ˆ¯Ð(Ž 
 œ<ÚG ÚQÐ8 ÐCð+ ð6   )Ðü!Ðü! Ðñü!øÐßü!æÏÙ
ÙÐÈ
Ùð´
Ù  ÿ"ÿ"lÿ"Rÿ"8 ·
¤¥Ü#Ü#$ .Ü#Ü#HÐÜ# æ
Ü#¤ÔÜ#Ü#$ .Ü#Ü#H´$ 

Ü#¤„  
Ü#Ü#$  .Ü#Ü#
H ´$
Æ 

Ü#¤´ 
Ü#Ü#$ .Ü#Ü#
H ´$
ü¥®  ðð    Ù üÌÚTÐ ÐUÜ#ydÐèÜ# ÷ÐÜ#­˜Ð*Ü#N9
tò
u£
 
 ÌÂ
¼Â

À¥"ì¾
 ¾
Ü#$ 'Ü#KÜ#
  Äè
 Ü#üè

 
,
Ü#üè
%Š Ü#%  𔥠  Ð ðœÎ Þ @)¿,9 <@½,YZ@½,ÔÎ 
Єž Ь™   М° 
ü‰ ;|‰ 
N0&üö NÐ à  
  
èö)ð> ´Ò ðäö   üå
¬  À
 


Ü.5 

 ÜÀ
  
0ü±
*ð
ð
 ìé
    5   üõ ¢ 
 
3ü¬
ëüœ üÅ Ø!¡
 ÚL
ö) œ
Ü#Ü#oÜ#T¤Ü#çÜ#ÿ Õ2ÿР ð¢ÐÉ ðð¿,ÐÓÐÐ+ÐþÐðö)Æð÷ð4ö)] ! à ¾ZÃ
´¡loÁÞ hiÁÚ
¯ð)¦ÿ-Ü.EÜ.Êö)Å,„ˆÐ¿,üû*
</%¹Ü#$"Lׄû Ð
 åÜ#$

 £Ü# ˜Ü# Ü#4—
Ü¢
££¹ƒ£¹„£þ-'ºˆÉ¬gÜ#,žd´’
ï Þ7 Ü#\
ü’
ó[Ï8ž¤ž¤Ÿ¤TryFromSliceErrorÁ ¤ˆ¸& E7f~‘×E
¢ üÿ3”ÿ
ÕÓ  !üù9   éÜ#$ 'Ü#JÜ#H<ã —£Ü#
Ü¢Þ7—£—£»™£¹< =áï_åÜ#n YÜÝÃ8„Ý
üÝ$„9; üÊ8”Êö9: üÄ>  üÛî  ¡Ü#$ £Ü# ÔÜ# ×Ü#×7[!´Î
ïÉ8 Ü#üÎ
ó[°>9[ü»3”»
­ÒG!ü»:Ðüµ@ % ¬Ü#$ %'Ü#J$%Ü#HA¦# —£Ü#$ ;, #6"!Ü §>"„ !ü $å>!; ü8“? :ü?Ðü‡E  ü—² & êÜ#$&  (
Ü#D‡)*() *)(2'(- ·Ü#Ü#3 -C, DÜ#./,. /.,2+,2 àÜ#$ 2'Ü#J12Ü#3413 4312015'Ð 580Д›9 «½,¿,:9)@¿,9 :8<½,X78Y½,;+Ðü›6
7;ü•%  6üáè ù=ý> ¼éÿ-=0>(<!!üÖ*Ð<ü¯ +L”?šÜ#$?&#„«BÐü”(
œÓL”B4A$ôžCÐü¿¬Œ¿
AiC@@%4ü¬¿Ð@ü‘·+„‡FÐüð(çHF0E'ôúŒÁHÐüª)çHH0G(ü´ŒüJÐüå)çHJ0I)üït KÐü |
EãGªIpKJD*>üгÐD3+ÎüÒüüÌ üëã üÊÁüîüþËü¡¨üË~L§2ó°2É8Ü#ÐÐÐü ¿,ò ¾ ÐÐ Ðþ Ï8x
Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ï89 É8ƒ â7Í Ð Ï8M òM{ É8â ª;
Ü#h
Õ2p
 Ðô¿,!°>WÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
°>9íÉ8 â7f ÐI¿,r°>Ÿ²OÍÉ8üª;!Ü#Õ2ŠX Ü#7Ü##* ¥Ü#ûÜ#©° ÏÜ#Õ2Ü#8?ÐÐ\ÐæÐþ¿,öýÐÐ>ÐbÐ]ÐÐÚÐöмÐÐKÐgÐÐ9ÐîÐ
ÐÓ ûbytesÁ
 base_seedÁs0Ás1Á  ä3'midÁt+ñ3Y0Ú
Ús sì5G×7_Ã8û
„9Á
ö9U
 ;® Ã8U „95 ö9 ×7h §>G å> “?è
 ;0
§>
å>ï “?Ð ÿ-½çH8ªIüçHçH]çH$ÓK댒L—
 $’ ¡d—ªüê@§2°2 §2j´IÊUŒð
 ÿˆüÆB§2å°2ïV Þ§2j´IêVŒÎ
¿, Ýæü¤B§2ð2¿, ¼§2j´IŠXŒ¬ 
Ð » Ä ü‚ B§2¡ °2L Ð š §2j´IªYD•!ÐL°!¶!@½,¿,)¿,9 <@½,XY@½,„°!Єò!
Ьí!  
t‰" М„"   üÝ!;|Ý!ÿ- K -"üÊ!NП"üà ¿üŒ!“ü§!x
§2!°2ð ù Ð!Ы!ðc¿,krаÐíÐÐÙÐòa´eä3iñ3k¹ÿ- D¡$ÐÄ’$L—$ªY$$-œ—$±$ü»"ö§2Þ"°2LÊ"Ü# Õ"§2dÐ}"´&QªY|ò$ œò$ „% \%ð%Ð\Ç%ðœÆ% Ö%@½,¿,
 )¿,9 
<@½,XY@½,ÔÆ%Єƒ& Ьþ%   tš&М•&
 üî%;|î%ÿ- K
-"„Ç&Ðüï$òç&üÍ$šü”%Ÿü½%vÐá$ê!,×$² ÌИ%ð ÐÁ%ð}ð¿,ÐÐ"ÐõÐrä3gñ3a½ÿ-(Ó'Ø'£"'-Ú9 ÚCLV(Ú'   ÿ' ·eÐ& ¿c¸™(  ·e
& 
2 ïe 
ûc±¤©nsÒß'¥é Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
§2ŸÈŸÈ ÈErrorÁ O˜éBLpýdx  c cˆ¢cµ
 `£cbufÁ `àB¤GS
¿·eÇ·e¸ïeÀü!È·eïe˜  ¦›i®±(ü!ïe™iïeåËfB¬±)œ±)
cŒá)|á)
ü)p ƒ*üî(•Ú$þ(Ðl&ƒj¢j¤¨+д¾+Ï+
„¾+,Ï+ü’+C¬’+
YJ$Û+"üã*xÚTý*ýd,ó*Ð¥(Ž:Âkªñk(Ÿ.¤.¬"'-Ë9 ËCLV(¦. ·e Ó. ·eÐ&ïeøí.   ·e
¥(' 
3 ïeËf¡¦jo«.®Ù –gä«më¢hò·eù·eëïeòü!ù·eÊïeÑ  ¥(Þõoå9±GRü!ïeIóoïeËfltò/dò/
&†0$üÓ/3Ë$ã/ÛpN¬Õ1œÕ1ƒjÜ…2Ì…2
iü±1z ¦±2&üË$¢1Ð}¥(g&ƒjÓq|Ô…4Ä…4
jü¼3n ¦Tà3ˆÐ°4'ü›3•Ë$­3¥(kEˆÐÜräù6 T‹7ˆÐüÕ6d ¦¿7(ü³5ŒË$ÿ5Ð|Ä5¥(\Ú5Ðq
ò
 KˆˆÐ¤ì8Є‚9¥(üÖ8=¬Ö8ñk;."™9+ü§8rÚTÁ8«m,·8Ð}¥(:ñkz(Ì:Ñ:´"'¼3 ¼=FP(Ó: 
·e ÷: ·eÐ&2ïeY^
ùcotdiØ:–g¨ív¯¢h·e½·e¯ïe ü!Àü!Çå±òüäxïeòùw ä§= T¹=ˆÐüƒ=K ¯Ô=-üý;×¼$­<Ð|”<Ðe
5oˆÐ|§=« ©ˆÐ Â=¯ ¯ Í=´-²¼®Ð¬ÐÐ
Åç!ˆÐü¯>9 ¯TÓ>ˆÐî>/ü>^¼$ >:ˆÐ¤’@ÐÔ¨@Ĩ@Ürüü?G¬ü?ñkF7"É@2üÍ?|ÚTç?ív,Ý?Ј¥({:Ürñkøô"Ú
ÙÚ-5(Ð ·Õº*¢5 ¢?Úê!V`±~¢ü£9Ü£ñk|¿&üƒd ·í>üªÃ¢Ð¥(Ú|
ò
 Kñk¦Ú¼Ô
¤eÚ0ò@ü¨J§2É ¢É8§2l°2"˜R&SÚ´¶
¥eÚ0 ÊÓAüŽE§2«Ú ¥§2j°2"´&QÒ‚T™ Ú¼™ 
¦eÚ0 ® · BüïH§2Ž ÚïV §2j°2"´&QŽ„Ú¼ý 

§eÚ0
dˆ

CüÓ H§2ò Ú¿, ë §2j°2"´&QÊ…
Ú¼á


¨eÚ0 ö

ÿ
Dü·
H§2Ö
Ú
Ð Ï
§2j°2"´&Q†‡ ÚÄÇ  
©eÚ0 Ý  æ Eü› K§2¼ Ú ð ´ §2j°2"´&Qˆ Ṵ́  
ªeÚ0 Ç  Ð Fü‚ N§2¥ ÚL‘ Ü# œ §2j°2"´&Qþ‰
Úœž


£eÚ/
üŽ
0
ÿ-?
Ð
-Ä
Güì XÐ
 ÐŒê!¨:hй‹»ÿ-(³¸À"'à3 à=FPÀè
´Ú8º »ÁÂ*à5Ú\Cäm(à  ·eÀè ·eÚ&2ïeY^ùwjo_dÈĘ–g£­«¢h²·e¹·e«ïe² ýd¼ýdÃá±îøšïeïùw Ṵ́
ÇeÚ/üD ·ÚJüáy¢­Úqýd;‡‘( ¡ ¦Ê"'Æ3 Æ=FPø!Þ  
´Ë8!¨ ÅÌ*Æ5Ë]Cˆ“n("± ·eø"Þ  ·eË'3ïeZ_ùwkp`eΖg¤Ð’¬¢h³·eº·e¬ïe³ «m½«mÄâ±ïù¿•ïeðùw
üÄ#üÄ!ÛpüªH ÅøLüˆpÆ$›Ë\Ûplü"ü 
'üƒG ÅÐMüânÆË^”—oü¬,ÿ-Ð
/üöŽüö$
(N(ü®á ÅNüÓÂÆÐ¥(Ëл
#ò
'RÆÐÿ-ðƘÁËÌÌ
ÇeË/ü¬D ·öQüýy¢T—Ð’,Úq«m;¤š($¬Ô"'¬3 ¬=FP¸
´¼8%³ ÏÖ*¬5¼\C¤œm(&¼ 
·e¸ ·e¼&2ïeY^ùwjo_dؘ–g£í›«¢h²·e¹·e«ïe² ív¼ívÃá±îøÚžïeïùw üò#,|ò#ÿ-|$T“$Ð
/üÖ#IÜÖ#
-Lü¨!‚ ϰ$Süé Ǭ$™!Ð|€!¼mЩ
<§Ðÿ-Ñ꟢¬çØÞþ
ÿ-Ð
0 $
êŸX, ž$ Ï ©$S¬Ð¼Ð¿Ð²
9\ÈÐTÞ%¼ÌÞ%dé%
Çe¼/té%ü¾%D ·ˆ&Vü%y¢T©%í›,Ÿ%Úqív;À£üê0  ÐЊÐÐTŒÐüÒK Ù œü¬rb´$+ˆÐŠÐÐŒÐÜ#Ð(´$((Ö ÙÝ*5¥(<´$c ´$mV`
Ù´$()Ý 
·eÐ) ·e´$&2ïeY^ùwjo_dߘ–g£¥(ª¢h±·e¸·eªïe± ¦§¼¦§Äâ±ïù£©ïeðùw
ÌŠ¼Š¢jüФÂkØ8¯iüÒ]¥(œìn¢j~Âkf”ý
j¥(jüÀU¥(œßŒþbX^fj¥(r ~j|¥(y¥(µz¥(ãŒbŸ§bôjê¥(â+îb
ø+œø,œ
$x,œÿ--P,°ŽÐPg
nx+œÿ-wP+°ŽÐšø*œ
 x*œÿ-ÅP*°ŽÐ74ø.œø/œ  
$x/œÿ- -P/°ŽÐP g
nx.œÿ-wP.°ŽÐšø-œ
 x-œÿ-ÅP-°ŽÐ7
ø1œ ø2œ 


$x2œÿ-
-P2°ŽÐ P
g
nx1œÿ- wP1°ŽÐ š ø0œ
 x0œÿ- ÅP0°ŽÐ
 7 ø4œø5œ4… 

$x5œÿ--P5°ŽÐ
Pg
nx4œÿ-wP4°ŽÐ šø3œ
 x3œÿ-ÅP3°ŽÐ 7!ü´#§¤Æ#4Æ#
\Ï#mÐ Ù#¤ì#4ì#
\õ#mÐ ÿ#¤’$4’$

\$mÐ ¥$¤¸$4¸$
\Á$mÐ Ë$ú Ð Ú$üš#Ì Ù å$ ë$
ì$küªÂüÞŽü‹áüº²üéƒÐÐŒÐŒÐŠÐˆÐ¹Ð¹Ð·ÐµÐæÐæÐäÐâÐÐÐд$@Ð>Ð>ÐÐÐæÐæÐºÐº§Ôseed_aÁjseed_bÁseed_cÁ¨
seed_dÁÇfbŽÐ.ŽÐöŽÐŽÐ_ŽÐ'ŽÐÄŽÐŽÐXŽÐõŽÐÁŽÐŽÐAmÐmÐßmЮmЬ÷"L÷"ý"?½,¿,#/@¿,?  ø"ÐM?½,o.Ðy?½,Lƒ#‰#½,¿,#/@¿,?  „#ÐM½,o.Ðy½,8
 #Ì÷"
 #ÐüÞ"3mÐñ"ФФ¿,¬³Ð#¿,+2Z   Ü#7‰;å(7„;›i$.(8; 
·eð8< 
·e§2&2ïeY^ùwjo_d8;瘖g£›iª¢h±·e¸·eªïe±  §2¾ùÂÆä±ñû÷Âïeòùw œ‡=
  Ð̇=¤]¤]V¦]Á‚]üß3ø¤”& Œ¦= ¼Àü‡=1$¡=
ŽÁo4¼¡=ü‡=9$¼={ ŒÓ=|Ó=
Í>üá<ì$ñ<§2ü„=n ² ðÃÚÃ7¼À½À¾ÀË¿ÀÀÀÌÁÀÂÀGÃÀÄÀFÅÀÆÀ×`šÁ¬S øBP¸ { ÅÄWžÅœÊI
 ÚÃÄÊIî0î0
UnsafeCellÁð0»Ì-·}—KEüC£ôÊIãI
û0g,ãIüÈI ôIüýG÷¥(œ‘H$ˆH m ÉÇÅÚÃæ'K/O”È£Ó£…ˆj?$Ð0x243f6a8885a308d3ÁDspÐ0x13198a2e03707344ÁÐ1Ÿ)"8 ¤Ð0xa4093822299f31d0Á‰lNì˜ú.Ð0x082efa98ec4e6c89ÁwÐ8æ!(EÐ0x452821e638d01377Ál é4ÏfT¾Ð0xbe5466cf34e90c6cÁÝP|É·)¬ÀÐ0xc0ac29b7c97c50ddÁ GµµÕ„?Ð0x3f84d5b5b5470917Áûy‰ÙÕ’Ð0x9216d5d98979fb1bÁ¬µß˜¦ 1ÑÐ0xd1310ba698dfb5acÁ\¬3ðLÅ3ðü¬3#d¸3
ÈÔ;0¼¸3\â3Ðd€4 ‰4@½,¿,
 )¿,9 
<@½,XY@½,œ€4Ð<Â6 ß?üû*äü¡3®üÙ3öü÷3Ø Ð§+Ð ”+Ð œ+ð$¥3ðTðLÐÝ3Ðû3ð¿, 'ÃWÄ[_ä3Qñ3SÅ×̰ ã ­3ýð ¶3 Å3ð Í3#
+)×Ì`V'
Î3$â3  N Ð ì3 F
\ $4  v
u@½,¿,
ž¿,¯  ³@½,Ð  Ò@½, ‹4 
 Ð ’4 Â6Ç6
¯  È6 Î6
ÐÏÌÉÆÐÃÐÂÐÁðÀðÐ1ðÐÐÏð²ÐÖðíð¿,ýÐÐöÃCÄHMä3@ñ3C
ŒÍAdÏA
×Ò ÍA ÜA|ÏA™Eüó?¦Ðœ@Ð ‰@¿, ‘@ýDýÕ»
ÂÀýÕ»¹· ÝAÃÁнл¿,¹Ð
¿, Ãܽà 3W…ˆŠŒŽí«Tû%ÙüƒXüFC This crate provides foldhash, a fast, non-cryptographic, minimallyÁüGKH DoS-resistant hashing algorithm designed for computational uses such asÁü“2/ hashmaps, bloom filters, count sketching, etc.ÁÆúüÊ)& When should you **not** use foldhash:ÁôúüøLI - You are afraid of people studying your long-running program's behaviorÁüÅOL to reverse engineer its internal random state and using this knowledge toÁü•HE create many colliding inputs for computational complexity attacks.ÁÞúüâHE - You expect foldhash to have a consistent output across versions orÁü«PM platforms, such as for persistent file formats or communication protocols.Á ÁüƒHE - You are relying on foldhash's properties for any kind of security.ÁüÌDA Foldhash is **not appropriate for any cryptographic purpose**.Áúü•NK Foldhash has two variants, one optimized for speed which is ideal for dataÁüäIF structures such as hash maps and bloom filters, and one optimized forÁü®=: statistical quality which is ideal for algorithms such asÁüì@= [HyperLogLog](https://en.wikipedia.org/wiki/HyperLogLog) andÁü­52 [MinHash](https://en.wikipedia.org/wiki/MinHash).ÁãúüçOL Foldhash can be used in a `#![no_std]` environment by disabling its defaultÁ¤·  `"std"` feature.ÁÌ ú # UsageÁÜ úüà NK The easiest way to use this crate with the standard library [`HashMap`] orÁü¯
IF [`HashSet`] is to import them from `foldhash` instead, along with theÁüù
LI extension traits to make [`HashMap::new`] and [`HashMap::with_capacity`]ÁÄÆ  work out-of-the-box:Áß ú  ```rustÁüï (% use foldhash::{HashMap, HashMapExt};Á˜ úüœ  let mut hm = HashMap::new();Áܽ  hm.insert(42, "hello");Á  ```Áá úüå OL You can also avoid the convenience types and do it manually by initializingÁüµ
[X a [`RandomState`](fast::RandomState), for example if you are using a different hash mapÁü‘B? implementation like [`hashbrown`](https://docs.rs/hashbrown/):ÁÔúŒæÜä use hashbrown::HashMap;Áü€$! use foldhash::fast::RandomState;Á¥úü©>; let mut hm = HashMap::with_hasher(RandomState::default());Áäè hm.insert("foo", "bar");Á<…¬çúü‘IF The above methods are the recommended way to use foldhash, which willÁüÛOL automatically generate a randomly generated hasher instance for you. If youÁü«QN absolutely must have determinism you can use [`FixedState`](fast::FixedState)ÁüýIF instead, but note that this makes you trivially vulnerable to HashDoSÁüÇIF attacks and might lead to quadratic runtime when moving data from oneÁì‘ hashmap/set into another:Á¯úŒæü¿" use std::collections::HashSet;Áüâ# use foldhash::fast::FixedState;ÁúüŠA> let mut hm = HashSet::with_hasher(FixedState::with_seed(42));ÁäÌ hm.insert([1, 10, 100]);Á¬çñúüõLI If you rely on statistical properties of the hash for the correctness ofÁüÂXU your algorithm, such as in [HyperLogLog](https://en.wikipedia.org/wiki/HyperLogLog),Áü›DA it is suggested to use the [`RandomState`](quality::RandomState)ÁüàNK or [`FixedState`](quality::FixedState) from the [`quality`] module insteadÁü¯LI of the [`fast`] module. The latter is optimized purely for speed in hashÁüü30 tables and has known statistical imperfections.Á°úü´PM Finally, you can also directly use the [`RandomState`](quality::RandomState)Áü…KH or [`FixedState`](quality::FixedState) to manually hash items using theÁüÑ2/ [`BuildHasher`](std::hash::BuildHasher) trait:Á\„Œæü use std::hash::BuildHasher;Áü°'$ use foldhash::quality::RandomState;ÁØúüÜ.+ let random_state = RandomState::default();Áü‹41 let hash = random_state.hash_one("hello world");Á¬çÈú ## SeedingÁÛúüßNK Foldhash relies on a single 8-byte per-hasher seed which should be ideallyÁü®B? be different from each instance to instance, and also a largerÁüñC@ [`SharedSeed`] which may be shared by many different instances.Áµúü¹MJ To reduce overhead, this [`SharedSeed`] is typically initialized once andÁü‡PM stored. To prevent each hashmap unnecessarily containing a reference to thisÁüØLI value there are three kinds of [`BuildHasher`](core::hash::BuildHasher)sÁü¥:7 foldhash provides (both for [`fast`] and [`quality`]):ÁàúüäC@ 1. [`RandomState`](fast::RandomState), which always generates aÁü¨ a^ random per-hasher seed and implicitly stores a reference to [`SharedSeed::global_random`].ÁüŠ!FC 2. [`FixedState`](fast::FixedState), which by default uses a fixedÁüÑ!YV per-hasher seed and implicitly stores a reference to [`SharedSeed::global_fixed`].Áü«"KH 3. [`SeedableRandomState`](fast::SeedableRandomState), which works likeÁü÷"UR [`RandomState`](fast::RandomState) by default but can be seeded in any manner.ÁüÍ#RO This state must include an explicit reference to a [`SharedSeed`], and thusÁü $OL this struct is 16 bytes as opposed to just 8 bytes for the previous two.Á3W…ˆŠŒŽí«Ù147dÄ%ü41 The foldhash implementation optimized for speed.Á$Ì%¦¯\\GÅe
Œ   Á  
© ŒÌ š  
 ˆT:¿Á±³\b¦¨ˆ,¢{}ln]_NP?A|ÅÚüÌNüÛFC Initializes this [`FoldHasher`] with the given per-hasher seed andÁœ¦ [`SharedSeed`].ÁLÓèÐ èÚ ñk
Ÿò
«üõ ,é éÚö)§2¥
Íìö)
æö)ðT…

ö)$
ÿ+-Ô›Ú¤e¥e¦e§e¨e©eªe£eüÒ!êë êÚ ëÞ7§2 Û
˜R&ìêì ìÚ §2 ö
´*üÆí íÚïV§2 Ó
´=+ü¤î îÚ¿,§2 ±
´Ý+ü‚ L… ï ïÚЧ2 
$” ´},üà !ð ðÚð§2 î 
´.ü»"#\¾"ñ ñÚÜ#§2 Ê"
$Ï"´/¼Í$4Ð$ò òÚÐ ×$
$Ø$äµ(Ú´¤î(<ñ(Ú
ü‡* Ú!"ÆeÇe"\®*4³*  Úüã*$dæ*ó óÚÚ  ó*
"$ô*ü’/$Ë$´$¤Ó/<Ö/Ë##
$ÄŠ0Ë&'(¼1ü©0KH Generates a random [`SeedableRandomState`], similar to [`RandomState`].Á41Ë%%Ûp´›3ü·2IF Generates a fixed [`SeedableRandomState`], similar to [`FixedState`].Á,¢3Ë%%”—ü³5Pü¶4FC Generates a [`SeedableRandomState`] with the given per-hasher seedÁ¼5 and [`SharedSeed`].ÁLº5Ð Ë%%Ƙ
¾9ò
Ç9üÃ7(Ë*+ÆeÇe+\ò74÷7))Úü§8$dª8ô ôËÚ) ·8)
+$¸8|;¼-üý;4ü¦;<9 Creates a [`FixedState`] with the given per-hasher-seed.ÁLŠ<м,,êŸ
‰<ÜØ=¼/´/¤><“>¼..
/üò>¼12ÆeÇe2\˜?4?00ÚüÍ?$dÐ?õ õ¼Ú0 Ý?0
2$Þ?|Ò%ü63 The foldhash implementation optimized for quality.Á<Ú%·»ÅÏ\\IÅe354V¢e36«TqÙ37Ü39Œ | 3:â T¡ 3;ê
T­ 3<T<ƒuw¼dj,^`PRAC13|¢>üªNü±Fˆ‡œüׇöÐ ö¢= Þ=
>
©?ò
²?Ôñ¢@ABCDEFG¤e¥e¦e§e¨e©eªe£eFBEAD@GCü¨!÷ø ÷¢ øÞ7§2? ±?
@˜Ri@ìŽD‘ù ù¢ §2? š?
A´%Aüïú ú¢ïV§2? ü?
B$ ´áAüÓ û û¢¿,§2? à ?
C´Bü·

ü ü¢Ð§2? Ä
?
D
´YCü› ! ý ý¢ð§2? © ?
E ´Dü‚ #\… þ þ¢Ü#§2? ?
F$– ´ÑD¼ì  ÿ ÿ¢Ð? ö ?
G ü… àIJÆeÇeJHH¢üá$ à¢H ñH
JăÆLMN¼ˆü¢KÃ’4ÆKK
L´âüþIÉ“ÆKK
MüÓPüÖFÏ”¼¡ž•ÐЖÆKK
N
æFò
äFü™(ÆPQÆeÇeQOO¢üý$d€ Æ¢O O
Q¬Süé 4ü’ <9 Creates a [`FixedState`] with the given per-hasher seed.ÁLö ЬRR
S
pDü´$¬UVÆeÇeV\Ú$4ß$TT¢ü%$d% ¬¢T Ÿ%T
V$ %Dã%$ç%bcnÙó Ta WYû
Tm ŽWZŒ |‡ W\
T˜ W]¦
 W^·
 ŠW_È
 W`Ù
 ŒWaæTMàƒ,Y±³¢¤,˜wygiWYGIü¬#Œ²Wü *œ®Ðƒj”Ñü†-ÌW¤]¤]V¦]Á‚]üß3ø¤”&Ü#Ã| ijküÒ-ü¶KH Returns the globally shared randomly initialized [`SharedSeed`] as usedÁü†1. by [`RandomState`](crate::fast::RandomState).ÁlÙЖhhÓqüÀ2üµ<9 Returns the globally shared fixed [`SharedSeed`] as usedÁüö/, by [`FixedState`](crate::fast::FixedState).ÁdÍЖhhÜrüª(ü›=: Generates a new [`SharedSeed`] from a single 64-bit seed.ÁÝúüåIF Note that this is somewhat expensive so it is suggested to re-use theÁü³DA [`SharedSeed`] as much as possible, using the per-hasher seed toÁüü)& differentiate between hash instances.ÁD·Ðhh
k§~=„Ýê î Ó ü , ý8à þ& ÿ8$* Š È8Œ  « º, ¬8à ­$ ®8û
% É´Þ"\ä"WÐT%ó¼ö$üð$4”%Wtvyz{}àÓÆTÃ%î0npAtomicU8ÁDì%üÀnr®Dö%¼Ànsó  noYû
 ŽnoZŒ œ no\
ž no]¦
  no^·
¢ Šno_È
¤ no`Ù
¦ ŒnoaÚl bnoòi cnoŠ'nno«Ùno,¥%´·%>”×%*-ü†&'¤‰&n
tœÂ&t<closure_kind>Áu<closure_signature>Áu<upvars>ÁuutuÐÐЧ2Ä«4Œ²4nÐzÏùÛï{ïwx|Î4,Î4nvvðÃäç4$ç4nvvÉÇ545n „ª54°5n tÄ5$Ê5n ü®7&ÐüÝ7-œä7nÐÃ(ÿÿÿÿÿÿÿ( ý8}}Ü#|­<¤á<è<¢jt€?Lƒ?n§2žÅüýG'„HЖÂkì9”…Mp„õ%é1¬°'T¶'ЬÜ'Tâ'Ьˆ(TŽ(Ь´(Tº(Ьà(Tæ(ЬŒ)T’)Ь¸)T¾)Ьä)Tê)Ь*T–*Ь¼*TÂ*Ðüû*/|„+ÐÐÐÿ-Ã8Ä8üó?,dü?п,Ðì5Ãa4½_4üëESŒîEƒ ƒÞ7ÐÐÐÐ ‡FªI˜R,€FÌR’FÚRŸFœ L¨FüÊN†|ÍN Þ7ÐÐÐÐÐÐ éNÓK˜R,âNÌRøNÚR‰Os2ÁšOs3Á«Oœ L¸O¬–üûEB A [`Hasher`] instance implementing foldhash, optimized for speed.ÁÁúüÅIF While you can create one directly with [`FoldHasher::with_seed`], youÁüGD most likely want to use [`RandomState`], [`SeedableRandomState`] orÁü×-* [`FixedState`] to create [`FoldHasher`]s.ÁÚÂCHW
˜š„²ÐðЄ‚\‚ÐŒ˜ÐŒ¯Ðڜٜ ÚÚŽ
œ´â'üë&XU A [`BuildHasher`] for [`fast::FoldHasher`](FoldHasher) that is randomly initialized.Á\í'Ú'‰ú2
^WžŸ¤ÿ'|ÿ'м™(\™( Í'ÚÀ1À1À1ÚÀ1À1Ú£Ù£À1À1 ÚÚ¢Ó'¢
£À1%2%2Ú¥Àc¥%2%2ˆ Ú ˆ c cˆ¢cµ
 `£cÃg `àB¤GS
–g¤Ú'¤
¥%2±%2ô®.üß+KH A [`BuildHasher`] for [`fast::FoldHasher`](FoldHasher) that is randomlyÁü«,MJ initialized by default, but can also be initialized with a specific seed.Áù,úüý,KH This can be useful for e.g. testing, but the downside is that this typeÁüÉ-FC has a size of 16 bytes rather than the 8 bytes [`RandomState`] is.Áœ¹.ËN™æ :¹ä§¨¤Ó.|Ó.¦¦Ðüí. \í.¦¦Ж ™.Ëî5î5î5Ëî5î5ˬ٬î5î5Š ŠËË«Ÿ.«
¬î5S6S6Ë®Àc®S6S6Œ Ë Œ c cˆ¢cµ
 `£cÃg `àB¤GS
–g­¦.­
®S6±S6¬Û:ü9_\ A [`BuildHasher`] for [`fast::FoldHasher`](FoldHasher) that always has the same fixed seed.Áý9úü:;8 Not recommended unless you absolutely need determinism.ÁTæ:¼Ypö›þkº°¤÷:|÷:¯¯Ð Æ:¼¶:¶:¶:¼¶:¶:¼´Ù´¶:¶:Ž Ž¼¼³Ì:³
´¶:;;¼Àc;; ¼  c cˆ¢cµ
 `£cÃg `àB¤GS
–gµÓ:µ
;±;¬Øü»GD A [`Hasher`] instance implementing foldhash, optimized for quality.Áƒúü‡IŠÁüÑGÝÁü™-®Â¢›/±·×Ëš¸üô",ÿ··ÚÉ>É>¢ºÙºÉ>É> ¢¢¹Ð¹
ºÉ>´ËüÈ
[X A [`BuildHasher`] for [`quality::FoldHasher`](FoldHasher) that is randomly initialized.Áà
­U\j<¼Äè3»»Ú ­àöEöEöEàöEöEàÀÙÀöEöE à࿳¿
ÀöEwFwFà´ÂwFwFàÁÁ
ÂÏFÏFàÄÀcÄÏFÏF à  c cˆ¢cµ
 `£cÃg `àB¤GS
–gÃÃÃ
ÄÏF±ÏFô¹üÞNK A [`BuildHasher`] for [`quality::FoldHasher`](FoldHasher) that is randomlyÁü­MÜÊûúüÿK¿ËüËF”ÌœÄÆlÆ4aþh—ÆüÞ 3ÅÅË  Æ™H™H™H!Æ™H™H!ÆÊÙÊ™H™H ÆÆÉ ¡É
Ê™HII"ÆÌ´ÌIIÆËË
ÌsIsI#ÆÎÀcÎsIsI˜š ˜Æ  c cˆ¢cµ
 `£cÃg `àB¤GS
šgÍÍ
ÎsI±sI¬Äüúb_ A [`BuildHasher`] for [`quality::FoldHasher`](FoldHasher) that always has the same fixed seed.ÁÝúüá;¾Ñ¬“tÔŒ¿‘!ôмà3Ïϼ$¬6M6M6M%¬6M6M%¬ÔÙÔ6M6M ¬¬ÓÓ
Ô6M·M·M&¬Ö´Ö·M·M¬ÕÕ
ÖNN'¬ØÀcØNNœž œ¬  c cˆ¢cµ
 `£cÃg `àB¤GS
žg××
ØN±N¬åüÆMJ A random seed intended to be shared by many different foldhash instances.Áúü˜[X This seed is consumed by [`FoldHasher::with_seed`](crate::fast::FoldHasher::with_seed),ÁüôXU and [`SeedableRandomState::with_seed`](crate::fast::SeedableRandomState::with_seed).Á ¬/Á´>{=ÚÔÙÙ´$ Ü#ßRßR(ÝÙÝßRßRŸ ŸÜÜ
ÝßRYSYS)ßÀcßYSYS ¡¢   ¡ c cˆ¢cµ
 `£cÃg `àB¤GS
¢–gÞÞ
ßYS±YS¬—;T¢;ùt³æ‚Ûáô‚<Ô‚<nàà§2 6þ:2èVíVôV3WW3åÙå7W:W£ £ä7„;ä
å„WJWOW4çÀcçjWmW¤¥¦ ¤ ¥ c cˆ¢cµ
 `£cÃg `àB¤GS
¦–gæ8‹;æ
ç
X±X!4É4Á3É4Ô2É4 íÉ4‰2É462É4ã1É41É4=1É4ê0É4š0É4Ë/É4!-É4»+É4I*É4Ž)É4 ÃÉ4C)É4ð(É4(É4J(É4÷'É4¤'É4T'É4Ò&É4U%É4;$É4sÉ4
É4VÉ4äÉ4$É4*É4%2É4ºÉ4úÉ4É4S6É4QÉ4É4É4;É4_
É4 É4ò
É4ø
É4ÏFÉ4t É4`É4fÉ4sIÉ4ëÉ4×É4ÝÉ4NÉ4õÉ45É4;É4YSÉ4FÉ4É4ŒÉ4YÉ4%,=KRhZSharedSeed::global_fixedÁhttps://docs.rs/hashbrown/Áfast::FixedStateÁquality::RandomStateÁ»ÜMinHashÁ%https://en.wikipedia.org/wiki/MinHashÁ HashMap::newÁÔ3À\core::hash::BuildHasherÁ
core::hashÁíSharedSeed::global_randomÁ hashbrownÁÏ
çó†ô¯Ü)https://en.wikipedia.org/wiki/HyperLogLogÁ¾ôÊôÀíó  std::hashÁ¡õ½õædÏ
fast::RandomStateÁïõçó HyperLogLogÁœö¾ôíÏ
¤std::hash::BuildHasherÁó ïö«¡õÅe“÷ïõfast::SeedableRandomStateÁµ÷œöquality::FixedStateÁä÷¤ïöó «HashMap::with_capacityÁ“÷Êó«øµ÷›ôÕø¤ä÷Ô«Ùôôˆù\ÑõÊó«ø¦†ô›ôÕøÏÜÔÀÊôôôˆù\½õÑõ× fast::FoldHasherÁÜÏ
¤ó «\Åe¢eFoldHasher::with_seedÁ× àúÜÏ
¤¯«Ùó \¦û× àúÏ
¦Ü¤ó «\¦û× quality::FoldHasherÁÔÏ
¤ó »«\Åe¢e¦û× ·ÀüÏ
¤ÏÔ«Ùó \¦û× ÀüÏ
ÅÔ¤ó «\¦û- crate::fastÁSeedableRandomState::with_seedÁ× +crate::fast::SeedableRandomState::with_seedÁ crate::fast::SeedableRandomStateÁcrate::fast::RandomStateÁcrate::fast::FixedStateÁÏ
¤ó «¦û"crate::fast::FoldHasher::with_seedÁcrate::fast::FoldHasherÁŠþ× šþÂþòþ¦—ÿ¹ÿÏ
¤«Ùóÿš€ó ¦ûŠþšþÂþ× òþ—ÿÏ
¹ÿ¯¤ó óÿ«¦ûš€ÃLðìŠ  غãàéæ³Œ""“""Û Þ ã ŒMÃMÐLÇLùMÌìÍì“íµßíßÅe¢eÃLðìŠ  غãàéæ³Œ""“""Û Þ ã ŒMÃMÐLÇLùMÌìÍì“íµßíßÅe¢eÃLðìŠ  غãàéæ³Œ""“""Û Þ ã ŒMÃMÐLÇLùMÌìÍì“íµßíßÃLðìŠ  غãàéæ³Œ""“""Û Þ ã ŒMÃMÐLÇLùMÌìÍì“íµßíß RandomState per_hasher_seed global_seed SeedableRandomState shared_seed
FixedState
inner
SharedSeed
seeds
GlobalSeed
_no_accidental_unsafe_init}ÿ„‘…§…¹…Ó…å…ö…‚†“†Ÿ†°†цÜãºñBBvO¨¥AÒA¬=:¿ÈñŽw³¼ºò½¿)Ù42!:ΜŽES¬é5f_„’üJ.•ÃëùÇÜÓeîÅ©þŒ²TuÈpÐyÌ¡÷ZcVQµè×Z:hä³0A5€­cU³S—žwWžw?{-s#@.ùPÉ?%Vع
4‚¼g)šôL b¼Žq"ÍûÃ#…¸èkž/„=g³£KCµ–`C.§Fê§QKY0s*W$S6Có¿QP°öJaà°SMý2ï8vå—%Ó­iŽý§=9@0ÝKË