Files
guba-indicator/rust/target/debug/deps/libscopeguard-d9a53cd0a4d41fe6.rmeta

48 lines
21 KiB
Plaintext
Raw Normal View History

rust
<EFBFBD>R#rustc 1.93.1 (01f6ddf75 2026-02-11)<29><02><05><11><><EFBFBD>GȬx<C8AC>92X<32>l-5bed970bceb2abc5<63><02>L<><4C><EFBFBD><EFBFBD><EFBFBD>l<EFBFBD>E,<07>R<EFBFBD><52>-3d16dd14375d91ab<61><01>OnUnwind<6E>D<EFBFBD>6<02><<3C>6use_std<74>L<EFBFBD>6<00><>6 OnSuccess<73>L<EFBFBD>7<02><<3C>7<01>L<>7<00><>7defer_on_success<73><73><EFBFBD>?<02><<3C>><01>L<>><00><>>defer_on_unwind<6E>|<7C>B<02><<3C>A<01>L<>B<00><>Aguard_on_success<73><73><EFBFBD>[<02><<3C>Z<01>L<>Z<00><>Zguard_on_unwind<6E>|<7C>b<02><<3C>b<01>L<>b<00><>btests<74>,<2C>n<02>$<24>n<02><02>Strategy<67> 
should_run<EFBFBD> <01>defer<65>
ScopeGuard<EFBFBD><02>F<>S<><02>dropfn<66>strategy<67><02><01><01> with_strategy<67>
into_inner<EFBFBD>guard<72><02><01> <02> <01> <01>$<02>$<01>$<01>$<02>$<02>*<02>*<01>*<01>*<02>/<02>/<01>/<01>/<02>4<02>4<01>4<01>4<02>Always<79>:<02>) . 3 8 8 8 ; ; ;  <01>`9<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>c <01><01><01><02><01><01> *<2A><>P<04><><02><01><01><01><01><01><01><01> <01><01>`<01>:94 9 $*/<01>`# 
<01><01><01><01>  9<02><02><1C>0<02><1C>0<01>] PhantomData<74>\<5C>0<01><01> <01> ManuallyDrop<6F>d<EFBFBD>1ʝ<02>,<2C>1<01>DerefMut<75>D<EFBFBD>1<01> <02> <1C>1<01>
<01>,<2C><<04><00><><02>= @ p8<02>lA O7https://docs.rs/scopeguard/1/<2F><00>Q<01>:8<00>tEB A scope guard will run a given closure when it goes out of scope,<2C><00><>$! even if the code between panics.<2E><00><>$! (as long as panic doesn't abort)<29><1C><02>t<> # Examples<65><1C><02><00><> ## Hello World<6C><1C><02><00><>@= This example creates a scope guard with an example function:<3A><1C><02><<3C> ```<60><00><> extern crate scopeguard;<3B><1C><02>d<> fn f() {<7B><00><>0- let _guard = scopeguard::guard((), |_| {<7B><00><>*' println!("Hello Scope Exit!");<3B>\<5C> });<3B><1C><02><00><>! // rest of the code here.<2E><1C><02><00><>OL // Here, at the end of `_guard`'s scope, the guard's closure is called.<2E><00><>MJ // It is also called if we exit this scope through unwinding instead.<2E>,<2C> }<7D><00><> # fn main() {<7B>l<>
# f();<3B><<3C> # }<7D><<3C><01> <1C><02>|<7C> ## `defer!`<60><1C><02><00><><9 Use the `defer` macro to run an operation at scope exit,<2C><00><>?< either regular scope exit or during unwinding from a panic.<2E><1C><02><<3C><01> <00><>0- #[macro_use(defer)] extern crate scopeguard;<3B><1C><02><00><> use std::cell::Cell;<3B><1C><02>|<7C> fn main() {<7B><00><>QN // use a cell to observe drops during and after the scope guard is active<76><00><>(% let drop_counter = Cell::new(0);<3B>L<>  {<7B><00><> HE // Create a scope guard using `defer!` for the current scope<70><00><>  defer! {<7B><00><> 96 drop_counter.set(1 + drop_counter.get());<3B>l<>
}<7D><1C>
<02><00><>
:7 // Do regular operations here in the meantime.<2E><1C> <02><00><> 96 // Just before scope exit: it hasn't run yet.<2E><00><> .+ assert_eq!(drop_counter.get(), 0);<3B><1C> <02><00><> KH // The following scope end is where the defer closure is called<65>L<>  }<7D><00><> *' assert_eq!(drop_counter.get(), 1);<3B>,<2C> <01><<3C> <01> <1C> <02><00><>  ## Scope Guard with Value<75><1C> <02><00><> JG If the scope guard closure needs to access an outer value that is also<73><00><> PM mutated outside of the scope guard, then you may want to use the scope guard<72><00><>NK with a value. The guard works like a smart pointer, so the inner value can<61><00><>52 be accessed by reference or by mutable reference.<2E><1C><02><00><>  ### 1. The guard owns a file<6C><1C><02><00><>OL In this example, the scope guard owns a file and ensures pending writes are<72><00><> synced at scope exit.<2E><1C><02><<3C><01> <00><><01><1C><02><00><> use std::fs::*;<3B><00><> use std::io::{self, Write};<3B><00><>96 # // Mock file so that we don't actually write a file<6C><00><> # struct MockFile;<3B><00><> # impl MockFile {<7B><00><>B? # fn create(_s: &str) -> io::Result<Self> { Ok(MockFile) }<7D><00><>EB # fn write_all(&self, _b: &[u8]) -> io::Result<()> { Ok(()) }<7D><00><>96 # fn sync_all(&self) -> io::Result<()> { Ok(()) }<7D><<3C><01><00><>! # use self::MockFile as File;<3B><1C><02><00><>%" fn try_main() -> io::Result<()> {<7B><00><>-* let f = File::create("newfile.txt")?;<3B><00><>1. let mut file = scopeguard::guard(f, |f| {<7B><00><>63 // ensure we flush file at return or panic<69><00><>! let _ = f.sync_all();<3B>\<5C><01><00><>96 // Access the file through the scope guard itself<6C><00><>0- file.write_all(b"test me\n").map(|_| ())<29>,<2C><01><1C><02>|<7C><01><00><> try_main().unwrap();<3B>,<2C><01><1C><02><<3C><01> <1C><02><00><>85 ### 2. The guard restores an invariant on scope exit<69><1C><02><<3C><01> <00><><01><1C><02><00><> use std::mem::ManuallyDrop;<3B><00><> use std::ptr;<3B><1C><02><00><>DA // This function, just for this example, takes the first element<6E><00><>A> // and inserts it into the assumed sorted tail of the vector.<2E>4<> //<2F><00><>KH // For optimization purposes we temporarily violate an invariant of the<68><00><>-* // Vec, that it owns all of its elements.<2E>4<><01>)<00><>JG // The safe approach is to use swap, which means two writes to memory,<2C><00><>RO // the optimization is to use a “hole” which uses only one write of memory<72><00><>" // for each position it moves.<2E>4<><01>)<00><>>; // We *must* use a scope guard to run this code safely. We<57><00><>MJ // are running arbitrary user code (comparison operators) that may panic.<2E><00><>HE // The scope guard ensures we restore the invariant after successful<75><00><>+( // exit or during unwinding from panic.<2E><00><>.+ fn insertion_sort_first<T>(v: &mut Vec<T>)<29><00><> where T: PartialOrd<72>,<2C> {<7B><00><>  struct Hole<'a, T: 'a> {<7B><00><> v: &'a mut Vec<T>,<2C>̼ index: usize,<2C><00><># value: ManuallyDrop<T>,<2C>L<><01><1C> <02><00><> unsafe {<7B><00><> HE // Create a moved-from location in the vector, a “hole”.<2E><00><> )& let value = ptr::read(&v[0]);<3B><00><>!TQ let mut hole = Hole { v: v, index: 0, value: ManuallyDrop::new(value) };<3B><1C>!<02><00><>!.+ // Use a scope guard with a value.<2E><00><>"GD // At scope exit, plug the hole so that the vector is fully<6C><00><>"! // initialized again.<2E><00><>"UR // The scope guard owns the hole, but we can access it through the guard.<2E><00><>#A> let mut hole_guard = scopeguard::guard(hole, |hole| {<7B><00><>$SP // plug the hole in the vector with the value that was // taken out<75><00><>$'$ let index = hole.index;<3B><00><>%NK ptr::copy_nonoverlapping(&*hole.value, &mut hole.v[index],
<01> <02> 0<01>
<01>Cĸ0<13>D<>0<13><04><>0<13><04><>1<13>ܟ1D<>10<05><>2<00><>1=: Controls in which cases the associated code should be run<75>D<>2  <01><><00><>2<EFBFBD> <00>G<00>G  Ě3<00><>2=: Return `true` if the guards associated code should run<75><00><>21. (in the context where this method is called).<2E>T<EFBFBD>3  <01>G<EFBFBD><47>7<00> <00><>8T<>8  <00><><<00><>:0- Macro to create a `ScopeGuard` (always run).<2E><1C>;<02><00><>;?< The macro takes statements, which are the body of a closure<72><00><>;+( that will run when the scope is exited.<2E>&|<7C><C <0C>< <0C>= <0C>< <0C><, <0C>< <0C>< <0C><, <0C><8t<> <0C><& <0C><8<02><14>< <0C><*<14>< <0C>< <0C>= 8<1C><8_guard<72>4<>< <0C><, <0C><8,<2C><'<14><8<01>,<2C>< <0C>< <0C>= <0C>< <0C><$ <0C>< <0C>< <0C>< <0C>< <0C>< <0C>< <0C>=, <0C>< <0C>< <0C>=, <0C><8<01>K <0C>< <0C>=% <0C>=% <0C>=<00><>G'<00><>CA> `ScopeGuard` is a scope guard that may own a protected value.<2E><1C>C<02><00><>C=: If you place a guard in a local variable, the closure can<61><00><>DNK run regardless how you leave the scope — through regular return or panic<69><00><>DJG (except if panic or other code aborts; so as long as destructors run).<2E><00><>E It is run only once.<2E><1C>E<02><00><>EIF The `S` parameter for [`Strategy`](trait.Strategy.html) determines if<69><00><>F the closure actually runs.<2E><1C>F<02><00><>FMJ The guard's closure will be called with the held value in the destructor.<2E><1C>G<02><00><>GOL The `ScopeGuard` implements `Deref` so that you can access the inner value.<2E>T<>G<02><01><01><01><><01> <0C>H<01><><01> <0C>H<01><><01> T<>H<01> <01> <01>L<>H<01> <01>T<01>  <01> D<>H<00> *<2A><>P<04><>3suprm <0C>H<00><00><>H,<2C>Hʝʝ<01> ̝<02><01><00><04>{<7B>kM<6B><4D>=<01><08><>H4<>Hʝʝ<01> ̝<02><01><00><04>{<7B>kM<6B><4D>=<01> <09><>I!D<>I<01><01><01><01> <00>'<27>"<22><><EFBFBD><02> <09> <02><>IJ<02><01><01><00>TL<54>J<00>T <0C>J<00>T <0C>J<00>T<00>T <0C>I<00>TD<54>J<00>248:<00><>L<<00><>JLI Create a `ScopeGuard` that owns `v` (accessible through deref) and calls<6C><00><>K&# `dropfn` when its destructor runs.<2E><1C>K<02><00><>KHE The `Strategy` decides whether the scope guard's closure should run.<2E>,\<5C>Ll<>L<03><08> <09> <01><01> <01> v<> <0C>L<01>4<>L<00><>S#<00><>NMJ “Defuse” the guard and extract the value without calling the closure.<2E><1C>N<02><<3C>N<01> <00><>O<01><1C>O<02><00><>O(% use scopeguard::{guard, ScopeGuard};<3B><1C>O<02><00><>O%" fn conditional() -> bool { true }<7D><1C>P<02>|<7C>P<01><00><>P=: let mut guard = guard(Vec::new(), |mut v| v.clear());<3B><00><>P guard.push(1);<3B><1C>Q<02>ԍQ if conditional() {<7B><00><>Q30 // a condition maybe makes us decide to<74><00><>QB? // “defuse” the guard and get back its inner parts<74><00><>R63 let value = ScopeGuard::into_inner(guard);<3B><00><>R } else {<7B><00><>R0- // guard still exists in this branch<63>L<>S<01>,<2C>S<01><<3C>S<01> T<>S<02><08> <01><01> <01> <01>,<2C>S<00><>XW<00><>WLI Create a new `ScopeGuard` owning `v` and with deferred closure `dropfn`.<2E>,\<5C>X,<2C>X<03><08> <01><02><01><01> *<2A><>P<04><><01><01> <01><02><01><00>T <0C>X<00>T <0C>X<00>TL<54>Y<00>T <01><01> <01>Y <0C>X<01>4<>X1379<00><>eg<02>!<01>"<01>#!"#<00>TL<54>e<00>T <0C>e<00>T <0C>e<01><01>$<24>e<00>T$<00>T <0C>e<00>TD<54>f<00>=?CE<00><>fT<02>%<01>&<01>'&'%<00>TL<54>f<00>T <0C>f<00>T <0C>f<00>T<00>T <0C>f<00>TD<54>f<00>()<01><01>)=?CE\<5C>f4<>f$$<00><08><>g,<2C>g< <<3C> <<3C>$ <0C>g$ )<01><01> <01> 
<EFBFBD><EFBFBD>W<EFBFBD>Y<EFBFBD>/80wz<77><7A>qB{<7B><14><>V"<06>c<EFBFBD>/Dz20t<30>;оYy<79>ψd3^<15>:G<00><><EFBFBD>c<EFBFBD>[<5B><16>U@E\<5C><>b<EFBFBD><62>&$<24>̎<EFBFBD>Ȗ>S<01><>΍Is"<22>d[q@<0F><04><><EFBFBD><EFBFBD>_+]x<>R1<11>z3D<33><44><EFBFBD><15><><1E><><EFBFBD>3<EFBFBD><33>B<><42>&<26>qM<71><4D><EFBFBD><EFBFBD>e<14>$<24><><EFBFBD>h<><68><EFBFBD><EFBFBD><<3C><><EFBFBD>w <0C>I<EFBFBD>W<EFBFBD>u<EFBFBD><75>~<7E><>
<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD>*-<2D>|<7C>v<EFBFBD><76>Q<EFBFBD><51>C<EFBFBD><43><EFBFBD>z<EFBFBD><17>)+<2B><>[L<><4C><EFBFBD>r<EFBFBD>OX<4F><58>L<EFBFBD>s'Q<>^MR<4D>w. 28rsS<73>b<EFBFBD><62><EFBFBD>O<14><>Yx<><78><14>P꽪D֤<44><D6A4><EFBFBD>wg6G<15><>osN G~<7E>~<7E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pOJ`<60>q<EFBFBD><71>gjg<6A>v|<7C><><EFBFBD>?Mc<4D>w<EFBFBD><77>*=<3D>$<24><><EFBFBD>Ġ<EFBFBD>&<26>)+ C<><43>G<EFBFBD>\<5C>C<EFBFBD><43>M(<28>B!<21><><EFBFBD><EFBFBD>AĻ_P毂<50><E6AF82>ME?<3F><><EFBFBD>f<EFBFBD><66>r<<3C>Dձ<>ϙ<EFBFBD><CF99>י<EFBFBD><D799><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD>%<25><>i<EFBFBD>n_ <04>,~<7E>U<EFBFBD><55><EFBFBD><EFBFBD>g<EFBFBD><67><00>H<06><>fC<66>0?<3F><>9<><39><1A><><EFBFBD><18>#\sᘻ7<E198BB><37><EFBFBD>s<EFBFBD>[<5B>e<1D><><EFBFBD><EFBFBD><1A>| x<>@
K<>f<EFBFBD><17>89.<2E>%Qpon<18><>B<EFBFBD>(<28><19>|!<21><><EFBFBD>=N'2<18>pD<70>o|<7C>t<EFBFBD><74>ip^<5E><>P<EFBFBD><50><00>#<00>#}8
"U<>#<23>#R$k$<24>$<24> &3*{*<2A>*
+<00>+<2B>,<2C>/1<00>1J2a2<>2T3<>3F4<>4?5i6<>7<>7"<00>#<00>7<00>#^$<00>)e+<00>1234 5<00>7)    
   "P#3$<00>$f%R)7**<2A>*<00>,<2C>/W0N2w2j3\4U5p7<00>7O<05>"<22>"<22>"<22>"<22>"<22>"<22>"<22>"<22>"<22>"#<23>#N$g$<24>$<24>&***/*w*<2A>*+j+w+<2B>+<2B>+<2B>,<2C>/<2F>0 11<>1<EFBFBD>1<EFBFBD>1<EFBFBD>12,292F2]2<>2(353B3O3<4F>34(454B4<42>45 5-5:5e6<65>7<EFBFBD>7H8N8T8Z8`8g8n8s8x8<00>"<00>"<22>"<22>"<22>"<00>"<22>"<22>"L#$k$c%N)** *3*{*<2A>*l+y+<2B>+},<2C>/A01 1<00>1<EFBFBD>1<EFBFBD>1!2.2;2J2a2*373D3T34*474F45"5/5?5l7<00>7K8Q8W8]8d8k8p8u8z8c#C$Z$<24>$<00>)****A*<2A>*<2A>*9+t+<2B>+<2B>+<2B>,<2C>/<2F>011L1<4C>1<EFBFBD>1<EFBFBD>1<EFBFBD>1)262C2W2<57>2<EFBFBD>223?3L3<4C>3<EFBFBD>3%424?4<>4<EFBFBD>45*575E6w7<77>738Q#;$T$<24>$V)**$*9*<2A>*<2A>* +n+{+<2B>+<2B>,<2C>/<2F>0111<>1<EFBFBD>1<EFBFBD>1<EFBFBD>1#202=2O2<4F>2<EFBFBD>2,393F3<46>3<EFBFBD>34,494v4<76>45$51596q7<71>7&8G$\$<24>$<00>),*E*<2A>*<2A>*c+<00>,<2C>/<2F>0<00>1 2[2<>23<00>34<00>45I6y7<79>7784$<00>$S)<00>,<2C>/X0x2k3]4V5q7<00>75$<00>$<00>,<2C>/Z0{2n3`4Y5<00>7!$o$<00>,<2C>/E0e2X3J4C5<00>7<00><00>",<00>**.*v+<2B>+<2B>+
11<00>1<EFBFBD>1<EFBFBD>1+282E243A3N3'444A45,595N$<00>$<00>,<2C>/<2F>0<00>2<00>3<00>4V6;8*y#"J#R$L)
+1<00>1<00>2<00>3<00>4j7<6A>7<00>)<00>7<00>){7<><01><01><01><01><01><01><01><01><01><01><01><01><01>%,4<CP_cjqx<02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02> ")07;BIPWdhosw{<03><03><03><03><00>)<00>#_$g+h+2234
5<00>7g%~8<00>#c$i+<00>12$345<00>7}}}}<02> ]Ԫ` <0C>]<15><>m<>i<><02><17>}<7D><>core_intrinsics<63>fmt_helpers_for_derive<76><01>`<01>`]Ԫ` <0C>]J<>G<EFBFBD>}<19><02><00><>5<00><><EFBFBD>[<01><01>]Ԫ` <0C>]<15><><EFBFBD><02>?<18><02>H<EFBFBD>G<EFBFBD>G<EFBFBD>G<EFBFBD>G<EFBFBD>GZH<00>G<EFBFBD>G<EFBFBD>GzHJH<4A> ODHT E<00><02><>(<28>B!<21><><EFBFBD><EFBFBD>.Ȗ>S<01><><EFBFBD>
<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD>*-<00><><EFBFBD>g<EFBFBD><67><00>6<00><>r<EFBFBD>OX<4F><00>Is"<22>
<EFBFBD><EFBFBD>W<EFBFBD>Y<EFBFBD>/<00>u<EFBFBD><75>~<7E><>]Ԫ` <0C>]e<14>$<24><><EFBFBD><00>)+ C<><43>,d[q@<0F><04>?<3F><>9<>8<19>8Y`.ձ<>ϙ<EFBFBD><CF99><EFBFBD>2<00><>m<EFBFBD><1A>< 80wz<77><7A>q<00>3<EFBFBD><33>B<><42><00><><EFBFBD><EFBFBD><1A>|<<00>w<EFBFBD><77>*=<3D>* x<>@
=<00>L<EFBFBD>s'Q<>^<00>|<7C>v<EFBFBD><76>Q<EFBFBD><00><><EFBFBD>_+]x<>P꽪D֤#MR<4D>w. 28<06>c<EFBFBD>/DzG~<7E>~<7E><><EFBFBD><EFBFBD>&\sᘻ7<E198BB><37>:f<><66>r<<3C>D1&<26>qM<71><4D><EFBFBD><EFBFBD><00><><15><><1E><><00><>ME?<3F><><EFBFBD>0K<>f<EFBFBD><17>8>G<>\<5C>C<EFBFBD><43>M-$<24><><EFBFBD>Ġ<EFBFBD>&+<00><1A><><EFBFBD><18>#9v|<7C><><EFBFBD>?Mc)<00><><EFBFBD>pOJ`<60>'AĻ_P毂/9.<2E>%Qpon?h<><68><EFBFBD><EFBFBD><<3C>rsS<73>b<EFBFBD> <00>|!<21><><EFBFBD>=NAp^<5E><>P<EFBFBD><50>Dx<><78><14>"B{<7B><14><>V"<00>U@E\<5C><>b <00>)+<2B><>[L<>d3^<15>:G H<06><>fC<66>07<00><><EFBFBD>wg6G$<00>s<EFBFBD>[<5B>e;<00>C<EFBFBD><43><EFBFBD>z<EFBFBD>q<><71>gjg<6A>(<18><>B<EFBFBD>(<28>@<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD>3'2<18>pD<70>oB<00><>osN %20t<30>;%<25><>i<EFBFBD>n_ 4|<7C>t<EFBFBD><74>iC<00><>O<14><>Y!<00><>&$<24>̎<EFBFBD> R1<11>z3D<33><00><><EFBFBD>c<EFBFBD>[<5B>
<00><>w <0C>I<EFBFBD>W<04>,~<7E>U<EFBFBD>5оYy<79>ψUgkH<01><><EFBFBD><EFBFBD>
qOP<4F><50><EFBFBD><EFBFBD><17><><EFBFBD>kf \<05><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>IER<45><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>C BsS<1C><>&<11><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1pA7\@' {<7B><><EFBFBD><EFBFBD>1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>G<00>
 <08> <0C>V<EFBFBD>7<EFBFBD><37> 4,<2C>E^ +<2B>BDUgkH<01><><EFBFBD><EFBFBD>
qObC:\Users\dxzq\.cargo\registry\src\mirrors.ustc.edu.cn-38d0e5eb5da2abae\scopeguard-1.2.0\src\lib.rs<72> ?<3F><><EFBFBD>"w$<24>LϘ<><CF98>K<EFBFBD>I<EFBFBD>tbO<62>t<EFBFBD>Ω<01><>u<00><><01><><01>: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* <0F><03><03> <03> <03>2<03>3<03>3<03>5<03>D<03>N<03>N<03>Q<03>Q<03>]<03>]T<><54><EFBFBD>w=<3D>Z<EFBFBD>k<12><>V\Ox86_64-pc-windows-msvc<76>7<EFBFBD>L9<4C>Se<53>.7<><37><EFBFBD>I
scopeguard<EFBFBD>-d9a53cd0a4d41fe6<65>]Ԫ` <0C>]ͤR<01><06><00>hE<00>  $$3<< < :<3A>;<3B>E<><EExE<><00><<x<x<x<<3C><x;xv8p<<00>" ;v::tEt<00><"x ;<04>
<01>rust-end-file