rust ¬e#rustc 1.98.1 (48a229cea 2026-09-01)ÁûÊÆÍRLñ.åSÛAúwjL-df1bddb45adbe94bÁ±ò‰<å%Z‰>¸64‡ËV`-2d2ab9fb0fe1def5ÁŠOnUnwindÁDÀ6Óuse_stdÁœ�6 OnSuccessÁLà7Óžœ°7defer_on_successÁ„§?Óžœô>defer_on_unwindÁ|²BÓžœÿAguard_on_successÁ„”[ÓžœáZguard_on_unwindÁ|öbÓžœÃbtestsÁ,¤nÍ$™nû‰StrategyÁ  should_runÁ ¾deferÁ ScopeGuardÁ�‚��dropfnÁstrategyÁ�‚� with_strategyÁ into_innerÁÂ�‚ � ‚ �$�$‚$�$ë$Ã*�*‚*�*Å/�/‚/�/õ4�4‚4�4ñAlwaysÁ:ñ;8;8;8)8.838888888 Ÿg9Yãz˜«ãFþ òÿ æ�“ 8{ÿ m�‚�Ü"—é"—€#—Ÿg—:94 9 $*/Ÿg#  ÿ Ü"é"€#(›5;ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwĤĤŤErrorÁ Ñâó:½ÖàM™ ò£ €g€gŠ‚gê ûcƒgbufÁûcØ«q¢1È¡éòœÿ $Å8Ï8ü£8,$¶8 ¤¡M͇5}…Ñ~ ƒ®Õýñ41} ï­Õ ¡5}ÌËMQN ƒ®ÛK ï­ÛGü�M‘ ÕÛáù„!„!…! PhantomDataÁo$z�é -ááBÿ ‘N˜NüºLÞý¹4o}ÆÕ2ýˆ_~ìÕ?+ÆÛ'ìÛb—œãLÕ ÏLÛ4ÕLï­ï­ ManuallyDropÁñ­�¶„Ÿ~ Á$ÕÍï­ï­Òñ­�¶„Ÿ~ Á$Ûµƒ®ƒ®„® MaybeDanglingÁ†®óå @æè_fòÙùÅÕIƒ®ƒ®„®Õ†®óå @æè_fòÙùÅÛ‡¬“!›Û —N L‡UÊÈ ƒ®—Æ ï­—Ã,ÎUýºÙ%‹ ƒ®ƒ®„®Õ†®óå @æè_fòÙùÅ——ÆÄÕm®º‹ å—‹�ÛŤº‹ï ÕÛJ% ðWüâS• »º‹,âW6 öW÷WDüƒUôüÊU§Æ—Ä“Uì—Xý˜U9}Ï—\âUýì8~í—EÃU}.ÏÕdáU*íÕ&ý‚Çå‹„ÕÄÖUý WE}Ò—dÇWý±D~ î—E×W} ý¿Pø}ËÛü¯W%0 îÛE¦S} ý¬µ”‹ ÓÛýˆS'} Õ „T—,ôSï­ï­Òñ­�¶„Ÿ~ Á$—ÄÕ„½ �å� Û:ÂgÂþ�ÂûÕíI ¹ÁÊ ƒ®Õå ï­ÕñïÁÊ ƒ®Ûå ï­Ûò ÕÛòx„!„!…!„ o$z�é -òòBÿåìâYüÞX„îÕÛòü¼Y$þÆÕ¹üìÕÁ$ÆÛ "ìÛÁæ�“ 8{ÿ mÕÛòÄ…YÕ ñXÛ4÷Xƹ‹ ÄÁ�Á¬5“9 ÛW=—~ÆÄÕ¾g)üŒg2ñÏÕ\­gîíÕë ÕŸg —,•g X]ä~ÆÄÕâh.ü hBÒÕ\ÑhîÕ Õ4»h —L­h X 1ÆÄÕK‹�Û,Õj x4Üj x|±k x á$+ 4Ïk xlÏk ,Ök  x 0  ?x Ž#ÛÕƒ `i Ûk   æk ìk ík%  üÀi­CS dzz ˆ�3nüÐj� ÏÕ\ûjíÕÞ„Õ¼ðjBÏÛd”k?íÛ<„Ûĉk ½ ÒiÚLÈiÕyÛYÕfÛ4F½ ìÛ½!üÕü�ˆ^�Û“¿~� ª´!NÕ ¡kÛÑÕ×ÛÝÕãü£mPü£m& x ×g £mx °²mü¥m$Kdæm\çmûÆÄÕ* Ÿg§x ´d¶x &<Ýmrä×m òmü£mfx »d D�n Žn�n8üäl«‘ ÏÕñŒ íÕ‰ î \�mÄ,ëlü òl ¨d¨d DebugStructÁ«dñ�d¬dÇ �d­d has_fieldsÁ�d»1âî¦9èÏðñ(ïó(÷û&§¸§›œŸîˆ&1¸û&á•'Hã'\ 9û‰Í0ñÜ0ûc„ \ò0„!„ …!Òd�1ï­s,ª1Ü"DerefMutÁD±1é" í Å1¸ Ú,±<üò…ütEB A scope guard will run a given closure when it goes out of scope,Áüº$! even if the code between panics.Áüß$! (as long as panic doesn't abort)Á„�tˆ # ExamplesÁ—�”› ## Hello WorldÁ®�ü²@= This example creates a scope guard with an example function:Áó�<÷ ```Áäÿ extern crate scopeguard;Áœ�d  fn f() {Áü­0- let _guard = scopeguard::guard((), |_| {ÁüÞ*' println!("Hello Scope Exit!");Á\‰ });Á•�ü™! // rest of the code here.Á»�ü¿OL // Here, at the end of `_guard`'s scope, the guard's closure is called.Áü�MJ // It is also called if we exit this scope through unwinding instead.Á,Ý }ÁŒã # fn main() {Álõ # f();Á<ƒ # }Á<‹ò-“�|— ## `defer!`Á§�ü«<9 Use the `defer` macro to run an operation at scope exit,Áüè?< either regular scope exit or during unwinding from a panic.Á¨�<¬ò-ü´0- #[macro_use(defer)] extern crate scopeguard;Áå�Äé use std::cell::Cell;Á‚�|† fn main() {Áü–QN // use a cell to observe drops during and after the scope guard is activeÁüè(% let drop_counter = Cell::new(0);ÁL‘  {Áü› HE // Create a scope guard using `defer!` for the current scopeÁ¤ä  defer! {Áüù 96 drop_counter.set(1 + drop_counter.get());Ál³ }ÁÁ �üÅ :7 // Do regular operations here in the meantime.Á€ �ü„ 96 // Just before scope exit: it hasn't run yet.Áü¾ .+ assert_eq!(drop_counter.get(), 0);Áí �üñ KH // The following scope end is where the defer closure is calledÁL½  }ÁüÇ *' assert_eq!(drop_counter.get(), 1);Á,ò ½1<ø ò-€ �ì„  ## Scope Guard with ValueÁ¢ �ü¦ JG If the scope guard closure needs to access an outer value that is alsoÁüñ PM mutated outside of the scope guard, then you may want to use the scope guardÁüÂNK with a value. The guard works like a smart pointer, so the inner value canÁü‘52 be accessed by reference or by mutable reference.ÁÇ�üË  ### 1. The guard owns a fileÁì�üðOL In this example, the scope guard owns a file and ensures pending writes areÁÌÀ synced at scope exit.ÁÚ�<Þò-äæ‚.ƒ�œ‡ use std::fs::*;Áü› use std::io::{self, Write};Áü»96 # // Mock file so that we don't actually write a fileÁ´õ # struct MockFile;Á¬Œ # impl MockFile {Áü¢B? # fn create(_s: &str) -> io::Result { Ok(MockFile) }ÁüåEB # fn write_all(&self, _b: &[u8]) -> io::Result<()> { Ok(()) }Áü«96 # fn sync_all(&self) -> io::Result<()> { Ok(()) }Á<åû1üí! # use self::MockFile as File;Á��ü“%" fn try_main() -> io::Result<()> {Áü¹-* let f = File::create("newfile.txt")?;Áüç1. let mut file = scopeguard::guard(f, |f| {Áü™63 // ensure we flush file at return or panicÁüÐ! let _ = f.sync_all();Á\ò¶/üþ96 // Access the file through the scope guard itselfÁü¸0- file.write_all(b"test me\n").map(|_| ())Á,é½1ï�|óá4äƒ try_main().unwrap();Á, ½1¦�<ªò-²�ü¶85 ### 2. The guard restores an invariant on scope exitÁï�<óò-äû‚.˜�üœ use std::mem::ManuallyDrop;ÁŒ¼ use std::ptr;ÁÎ�üÒDA // This function, just for this example, takes the first elementÁü—A> // and inserts it into the assumed sorted tail of the vector.Á4Ù //ÁüàKH // For optimization purposes we temporarily violate an invariant of theÁü¬-* // Vec, that it owns all of its elements.Á4Ú´JüáJG // The safe approach is to use swap, which means two writes to memory,Áü¬RO // the optimization is to use a “holeâ€� which uses only one write of memoryÁüÿ" // for each position it moves.Á4¢´Jü©>; // We *must* use a scope guard to run this code safely. WeÁüèMJ // are running arbitrary user code (comparison operators) that may panic.Áü¶HE // The scope guard ensures we restore the invariant after successfulÁüÿ+( // exit or during unwinding from panic.Áü«.+ fn insertion_sort_first(v: &mut Vec)ÁÜÚ where T: PartialOrdÁ,ö {Áüü  struct Hole<'a, T: 'a> {Áô� v: &'a mut Vec,Á̼ index: usize,ÁüÖ# value: ManuallyDrop,ÁLú˜:„ �„ˆ unsafe {Áü™ HE // Create a moved-from location in the vector, a “holeâ€�.Áüâ )& let value = ptr::read(&v[0]);ÁüŒ!TQ let mut hole = Hole { v: v, index: 0, value: ManuallyDrop::new(value) };Áá!�üå!.+ // Use a scope guard with a value.Áü”"GD // At scope exit, plug the hole so that the vector is fullyÁüÜ"! // initialized again.Áüþ"UR // The scope guard owns the hole, but we can access it through the guard.ÁüÔ#A> let mut hole_guard = scopeguard::guard(hole, |hole| {Áü–$SP // plug the hole in the vector with the value that was // taken outÁüê$'$ let index = hole.index;Áü’%NK ptr::copy_nonoverlapping(&*hole.value, &mut hole.v[index], 1);Á|á% });Áñ%�üõ%C@ // run algorithm that moves the hole in the vector hereÁü¹&<9 // move the hole until it's in a sorted positionÁüö&,) for i in 1..hole_guard.v.len() {Áü£'96 if *hole_guard.value >= hole_guard.v[i] {ÁüÝ'A> // move the element back and the hole forwardÁüŸ(1. let index = hole_guard.index;ÁüÑ(85 hole_guard.v.swap(index, index + 1);ÁüŠ)*' hole_guard.index += 1;Áĵ) } else {ÁÔÎ) break;ÁŒé) }Álû)Ê7‰*�ü�*FC // When the scope exits here, the Vec becomes whole again!ÁLÔ*˜:,Þ*½1ä*�|è*á4üø*" let string = String::from;Áü›+PM let mut data = vec![string("c"), string("a"), string("b"), string("d")];Áüì+(% insertion_sort_first(&mut data);Áü•,30 assert_eq!(data, vec!["a", "b", "c", "d"]);Á,É,½1Ï,�<Ó,ò-Û,�ß,�¤ã, # Crate FeaturesÁø,�|ü, - `use_std`ÁüŒ-NK + Enabled by default. Enables the `OnUnwind` and `OnSuccess` strategies.ÁüÛ-  + Disable to use `no_std`.Áü-�”€. # Rust VersionÁ“.�ü—.:7 This version of the crate requires Rust 1.20 or later.ÁÒ.�üÖ.MJ The scopeguard 1.x release series will use a carefully considered versionÁü¤/KH upgrade policy, where in a later 1.x version, we will raise the minimumÁÔð/ required Rust version.Áü:8https://docs.rs/scopeguard/1/ÁlA 9ûщáñóûc„ „!„ …!Ò,ï­s?Ü"Ð*Zé" í m¸ Ú€Ñĸ0áD×0óÄå0´ƒ1,DŸ1??ZZDÀ1m”‰2üË1=: Controls in which cases the associated code should be runÁD“2  ÿÆü‰2« ÍiÍi  Äš3ü¢2=: Return `true` if the guard’s associated code should runÁüä21. (in the context where this method is called).ÁT�3Bÿ  ÕiÄî7ò ¼£8T¦8Bÿ  ”¤<üó:0- Macro to create a `ScopeGuard` (always run).Á¤;�ü¨;?< The macro takes statements, which are the body of a closureÁüè;+( that will run when the scope is exited.Á)|”<€ ·< Ž= ½< Ç<, ¾< ¿< Å<, À<8ª Á<& Â<8ýÃ< Æ<*É< Ì< ‹= 8Ö<8_guardÁ4Ú< á<, ã<8,ä<'é<8Â,ë< ð< „= ñ< ò<$ ó< õ< ö< ÷< ø< ú< ƒ=, ü< ý< €=, þ<8ª ÿ< �=% …=% Œ=üðG'ü¦CA> `ScopeGuard` is a scope guard that may own a protected value.ÁèC�üìC=: If you place a guard in a local variable, the closure canÁüªDNK run regardless how you leave the scope — through regular return or panicÁüùDJG (except if panic or other code aborts; so as long as destructors run).ÁÄÄE It is run only once.ÁÝE�üáEIF The `S` parameter for [`Strategy`](trait.Strategy.html) determines ifÁô«F the closure actually runs.ÁÊF�üÎFMJ The guard's closure will be called with the held value in the destructor.ÁœG�ü GOL The `ScopeGuard` implements `Deref` so that you can access the inner value.ÁTûG�‚�þÆÕ †HþÆÛ ‰HþÆáTŒH‹#Û½!L¥H�#Û½!½  áD·H—8{ÿ m3suprm ŒHò´ÇH,ÇHƼãH4ãH‹üÔI!DÔIö üúIJ�‚�ÅvL©J“v ‚J£v …J³vƒv ÿIØvD»J—248:üºL<üËJLI Create a `ScopeGuard` that owns `v` (accessible through deref) and callsÁüœK&# `dropfn` when its destructor runs.ÁÇK�üÏKHE The `Strategy` decides whether the scope guard's closure should run.Á/\ªLlÁLÕÛ—Bÿ ÕÛá¬7“@üâS#üžNMJ “Defuseâ€� the guard and extract the value without calling the closure.ÁðN�<øNò-ä„O‚.¥O�ü­O(% use scopeguard::{guard, ScopeGuard};ÁÚO�üâO%" fn conditional() -> bool { true }ÁŒP�|”Pá4ü¨P=: let mut guard = guard(Vec::new(), |mut v| v.clear());Á´êP guard.push(1);Á…Q�Ô�Q if conditional() {Áü¬Q30 // a condition maybe makes us decide toÁüäQB? // “defuseâ€� the guard and get back its inner partsÁü«R63 let value = ScopeGuard::into_inner(guard);Á„æR } else {ÁüûR0- // guard still exists in this branchÁL°S˜:,¾S½1<ÈSò-TéS—ÕBÿ ÕÛá üÞXWüûWLI Create a new `ScopeGuard` owning `v` and with deferred closure `dropfn`.Á/\ÒX,åXÕÛ§Bÿ�‚ƒv ëX“v îX³vL«YÅv ÕÛ¬w “€ /157ü®eg�!‚"�#!"#ÅvLúe“v ½e£v Àeÿ Õ$íe³v$ƒv ºeØvDŒf—=?CEü›fT�%‚&�'&'%ÅvLÔf“v £f£v ¦f³vƒv  fØvDæf—()Ý"Þ")=?CE\öf4ûf$$Õ¬Œg,�g? ?— ?ÕBÿ$ •g$ )ÕÛá$–güÂgW�+‚,�-,+-ÅvLþg“v Êg£v Íg³vƒv ÇgØvD�h—.ê".79=?ü h!L£h@ @— @ÕBÿ* ­h* .ÕÛá$²hüæhS�0‚1�2120ÅvLži“v îh£v ñh³vƒv ëhØvD°i—3�#379=?”Ài$ÃiA A—½ Bÿ/ Èi/ 3ÕÛá$Íiüñkl�5‚6�7567ÅvLÂl“v ùk£v ükŸgÕT¯l³v$ƒv ökØvDÔl—8 g8FHLNüäl4çlBCD B— C€g€gŠ‚gê ûcƒg� ûcØ«q¢1È¡Dî Bÿ4 ël4 8ÕÛá$ìlœë|£5ì¶3 Always run on scope exit.ÁÔ3�üØ3PM “Alwaysâ€� run: on regular exit from a scope or on unwinding from a panic.Áü©4KH Can not run on abort, process exit, and other catastrophic events whereÁäõ4 destructors don’t run.Á4¬5òYãz˜«ãFþUò; g;UU<=> <ò =€g€gŠ‚gê ûcƒg� ûcØ«q¢1È¡>î Bÿ:›5: ;UœUxxUxFxXxtx.x õlxLÿlxtrait.Strategy.htmlÁ¯¯ ×�¯×� ScopeGuard value�‘ž‘ gD^]:ù´FìA}!n¦Y�ßu*;T™©X\•°—¶×ú3”ù£ôcàëT`Ã9²?ƒõõ/33Tt)J‰ç¬Ð,àVÇj ”Ày^6÷Ú@­Úóô�êžørzIì5Á¡ßìR8�ÅSÂ]:‚žáãÓévóH+¨ÃÅø±Ÿ ÔЭöæ[�øŠšüûGõåY’�,>„Oÿ1#÷ÇF ìpAzK]„œ·õÿ˯‘žÂÞ/5èïÈ.š ˆ,^¶SªÞæÅ|±%щ¶m�ókdÎ`}Œ"ü‡H3d_hÝ8½:Q³¡¡’š¡ºÔBÂ; ¯õ‘põŽ'±©ÑýÊ`àTAåúB™`2¶ŒyÍ/¨ÉÀ¡ §¾.f¢ ͸‹Ç®SñçK$÷‹YëJ‡æÛÄ(O¢.ÍÊmõùj‹=ÆãôÒt{ ÃSïê…^Ø[.t· ¼€«á3øsñ+Å©ˆ£ï¡o·XÁ¿ì⩨7‘Á ÆçnªÞ ËqD†ÌÝúÛÿåvjÆ3÷ËK�ü£<îÀŠB€Í?íg;ÐÖ¿ÄFV•VZ z…ûX&?b €DZÉ3ÚMÛ–­®OÕn¾UX¸)¼EË�Ë—«Šr¦î 17æ’’•«WŠWãàqbLl¾Žäysh|‰Ã¦1�©àÜ*�:Xº ùOœ!Æcìà!}B°NQ#— CÙ¥h´%Å·‚gòÿÚµ%1-ÜÁˆq4v4THü 2’¼³3¾3Å3Ì3Ó3Ö3Ü3ã3ê3†4>5W5‰5� 70;H;a;z;=h@CAPA]AÍAÚAçAôAdBqB~B‹B¢BCnC{CˆC•CøCbDoD|D‰DâD[EhEuE‚E5F_GzGH#H(H.H4H:H@HFHMH®3·3¾3Å3Ì3Ö3Ü3ã3345W5T6K:;;;0;H;a;Ü;é;ö;ñ<$@Ê@EARAÏAÜAéAfBsB€B�B¦BpC}CŠCšCdDqD~D�D]EjEwE‡EAG}G H%H+H1H7H=HCHJHQHJ4/5F5}5€: ;;';>;V;o;©;ä;ñ;þ;=P@AMAZA‘A×AäAñA(BnB{BˆBœBìB8CxC…C’CàC,DlDyD†DÊDEeErEEFLGlG H84'5@5u5S:;;!;6;N;g;|;Þ;ë;ø;=H@ï@GATAdAÑAÞAëAûAhBuB‚B”BàB CrCCŒCÔCÿCfDsD€D¾DéD_ElEyE FFGfGüG35H5�5å:);B;Z;s;Ó;#=T@+AÊARB BðBbCäCVDÎDOEFNGnG H!5p5P: ==@ã@¿B³C¦D EFG•G"5p5 =@@å@ÂB¶C©D£E•G 5[5õ<(@Î@ªBžC‘D‹E€G‰’éóým`4 ;;+;æ;ó;<OA\AÙAæAóApB}BŠBzC‡C”CnD{DˆDgEtE�El·�° × laQµ® Õ j_¹j¶€¯ Ö k`ºk:5…50=a@5AýBñCÛD'FHÿ:a4õ214>5I:z;bAùA CýCçD?GdGô:]Gç:PGz}„ˆ�“—›Ÿ£§«ºËÏÖâóú+/6=DXipw~‚‰�—›¢©°·¾ÂÉÐ×Þâéð÷þ +/6<BHNTZ`f÷:}4K5×;Ø;VB[BeCYDREqGX6¾¾ÁÃÆÆÆÈ»UH~4O5Ù;ÌA`BjC^DWEvGxx�´²mµåæ]¨œ gD^]:ù}Q9R²ÒxxÜ  gD^]:ùŒºm§iÞq,›5}©Ø core_intrinsicsÁfmt_helpers_for_deriveÁ¢g¡g gD^]:ùçŸ"R)Ô[�É„’5…ÿ‚]´œ gD^]:ùRÀàAãÙU[ZZüYZ Z`ZâZ0Z‡Z ZwZ[PZÒZ° ODHT E€·Þœ·õÿ˯‘Ã9²?ƒõõ/ñ+Å©ˆ£ï,&?b €DZ6çnªÞ ËqD/dÎ`}Œ"ü)¼EË�Ë—9⩨7‘Á Æ.põŽ'±©ÑT™©X\7æ’’•«;øŠšüûGõø±Ÿ åúB™`2¶!%1-ÜÁˆDÂ]:‚žáãÓ ¡’š¡ºÔ— CÙ¥h´%B«Šr¦î 1:33Tt)J‰çévóH+¨ÃÅåY’�,>„.š ˆ,^¶S¡ §¾.f¢ #BÂ; ¯õ‘ŒyÍ/¨ÉÀ"|‰Ã¦1�©à>à!}B°NQ#AåvjÆ3÷ËK1žÂÞ/5èïÈ¡ßìR8�ÅS hÝ8½:Q³¡Ü*�:Xº ?�ü£<îÀŠ2OÕn¾UX¸8´FìA}!nJ‡æÛÄ(O¢&;ÐÖ¿ÄFV•4ùOœ!Æcì@͸‹Ç®S$žørzIì5Á B€Í?íg3=ÆãôÒt{ (ÃSïê)ýÊ`àTA ¬Ð,àVÇj •°—¶×ú3”¡o·XÁ¿ì-…^Ø[.t·*É3ÚMÛ–­®7 gD^]:ù”Ày^6÷Ú ù£ôcàëT` ¼€«á3øs+WŠWãàqb<Ll¾Žäysh=‰¶m�ókÅ·‚gòÿÚµC@­Úóô�ê ¦Y�ßu*;ÔЭöæ[�Oÿ1#÷ÇF ñçK$÷‹Yë%.ÍÊmõùj‹'†ÌÝúÛÿ0VZ z…ûX5ìpAzK]„ªÞæÅ|±%чH3d_Hÿÿÿÿÿÿw-"ÿ~ÿÿÿ ch.Uzÿÿ[ÿDÿÿiÿÿÿÿÿÿÿsÿbB)H`p%ÿdÿÿ)ÿPEÿ\ÿÿ7ÿÿQJv)ÿ`ÿÿÿ3ÿÿÿÿPu ÿJvÿÿ[Wÿ|m09ÿ14ÿÿÿÿÿÿÿÿ5ÿÿÿÿZuÿ @uE,Bhÿ/Hÿÿÿÿÿÿw-"ÿ~ÿÿÿV/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scopeguard-1.2.0/src/lib.rsÁK/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scopeguard-1.2.0ÁV/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scopeguard-1.2.0/src/lib.rsÁ 0-žYŒ_ÕÑöä"Ùe82ó…ó…Ó:9F%%A 1+ "PN=@1R) I:;:/L +KQO6!P :CF:"&.27" :19 EBL.KS#?NI,/!$ I*U/H"VBT(OD=-:B29+G #Q)4O!;NL,!>B6QL)&3& !"1@,9C@,& DB@,&CB>OKJNP(T'"Q+MC)/# R !-*B8G;5 *9:22LO3 M @)M& N)M&MOOP 3!E' L)A#I2 ,/(+=6^ 1;/* "& "!$ " -( $ "3- $ "3,( $ " , $ 1(L*R*,*, *(L+U*57 *-,*-, (693* Ð×Ö Ý À2Ü3å3ˆ5ÕD¢N«NóQüQÛ]ö]èxøf¸ˆÆbˆ™ñµ&æax86_64-unknown-linux-gnuÁéÛáYûéÁüü¢‰íOä scopeguardÁ-fc5e75d9193ea349Á gD^]:ù÷ÊRäÈöˆE¨  $$3<<<< < :´;®E±