! / 0 0 0 0 922 ` Ž>Ž>Ž>Ž>Ž>Ž>Ž>Ž>Ž>Ž>_RINvMNtNtCs6i54tJFfzR_5alloc2io5errorNtNtNtCsgxBkk5gSRhY_4core2io5error5Error3newNtNtCsfWxbvLhUTPg_9getrandom5error5ErrorEB1l__RNvMNtCsfWxbvLhUTPg_9getrandom5errorNtB2_5Error10from_errno_RNvNtNtCsfWxbvLhUTPg_9getrandom8backends27linux_android_with_fallback17use_file_fallback_RNvNtNtCsfWxbvLhUTPg_9getrandom8backends27linux_android_with_fallback4init_RNvNtNtNtNtCsfWxbvLhUTPg_9getrandom8backends8use_file5utils9get_errno9get_errno_RNvXNtCsfWxbvLhUTPg_9getrandom15error_std_implsNtNtNtCsgxBkk5gSRhY_4core2io5error5ErrorINtNtBP_7convert4FromNtNtB4_5error5ErrorE4from_RNvXs0_NtCsfWxbvLhUTPg_9getrandom5errorNtB5_5ErrorNtNtCsgxBkk5gSRhY_4core3fmt5Debug3fmt_RNvXs1_NtCsfWxbvLhUTPg_9getrandom5errorNtB5_5ErrorNtNtCsgxBkk5gSRhY_4core3fmt7Display3fmt_RNvNvNtNtCsfWxbvLhUTPg_9getrandom8backends27linux_android_with_fallback10fill_inner12GETRANDOM_FNDW.ref.rust_eh_personality// 68 ` getrandom-5cf023e77805dc5f.getrandom.b9b603931878f6f8-cgu.0.rcgu.o/ lib.rmeta/ 0 0 0 644 100056 ` ELF>X…@@GNUÀrust Ê‚#rustc 1.98.1 (48a229cea 2026-09-01)ÁûÊÆÍRLñ.åSÛAúwjL-df1bddb45adbe94bÁcfg_ifÁ¿ÅÓ:.ó�M¦b™Fh\-7b8f778351493918Á±ò‰<å%Z‰>¸64‡ËV`-2d2ab9fb0fe1def5Á‰m6GÞ­n6ÇèÆ2-64f5f36fb0927694Á«ª1Úë• ¢›ºXÝÓrŽ*-1ad4f876c768bda9Á»ÄóG Øg{ë(3íi«F×-06449a08aaab5e30Árustc_std_workspace_coreÁ€û{ù`ä"Ei¥€ÞÏ%G-cb0d4d77988d81b5Áó"Æ)ΉÉðÛÕpEÍ—E-3ec41d3a5a80a4a4Á miniz_oxideÁÐ8°ø‚ðbž Lƨ°J-e44eaef1807e5fc0Áadler2Á9lí©yA6P/D$UBŸ-dca52f01a59c33e7Á hashbrownÁ™¸ÈXó®÷ …ùý{e-143c77bb957d9940Árustc_std_workspace_allocÁð…¨À �¶÷Üúò·_z%í-145a318e0772276cÁ std_detectÁK(ƒ0ì*ãÛ8²D?-f99feda5ce9e492aÁrustc_demangleÁµ%jŽeårVŠÕÓ•-cfd0ab54bb33760eÁ_Í}λ—©ŒÕž§C•×o-360da4ba13154744Á addr2lineÁ‹c²ŽúY\ÈGÞö÷ö--09755979c57b7e64ÁgimliÁ¢±QÄÍ`ª§DÞåù¬y-9a1fede77fbbf2f0ÁobjectÁö‚F λâËvú.zËí-7ff85ea729a864ffÁmemchrÁž˜]²1<õ¶=U�ý�Où-0e3477fb2664a277Á  ÿŽ—jl‹®¾To–K™G-549498e8b2e4d924Á rand_coreÁçïª\eµ@oQ~Lq"¬-3af13fe8574a9eb1Á»9|:×H”©~´CZÊG-65e1a9c648e56d89ÁimplementationÁt‰ getrandom_backendÁ extern_implÁüÝ !D inner_u32ÁL„ÅandroidÁ¬¿ÅlinuxÁœÖü¾,üº1D inner_u64ÁL�Å¡ =Å´ 6413D±$ÆÅ¡ ¬“Å´ œªü’,üŽ1û_backendsÁerrorÁ‰  UNSUPPORTEDÁ ERRNO_NOT_POSITIVEÁ  UNEXPECTEDÁ INTERNAL_STARTÁ  CUSTOM_STARTÁ  from_errnoÁ from_neg_error_codeÁ  raw_os_errorÁ  new_customÁ  new_internalÁ  internal_descÁññutilÁslice_assume_init_mutÁ �uninit_slice_fill_zeroÁslice_as_uninitÁ#�slice_as_uninit_mutÁ%�‰ Í truncateÁerror_std_implsÁ*‰***.”sys_rngÁ000005ErrorÁ5 try_next_u32Á5 try_next_u64Á5try_fill_bytesÁ0fillÁ fill_uninitÁ¥«use_fileÁDDDDDDDDDDutilsÁNNN get_errnoÁQ¿N sanitizerÁSSunpoisonÁNNsys_fill_exactÁW0impl Fn(&mut [MaybeUninit]) -> libc::ssize_tÁW D FILE_PATHÁD FD_UNINITÁDFD_ONGOING_INITÁDFDÁD fill_innerÁ^ D open_readonlyÁD open_or_waitÁDopen_fdÁD±cccccccwaitÁcwakeÁcwait_until_rng_readyÁlinux_android_with_fallbackÁmmmmmmmmmm m m m m m GetRandomFnÁm NOT_AVAILABLEÁminitÁmuse_file_fallbackÁmŒ€lazyÁ���������LazyPtrÁŠ Š�Šó�Ž�Ž˜ Ž cold_initÁ‘�‘&impl FnOnce() -> Result, E>ÁŽtry_unsync_initÁ”�”׎ unsync_initÁ—impl FnOnce() -> NonNullÁ— € GETRANDOM_FNÁ€ Q RawOsErrorÁNonZeroRawOsErrorÁî   ó¥Ž§Ý ª•0SysRngÁ¬ 00¯Ž00²ñ0´>U8W8W8^8`88€8‘8”8—8¦8¨8«8«88888888 8"8#8%8°8³8³8³878889898@8A8ù   ¡î¢ó ý!.]+'ˆ�…�Ì��Ç�÷±����Ÿg�¤g�¬�7�7îž7½ Ù6wQ?mˆ!؆�ˆ¬¬­ô è©‰ÒæÎÚb…Õù ÕŸgÕöÕ�Õ›Õ£ ±¬¤ ®¬¥ ¯¬§ © ª   ²¬ .�7´¬5¬:¬ù qˆ…Ì�Ç÷±�Ÿg¤g ¬ö�›íUüÐ�ôσ  ý­ý­ MaybeUninitÁÿ­uninitÁ瀮�çÙW£Ÿì·œçbufÁŒüÙ‡àUÿ!i tà í4å ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw•� ì  š‰ýDƒlƒŒ +É ‡#’ž]NW �<¹   !- ´¹ O‰!ì² ,î\ö| R  ¿ øjà4 üà3 ¤à 1•˜d Ͱ#,^ Lšÿÿÿÿÿÿÿÿÿ¤Ú  Ä�  5 ,¢ (ìŒ Àœ•� ¨  É‚  ß °_í zü¹´I•¸d i•µd Àœ�'£ä£ä¤äTryFromIntErrorÁ¥äó ¬q£:{ a •Ád •°e ÖŒ  ¯�'-ÜŒ Àœ�'� àŒ ’ ä·  ¯�'Åê· ÊüÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¸Ä¬©^—¯f��' �¸j“ üà4 m�' ” øl³7ü³6ì³�éøiUðøi+‰UùŒ Àœ�'�)�g ”¸  €�5­¸  ÀœÚ)�Õš¸ Êü‹)�' ³¸ + k“   [‹)='D)E¿»+' u¹»+)'°##+) Ú»+( +( €�•à», Àœ•�( ñ»+(Î)Õ'½ Ô †*ýžú+iݬúi$‘Þi%¿Éi$Õ¿Éi$ ¡å„âi ýÿ=(Ÿ%ýÃ')š"%  ýù=.Ÿ % ¦>Ÿ%ý²â9i!eÅâi"ý羌#"½Óâi# #ƒ$&~*&  "#y$!&t$& êâi# "ýòáˆi  ! ùâi!  ‰ãi2$ý™ú1i Å™žž Éúi õúi Ã…n.* .*àæ0-É…n/ Àœæ0�* Í…n.* è€0+‡0+¯æ0~1 Êü‹)æ0+0+léü³71mæ0žmæ0ž ê Ä îEä…n. Àœæ0� �Ìä0,ë0,€�â2-é2- ÀœÚ)�,à2 Êü‹)æ0-Ý2-ä0,ômé [‹) . 0Ú5.×50.Ø °#÷50Õ5/Ü5/€�Ó6 Àœ•�/Ð5/… 0Œ .°rS W8vüùçü²“üÖïÍÔÛ ü¦Ÿ  ' üêàýÐ!Di´w¡Täù•ÎcñѸM ý´‹àÇ_�'§'�YÓ"§'�Uÿ•ôõuÓŒ¥ïŒ¬ýYÓ" 7£7•-ýŒý�·Ä×`�'�ç ýá·!ý�¸$ýƒøùi”x¡Ì·ý‹Ýÿi’x¡/ýïÝ›iý�ÞýiýˆÉWiÞw¡eœÞiýí7ŸÇv¡Eý¬*ñƒÇ9�î$ƒù�ƒâ[Á°ù�êä4ýøj•١uè;Ÿý´œM•ã¡}—<ŸýÉÅt‹í¡Àýµ&¹š!ß ¡ížÆ‹!ý–´ø ŒŽ¡EÉâiÚÇv¡ÏÔ$ÇÎ$È%Á°Á%º$Ù¡´$°$㡪$¦$í¡`$ )ß ¡š)ý캗Ü`•��Ó åÖ»++ýÑé$”,É�mä»+ýÕ„¨n�Xæ0�ÄÑ…¾…n..R×`æ0� M00I00áU´…ç33¥ Ü`•��\ Ÿ55›6É�•52‰!ŒÁž<ÛÓ"D€  ¢°#Ø  Ó"Û Ù"Ï žÏ °#²z ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^‹)�'@ ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw�'�� ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw�'§'á ‹)Ý �' ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^‹)æ0F ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwæ0�– řǙș­É™Ê™àË™óG*¤�R{9 æ0Ú ‹) 7C���'¿�'Õ �'M �' �¦ ‹)Ž ( �'& æ0u Ì.h žB ž Ì.ý �'æ   …¿Éi°Ce °Cm $°#5Ö»+�< +o +æ0c .æ0š 0�< 0‹)$ 0°#:5�r 5¥ 5žþþtsys_fillÁ�resÁ|ÍCdÍCp¶ÚÆ J  Ž ¢ «1¨ ®Æ ¢ ŽŸ æ0ž1޲ æ0žerrnoÁ ‰Œ× �\ãÞ4 7Œ½  �Œ� �ý˜p •§¡�'ýÞœ!•¨¡�')§¡�'$¨¡�'Ó"aÍ"˜�$tº%äÓ"aÓ"a ³w¡¿˜7 “�™G[™GUùÝi ̫鎈%ƒ ©«é�ˆ%ƒÌG � ü…nÒÿ�’YO�€˜7d§' þu' � ΆΆ]φinnerÁ×4+]„å1‚Rc"/dev/urandom"Áÿÿÿÿ 7-1Áþÿÿÿ 7-2Á̧T§ħ�' è5é5ê5 __variant1Áë5ì5 __variant2Á>�Xß'ö«ü�1  ´� ÃíI‘+ Àüàd}®®«°¿ ”3¯f*²Û�íI|õìIûZõħ�'_Á$ªŒ¾  ü‡# ÿ ”íIÚ)™íI ~ 7•ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwŽKÚ)Uÿ°Lÿ ŠŠ‹…�ó� ŠMO–Ò¡8íI$‡ÿ§LlœôŒ¼ùÿ $‹d�ü¨4 ìI�'°#ÿü„X  ›  °#Uÿ ·N ˆüèuÿ W›íNðN…O$þ‚4 Ü âüÖ� äå,è    ÿ°#+ 믎K ªh o ¬Ùlá € ŽKý¥$b  ìIuï‰b -ï‰b   3  ìI ü‰b ýÞ‰b  Š€ üà…ü¦¿üŒ×ü�¬—íI°LHüäWý±‰Rb íIòýÖ|ûbÏíIEã‰bÏíIEõ‰b/ÏíIDÓ‰!Œ“ž$òŽKÌU·N©®O�‡O•‰Qm½Lå°#çîìImÞ‰bìIjŽKhdestÁqfptrÁE getrandom_fnÁ+Gå}ŽKŠNm©OÕ›Lq }ŽK#2€¡‰QOŽKW_d}ŽKüã|ò lò Ù�-; Btã ­a–VRc �üÞ% Š–V ‚‰�ü¹PŠŠ‹…�ó� ŠMO–Ò¡8–V$Ïÿ`ÿ`V�a¬â`½68ŸœRt –V…Xˆ8vì4ì ÿ Ž#ו$ìÿ•4<J%ηUÈ·ÿ· > > €�^ ^ ÀœÚ)ËY ƒ ÊüÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÚ)ËY®®«°¿ ”3¯f*²Û�–V ¢ ¢ xvòwò […Z¦ ­å ó  ÿ°#ó    €ËY? ÀœÚZËY ^  *1 ° ó ¶ Ø Ø ¯ÚZø Êü…ZÚZ } “<ìmÚZzdŠ ]  …Xm˶ Eж %�¯ÏØW“2“2 UnsafeCellÁ•2�ñ.ç–\*=°"�ø`ø`ù`Align8Áû`óë` x:B’‚£+}…XM‡Œ …X¨ ý¾¶' ÿ Ôa…XÖÚ¶ÿ“�”�•�Ï–�—�И�™�Gš�›�Fœ���Ü­Úݱä}LÂ-ß¶« ä¶  Ÿ <ª  ÀœÚZËY(‘üú½üâU ë×`ÚZËYÀæâ™Ï–VDŽ :Ü`ÚZËYËYû5  2 ÉËY- ý«µË¸a–Vä„ ýù¶M Êa–Ve ýè¬ßÏ 2Þ^-´·ýØ>ŒçÞ^…X5º·ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÚZËY¬Â �W,ŠËX$‘ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^…ZÚZH¬cG…ZÐÚZ¿…Xª°#-á·ÚZØËY>…Z^°#ê ËY ó • ©_Ý  ¦^å�¯Ïä¦èŽæÆ iŽ\…ÅXÆ_‡  � ÿlš  má®g ØW¦^ …XýÕ®!ÿ Ùa…XMÿç_-ð®7 ’  �  £  ¤ ü‚ ¢,< õ®Ú |· Uõ œ  ýã1!œ  �'mîRb  $Ž ÿ¤ÿ ÿ ‘–VËYËX$ÿ P|„  x ýÕS#b uìKb  ÚZýÐS)b Å™ÚZ øSb Ú àÚZ<â  ÀœÚZËY è ‹Š“”Šü‹ ™¤Õ ýÒ­¬·a–VYiÊa–VEæ®h 2Þ^b_çÞ^…X[ý²RùbÄ–VÎýšNŒæ–VMòRbý´'CŒí–VeÌŒý¶ìœÿ–VMÙŒý彜  ùôƒâ[ ý¯ùôêä4 ý¥.çœ ‡ð5ù œ ý˜@œ €ð•e÷1œ ýäH¦bÖVÅÞSbEÇ9œî$ƒ@Á°: ¬c¬ë ‡d,¥ ËX$´ …XÞřǙș­É™Ê™àË™óG*¤�R{9 ÚZ/ÚZRËX¡—g&Þe¸ÚZ¹�'^  ¦¤¦†Ž±Û»i@ËX ËX®gb ü¯éœˆ%ƒ8? ™–V¿ 7•ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÚZÚ)Uÿºp¥ÿ ”–VÚ)™–Vºp 7ÃpŸqýöõ ©ì÷ÿ°#í¯ÚZì»—2 ÚZTχd,¢ºp$©Èp†Âq©°#�—3¦7¦‡¤¶qÔ4¢$¢ºp"ÿ Ž#ºp•4ÿ•GO §TŸ ÀœÚZÚ) ¨©™�ÈpžÂq¤ÚZ±ºp°¦%ºpÊ’tÙ¦dŸ‡O¼¬­m ìILÅüŸ3H)ÿ¾N Ð. ÑÜ›AçÞw¡d° ç¡íI4½°#‰ ®O‚ž…·N ìIî�'чO©°CAþ2¾Sí‡OØ™G·N_ref__getrandom_fnÁ(FÄ FÉ ¦$)�5 �?HRGÍ ¨GË •‡y$. Uý3‚%ý3‚ ù ù ú ¬ü óÕ  >¨WTÑp™Y 7ý¯}%‚  7 †4‚]‹4‚-‹4‚ ¡zB  7 •4‚yêéÞ_%HØ «HHÏ ýÐ3L‚Š  7ˆHì ýÁt› ‚¼  7-‚4‚¼  7-‘4‚ùêÄÞ6_ܲÍý3‚o‡yv‡y} 7j¡zh 7¡z¦î ³½¬ï  ”ï  ‚ 0üÐ5 �,ç%_Á¬õ  ”õÇ} ˆØ} .üÏ< �,í%_Á¬ÿ  ”ÿÇ} ’Ø} .üá4 �,÷%_Á<øý 7¾N) ¾N9  ø 7I 7f+ 7r 7üÕ+  7Të¾N²¸2_Á<çì 7¾N) ¾N9  ç 7I 7f+ 7r 7üÆ) 7TÚ¾N²¸2_Á $Š$4‘$¡zm  7 œ$Lå-ÿ 7%$�.ÿřǙș­É™Ê™àË™óG*¤�R{9  7üâ-Àl×. Ü’€€€€ ¡/ ±/²/<ü™.‰]è’ÿ ø«#ÿÙ…8)„åšr9„¹¿r Å™ 7ù„Ž¿4r!„«¿rÿ¡„,üÌ#æ ü†$¬ �¼  7,˜$ù„ ¾¬r©›5ù„ݾorù„¯™Ûr㛉„ï¾rý¬’xÈù„ó™'rȹ„‘¿r¡„”é#�$à# 7¡zW 73•x•€:codeÁÁúI„�šrøš 7I„®šrøš 7Ù…ÒÙ…Ù$�1Œº1 7ü¤1'ÿ 7 Ê1üÛ11üä1&e°b‚ýÇ^"‚ řǙș­É™Ê™àË™óG*¤�R{9 ¡zb•ªb‚°#" Ðb‚à¡z ·f‚ÄüÕ18   Œ2 ’2“2üŠ0‰ü™1zýða΂¹  7(eËb‚ýä\�‚¸  7AÇ9éî$ƒ5Á°G�,­0Ø} ¢0 7Ú 7Ú¡z¦ŸŠ�°#=Ëb‚C¤?߇ל¤1 7 ·åééˆ%ƒ PO »1j 7Ejg 7dc$…2u }üä1  ¹  77  ‰2ä  âáàßÜ�zØ}y 7R 7RØ}¡z& 7Ĥ«߇‹Dn 7$‹4Œª4 7ü’4)ÿ 7 º4üË41üÔ4&­ª ŸŠÄcp°#ƒbà¡z_süÅ48   ü4 ‚5ƒ5üí2–ü‡4|\¹  7ÒVS¸  7�ÇN5Á°G�,™3Ø} Ž3 7v 7v¡zBŸŠæ°#I‰¤<߇·Á¬’4  7é�C áà «4û 7Öû_  7õô$õ4 üÔ4 ˆ�2, ù4Á  ¿¾½¼¹�jØ}i 7Þ 7ÞØ}ÿ¡z± 7¾¤š߇ `  7¤Ø ¦¯‹üØ  –V ÷L×ä ü÷íüΖýä®E‹é ý­ý­­ÿ­Â瀮�çÙW£Ÿì·œ–V¼ ¼—D¿ �˜,ž»—Ç �˜êåí Ò´¤Ù üÙ -ø˜ … Lå ò %üúøüÏ £é¼—s㘬³ Ö˜,Ÿ ø˜|»—™åí Ó i<ó Õüƒ|ÿý­ý­­ÿ­Â瀮�çÙW£Ÿì·œ¾N ú %ºË| R  Ì.Û  æ   ÿ�'þ    ó Àzú ¼ú  Ô²  ÿ €$Ç (ÿžØ€²0" -"> €�@€Ì ? Àœ  ð�À >">"€�^$^$ ÀœÚ)�ƒ$ Êü‹)ý�¢$¢"z‘{‘ [‹)biå'ó'ÿ°#ó'''€�?( Àœ¾N�^'æí° ’ �¼¼} üÉ !ÜÛ!× ÿ�ÕÔ Eü½ 0 Àœý�� „ Ø"Ø"¯ý�ø# Êü‹)ý�}"œÄú mý�¸ äÿˆ  ýŒÚ$•& ¾N ˜ üü  Àœ¾N� ›f!'*üÀ Þüï ¯üÛ Ãüö ~cjqÞýʃR|þ¾Näý ýžÊº|‚¾Nd˜ © ç¾N¡4¥ RÙ¾NÜÒ Çv¡üµ 9 Ç+ 5 Á°G R Ù¡e m ã¡€ ˆ í¡Û  ß ¡¶üÁ®A¤�Ì ܲÒ´w¡T�k×`•�Ÿ…‘TÜ`ý���Éq|É��› ð,¤¢é k×`ý���…""‘""ýùàÒ|ƒ¾NlŒýÿ×µ•%†“›¾N�¨ä|%TÜ`¾N��áq''|(É��'ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¾N�”Ö “›/ž@Ì.áÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^‹)ý�ËÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwý��‹)êý�Y¾N5“›6 “›uºË| °CÛ ‰!Oý�L°#$#�>�¡ °C@ ý�Ø"�>"‹)^"°#P!'�'ó'ÍC˜dstÁß ¦VÆ ¯Ž!‡«"§¾N�'«"§¡�'¿"¨¡�'ýÂØ)•‰“›¾N••ÌGR#ðœM™G¿ ɾNýÎâ#|<ŸS ÿý­ý­­ÿ­Â瀮�çÙW£Ÿì·œ ¦P Ÿ'  Ì.Û  æ   ÿ�'þ    ŸÀ|¦¼¦ M  V ÿðœK r ÿÊK x+ u+> €�ˆ I  ? Àœý��¶ >">"€�^$^$ ÀœÚ)�ƒ$ Êü‹)ý�¢$¢"|½}½ [‹)X_å'ó'ÿ°#ó'''€�?( Àœ�^'Üã° ¾ É´ÿ À  C !�¡ „ @  Àœý�� u Ø"Ø"¯ý�ø# Êü‹)ý�}"—Ħmý�³ä«´  > &  Ä ü¨  Àœ� Ç\(*üìÞü›¯ü‡Ãü¢~Y`gÙ9 þä©5 ‚dÄÙ)ç¡4ÑRÙÜþÇv¡üá9 Ç+ 5 Á°G R Ù¡e m ã¡€ ˆ í¡Û  ß ¡¶0 A„- 5 = , Ò´w¡+ k×`•�É …‘TÜ`ý���ó q|É��Å ðV ÎÌé Dk×`ý��^…""‘""* ƒl¸% %†ã­ %TÜ`��°q''|(É��'ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw�”‚ã­øž,Ì.­»©J”ªJ‹)!ý�•qã­r ã­z °CÛ ‰!Æý�à °#›+�>�¡–°C·ý�Ø"�>"‹)^"°#P!'�'ó'ÍC¼™«‹¦{Æ áŽXë"§�'«"§¡�'¿"¨¡�'u‰ã­••ÌGR#𜽙G¿ ÉpO¼°(O·Õ Õ!+(QÄÿ Êgÿ (0QɳIÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw•ĤĤŤî Ñâó:½ÖàMÌܾÔ €g€gŠ‚gê ûcƒgþûcØ«q¢1È¡!œ/:”¿ERÒµ8RËÕ¬ù"ÿ 'ú7ü­MüÐ"@BdèǨ”Ë ÕL½ AžÂz¬š%ÿ (Û 8üŽ Müñ$@CdÉ ãº”¬ æÂLž  ?¥ÃxŒ¼ ÿ @$È Ó 9üï d‰!Œ  æÂL� ý�$Œ �SDªÄ„ ø~‚8ü‚7ü—3°CBQ ¿  ¿ |˜ ÿÈ& ü”@9  ÿðœ ,ð ÷+  , L&%!�¡ �I Àœý�� b ØØ¯ý�ø Êü‹)ý�}~¹ü‚8 mý�¹ º4Àÿ‰!w>  €�: û ? Àœý�� L >>€�^^ ÀœÚ)�ƒ Êü‹)ý�¢¢òø[‹)ëòåóÿ°#ó€�? Àœ•�^ovŸ�ù¥ f @ü¬œáèïˆ%ðÕ�¢éÿ�ÐAÍÕ ÝÌ Ò´w¡Ëk×`•�i…‘T Ü`ý���“q|É��e ðönlé äk×`ý��ã…‘TÜ`•�� q|É��‰!ŒÌý�$¸»©D”ªCžB‹)ý�§°CW�¡u‰!Ðý�Í�'¿ °#2�>�¡¨°CÉý�Ø�>‹)^°#P!�ó�S²Æ ŽFXðœj™G¿ ¿¿ÊÚµìyÂËÿðœÀç«÷+,ÿ ë êæ �¡â á  R  Àœý��ï  >>€�^ ^ ÀœÚ)�ƒ Êü‹)• ¢ ¢À�v}[‹)ë ò å ó  ÿ°#ó     €�? Àœý�� ^  p w & ÍM˜Y!úAwlszhÒ´w¡fk×`•�…‘TÜ`ý���,q  | É�� ý ðŽ     é {  ”ªÄõž$ÔÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^‹)•à‰!*‹)˜ý�/�'¿°#2�>‹)^°#P! � ó �¡)! °CJ! �SÅÆ Žôÿ•-ðœÁ™G¿ ÿžÂ5 �#B Ǩ”à", žÂn õ ÿ¥Ã ±%Cì 㺔�% ¥ÃD äÕ Š–V‹*�W5ØW<C„Û   ¡'�2¡z9@       *0@ABCû_4¢­\ºý­ìL€;ô4¸¬<ô­<î,Ø >‡Tßž?ü9ø$ü9,) [`Error::UNEXPECTED`]: Error::UNEXPECTEDÁüf  [`fill_uninit`]: fill_uninitÁøåž ü®&åž# getrandom: system's random number generator [![Build Status]][GitHub Actions] [![Crate]][crates.io] [![Documentation]][docs.rs] [![Dependency Status]][deps.rs] [![Downloads]][crates.io] [![License]][LICENSE-MIT] `getrandom` is a Rust library for retrieving random data from (operating) system sources. It is assumed that the system always provides high-quality, cryptographically secure random data, ideally backed by hardware entropy sources. This crate derives its name from the Linux `getrandom` syscall but is cross-platform, roughly supporting the same set of platforms as Rust's `std` library. This is a low-level API. Most users should prefer using a higher-level random-number library like [`rand`]. [`rand`]: https://crates.io/crates/rand ## Examples ```rust fn get_random_u128() -> Result { let mut buf = [0u8; 16]; getrandom::fill(&mut buf)?; Ok(u128::from_ne_bytes(buf)) } ``` ## Supported targets | Target | Target Triple | Implementation | ------------------ | ------------------ | -------------- | Linux, Android | `*‑linux‑*` | [`getrandom`][1] system call if available, otherwise [`/dev/urandom`][2] after successfully polling `/dev/random` | Windows 10+ | `*‑windows‑*` | [`ProcessPrng`] | Windows 7, 8 | `*-win7‑windows‑*` | [`RtlGenRandom`] | macOS | `*‑apple‑darwin` | [`getentropy`][3] | iOS, tvOS, watchOS | `*‑apple‑{ios,tvos,watchos}` | [`CCRandomGenerateBytes`] | FreeBSD | `*‑freebsd` | [`getrandom`][5] | OpenBSD | `*‑openbsd` | [`getentropy`][7] | NetBSD | `*‑netbsd` | [`getrandom`][16] if available, otherwise [`kern.arandom`][8] | Dragonfly BSD | `*‑dragonfly` | [`getrandom`][9] | Solaris | `*‑solaris` | [`getrandom`][11] with `GRND_RANDOM` | illumos | `*‑illumos` | [`getrandom`][12] | Fuchsia OS | `*‑fuchsia` | [`cprng_draw`] | Redox | `*‑redox` | `/dev/urandom` | Haiku | `*‑haiku` | `/dev/urandom` (identical to `/dev/random`) | Hermit | `*-hermit` | [`sys_read_entropy`] | Hurd | `*-hurd-*` | [`getrandom`][17] | SGX | `x86_64‑*‑sgx` | [`RDRAND`] | VxWorks | `*‑wrs‑vxworks‑*` | `randABytes` after checking entropy pool initialization with `randSecure` | Emscripten | `*‑emscripten` | [`getentropy`][13] | WASI 0.1 | `wasm32‑wasip1` | [`random_get`] | WASI 0.2 | `wasm32‑wasip2` | [`get-random-u64`] | SOLID | `*-kmc-solid_*` | `SOLID_RNG_SampleRandomBytes` | Nintendo 3DS | `*-nintendo-3ds` | [`getrandom`][18] | ESP-IDF | `*‑espidf` | [`esp_fill_random`] WARNING: see "Early Boot" section below | PS Vita | `*-vita-*` | [`getentropy`][19] | QNX Neutrino | `*‑nto-qnx*` | [`/dev/urandom`][14] (identical to `/dev/random`) | AIX | `*-ibm-aix` | [`/dev/urandom`][15] | Cygwin | `*-cygwin` | [`getrandom`][20] (based on [`RtlGenRandom`]) | Motor OS | `x86_64-unknown-motor` | [`RDRAND`] Pull Requests that add support for new targets to `getrandom` are always welcome. ### WebAssembly support This crate fully supports the [WASI] and [Emscripten] targets. However, the `wasm32-unknown-unknown` and `wasm64-unknown-unknown` targets (i.e. the target used by `wasm-pack`) are not automatically supported since, from the target name alone, we cannot deduce which JavaScript interface should be used (or if JavaScript is available at all). We do not include support for these targets in the default configuration because our JS backend (supporting web browsers, web workers and Node.js v19 or later) requires [`wasm-bindgen`], **bloating `Cargo.lock`** and **potentially breaking builds** on non-web WASM platforms. To enable `getrandom`'s functionality on `wasm32/64-unknown-unknown` using [`Crypto.getRandomValues`] via [`wasm-bindgen`], enable the `wasm_js` crate feature. WARNING: We strongly recommend against enabling this feature in libraries (except for tests) since it is known to break non-Web WASM builds and further since the usage of `wasm-bindgen` causes significant bloat to `Cargo.lock` (on all targets). The only exception to this rule: if your crate already unconditionally depends on `wasm-bindgen` or `js-sys` on "unknown" WASM targets then it's acceptable to enable this feature unconditionally. ### Opt-in backends `getrandom` also provides optional (opt-in) backends, which allow users to customize the source of randomness based on their specific needs: | Backend name | Target | Target Triple | Implementation | ------------------- | -------------------- | ------------------------ | -------------- | `linux_getrandom` | Linux, Android | `*‑linux‑*` | [`getrandom`][1] system call (without `/dev/urandom` fallback). Bumps minimum supported Linux kernel version to 3.17 and Android API level to 23 (Marshmallow). | `linux_raw` | Linux, Android | `*‑linux‑*` | Same as `linux_getrandom`, but uses raw `asm!`-based syscalls instead of `libc`. | `rdrand` | x86, x86-64 | `x86_64-*`, `i686-*` | [`RDRAND`] instruction | `rndr` | AArch64 | `aarch64-*` | [`RNDR`] register | `efi_rng` | UEFI | `*-unknown‑uefi` | [`EFI_RNG_PROTOCOL`] with `EFI_RNG_ALGORITHM_RAW` (requires `std` and Nightly compiler) | `windows_legacy` | Windows | `*-windows-*` | [`RtlGenRandom`] | `custom` | All targets | `*` | User-provided custom implementation (see [custom backend]) | `unsupported` | All targets | `*` | Always returns `Err(Error::UNSUPPORTED)` (see [unsupported backend]) | `extern_impl` | All targets | `*` | Externally-provided custom implementation (see [externally implemented interface]) Opt-in backends can be enabled using the `getrandom_backend` configuration flag. The flag can be set either by specifying the `rustflags` field in [`.cargo/config.toml`]: ```toml # It's recommended to set the flag on a per-target basis: [target.'cfg(target_os = "linux")'] rustflags = ['--cfg', 'getrandom_backend="linux_getrandom"'] ``` Or by using the `RUSTFLAGS` environment variable: ```sh RUSTFLAGS='--cfg getrandom_backend="linux_getrandom"' cargo build ``` Enabling an opt-in backend will replace the backend used by default. Doing this for an incorrect target (e.g. using `linux_getrandom` while compiling for a Windows target) will result in a compilation error. Be extremely careful while using opt-in backends, as incorrect configuration may result in vulnerable applications or applications that always panic. Note that using an opt-in backend in a library (e.g. for tests or benchmarks) WILL NOT have any effect on its downstream users. [`.cargo/config.toml`]: https://doc.rust-lang.org/cargo/reference/config.html ### Raw Linux syscall support Currently the `linux_raw` backend supports only targets with stabilized `asm!` macro, i.e. `arm`, `aarch64`, `loongarch64`, `riscv32`, `riscv64`, `s390x`, `x86`, and `x86_64`. Note that the raw syscall backend may be slower than backends based on `libc::getrandom`, e.g. it does not implement vDSO optimizations and on `x86` it uses the infamously slow `int 0x80` instruction to perform syscall. ### Custom backend If this crate does not support your target out of the box or you have to use a non-default entropy source, then you can provide a custom implementation. You need to enable the custom backend as described in the [opt-in backends][opt-in] section. Next, you need to define an `extern` function with the following signature: ```rust use getrandom::Error; #[unsafe(no_mangle)] unsafe extern "Rust" fn __getrandom_v03_custom( dest: *mut u8, len: usize, ) -> Result<(), Error> { todo!() } ``` This function should, ideally, be defined in the root crate of your project, e.g. in your `main.rs`. This function MUST be defined only once for your project, i.e. upstream library crates SHOULD NOT define it outside of tests and benchmarks. Improper configuration of this backend may result in linking errors. The function accepts a pointer to a buffer that should be filled with random data and its length in bytes. Note that the buffer MAY be uninitialized. On success, the function should return `Ok(())` and fully fill the input buffer; otherwise, it should return an error value. While wrapping functions which work with byte slices you should fully initialize the buffer before passing it to the function: ```rust use getrandom::Error; fn my_entropy_source(buf: &mut [u8]) -> Result<(), getrandom::Error> { // ... Ok(()) } #[unsafe(no_mangle)] unsafe extern "Rust" fn __getrandom_v03_custom( dest: *mut u8, len: usize, ) -> Result<(), Error> { let buf = unsafe { // fill the buffer with zeros core::ptr::write_bytes(dest, 0, len); // create mutable byte slice core::slice::from_raw_parts_mut(dest, len) }; my_entropy_source(buf) } ``` ### Externally Implemented Interface Using the nightly-only feature [`extern_item_impls`] it is possible to provide a custom backend for `getrandom`, even to override an existing first-party implementation. First, enable the `extern_impl` opt-in backend to allow usage of this nightly feature. Then, you may provide implementations for `fill_uninit`, `u32`, and/or `u64` with an attribute macro from the `implementation` module. [`extern_item_impls`]: https://github.com/rust-lang/rust/issues/125418 ```rust use core::mem::MaybeUninit; #[cfg(getrandom_backend = "extern_impl")] #[getrandom::implementation::fill_uninit] fn my_fill_uninit_implementation( dest: &mut [MaybeUninit] ) -> Result<(), getrandom::Error> { // ... Ok(()) } ``` For further details on what a suitable implementation for `fill_uninit` may look like, see [custom backend]. `getrandom` will provide a default implementation for `u32` and `u64`, but does not currently provide a default for `fill_uninit`, even if one is normally available for the current target. If no implementation is available, a compilation error will be raised with instructions for how to provide an implementation. ### Unsupported backend In some rare scenarios, you might be compiling this crate for an unsupported target (e.g. `wasm32-unknown-unknown`), but this crate's functionality is not actually used by your code. If you are confident that `getrandom` is not used in your project, but it gets pulled nevertheless by one of your dependencies, then you can enable the `unsupported` backend, which always returns `Err(Error::UNSUPPORTED)`. ### Platform Support This crate generally supports the same operating system and platform versions that the Rust standard library does. Additional targets may be supported using the opt-in custom backend. This means that as Rust drops support for old versions of operating systems (such as old Linux kernel versions, Android API levels, etc.) in stable releases, `getrandom` may create new patch releases that remove support for outdated platform versions. ### `/dev/urandom` fallback on Linux and Android On Linux targets, the `/dev/urandom` fallback is present only if either `target_env` is `musl`, or `target_arch` is one of the following: `aarch64`, `arm`, `powerpc`, `powerpc64`, `s390x`, `x86`, `x86_64`. Other supported targets [require][platform-support] kernel versions that support the `getrandom` system call, so the fallback is not needed. On Android targets the fallback is present only for the following `target_arch`es: `aarch64`, `arm`, `x86`, `x86_64`. Other `target_arch`es (e.g. RISC-V) require sufficiently high API levels. The fallback can be disabled by enabling the `linux_getrandom` opt-in backend. Note that doing so will bump minimum supported Linux kernel version to 3.17 and Android API level to 23 (Marshmallow). ### Early boot Sometimes, early in the boot process, the OS has not collected enough entropy to securely seed its RNG. This is especially common on virtual machines, where standard "random" events are hard to come by. Some operating system interfaces always block until the RNG is securely seeded. This can take anywhere from a few seconds to more than a minute. A few (Linux, NetBSD and Solaris) offer a choice between blocking and getting an error; in these cases, we always choose to block. On Linux (when the `getrandom` system call is not available), reading from `/dev/urandom` never blocks, even when the OS hasn't collected enough entropy yet. To avoid returning low-entropy bytes, we first poll `/dev/random` and only switch to `/dev/urandom` once this has succeeded. On OpenBSD, this kind of entropy accounting isn't available, and on NetBSD, blocking on it is discouraged. On these platforms, nonblocking interfaces are used, even when reliable entropy may not be available. On the platforms where it is used, the reliability of entropy accounting itself isn't free from controversy. This library provides randomness sourced according to the platform's best practices, but each platform has its own limits on the grade of randomness it can promise in environments with few sources of entropy. On ESP-IDF, if `esp_fill_random` is used before enabling WiFi, BT, or the voltage noise entropy source (SAR ADC), the Hardware RNG will only be seeded via RC_FAST_CLK. This can occur during early boot unless `bootloader_random_enable()` is called. For more information see the [ESP-IDF RNG Docs][esp-idf-rng] or the [RNG section of the ESP32 Technical Reference Manual][esp-trng-docs]. ## Error handling We always prioritize failure over returning known insecure "random" bytes. Generally, on supported platforms, failure is highly unlikely, though not impossible. If an error does occur, it is likely that it will occur on every call to `getrandom`. Therefore, after the first successful call, one can be reasonably confident that no errors will occur. ## Panic handling We strive to eliminate all potential panics from our backend implementations. In other words, when compiled with optimizations enabled, the generated binary code for `getrandom` functions should not contain any panic branches. Even if the platform misbehaves and returns an unexpected result, our code should correctly handle it and return an error, e.g. [`Error::UNEXPECTED`]. ## Sanitizer support If your code uses [`fill_uninit`] and you enable [MemorySanitizer](https://doc.rust-lang.org/beta/unstable-book/compiler-flags/sanitizer.html#memorysanitizer) (i.e. `-Zsanitizer=memory`), we will automatically handle unpoisoning of the destination buffer filled by `fill_uninit`. You can run sanitizer tests for your crate dependent on `getrandom` like this: ```sh RUSTFLAGS="-Zsanitizer=memory" cargo test -Zbuild-std --target=x86_64-unknown-linux-gnu ``` ## Minimum Supported Rust Version This crate requires Rust 1.85 or later. The most reliable way to get an MSRV-respecting behavior is to set `CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=fallback` when doing `cargo update -p getrandom`, like so: ```sh CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=fallback cargo update -p getrandom ``` ## License The `getrandom` library is distributed under either of * [Apache License, Version 2.0][LICENSE-APACHE] * [MIT license][LICENSE-MIT] at your option. ### Contribution Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. [//]: # (badges) [GitHub Actions]: https://github.com/rust-random/getrandom/actions?query=branch:master [Build Status]: https://github.com/rust-random/getrandom/actions/workflows/tests.yml/badge.svg?branch=master [crates.io]: https://crates.io/crates/getrandom [Crate]: https://img.shields.io/crates/v/getrandom [docs.rs]: https://docs.rs/getrandom [Documentation]: https://docs.rs/getrandom/badge.svg [deps.rs]: https://deps.rs/repo/github/rust-random/getrandom [Dependency Status]: https://deps.rs/repo/github/rust-random/getrandom/status.svg [Downloads]: https://img.shields.io/crates/d/getrandom [License]: https://img.shields.io/crates/l/getrandom [//]: # (supported targets) [1]: https://manned.org/getrandom.2 [2]: https://manned.org/urandom.4 [3]: https://www.unix.com/man-page/mojave/2/getentropy/ [4]: https://www.unix.com/man-page/mojave/4/urandom/ [5]: https://www.freebsd.org/cgi/man.cgi?query=getrandom&manpath=FreeBSD+12.0-stable [7]: https://man.openbsd.org/getentropy.2 [8]: https://man.netbsd.org/sysctl.7 [9]: https://leaf.dragonflybsd.org/cgi/web-man?command=getrandom [11]: https://docs.oracle.com/cd/E88353_01/html/E37841/getrandom-2.html [12]: https://illumos.org/man/2/getrandom [13]: https://github.com/emscripten-core/emscripten/pull/12240 [14]: https://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.utilities/topic/r/random.html [15]: https://www.ibm.com/docs/en/aix/7.3?topic=files-random-urandom-devices [16]: https://man.netbsd.org/getrandom.2 [17]: https://www.gnu.org/software/libc/manual/html_mono/libc.html#index-getrandom [18]: https://github.com/rust3ds/shim-3ds/commit/b01d2568836dea2a65d05d662f8e5f805c64389d [19]: https://github.com/vitasdk/newlib/blob/2d869fe47aaf02b8e52d04e9a2b79d5b210fd016/newlib/libc/sys/vita/getentropy.c [20]: https://github.com/cygwin/cygwin/blob/main/winsup/cygwin/libc/getentropy.cc [`ProcessPrng`]: https://learn.microsoft.com/en-us/windows/win32/seccng/processprng [`RtlGenRandom`]: https://learn.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-rtlgenrandom [`Crypto.getRandomValues`]: https://www.w3.org/TR/WebCryptoAPI/#Crypto-method-getRandomValues [`RDRAND`]: https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide [`RNDR`]: https://developer.arm.com/documentation/ddi0601/2024-06/AArch64-Registers/RNDR--Random-Number [`CCRandomGenerateBytes`]: https://opensource.apple.com/source/CommonCrypto/CommonCrypto-60074/include/CommonRandom.h.auto.html [`cprng_draw`]: https://fuchsia.dev/fuchsia-src/zircon/syscalls/cprng_draw [`esp_fill_random`]: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/random.html#functions [esp-idf-rng]: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/random.html [esp-trng-docs]: https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf#rng [`EFI_RNG_PROTOCOL`]: https://uefi.org/specs/UEFI/2.10/37_Secure_Technologies.html#efi-rng-protocol [`random_get`]: https://github.com/WebAssembly/WASI/blob/snapshot-01/phases/snapshot/docs.md#-random_getbuf-pointeru8-buf_len-size---errno [`get-random-u64`]: https://github.com/WebAssembly/WASI/blob/v0.2.1/wasip2/random/random.wit#L23-L28 [configuration flags]: #configuration-flags [custom backend]: #custom-backend [unsupported backend]: #unsupported-backend [`wasm-bindgen`]: https://github.com/rustwasm/wasm-bindgen [`module`]: https://rustwasm.github.io/wasm-bindgen/reference/attributes/on-js-imports/module.html [`sys_read_entropy`]: https://github.com/hermit-os/kernel/blob/315f58ff5efc81d9bf0618af85a59963ff55f8b1/src/syscalls/entropy.rs#L47-L55 [platform-support]: https://doc.rust-lang.org/stable/rustc/platform-support.html [WASI]: https://github.com/WebAssembly/WASI [Emscripten]: https://emscripten.org [opt-in]: #opt-in-backends [externally implemented interface]: #externally-implemented-interface [//]: # (licenses) [LICENSE-APACHE]: https://github.com/rust-random/getrandom/blob/master/LICENSE-APACHE [LICENSE-MIT]: https://github.com/rust-random/getrandom/blob/master/LICENSE-MIT [`Error::UNEXPECTED`]: https://docs.rs/getrandom/latest/getrandom/struct.Error.html#associatedconstant.UNEXPECTED [`fill_uninit`]: https://docs.rs/getrandom/latest/getrandom/fn.fill_uninit.html Áü“š%https://www.rust-lang.org/favicon.icoÁ„ð9https://www.rust-lang.org/logos/rust-logo-128x128-blk.pngÁlŸ*0@ABCûýP_þP­ýPý­ìüP;ôûP¬<ô Q­<îûP >‡úPž?Q‚Q…Qœ•}Q´¯rQdÈDÌDm‰ Lô 'œzÍ Lÿ (œ{ŒTç €œLÖ,ÚžŸ ¡‰%ñ5ûc„#L/T�� äÐü’96 This target/platform is not supported by `getrandom`.Á\Ú  �üÏ#üŠ@= The platform-specific `errno` returned a non-positive value.Á”Ù  �Üáü�LI Encountered an unexpected situation which should not happen in practice.ÁTë  �üÕ tÛ   7ôÆdÌ   7üÍ,ÅuefiÁ”›¤šü‘TÛ 7�Bÿ  º%åD,æüÚ;Åúƒ”¨¤§üžœè 7�Bÿ  ߇$üüÌ#/üùB? Extract the raw OS error code (if this error came from the OS)ÁÀ�üÈMJ This method is identical to [`std::io::Error::raw_os_error()`][1], exceptÁüšKH that it works in `no_std` contexts. On most targets this method returnsÁüêOL `Option`, but some platforms (e.g. UEFI) may use a different primitiveÁü¾ QN type like `usize`. Consult with the [`RawOsError`] docs for more information.Á”!�üœ!MJ If this method returns `None`, the error value can still be formatted viaÁüî!! the `Display` implementation.Á”"�üœ"OL [1]: https://doc.rust-lang.org/std/io/struct.Error.html#method.raw_os_errorÁüð"IF [`RawOsError`]: https://doc.rust-lang.org/std/io/type.RawOsError.htmlÁdÓ#�¡„Bÿ  šCüŠ0(ü¸/MJ Creates a new instance of an `Error` from a particular custom error code.ÁT—0Ø}�Bÿ  ¤Füí21d�3Ø}�Bÿ  Ç}¤IIü‰5/lŒ5Ä Ä�řǙș­É™Ê™àË™óG*¤�R{9  Bÿ  š5 $›5üåC!�Ì‹D� gü«D8®DÅÆÇ Å� Æ€g€gŠ‚gê ûcƒgþûcØ«q¢1È¡Ç׿Bÿ ²D $³Dœ ¹DÜõH�¥gü—I8šIÈÉÊ È� É€g€gŠ‚gê ûcƒgþûcØ«q¢1È¡Ê׿Bÿ žI $ŸIœ ¥IDá$å "#%'()î,  >­\7ý­í D¸å,IêidL$+„2?.0 "ü÷P¬…Ë Ë�˜ ˼—ÿ�!! ¥þÆ–V › –VåêKüðI´÷Ì Ì  Ìÿ�Bÿ • "å,ŽüÂ;|ÉÍ Í¼— Í�˜Bÿ�$$ 㺔 Ù #–Vå,ÜüúNœˆ Πμ— Î�˜ÿ�&& ¦ º” œ  %–VåµLüÀ (LÇ ǨBÿžÂüì(LóãºBÿ¥Ãü‡'D•¾NBÿ )Žžœ„Ó‰|ò¼ì|ˆ‰ *+î,  *,>ioÁ. ‰*-„ :d .<) ô3 �/®/ÜX $[ ��Bÿ.. /errÁ` \ÎÓÌœ¸ܲ<Ò¬­î,  01> TryCryptoRngÁd"›03TryRngÁ40�04dKL/1´éÕ6789‘’“”879T†,‹55�ü­0d°Ó ÓÕǨBÿ5 ½5 7$ÂüŽ 0d‘ Ô ÔÕãºBÿ5 ž 5 8$£ üï Btò ÕÖ ÕÕ Öÿ�‰!Bÿ5 � 5 9$† �Sõaä× Õõ_ÓÌœâÜÜ `|¯ÓÌœ‘Ü‹`dÉú_ý_ï_ò_ü¬1üà SP Fill `dest` with random bytes from the system's preferred random number source.Á´�ü¸NK This function returns an error on any failure, including partial reads. WeÁü‡NK make no guarantees regarding the contents of `dest` on error. If `dest` isÁüÖJG empty, `getrandom` immediately returns success, making no calls to theÁü¡  underlying operating system.ÁÂ�üÆOL Blocking is possible, at least during early boot; see module documentation.Á–�üšMJ In general, `getrandom` will be fast enough for interactive usage, thoughÁüèJG significantly slower than a user-space CSPRNG; for the latter considerÁü³IF [`rand::thread_rng`](https://docs.rs/rand/*/rand/fn.thread_rng.html).Áý�t� # ExamplesÁ��<” ```Áüœ1. # fn main() -> Result<(), getrandom::Error> {ÁäÎ let mut buf = [0u8; 32];Áüë getrandom::fill(&mut buf)?;Át‹ # Ok(()) }Á<šü£$³× ×ÿ�‰!Bÿ ¾ªÄ�SfgüÁLüÊGD Fill potentially uninitialized buffer `dest` with random bytes fromÁü’DA the system's preferred random number source and return a mutableÁì× reference to those bytes.Áõ�üùJG On successful completion this function is guaranteed to return a sliceÁüÄFC which points to the same memory as `dest` and has the same length.Áü‹HE In other words, it's safe to assume that `dest` is initialized afterÁüÔ$! this function has returned `Ok`.Áù�üýJG No part of `dest` will ever be de-initialized at any point, regardlessÁÄÈ of what is returned.Áá�tåÙ£ô�lø ```ignoreÁü†>; # // We ignore this test since `uninit_array` is unstable.ÁüÅ*' #![feature(maybe_uninit_uninit_array)]Áüð1�¤ü¢A> let mut buf = core::mem::MaybeUninit::uninit_array::<1024>();Áüä;8 let buf: &mut [u8] = getrandom::fill_uninit(&mut buf)?;Át •¥<¯ü£\ÈØ Ø ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw Øÿ��Bÿ Ú A�S¤küÐ""üñ FC Get random `u32` from the system's preferred random number source.Á¸!�t¼!Ù£Ë!�<Ï!ü£ü×!1�¤ü‰"%" let rng_seed = getrandom::u32()?;Át¯"•¥<¾"ü£×"ǨBÿ Büñ$"ü’#FC Get random `u64` from the system's preferred random number source.ÁÙ#�tÝ#Ù£ì#�<ð#ü£üø#1�¤üª$%" let rng_seed = getrandom::u64()?;ÁtÐ$•¥<ß$ü£ø$ãºBÿ Cdü D€ NZ[\]^`abcî,B DE>]$_ΆDHÚ4eè5DI­\wý­DJ AtomicI32ÁL—ÈžDL²D¢“�DMd;}$M|Mqsbd„rWüMGAC13¤Ã,ÒQSWî,  NO>­\!ý­NP¿Lh RVd9´)l/L3NRerrno_locationÁtÙ ´5Q�üÖ ( Lä  7Bÿ�$l>LBNU­\ý­ST´üÐ3DÞ¶ ¶ •ÿ ì Uþt¤]æü¹™tÇ· · Ó"‰!Bÿ’XX äþÆÓ"üŠ0¸…#Ó" ¸ ü�+¸�#Ó"帰#l­ WÓ"þß·C@Z\ýW�Y�Y�YYW˜7´âLèD ßHäëLñD 7üŽ"|”D 7¤«²Dÿ`ÿ`V�a¬â`½68ŸœRt 7BÿÿÿÿüèDTï¹ ¹ ‰!Bÿ € ^�S$ú,Ò^�_�_�__^_íNðN  7üÓ;lÖDº ºßHÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw 7�Bÿ ê `ª $äü‘/d”Dó¼Bÿ aü§*<ªDó¼Bÿ bD‹$Å¡ ¬Ý#Å´ œô#üÜ#,üÓ#7$�$Djklî,¦$ ceE>ƒ­$]cfí|±$ \cg¡lÂ$ `ch«,Ñ$Nci,ž$fhQS@B13#%¤´'$Â'D•Bÿ j¤ú+$ˆ,D•Bÿ küï99¤ý9D‰!Bÿ lü’ Ü– |}~€øDODmnî,d mo>Ú4€è5mq­\’ý­msçLŸ Òmtí $µ¸mv«<»®mw«,ÖNmx‰ Å 'zÍ À ({|H¶d]ª$o\{�üo �’€‚üoCu¯hj|Ì]\æ!!! !„Œ\‘m·Nüà$læmŽKäß$âmŽKBÿ°LüêGŒím» » ‰!Bÿ …ŠN�S$ÿüàD¢!¼ ¼ ‰!Bÿ øðœ�S2)DÐ$ÔmŠ‹ InfallibleÁT¸Ä�ƒí $/¸�…«<5®�† AtomicPtrÁLRŠa�ˆÏ`](https://doc.rust-lang.org/std/convert/trait.From.html).Á,æ �ý!.]+'¡¢¡z�Bÿ¹m3¡z�Bÿ   ¡Œì   ¡z E¾ K�Î;Î;Î;L�Î;L�¦†¦Î;Î;À À��Bÿ¥FÄ ¥ ¦Î;C<M�¨Î¨C<C<C<C<Á Á�•Bÿ§GË § ¨C<f=N�f=N�«ù±«f=f=Âà Â� Ã�BÿªHÏ ª «f=î f=ŒÕü:KH A [`TryRng`] interface over the system's preferred random number sourceÁ†�üŠQN This is a zero-sized struct. It can be freely constructed with just `SysRng`.ÁÜ�üàNK This struct is also available as [`rand::rngs::SysRng`] when using [rand].Á¯�œ³ # Usage exampleÁÇ�üË# `SysRng` implements [`TryRng`]:Á<ïü£ü÷/, use getrandom::{rand_core::TryRng, SysRng};Á§�ä« let mut key = [0u8; 32];ÁüÈ-* SysRng.try_fill_bytes(&mut key).unwrap();Á<öü£þ�ü‚;8 Using it as an [`Rng`] is possible using [`UnwrapErr`]:Á<¾ü£üÆ/, use getrandom::rand_core::{Rng, UnwrapErr};ÁÔö use getrandom::SysRng;Á‘�ü•$! let mut rng = UnwrapErr(SysRng);Áüº$! let random_u64 = rng.next_u64();Á<ßü£ç�üë)& [rand]: https://crates.io/crates/randÁü•TQ [`rand::rngs::SysRng`]: https://docs.rs/rand/latest/rand/rngs/struct.SysRng.htmlÁÜê [`Rng`]: rand_core::RngÁü†'$ [`UnwrapErr`]: rand_core::UnwrapErrÁ 4àÕè©‰ÒæÎÚb­ˆ)¬¬ÕÊ^Ê^Ê^TÕÊ^TÕ°†°Ê^Ê^Ï ÏÕÕBÿ¯O·¯ °Ê^ P¾UÕ_VÕ³ g³__ÐÑÒ ÐÕ Ñ€g€gŠ‚gê ûcƒgþûcØ«q¢1È¡Ò׿Bÿ²QIJ ³_œ_k`WÕµ÷µk`k`ÕBÿ´´ µxÿÿ ’ÿŽÿ�ÿKÿÿªÿÓÿ'ÿñÿmÿãÿéÿõ,ÿ(,ÿ ¼DÿÐDÿs+ÿ ¨Iÿ¼Iÿ£*ÿ2*ÿÑ)ÿX)ÿàÿÿÿ_ÿï&ÿ¤&ÿH&ÿ ’ ÿ¹!ÿ2ÿŽ  1https://deps.rs/repo/github/rust-random/getrandomÁunsupported backendÁdhttps://opensource.apple.com/source/CommonCrypto/CommonCrypto-60074/include/CommonRandom.h.auto.htmlÁMemorySanitizerÁApache License, Version 2.0ÁÁFrom;&ê:Ãë Â4Ë,ØÀ?ÂY³|Ñ%Á¹rG’[O覠^Úªi‡×ª+�hœë“¤œÅ·ü‹“ֲīoQÐÃMjRÈøJYéÒ±¥µ¥!o5V¦é¯i÷ ¢ƒˆ†«Ud5B¶¡Ô™Ü">VíV)Í"ö¦&«”…ÕÖs�K– t´FƒzüÎïÓ�0È¿aÝ]‡ßÿràÒ¨IÙQbQ‡a’YÏpË·à%»¿I ¨òÐ×rW't ¶º SJ°4»W&HDÄð¨pÚë`( Ý ô°W,³ûŠomBëO–GÂØø ùW£4�ÇÛòéa¢±b«€JŸT·KË·…ó üí +›}�2ÊŸ(?¬²>§Hë²=E¬Ü")ŠP~Ç¥¥+x>ð{«ßÍŠ×plþõ('°» ³ª˜ä-~`qÖè…¼p $¶.^¡�š[mBu,åÊû�&Ú�ÈizWq}tØuï»A£œâ9ó†2'™øl˜a7GhÈø÷G×ij¸Ïh”£+s Zž`€{¤šK,¸J©íaTÕ©…;œ]«Ò¦¾ ÿcØj€¼/­pµ�\»³1Ízn&b0ôÁ LÜódáýS­„ê¢#FÍ&IÑ®¨13UÊ ¨ŸÔªªŸyc‚ Ö=—z�âê„÷Ë ñšnw÷†Ýobf= ªYã£U¨D¶msÊ$í jôãñœ*ÌhËrõ“ŸæŸ}^Œ<~)=õïËÜ÷HKÚÁç¤Ûœ&1YÞãYGmN^H8Ž.ªñ�‚}W"Áa"§tô Þt] t ì–—Þ¹ñ¡[uLàiÍ~ÞЙÚöö©A@â�PÁlÕŠ¬@IŒ'¼Mˆ�çâÀ-Õ]ʼÞÁg|múÅg£¤ éîY§§~ àé“©×Îêâk$=–³€¼>ÓÝEîê3MƒZrB†üåÖx¨Ô˜­\\fÛáêe» ôï´ï]KU*4üò Þv~iò É¿¼ûcÀ1ܪæfBÏãæÜ".zò…´uP<•Rx0›p²FG†½é„6rì›+ÀêÉø /ú)öœªŸM£^Wu£],�ku釥F´•Ðè�vɨY¯&Ó͈§iÞÍÞ’v¦y!{F5h:4YØ[Ø¡Qñzº“ʶՉß”�ê#œ¤šŠs ò¼w_pì—b3¨’ó €æÅ|t²K-ß�¬ÝÇÖ¬'6&Þ „1m·UCpàv¥2ñ=øhœË°šäjÃf‚/æYàY2þP¢¯ /i²ìÈqKÄ¿©*ù—TÏó�� ‹ì¥âÝÇ ã¼JŸóqÝe�Ài¬Ñíf‹k ½FŸŒsÓ \×Z…¦’«ý2;ý3àØ€‚“7÷Gê„ÉX3fx1+T /¿æfÎëãtñNƒ0 ¿Aã,¡¹.ëúàµt‚ß S€ƒ¹tñÉ*ÑtÓÉ¢õ³þõ­ú±°œKi í|½érÏÌ�f×­›VQ%%{¹ST©F1G7%†^–f.N¸©�`e•àIâ¦#O:Í'TÄ=›ä£ úWsvj1�ppító|¿®zY£÷ R½Å¬ÇCqö� µÈJåîA0i½„ñõ4w?¥JnÃ#}�šG¡™@æÜ º°Zo@íä“MÅ8 ‘B\ÒVõ¦:ʼn-ĸ5™ˆŠvL0/¹M¶‡ýµ†�…·�ÓÇ)»‘°îë—O°$lêç< Ôt#ÏÒìˆì±�Î8k¯ˆ2Ž@R'Wt³Þxs½NÌÚö'’v;H]½í¹šÏ iÅò¤ç  [õòû“Çê)¸ø7WY)õG×Ïx)v`mw&o¨+˜›å¥qÚ�Î$zL¹õŽvó»­qw`òg<îÂU[ŠÝužjï–ÅÅ�ÄO)z$Öµð}œæ†åTÊLÐ*£…œÅ“¬0¿ªâiÅÏÿOzÝOúææ ~hk×…�Ò¦‡‚"(xWxD阻B'ÿiË%R®�kä|­©ËÎêpÏDð§+üÑö»FX^è†Z†�òÛ6J7ö]ÒXº*ä•«X!r§!å¨$K–®P'þLûEŒ’¢�Ë3°Ã:wŒ‚Ù„`ñ¤:=¿¾:`=©¨¨ ¬‚vO?CEy�éSÀkb,«ô­ôE¿ï¿=ÀýÈó˵Ì®Ù^Ú¬ÚÛûÞ àâÖnÓ¿Þ¿å¿-ÀhÀnÀ•ÀðÀQÁ¿Á×ÁðÁJ¤ ÂßÅuƳÆKÇ\ÇwÇ%È@ÈîÈLÉQÉTÉXÉ\ÉcÉéÉAÊÀÊ>ËnËžËØË5Ì:Ì?ÌXÌ–ÌÍÍ ÍÍÍFÍ^ͯÍÎhÎxÎ’άίενÎûÒ‰ ד ØœÙ.Ú3Ú6Ú8Ú<ÚAÚGÚIÚMÚSÚšÚŸÚ¤ÚÓÚÛÛ%ÛoÛwÛ;܂ܙܮÜÂÜ"ÝnÝÆÝfÞ˜ÞÉÞdßfßjßnßrßvß|߬ßÝßàÕàÚàßàâàèàêàîàôàöàüàáá ááá-áAápá¼áâ£â¦â¬â®â³â¹â»âÀâÅâ_ãxã¹ãöãÕä—åMæ›æÉæçç!ç è èpë‰ë›ëÊëçë7ìTìÁìÓìñìYí ò9òVò¨òºò×ò…ó¢ó< ¿í¿5ÀöÈó˱̤ Ù[Ú«ÚÛøÞà âz ÀWÇhÇ1ÈKÌ ÍtÎã›ã*ë—ëÆëØëEìÏìáìÝñ5òGò¶òÈò“ó          '      '(;¿ë¿3ÀÜÀ>Á«ÁÃÁÛÁ%Â|ºÅNÆ�ÆËÆ�ÇXÈôÈ{ÉÊYÊØÊVˆ˶ËñËo̯ÌJÍvÍÇÍÎÇÒøÖz؄٢ÙYÚ©ÚëÚÛ=Û�Û†Ü�ܲÜÚÜ:ÝÞÝ~Þ°ÞöÞ”ßÄßõßàá1áYáˆáÓá âËâ*ãaãÑãäíä¯å³æüçèëMërëþëˆìí»ñöñmòîò¹óÑnʿпӿڿá¿)À`ÀeÀjÀ‘ÀëÀMÁºÁÓÁëÁEŸÂÚÅpÆ®ÆFÇXÇrÇ!È;ÈêÈIÉNÉQÉVÉZÉ^É×ÉäÉ<ʮʻÊ,Ë9ËiË™ËÔË-Ì2Ì7Ì<ÌUÌ’ÌÍÍÍ ÍÍBÍYͪÍûÍdÎuΎΨάβθÎö҄׎ؘÙ+Ú0Ú3Ú6Ú:Ú>ÚCÚGÚKÚOڗڜڡÚÎÚýÚÛ ÛlÛqÛ*Ü7Ü~ܕܩܾÜÝjÝÁÝaÞ“ÞÅÞ`ßdßhßlßpßtßxß¨ßØß àÒà×àÜàßàäàèàìàðàôàúàþàáááá(á=áká·áâ â£â¨â¬â±âµâ¹â½âÂâãNã[ãtã¨ãµãñã¶äÃäÐäxå…å’å<æIæ–æÅæçççèè4ëlë„ë˜ëÇëäë4ìQì¾ìÐìîìUíÝñò6òSò£ò·òÔò‚óŸóÓóÙóßóæóìóòóøóþóô ôôôô"ô(ô.ô4ô;ôBôHôOôVô\ôbôhônôtôzô€ô†ôŒô’ô˜ôŸô¥ôͿ׿޿ç¿/ÀcÀhÀØÀ:Á§Á¿Á×Á Âd¢Å6ÆuƳÆwÇ@ÈðÈLÉTÉXÉ\ÉcÉÙÉéÉAʰÊÀÊ.Ë>ËnËžËíË0Ì5Ì:ÌXÌ«ÌÍ ÍÍFÍ^ͯÍ΋ΥίείÒàÖbØlÙžÙ.Ú8Ú<ÚAÚIÚMÚUÚšÚŸÚ¦ÚÓÚÛÛ%ÛoÛwÛ,܂ܙܮÜÂÜ"ÝÆÝfÞ˜ÞòÞfßjßnßrßvß|߬ßÝßàÕàÚàâàêàîàöàüàá ááá-áAápá¼áâ¦â®â³â»âÀâÇâãPã_ãªã¹ãöã¸äÅäÕäzå‡å—å>æ›æçøç èë7ëpëçëqìñì·ñàñVò×ò¢óÖóÜóãóéóïóõóûóôô ôôôô%ô+ô1ô8ô?ôEôLôSôYô_ôeôkôqôwô}ôƒô‰ô�ô•ôœô¢ô¨ôvÀåÀGÁ´ÁÍÁåÁ7ÂŽÂÌÅ_ÆŸÆ7ÇSÇdÇ È-ÈÓÈ·ÉáÉ.ʕʸÊË6ËdË”ËÆËGÌ€ÌÍSÍ›ÍìÍNÎpÎêÒw׈ؒÙùÚ_ÛÂÛ4Üx܎ܥܺÜâÜ\Ý«ÝSÞ�Þ¿Þ¢ßÒßà$á9ágá«áõáãâ?ãXãmã�ã²ãâãXäÀäÍä5å‚å�åçåFæ�æ»æ çèèë`ë}ë“ëÂëÔë$ìAì®ìËìÝì>íÂñò1òCò“ò²òÄòkó�óÉópÀÝÀ?Á¬ÁÅÁÝÁ/†ÂÄÅWÆ—Æ+ÇMÇ^ÇþÇ'ÈÇÈ ÉÛÉ$Ê~ʲÊýÊ0Ë^ËŽËÀËAÌxÌÍKÍ�ÍàÍBÎjÎàÒmׂ،ÙóÚUÛ«Û.ÜO܈ܟܴÜÜÜRÝ‚ÝIÞ‡Þ¹ÞœßÌßýßá3áaá¡áëáÎâ6ãRãdãzã¬ãÙã-äºäÇä å|å‰åËå@æaæµæÝæýçè ëWëtë�ë¼ëÎëì;ì ìÅì×ì0í¼ñ÷ñ+ò=ò…ò¬ò¾ò]ó‰óÀóxÀéÀKÁ¸ÁÑÁéÁ;Â’ÂÐÅeÆ¥Æ;ÇUÇfÇÈ/È×ÈÉÉ0ÊŸÊËfË–ËÈËIÌ„ÌÍWÍŸÍðÍRÎrÎìÒy׊ؔÙûÚaÛÜ|Ü�ܧܼÜäÜ^ݯÝUÞ�ÞÁÞ¤ßÔßà&á;áiá­á÷áíâFãrã™ãéã¦ä\å#æ”æ½æçèèëgë‚ë•ëÄëÖë)ìCì³ìÍìßìCíÄñò3òEò˜ò´òÆòpó‘óÎó'Â~»ÅOÆ�ÆÍÆ�ÇYÈ|ÉÊZÊÙÊWˇ˸ËpÌwÍÈÍÎÈÒùÖ{Ø…ÙíÚ>Û‘Û;ÝàÝ€Þ²Þ–ßÆß÷ß[áŠáÔáÍâ-ãÒãäîä°å ëOëÿë‰ì í¼ñ÷ñnòïòºó'Â~»ÅOÆ�ÆÍÆ�ÇYÈ}ÉÊ[ÊÚÊWˇ˸ËpÌwÍÈÍÎÈÒùÖ{Ø…ÙíÚ>Û’Û;ÝàÝ€Þ²Þ–ßÆß÷ß[áŠáÔá ã.ãÓãäñä²å,ëOëÿë‰ì ínòïòºóÂh¦Å:ÆyÆ·Æ{ÇDÈgÉíÉEÊÄÊBËrË¢Ë[ÌbͳÍγÒäÖfØpÙ×Ú)Û{Û;ÜÆÜ&ÝnÝÊÝjޜހ߰ßáßEátá¿áã½ãúãÙä›åMæŸæÉæ9ëêëtìôìâñYòÚò¥óz „ Ž ˜ %/ C M W a l Ð ý ãɺÊ8Ë6ÜZã´ãÂäÏä„å‘åHæ"A-DÚGK,LõLHV�`a™a*bUh¬l míšo#m%¥+Ç2™7c9J:Ì;-<~<´^_U`0> >?|?O@}F»IK$fmj*·mÚ#)$:$+D|FºI*LóLFV²^a—a(bShªlmdm˜m#Ø#þ)Å2—7a9E:µ;+<|<.>_S`‹`Ÿ> ?{?N@!A,DÙGK+LôLGV³^a˜a)bTh«lmem™n#Ù#l%ÿ)¶m¤+Æ2˜7b9I:Ë;n,<}</>_T`Œ`cÆ£ÆDãçãeë˜>?t?G@A$2$C$e%œ> ?x?K@A$6$G$i%=–ÂÔÅiƧÆ?ÇÈÛÈÐÉ4ʦÊ%ËiË™ËÌˈÌ£ÍôÍVÎïÒ}׎ؘÙýÚeÛÜbÝYÞ“ÞÅÞ¨ßØß àká¯áúáñã¨äjå.æ.ì¸ìHí�òuóÓóÝ¿æ9¿å¿-ÀnÀKÇ\Ç%ÈîÈëË?Ì©ÌÍhΜÙSÚ¤ÚÛðÞàâÅâxãë‹ëºëÌë9ìÃìÕìµñ)ò;òªò¼ò‡óüâ ëÓñïâëÆñ(+26<@O[bfj|•¦»Îßù 0DHLSW^imquy}™ ½ÓÚôû .59=AHVZ^bfjv‰œ±µ¹½ÁÅÉÔæíô #'37;KRbfuyŽÅÉÙéÿ   1 D R Y ] a e i m q | ‡ ¢ Ä È Ì Ð Ô Ø Ü à ä è ì ð ô ø ü  " - E L X ] b g l q v { € � ” œ ¤ © ± ¹ Ê Ò   ' : ] b v {  ƒ ” ¬ ³ ¸ À Ä È Ì Ô Ø à ä è ð ý      " & - 3 9 ? E K Q X _ f m t { ‚ ‰ � • › ¡ § ­ ³ ¹ ¿ Å Ë Ò Ù à ç í ó ù ÿ  ÿâ"ëÕñ…À†À‡ÀˆÀ‰ÀŠÀ‹ÀŒÀ�ÀŽÀ�ÀiÇ2ÈLÌ$Í)Í.Í3Í£ã¤ã¥ã¦ãÚëGìãìIòÊò•ón n"n$n&n(n*n,n.n.n.n.n.n/n0n0n5n7n9n;n=n?n?nnnn n n n n nnnnnnnnnnnnn0n2n4n®ôŒ  Ñ 8 Ÿ"�ÀWÇnÇ7ÈQÌ8ÍtΧã—ëÆëßëLìÏìéì5òNò¶òÏòšó~Rš/ø,�oÑKÁNä fhVkYn\ƒMаeUjÒ¹m[LË TiWl¬Zÿÿ~Ë eöi_core_intrinsicsÁderive_eq_internalsÁ¢ŒÏ¾øöx“¶¹X~9µaœA… ½ÿúûèøöx“¶¹£�~¾®Ñ\ŽRÿúûèøöx“¶¹>Y»æø×¢¢ÿúûèøöx“¶¹oU²�–• òÿúûèøöx“¶¹%ÈÝ•fÉü®&…ÿ‚]´œøöx“¶¹PÂPP,? ‘ÿúûèøöx“¶¹U’dm€É‚ìo$¾ u‚‚´µžderive_clone_copy_internalsÁú Ì øöx“¶¹'~ƒÇ¡I‡q ,Ä}©Ø µžfmt_helpers_for_deriveÁ¢g¡gøöx“¶¹Ä"ïÓ\¢}zÿÿÜ øöx“¶¹ÈÃìLy8]µ¶LÏ �ÀO_µž¢Ë¾øöx“¶¹Äp'˨/í Ìÿúûèøöx“¶¹�$½êÿ¼|�ÿúûèøöx“¶¹ôrP›»Í­ éÿúûèøöx“¶¹çÌnïÀ�ëcÿúûèøöx“¶¹×¡BÇÄ&Ñe ,·}”V¯µž­¡ð‰âøöx“¶¹Ú¦á]Ý‹6àYÿúûèøöx“¶¹$Õò>œ¥½Üe,Ä hµž­¡ð‰âøöx“¶¹:û{f%âËÆôä·ÅŽñ]©œøöx“¶¹€¢óy¹SWÞ$crate::cfg_ifÁùÎ/�¬ øöx“¶¹�i+p!jFr <Ë�Älµžøôøöx“¶¹%â§~�ÊS^Éüµ %S´œøöx“¶¹Ã³+%¬_£¶H.ÿúûèøöx“¶¹�z ¼12Ž]¢Pÿúûèøöx“¶¹÷QíÜó' ¹ÿúûèøöx“¶¹Á: e‚u� “ÿúûèøöx“¶¹19Zby­o $¾Øµž­¡ú Ì øöx“¶¹£x‡«P뀚¦ùìu…øöx“¶¹¼ä~‹[dš¦ùìu¸øöx“¶¹]ÔÖ'p©š¦ùìuëøöx“¶¹º�Ó+ÅÎ&š¦ùìuøöx“¶¹D�´±Ì§£kš¦ùìuQøöx“¶¹°#�ݼ/ š¦ùìu„øöx“¶¹Íë7³”ú«š¦ùìu·øöx“¶¹„Ñ$:JÑ3Þš¦ù ìuêøöx“¶¹)Ê%¥F’š¦ù ìuøöx“¶¹aô|?g�š¦ ù ìuPøöx“¶¹VoÃÉá*. š¦ ù ìuƒøöx“¶¹]‡ú9<¸H# š¦ ù ìu¶øöx“¶¹;Ëe iƒê« š¦ ùìuéøöx“¶¹M:I àÿ% š¦ù° ‡øöx“¶¹é{œ] 6q_ü©›3 Møöx“¶¹œBþÎl'ˆß¡TØN}NpWU UØT¥TyNÜN°N†NåN¾N—NíNŸNúNÔN§NºN�N“NéNÂN›NñNÐN£NpNtNËN«N�NõNÆN´NŠNàNþN4QçRtWˆS5P@W WÚV§VtVAVVÛU¨UuUBUUÜT©TS”P°R"O[QHRlTçPUSÀQ>TÚOíQ¶SPãSfPƒRORT­O’QOKQS�W¦SVP`W,WùVÆV“V`V-VúUÇU”UaU.UûTÈTES×P×RoO‚QsR‘T$QxSÝQ\T÷O RÓS%PT„P R�O8R.TÊO°Q°ODHT Ù·Þ«Ud5B¶¡WY)õG׺Ïx)v`»§+üÑö»FXÍH8Ž.ªñ�VŠomBëO–(ÇÖ¬'6&�Y§§~ àé“a‹k ½FŸ�pµ�\»³1C[_ˆøEï¥ ²K-ß�¬Ý€„¸é¾x¼Þ „1m·U‚†½é„6pKU*4üò iító|¿®¢zL¹õ޾ +›}�2Ê-k$=–³€¼cðŇ÷÷X: 覠^Ú½„ñõ4w¦GÂØø ùW£)’v¦y!{F5xó�� ‹ì‰#O:Í'TÄŸø /ú)örrì›+ÀêÉq Â4Ë,ØÀ? ô°W,³û'ãæÜ".zò…mØj€¼/­BjÃf‚/æYà…1+T /¿æf’¦’«ý2;ý3� ¿Aã,¡¹.”Wsvj1�pp¡µ¥!o5V¦éʼn-ĸ5¬©F1G7%†œË3°Ã:wŒ‚Ôêç< Ôt±‚ Ö=—z�JÔ™Ü">VíŒ<~)=õïR´uP<•n¾:`=©¨¨Ö�š[mBu,6W&HDÄð%Hë²=E¬Ü/– t´FƒzhÈø÷G×ij<ÞãYGmN^UràÒ¨IÙQb ¶º SJ°4»$±b«€JŸT·+k?Z®L½‘æ K,¸J©ía?‡0ðND@´ LÜódE#FÍ&IÑ®¨GËÜ÷HKÚÁSA@â�PÁl\ÕŠ¬@IŒ'¼]>ÓÝEîêd13UÊ ¨Hu釥F´•ÐuòÐ×rW't #ÈizWq}t8Q‡a’YÏpË!f= ªYã£M3MƒZrB†eŒsÓ \×Z…Ž¿aÝ]‡ßÿWu£],�ktGê„ÉX3fx‘¨pÚë`( Ý&^–f.N¸©�Ízn&b0ôÁD‘B\ÒVõ¦:«™ˆŠvL0/­°îë—O°$l°rÏÌ�f×­›šg<îÂU[ŠÀÅÅ�ÄO)zÂ[uLàiÍ~ÞZQÐÃMjRÈøÓ͈§iÞÍÞw»B'ÿiË%Ê^è†Z†�Î ¬‚vO?CE×ÿ+oÓV•Rx0›p²FGo~`qÖè…4¼w_pì—b}ŬÇCqö� ¤tô Þt] tXeÈHJuäQ:ëúàµt‚ß •É*ÑtÓÉ¢—¡Ø])x#E º°Zo@í©vó»­qw`ò¿+x>ð{«ßÍ1ÂY³|Ñ%ÁŸæŸ}^Q Þv~iòjZž`€{¤š>")ŠP~Ç¥¥0VQ%%{¹ST›$Öµð}œÃ"(xWxDé˜ÉáýS­„ê¢FTÕ©…;œ@œâ9ó†2':nw÷†ÝobL#ÏÒìˆì±�²Î8k¯ˆ2Ž@³œ¤šŠs ò|ËÎêpÏDðÌòÛ6J7ϹrG’[Oøöx“¶¹Õ‰ß”�ê#{àØ€‚“7÷�£…œÅ“¬0¿ÅLûEŒ’¢�Ó™øl˜a7G;šG¡™@æÜ¨œë“¤œÅ·üüÎïÓ�0ÈåÊû�&Ú�7ŸÔªªŸycIç¤Ûœ&1YTœªŸM£^s¯i÷ ¢ƒˆ†¸Ïh”£+s =6ïç¤2Ûç úÅg£¤ éî`Cpàv¥2ñ=ƒY2þP¢¯ /†üåÖx¨Ô˜­fè�vɨY¯&vªi‡×ª+�h°» ³ª˜ä-3Ÿ(?¬²>§.�Ài¬ÑífŒõ³þõ­ú±°˜=›ä£ ú mw&o¨+˜›¼Ýužjï–Á«X!r§!åÑR'Wt³Þx´¨$K–®P'þÒÙ„`ñ¤:=¿Õ¼p $¶.^¡5£G©·'æU¨D¶msÊNS€ƒ¹tñ–Qñzº“ʶzØuï»A£9ê)¸ø7¹v;H]½í¹š¶]«Ò¦¾ ÿcA·à%»¿I ¨"Ñ?n`À×}ë‚}W"Áa"§W]ʼÞÁg|m_?¥JnÃ#}�§‹“ֲīo€æÅ|tä“MÅ8 ª…·�ÓÇ)»‘¯i²ìÈqKćö]ÒXº*ä•Ðæ†åTÊLÐ*Äâê„÷Ë ñšK*ÌhËrõ“PøhœË°šä„y�éSÀkb,تâiÅÏÿOzÆk×…�Ò¦‡‚È”…ÕÖs�Kh:4YØ[Ø¡ys½NÌÚö'’µå¥qÚ�Î$½¥âÝÇ Š ì–—Þ¹ñ¡YkñÖñà‹(T\\fÛáêe»gMˆ�çâÀ-Õ^�`e•àI⦞R®�kä|­©ËܪæfBÏlÝOúææ ~hÇJYéÒ±¥>;&ê:Ãë ©×ÎêâbœKi í|½é™µÈJåîA0i¥ ôï´ï]hÎëãtñNƒ0“4�ÇÛòéa¢*KË·…ó üí,$í jôãñœO3¨’ó ~V)Í"ö¦&«Ð™Úöö©[ã¼JŸóqÝe‹¿©*ù—TψzY£÷ R½£ É¿¼ûcÀ1kÏ iÅò¤ç·¹M¶‡ýµ†�®Š×plþõ('2  [õòû“ǸPk0,@KÿÿÿÿÿÿIÿORn^*WGÿe^ÿm;Qvÿÿÿÿbÿ ÿdBp38tCÿÿAÿ:NwJTÿxnY/1][s0Z2T`^uTh:eQCB5 HEKGI%K?+2B< O%DF5G2& %G2& %¹£4uÏ;^Šèœ ŒÊAäÏc/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/backends/use_file.rsÁJ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3Ác/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/backends/use_file.rsÁ ¤ËØ�üB¡«ˆv‰Ãq Y (:"2 2 +4%&'!-! &79"<-<#( = /CC?$ ( T/ 8 CWLIZ>?d=: K>U!JGONGMNPK<NPNNN N=MF6@1%" =><*,9D): $ ÐÁÛ„ºC×ßíU�0øOm/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/backends/../utils/sanitizer.rsÁJ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3Ám/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/backends/../utils/sanitizer.rsÁ /Þ«€.rÜ’,mM²Tb¿oîî0KMLF,KMO>6$ L-"1 ™í{Úç<¥Žw‡Á_ßÊ”r/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/backends/../utils/sys_fill_exact.rsÁJ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3Ár/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/backends/../utils/sys_fill_exact.rsÁ P$”&§ÙÛ”TUä†Jî î )%52=%@! PV3)D*:KN=0  D´Jû)Ï1’Æ��½yûv/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/backends/linux_android_with_fallback.rsÁJ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3Áv/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/backends/linux_android_with_fallback.rsÁ « “T-RXYMB&% >:EAQ9:0A.CQ$3B-& CI$BR F=)e GRPTVR&TN6!MKD# - ( b[^W=j\k<# R/\A6!MS9#('$[9^%(?B*_.@W.@E/O/I %?/3+$Q:7-6 ?3-D3:9 P4­Üa¬’ÀÝ ê­e5:V/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/util.rsÁJ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3ÁV/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/util.rsÁ \+Açž}}bB7Ϲ[P^¨ˆˆH*0MS0P LE,>?PDI0Q=PB +0<?BE%B +0<?BE%;*Uu:ð´ùI¬0£â©ÄòöY/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/sys_rng.rsÁJ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3ÁY/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/sys_rng.rsÁ '¹‹,Ðõ›9Ü9š©�1ï÷ ÷ 7'LRO$0.<0%%*U('77I£&sÃÌy^/%œn]m«-�[/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/../README.mdÁJ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3Á[/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/../README.mdÁ ïc5NžÊóã º- ì—åžåž ." Z\SU&U( 9 !;;¢@ABT?@l@S@>=ZA>;|A=AJ>j?`AZ;ReKTR`[YKU]];ac`-YYîŸa\¤[…��QZ:$=2BTXVQN2NVZZW+ML:#L0 MIFHMIQ,Q.G 0&.%3%O[WM:G**"!$ QPKEHMGLIJ#NOLRB1UR[YSOOL+FG>HIF=KFAIDGFIEJIJM9E'FKJDJ;NHMB>1nF3OX"(C@&M 71PQDWm03%5=R75$"85U*%AH*?lM)SZxRTh^h€K|lyd‹e,",;cˆQ,%FVPr$ÌÔî ø ³ ½ ï ÷ ± ¹ … Ä „ â ñ °ƒ³Ä�¾œ ÒØâΔѕ¾–'ž'„)Œ)è+Z"ó½C×ÿexV�˜k¾a/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/error_std_impls.rsÁJ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/error_std_impls.rsÁ -êR>¹ì EЦï.° Ö––  !"#@+ ¢V¦• T—uš®›üGrZ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/backends.rsÁJ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3ÁZ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/backends.rsÁ V§º˜½–2?¥¯Ü§×oêÅ6Å6¾%?HI@F) .>8536=#: :$ B- " XK[\(R> #)%%( TNH !)%)+'%(KJD)55 )0!KK9 .-.   H+$& -I.1=# Hd-$(SL0d UW /ŒóVâJð?`cgô~Hm/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/backends/../utils/get_errno.rsÁJ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3Ám/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.3/src/backends/../utils/get_errno.rsÁ ;Õø¤,ŠÁãö?¯%ƒ ´ ´  o-�6..H-,-*5aS. '*, I+12oÕ@_Ü7dOQé|ñ¢jzl®n2pÍq�s@@GNUÀBgetrandom-5cf023e77805dc5f.getrandom.b9b603931878f6f8-cgu.0.rcgu.oÁrust-end-file.note.gnu.property.rmeta-link.shstrtab.strtab.symtab@ €`R2¸*Ð Ñ:/0 0 0 0 644 23160 ` ELF>øF@@NUSP‰õ‰ûÿ¿¾ÿH…Àt$‰(¶ûH�H‰ÆÿH‰ÇHƒÄ[]ÿ%¿¾ÿH‹‰Áƒá�Qþƒúr%H…Ét HƒìHÿÈH�|$H‰D$ÆD$ÿHƒÄÉù÷Ù…ÿ¸OÁÃUAWAVAUATSPH‰óI‰þD‹=Aƒÿþsx1íH…Ût`L‹%L‹-ëff.„H…Ût@D‰ÿL‰öH‰ÚAÿÔH…À~ H)Ãr%IÆëàHƒøÿuAÿÕ‹ƒøtЉÁ÷Ù…À½Oé뽉èHƒÄ[A\A]A^A_]ÃèA‰×‰Õ¨„vÿÿÿëÛSH�51ÿÿH…Àt-¿1ö1ÒH‰ÃÿÐH…ÀxH‰Ø[Ãÿ‹ƒù&tH‰ØƒùuéHÇÀÿÿÿÿ[ÃUAWAVATSHƒìL�5½þÿÿÿL‹=ë)ffffff.„¿ÊL‰öº€¹þÿÿÿE1À1ÀAÿ׋ƒûþtÛƒûÿuZ¸ÿÿÿÿð±-uáL�5L‹=L‹%f�L‰÷¾1ÀAÿ×…Ày*AÿÔ‹ƒûtå…ÛŽº÷Û½…Û…¼ëm1íéá‰Å‰D$ÇD$ H�\$L‹5ff.„¾H‰ßºÿÿÿÿAÿÖ…ÀyAÿÔ‹ƒøtâ‰Á÷Ù…À»OÙë1Û‰ïÿ½…ÛuMH�„H‰ß¾1ÀAÿ׉ŅÀy&AÿÔ‹ƒøtã‰Á÷Ù…À»OÙë½»ë‰ëÁí…í¸ÿÿÿÿDÉH�5¿Êº�¹ÿÿÿ1Àÿ‰è‰ÚHƒÄ[A\A^A_]Ãÿ”ÀÃÿσÿy‡‚H�Hc ¸HÁÿá°ð$ð(ððð'ððððð ððð!ðððð ð ð ðð&ðð"ðððÃ1Àðð ð#ððððð ððð*ÃPÿ‹YÃS‰û�ÿ€s¿)‰Þ[ÿ%÷ÛH‹H‹H� H9Èu HÁã HƒËH‰Ø[ÃH�=ÿëäAVSHƒì8H‰ûH�H�|$(¹ÿ‹=€ƒ‚�ˆÿÿƒùƒ‰ÉH�H‹ÊH�5H‹ ÎH‰T$H‰L$ ‰D$H�5L�L‹5H�\$(H�L$º H‰ßAÿÖH�5L�H�L$º H‰ßAÿÖéÐ÷؉D$H�5L�H�|$(H�L$ºÿHc\$H‹H‹H� H9È…›HÁã HƒËH‰\$H�5L�H�|$(H�L$º ÿH‹D$‰Áƒá�QþƒúrFH…ÉtAHÿÈH�|$ H‰D$ ÆD$ÿë'‰D$H�5L�H�|$(H�L$º ÿH�|$(ÿHƒÄ8[A^ÃH�=ÿéSÿÿÿH‰ÃH�|$èH‰ßèÿÿ›!……#¥¨€¨ º²AVSHƒì‹�û€s6�ƒÿÿƒøsc‰ÀH� H‹ÁH� H‹ÁH‰÷H‰ÆHƒÄ[A^ÿ%÷ÛH‹H‹H� H9Èu[HÁã HƒËH‰\$H�|$ÿHƒÄ[A^É\$H�D$H‰D$H‹H‰D$H‹>H‹vH�H�L$ÿHƒÄ[A^ÃH�=I‰öÿL‰öë�H‰ÃH�|$èH‰ßèÿÿ›ll Ïw[Ò äÜH‰òH‹H‹wH‰Çÿ%‹F©u ©u ÿ%ÿ%ÿ%AVSHƒìI‰ö‰þH‰çÿH‹\$H‹T$L‰÷H‰ÞÿH‹4$H…ötºH‰ß‰Ãÿ‰ØHƒÄ[A^ÃI‰ÆH‹4$H…ötºH‰ßÿL‰÷èÿÿ  N+EH�º(Ã1ÀÃÃH‰øÃgetrandom/dev/urandom/dev/randomUnknown Error: ÀÿÿÿÿErroros_errordescriptiongetrandom: this target is not supportederrno: did not return a positive valueunexpected situationinternal_codeunknown_codedescription() is deprecated; use DisplayÙ[sùèâëÉ­.:tutK'&rustc version 1.98.1 (48a229cea 2026-09-01)zRx �(VAAA ƒ†{AAF H6Y \`HtªABB B(B0A8A@ƒŒ�Ž�†€8A0B(B BBAA@ÀKAƒkA]@à­ABB B(A0D@ƒŒŽ�†˜0A(B BBA$8�L AI dMAƒRFdAˆœ#° ÄØìzPLRx› �,$ÀBADPƒŽˆABAPDTêBAD0ƒŽwABF0tABA0wABA00œpBAD0ƒŽCABA0GH~ñÿ> 6Q+¶ ­ Ÿ*  �* ÿ* Ò C �28D*#¹2Ø#!g !p#«#$$ &}&'Ý'(D(‡B+-/0356789:<=?ACD‹ VœE 'Oq=öÀ ª 3V KI� D˜ à Ÿ  M ¥.À÷‡  É \ê6·Ÿ B}`  è,‡ !G @üÿÿÿÿÿÿÿ Aüÿÿÿÿÿÿÿ*;üÿÿÿÿÿÿÿ3 BüÿÿÿÿÿÿÿB CüÿÿÿÿÿÿÿR Düÿÿÿÿÿÿÿ- Eüÿÿÿÿÿÿÿ.üÿÿÿÿÿÿÿ( Hüÿÿÿÿÿÿÿ/ Iüÿÿÿÿÿÿÿ— üÿÿÿÿÿÿÿ üÿÿÿÿÿÿÿ Küÿÿÿÿÿÿÿ/ Iüÿÿÿÿÿÿÿ.üÿÿÿÿÿÿÿ LüÿÿÿÿÿÿÿL.üÿÿÿÿÿÿÿc.üÿÿÿÿÿÿÿl üÿÿÿÿÿÿÿs Müÿÿÿÿÿÿÿz IüÿÿÿÿÿÿÿÑ Nüÿÿÿÿÿÿÿ Oüÿÿÿÿÿÿÿ$ üÿÿÿÿÿÿÿz.üÿÿÿÿÿÿÿ�.üÿÿÿÿÿÿÿ˜ Lüÿÿÿÿÿÿÿüÿÿÿÿÿÿÿp• ��¡x© ­$±(y,†0K4Á8Å<„@ŽD€HÕL—P¹TºXy\}`ídÜhélêp£t×xü|µ€ „ˆåŒÎ�”²˜Èœ# -¤1¨5¬9°=´A¸E¼IÀMÄQÈUÌYÐ]ÔaØeÜiàmäqèuìyð}ô�ø…ü‰�‘• ™�¡¥© ­$±(µ,¹0½4Á8Å<É@ÍDÑHÕLÙPÝTáXå\é`ídñhõlùpýtx–| € „Ɉ܌þ�ç”!˜¼œÒ -¤1¨#¬9°=´>¸å¼IÀ/ÄQÈòÌóÐ]ÔaØeÜiàmä# Iüÿÿÿÿÿÿÿ ?üÿÿÿÿÿÿÿ Rüÿÿÿÿÿÿÿ(/üÿÿÿÿÿÿÿA/üÿÿÿÿÿÿÿG Süÿÿÿÿÿÿÿ 0üÿÿÿÿÿÿÿ UüÿÿÿÿÿÿÿB>üÿÿÿÿÿÿÿM=üÿÿÿÿÿÿÿf7üÿÿÿÿÿÿÿm1üÿÿÿÿÿÿÿt Vüÿÿÿÿÿÿÿ�3üÿÿÿÿÿÿÿ—8üÿÿÿÿÿÿÿ¹üÿÿÿÿÿÿÿÀ1üÿÿÿÿÿÿÿÕ Vüÿÿÿÿÿÿÿá Rüÿÿÿÿÿÿÿë/üÿÿÿÿÿÿÿ3üÿÿÿÿÿÿÿ2üÿÿÿÿÿÿÿ$ VüÿÿÿÿÿÿÿS Eüÿÿÿÿÿÿÿ`9üÿÿÿÿÿÿÿg1üÿÿÿÿÿÿÿ| Vüÿÿÿÿÿÿÿ‡ Wüÿÿÿÿÿÿÿ–/üÿÿÿÿÿÿÿœ Süÿÿÿÿÿÿÿ®üÿÿÿÿÿÿÿ¶Xüÿÿÿÿÿÿÿ¼ Yüÿÿÿÿÿÿÿ!=üÿÿÿÿÿÿÿ,>üÿÿÿÿÿÿÿC [üÿÿÿÿÿÿÿL RüÿÿÿÿÿÿÿV/üÿÿÿÿÿÿÿs \üÿÿÿÿÿÿÿ� ]üÿÿÿÿÿÿÿ£üÿÿÿÿÿÿÿ® ^üÿÿÿÿÿÿÿ½/üÿÿÿÿÿÿÿÆ SüÿÿÿÿÿÿÿØüÿÿÿÿÿÿÿàXüÿÿÿÿÿÿÿæ Yüÿÿÿÿÿÿÿ _üÿÿÿÿÿÿÿ ]üÿÿÿÿÿÿÿ `üÿÿÿÿÿÿÿ aüÿÿÿÿÿÿÿ büÿÿÿÿÿÿÿ' [üÿÿÿÿÿÿÿ@ cüÿÿÿÿÿÿÿd cüÿÿÿÿÿÿÿlXüÿÿÿÿÿÿÿ<üÿÿÿÿÿÿÿ-üÿÿÿÿÿÿÿ!eZT Z(:0'8+@%H'P)456g LdxÄ ä (<PhŒ ´%È'Ü)ð+f$-T]œ!¥#.rela.data.DW.ref.rust_eh_personality_RNvNtNtCs6i54tJFfzR_5alloc2io5error21custom_owner_from_box.text.comment.rela.text._RNvXs1_NtCsfWxbvLhUTPg_9getrandom5errorNtB5_5ErrorNtNtCsgxBkk5gSRhY_4core3fmt7Display3fmt.gcc_except_table._RNvXs1_NtCsfWxbvLhUTPg_9getrandom5errorNtB5_5ErrorNtNtCsgxBkk5gSRhY_4core3fmt7Display3fmt.rodata..Lswitch.table._RNvXs1_NtCsfWxbvLhUTPg_9getrandom5errorNtB5_5ErrorNtNtCsgxBkk5gSRhY_4core3fmt7Display3fmt_RNvXs3_NtNtCsgxBkk5gSRhY_4core2io5errorNtB5_5ErrorNtNtB9_3fmt7Display3fmt_RNvXs9_NtNtNtCsgxBkk5gSRhY_4core3fmt3num3implNtB9_7Display3fmt_RNvXsv_NtNtCsgxBkk5gSRhY_4core3fmt3numlNtB7_8LowerHex3fmt_RNvXsx_NtNtCsgxBkk5gSRhY_4core3fmt3numlNtB7_8UpperHex3fmt.rela.text._RNvXs0_NtCsfWxbvLhUTPg_9getrandom5errorNtB5_5ErrorNtNtCsgxBkk5gSRhY_4core3fmt5Debug3fmt.gcc_except_table._RNvXs0_NtCsfWxbvLhUTPg_9getrandom5errorNtB5_5ErrorNtNtCsgxBkk5gSRhY_4core3fmt5Debug3fmt_RNvXNtNtCsgxBkk5gSRhY_4core2io5errorNtB2_5ErrorNtNtB6_3fmt5Debug3fmt.rela.text._RNvXsQ_NtNtCsgxBkk5gSRhY_4core3fmt3numlNtB7_5Debug3fmt_RNvXsh_NtCsgxBkk5gSRhY_4core3fmteNtB5_5Debug3fmt.rela.text.unlikely._RNvNtNtCsfWxbvLhUTPg_9getrandom8backends27linux_android_with_fallback4init.rela.text.unlikely._RNvNtNtCsfWxbvLhUTPg_9getrandom8backends8use_file12open_or_wait_RNvMsa_NtCsgxBkk5gSRhY_4core3fmtNtB5_9Formatter12debug_struct_RNvMsa_NtCsgxBkk5gSRhY_4core3fmtNtB5_9Formatter9write_str_RNvNtCs6i54tJFfzR_5alloc5alloc18handle_alloc_error_RNvNvNtNtNtCsgxBkk5gSRhY_4core2io5error12os_functions13set_functions19set_functions_inner.group_RNvNtCsgxBkk5gSRhY_4core9panicking16panic_in_cleanup_RNvXsd_NtNtCsgxBkk5gSRhY_4core2io5errorNtB5_11CustomOwnerNtNtNtB9_3ops4drop4Drop4drop.rela.text._RNvNtNtNtNtCsfWxbvLhUTPg_9getrandom8backends8use_file5utils9get_errno9get_errno.text._RNvMNtCsfWxbvLhUTPg_9getrandom5errorNtB2_5Error10from_errno__errno_locationopendlsym_RNvMs0_NtNtNtCsgxBkk5gSRhY_4core2io5error4reprNtB5_4Repr10new_custom.rela.text._RNvXNtCsfWxbvLhUTPg_9getrandom15error_std_implsNtNtNtCsgxBkk5gSRhY_4core2io5error5ErrorINtNtBP_7convert4FromNtNtB4_5error5ErrorE4from.rela.text._RNvXs1g_NtCsgxBkk5gSRhY_4core3fmtReNtB6_5Debug3fmtCsfWxbvLhUTPg_9getrandom.rela.text._RNvYNCNvNvMNtNtCs9k3SxhrAWiO_3std2io5errorNtNtNtCsgxBkk5gSRhY_4core2io5error5Error17from_raw_os_error9FUNCTIONS0INtNtNtBK_3ops8function6FnOnceTlQNtNtBK_3fmt9FormatterEE9call_onceCsfWxbvLhUTPg_9getrandom.gcc_except_table._RNvYNCNvNvMNtNtCs9k3SxhrAWiO_3std2io5errorNtNtNtCsgxBkk5gSRhY_4core2io5error5Error17from_raw_os_error9FUNCTIONS0INtNtNtBK_3ops8function6FnOnceTlQNtNtBK_3fmt9FormatterEE9call_onceCsfWxbvLhUTPg_9getrandom.rela.text._RINvNtCsgxBkk5gSRhY_4core3ptr9drop_glueNtNtNtB4_2io5error5ErrorECsfWxbvLhUTPg_9getrandompollsyscall.note.GNU-stack.rela.text._RNvNtNtCsfWxbvLhUTPg_9getrandom8backends27linux_android_with_fallback17use_file_fallback_RNvMs1_NtNtCsgxBkk5gSRhY_4core3fmt8buildersNtB5_11DebugStruct6finish_RNvNtNtNtNtCs9k3SxhrAWiO_3std3sys2io5error4unix12error_string_RNvNtCsgxBkk5gSRhY_4core3fmt5writeclose_Unwind_Resume.rela.eh_frame.rela.text._RNvNtNtNtNtCs9k3SxhrAWiO_3std3sys2io5error4unix17decode_error_kind.rela.rodata._RNvNtNtNtNtCs9k3SxhrAWiO_3std3sys2io5error4unix17decode_error_kind_RNvMs1_NtNtCsgxBkk5gSRhY_4core3fmt8buildersNtB5_11DebugStruct5field.text._RNvNtNtNtNtCs9k3SxhrAWiO_3std3sys2io5error4unix14is_interruptedread_RNvCs1njKG4L9aB3_7___rustc14___rust_dealloc_RNvCs1njKG4L9aB3_7___rustc12___rust_alloc.strtab.symtab.rela.text._RINvMNtNtCs6i54tJFfzR_5alloc2io5errorNtNtNtCsgxBkk5gSRhY_4core2io5error5Error3newNtNtCsfWxbvLhUTPg_9getrandom5error5ErrorEB1l_.rela.text._RNvYNtNtCsfWxbvLhUTPg_9getrandom5error5ErrorNtNtCsgxBkk5gSRhY_4core5error5Error11descriptionB6_.text._RNvYNtNtCsfWxbvLhUTPg_9getrandom5error5ErrorNtNtCsgxBkk5gSRhY_4core5error5Error5causeB6_.text._RNvYNtNtCsfWxbvLhUTPg_9getrandom5error5ErrorNtNtCsgxBkk5gSRhY_4core5error5Error7provideB6_.rela.text._RNvYNtNtCsfWxbvLhUTPg_9getrandom5error5ErrorNtNtCsgxBkk5gSRhY_4core5error5Error7type_idB6__RNvNtNtNtCsgxBkk5gSRhY_4core2io5error12os_functions12OS_FUNCTIONS.bss._RNvNvNtNtCsfWxbvLhUTPg_9getrandom8backends27linux_android_with_fallback10fill_inner12GETRANDOM_FN.data._RNvNtNtCsfWxbvLhUTPg_9getrandom8backends8use_file2FD.Lanon.2fd78ee5472a2b48b2cb97c6943d1503.19.rodata..Lanon.2fd78ee5472a2b48b2cb97c6943d1503.9.rodata.cst8.rodata..Lanon.2fd78ee5472a2b48b2cb97c6943d1503.18.rodata..Lanon.2fd78ee5472a2b48b2cb97c6943d1503.8.rela.data.rel.ro..Lanon.2fd78ee5472a2b48b2cb97c6943d1503.17.rela.data.rel.ro..Lanon.2fd78ee5472a2b48b2cb97c6943d1503.7.rodata.cst16.rela.data.rel.ro..Lanon.2fd78ee5472a2b48b2cb97c6943d1503.16.Lanon.2fd78ee5472a2b48b2cb97c6943d1503.6.Lanon.2fd78ee5472a2b48b2cb97c6943d1503.15.rela.data.rel.ro..Lanon.2fd78ee5472a2b48b2cb97c6943d1503.5GCC_except_table14.rodata..Lanon.2fd78ee5472a2b48b2cb97c6943d1503.14.rodata..Lanon.2fd78ee5472a2b48b2cb97c6943d1503.4.rela.data.rel.ro..Lanon.2fd78ee5472a2b48b2cb97c6943d1503.13.rela.data.rel.ro..Lanon.2fd78ee5472a2b48b2cb97c6943d1503.3_RNvCs1njKG4L9aB3_7___rustc35___rust_no_alloc_shim_is_unstable_v2.rodata..Lanon.2fd78ee5472a2b48b2cb97c6943d1503.12.rela.data.rel.ro..Lswitch.table._RNvXs1_NtCsfWxbvLhUTPg_9getrandom5errorNtB5_5ErrorNtNtCsgxBkk5gSRhY_4core3fmt7Display3fmt.2.Lanon.2fd78ee5472a2b48b2cb97c6943d1503.2GCC_except_table11.rodata..Lanon.2fd78ee5472a2b48b2cb97c6943d1503.11.Lanon.2fd78ee5472a2b48b2cb97c6943d1503.1.rodata.str1.1GCC_except_table10.rodata..Lanon.2fd78ee5472a2b48b2cb97c6943d1503.10getrandom.b9b603931878f6f8-cgu.0.Lanon.2fd78ee5472a2b48b2cb97c6943d1503.0p (1Éc@… @V€ @ �M8  63 @0Mðຠ𪵠@H`MG KB@¨HM §ð­¢@ð8M Ì  ì °�ç @(M; @è6 @@p M™0 ”@°'Mš@M•@È'xM½�À¸@@(ˆMP(w€êr@È*PMØl $,� '@,MÒ° #Í@0,HMƒà p~@x,xM!U P `  @ð,M$wp ×€ >� 9@-M()2ž 5KÔ ãØ eØ `@ -HM-ñð tø o@h-M0ä ˜ “@€-0M3$@ ²K 'Kr &̘ Þ¬ (À #@°-M:¾à âð Ý@È-M=[ XV@à-ÀM?ñh (Ï� E  ¸ @ .HMDÐ MfÐ è.MGi0Ø -¥  Ý p ÈØ @/(MKx àÀ ?