Skip to main content
Topic: Signature not found (Read 2149 times) previous topic - next topic
0 Members and 4 Guests are viewing this topic.

Signature not found

Hello Artix Linux Community,

I'm hoping for some assistance or insight regarding an issue I'm encountering while trying to run sudo pacman -Syyu on my Artix x86_64 system.

For several days now, pacman -Syyu has consistently failed during the database synchronization step. My verbose curl logs indicate a recurring 404 Not Found error specifically for the repository database signature files (e.g., system.db.sig, world.db.sig).

Here's a summary of my observations and troubleshooting steps thus far:

    The Problem: pacman -Syyu fails with:

        curl: (22) The requested URL returned error: 404

        error: could not rename /var/lib/pacman/sync/.../system.db.sig.part to .../system.db.sig (No such file or directory)

        This occurs for system.db.sig, world.db.sig, and likely other repository .sig files.

    Mirrors Tested (all showing the same .db.sig 404):

        https://mirror.clarkson.edu/artix-linux/repos/$repo/os/$arch

        https://mirrors.dotsrc.org/artix-linux/repos/$repo/os/$arch

        https://mirrors.aliyun.com/artix-linux/repos/$repo/os/$arch

        (Confirmed correct /repos/ path for these in mirrorlist).

    Key Debugging Findings:

        The main database files (.db) themselves download successfully (e.g., system.db, world.db return HTTP/2 200 responses and complete transfer). It's only the associated .sig files that return 404.

        My general internet connectivity is robust (ping to 1.1.1.1 and dig google.com work).

        DNS resolution for all tested mirrors is working correctly.

        SSL certificate verification for connections to mirrors is successful.

        wget -v tests for individual .db files and some .pkg.tar.zst.sig files were successful.

        XferCommand = /usr/bin/curl -L -C - -f -o %o %u --retry 5 --retry-max-time 30 --connect-timeout 10 -v has been set in pacman.conf to capture verbose output, which consistently shows the 404 for .db.sig files.

        Attempted IPv6 disablement via sysctl (as sometimes IPv6 can cause issues), but the problem (404 for sig files) persists regardless.

    My Question to the Community:

        Has anyone else encountered this consistent 404 error for the *.db.sig files on these or other Artix mirrors recently?

        Are these specific .db.sig files expected to be present at these mirror locations, or could there be an issue with how they are being synced from the upstream source?

        Could you please advise if there's a specific mirror known to be fully synchronized and complete with all necessary signature files for a pacman -Syyu?

I'm happy to provide full pacman_debug_*.log files if that would be helpful for further investigation.

Thank you very much for your time, your hard work on Artix, and any assistance you can offer!




Code: [Select]
 The requested URL returned error: 404
