! / 0 0 0 0 8 ` // 70 ` scopeguard-9cc769095de547c7.scopeguard.6f4e73726d2536a2-cgu.0.rcgu.o/ lib.rmeta/ 0 0 0 644 26392 ` ELF>˜e@@GNUÀrust Nc#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 Ÿg9lx…ão&Ï òÿ æ�“ ÅÚ(Ÿºôù/�‚�Ü"—é"—€#—Ÿg—:94 9 $*/Ÿg#  ÿ Ü"é"€#(›5;ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwĤĤŤErrorÁ Ñâó:½ÖàM™ ò£ €g€gŠ‚gê ûcƒgbufÁûcØ«q¢1È¡éòœÿ $Å8 Ï8ü£8,$¶8¤¡M *Œ¡M ÆÕ ³MN4ÝM ÌËMŒËM ÆÛ>$ü�M‘ ÕÛá„!„!…! PhantomDataÁo$z�é -ááBÿ˜NüºLÞ —N5—œãLÕ ÏLÛ4ÕLï­ï­ ManuallyDropÁñ­�¶„Ÿ~ Á$Õ¦ï­ï­¬ñ­�¶„Ÿ~ Á$ÛiÛ”Ó¬¡“¥ñ ¿ ©Û  Ä“UŒ“U Æ—,¥U%,âU\âU Þ"ï­ï­¬ñ­�¶„Ÿ~ Á$—YQV dáU Þ" � làUÄÖULÖU „Õ*",ÇW dÇW ê"¹ ) !ŒÂW  åü¯W%”¯W ËÛ 2 %,âW÷W ðWüâS•üƒUôüÊU§ Õ „T—,ôS¹L‡UÕ,ÎU Õ2 Õb  Ö —á ¹ü½ â å —3 ¹OÂ|€�‚Öü‚³NœëÓ¼‰ŠÉTÕü¼Y$̼Y ÕÛò ÖY4ÙY2âYüÞX„æ�“ ÅÚ(Ÿºôù/ÕÛòÄ…YÕ ñXÛ4÷X¬“ˆ±ÚT®g \­gœ'¾g)üŒg2ìŸg‚,•g÷f3œmTÒh \Ñh ê" . âh.ü hB Õ4»hªL­h  s9µyüæj> Tüj \ûjœ'dúj¼ðjLðjÓ$\•k åd”k Þ"å -  !l“k  ĉkL‰k „Û *  #üïj3  ,Õj Õ4Üj Û|±kl±k á % 4Ïk ,Ök lÏk X Ž#ÛÕn1: ìk & 5=íkU  ¡k üÀi­… • ¤ ´ Å 3müÐj�½ ÒiªLÈiÕÛòÕÛ7ÕÒâêì÷.Û† Û  ÛÑ åñ&½ ¸Û§ÈÕñ–�¤�·“žQ œ¬ÓƒÜS”#œ¢ž2Õ‘ÛýÕÛ Õ°²m  ü£m&d¥m ×g £m;ü¥m$1<Ým ñ"Tèm  \çmœ ' dæm Ÿgü£mP,×m ´dÁˆDä×mü£mf4�n »dSD�n�n8üäl« î \�m‚,ëlü òl ¨d¨d DebugStructÁ«dñ�d¬dÇ �d­d has_fieldsÁ�d»1âî¦9èÏý¹%©»%±ñ"Óñ"ƒ�$Bìi÷†²œ¶áˆ#œ¡ì�$Š­$rä$A 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);Á,ò “.<ø È*€ �ì„  ## 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(()) }Á<åÑ.üí! # 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äƒ try_main().unwrap();Á, “.¦�<ªÈ*²�ü¶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ÚŠGüá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¢ŠGü©>; // 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úî6„ �„ˆ 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û) 4‰*�ü�*FC // When the scope exits here, the Vec becomes whole again!ÁLÔ*î6,Þ*“.ä*�|è*·1üø*" 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"]);Á,É,“.Ï,�<Ó,È*Û,�ß,�¤ã, # 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û'‰7ñIûcŽ \„!Ž \…!¬‚ï­s•Ü"¦'°é" í ø ÚÖ'ĸ07D×0IÄå0\´ƒ1‚DŸ1••°°DÀ1Ô‰2üË1=: Controls in which cases the associated code should be runÁD“2  ÿÆü‰2« £f£f  Äš3ü¢2=: Return `true` if the guard’s associated code should runÁüä21. (in the context where this method is called).ÁT�3Bÿ  «fÄî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—ÅÚ(Ÿºôù/3suprm ŒHò´ÇH,ÇH ¼ãH4ãHåüÔI!DÔI€üúIJ�‚�›sL©Jér ‚Jùr …J‰sÙr ÿI®sD»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ÿ ÕÛᬓüâ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·1ü¨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î6,¾S“.<ÈSÈ*TéS—ÕBÿ ÕÛáÂÊ üÞXWüûWLI Create a new `ScopeGuard` owning `v` and with deferred closure `dropfn`.Á/\ÒX,åXÕÛöBÿ�‚Ùr ëXér îX‰sL«Y›s ÕÛ¬F “O /157ü®eg�!‚"�#!"#›sLúeér ½eùr Àeÿ Õ$íe‰s$Ùr ºe®sDŒf—=?CEü›fT�%‚&�'&'%›sLÔfér £fùr ¦f‰sÙr  f®sDæf—()Ý"Þ")=?CE\öf4ûf$$Õ¬Œg,�g? ?— ?ÕBÿ$ •g$ )ÕÛá$–güÂgW�+‚,�-,+-›sLþgér Êgùr Íg‰sÙr Çg®sD�h—.ê".79=?ü h!L£h@ @— @ÕBÿ* ­h* .ÕÛá$²hüæhS�0‚1�2120›sLžiér îhùr ñh‰sÙr ëh®sD°i—3�#379=?”Ài$ÃiA A—½ Bÿ/ Èi/ 3ÕÛá$Íiüñkl�5‚6�7567›sLÂlér ùkùr ükŸgÕT¯l‰s$Ùr ök®sDÔl—8 g8FHLNüäl4çlBCD B— C€g€gŠ‚gê ûcƒg� ûcØ«q¢1È¡Dî Bÿ4 ël4 8ÕÛá$ìlœ3|£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òlx…ão&ÏUò; g;UU<=> <ò =€g€gŠ‚gê ûcƒg� ûcØ«q¢1È¡>î Bÿ:›5: ;UœU||U|F|X|t|.| õl|Lÿl|trait.Strategy.htmlÁ¯¯ ­�¯­� ScopeGuard valueã�ô�¢6%mrsNo…ž^†Kzwd}�m+5°.R5$!Ù­ÊCËg¿ÁÐÅõnè¨~/¿M•ü‚ƒÎ‚ò¬°1�iv™Þ¼ÅÓfdååiÒ8²m®ù:¨“4¼ä›Ê/`I6V,W;HÛ½¨gúí¾ºµº¿°nk¬Äÿâb1é·qaß6¹Wcšâ7I2»"íäùËkFŸOÖ'mš ¾Ÿ]–hÕ«DtV¾º>Vcà$'z¡„ò\Z/Y Qäp•Þ—¤Gi=òtÓÑoB)¯6´�rV¾sNCÂ"–˜æû?¨ÑæƒØO@Óí#¨²ÍFBµy˜«Éå«:¶Õø¢�âõgO¿Å{s»w‚�>Uglf78'p�ãóäDoûC$û”éUë=b³s, 9l´À~ïp½¨Ó9;'mŽwÿø§AÈÁµ8bÎýá£ÑgÍÓ%þ¿êv TÂXâ™®�EOåJÛ{‡)™çgdWRÆÂ.ä(2‘�EÀRþñm=Kvä¼j¤ú/^ÑYwm¡Ø³¥à-6<<2£ bRD~‹›ÿ„ D†ÈÀ-¨Ïøwt¿§ïä�:†Ôœ¯;�£ oÉl »>JXåÌQû7EÏóWGzL žämÏFaÍgYƒÏåÔà%±Í©Lo9V`8U'š­¾º9±mÑ3\T÷öSbÎÎ¥r™ DÔŽÒÇ2Ì2ªFR 1è¼ 222"2)2,22292@2Ü2”3­3ß3æ 5†9ž9·9Ð9\:™;Ã>¸?O@å@ü@_AðASBãB=CÝC�D¸EÓEN1Ñ2µEÒ2 3R9+:"@ª@ºA®B§CÆE+        M1�2v3Å3­4¥8Š9¢9»9_;’>8?é@ABûBõC›EêEâ22 2222%2)2/252<2Ø2�3©3Û3á5W9d9q9‚9š9²9Ë90:=:J:W:”;¾>™?¦?³?#@0@=@J@º@Ç@Ô@á@ø@ZAÄAÑAÞAëANB¸BÅBÒBßB8C±C¾CËCØC‹DµEÐEtFyF~F„FŠF�F–FœF£F2 222"2,22292‰2^3­3ª4¡8Y9f9s9†9ž9·92:?:L:G;z> ?›?¨?%@2@?@¼@É@Ö@å@ü@ÆAÓAàAðAºBÇBÔBãB³CÀCÍCÝC—EÓEvF{F�F‡F�F“F™F F§F 2…3œ3Ó3Ö8a9n9}9”9¬9Å9ÿ9::G:T:u;¦>e?£?°?ç?-@:@G@~@Ä@Ñ@Þ@ò@BAŽAÎAÛAèA6B‚BÂBÏBÜB ClC»CÈCÕClD¢EÂE_FŽ2}3–3Ë3©8[9h9w9Œ9¤9½9Ò94:A:N:m;ž>E?�?ª?º?'@4@A@Q@¾@Ë@Ø@ê@6AaAÈAÕAâA*BUB¼BÉBÖBC?CµCÂCÏC`DœE¼ERF‰3ž3×3;99˜9°9É9):y;ª>�? @¨@ö@FA¸A:B¬B$C¥CpD¤EÄEcFw3Æ3¦8`;“>9?A BüBöCœEëEx3Æ3c;–>;?A BÿBùCëEb3±3K;~>$?AôAçBáCÖE‰’éóým¶2c9p9�9<:I:V:¥?²?/@<@I@Æ@Ó@à@ÐAÝAêAÄBÑBÞB½CÊC×Cl¸é� „  « ÝQ¶ç› ‚  © Ûj·èœ ƒ  ª Ük�3Û3†;·>‹?SAGB1C}DgFU9·2K1‡2”3Ÿ8Ð9¸?O@_ASB=C•EºEJ9³E=9¦Ez}„ˆ�“—›Ÿ£§«ºËÏÖâóú+/6=DXipw~‚‰�—›¢©°·¾ÂÉÐ×Þâéð÷þ +/6<BHNTZ`fM9Ó2¡3-:.:¬@±@»A¯B¨CÇE®4«FÔ2¥3/:"@¶@ÀA´B­CÌE||�´²mµåæ]¨œ¢6%mrsNo}Q9R²Ò||Ü ¢6%mrsNoŒºm§iÞq,›5}©Ø core_intrinsicsÁfmt_helpers_for_deriveÁ¢g¡g¢6%mrsNo¾n&”¬ÃûÉ„’5…ÿ‚]´œ¢6%mrsNoRÀàAãÙU´X¢WªWžW¦W®WX„XÒW)XÂWX¤XòWtX° ODHT E€·Þ{s»w‚�>U!M•ü‚ƒÎ‚òýá£ÑgÍÓ*Û{‡)™ç.'mš ¾Ÿ]NCÂ"–˜C$û”éU$aÍgYƒ>ÈÁµ8bÎ)åiÒ8²m TÂXâ™,¬°1�iv™º>Vcà$ËkFŸOÖñm=Kvä¼1.R5$!Ù­7I2»"íäùÏåÔà%±Í©?õnè¨~/¿®ù:¨“4¼ ÓÑoB)¯d}�m+5°j¤ú/^Ñ2†Ôœ¯;�9ë=b³s,Â%mÑ3\TBå«:¶Õøglf78'p�"'š­¾º9±A6V,W;HÛ à-6<<24ÊCËg¿ÁÐÅ 9l´À~ï&–hÕ«DtV¾®�EOåJ-gdWRÆÂ.ä/(2‘�EÀRþ0£ bRD~‹›5ÿ„ D†ÈÀ6ä›Ê/`I …ž^†Kzw¥r™ DÔŽÒDæû?¨ÑæƒJXåÌQû;Þ¼ÅÓfdåp½¨Ó9;''÷öSbÎÎCYwm¡Ø³¥3Lo9V`8U@ß6¹WcšâY Qäp•ãóäDoû#§ïä�:8¢�âõgO¿Å zL žämÏF=ÿâb1é·qaÞ—¤Gi=òt%þ¿êv +£ oÉl »>:ØO@Óí#¨²µº¿°nk¬Ä¢6%mrsNo'z¡„ò\Z/6´�rV¾s7EÏóWG<mŽwÿø§A(ÍFBµy˜«É½¨gúí¾º -¨Ïøwt¿7ÿÿ*yiÿÿsÿÿÿ.ÿÿL*Aÿÿÿÿÿÿÿÿgÿ6LLk^V|ÿÿTÿÿ_^Xÿÿÿ @ÿÿaÿ|ÿFÿXÿÿbÿÿÿ_%rM`$;iÿÿÿÿrgÿÿRÿÿÿÿÿÿÿ*ÿÿqJ} b#0:Ybÿÿÿ79#ÿÿ d]_ÿÿÿÿÿÿ*yiÿÿsÿÿÿ.ÿÿL*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Û]ö]¥.Å?¯­ô™êu¯´©:ºˆ_x86_64-unknown-linux-gnuÁGðffÒðˆºuÈôëöŒ scopeguardÁ-9cc769095de547c7Á¢6%mrsNo™ÆRäÈÌ…E¨  $$3<<<< < :´;®E±@@GNUÀDscopeguard-9cc769095de547c7.scopeguard.6f4e73726d2536a2-cgu.0.rcgu.oÁrust-end-file.note.gnu.property.rmeta-link.shstrtab.strtab.symtab@ €`T2¸*Ð Ñ:/0 0 0 0 644 632 ` ELF>ø@@rustc version 1.98.1 (48a229cea 2026-09-01)0ñÿ.text.comment.note.GNU-stack.strtab.symtabscopeguard.6f4e73726d2536a2-cgu.0  R@0@-m(p0