rust ©Ô#rustc 1.98.1 (48a229cea 2026-09-01)ÁûÊÆÍRLñ.åSÛAúwjL-df1bddb45adbe94bÁ±ò‰<å%Z‰>¸64‡ËV`-2d2ab9fb0fe1def5ÁŠno_panicÁDoÓno-panicÁ¤J7compute_inv_pow5Á„îÓsmallÁŒ¹7 compute_pow5Ád€ ÓÊ"$d2s_small_tableÁ|â ÓÊŒÊ …ŠDçÓ�¤ÂtestsÁ,¾!Í$³!ûbufferÁNANÁINFINITYÁ NEG_INFINITYÁBufferÁ bytesÁ ˜  formatÁ‚ format_finiteÁ‚Ž>„SealedÁ is_nonfiniteÁformat_nonfiniteÁwrite_to_ryu_bufferÁ"º#EXP_MASKÁ"Í% MANTISSA_MASKÁ% SIGN_MASKÁ"ä)º*‰)Í,Ÿ,³)ä«0decimal_length9Á0 log2_pow5Á0pow5bitsÁ0ceil_log2_pow5Á0 log10_pow2Á0 log10_pow5Ád2sÁ7777777777 7 7 7 7 77DOUBLE_MANTISSA_BITSÁ7DOUBLE_EXPONENT_BITSÁ7 DOUBLE_BIASÁ7DOUBLE_POW5_INV_BITCOUNTÁ7DOUBLE_POW5_BITCOUNTÁ7decimal_length17Á7FloatingDecimal64ÁMmantissaÁMexponentÁ7d2dÁd2s_full_tableÁQDOUBLE_POW5_INV_TABLE_SIZEÁQDOUBLE_POW5_TABLE_SIZEÁQDOUBLE_POW5_INV_SPLITÁT QDOUBLE_POW5_SPLITÁV d2s_intrinsicsÁXXdiv5ÁXdiv10ÁXdiv100ÁX pow5_factorÁ]M_INV_5Á]N_DIV_5ÁXmultiple_of_power_of_5ÁXmultiple_of_power_of_2ÁX mul_shift_64ÁXmul_shift_all_64Á digit_tableÁd DIGIT_TABLEÁe f2sÁggggggggggFLOAT_MANTISSA_BITSÁgFLOAT_EXPONENT_BITSÁg FLOAT_BIASÁg g g gFloatingDecimal32Áwâwñgf2dÁf2s_intrinsicsÁ{{FLOAT_POW5_INV_BITCOUNTÁ{FLOAT_POW5_BITCOUNTÁ{ pow5factor_32Á{multiple_of_power_of_5_32Á{multiple_of_power_of_2_32Á{ mul_shift_32Á{mul_pow5_inv_div_pow2Á{mul_pow5_div_pow2ÁprettyÁ…ñ†††write_exponent3Á†write_exponent2Á…â‹‹‹write_mantissa_longÁ‹write_mantissaÁ………………………… … … … … …………format64Á…format32Á@¦¦¦888b8c8ù   ª ·}.ãB¸ªµ…òöò¶¿   ")ù …ö "NaN"Á�"inf"Á�"-inf"Á24ÁÜÐÌÐ þüÏ!Ê„ú  �ü¤lüÃMò$´ý­ý­ MaybeUninitÁÿ­uninitÁ瀮�çÙW£Ÿì·œíÊ,ÇÛë·˜çÊ24Á„³ dµ  ‚ ³ tµ /¤Ò „Ô  ” Ò ”Ô *ü° s¬„ l‰  ”$„  — „‰ 1L© üõ ´�$¡ òL� ” ˜  �Ò�”)œ-[�BÏ”É T�Ú  Û¼�TŒ ÞwÛDdŒü�$$™ çÛíJd™üë;œí !” ëQüí9TÇ Ú  ý„Ç  ¬Â ɇT]  ¸['� $TˆÚ°œˆ4“ ÝwÛ?D“üˆ $œ €ÛíJdœüò:¬ò ÄvíM ª ,üºĺ †z ,Ó "éüŒÝüã€üæ}�$¿ôL«” ¶Ê ç í ÛKû} Úˆ¥Ê»°é Úô£  í,ê íA Ûv°£þ«žœ¢¤¦åT ö ’ø¿Óî© ³wÛ^ö2ÄêñÅ ›Ónlý\ý �üÛ5ò$î ò,ä /Î hl�\�Î ¢üð2ò$€Î Ntæ<ë ¼$æLë|þ D…$ÜþD‘$Ð"Ÿ#ü‰–üÛD$¢¶$™Ð"$ßÐ"z¼PŽ$Ð"}$Ð"ž"Ý€Ð" 0x7f800000ÁÿÿÐ" 0x007fffffÁ€Ð" 0x80000000ÁÜ“ l“  ¢$¡ 4§ (´ (üËiÊ,ƒ ¶$éÀ4ïÇ BÓ$ŠtÅ!<Ê! Ä$Å!LÊ!|Ý! Dä!+ÜÝ!Dð!+œ&þ!*üà žüº!D$ù ¿$ð œ&$¾!œ&z¼PŽ+œ&}+œ&ê%Ýðœ&0x7ff0000000000000Áÿÿÿÿÿÿœ&0x000fffffffffffffÁ€œ&0x8000000000000000ÁÜ‚&l‚& ¡$�&4–&(£&/üº%iÊ,ò%¿$Ø%À4Þ%Ç BÃ(Š4Ð"52Á Ð"11Áÿ1023Á}ñ)125Á}ñ)125ÁVÊ342ÁFÊ326ÁVÊDOUBLE_POW5_INV_TABLE_SIZEÁFÊDOUBLE_POW5_TABLE_SIZEÁÍÌÌÌÌÌÌÌœ&14757395258967641293Á33333333œ&3689348814741910323ÁÈÊ200ÁÐ"23ÁÐ"8Áñ)127ÁüÑ"ìÑJñ)ñ@ñ)+ -Jñ)+@ñ)Vñ)ü¨L}ñ)Ëñ)�/�Jñ)™Jñ)_ÁôšÌšKñ)¶@ñ)* -Kñ)+@ñ)Uñ)üõD~ñ)”Å-Œ,ŒKñ)–Kñ)_Á07QXdg{…¦ûª4Þ! ¤„,æ!¥üù"üˆ… [![github]](https://github.com/dtolnay/ryu) [![crates-io]](https://crates.io/crates/ryu) [![docs-rs]](https://docs.rs/ryu)Á‰�ü�jg [github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=githubÁüønk [crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rustÁüçmj [docs-rs]: https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rsÁÕ�DÙ
Áâ�üæNK Pure Rust implementation of RyÅ«, an algorithm to quickly convert floatingÁüµ%" point numbers to decimal strings.ÁÛ�üßMJ The PLDI'18 paper [*RyÅ«: fast float-to-string conversion*][paper] by UlfÁü­NK Adams includes a complete correctness proof of the algorithm. The paper isÁüü:7 available under the creative commons CC-BY-SA license.Á·�ü»PM This Rust implementation is a line-by-line port of Ulf Adams' implementationÁüŒ52 in C, [https://github.com/ulfjack/ryu][upstream].ÁÂ�üÆ74 [paper]: https://dl.acm.org/citation.cfm?id=3192369Áüþ.+ [upstream]: https://github.com/ulfjack/ryuÁ­�l± # ExampleÁ¿�<à ```Á|Ë fn main() {ÁüÛ,) let mut buffer = ryu::Buffer::new();Áüˆ +( let printed = buffer.format(1.234);Áü´ %" assert_eq!(printed, "1.234");Á,Ú  }Á<à ‰9è �”ì  ## PerformanceÁÿ �üƒ LI The [dtoa-benchmark] compares this library and other Rust floating pointÁüÐ NK formatting implementations across a range of precisions. The vertical axisÁüŸ B? in this chart shows nanoseconds taken by a single execution ofÁüâ KH `ryu::Buffer::new().format_finite(value)` so a lower result indicates aÁœ®  faster library.Á �üÆ ?< [dtoa-benchmark]: https://github.com/dtolnay/dtoa-benchmarkÁ† �üŠ [X ![performance](https://raw.githubusercontent.com/dtolnay/ryu/master/dtoa-benchmark.png)Áæ �üê +( You can run upstream's benchmarks with:Á–�tš ```consoleÁü©41 $ git clone https://github.com/ulfjack/ryu c-ryuÁtÞ $ cd c-ryuÁüí&# $ bazel run -c opt //ryu/benchmarkÁ<”‰9œ�ü ;8 And the same benchmark against our implementation with:ÁÜ�tà–@üï74 $ git clone https://github.com/dtolnay/ryu rust-ryuÁŒ§ $ cd rust-ryuÁü¹63 $ cargo run --example upstream_benchmark --releaseÁ<ð‰9ø�üüQN These benchmarks measure the average time to print a 32-bit float and averageÁüÎTQ time to print a 64-bit float, where the inputs are distributed as uniform randomÁü£%" bit patterns 32 and 64 bits wide.ÁÉ�üÍRO The upstream C code, the unsafe direct Rust port, and the safe pretty Rust APIÁü SP all perform the same, taking around 21 nanoseconds to format a 32-bit float andÁüô,) 31 nanoseconds to format a 64-bit float.Á¡�ü¥PM There is also a Rust-specific benchmark comparing this implementation to theÁüö,) standard library which you can run with:Á£�t§–@Œ¶ $ cargo benchÁ<ȉ9Ð�üÔPM The benchmark shows RyÅ« approximately 2-5x faster than the standard libraryÁü¥MJ across a range of f32 and f64 inputs. Measurements are in nanoseconds perÁüó! iteration; smaller is better.Á•�Œ™ ## FormattingÁ«�ü¯NK This library tends to produce more human-readable output than the standardÁüþLI library's to\_string, which never uses scientific notation. Here are twoÁlË examples:ÁÙ�üÝFC - *ryu:* 1.23e40, *std:* 12300000000000000000000000000000000000000Áü¤JG - *ryu:* 1.23e-40, *std:* 0.000000000000000000000000000000000000000123Áï�üóLI Both libraries print short decimals such as 0.0000123 without scientificÁlÀ notation.ÁüÚ5https://docs.rs/ryu/1.0.23Álá07QXdg{…¦û ª¡ ¤„ ¥ÎÑÔTÜ4à @ ¦ç\ý­å,7êi’>ýyTI´<$0.0 "|z€ ¤“D™™Rıd·™RŒ²üÕ;8 Safe API for formatting floating point numbers to text.Á‘�t• ## ExampleÁ¤�<¨‰9ü°(% let mut buffer = ryu::Buffer::new();ÁüÙ.+ let printed = buffer.format_finite(1.234);Áüˆ! assert_eq!(printed, "1.234");Á<ª‰94½ò}.ãB¸ªµ äÊ,Ê  ÚãÊ\ëò¤¤üýLI This is a cheap operation; you don't need to worry about reusing buffersÁœÎ for efficiency.Á«òBÿÎ íÊüõ 0ü–LI Print a floating point number into this buffer and return a reference toÁüç0- its string representation within the buffer.Áœ�œ¤ # Special casesÁ¼�üÄGD This function formats NaN as the string "NaN", positive infinity asÁü�=: "inf", and negative infinity as "-inf" to match std::fmt.ÁÒ�üÚJG If your input is known to be finite, you may get better performance byÁü© GD calling the `format_finite` method instead of `format` to avoid theÁìõ  checks for special cases.Á4ü ª ªò” ªBÿ‚ � þÆ” ƒ ”,† ”$’ œ ')üŒ7ü¯ L–Vü€ 0ìVµ �œ½ ±WÕ �üÝ FC This function **does not** check for NaN or infinity. If the inputÁü¨IF number is not a finite float, the printed representation will be someÁüö85 correctly formatted but unspecified numerical value.Á³�ü»HE Please check [`is_finite`] yourself before calling this function, orÁüˆIF check [`is_nan`] and [`is_infinite`] and handle those cases yourself.ÁÖ�üÞ! [`is_finite`]: f64::is_finiteÁÜ„ [`is_nan`]: f64::is_nanÁü¤%" [`is_infinite`]: f64::is_infiniteÁl“« «ò” «Bÿ‚ «š\ ¡ª\,¤”$°œ±¤íò¬±ò†¼Û,Þ¬ ¬òòBÿ ä $å¼”ò÷¤ð<óòBÿ ¼èü¦C@ A floating point number, f32 or f64, that can be written into aÁäê [`ryu::Buffer`][Buffer].Á‡�ü‹KH This trait is sealed and cannot be implemented for types outside of theÁ„× `ryu` crate.Á,òÿÆÔèŸf4ù—f&©f—f0©f'”ƒ¶”™¿´°4º—fü°¯ù Ÿf$—f)§g—f3§g' ! !! ôÍdПfBÿ Ÿf$Ýüð*„óŸf™RBÿ Ÿf$„üŸ>œ©ŸfÀÊÿ !Ÿf$½Ç 4Üá¶#%( !#(%ì‰dŒ¶Bÿ"" # œ±D·Ð"üß)„â¶™RBÿ"" %$óÄ“l™Ð"¤ÂLÈÐ"üË=œÕ¶ÀÊÿ"" (Ç $œ¸ ¿*,/ !,*/ìà dã ¿Bÿ)) *윈!DŽ!œ&ü¾")„Á"¿™RBÿ)) ,$Ò"Äò"lø"œ&¤©#L¯#œ&üº%=œÄ%¿ÀÊÿ)) / Ç Tè4ì123456ü�%|¤Ð"Ð"Bÿ 1¬ ´üŸ L¦ ñ)ñ)Bÿ 2› ° ôúD�ñ)ñ)Bÿ 3› Šü«$t²ñ)ñ)Bÿ 4› Áüà Tçñ)Ð"Bÿ 5› òü³ Tºñ)Ð"Bÿ 6› Å<ôøGHIJKLMPÉT« 579ÚT· 67:¥Dà 37;Ý ¬�T=ý Œ¤V>½ ,Ù [7@É 4à \7A² $è Z7BÑ „î c7C¡ ´€ a7D„ ´˜ `7Eç\ž ý­7Fl›ÝßÏÑÁìõÓʌ؜×ôÎÏÓÊãÒÓÊ0.,欼ÙÛËͽ¿¯±¡£“•´“ ‰ü¬ #¤¶ Ð"üÖ #¤à Ð"Ô€ \Š ñ)ü£ 'Ä­ ñ)üÒ #¤Ü ñ)ü¨ &„¯ œ&Ð"Bÿ L¬ À äÖŒáMMÊNâOñ­œFÊ^x1­œFÊ^x1NOŒùDýMMœ&ŒïDóMMñ)ü¯G¶œ&Ð"“uBÿ P ieee_mantissaÁlº ieee_exponentÁlΔœ ÓÊŒ‡ œ† ôýt  RSTVü—'Ô�QÊüÆ#´ÌQÊüòJ¬ýœ&œ&Uà* š™™™™™™™™™™™™™™®Gáz®Gáz®GázÞ$�•C‹lçû©ñÒMb–Ô h"lxz¥,Cëâ6«Cn†ðùa„ðh㈵ø"6X8IóÇ´6�íµ ÷Æj#�ÀR¦‡WH¯¼šò׈O×f¥A¸Ÿß9Œ0âŽy¦Q-æ²”Ö&è .¤ QË�h®Ö·º½×Ùß|ê:§¢4íñÞ_•dyáý»È…èöð'ê-�™—ø Ö@¾´ eÂ�vIhÂ%“qÞ3˜�pê›+¡†›„CÁ~)à¦ó!›V瞯751Í×…i+¼‰Ø—²Òù�Z?×ß7!‰–ÔFFõúsHÌEæ_ç «CÒÑ]r]† z<=f¥4¬Ò¶OɃ±ž×”c—Q]#B’ ¡œÁKyÝ‚ß~Ú}O› ´ãh¬[bјd*–å^ 9Sðâ�§à¶îDQ²@³-©&OÎRM’Xj§Ž¨™ÂWA¤~°·{P'ªØ}ÚõÐò4PeÀ_ɦR»Ë®Ä@Â�¦ê™LÔëÉ<ò6šÎ€ íSy±A`P¾ö°gt‹Ü-ÁgG³¦þ^ZR )5o°$4†ŸÂëþKHÛî�òY�žh‰eÖ9_)°´ÃûL—2§¨Õ#ö²ºY]±5–=¬[ºwéÄ(bá}'^«—VILû’‡� �hÉØÉ«òðzø·¥•>º:z¡¼[Zr.-“„DËEû.Èʯ®Ž‹ŠB�E ’±¦÷ܲJäxª�û8¡AÁë’}õnƒ-U±/Ç´gg‰udÄXœWw'&lÒì¥ØÛˆmmôÆ%ò =àÛ#ëF¾ŠÃ8(£ýLI¶UÒlþnœ`KSO1׊ï¶O—±`gE…‚‹¥¡¿ør¬'¹j7­ÖN™`ÂrV¹á`U,$ÎD•ÂÍWõ5λmã:«« ¬*+Ø/vŠObV‰4o༻UóÄn µ‰¨í±ÐÌÇ’ï¸ÔJzîºWŽ@ ÓÛòK“oûñÈßqÕ¨|õoÚXü'Ö fé3»§ú»L²)Ž`¦ׄ‡)üR•É£ŽT …¬ÐҺɨªƒØvo®�ã¬^ÜÚÝ¥ÑÀW²°bOŠHKK°H~QAš¬ŽÀÙ¡ÓÕÕYmËÚÍáV¥3{�Üw{W<â×ç«êÂ*Ï`Y‚^òÆ6&¦¬ª¶»¥€GhõkÅQëVU�‘–„íy*#ѧ"ßÝ}tV4£á�ÝÑ� Ñ1–üSElöèsä§4=§ôDýžVøSâ(S]—R]j—ÙbW�¹Ûaë.òP•¿õèE¤ÇÏHN¼X[Úݦe‘ kƒlÙÓqc­âáAÍŸ­(†ŸHódc› Û¾Sk°å�5�é¢GˉóêkJ‘rä «7¼qxLÛ¸DFª„mE_cÁÆÖÇUI¾š�éÍkEÞ867wiþ®ÁAF¢cÁVXXr—±òÎg«Ñ�ßyõqŽ(¥ìUAÎ4aÜ�Á؆nGV5}$ eÇçh䌤%9x÷0€êl¹ ×¶„ú,ùó°™»4#aM¬ø9÷G(SN\_T8hò¬Z.,Ó¹u }C`SD[ŠHX#ÜÇ÷Õ0™Ï©6|;m&ÒùrŒ‰´Ž²�ñù+¸A.�£*r(¦ ôǼÝúš¾¥O9»Á†Ö\—äö÷0 Â^œ×0ðúÖ$Ôø_ZhåIy�&/߃v`æá QnÇ R¿åÏ^…�Ñ €Úño™„ÙKõÔh‚ÄOÖäãô õ+wíª™iÙ·÷³÷ۼŊˆî­t’°Å\ù¯, Þh¦í|ITê€o”(³$ÔäS¸WÊ:Uš¿v \ƒvC`y;bsª®ÿ^€ž½ÈÑfõ+�¸±2Ë3WdmARļ}` ôŽ¢\ß̶ŠgÛiýÊæ=ÃØN}ߊwrÅ/«×/Žä.ÿ€Õ’[sòˆ¬Œj>¿efDBIÐ(õÓV=U˜Jÿ꣠BMAˆ¹W•»ó2«éæh×Í9aywüÂ@[ïTR yqaç-ùÉhÍY†P�™Žµh¥|[vtV[Ò¦Já>‘ QýÅöÝD|¢ÿ@M§ÊD7’±ÐÉJËi÷dή nXPO´;<îÅPØ‹<§ñys?� ÉÉñ7Úy Ê…ôÇÂ2@=ÛBé¿ö¨©oº ž·fÈ㛺Ì+ÏS!&•p~,R ‚I•p‰r©¸Ý&eðt³�uˆ„u÷Œ/>燅^ {r6‘_ &˜ìŸ7ßä–[ø@Õ„Fð,LêG«¯Æá7ÑŒ™#GÝ?EL¤gÎç$Õ´G�Ò±Ì�ÖéRØ·Ýßr¨8' KEîÛy,~i†YØ©¢ã_)�F0�6qz»§�³º¥kóØØ^'/©•ìšã(bQ‰�­àKìuïà÷8�èL¯š¬y*Y“-ذSrÖ%âV©.UGH¾y�ÜÁÞ·�ET|» Ú~–�”œ—ŒÏº—/Öÿ¦wv°ßÖrm.yŒÞCÿ§Qù‘ó²xõ½¾Ž­ýÒþ?Âì·Z"cdØŠdB23°ð_µµ¶F¢ƒ›ŽÂY¬YæÝ�Ä+£9_öά£üÔƒœ-L¬i^r½›ÊHCBœãŠÖ‰Tõýâi›Æ«½T�î/kñ ØtÅk"þrv×¾Œ"ÁpF*ѼNË(ÅÿÖNg�k»  ù}xt;QË$~Ø{_|Maþù)É ·1­üAc �Ë”!Ô× Å'$Ê4Ì‚wÎxTϹ¿go mC!­7ùq-Ý¥”ÌYpŠÏMWùÇô½}QÝÖzó¡?>¬ú î/Éè.¾ÿøœ2ýy÷Ö$ó  ¿1f6úÂýÇ’x\Ì'¸^û«Ëlu`ä|{® S“ɼg¢ð]™ ”ŰBëôt”?jç/áæv'‰å\*Ý2ˆóçë+�…Π·°î°( ÂØßßaoJY´JNt3ÌЭLæç%ÕÍà)¢>��ÖsñÖQ†QwqMî´ËÙrx)èWéÖè¾è{°T¬�„�u !ßS2ºüY݉ j¤÷€BçC(Èc®Jnpîé’fjØ'8 JCë!­ì,¤=ktn{œ~VNW½ðþˆÛ\XüAãþ#J%b´”–A_a�`6ËéÔè)ª«gç=MøÐ‡Ý »!V¹2¹d×ùsm¥•Œf+i#ÂêÁ:òÂì{ÞÖ‰º‚λ4b[W–ßKb5¥üö´â¬ÞYódyØœˆ;”ñ‡761áõƒÇFJmüÜZÆ‘B'+ŸnW0¯žÑ§›R�ÞÑ<Ë}%%1¦’ê@å§0<þH·yZㄨ»Q†ÀÉ1KÓÅÇ®‚�SÉÍ´£ÍBéR ¦ÑÈ…¨¤�>!Ût¸ß@:žSP JË´÷`gûäB§  ›)Þø7³zRüƒ5×Ý ¨‘B0ŽY¸*·“9ïK �>áùîøBa¿<€>›=eçÇXú›™ä, døÈn¥ Ž�ù�Žê#¤™éùÓ‹·£q@aÚ>»PẔ©<ù‚ô™ÿ+a³›ÄºuÇŽÑ Ã]»1‰)j•ÄÒ çh±bÁ¡{ºˆwÐÛo>‡'‚g›’]@¿€,æc˜>?ÐØIuäI3Ì3½Q¶Feÿ GÔ]Pn�Ö�ʧ^QÌpÒSɳãKWDÙýnN­çƒ©:ö‚ yGá—%¥ŠìϺûÄhÔ`lÏ€y„ênð?*ù‡4zåšõÓK3"”9 l�.Qâ*CÚ\µ©ÇÕ¼¦‹Ú�UÏáÓ°‡Ù".qß�œUåS�æl O‹ZLÚÞϨšëŠ£©¥¢{£®x~±¥ â"©©¢j_Ò}'—µ¢š6žTÑ ‚ˆÛ—¬÷N’~w§€Îf|yL#ÆØÝt˜ñ ä p-�­k£'–TZZÖP¢Y$ ¾ïµxEšÙ�pþò÷²ùÙwj{›CÀþ[Æ(.{ òC’íÄòÌÊ, }+¯œ¾Ð7[ o½¡qÊ"ŒÎã>ËsùHŒ—´'Õp°Ÿdxì[Ú¬%T UùLÀP`ð¯>{½·©Öa 3f@€ó¿Ë•—,îÞsÕRpÍfRf¬ïXG°d¹�îÛY¤¸…#&Gló¶ú¦‹I®¶“ØÐ‚l#)_•…<u°Šôžý¬8¨þî”÷YÕ²)¯±—½“†˜%,{wõº%ެ—Üžl¦ÅX"+ }z¿-þ¸Éy=vj­Nï ýaÌWË`¡”—Åî½ Yþç  çMÝ:±üE[]c¦Ü„دûêÈ�0k¯J…°Ð>ób"Ô×&¼ònãÐ&ÚËuÂè�†Œ¤ÆêŸ´×)F‰�§œkpPïß*F°‰óÙ�%³àTk‹�MyžótRöboë͇xE/|(—R]¨^‚¿" ÓÆj¿É†Bä¹KhÌ<Ÿˆÿ:Òhm)y@z,`˜Ú˜‘ƒä $!”3ÈV³Fâ6×¶MC) x�8ܴܤ‘JßНk¨f'Z`!a¡‚ªË¢¿ï¹ë…2M´M´›»oN™Œa‰ÑŽª=�¤öâbY áÖ¡§ØîÊÙ¶+O‚GE›$^›r'~öŠß± IIõ…þ ø;[iÖРJÔ]žË¤ù/|‡«MRSÉcß:\æ¹ù ¬qgÚt¡/°ûúoVÁRH*Ù€°­%ÀK//ó4Q ªŽ4ç Ͳ~ëOÄ qî>]«m (2‰Ù�¤�‹e¼W (Ôz”:|<òô,Y àÌÙ¹÷C•–ÛüôÃðà=³páÇ_—]6ZËõ&�9æèð$üV��Þ" 5�£ÐìãŒ0ßÙ¦K‚¢]?éÚ#ƒ=±Yáë¢ÎN±2T\98/µÂËhyÑ}äN„Sã-`¿]5ÖS”§dPrv‹æe±*x©v춦ŽÏÄúD×oµª&ñ‹×}²bjß¿*"R?'Co¬d(Nˆ™ˆNÛeœò‰P 8J Ì(tJÅoe“ê´3À;¤ ‡ö¡jY„"sö™–¶løçî­6Ù´õ‘5®VW àó?~I$õº"ƒ"}E¬ÖLöÿdÔé�•èhè0щx=øÿƒCîsDíS 't¡“—ÆÌœÏñ�ñMR¹%¤Ga³è®Ë5Ç·éÒMÌ\Ñìÿñ¢Ù�Ò_! =°Ú#3[‚ÁçP™hK«aP³*…+jg¹@º¢"N@\Ukj¼!S”Ý”èN ÍID¼îÉçQíȇÚH©ÓÆJv Ú½ lHFÛl‡ÜkÕ‘£¯dÍL½IŠŸãïݧO±:âzÈ ¨Cÿ8æ/¦²ô.èû9¢9Siÿ“ó„(]òì/û´Çu‡ÿ²õº.êGæ‘!Ù"?ÿ¶"Ó\òT…A�zµeÿÿ‘訰õC87bÄ·23Û†í&îŸóñh6:Y„둤 ‹ö'›¹^ûài¼tP<Öz^†âú~/ç‡c]@t–V‘ýÖÐ÷—åqÙ8b͆½«ÚÊx “y„Áz-è=ÒÊVo-qBaКȊ†1¨""¯NjhM‘Úª=O@tè´yò>ˆS¤Ú®ˆd?]‡]a(ÿlÜé®XmPÌ™}¤•h e®`©ä�Hz\/ƒDí=·¾³ºƒq ®a°ò6�Š1,2ö.6Áæ¾çYõðaw‚½ä‰›×—?öîZN,5©}ʃ¡¯ßß2ø‹¥V÷ þ¡œçò²LÂùoªù³1J¹(�p›”YÝ•¶Áìµ^Cõ å€Åí(JÞ^W^å5Ĥg‹íÕ±¬~·Äi~Rо"¶Z›y—%¡/0·³§É�^Ia¬·MÙXóøÂn›KD�#Æ×­àõ“5æ$+¬Ó>›=YI4V†"=n¼‰ÜËžýàmÂÊñc¡ãoþ³$iA7›;ŽÑ›ÒµYc†u5%ÅÅã3‘éÑÒ�÷P7žx ?�Úvºtu Æ@,úxÆ1å�$÷í»H£gàYÃ-[·@,‹ÉÓµM®$|_Í}VoÔ+æp‹hmƘHÉð~í²=NtŸ½žà¡À˜W§ý¤�æÊKMÒ€Gy›ìÊP¥Ù¢DyHÎØŽÅ­D�)‚Ð-mØ3?ÑW�šÓ Φ$$yFö¨e§¬JvM}¤: Ž=½to¥zwˆVâdP•æ>1d]Œ·ûŵ·¦ªëË�¶Jp,–ÑkÄW¤ª$Gðè ßéîÜDƒÚlóSBßL€!¿Ø|�âC#)Ch=3�2zý}hN6TϹ21¸ÎP�•É@J½Æ¹K)QèÆ §¦wÔ31ÒÇo‡Ú¹k ìÆv) �Ó¿Ò®”ßÛ¬d£WBI¸ÿ~‡ã#êµßÍ `™±19®µˆ‘LÎpMuæ­'ŽúâU”¦µ­ã¯»pI }*èwC…ÄWé{òb�=—»‡ù5jy‡É޵ dßbq¼�¥uäˆwÖleÑ'5Êk¦¥·÷éÓ’«ðAÄ¡¼Æ_îV�±ÍeÓadc£ÿ³±‰HO|QÜ›MPé2ß(ŽÔÙÉ}Iqsã �² Øv;|.‚…›~êÍYñ;S+ʾ¥ž7¯Ëî×Gô/ÜU¡˜„4KùX ¿¬lÃŒ«à*Ô¡ÊüìˆBŒ÷ˆßwWà(@ˆj€„Є×eÍ _ èvH¢”@åœ0�ļ4&õk€à7yà؅W4ÈNgmÁ=‘`äX@Œµx¯PïâÖä’ÕMÏð€öJáÇ- ´�ÙyCx”�(,*‹¹42·ô­@ç„þäqÙˆ0�/ç'ª|!׿úà1€ÔÛ錠9Y> ÉR$°ˆï�¾³nµµ¸…­`œÉF"ã¦@æØx|Øê›Ðè�‡+‚MÇraBâsi¶â yÏù€ÚÐdiWC¸�ˆb‚±¡*Óδ*û"fJœô‡‚aõ¹«¿¤\Ãñ)c \9TË÷æ7ú]ȳG)¾µ` àÄxõº ™³-ãxÈöÖ²@t@�ü�K}ÏYÆïP‘P´{qž\Cð·k¤õd¡Ú Æ3T쥀†Y„Þ¤¨È[ ´³'„ èo%ÎÒºrÈ¡ 1å(âË®›�‡i�:Ê~^Ym?M±ô¡™d~Å@¯H� AÝq ÀýÝvÒaÛ³’T 0}•GºêÈðoEÛô(>nÝll´$ûìË23ŠÍɈ‡áí9è~œ–þ¿ì@üjé4$QÏ!ÿ÷“¨=Pâ1PAm%Cªåþõ¸MäZ>d’ÈîÓŸ~3gW`�ñM}¶zêÚF^Am¸n¡Ü²Œ’EHì: HDóÂääéÞ/÷VZ§IÈZ°ó^äÖû´ì0\z±œp¥ueñ“¾Šyì®�af‡ir¿dí8ní—§Úôù?éOï½(ÇÉè}Qrø�ãÄbµvy~±îÒJGû9»ýbÔ—£Ý]ª‡zÈÑ)½{É} Uõ”édŸ˜:Ft¬í�Î'UýŸcŸä«È‹hEÂqª_|Ö†<ÇÝÖº.ÂÖ2•wŒ¨ 9•Œiú9Æß(½*‘WI§CÝ÷�È·sluu­‘”Ôu¢£º¥Ý�ÇÒÒ˜bµ¹I‹L”‡ê¹¼ÃƒŸ]ìÖ¯y)eè«´dµ™§Ì×s~âÖá=I"[ÿÕп¢f�M&­Æmõ˜¿…â·E€ÊòàoX8É2/'Û%— }/Ù‹n†{ÿ^ûðQïü4®½g4­_�6“ÞÁ­A]�˜7bDøš2`’ôG¡~ÅzU¶[t·œpÇ] º’ÛѵÈMQå%L9µ‹hwRFã:¡¥ÞD.Ÿ‡¢®BŠó ÎÄ„' ë|Ô%­ImðŽöeñÍ%\ôùn܈¬ò�s¿mA/sq¸Š“Õ«71¨—äˆýçF³óÛÊ–…=’½ëü¡`ÜïR}üæÌö,å%|ÊxÓ«çÎ]@<¯—�>+dËpBuÐ ›ý0Ø5=þÌ’’éÍ=½NƒÌ=@›û�¢± !FËÒŸ&‚ú3 Þh©×Ûý”ÆG0J#ùŽÓÍR=:¸Y¼œ¶›ÀxíY|ÀSf$¸õ¡£ÂðÖhp›°èí&sÊLó¬ ƒLÂÜâßè�ïýìçÑoùÉ틱Âõ)>çaÆËw<éî]3s´M˜å`ú·¾•‹£j5�!aþùøe.{nLÅBôi¹_³›»ÿü ÅO»)€8âÓ7 ‚ª?ˆö¾q€=¦�kzÓ„N*´.ŽàÌÏÙrYH åpš0ÝX à!Ȥ7-4ï Á|oX*º �…8ëPñ›ÙJî´(Lð¦†Á%ÒvÈÌq™/V(ô˜w†ÔzÿYÍ»k21U¨I‚×~°À_ªýÞj nQoFOnØ{*do^Ë‹É% ã‰Î5= 6~Ãî;ï Þ[,‚a‚ ŽÃ]´u…µÈj¹[ñ|ÑÇ8šº�Òæâzŧ²-ÜÅùÆ@é4† ›Ù¶Q9S7¸ø�#TDH“³”"s›:V!i•ÚÖw 9ëOBÉ«©Ãú��Ì•ÈEæã’»TºiPè‹> XSN3Ä&Žƒdâ.NÈîåg"@upšq¤ýšºazjßÁHI†Ç†Þ }Œ¢+ÙšÛ§Àx(ÉYœ/‹vÏ¡€ÒÑð–²[;pƒû-Td�#ƒVžO%&2½œb~tì#ì…£_®¯~ìÙ:�‘ç,ggŒ÷™[žç4@I»| À·:@ùÂ!ÈíÃé›È°eI�·óT):©3$ÚÁú¿[t¥0ª³ˆ“ V(¹rW¹hg^Jp5|Hlrç£N­çBö\ÌBZOáL¢˜¡“�3tâ˜dÑ peÿDü0 ¨/L ¾½Ì>?V;=È’;Ÿ�.-Ï+ŠLzw Ç4=|„lia[Öo¬Šfü L›¥GSÃ9òË‹W-€; �(4Èî¾n­8`Š‹Saù™ =U7el#|67¨¹÷S¿hŒ*…~G,…¨õ(ï‚/u&^Y÷!Eæ ‰™yÕ±= ØÚ—:5ëÏNëÿ×J� ŽÑ=‰æ"æÿ�ÝepŽñE�+ƒßDÕï¿xª?ù¶K8û± kÊëï•ÏG·¤^zžÎ…½æ«\zÃåMö‡FB§6pëy,0¯ðùTÏk‰CLf˜· üÚl8*ÃÆ« Tß~å(»ˆÆôs¸V *×Þó)*øñ�f¬PzæÓJó7ÚM;—Àk’àˆðÅPáà =!°wë$l÷¤YLŒ)\Ȕ°·¯÷™9ýت×|Lᜥ›uˆ<䎕 œŸ �“ªKÝy}ˆÁðæa™á[@JOªל걬`ºÿÙrÐãT DeÞ×ø¨��ä*ˆJÿªc†›ÉOºÙ‚nQ:*¿•üg¼ã(�#ÊåÈtä.»û«3t¬<{ÉNýT=ááêñŸÈë…óÌ{¢<ªŒYšeîǺfg0@ËËÔïïÿéyi@�<Ðð^ÿäõ•`?2ìAÈÐ%b¬6?^s»8Ï>gRúD¯ºWÏ5Pêƒç8[)¶b¡!rRä©`�ãíØùd» ªg]VÓxt\)O8=*ŒTÒÀô+—‘³ób†fš×tƒøxeþ:PØý“� R¤6Wbþ½IdNý¸@á�fMíú}-\ý¡<çÈŒ`°"Ô¼nœY>å…0ú/!x\+ lŠð�^§<ø{)–3v ml16ÑKöÚ³{ÀSÎHˆǽƒÅžÚhPMXô€-ucœVr;ä`n1áxR|CìN ´à(´—‰Ê”° t´ Z[\]`abcí ¡¸XYL›ÔÑ$Øœ&œ&Bÿ Z® ÝÜ¥,¬œ&œ&Bÿ [® ²äû4‚œ&œ&Bÿ \® ‰üÓ0\áœ&Ð"Bÿ ]�,ñ”Š <� Xœ&”× <Ý Xœ&ü× 9´Þ œ&Ð"Bÿ `�,õ ¦ � üÛ9´âœ&Ð"Bÿ a�,ù¦ …üÜ<dã­œ& ­ßwÐ"œ&Bÿ ý b£ ðó ø  ŠüÃ�„Ñ®œ& ®ßwÐ" œ&óÐÐ"œ&ÿ ø c£ çó ó  ‰vpÁ•vmÁ§mm_shiftÁD¹|ó \÷ eü£!\®íÊÈÈ00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899ÈÀÊ<„!ˆ!qrswzÉT« 5giÚT· 6gj¥Dà 3gk“Œï „gm÷¬‚ ƒgnÄÌ™ �go¤Ì´ €gpö œá ~uØ ¼ö }vl› ¥§—™‰‹¬Ò �pracRTüÓ" œÝ Ð"üü" œ† Ð"¬¤ Tª gñ)¬É ƒ…vxä¾ ŒÉ ww� xâyñÏëPz¹®¯×ÏëPz¹®¯×xyŒá Då wwÐ"ŒÕ DÙ wwñ)ü• G œ Ð"Ð"¢ÖBÿ z¾ul  Óul´ ”�!t‘!}~€�‚ƒ„ë¢7{|T›ü¨&¼²ñ)üõ"œÿñ)üå'lè{Ð"Ð"Bÿ �,úüÐ <Ì× Ð"Ð"Bÿ €�,ñ ¦ ý üˆ <Ì� Ð"Ð"Bÿ ��,© ¦ µ üÎ7dÑ{Ð"œ&ñ)Ð"Bÿ ‚£ ÞfactorÁ4æshiftÁ,óüð;¬÷Ð"Ð"ñ)Ð"Bÿ ƒ£ �§ •  �üå7ŒìÐ"Ð"ñ)Ð"Bÿ „£ þŸ †  ŽT¡!4¥!†‹¡¢â|2 Š…‘Ë|C ‰…’¦tj �…”‹œz Ž…•«4›0…–ë$´7…˜€ º P…™Ì¤¿ H…š±¤Õ G…›µ ý z…�Ø œ‚ r…ž¾ œ— q…Ÿí ·¸… dD…‰Šú \ e†‡í / ¸†ˆü +L) ü_I |m ÀÊÿ ‰¡ � Ç 4� ü I |® ÀÊÿ Š¡ Â Ç 4Ð dD…Ž�ú \ e‹Œí / ¸‹�ü +L) ü_G œm œ&Àÿ Žð 4… Ç 4– ü»B tÉ Ð"Àÿ �ð 4Ü Ç 4í t!©¬›žtY�“‚…l”xT§k®^aPSADTð69(+L±ü 8üòEB Print f64 to the given buffer and return number of bytes written.Á¸�ü¼%" At most 24 bytes will be written.Áâ�¤æ ## Special casesÁû�üÿF§\üÆI÷\ü�8Ê]É�üÍH˜^ü–Iê^à�üä!É_܆ó_ü¢%˜`È�lÌ ## SafetyÁÚ�üÞPM The `result` pointer argument must point to sufficiently many writable bytesÁü¯)& to hold RyÅ«'s representation of `f`.ÁÙ�tݤRì�<ð‰9üø,) use std::{mem::MaybeUninit, slice, str};Á¥ �¬©  let f = 1.234f64;Á¿ �dà  unsafe {ÁüÐ ;8 let mut buffer = [MaybeUninit::::uninit(); 24];ÁüŒ HE let len = ryu::raw::format64(f, buffer.as_mut_ptr() as *mut u8);ÁüÕ MJ let slice = slice::from_raw_parts(buffer.as_ptr() as *const u8, len);Áü£ 41 let print = str::from_utf8_unchecked(slice);ÁüØ # assert_eq!(print, "1.234");Á,ü Ë:<‚ ‰9/\Š DÐ ¿ÀÊÿÃ(œ Ù Ç 4á üü)8ü¬ EB Print f32 to the given buffer and return number of bytes written.Áò �üö %" At most 16 bytes will be written.Áœ!�¤ !¾âµ!�ü¹!F§\ü€"I÷\üÊ"8Ê]ƒ#�ü‡#H˜^üÐ#Iê^š$�üž$! [`is_finite`]: f32::is_finiteÁÜÀ$ [`is_nan`]: f32::is_nanÁüÜ$%" [`is_infinite`]: f32::is_infiniteÁ‚%�l†%òã”%�ü˜%P•äüé%)ïä“&�t—&¤R¦&�<ª&‰9ü²&,Òåß&�¬ã& let f = 1.234f32;Áù&�dý&½æüŠ';8 let mut buffer = [MaybeUninit::::uninit(); 16];ÁüÆ'HE let len = ryu::raw::format32(f, buffer.as_mut_ptr() as *mut u8);Áü�(MêçüÝ(4Áèü’)#ÿè,¶)Ë:<¼)‰9/\Ä)DŠ*¶ÀÊÿÓ$œ “*Ç 4›*lÎ!RRcc\¹"üï!IF Unsafe functions that mirror the API of the C implementation of RyÅ«.ÁÁ"¡Dã" ¢¨‘Dí" ¡©lÓ"%'‘-} �0} )1} ‚} } *\https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=githubÁhttps://docs.rs/ryuÁ%RyÅ«: fast float-to-string conversionÁ*https://dl.acm.org/citation.cfm?id=3192369Áhttps://github.com/ulfjack/ryuÁdtoa-benchmarkÁ)https://github.com/dtolnay/dtoa-benchmarkÁgithubÁ]https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rustÁhttps://github.com/dtolnay/ryuÁ crates-ioÁhttps://crates.io/crates/ryuÁ^https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rsÁªòdocs-rsÁ‹ó£óÍóüóŸô²ôàôÍõðõëôŸöªòþõˆ÷‹ó£óÍóüóŸô²ôàôÍõëôŸöðõþõˆ÷ ryu::BufferÁ is_finiteÁf64::is_finiteÁȪ is_nanÁ f64::is_nanÁ is_infiniteÁryuÁf64::is_infiniteÁÇøÈ·øªÕøöø�ù¡ù‘ù©ùÈªÇøÕøöø·ø�ù‘ù¡ù©ù!Æf32::is_finiteÁ f32::is_nanÁf32::is_infiniteÁÇøÕøÈöø�ù‘ù©ùÆ»úÎúÇøÈÞúÕøöø�ù‘ù©ù»úÆÈÎúÇøÕøöøÞú�ù‘ù©ùŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²NaNinf-inf'assertion failed: n <= self.bytes.len()'ãýíý÷ý‚þæ2Kºbðk‰Ù:±oU�KØ'…\98¯¿w‚÷bƒÊ¨çü+8ÂË(¾âN› œ'ä<\•h¬ÕKü_°Y¯¬��Á·1êíR¹ÂY=Ãè>pI¨ü‚JåËnLÊz„äªëݸ g váR4â.fz—3‹UK+†F Ó¹FOõðœxUëgÃvµ^¬£Á��hñÍüœ²Ré<6mÖ‡$v)‘ô8Sš!O­ñdx™C4Ò ““Ïqqn£‡ÿ×Âv-h…æþ l]‹kc¶÷<ŽW‹¾×©(n"<®/¯I£DòÐÀÎQŠG’-Ô5¹øBáGˆ%òÉÀC:À¯$† Ôó½0_š,Ü ¾z/oØj-<ôôŠÃ×pÌKÇ3èÐ gÜòéÏÚÛ[KþƬôþâã«(Ý‘ýï�5X”jî/(y¥ª.º¸iÿŠûn‘õ¡(si�êÞ~Ð÷$eåÉD&cÔô½m!`5«ÄVËMIül®—§M†[Á}0= Ä—å`ý oÈBjêë+•; Œ±Âfõ7퇟†ç Áµ<6ßXtÞ”ãÅ–Æ;dLj4èq>¥lXÄz«¤¨ó×7¢Cõ?\a J¿-+wΆÿt|ž[W®Žø¡ñ0À5æý+²2¼´ý k â-•ëá"ß–øV”ŠßÉ÷Ö‚$AOSoa‹p‰¹ûìûÏÌð.èHnþwGOñ mõ¤âr¶GÒ�!Zˆ‘ƒèx¡mò#[†h!É ;„Û&ȉÑ$ñs8¼‰|ÄzñþuÒÛsò,KÅô^9$"½s²‚9>�« Q9ì4°ZÃ;LÏ—o'~ƒ™Ù[ß�×Ò-¼E¾8§û…å•©N@@ÏÉèÑ{E@Xî#«R `�i¡0¸÷o‘CÓ Eå£b•!ãSŒv úcf«€)ÿ=uu½5ÊàÛ€(ÕŠ?¢LÊïâÚâÜá4’¿Ð» šHÇí¡@?Ç ñ±jXIô@@ü`u›¸ô”õ\âb=e3™pZë?[‡�GI Ô‘—˜ ˜8 ³z¦Y–DV£gÑ Ó’hØ‹ãôœá>øÂtÀN«AÓ_ìSpýu««CûTfBâ6"T0:÷39`¡�ÿŠó"ùv¤�¶€GÂûÛ{t‘ ÂbƒÖü“U{$¥ÚË]/ÄK-ù–¢PèLÐÓˆÇ6‚6•6Ñ6 7H7„7À7û7ë8í8ñ8õ8û89+9C9E9I9M9Q9U9Y9_9f9z9�9¡9µ9É9:\:s:‹:ê:;(;=;èP�e¶e¼e÷e2fnfªf¾fÓfg]gÁgPh^hri'j)j-j1j7j9j=jAjEjLj`jsj‡j‰j�j“jëjkk`k‹k’k¦kºk÷k=lƒlàl1m�m�n×nÜnân(omo§o¬o²oøo=p@pFpLpOpUp\pcpfpmpspyp€pƒp‰p�p–pž'p'uoxrxxxxyyyÓ '%(Û2Z3Š68 ;—eXhzihk‰m¥nuoÙx*G*Ò0ã0L1Û2ì2ý2]3H4k5V:åj               Ò'#(�(¥(¹(ð)*Þ*X-V0 1t1�23‰3É3 4}4£4Î4ö4 535 5Æ5ñ56-6V6ˆ6¯6ë6&7b7ž7Ú78j9~9‘9¥9¹9ã9 :`:w:¥:;;,;U;Q•eÖefLfˆf®fÂfíf2gwgÛgVhvhxiPjdjwj™jïjk4kfk–kªkÔklWl�lúlKm‡m¢nûnBoroËopÚtFxØxq(((s(x(}(€(„(ˆ(�(±(Å(*(*7*N*ó*+Ì-Ù-µ0Â0Ó0í0<1V1‹1Ü2í2þ2m3¬3í384a4›4¯4î455[5„5¾5Ò56%696~6�6Ì67C77»7÷7ç8ë8ï8ó8÷89)9?9C9G9K9O9S9W9[9a9u9‰9œ9°9Ä9:X:o:†:æ:;#;8;ÓPâP{e‹e²e¸eóe.fif¦fºfÎfgXg»gLhYh_ini#j'j+j/j3j7j;j?jCjGj[jojƒj‡j‹j�jçjþjk\k‡k�k¡kµkòk8l~lÛl,m}mšnÓnÙnÞn#ojo£o©o®oóo:p=pCpIpLpRpXp_pcpjpppvp|p€p†pŒp’p™pÿtkxoxux{xýxyy yyyy!y((v({(‚(†(‹(¡(µ(ì)*Æ*@-Î->0·0ñ0\1}23q3±3ò3e4Ÿ4¶4ò455ˆ5Â5Ù56)6>6„6—6Ó67J7†7Â7ý7í8ñ8õ8'9=9E9I9M9Q9U9Y9_9f9z9�9¡9µ9Ë9:\:s:�:;;(;=;èP‘e¶e¾eùe4fpfªf¾fÕfg_gÃgRh^hti)j-j1j9j=jAjEjLj`jsj‰j�j•jëjkkbk‹k’k¦k¼kùk?l…lâl3mƒmŸn×nÜnän*ooo§o¬o´oúo@pFpOpUp\pfpmpspypƒp‰p�p–pÂt.xrxxxÔxyy yyyy$y—(­(Á(÷)"*2*C*í*ÿ*•-Ö-“0¿0Î0ß0-1H1ƒ1”2è2ù23š3Û34D4�4«4ß4þ45F5g5°5Î56!656i6¾6ú657q7­7é7q9…9˜9¬9À9ò9:i:€:¶:;4;\;ÝPQ†eåe f[f˜f¶fÊfýfBg�g h}hiiWjkjj jøjkFk�k±käk!lgl±l m^m oSoÜo#pëtWx‘(§(»(ñ)*,*=*å*÷*|-Ð-z0¹0È0Ù0!1B1{1‚2â2ó2 3’3Ó34>4…4¥4×4ø4 5>5a5¨5È5ú56/6a6¸6ô6/7k7§7ã7k99’9¦9º9ì9 :a:x:°:;.;V;×PQ€eßefUf’f°fÄf÷f�« Qƒ_ìSpýu««žÂbƒÖü“U{¤éÏÚÛ[ZÛç‰g¿?tÀ�°wJƒ™Ù[ß�׆kþÄ® Äû.Á}0= Ä—åeN› œ'äMÐNgè¬Ûsò,KÅô�<ŽW‹¾×ËnLÊz„ä váR4ßXtÞ”j½þ¶ÄE-º0ãÅ–Æ;dk¼´ý ks$¥ÚË]/Ä¥Lj4èq>¥lf«€ŽoÖ÷­–°tªK+†F Ó¹F_š,Ü ¾z/V©(n"<®/Ôô½m!`5«bÉ+^$ É*+^9$"½s²‚�KØ'…\9ÊôÙ'] ‚>àÛ€(ÕŠ?�À5æý+²2r�ÞZ,ÓšG; r�-´l/X”jî/(y¥]Á·1êíR ŠË‚=3~ À«dš±V5üOΨÂfõ7í‡hk‰Ù:±oUOn©:m—}3-Ô5øœÏqqn£‡ÿ×K-ù–¢PèL¦�›¹È¥l9È2®—§M†[d÷bƒÊ¨ç%Ïó"©€°£-u©[ñªõ¦›®lXÄz«¤¨óm<\•h¬ÕKü@Xî#«R `Š_°Y¯¬��9ì4°ZÃ;„?Ç ñ±jXI”Siõ ²ëõIÑJ´òO8†YŠñµ¦¸Q�i¡0¸÷o‘‹æ2Kºbð† Ôó½0UˆZ:¾Ø‰ŽP8¯¿w‚ÉÀC:À¯$TŸ†ç Áµ<6i ñÂï{…#¹ÂY=Ãè> ]�Q»Â‹[Ñ1 ;ŽÂ­?@\a J¿-+woÒ-¼E¾8§û‡`ý oÈBjêfîÒ©ÉPõ•&BÜ¢žÉi$Oü+8ÂË(¾âÃ×pÌKÇ3X ÆÍ¦$ê5•ÀÝÎçìyHq› @Ï'qÊN$eåÉD&ca šHÇí¡@“x™C4Ò ““âr¶GÒ�!{£gÑ Ó’hØ› '‚Ö¡·y9 ;„Û&ȉ~õêlä¸ôP$CÓ Eå£b•ŒZˆ‘ƒèx¡m|ˆ mÆïÏ>¹R¢LÊïâÚ‘¯I£DòÐÀKþƬôþâã[Oñ mõ¤z¸ô”õ\âb–T0:÷39 W®Žø¡ñ0qÂí¾‡ù¥üˆ!Èsò@ùÒ:¹ûìûÏÌðxô@@ü`u›•«(Ý‘ýï�5\.èHnþwGy|ÄzñþuÒ€X(U=-_;k}ÿÿrÿÿrÿtzkr J] 5bR?:ÿÿ#UYÿAÿMÿRÿ)ÿ`ÿgÿCÿÿ*>c E !ÿIÿD jÿÿÿÿ6g2ÿ^gq?ÿÿÿÿÿ(9ÿÿDÿ)mÿ ÿÿ{ÿÿÿÿÿÿD-~/z1eÿÿÿ iÿ0'dÿÿfÿÿ ÿ]xÿ+* U*0?"Y4|k&dÿ-QMy~0ÿH$ ÿ \ÿÿHÿxÿÿGBh;}uJquQ2T, +0DL#/C$*#$ .0/+#'* D$$2#$ .073#'* D$Ä«Ž'¢Wt™kîÚᤅP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s.rsÁE/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23ÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s.rsÁ ‚J¶x"vä)GCÀï�í ÚYÚY®BEP73K,6.LO$7K[B**#/+*),KF6+ & % $ # " !         -/0*J+ S? R< H?F-!(IAA**RO2C$*&/KD(( 11TPJXF&ECD\>@ P4 4*)/G@(( 11ZK)Y6N8R@32B b&(C7&&&Z&Z3=1 "*^#**^A5 L=$ Rb ]"$$?#(]( NQK=&&&&Z& R+†ÔÃÖ}ÿšÇÝÕ¹éÀ°'P/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/lib.rsÁE/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23ÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/lib.rsÁ ׋pò5õAéwEH¢ ˆ¸"ú"ú"†‰kon O&NO;Q68/-,&MOCL@\,5'<87RU&ST-Q-QN"OMGKM 6 & !%$ % # (   (J1ˆùîµ"Fx[ë+ý ‹7Û™IÚ3ÚW/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/mod.rsÁE/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23ÁW/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/mod.rsÁ JÜ'eÚz0i¾NЦ[¾=¾=à8;IAF&GJ9IJ"&Q*- PMNO8'#DL *:4##@Z1 jwmm©ï–s‚´P€ëS/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/common.rsÁE/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23ÁS/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/common.rsÁ +s>W¦]ÞçÉ�pMÒᥥ_BEP73K,6.LO$Q *(::#        ?*6HM?(C*5HM?.*;8*7a8*7b›…8]|<=5Â" Oxv%[/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s_full_table.rsÁE/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23Á[/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s_full_table.rsÁ ¹s±Ñ9ôÐÔ#`QåÕÐSö€ö€¸BEP73K,6.LO$/+O100001011110010001101010000110100110111100010110111011110101001101101110/00100110011011001011000101101101101/0110010011100101110011/.1011111/10001011011010010/0000111101000100111000101110110/11011110101/011//1011001110011011000100000011011101011010111001000001010101000/010100011010101011110101000110101101011001010100001100/1.1000101010101/G0011111100/001110101110100001110.1101101010110111/0010110001/101000000111/10010110011111101011111101111101111100000111011111100010111011101001/0111110/010011010.100100000001111011001011110100//0110100/1010000101101110100111010000101100001100001000111000011000//1111110001011/01111110101000000110/0002ÃîÌyƒ1å²')ó�Ë[/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s_intrinsics.rsÁE/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23Á[/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s_intrinsics.rsÁ v~6ð! ÞZÊ)JATFññYBEP73K,6.LO$* * * *3MV #-  .*=2 "!A6 L=$ Rb ]2G"2 R:/^6î*sÿø Xlý-“\/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/exponent.rsÁE/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23Á\/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/exponent.rsÁ TfdI](“n¦Š}bZ ›Û Û 0%*L *4740 "*L 40 "&Éé…üÈ0 -ò"W\/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/mantissa.rsÁE/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23Á\/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/mantissa.rsÁ Û¸vjsùÓ½!=.²›6 ¹¹2%*J*R""!!!!^^^^ +*E5!!^^ %] ] .¼_œ€êaç™ôJVåàÀâ’½u¿ÍÁ‰Ã§ÅWÇåÈßÌwÎÌϧÑÓx86_64-unknown-linux-gnuÁã<öv™•fS˜FOŠ|"¡ù-8415dd0a307a5268Áæ2Kºbðô¨RãŠ»ë ¯ø ]] '§õ00£z£"zª"§þxõ¯è§¯¯Î¯ÞÞ££Æ£Æ£Æ£é£Æ*ÆT0>`tþ0è`þþþ£éf̧>Îxxð¯ðÞx0ð`††Œ’gÎ*T­ :: «Hrust-end-file