<
{ [5 bytes data]
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Connection #0 to host mirrors.aliyun.com left intact
curl: (22) The requested URL returned error: 404
error: could not rename /var/lib/pacman/sync/download-fCAJlh/system.db.sig.part to /var/lib/pacman/sync/download-fCAJlh/system.db.sig (No such file or directory)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Host mirrors.aliyun.com:443 was resolved.
* IPv6: (none)

Code: [Select]
< timing-allow-origin: *
< eagleid: a3b558e317521563948407123e
* The requested URL returned error: 404
<
{ [5 bytes data]
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Connection #0 to host mirrors.aliyun.com left intact
curl: (22) The requested URL returned error: 404
error: could not rename /var/lib/pacman/sync/download-fCAJlh/world.db.sig.part to /var/lib/pacman/sync/download-fCAJlh/world.db.sig (No such file or directory)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Host mirrors.aliyun.com:443 was resolved.

Code: [Select]
< x-swift-cachetime: 0
< timing-allow-origin: *
< eagleid: a3b558cc17521564043097286e
* The requested URL returned error: 404
<
{ [5 bytes data]
  0     0    0     0    0     0      0      0 --:--:--  0:00:05 --:--:--     0
* Connection #0 to host mirrors.aliyun.com left intact
curl: (22) The requested URL returned error: 404
error: could not rename /var/lib/pacman/sync/download-fCAJlh/galaxy.db.sig.part to /var/lib/pacman/sync/download-fCAJlh/galaxy.db.sig (No such file or directory)

Re: Signature not found

Reply #1
Are these specific .db.sig files expected to be present at these mirror locations,
No. Something else is at play. Packages have .sig files, the database files don't.

Post your /etc/pacman.conf and also add --debug to your -Syu command and post that.

Re: Signature not found

Reply #2
Thank you for your response!  I have amended the mirrorlist several times to try out and also the conf(amended the xfer several times depending on what pops up).The /etc/pacman.conf and debug details as follows:

Code: [Select]
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives

#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
#GPGDir      = /etc/pacman.d/gnupg/
#HookDir     = /etc/pacman.d/hooks/
HoldPkg     = pacman glibc
XferCommand = /usr/bin/curl -4 -L -C - -f -o %o %u --connect-timeout 20 --retry 3 --retry-max-time 60
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u --retry 5 --retry-max-time 30 --connect-timeout 10 -v
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg   =
#IgnoreGroup =

#NoUpgrade   =
#NoExtract   =

# Misc options
#UseSyslog
Color
#NoProgressBar
CheckSpace
VerbosePkgLists
ParallelDownloads = 7
ILoveCandy

# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel    = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required

# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Artix Linux
# packagers with `pacman-key --populate artix`.

#
# REPOSITORIES
#   - can be defined here or included from another file
#   - pacman will search repositories in the order defined here
#   - local/custom mirrors can be added here or in separate files
#   - repositories listed first will take precedence when packages
#     have identical names, regardless of version number
#   - URLs will have $repo replaced by the name of the current repo
#   - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
#       [repo-name]
#       Server = ServerName
#       Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#

# The gremlins repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.

#[system-gremlins]
#Include = /etc/pacman.d/mirrorlist

[system]
Include = /etc/pacman.d/mirrorlist

#[world-gremlins]
#Include = /etc/pacman.d/mirrorlist

[world]
Include = /etc/pacman.d/mirrorlist

#[galaxy-gremlins]
#Include = /etc/pacman.d/mirrorlist

[galaxy]
Include = /etc/pacman.d/mirrorlist

# If you want to run 32 bit applications on your x86_64 system,
# enable the lib32 repositories as required here.

#[lib32-gremlins]
#Include = /etc/pacman.d/mirrorlist

#[lib32]
#Include = /etc/pacman.d/mirrorlist

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs


Code: [Select]
debug: pacman v7.0.0 - libalpm v15.0.0
debug: config: new section 'options'
debug: config: HoldPkg: pacman
debug: config: HoldPkg: glibc
debug: config: xfercommand: /usr/bin/curl -4 -L -C - -f -o %o %u --connect-timeout 20 --retry 3 --retry-max-time 60
debug: config: Architecture: auto
debug: config: arch: x86_64
debug: config: verbosepkglists
debug: config: chomp
debug: config: SigLevel: Required
debug: config: SigLevel: DatabaseOptional
debug: config: LocalFileSigLevel: Optional
debug: config: new section 'system'
debug: config file /etc/pacman.conf, line 79: including /etc/pacman.d/mirrorlist
debug: config: new section 'world'
debug: config file /etc/pacman.conf, line 85: including /etc/pacman.d/mirrorlist
debug: config: new section 'galaxy'
debug: config file /etc/pacman.conf, line 91: including /etc/pacman.d/mirrorlist
debug: config: finished parsing /etc/pacman.conf
debug: setup_libalpm called
debug: option 'logfile' = /var/log/pacman.log
debug: option 'gpgdir' = /etc/pacman.d/gnupg/
debug: option 'hookdir' = /etc/pacman.d/hooks/
debug: option 'cachedir' = /var/cache/pacman/pkg/
debug: registering sync database 'system'
debug: database path for tree system set to /var/lib/pacman/sync/system.db
debug: "/var/lib/pacman/sync/system.db.sig" is not readable: No such file or directory
debug: sig path /var/lib/pacman/sync/system.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 599) : missing PGP signature
debug: missing optional signature
debug: setting usage of 15 for system repository
debug: adding new server URL to database 'system': https://mirrors.aliyun.com/artixlinux/system/os/x86_64
debug: adding new server URL to database 'system': https://mirror.freedif.org/Artix/system/os/x86_64
debug: adding new server URL to database 'system': https://mirror.albony.in/artix/system/os/x86_64
debug: adding new server URL to database 'system': https://mirror.funami.tech/artix/system/os/x86_64
debug: adding new server URL to database 'system': https://mirror.nju.edu.cn/artixlinux/system/os/x86_64
debug: adding new server URL to database 'system': http://mirrors.redcorelinux.org/artixlinux/system/os/x86_64
debug: adding new server URL to database 'system': https://artix.kurdy.org/system/os/x86_64
debug: adding new server URL to database 'system': https://ftp.crifo.org/artix/repos/system/os/x86_64
debug: adding new server URL to database 'system': https://mirror.group.one/artix/system/os/x86_64
debug: adding new server URL to database 'system': https://ftp.crifo.org/artix/repos/system/os/x86_64
debug: registering sync database 'world'
debug: database path for tree world set to /var/lib/pacman/sync/world.db
debug: "/var/lib/pacman/sync/world.db.sig" is not readable: No such file or directory
debug: sig path /var/lib/pacman/sync/world.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 599) : missing PGP signature
debug: missing optional signature
debug: setting usage of 15 for world repository
debug: adding new server URL to database 'world': https://mirrors.aliyun.com/artixlinux/world/os/x86_64
debug: adding new server URL to database 'world': https://mirror.freedif.org/Artix/world/os/x86_64
debug: adding new server URL to database 'world': https://mirror.albony.in/artix/world/os/x86_64
debug: adding new server URL to database 'world': https://mirror.funami.tech/artix/world/os/x86_64
debug: adding new server URL to database 'world': https://mirror.nju.edu.cn/artixlinux/world/os/x86_64
debug: adding new server URL to database 'world': http://mirrors.redcorelinux.org/artixlinux/world/os/x86_64
debug: adding new server URL to database 'world': https://artix.kurdy.org/world/os/x86_64
debug: adding new server URL to database 'world': https://ftp.crifo.org/artix/repos/world/os/x86_64
debug: adding new server URL to database 'world': https://mirror.group.one/artix/world/os/x86_64
debug: adding new server URL to database 'world': https://ftp.crifo.org/artix/repos/world/os/x86_64
debug: registering sync database 'galaxy'
debug: database path for tree galaxy set to /var/lib/pacman/sync/galaxy.db
debug: "/var/lib/pacman/sync/galaxy.db.sig" is not readable: No such file or directory
debug: sig path /var/lib/pacman/sync/galaxy.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 599) : missing PGP signature
debug: missing optional signature
debug: setting usage of 15 for galaxy repository
debug: adding new server URL to database 'galaxy': https://mirrors.aliyun.com/artixlinux/galaxy/os/x86_64
debug: adding new server URL to database 'galaxy': https://mirror.freedif.org/Artix/galaxy/os/x86_64
debug: adding new server URL to database 'galaxy': https://mirror.albony.in/artix/galaxy/os/x86_64
debug: adding new server URL to database 'galaxy': https://mirror.funami.tech/artix/galaxy/os/x86_64
debug: adding new server URL to database 'galaxy': https://mirror.nju.edu.cn/artixlinux/galaxy/os/x86_64
debug: adding new server URL to database 'galaxy': http://mirrors.redcorelinux.org/artixlinux/galaxy/os/x86_64
debug: adding new server URL to database 'galaxy': https://artix.kurdy.org/galaxy/os/x86_64
debug: adding new server URL to database 'galaxy': https://ftp.crifo.org/artix/repos/galaxy/os/x86_64
debug: adding new server URL to database 'galaxy': https://mirror.group.one/artix/galaxy/os/x86_64
debug: adding new server URL to database 'galaxy': https://ftp.crifo.org/artix/repos/galaxy/os/x86_64
debug: option 'sandboxuser' = (null)
:: Synchronizing package databases...
debug: running command: /usr/bin/curl -4 -L -C - -f -o /var/lib/pacman/sync/download-JIRdMJ/system.db.part https://mirrors.aliyun.com/artixlinux/system/os/x86_64/system.db --connect-timeout 20 --retry 3 --retry-max-time 60
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  263k  100  263k    0     0  1971k      0 --:--:-- --:--:-- --:--:-- 1981k
debug: running command: /usr/bin/curl -4 -L -C - -f -o /var/lib/pacman/sync/download-JIRdMJ/system.db.sig.part https://mirrors.aliyun.com/artixlinux/system/os/x86_64/system.db.sig --connect-timeout 20 --retry 3 --retry-max-time 60
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404
error: could not rename /var/lib/pacman/sync/download-JIRdMJ/system.db.sig.part to /var/lib/pacman/sync/download-JIRdMJ/system.db.sig (No such file or directory)
debug: running command: /usr/bin/curl -4 -L -C - -f -o /var/lib/pacman/sync/download-JIRdMJ/world.db.part https://mirrors.aliyun.com/artixlinux/world/os/x86_64/world.db --connect-timeout 20 --retry 3 --retry-max-time 60
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
 42 5334k   42 2270k    0     0  4314k      0  0:00:01 --:--:--  0:00:01 4309k
