rust Ĥ#rustc 1.76.0 (07dca489a 2024-02-04) JSY׃(h.N9-66d8041607d2929b20@vϑ+I-693a8f23970c5917c\i %LRlU-13fc9d1ed9c7a2bcrustc_std_workspace_core vJ][.(b{-5af394d9b1f07bdc"E~+-e9d126c51bb8b2bbu$5mS-39c59240bfdfab27 "mL7e?^]-65c422a3ad95273dcfg_if :Xc^,I-7e6330a6c0cb9441 miniz_oxideCMFrf1=f<-306712ebb1ee1a3fadler}s9ycK )2 -349c574f342b0d30 hashbrownKs~曁X5-ce1d65fb391ae98brustc_std_workspace_allocQMzR#|.廍܅ -8933a2fb54d88492 std_detect >1~-b93dac2525ec4d1erustc_demanglex>)F0-a6e97aae2681ad8f addr2line)˂K-1ff34b0cf871cb60gimliӸWFf_Vmgq-0c110dd0650d6cb7object:[fu#r-dcd9be90ae2cb505memchrTivpJ5-516789932d161b4eIph:=jvl-a57e2388c0aea9b1winapiKJJ    K JJ doc_commentK KK K KK  K  LL L  L (serde_json_testsgg g  g I !      NtestsBB B  B enable_ansi_support                 ansi  write_prefix W   write_suffix  RESETwrite_foreground_code write_background_code prefixinfixsuffix "style())bold)dimmed)italic) underline)blink)reverse)) strikethrough)fg))is_plain(6<(8normal888888888(C differenceIIKbetweenLdisplayNNNNNNNNNN NY'aYSYN ANSIString]NANSIByteString_NaaIaaNfff style_reff style_ref_mutNkkkkN ANSIStringspNrNANSIByteStringstNvNxpaintyyyN}~~~NNwrite_to N write_to_any N N  N   writeAnyWritewstr write_fmt     util sub_stringunstyle unstyled_len  Prefix   Infix      Suffix   (Style foreground backgroundis_bold is_dimmed is_italic is_underlineis_blink is_reverse is_hiddenis_strikethrough(((((ColourBlack Red Green Yellow Blue Purple Cyan White Fixed  RGB    (( ( ( ( I Difference ExtraStyles  Reset  NoDifference IIIIINANSIGenericStringstringN N NNANSIGenericStrings  NNN 7 7 7 77777777 7 7 7#7#7#7+7,7-7.7/70717273747L7L7\7i7j7o777777777777777777777777777777777777777777777777777777777777777777777777  ⲥ(M(   5(M(  H)M)M(M(M) Ǜ)))))      Dzְ֞^++++M+)+ Ҧ5,,,,M,NNА渡NNА渡..MNNА渡.NNА渡Z.NNА渡bNNА渡l.M  Ðծә .  Ðծә .  Ðծә .2MNNА渡M  Ðծә MM)M"Cak6YM # *M80 5 #565! 66(6)66$ 66(6)6)66' 77)7)77A 88+888A  88+89898988  99,9)99; .::  Ðծә .:  NNА渡.::(IN L%L&L'LFLGColorMHF ]_ p!  r#t$ v       >NB This is a library for controlling colours and formatting, such asE: red bold text or blue underlined text, on ANSI terminals.F= ## Basic usage= There are three main types in this crate that you need to be@; concerned with: [`ANSIString`], [`Style`], and [`Colour`].>J A `Style` holds stylistic information: foreground and background colours,MG whether the text should be bold, or blinking, or other properties. TheJM [`Colour`] enum represents the available colours. And an [`ANSIString`] is aP string paired with a [`Style`].#5 [`Color`] is also available as an alias to `Colour`.8H To format a string, call the `paint` method on a `Style` or a `Colour`,KG passing in the string you want to format as the argument. For example,J# here’s how to get some red text:& ``` use ansi_term::Colour::Red;; println!("This is in red: {}", Red.paint("a red string"));>FN It’s important to note that the `paint` method does *not* actually return aQL string with the ANSI control characters surrounding it. Instead, it returnsOI an [`ANSIString`] value that has a [`Display`] implementation that, whenLL formatted, returns the characters. This allows strings to be printed with a OE minimum of [`String`] allocations being performed behind the scenes. H F If you *do* want to get at the escape codes, then you can convert the IC [`ANSIString`] to a string as you would any other `Display` value: F F F  8 let red_string = Red.paint("a red string").to_string(); ;F   1 ## Bold, underline, background, and other styles 4 L For anything more complex than plain foreground colour changes, you need to OL construct `Style` values themselves, rather than beginning with a `Colour`. OI You can do this by chaining methods based on a new `Style`, created withLI [`Style::new()`]. Each method creates a new style that has that specificL property set. For example:F use ansi_term::Style;& println!("How about some {} and {}?",), Style::new().bold().paint("bold"),/7 Style::new().underline().paint("underline"));:FK For brevity, these methods have also been implemented for `Colour` values,NM so you can give your styles a foreground colour without having to begin withP an empty `Style` value:F' use ansi_term::Colour::{Blue, Yellow};*% println!("Demonstrating {} and {}!",() Blue.bold().paint("blue bold"),,8 Yellow.underline().paint("yellow underline"));;? println!("Yellow on blue: {}", Yellow.on(Blue).paint("wow!"));BFO The complete list of styles you can use are: [`bold`], [`dimmed`], [`italic`],RU [`underline`], [`blink`], [`reverse`], [`hidden`], [`strikethrough`], and [`on`] forX background colours.E In some cases, you may find it easier to change the foreground on anHE existing `Style` rather than starting from the appropriate `Colour`.H) You can do this using the [`fg`] method:,FQ- use ansi_term::Colour::{Blue, Cyan, Yellow};0P println!("Yellow on blue: {}", Style::new().on(Blue).fg(Yellow).paint("yow!"));SM println!("Also yellow on blue: {}", Cyan.on(Blue).fg(Yellow).paint("zow!"));PFC You can turn a `Colour` into a `Style` with the [`normal`] method.FF This will produce the exact same `ANSIString` as if you just used theIM `paint` method on the `Colour` directly, but it’s useful in certain cases:PF for example, you may have a method that returns `Styles`, and need toIT represent both the “red bold” and “red, but not bold” styles with values ofWO the same type. The `Style` struct also has a [`Default`] implementation if youR) want to have a style with *nothing* set.,FQF. Red.normal().paint("yet another red string");17 Style::default().paint("a completely regular string");:F ## Extended coloursN You can access the extended range of 256 colours by using the `Colour::Fixed`QJ variant, which takes an argument of the colour number to use. This can be M, included wherever you would use a `Colour`:!/!F! use ansi_term::Colour::Fixed;!!!, Fixed(134).paint("A sort of light purple");!/; Fixed(221).on(Fixed(124)).paint("Mustard in the ketchup");">F""F The first sixteen of these values are the same as the normal and bold"IM standard colour variants. There’s nothing stopping you from using these as#PH `Fixed` colours instead, but there’s nothing to be gained by doing so$K either.$ $K You can also access full 24-bit colour by using the `Colour::RGB` variant,$N> which takes separate `u8` arguments for red, green, and blue:%A&F& use ansi_term::Colour::RGB;&&' RGB(70, 130, 180).paint("Steel blue");&*F&&) ## Combining successive coloured strings&,'F The benefit of writing ANSI escape codes to the terminal is that they'IK *stack*: you do not need to end every coloured string with a reset code if'NL the text that follows it is of a similar style. For example, if you want to(OM have some blue text followed by some blue bold text, it’s possible to send)PJ the ANSI code for blue, followed by the ANSI code for bold, and finishing)MF with a reset code without having to have an extra one between the two*I strings.* *K This crate can optimise the ANSI codes that get printed in situations like*NI this, making life easier for your terminal renderer. The [`ANSIStrings`]+LK type takes a slice of several [`ANSIString`] values, and will iterate over,NM each of them, printing only the codes for the styles that need to be updated,P# as part of its formatting routine.-&-M The following code snippet uses this to enclose a binary number displayed in-P7 red bold text inside some red, but not bold, brackets:.:.F.F.* use ansi_term::{ANSIString, ANSIStrings};/-/& let some_value = format!("{:b}", 42);/)) let strings: &[ANSIString<'static>] = &[/, Red.paint("["),0" Red.bold().paint(some_value),0% Red.paint("]"),0 ];01- println!("Value: {}", ANSIStrings(strings));10F11N There are several things to note here. Firstly, the [`paint`] method can take1QS *either* an owned [`String`] or a borrowed [`&str`]. Internally, an [`ANSIString`]2VI holds a copy-on-write ([`Cow`]) string value to deal with both owned and2LL borrowed strings at the same time. This is used here to display a `String`,3OC the result of the `format!` call, using the same mechanism as some4FM statically-available `&str` slices. Secondly, that the [`ANSIStrings`] value4PF works in the same way as its singular counterpart, with a [`Display`]5I@ implementation that only performs the formatting when required.5C6 ## Byte strings66J This library also supports formatting `\[u8]` byte strings; this supports6MF applications working with text in an unknown encoding. [`Style`] and7IP [`Colour`] support painting `\[u8]` values, resulting in an [`ANSIByteString`].7SK This type does not implement [`Display`], as it may not contain UTF-8, but8NL it does provide a method [`write_to`] to write the result to any value that9O implements [`Write`]:99F9 use ansi_term::Colour::Green;9!:O Green.paint("user data".as_bytes()).write_to(&mut std::io::stdout()).unwrap();:RF::C Similarly, the type [`ANSIByteStrings`] supports writing a list of:F9 [`ANSIByteString`] values with minimal escape sequences:;<<F<>< [`Cow`]: https://doc.rust-lang.org/std/borrow/enum.Cow.html>?B [`Display`]: https://doc.rust-lang.org/std/fmt/trait.Display.html>EF [`Default`]: https://doc.rust-lang.org/std/default/trait.Default.html?ID [`String`]: https://doc.rust-lang.org/std/string/struct.String.html?G; [`&str`]: https://doc.rust-lang.org/std/primitive.str.html@>= [`Write`]: https://doc.rust-lang.org/std/io/trait.Write.html@@ [`Style`]: struct.Style.htmlA / [`Style::new()`]: struct.Style.html#method.newA2 [`Color`]: enum.Color.htmlB [`Colour`]: enum.Colour.htmlB % [`ANSIString`]: type.ANSIString.htmlB(' [`ANSIStrings`]: type.ANSIStrings.htmlB*- [`ANSIByteString`]: type.ANSIByteString.htmlC0/ [`ANSIByteStrings`]: type.ANSIByteStrings.htmlC27 [`write_to`]: type.ANSIByteString.html#method.write_toC:4 [`paint`]: type.ANSIByteString.html#method.write_toD7+ [`normal`]: enum.Colour.html#method.normalD.E( [`bold`]: struct.Style.html#method.boldE+, [`dimmed`]: struct.Style.html#method.dimmedE/, [`italic`]: struct.Style.html#method.italicE/2 [`underline`]: struct.Style.html#method.underlineF5* [`blink`]: struct.Style.html#method.blinkF-. [`reverse`]: struct.Style.html#method.reverseG1, [`hidden`]: struct.Style.html#method.hiddenG/: [`strikethrough`]: struct.Style.html#method.strikethroughG=$ [`fg`]: struct.Style.html#method.fgH'$ [`on`]: struct.Style.html#method.onH'I I ansi_termI II I  III ٖIII(IN ;%<&<'<F<G<<HF<]=_=p= r=t= v= > > > > >ٙLL &%7!0ǚg ) O 77 7) 7   y                O 77 7) 7    ҟ  +X77 7+ 7  X77 7+ 7  ( ),C The prefix bytes for this style. These are the bytes that tell the(F2 terminal to use a different colour or font style.(5) # Examples))F)& use ansi_term::{Style, Colour::Blue};)))% let style = Style::default().bold();*( assert_eq!("\x1b[1m",*( style.prefix().to_string());*++ let style = Blue.bold();+ assert_eq!("\x1b[1;34m",++++ let style = Style::default();,! assert_eq!("",,,+F,-)( -3(I The infix bytes between this style and `next` style. These are the bytes-LH that tell the terminal to change the style to `next`. These may include.KL a reset followed by the next colour and style, depending on the two styles..O///F/' use ansi_term::{Style, Colour::Green};/*00( assert_eq!("\x1b[32m",03 style.infix(Green.bold()).to_string());061 let style = Green.normal();111622!ا2, style.infix(style).to_string());2/F33))( 338F The suffix for this style. These are the bytes that tell the terminal3I3 to reset back to its normal colour and font style.46555F55*55( assert_eq!("\x1b[0m",6( style.suffix().to_string());6+6# let style = Green.normal().bold();6&7԰7+77!ا8԰8+F88)) 89 +<C The prefix bytes for this colour as a `Style`. These are the bytes9F@ that tell the terminal to use a different colour or font style.:C:= See also [`Style::prefix`](struct.Style.html#method.prefix).:@;;;F;;!;;( Green.suffix().to_string());<+F<<+( <@)K The infix bytes between this colour and `next` colour. These are the bytes=NE that tell the terminal to use the `next` colour, or to do nothing if=H the two colours are equal.>>; See also [`Style::infix`](struct.Style.html#method.infix).>>???F?& use ansi_term::Colour::{Red, Yellow};?)@ assert_eq!("\x1b[33m",@+ Red.infix(Yellow).to_string());@.F@@++( @@DB The suffix for this colour as a `Style`. These are the bytes thatAEE tell the terminal to reset back to its normal colour and font style.BHB= See also [`Style::suffix`](struct.Style.html#method.suffix).B@CCCFC use ansi_term::Colour::Purple;C"DD) Purple.suffix().to_string());D,FDD+) DE(E4E777 7( 7MMMflagsJMfillJMJMwidthJM precisionJMbufJҠ᷷7  y E EEF( F4F777 7( 7MMMJMJMJMJMJMJҠ᷷7F GGGG K)#K4K777 7) 7MMMJMJMJMJMJMJҠ᷷7"K" #KKL;;<<<<L L )*+,-./012345 , Creates a new Style with no properties set. /   F Q   let style = Style::new(); # println!("{}", style.paint("hi")); &F  ))) * . Returns a `Style` with the bold property set. 1   F Q  ! let style = Style::new().bold(); $$ println!("{}", style.paint("hey")); 'F  7 7))) ) + 0 Returns a `Style` with the dimmed property set. 3FQ# let style = Style::new().dimmed();&$ println!("{}", style.paint("sup"));'F7 7)))) ,0 Returns a `Style` with the italic property set.3FQ# let style = Style::new().italic();&* println!("{}", style.paint("greetings"));-F7 7)))) - 3 Returns a `Style` with the underline property set.6FQ& let style = Style::new().underline();), println!("{}", style.paint("salutations"));/F 7 7)))) ./ Returns a `Style` with the blink property set.2FQ" let style = Style::new().blink();%' println!("{}", style.paint("wazzup"));*F7 7)))) /1 Returns a `Style` with the reverse property set.4FQ$ let style = Style::new().reverse();'& println!("{}", style.paint("aloha"));)F7 7)))) 00 Returns a `Style` with the hidden property set.3FQ# let style = Style::new().hidden();&% println!("{}", style.paint("ahoy"));(F7 7)))) 1$7 Returns a `Style` with the strikethrough property set.:FQ* let style = Style::new().strikethrough();-# println!("{}", style.paint("yo"));&F 7 7)))) 2"-; Returns a `Style` with the foreground colour property set. >   F  use ansi_term::{Style, Colour};!#!- let style = Style::new().fg(Colour::Yellow);!0!&F""7 7)+))") 3"" %-; Returns a `Style` with the background colour property set.#>###F#$#$+ let style = Style::new().on(Colour::Blue);$.& println!("{}", style.paint("eyyyy"));$)F%%7 7)+))%) 4%% (E Return true if this `Style` has no actual styles, and can be written&H without any control characters.&#'''F'Q''0 assert_eq!(true, Style::default().is_plain());'37 assert_eq!(false, Style::default().bold().is_plain());(:F(())) 5())7,E Returns a style with *no* properties set. Formatting text using this)H# style returns the exact same text.*&*F*Q*0 assert_eq!(None, Style::default().foreground);*30 assert_eq!(None, Style::default().background);+3- assert_eq!(false, Style::default().is_bold);+0> assert_eq!("txt", Style::default().paint("txt").to_string());,AF,,)66 7A +9:;<=>?@ABDA Returns a `Style` with the foreground colour set to this colour.BDBBBFB use ansi_term::Colour;BC" let style = Colour::Red.normal();C%C&FCD+)88 9DGH Returns a `Style` with the foreground colour set to this colour and theDK bold property set.EEEEFEFF" let style = Colour::Green.bold();F%F'FGG+)88 :GJHK dimmed property set.HHHIFIII% let style = Colour::Yellow.dimmed();I(I'FJJ+)88 ;JMKK italic property set.KLLLFLLL# let style = Colour::Blue.italic();L&M-FMM+)88 <MPNK underline property set.OOOOFOOP( let style = Colour::Purple.underline();P+P/FPQ +)88 =QTQK blink property set.RRRSFSSS" let style = Colour::Cyan.blink();S%S*FTT+)88 >TWUK reverse property set.UVVVFVVV% let style = Colour::Black.reverse();V(W)FWW+)88 ?WZXK hidden property set.YYYYFYYY$ let style = Colour::White.hidden();Z'Z(FZZ+)88 @Z^#[K strikethrough property set.\\\\F\]]0 let style = Colour::Fixed(244).strikethrough();]3]&F^^ +)88 A^a,_K4 background colour property set to the given colour._7```F```7 let style = Colour::RGB(31, 31, 31).on(Colour::White);a:a)Fab++)88 Bbb c)Df F You can turn a `Colour` into a `Style` with the foreground colour setcI with the `From` trait.ddFdd#; let green_foreground = Style::default().fg(Colour::Green);d>6 assert_eq!(green_foreground, Colour::Green.normal());e94 assert_eq!(green_foreground, Colour::Green.into());e7: assert_eq!(green_foreground, Style::from(Colour::Green));f=Fff+)CC DcolourfL<<<<M<MM  IJG ,L 9 77 7) 7),K K Lfirst   M M]_prtvtNO%NPio-NQ{?NRQNSh NTNVNWNX(È5׈K \x‰mA Cloning an `ANSIGenericString` will clone its underlying string.DF use ansi_term::ANSIString;7 let plain_string = ANSIString::from("a plain string");:) let clone_string = plain_string.clone();,( assert_eq!(clone_string, plain_string);+FZ[Z[.Z.M. /\Z+7 7//YY \Z.B An ANSI String is a string coupled with the `Style` to display itE in a terminal.@ Although not technically a string itself, it can be turned intoC! one with the `to_string` method.$FF, let red_string = Red.paint("a red string");/ println!("{}", red_string);FF:. assert_eq!(&*plain_string, "a plain string");1F<^^NNА渡^A An `ANSIByteString` represents a formatted series of bytes. UseD= `ANSIByteString` when styling text with an unknown encoding.@=``NNА渡` 9bcddbc00b00Borrowed Owned ɗbb0M0 0e˜ߘb-00aa eb00inputgghhg.g NNА渡g.ijg! Directly access the style 7 7 7)ff ig.-" Directly access the style mutably% 7 7 7)ff jg.mlmlm.l 0nol kk.7 70 7.kk ol. I A set of `ANSIString`s collected together, in order to be written with aL minimum of control characters. "=qq  Ðծә q !D3 A function to construct an `ANSIStrings` instance. 6=s s NNА渡s  Ðծә s! rarg!#> A set of `ANSIByteString`s collected together, in order to be"A. written with a minimum of control characters."1=uu  Ðծә u#$P7 A function to construct an `ANSIByteStrings` instance.#:=w w NNА渡w  Ðծә w$ v$% )y&B Paints the given text with this colour, returning an ANSI string.%E&& &)0NNА渡z0xz{||z{x&0z&&0ӗ  ɗbz0''  yz00&&&ܩܩ&z( +~*ۧ(ED This is a short-cut so you don’t have to use `Blue.normal()` just)G to get blue text.))F* use ansi_term::Colour::Blue;* ) println!("{}", Blue.paint("da ba dee"));*,F*** ++0NNА渡0}}+0++0ӗ  ɗb0+,  ~00+++۰+-(2--4-777 72 7MMMJMJMJMJMJMJҠ᷷7. ...NNА渡/0AE Write an `ANSIByteString` to an `io::Write`. This writes the escape/H7 sequences for the associated `Style` around the bytes./:077 7ش 7   y F 000  0w01w.112  .2 NNА渡.11˹2W2 N77 7 7   y 22.2 .2224)34545777 73 7MMMJMJMJMJMJMJҠ᷷75 556  Ðծә 67AD Write `ANSIByteStrings` to an `io::Write`. This writes the minimal6G@ escape sequences for the associated `Style`s around each set of6C bytes.7 777 7߿ 7 777  778.88..8 9  .9   Ðծә .889W9 N77 7 7 :9ļ9 .::9:MM M %'M 6;M R^Ha 77 7 ArgumentspiecesJJJ˽7  yk pvC 77 7 7  %3  G 77 73JJJ˽7  y3 B 77 73 73  $3  ԷG 77 73JJJ˽7  y3 B 77 73 73  M MMNN{<]=_=p= r=t= v> > >~cT Return a substring of the given ANSIStrings sequence, while keeping the formatting.&W=7 7  Ðծә 666161JNNА渡888Global ڜq  strs,W Return a concatenated copy of `strs` without the formatting, as an allocated `String`.Z>77 7  Ðծә 7::: +հ©+  0Y Return the unstyled length of ANSIStrings. This is equaivalent to `unstyle(strs).len()`.\>77 7  Ðծә 7   NN N % M Styles have a special `Debug` implementation that only shows the fields that"PM are set. Fields that haven’t been touched aren’t included in the output.sPF This behaviour gets bypassed when using the alternate formatting modeI `format!("{:#?}")`.( use ansi_term::Colour::{Red, Blue};+< assert_eq!("Style { fg(Red), on(Blue), bold, italic }",?? format!("{:?}", Red.on(Blue).bold().italic()));B)6777 7) 7MMMJMJMJMJMJMJҠ᷷7 ڝ 6  MMMJMJMJMJMJMJҠ᷷67 Like `ANSIString`, but only displays the style prefix.:I This type implements the `Display` trait, meaning it can be written to aLK `std::fmt` formatting without doing any extra allocation, and written to aN9 string with the `.to_string()` method. For examples, see <4 [`Style::prefix`](struct.Style.html#method.prefix). 7!(ⲥ)(6)( !):!J(7 7((:! !;!K(<!L(777 7( 7MMMJMJMJMJMJMJҠ᷷7<! !6@ Like `ANSIString`, but only displays the difference between two!C styles." ""L"N#<2 [`Style::infix`](struct.Style.html#method.infix).$5$(5))(6))( $)$)=$M(7 7((=$ $>$N(?$O(777 7( 7MMMJMJMJMJMJMJҠ᷷7?$ $77 Like `ANSIString`, but only displays the style suffix.%:%%L&N&<4 [`Style::suffix`](struct.Style.html#method.suffix).'7')H))7)) ()@'P)7 7))@' 'A'Q)B'R)777 7) 7MMMJMJMJMJMJMJҠ᷷7B' '? A style is a collection of properties that can format a stringB using ANSI escape codes.C`dsFw#3 let style = Style::new().bold().on(Colour::Black);6. println!("{}", style.paint("Bold on black"));1F!)Ǜ. The style's foreground colour, if it has one.1   +. The style's background colour, if it has one.1  Whether this style is bold. Whether this style is dimmed.!  Whether this style is italic.! " Whether this style is underlined.%  Whether this style is blinking.#( Whether this style has reverse colours.+  Whether this style is hidden.! % Whether this style is struckthrough.(E T)T)77 7) 7)E  FU)7 7))F GV)2A A colour is one specific type of ANSI escape code, and can refer/D/ to either the foreground or background colour.020* These use the standard numeric sequences.0-= See 1@"2+Dzְ֞^9+  999+48 Colour #0 (foreground code `30`, background code `40`).2;3G This is not necessarily the background colour, and using it as one may3JA render the text hard to read on terminals with dark backgrounds.4D"Ɗ+ƊƊ+58 Colour #1 (foreground code `31`, background code `41`).4;"++58 Colour #2 (foreground code `32`, background code `42`).5;"++68 Colour #3 (foreground code `33`, background code `43`).5;"++78 Colour #4 (foreground code `34`, background code `44`).6;"++78 Colour #5 (foreground code `35`, background code `45`).7;"++88 Colour #6 (foreground code `36`, background code `46`).7;"++98 Colour #7 (foreground code `37`, background code `47`).8;8D As above, this is not necessarily the foreground colour, and may be8G2 hard to read on terminals with light backgrounds.95"ȓ+ȓȓ+8> A colour number from 0 to 255, for use in 256-colour terminal:A environments.::C - Colours 0 to 7 are the `Black` to `White` variants respectively.:FA These colours can usually be changed in the terminal emulator.;DD - Colours 8 to 15 are brighter versions of the eight colours above.;GD These can also usually be changed in the terminal emulator, or itC5 arranged in six squares measuring six by six each.>8= - Colours 232 to 255 are shades of grey from black to white.?@?: It might make more sense to look at a [colour chart][cc].?=@S [cc]: https://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg@V"8 889+ A980 A 24-bit RGB color, as specified by ISO-8613-3.A3"8 88999+ A˟9A9A9H1 W+W+77 7+ 7+H1 1 I1X+7 7++I1 1J1Y+K1Z+777 7+ 7MMMJMJMJMJMJMJҠ᷷7K1 1# ,Ҧ5),9#9 99), )#,, #˧,˧˧,L  [, [,77 7, 7,L  M!\,7 7,,M N!],O!^,777 7, 7MMMJMJMJMJMJMJҠ᷷7O :G An `ANSIGenericString` includes a generic string type and a `Style` toJH display that string. `ANSIString` and `ANSIByteString` are aliases forK. this type on `str` and `\[u8]`, respectively.1$>. ǰ)NNА渡.А渡հ N)Nӗ  ɗb.P "_.ӯޯ-հհ"_.ӯޯ.հհ77 7. 7.P . Q#`M..ӯޯ/հհ777 7/ 7MMMJMJMJMJMJMJҠ᷷7Q .:A A set of `ANSIGenericString`s collected together, in order to beD1%>.  "  Ðծә .Ðծә   NNА渡.:> .R#a.Źй۹1777 71 7MMMJMJMJMJMJMJҠ᷷7R .S $b.Źй۹1$b.Źй۹277 72 72S . ؜EE GG KK ć .. 0255 7:      ϡϡޢΪK8} )xfx4https://doc.rust-lang.org/std/fmt/trait.Display.htmltype.ANSIByteString.htmltype.ANSIStrings.html Style::new()0https://doc.rust-lang.org/std/primitive.str.htmlWriteenum.Color.html7https://doc.rust-lang.org/std/string/struct.String.html&str8https://doc.rust-lang.org/std/default/trait.Default.html1https://doc.rust-lang.org/std/io/trait.Write.htmlz<struct.Style.htmlp~enum.Colour.htmlzt2https://doc.rust-lang.org/std/borrow/enum.Cow.htmltype.ANSIString.htmltype.ANSIByteStrings.html]~t v<_ r:t<~zt colour chartLhttps://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg Style::infix Style::suffix Style::prefix=>==>-=>==>-]0`U#>]0`UoVRW7]0`UI-[q]0`U"p]0`U@ːٷ']0`U.tJ4"]0`U?1Vc]0`U`ۦ鯫]0`Uj}H]0`U̜ߦK]0`ULAy]0`UFF]0`U|D:GL=+]0`UTw]0`US&]0`UBɎ\ 8D]0`U?ZD]0`Uez]0`U$JI]0`U:]0`U,zy,]0`UI8]0`U_:]0`U1]ĝm]0`Uc$]0`UD>̈]0`U'lK]0`Ug]0`U/4]0`UOQXɤ.]0`U;f: ]0`UNn~]0`Ucj,]0`US1]0`UQr6 V]0`Uz!m]0`UP3#]0`UDZ]0`UE]0`Ug_]0`Uɷٔ]0`Ut~]0`Ul]c ]0`U z f.]0`U 39]0`UBo>]0`U Ƅ;3]0`U=S=}H]0`UF1K]0`U$ZU$]0`UغF]0`U4czS]0`Uu*f1]0`U$7 ]0`U@6 "]0`UM><2t]0`U%k ]0`U)\L]0`UOB7`1]0`Ux:0t]0`UKJ*]0`UWE4]0`UB>w]0`U׵wR]0`U7U]0`U ":hw]0`U/jOA]0`UV$]0`UlgA?m]0`UPfw4]0`UB|ul6]0`U5jp=9h]0`U"k8]0`Uf]0`U=)9u]0`Um3|]0`U:_,]0`U#˵]0`UiМ]0`UIb ">vRz]0`Ui`G]0`UCV"]0`UD]ol]0`Uw]0`Usy]0`U\/4G6]0`UKU_]0`UA<]0`U2]0`U|2/]0`UwSU:]0`UEG;]0`Uw]0`UoF]0`U 0nT7]0`UpRy]0`U1Ku} ]0`U0(M]0`U "|9z]0`UR) N]0`UD]0`U3&g}6A]0`Uv}]0`U' ]0`U\dU-8]0`U&h_]0`UjP\oѬ]0`Ut*]0`UP91]0`U]\b9]0`UͿ%Q]0`UeNX']0`U3<R]0`UIhv_ ]0`Uad]0`Ute]0`Uk]0`UH#?3]0`U %]0`U<,C!@ "]0`Ur}Ϡ2]0`U'-\]0`UX.c5]0`U1 ]0`U9c]0`U@4}]0`U鴯F!~]0`U}3نWYv]0`Uu &*]0`UޮY] L]0`UϏfӖ]0`UVF]0`Uu;b]0`Utx(]0`U 'd<]0`UbG]0`U 0@ ] ]0`Uxr#]0`U@:N]0`UDs"?]0`U`@]0`U@6:663@]0`Up5FR]0`U슡"WB]0`U;dˢ]0`U x@<%l]0`U \hq~]0`Ulӈ]0`U35&]0`U¿ߧ3]0`Um&]0`UG4]0`UHJ`7M]0`UH~7]0`UZf?PnA]0`U̲]0`Uk~ ҙ]0`Uah!| %]0`U mw]0`U,D#Lo]0`U{]0`U@/G]0`UmjmBy]0`UWrc]0`U6O]0`Ua֌>I}&]0`Ul^j]0`URNí]0`U"P6J]0`UfM(C>]0`UFLM]0`Uj#]I]0`URڹ*]0`UiZ]0`U,v]0`U 仰T]0`U >4]0`UC"׸]0`UNmX]0`UKJb]0`U ]0`U(]0`UuP]0`U`a_]0`UM?8]0`U"G]0`Un|x]0`UdgI8]0`U4zK]0`U4"]0`U_]0`U{_J]0`U%V ]0`Uf]0`UⷦC[p]0`UO7{ur]0`U|]0`U# #Ȳ]0`U v{XV#]0`U5lp[]0`U{ͬ$]0`UmS]0`U*]0`Uo_]0`U1+]0`UIuc]0`U(r]0`US']0`U ]0`UZIR]0`UѢV8\]0`U(7] ]0`U?.g]0`UD{s]0`UsړlF߲]0`U& i]0`U~ ]0`U 58]0`UMP$]0`U ъO]0`U5[Mil/]0`UP#21}]0`Uhh߂]0`UFrI]0`Uc#~]0`U@:]0`U{l ]0`U?5h6]0`UNF ]0`U wd]0`U6 Рt]]0`U61Koi]0`UtPMc]0`U kA]0`U\o=]0`Ua1k]0`UyQ!]0`UC]0`UX̮,]0`U6ty]0`U%m]0`U~rg]0`U|X<]0`Ux͒Z4]0`U1Ň?]0`UbRY]0`U1c!>y]0`UWt ^m]0`U T;]0`UghL]0`U̬Nuu%]0`U33~r~]0`UjB]0`U>2s,]0`UA*MTA]0`U~)*[]0`U".Ѽ]0`UI\y(]0`U|މ9Y]0`U6'Hn׿]0`Uu]0`U*b5˳/~]0`Uu9]0`U9z*g"]0`UFt[]0`UXc]0`U: x']0`UxP0#v]0`UYL]0`UuAt]0`U=5noT]0`UC@_'gr]0`U2WMQ]0`Uʽln]0`U7mw7M]0`U Ǵ:,]0`U%(Iǻ]0`Ur9xρ]0`UlyP]0`UEH6@]0`UHŏ]0`U>ѵo]0`U2 vn]0`U\]0`UvO֢t]0`UTtA]0`U5]0`U2׆$[]0`U ]0`U8@җ:]0`UsՉ]0`U{.OW]0`Ud]0`U`]0`UrsR]0`U$]0`U2(Wr]0`UlWo]0`Uϻ)!]0`US&%]0`Up]0`UVU ]0`UZyBH]0`U gpF]0`UFmv ]0`U2Wk ]0`ULvlu#]0`U\"9h?]0`UodF]0`UK HV;R]0`Up|_ma]0`U[hϳ]0`UD"$]0`U-nh]0`UJ\]0`Usph]0`UqQoC]0`U4j`]0`U|YY]0`U=u$]0`U€Z* |]0`U$U']0`U a5]0`U'J/]0`U?cK]0`Uk>]0`ULJBvC]0`U08i]0`UZQ]0`Up}]0`U D}k^ ]0`UXlL]0`U62 o]0`U|S]0`U{9]0`UJ]0`U烎X]0`U@8}]0`UeOh]0`Up"]0`U)?]0`U' %RA]0`U塋E]0`U pnd@]0`U>@N]0`UI]0`UϺn]0`UZxO+]0`U#1.L]0`UHp]0`Uc]0`U׵8I0]0`UMMUf4]0`UTGD]0`U/eu~!]0`Upuά]0`Uc]`7Kq]0`U6p@[]0`UۉlW]0`UKAFIs]0`UhYFe]0`UEݶ"]0`U!./]0`UKh6]0`UF*C]0`Ub @]0`Uw~]0`U]0`U_ q]0`U3;m]0`Uux4]0`U#V_c]0`UrTb]0`UomA]0`UpgL_O]0`U,L ]0`UgwBF]0`U]0`UϺd]0`Uj]0`Uh"0i"]0`UŪB]0`Uv[]0`U@~]0`Uxsb)]0`UyHdg|]0`UhfR&]0`U2ΈL]0`Uۓ]0`U;A]0`U唳?c`]0`Um({ ']0`U0oqy]0`U'~+X]0`U̿_nKM6  tLMMNBOOP1PPQQLT@WaY{ YK[ ]__a*a!b9b>cTcw c d e1 g h i* k~ l m, o p rs su u wM xW y_ zo {u | } ~  )_w< =NP}%B` , ND"J3v _ +Z!?n& -eSJ½EuM+C%> )VЅ'рѰnӋFupՠյؠ&ڧ?/9UKLIc4 yM(PQqY_"a1bd cs uoAa:sT h v Dn 3R!BoQt^4                       """"""""!!!""        KLMWOPFPP!T W6Y [a]`__?aNbGcudefChij:lmnJpqzsuv"x,y4zD{J|U}^~zׂ2RȍiIuVK[ܘךcr)Rˣ)ާ.Hȩ< OеǷl$%8UӾoM;\Fn^džvȞ*Ɏɶɶ)πϩ9 Irӑӹ)՞ا8QېmLLLYMbMjMrM|MMMNN;OOOP*PPPmQQQET9WZYtYD[]__ a#a bb2bc%c+c1c7cMcpcde*ghi#kwlm%oprssuuvFxPyXzh{n|y}~ "NXpՄ߄"*56nFXƀ pǘ$ȈȰ<ɠ;ϕ"RЁ#yѩѾ5gӄӣBqiՙծU`xؙt|ّ "ڠ&;,ܲ2ޱ޹޿4yoϱ3WɴE޷Pظ׹1d]޾zĿXF@œ+jÝQyiǑȁȩ 5ə4ϋN{fѥѤ+]}Ӝ >k VՕՔrؒسOz5ܶ*zޙKBMCNNNOOPPzPP&QxQQ+TW@YfY*[m]j__`aa&bbYc}de g_hikVlmohpqssuuv,x6y>zN{T|_}h~d*pUUjٌy򍓎ˎ/JWLēӕjn™֜ "I'`ϢṢĤJ¥֦bߧ0ka󰾱P4}rԷIѸƹ']ڼVԾpN< 9‹cÖGo_LJwȟ+ɏɷɷ *ρϷGtUўѓ!SsӒӺ7dԶEՎվՃ֡k؈ة,ٳi.ۓ WވDs1wMwNOO P&PPRQQ8T"WMYoY7[z]w__` aa/bcbcdegshikjlmo|pqssuuv9xCyKz[{a|l}u~΀mЃ?#Wk`͓mܕ5ؙ̛؝8_٤`ѥx @{qԱ8YδJ"Rڸ ܹº6f_ɿ]KB¡0lßV~ nǖ"ȆȮ:ɞ9ϐ P}kѧѩ0bӂӡ@m[՗ՙظr /ޭ2GMYOHPP"T W7Y![b]a__@aObvdefDhij;lmnKpq{suv#x-y5zE{K|V}_~{Sjv\ ds+*/I= Pm%9V]Go_LJwȟ+ɏɷɷϪ:!JӺ*՟9RۑMZOIPP"T W7Y![b]a__@aObvdefDhij;lmnKpq{suv#x-y5zE{K|V}_~{؂Uˍlx_#ޘښeu.+0J= uѵɷm%ݺ9]"9Ū:J*;T`MNIOO8PPTV(Y[S]R__1a@bgdef5hij,l}mncTcsu)_PԌƎΕ D"J۩FxwD̸XL4^Ì@Xp{Bo2_չ'RniѺoIS[ĺa;Fݫ!%AHdko|/;IPdmt   # 1 5 9 = A E I M Q U Y ] f n u    2 9 @ G ] d k r v    # + 3 7 ? G O S [ c k s x |    ! ) 0 4 ? D I [ c r      - 2 : > F J N V b t &*26CPU`erw #'/37?Pchp} %-59AIQjow !'-39?EKQW]ciou{ %,3:AHOV]dkry !(/6=DKRY`gnu|kӺq+LV(#qM==J::P@@`QQ]NNZKKWHHTEEO??L<<RBBbSS_PP\MMYJJVGGN>>K;;QAAaRR^OO[LLXIIUFFήZ*]0`U_n1(*]0`U'{'*]0`UPn#-ccore_intrinsicsderive_clone_copy]0`U_w`/s"1ن]0`ULkBs!]0`U<"J$CU ]0`UlAn]0`U5znn]0`UK4On]0`UGK:O% ]0`U|ZOUH ]0`UjKb(*]0`U*i,9u$fmt_helpers_for_deriveMM]0`U`px!*]0`Ui u"MM]0`UZ]S<" ]0`UBP+߅! ]0`UIcאs']0`UjK%"s$]0`UH~z&-ds!]0`USn}s#]0`U*]0`UWo!*]0`UHw0 $*]0`U-7#ө ]0`UG9{؋n"]0`Uw{[.n!]0`U΃L΁uMM]0`U^2:1LuMM]0`UDn uMM]0`U=ӷcu#MM]0`Ut4{@Au%MM]0`Uwĝ_=`__N`__E`__W``_`4`_{`+`_r`"`_i``_````cceae`?cie`bdfzbdfEbdfTd]fad(face?a1e1g bmcfgb`/cce/aea]ce`b!e!gbdfjbdfydfaDdMfadfaYeVg5bcg cTODHT ]0`U62 od]0`U33~r~]0`UG4]0`U~ ]0`U|Se]0`US&]0`U@8}i]0`U;f: ]0`Ug]0`Uxr#]0`U 8]0`U2Wk I]0`UIq]0`U z f.A]0`U&h_]0`U08i_]0`Ub @]0`Uu;b]0`U2n]0`U,v]0`UCV"g]0`U{l ]0`U3;m]0`URNí]0`UFLM]0`U ъO]0`Ur9xρ-]0`UlyP.]0`UJg]0`Uk~ ҙ]0`U<,C!@ "]0`Uϻ)!B]0`UH#?3]0`U]0`Uh"0i"]0`Um&߮]0`Uv[ᓖ]0`U0(Mw]0`U(]0`U€Z* |X]0`U'-\]0`Upl3)]0`U3Ͱ5.]0`U a5Z]0`U׵8I0w]0`U5jp=9h]]0`U| :\f+]0`Ux:0tQ]0`UIb ">vRze]0`U@^5]0`UomA]0`ULJBvC^]0`UsEy#']0`UWE4S]0`U G0]0`UbG]0`Up5FR]0`UI\y(]0`UZyBHF]0`UeNX']0`UZf?PnA]0`UoVRW7]0`UpRyu]0`U 0nT7t]0`US']0`UrTb]0`UWrc]0`U v{XV#]0`U2(Wr@]0`UBɎ\ 8D]0`U\3]0`UWt ^m]0`U_:]0`Ug_=]0`U`@]0`U]\b9]0`U D}k^ b]0`UϺd]0`UhYFe]0`U-Z{fZ/_/]0`Uf]0`U[hϳO]0`U̿_n]0`Ucj, ]0`U"k8^]0`UsړlF߲]0`U mw]0`Ua1k]0`ULvlu#J]0`U0oqy]0`Uxsb)]0`Ut~?]0`UduB9]0`Utx(]0`U׵wRU]0`U ":hwW]0`Uwi]0`U4zK]0`U{]0`U/eu~!z]0`Uj}H]0`Uux4]0`U`=]0`U2׆$[7]0`UTw ]0`UD"$P]0`UP3#$]0`UHŏ0]0`U"G]0`UD>̈]0`UF1KF]0`UDs"?]0`Ud<]0`U̲]0`Uu]0`U7j:w3]0`Uu &*͘]0`U6 Рt]]0`U~rg ]0`UjB]0`U6'Hn׿]0`UOQXɤ.]0`UEH6@/]0`U̜ߦK ]0`UuP]0`UdgI8]0`U@:]0`UXc!]0`UMMUf4x]0`U,L ]0`UoFs]0`UDz]0`U 仰T]0`U{_J]0`U 58]0`U|X< ]0`UKh6]0`U]0`U_]0`UC]0`UhfR&]0`U#>]0`UJXO8]0`U".Ѽ]0`UuAt%]0`U-nhQ]0`UغFH]0`U"P6J]0`U\o=]0`U\/4G6k]0`U|]0`U Ƅ;3D]0`U=u$W]0`UgȔ&]0`Up"k]0`U$?]0`Upuά{]0`UX̮,]0`UM?8]0`UC"׸]0`U|D:GL=+ ]0`UC*\Ϭ*]0`U)\LO]0`UIhv_ ]0`Ur}Ϡ2]0`UϏfӖ]0`U{ͬ$]0`U4j`U]0`UTGDy]0`Uf_]0`US&%C]0`U4"]0`UiМd]0`UM><2tM]0`U1 ]0`U& i]0`UXlLc]0`Uj]0`U)?l]0`U@4}]0`U' }]0`U Ǵ:,+]0`UvO֢t4]0`UsphS]0`U2ΈL]0`U2 vn2]0`U '-]0`UV$Y]0`U'J/[]0`UۉlW~]0`UKJb]0`UYL$]0`U*]0`Ul^j]0`UP#21}]0`UMP$]0`U \hq~]0`U?1Vc]0`UB>wT]0`UDZ;]0`U@:N]0`U: x'"]0`UZQ`]0`UeOhj]0`UHpu]0`U!./]0`UmjmBy]0`Uk>]]0`U9,,]0`U_ q]0`UNF ]0`Uah!| %]0`U 0@ ] ]0`UR) Ny]0`UFF ]0`U ]0`U ]0`Uo_]0`U#˵c]0`U/jOAX]0`U;A]0`UKJ*R]0`U(r]0`UD{s]0`UpD]0`U:]0`Uj#]I]0`U(7] ]0`U56]0`U슡"WB]0`U# #Ȳ]0`UͿ%Q]0`U%(Iǻ,]0`U9z*g"]0`U'~+X]0`U?.g]0`UxP0#v#]0`U|2/o]0`U.tJ4"]0`U/4]0`U3&g}6A{]0`U$7 K]0`U@6:663@]0`U=)9u`]0`U "|9zx]0`UO7{ur]0`U3<R]0`U=S=}HE]0`U x@<%l]0`Ua֌>I}&]0`U1c!>y]0`U>ѵo1]0`UK HV;RM]0`UⷦC[p]0`UqQoCT]0`U6p@[}]0`UǓ"Fri0]0`UEG;q]0`U鴯F!~]0`U$JI]0`U@/G̹]0`UF*C҄]0`U,D#LoƷ]0`U5[Mil/]0`UtPMc]0`UTӢYOAB2]0`U{.OW;]0`UZxO+s]0`U' %RAm]0`UpgL_O]0`UA*MTA]0`UKU_l]0`U%V ]0`UlWoA]0`UVU E]0`U烎Xh]0`U$ZU$G]0`UgwBF]0`UjP\oѬ]0`UޮY] L]0`UJ\R]0`U:_,b]0`UOB7`1P]0`UC@_'gr']0`U#V_c]0`U?cK\]0`U\dU-8~]0`Uad]0`Uh6f(]0`Uu*f1J]0`U 'd<]0`Ucv]0`U'lK]0`UFmv H]0`Uʽln)]0`U61Koi]0`U5lp[]0`U=5noT&]0`Up|_maN]0`U pnd@o]0`Ute]0`U̬Nuu%]0`UFt[ ]0`UPfw4[]0`Uez]0`U4czSI]0`U1Ku} v]0`UH~7]0`Uz!m#]0`Up}a]0`UEݶ"]0`Ul]c @]0`URڹ*]0`U@~ܗ]0`UiZ]0`U}3نWYv]0`UyQ!]0`U1Ň? ]0`U|މ9Y]0`U6ty]0`U{9f]0`U#1.Lt]0`UBo>C]0`Uv}|]0`UB|ul6\]0`U@ːٷ']0`UbRY ]0`Ux͒Z4 ]0`U>@Np]0`Uw~]0`Uʕǧ1]0`UŪB]0`U唳?c`]0`U塋En]0`Um3|a]0`U"p]0`UD]olh]0`Usyj]0`UyHdg|]0`Um({ ']0`Uɷٔ>]0`U %]0`U$U'Y]0`U`ۦ鯫]0`Uk]0`U;dˢ]0`Uj7]0`UA]0`UsՉ:]0`U|YYV]0`UTtA5]0`Uۓ՜]0`U wd]0`U%k N]0`UX.c5]0`U?5h6]0`U%m]0`ULAy ]0`UϺnr]0`U7UV]0`U 39B]0`U gpFG]0`U?ZD]0`UP91]0`U`a_]0`U1]ĝm]0`UlgA?mZ]0`UVF]0`Uu9]0`Uc]`7Kq|]0`US1!]0`U*b5˳/~]0`UghL]0`U!Ѝ%6]0`U7mw7M*]0`U8@җ:9]0`U1+]0`Uc#~]0`U kA]0`Un|x]0`U T;]0`UwSU:p]0`UNmX]0`UmS]0`UodFL]0`Ui`Gf]0`UNn~]0`UKAFIs]0`U) 4]0`UQr6 V"]0`U35&]0`U\"9h?K]0`U@6 "L]0`UhHP :]0`UE<]0`U >4]0`UI-[q]0`Ulӈܫ]0`UZIR]0`Uhh߂]0`U>2s,]0`UIuc]0`U~)*[]0`UrsR>]0`UHJ`7Mİ]0`Uc$]0`U2WMQ(w?Co n>{qCKIQuWNtN{Vg'@(%XALoIKOGYNjH3O=/rQuAGD\ 11q"6 @x/CYtnjY;h< lv?luJw t_pQb#`gJmt:;f.3 _s a(]BFeMZsg|MdNcHh:wcv^TKK@?[?\gKt"zcNs4bCY>Q:erAX+1 B>C?i&.UtDx$[ [(4m@< 8 UvJv ln9Dd$qtY?]I,oP]}qF u=9)^6<7)cf4 ?vficU!bf'Kn uHvqVY9Q \Dt% 4k*0 JUz})MXlnu;s,|G&O,'?a 0">8 v aHTU[w5ahUWAjgGt Q7Xi#?/ iDup]?A& ?@vem#?9U+NPB8n@Sg{)bw?Co n>{qCKIQua/home/dwhitfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ansi_term-0.12.1/src/lib.rs dX!7-G7;NF>A?NKQ$9LK' ?RPMPIJG <5PPMM*0;OQ+)-<CSYII-1TQGJQJXS- 2;RN0"0?JQL OB +-JOPQNJ OMOQ'Q; .*-&1RWMPGQJDNJTOP"SG="$182@FJH?A!3!)+13;8/,006.20>(('/6   ' (     #$)iJޭb/home/dwhitfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ansi_term-0.12.1/src/ansi.rs GlL-Eq'm# NVPIG G=* '9)%;;;;;;;; KLE,5%* ,5* ;MV # K$_33333333>J _33333333>J ;MO=8D MO=6 ;MO=8 K: .-0!!0&0 $QPT /-;$;&4 /N; /-0+0&0 $KHE &0 $SM#C .3 0,JME '1 $;$;$60,&#,:*- ;$ IS(K> cbbdddffeeeeggiihkqorr|aacaaaaaa VYOQDdˆSޢG~3c/home/dwhitfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ansi_term-0.12.1/src/style.rs ?+{]qC$72"Z6$6$$&&*(0&- 4 "+ 6 ), "*8 +, $,8 +2 $,; .4 '/7 */ #+9 ,. %-8 +- $,? 2+ +3C (5+ 49C (3. 49M( 8? $!M+ 885F !% E3.A)Z@OI @ @ @ @ @ @ @L: FKILLO<H=EB[8I *+ #>P *, !MP -, #OP +2 #OP  04 &RP */ "NP -. $PP ,- #OP$ 8+ *VP< ?. 3\N (C><B ' '  (  "( ,FS/  &6G $5 $h/home/dwhitfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ansi_term-0.12.1/src/difference.rs ! *, 0 0 /6 . 2 0 > FE FE 1+) /+ /+ 5. -* 1, /+ =2 17 17 " HK HWAHUjkklrSSSSS(uyoΤe/home/dwhitfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ansi_term-0.12.1/src/display.rs t|no:d19QE KL2;*E;-,F*2) MLIK,U*1L3>=PMFD% 0 ;26EA;K*4"& <."(*4F*E2<);M#87GB2=;S J^." JL %1 ^."# 1+;$M?H#<>^/,-/,;$LHH#I>^!+# 0-*LH[;- OM4,()  ' &11B(   )e JI8ue/home/dwhitfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ansi_term-0.12.1/src/windows.rs aGWEpz=-LTD2)B2;5L< bg*'* 2 ( P'B ( .DOf, =/Z Ǘ#db/home/dwhitfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ansi_term-0.12.1/src/util.rs ;y]R<$*SQXf"'  !DN "[/]3  ""# !7*" ;kov$h5c/home/dwhitfield/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ansi_term-0.12.1/src/debug.rs u>?V-Pc%QQJ,@C=&99768889?; "& (.0=)-0=)-.A-(CBDDDEKG  9<