This crate was made obselete by new standard library structs such as LazyLock, which were introduced in 1.80
SCUBUHIAJXL432QBYNOGDYX2THRCZY3LPY3T3IZG7BYE52ERGFUQC 4RQHY7LHPHKUWAUQEXFRHKK37RAEFR3RC2QOSUTFTGZRFVWJIVXQC DGHQ46S3S2RQ27CXF4OES5GDXUI63VTSYYQFLXHG7PRKSVWB3SZAC OGJFEWHUMFIZYBS456FPNUN3KEUDZXIJNFGPEMJGQDC7INZMHQZQC N26HD5PFUNVDSEXAQVOTMSMNPWFHQSZ5PHMGEF2ACC23OWFHTGQQC UDHP4ZVBQZT2VBURB2MDCU2IZDNMCAFSIUKWRBDQ5BWMFKSN2LYQC SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC Q45QHPO4HDTEZF2W4UDZSYYQ46BPEIWSW4GJILZR5HTJNLKXJABQC L4JXJHWXYNCL4QGJXNKKTOKKTAXKKXBJUUY7HFZGEUZ5A2V5H34QC KLBWKCUZF3ATGINZCGJL5U7MGD7EBJYDORLWDUDMNWMSN2COJ2ZQC A3RM526Y7LUXNYW4TL56YKQ5GVOK2R5D7JJVTSQ6TT5MEXIR6YAAC KTTKF3RWYAK2YSH2DYYW5QVG4KSNGWUBJBFHKE24OJ7LFCBF5FEAC 5XMUEZMZXQ4T4HGZAGBZWT5YKEXOA7IWLZBSREWBHXLMGHXOFXZAC 5QTMRUXNE2XNJCMLN6MQN24UEZ55EFC3LIR4PO6OPNTT5KEL7WXQC 4RV7T4SRYIQLBW3EZFWBO5G65QAVG2GHPI4KMDDZERCX65KQWSPQC MU5GSJAW65PEG3BRYUKZ7O37BPHW3MOX3S5E2RFOXKGUOJEEDQ5AC IVLLXQ5ZWZDKHO4TNQG3TPXN34H6Y2WXPAGSO4PWCYNSKUZWOEJQC HJVWPKWVSL5ZXALZOT4BOQUWWNGH62OU6YLSZQQEIOB37QQGHK6AC RM225IDQR36MNBMN7OT2R562M4FUD6L34RY7A3WDBBETZIIDKZ5AC 2MKP7CB7FKQUNEAV3YPEJ7FNFW75VGGQIYPQRI54BFXGCUOQESPAC OYN2YVPAN6L3X6HZXJI6B2GYGL2W5AXRK6CVDJRWALS5OENNB5UAC JTELS6L36GEOOST2SUNCJIK5TBJDNLQWCF4IRF7QSHMMVCXSSESAC ABPFWGKH24JK7TLAGDVENTA5VSVRANPBVRD555WCQMNW56BL7SZQC PIQCNEEBNHZDYOU2O7667XBB6D3V2MUALRRVJX6VO5BGYR7LTYRQC QQS7LII4MKQWKPYJXSZVOKLZ2ZSWQOMHHE6T22DJ4CL5I6YRGJLQC DO2Y5TY5JQISUHCVNPI2FXO7WWZVJQ3LGPWF4DNADMGZRIO6PT2QC TA5VXGFGDBLENEH4SRHD7FOUXPXRKIHN7DIBUREW3DZHMDVJNNCAC L5IUD2DSLEK4SYPF6PLNO7C3TZEFYFHNM42HGEHY5VWW5MHD7CXAC FXEDPLRI7PXLDXV634ZA6D5Q3ZWG3ESTKJTMRPJ4MAHI7PKU3M6AC YN63NUZO4LVJ7XPMURDULTXBVJKW5MVCTZ24R7Z52QMHO3HPDUVQC XR7MNOMU5PMOOEY2EPPUABZ7NOP432RDCWUET23ONPXTT3JQIFIAC 2VXTRPO4OML5A2RPI7SAEV5SJNOFIVS4TMYYG6TUUS5EXFMAPRJAC EJ7TFFOWLM5EXYX57NJZZX3NLPBLLMRX7CGJYC75DJZ5LYXOQPJAC lazy_static! {static ref ADDRESS: Regex = Regex::new(r#"(ssh://)?((?P<user>[^@]+)@)?((?P<host>(\[([^\]]+)\])|([^:/]+)))((:(?P<port>\d+)(?P<path0>(/.+)))|(:(?P<path1>.+))|(?P<path2>(/.+)))"#).unwrap();
static ADDRESS: LazyLock<Regex> = LazyLock::new(|| {Regex::new(r#"(ssh://)?((?P<user>[^@]+)@)?((?P<host>(\[([^\]]+)\])|([^:/]+)))((:(?P<port>\d+)(?P<path0>(/.+)))|(:(?P<path1>.+))|(?P<path2>(/.+)))"#).unwrap()});
static ref ADDRESS_NOPATH: Regex = Regex::new(r#"(ssh://)?((?P<user>[^@]+)@)?((?P<host>(\[([^\]]+)\])|([^:/]+)))(:(?P<port>\d+))?"#
static ADDRESS_NOPATH: LazyLock<Regex> = LazyLock::new(|| {Regex::new(r#"(ssh://)?((?P<user>[^@]+)@)?((?P<host>(\[([^\]]+)\])|([^:/]+)))(:(?P<port>\d+))?"#,
use libpijul::pristine::{ChangePosition, Position};use regex::Regex;lazy_static! {static ref CHANGELIST_LINE: Regex = Regex::new(r#"(?P<num>[0-9]+)\.(?P<hash>[A-Za-z0-9]+)\.(?P<merkle>[A-Za-z0-9]+)(?P<tag>\.)?"#).unwrap();static ref PATHS_LINE: Regex =Regex::new(r#"(?P<hash>[A-Za-z0-9]+)\.(?P<num>[0-9]+)"#).unwrap();}
static CHANGELIST_LINE: LazyLock<Regex> = LazyLock::new(|| {Regex::new(r#"(?P<num>[0-9]+)\.(?P<hash>[A-Za-z0-9]+)\.(?P<merkle>[A-Za-z0-9]+)(?P<tag>\.)?"#).unwrap()});static PATHS_LINE: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"(?P<hash>[A-Za-z0-9]+)\.(?P<num>[0-9]+)"#).unwrap());
if let Ok((config, _)) = config::Global::load() {let color_choice = config.colors.unwrap_or_default();
static THEME: LazyLock<Box<dyn theme::Theme + Send + Sync>> = LazyLock::new(|| {if let Ok((config, _)) = config::Global::load() {let color_choice = config.colors.unwrap_or_default();
match color_choice {Choice::Auto | Choice::Always => Box::<theme::ColorfulTheme>::default(),Choice::Never => Box::new(theme::SimpleTheme),}} else {Box::<theme::ColorfulTheme>::default()
match color_choice {Choice::Auto | Choice::Always => Box::<theme::ColorfulTheme>::default(),Choice::Never => Box::new(theme::SimpleTheme),
lazy_static! {static ref STATE: Regex = Regex::new(r#"state\s+(\S+)(\s+([0-9]+)?)\s+"#).unwrap();static ref ID: Regex = Regex::new(r#"id\s+(\S+)\s+"#).unwrap();static ref IDENTITIES: Regex = Regex::new(r#"identities(\s+([0-9]+))?\s+"#).unwrap();static ref CHANGELIST: Regex = Regex::new(r#"changelist\s+(\S+)\s+([0-9]+)(.*)\s+"#).unwrap();static ref CHANGELIST_PATHS: Regex = Regex::new(r#""(((\\")|[^"])+)""#).unwrap();static ref CHANGE: Regex = Regex::new(r#"((change)|(partial))\s+([^ ]*)\s+"#).unwrap();static ref TAG: Regex = Regex::new(r#"^tag\s+(\S+)\s+"#).unwrap();static ref TAGUP: Regex = Regex::new(r#"^tagup\s+(\S+)\s+(\S+)\s+([0-9]+)\s+"#).unwrap();static ref APPLY: Regex = Regex::new(r#"apply\s+(\S+)\s+([^ ]*) ([0-9]+)\s+"#).unwrap();static ref CHANNEL: Regex = Regex::new(r#"channel\s+(\S+)\s+"#).unwrap();static ref ARCHIVE: Regex =Regex::new(r#"archive\s+(\S+)\s*(( ([^:]+))*)( :(.*))?\n"#).unwrap();}
static APPLY: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"apply\s+(\S+)\s+([^ ]*) ([0-9]+)\s+"#).unwrap());static ARCHIVE: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"archive\s+(\S+)\s*(( ([^:]+))*)( :(.*))?\n"#).unwrap());static CHANGE: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"((change)|(partial))\s+([^ ]*)\s+"#).unwrap());static CHANGELIST_PATHS: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#""(((\\")|[^"])+)""#).unwrap());static CHANGELIST: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"changelist\s+(\S+)\s+([0-9]+)(.*)\s+"#).unwrap());static CHANNEL: LazyLock<Regex> = LazyLock::new(|| Regex::new(r#"channel\s+(\S+)\s+"#).unwrap());static ID: LazyLock<Regex> = LazyLock::new(|| Regex::new(r#"id\s+(\S+)\s+"#).unwrap());static IDENTITIES: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"identities(\s+([0-9]+))?\s+"#).unwrap());static STATE: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"state\s+(\S+)(\s+([0-9]+)?)\s+"#).unwrap());static TAG: LazyLock<Regex> = LazyLock::new(|| Regex::new(r#"^tag\s+(\S+)\s+"#).unwrap());static TAGUP: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"^tagup\s+(\S+)\s+(\S+)\s+([0-9]+)\s+"#).unwrap());
lazy_static! {pub(crate) static ref BASE32: data_encoding::Encoding = {let mut spec = data_encoding::Specification::new();spec.symbols.push_str("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567");spec.translate.from = "abcdefghijklmnopqrstuvwxyz".to_string();spec.translate.to = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".to_string();spec.encoding().unwrap()};}
pub(crate) static BASE32: LazyLock<data_encoding::Encoding> = LazyLock::new(|| {let mut spec = data_encoding::Specification::new();spec.symbols.push_str("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567");spec.translate.from = "abcdefghijklmnopqrstuvwxyz".to_string();spec.translate.to = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".to_string();spec.encoding().unwrap()});