100 5334k  100 5334k    0     0  4893k      0  0:00:01  0:00:01 --:--:-- 4893k
debug: running command: /usr/bin/curl -4 -L -C - -f -o /var/lib/pacman/sync/download-JIRdMJ/world.db.sig.part https://mirrors.aliyun.com/artixlinux/world/os/x86_64/world.db.sig --connect-timeout 20 --retry 3 --retry-max-time 60
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404
error: could not rename /var/lib/pacman/sync/download-JIRdMJ/world.db.sig.part to /var/lib/pacman/sync/download-JIRdMJ/world.db.sig (No such file or directory)
debug: running command: /usr/bin/curl -4 -L -C - -f -o /var/lib/pacman/sync/download-JIRdMJ/galaxy.db.part https://mirrors.aliyun.com/artixlinux/galaxy/os/x86_64/galaxy.db --connect-timeout 20 --retry 3 --retry-max-time 60
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  901k  100  901k    0     0  3128k      0 --:--:-- --:--:-- --:--:-- 3131k
debug: running command: /usr/bin/curl -4 -L -C - -f -o /var/lib/pacman/sync/download-JIRdMJ/galaxy.db.sig.part https://mirrors.aliyun.com/artixlinux/galaxy/os/x86_64/galaxy.db.sig --connect-timeout 20 --retry 3 --retry-max-time 60
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404
error: could not rename /var/lib/pacman/sync/download-JIRdMJ/galaxy.db.sig.part to /var/lib/pacman/sync/download-JIRdMJ/galaxy.db.sig (No such file or directory)
debug: "/var/lib/pacman/sync/system.db.sig" is not readable: No such file or directory
debug: sig path /var/lib/pacman/sync/system.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 599) : missing PGP signature
debug: missing optional signature
debug: "/var/lib/pacman/sync/world.db.sig" is not readable: No such file or directory
debug: sig path /var/lib/pacman/sync/world.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 599) : missing PGP signature
debug: missing optional signature
debug: "/var/lib/pacman/sync/galaxy.db.sig" is not readable: No such file or directory
debug: sig path /var/lib/pacman/sync/galaxy.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 599) : missing PGP signature
debug: missing optional signature
:: Starting full system upgrade...
debug: checking for package upgrades
debug: loading package cache for repository 'local'
debug: added 864 packages to package cache for db 'local'
debug: searching for replacements for a52dec in system
debug: loading package cache for repository 'system'
debug: opening archive /var/lib/pacman/sync/system.db
debug: added 347 packages to package cache for db 'system'
debug: searching for replacements for a52dec in world
debug: loading package cache for repository 'world'
debug: opening archive /var/lib/pacman/sync/world.db
---parts deleted to meet max char limits set on the forum---

