hercules-team / augeas

A configuration editing tool and API
http://augeas.net/
GNU Lesser General Public License v2.1
486 stars 199 forks source link

Yum lens does not allow specifying multiple excludes #654

Closed thomasmeeus closed 4 years ago

thomasmeeus commented 4 years ago

Hi,

I'm not a very experienced Augeas user. I might be doing something wrong, but I have the feeling there's a bug in the Augeas lens for parsing the yum config file.

What I try to do is set multiple excludes in /etc/yum.conf which is supported by Yum itself (see https://linux.die.net/man/5/yum.conf, section exclude). Expected result is this:

exclude=something something

Can someone tell me if I'm on the right track and if so, advice what the next steps are in fixing this issue? I check the lens code, but unfortunately I have no clue on how it works.

[root@svintvagrantrhel7 ~]# augtool
augtool> set /augeas/load/Yum/lens Yum.lns
augtool> print /files/etc/yum.conf/main/exclude
/files/etc/yum.conf/main/exclude = "Percona-55-*"
augtool> set /files/etc/yum.conf/main/exclude "something something"
augtool> save
error: Failed to execute command
saving failed (run 'errors' for details)
augtool> errors
Error in /etc/sysconfig/anaconda:3.0 (parse_failed)
  Syntax error
  Lens: /usr/share/augeas/lenses/dist/shellvars.aug:194.12-.60:

Error in /etc/yum.conf (put_failed)
  Failed to match

     { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-])[.0-
9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|gpg(
[.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)))?/ }
        | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-]
)[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)
|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
        | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
        | { })*
(     |  { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-])
[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|
gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)))
?/ }
        | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-]
)[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)
|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
        | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
        | { })*
      ({ /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
        { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
        { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(        { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-])
[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|
gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)))
?/ }
          | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z
-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*
|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
          | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
          | { })*
      ({ /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
        { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
        { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(        { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-])
[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|
gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)))
?/ }
          | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z
-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*
|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
          | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
          | { })*
(        { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(          { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-
])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|
)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)
))?/ }
            | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df
-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-
]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
            | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
            | { })*
(          { /exclude/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /exclude/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /exclude/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(          { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-
])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|
)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)
))?/ }
            | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df
-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-
]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
            | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
            | { })*)?
(
          { /exclude/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /exclude/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(          { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-
])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|
)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)
))?/ }
            | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df
-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-
]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
            | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
            | { })*
(          { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(          { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-
])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|
)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)
))?/ }
            | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df
-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-
]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
            | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
            | { })*)?)?
        | { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
        { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
        { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(        { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-])
[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|
gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)))
?/ }
          | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z
-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*
|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
          | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
          | { })*
(        { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(          { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-
])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|
)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)
))?/ }
            | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df
-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-
]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
            | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
            | { })*
(          { /exclude/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /exclude/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /exclude/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(          { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-
])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|
)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)
))?/ }
            | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df
-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-
]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
            | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
            | { })*)?
          | { /exclude/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /exclude/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /exclude/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(          { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-
])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|
)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)
))?/ }
            | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df
-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-
]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
            | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
            | { })*
(          { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(          { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-
])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|
)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)
))?/ }
            | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df
-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-
]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
            | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
            | { })*)?)?
        | { /exclude/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
        { /exclude/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
        { /exclude/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(        { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-])
[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|
gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)))
?/ }
          | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z
-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*
|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
          | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
          | { })*
(        { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(          { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-
])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|
)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)
))?/ }
            | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df
-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-
]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
            | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
            | { })*
(          { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(          { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)))?/ }
            | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
            | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
            | { })*)?
          | { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /baseurl/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(          { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)))?/ }
            | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
            | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
            | { })*