debug: searching for replacements for yay-bin in galaxy
debug: searching for replacements for yt-dlp in system
debug: searching for replacements for yt-dlp in world
debug: searching for replacements for yyjson in system
debug: searching for replacements for yyjson in world
debug: searching for replacements for yyjson in galaxy
debug: searching for replacements for zbar in system
debug: searching for replacements for zbar in world
debug: searching for replacements for zenity in system
debug: searching for replacements for zenity in world
debug: searching for replacements for zeromq in system
debug: searching for replacements for zeromq in world
debug: searching for replacements for zim-git in system
debug: searching for replacements for zim-git in world
debug: searching for replacements for zim-git in galaxy
debug: searching for replacements for zimg in system
debug: searching for replacements for zimg in world
debug: searching for replacements for zix in system
debug: searching for replacements for zix in world
debug: searching for replacements for zlib in system
debug: searching for replacements for zlib-ng in system
debug: searching for replacements for zlib-ng in world
debug: searching for replacements for zramen in system
debug: searching for replacements for zramen in world
debug: searching for replacements for zramen in galaxy
debug: searching for replacements for zsh in system
debug: searching for replacements for zsh in world
debug: searching for replacements for zstd in system
debug: searching for replacements for zvbi in system
debug: searching for replacements for zvbi in world
debug: searching for replacements for zxing-cpp in system
debug: searching for replacements for zxing-cpp in world
debug: unregistering database 'local'
debug: freeing package cache for repository 'local'
debug: unregistering database 'system'
debug: freeing package cache for repository 'system'
debug: unregistering database 'world'
debug: freeing package cache for repository 'world'
debug: unregistering database 'galaxy'
debug: freeing package cache for repository 'galaxy'
 there is nothing to do

Re: Signature not found

Reply #3
I don't think the missing .sig files are your problem entirely.
To be clearer than I was the repo database files can be signed. They just never are that I've seen.
Code: [Select]
SigLevel    = Required DatabaseOptional
Is saying packages must be signed, optional for the databases.

The pacman debug output is first just telling you it couldn't find the optional db.sig.
I just checked I get the same output up to a point. But my update completes.
Code: [Select]
debug: "/var/lib/pacman/sync/world.db.sig" is not readable: No such file or directory
debug: sig path /var/lib/pacman/sync/world.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 599) : missing PGP signature
Them labeling it an 'error' doesn't help. It's not strictly an error if something optional isn't there imho .

What I don't have in my output is any similar to your
Code: [Select]
The requested URL returned error: 404
<
{ [5 bytes data]
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Connection #0 to host mirrors.aliyun.com left intact
curl: (22) The requested URL returned error: 404
error: could not rename /var/lib/pacman/sync/download-fCAJlh/system.db.sig.part to /var/lib/pacman/sync/download-fCAJlh/system.db.sig (No such file or directory)

Could you try commenting out your custom XferCommand = and see what happens.

Also post all of the output , including the command used, using a link to some sort of pastebin or attachment etc.

Edit:
Also
Code: [Select]
ls -al /var/lib/pacman/sync
please.

Re: Signature not found

Reply #4
I understand, thanks for looking into it.

When commented out the xferCommand it just shows time out despite me finding the best ten mirrors using rankmirrors.

When XferCommand = /usr/bin/curl -4 -L -C - -f -o %o %u --connect-timeout 20 --retry 3 --retry-max-time 60
is uncommented, curl instead of Pacman's internal downloader is used, it forces IPv4 (-4) to avoid IPv6 issues, enables download resuming (-C -), adds retry logic if the mirror stalls or fails and times out cleanly if the server is too slow.

Results for both attempts are attached here with this post.

As for the package database, it lists as follows:

Code: [Select]
$ ls -al /var/lib/pacman/sync
total 6528
drwxr-xr-x 2 root root    4096 Jul 13 01:49 .
drwxr-xr-x 4 root root    4096 Jul 13 01:49 ..
-rw-r--r-- 1 root root  941980 Jul 12 01:56 galaxy.db
-rw-r--r-- 1 root root  269874 Jul 12 16:36 system.db
-rw-r--r-- 1 root root 5463700 Jul 12 21:50 world.db

Re: Signature not found

Reply #5
I don't know ?

Things that spring to mind that I think I'd try.
Connecting to the internet via another method like via a mobile (which isn't on the the router wifi) and seeing if you have the same issue.
Manually downloading pacman-static and installing it with pacman -U then seeing if the same happens.
Disabling ipv6 entirely if you suspect issues.

If I think of any thing else I'll add it