(          { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ }
(
          { /gpgkey/ = /[^\001-\004\t\n\r #,][^\001-\004\t\n\r ,]*[^\001-\004\t\n\r #,]|[^\001-\004\t\n\r #,]/ })*)?
(          { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /((([^\001-\004\t\n\r "#;](([^\001-\004\n\r#;]+)*[^\001-\004\t\n\r "#;])?)))?/ }
            | { /baseur((l[.0-9A-Z_a-z-]|[.0-9A-Z_a-km-z-])[.0-9A-Z_a-z-]*|)|baseu([.0-9A-Z_a-qs-z-][.0-9A-Z_a-z-]*|)|base([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|bas([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|ba([.0-9A-Z_a-rt-z-][.0-9A-Z_a-z-]*|)|exclud((e[.0-9A-Z_a-z-]|[.0-9A-Z_a-df-z-])[.0-9A-Z_a-z-]*|)|exclu([.0-9A-Z_a-ce-z-][.0-9A-Z_a-z-]*|)|excl([.0-9A-Z_a-tv-z-][.0-9A-Z_a-z-]*|)|exc([.0-9A-Z_a-km-z-][.0-9A-Z_a-z-]*|)|ex([.0-9A-Z_abd-z-][.0-9A-Z_a-z-]*|)|gpgke((y[.0-9A-Z_a-z-]|[.0-9A-Z_a-xz-])[.0-9A-Z_a-z-]*|)|gpgk([.0-9A-Z_a-df-z-][.0-9A-Z_a-z-]*|)|gpg([.0-9A-Z_a-jl-z-][.0-9A-Z_a-z-]*|)|gp([.0-9A-Z_a-fh-z-][.0-9A-Z_a-z-]*|)|(g[.0-9A-Z_a-oq-z-]|e[.0-9A-Z_a-wyz-]|b[.0-9A-Z_b-z-]|[A-Zacdfh-z][.0-9A-Z_a-z-])[.0-9A-Z_a-z-]*|g|e|b|[A-Zacdfh-z]/ = /([^\001-\004\n\r"]*[#;]+[^\001-\004\n\r"]*)/ }
            | { /#comment/ = /[^\001-\004\t\n\r ][^\001-\004\n]*[^\001-\004\t\n\r ]|[^\001-\004\t\n\r ]/ }
            | { })*)?)?)
  with tree
    { "cachedir" = "/var/cache/yum/$basearch/$releasever" } { "keepcache" = "0" } { "debuglevel" = "2" } { "logfile" = "/var/log/yum.log" } { "exactarch" = "1" } { "obsoletes" = "1" } { "gpgcheck" = "1" } { "plugins" = "1" } { "installonly_limit" = "3" } {  } { "#comment" = "This is the default, if you make this bigger yum won't see if the metadata" } { "#comment" = "is newer on the remote and so you'll "gain" the bandwidth of not having to" } { "#comment" = "download the new metadata and "pay" for it by yum not having correct" } { "#comment" = "information." } { "#comment" = "It is esp. important, to have correct metadata, for distributions like" } { "#comment" = "Fedora which don't keep old packages around. If you don't like this checking" } { "#comment" = "interupting your command line usage, it's much better to have something" } { "#comment" = "manually check the metadata once an hour (yum-updatesd will do this)." } { "#comment" = "metadata_expire=90m" } {  } { "#comment" = "PUT YOUR REPOS HERE OR IN separate files named file.repo" } { "#comment" = "in /etc/yum.repos.d" } { "exclude" = "something something" }
  Lens: /usr/share/augeas/lenses/dist/yum.aug:43.20-.35:
raphink commented 4 years ago

That syntax works for me. Which version of Augeas are you using? Can you provide your full yum.conf file?

thomasmeeus commented 4 years ago

Oh, that's good to hear! 1.4.x is the latest version in the Redhat repositories. What version do you have? Maybe there's an additional repository hosting more recent rpms? I noticed that epel is referenced in the docs, but I don't see the augeas rpms as being present there.

[root@svintvagrantrhel7 ~]# rpm -qa | grep aug
augeas-1.4.0-9.el7.x86_64
ruby-augeas-0.5.0-1.el7.x86_64
augeas-libs-1.4.0-9.el7.x86_64
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3

#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
exclude=Percona-55-*

I was currently looking for a workaround and it seems that the PHP.lns lens is able to parse it correctly. It's pretty nasty though, so I prefer to use updated packages :)

raphink commented 4 years ago

Parsing multiple excludes was added in release 1.2.0 (released in 2014).

raphink commented 4 years ago

c16ccfd64045cb5f9c8793bc7589fc80fc027064

thomasmeeus commented 4 years ago

Cool, many thanks!