base works on browser and laptop
This commit is contained in:
1 parent
17d3b0ce2c
commit
a4d2b732aa
1177 files changed
+221998
-42
No files matched your search
@@ -0,0 +1,99 @@
|
||||
.\" zipcmp.mdoc -- compare zip archives
|
||||
.\" Copyright (C) 2003-2024 Dieter Baron and Thomas Klausner
|
||||
.\"
|
||||
.\" This file is part of libzip, a library to manipulate ZIP archives.
|
||||
.\" The authors can be contacted at <info@libzip.org>
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in
|
||||
.\" the documentation and/or other materials provided with the
|
||||
.\" distribution.
|
||||
.\" 3. The names of the authors may not be used to endorse or promote
|
||||
.\" products derived from this software without specific prior
|
||||
.\" written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||
.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||
.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd March 15, 2024
|
||||
.Dt ZIPCMP 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm zipcmp
|
||||
.Nd compare contents of zip archives
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl ChipqsTtVv
|
||||
.Ar archive1 archive2
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
compares the zip archives or directories
|
||||
.Ar archive1
|
||||
and
|
||||
.Ar archive2
|
||||
and checks if they contain the same files, comparing their names,
|
||||
uncompressed sizes, and CRCs.
|
||||
File order and compressed size differences are ignored.
|
||||
.Pp
|
||||
Supported options:
|
||||
.Bl -tag -width MMM
|
||||
.It Fl C
|
||||
Check consistency of archives.
|
||||
Results in an error if archive is inconsistent or not valid
|
||||
according to the zip specification.
|
||||
.It Fl h
|
||||
Display a short help message and exit.
|
||||
.It Fl i
|
||||
Compare names ignoring case distinctions.
|
||||
.It Fl p
|
||||
Enable paranoid checks.
|
||||
Compares extra fields, comments, and other meta data.
|
||||
(Automatically disabled if one of the archives is a directory.)
|
||||
These checks are skipped for files where the data differs.
|
||||
.It Fl q
|
||||
Quiet mode.
|
||||
Compare
|
||||
.Fl v .
|
||||
.It Fl s
|
||||
Print a summary of how many files where added and removed.
|
||||
.It Fl T
|
||||
Additionally compare the time stamps of the entries.
|
||||
.It Fl t
|
||||
Test zip files by comparing the contents to their checksums.
|
||||
.It Fl V
|
||||
Display version information and exit.
|
||||
.It Fl v
|
||||
Verbose mode.
|
||||
Print details about differences to stdout.
|
||||
(This is the default.)
|
||||
.El
|
||||
.Sh EXIT STATUS
|
||||
.Nm
|
||||
exits 0 if the two archives contain the same files, 1 if they differ,
|
||||
and >1 if an error occurred.
|
||||
.Sh SEE ALSO
|
||||
.Xr zipmerge 1 ,
|
||||
.Xr ziptool 1 ,
|
||||
.Xr libzip 3
|
||||
.Sh HISTORY
|
||||
.Nm
|
||||
was added in libzip 0.6.
|
||||
.Sh AUTHORS
|
||||
.An -nosplit
|
||||
.An Dieter Baron Aq Mt dillo@nih.at
|
||||
and
|
||||
.An Thomas Klausner Aq Mt wiz@gatalith.at
|
||||
@@ -0,0 +1,105 @@
|
||||
.\" zipmerge.mdoc -- merge zip archives
|
||||
.\" Copyright (C) 2004-2022 Dieter Baron and Thomas Klausner
|
||||
.\"
|
||||
.\" This file is part of libzip, a library to manipulate ZIP archives.
|
||||
.\" The authors can be contacted at <info@libzip.org>
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in
|
||||
.\" the documentation and/or other materials provided with the
|
||||
.\" distribution.
|
||||
.\" 3. The names of the authors may not be used to endorse or promote
|
||||
.\" products derived from this software without specific prior
|
||||
.\" written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||
.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||
.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd November 7, 2023
|
||||
.Dt ZIPMERGE 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm zipmerge
|
||||
.Nd merge zip archives
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl DhIiSsV
|
||||
.Ar target-zip
|
||||
.Ar source-zip Op Ar source-zip ...
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
copies files from the source zip archives
|
||||
.Ar source-zip
|
||||
to the target zip archive
|
||||
.Ar target-zip .
|
||||
By default, files in the source zip archives overwrite
|
||||
existing files of the same name in the target zip archive.
|
||||
By default, compressed files in the source archive are
|
||||
copied directly without recompression, uncompressed files
|
||||
are compressed using the default compression algorithm.
|
||||
.Pp
|
||||
Supported options:
|
||||
.Bl -tag -width MMM
|
||||
.It Fl D
|
||||
Ignore directory components in file name comparisons.
|
||||
This option is slow for archives with many files.
|
||||
.It Fl h
|
||||
Display a short help message and exit.
|
||||
.It Fl I
|
||||
Ignore case in file name comparisons
|
||||
This option is slow for archives with many files.
|
||||
.It Fl i
|
||||
Ask before overwriting files.
|
||||
See also
|
||||
.Fl s .
|
||||
.It Fl k
|
||||
Do not compress files that were uncompressed in
|
||||
.Ar source-zip ,
|
||||
otherwise they are compressed with the default compression method.
|
||||
.It Fl S
|
||||
Do not overwrite files that have the same name, size, and
|
||||
CRC32 in both the source and target archives.
|
||||
.It Fl s
|
||||
When
|
||||
.Fl i
|
||||
is given, do not ask before overwriting files that have the same name, size,
|
||||
and CRC32.
|
||||
.It Fl V
|
||||
Display version information and exit.
|
||||
.El
|
||||
.Sh EXIT STATUS
|
||||
.Nm
|
||||
exits 0 on success and >1 if an error occurred.
|
||||
.Sh SEE ALSO
|
||||
.Xr zipcmp 1 ,
|
||||
.Xr ziptool 1 ,
|
||||
.Xr libzip 3
|
||||
.Sh HISTORY
|
||||
.Nm
|
||||
was added in libzip 0.6.
|
||||
.Sh AUTHORS
|
||||
.An -nosplit
|
||||
.An Dieter Baron Aq Mt dillo@nih.at
|
||||
and
|
||||
.An Thomas Klausner Aq Mt wiz@gatalith.at
|
||||
.Sh CAVEATS
|
||||
.Nm
|
||||
uses one open file descriptor per zip archive.
|
||||
If you need to merge a lot of zip archives, check your shell's
|
||||
file descriptor ulimit and either increase it or run
|
||||
.Nm
|
||||
multiple times with e.g. 1000 source zip archives each time.
|
||||
@@ -0,0 +1,364 @@
|
||||
.\" ziptool.mdoc -- modify zip archives in multiple ways
|
||||
.\" Copyright (C) 2016-2022 Dieter Baron and Thomas Klausner
|
||||
.\"
|
||||
.\" This file is part of libzip, a library to manipulate ZIP archives.
|
||||
.\" The authors can be contacted at <info@libzip.org>
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in
|
||||
.\" the documentation and/or other materials provided with the
|
||||
.\" distribution.
|
||||
.\" 3. The names of the authors may not be used to endorse or promote
|
||||
.\" products derived from this software without specific prior
|
||||
.\" written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||
.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||
.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd January 23, 2023
|
||||
.Dt ZIPTOOL 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm ziptool
|
||||
.Nd modify zip archives
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl ceghnrst
|
||||
.Op Fl l Ar length
|
||||
.Op Fl o Ar offset
|
||||
.Ar zip-archive
|
||||
.Cm command Op Ar command-args ...
|
||||
.Op Cm command Oo Ar command-args ... Oc ...
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
modifies the zip archive
|
||||
.Ar zip-archive
|
||||
according to the
|
||||
.Ar commands
|
||||
given.
|
||||
.Pp
|
||||
Supported options:
|
||||
.Bl -tag -width MoMoffsetMM
|
||||
.It Fl c
|
||||
Check zip archive consistency when opening it.
|
||||
.It Fl e
|
||||
Error if archive already exists (only useful with
|
||||
.Fl n ) .
|
||||
.It Fl g
|
||||
Guess file name encoding (for
|
||||
.Cm stat
|
||||
command).
|
||||
.It Fl h
|
||||
Display help.
|
||||
.It Fl l Ar length
|
||||
Only read
|
||||
.Ar length
|
||||
bytes of archive.
|
||||
See also
|
||||
.Fl o .
|
||||
.It Fl n
|
||||
Create archive if it doesn't exist.
|
||||
See also
|
||||
.Fl e .
|
||||
.It Fl o Ar offset
|
||||
Start reading input archive from
|
||||
.Ar offset .
|
||||
See also
|
||||
.Fl l .
|
||||
.It Fl r
|
||||
Print raw file name encoding without translation (for
|
||||
.Cm stat
|
||||
command).
|
||||
.It Fl s
|
||||
Follow file name convention strictly (for
|
||||
.Cm stat
|
||||
command).
|
||||
.It Fl t
|
||||
Disregard current file contents, if any.
|
||||
.Em Note :
|
||||
use this with care, it deletes all existing file contents when
|
||||
you modify the archive.
|
||||
.El
|
||||
.Ss Commands
|
||||
For all commands below, the index is zero-based.
|
||||
In other words, the first entry in the zip archive has index 0.
|
||||
.Pp
|
||||
Supported commands and arguments are:
|
||||
.Bl -tag -width 10n
|
||||
.It Cm add Ar name content
|
||||
Add file called
|
||||
.Ar name
|
||||
using the string
|
||||
.Ar content
|
||||
from the command line as data.
|
||||
.It Cm add_dir Ar name
|
||||
Add directory
|
||||
.Ar name .
|
||||
.It Cm add_file Ar name file_to_add offset len
|
||||
Add file
|
||||
.Ar name
|
||||
to archive, using
|
||||
.Ar len
|
||||
bytes from the file
|
||||
.Ar file_to_add
|
||||
as input data, starting at
|
||||
.Ar offset .
|
||||
.It Cm add_from_zip Ar name archivename index offset len
|
||||
Add file called
|
||||
.Ar name
|
||||
to archive using data from another zip archive
|
||||
.Ar archivename
|
||||
using the entry with index
|
||||
.Ar index
|
||||
and reading
|
||||
.Ar len
|
||||
bytes from
|
||||
.Ar offset .
|
||||
.It Cm cat Ar index
|
||||
Output file contents for entry
|
||||
.Ar index
|
||||
to stdout.
|
||||
.It Cm count_extra Ar index flags
|
||||
Print the number of extra fields for archive entry
|
||||
.Ar index
|
||||
using
|
||||
.Ar flags .
|
||||
.It Cm count_extra_by_id Ar index extra_id flags
|
||||
Print number of extra fields of type
|
||||
.Ar extra_id
|
||||
for archive entry
|
||||
.Ar index
|
||||
using
|
||||
.Ar flags .
|
||||
.It Cm delete Ar index
|
||||
Remove entry at
|
||||
.Ar index
|
||||
from zip archive.
|
||||
.It Cm delete_extra Ar index extra_idx flags
|
||||
Remove extra field number
|
||||
.Ar extra_idx
|
||||
from archive entry
|
||||
.Ar index
|
||||
using
|
||||
.Ar flags .
|
||||
.It Cm delete_extra_by_id Ar index extra_id extra_index flags
|
||||
Remove extra field number
|
||||
.Ar extra_index
|
||||
of type
|
||||
.Ar extra_id
|
||||
from archive entry
|
||||
.Ar index
|
||||
using
|
||||
.Ar flags .
|
||||
.It Cm get_archive_comment
|
||||
Print archive comment.
|
||||
.It Cm get_archive_flag Ar flag
|
||||
Print state of archive flag
|
||||
.Ar flag .
|
||||
.It Cm get_extra Ar index extra_index flags
|
||||
Print extra field
|
||||
.Ar extra_index
|
||||
for archive entry
|
||||
.Ar index
|
||||
using
|
||||
.Ar flags .
|
||||
.It Cm get_extra_by_id Ar index extra_id extra_index flags
|
||||
Print extra field
|
||||
.Ar extra_index
|
||||
of type
|
||||
.Ar extra_id
|
||||
for archive entry
|
||||
.Ar index
|
||||
using
|
||||
.Ar flags .
|
||||
.It Cm get_file_comment Ar index
|
||||
Get file comment for archive entry
|
||||
.Ar index .
|
||||
.It Cm get_num_entries Ar flags
|
||||
Print number of entries in archive using
|
||||
.Ar flags .
|
||||
.It Cm name_locate Ar name flags
|
||||
Find entry in archive with the filename
|
||||
.Ar name
|
||||
using
|
||||
.Ar flags
|
||||
and print its index.
|
||||
.It Cm rename Ar index name
|
||||
Rename archive entry
|
||||
.Ar index
|
||||
to
|
||||
.Ar name .
|
||||
.It Cm replace_file_contents Ar index data
|
||||
Replace file contents for archive entry
|
||||
.Ar index
|
||||
with the string
|
||||
.Ar data .
|
||||
.It Cm set_archive_comment Ar comment
|
||||
Set archive comment to
|
||||
.Ar comment .
|
||||
.It Cm get_archive_flag Ar flag Ar value
|
||||
Set archive flag
|
||||
.Ar flag
|
||||
to
|
||||
.Ar value .
|
||||
.It Cm set_extra Ar index extra_id extra_index flags value
|
||||
Set extra field number
|
||||
.Ar extra_index
|
||||
of type
|
||||
.Ar extra_id
|
||||
for archive entry
|
||||
.Ar index
|
||||
using
|
||||
.Ar flags
|
||||
to
|
||||
.Ar value .
|
||||
.It Cm set_file_comment Ar index comment
|
||||
Set file comment for archive entry
|
||||
.Ar index
|
||||
to string
|
||||
.Ar comment .
|
||||
.It Cm set_file_compression Ar index method compression_flags
|
||||
Set file compression method for archive entry
|
||||
.Ar index
|
||||
to
|
||||
.Ar method
|
||||
using
|
||||
.Ar compression_flags .
|
||||
.Em Note :
|
||||
Currently,
|
||||
.Ar compression_flags
|
||||
are ignored.
|
||||
.It Cm set_file_encryption Ar index method password
|
||||
Set file encryption method for archive entry
|
||||
.Ar index
|
||||
to
|
||||
.Ar method
|
||||
with password
|
||||
.Ar password .
|
||||
.It Cm set_file_mtime Ar index timestamp
|
||||
Set file modification time for archive entry
|
||||
.Ar index
|
||||
to UNIX mtime
|
||||
.Ar timestamp .
|
||||
.It Cm set_file_mtime_all Ar timestamp
|
||||
Set file modification time for all archive entries to UNIX mtime
|
||||
.Ar timestamp .
|
||||
.It Cm set_password Ar password
|
||||
Set default password for encryption/decryption to
|
||||
.Ar password .
|
||||
.It Cm stat Ar index
|
||||
Print information about archive entry
|
||||
.Ar index .
|
||||
.El
|
||||
.Ss Flags
|
||||
Some commands take flag arguments.
|
||||
Each character in the argument sets the corresponding flag.
|
||||
Use 0 or the empty string for no flags.
|
||||
.Pp
|
||||
Supported flags are:
|
||||
.Bl -tag -width MMM -compact -offset indent
|
||||
.It Ar 4
|
||||
.Dv ZIP_FL_ENC_CP437
|
||||
.It Ar 8
|
||||
.Dv ZIP_FL_ENC_UTF_8
|
||||
.It Ar C
|
||||
.Dv ZIP_FL_NOCASE
|
||||
.It Ar c
|
||||
.Dv ZIP_FL_CENTRAL
|
||||
.It Ar d
|
||||
.Dv ZIP_FL_NODIR
|
||||
.It Ar l
|
||||
.Dv ZIP_FL_LOCAL
|
||||
.It Ar r
|
||||
.Dv ZIP_FL_ENC_RAW
|
||||
.It Ar s
|
||||
.Dv ZIP_FL_ENC_STRICT
|
||||
.It Ar u
|
||||
.Dv ZIP_FL_UNCHANGED
|
||||
.El
|
||||
.Ss Archive flags
|
||||
.Cm get_archive_flag
|
||||
and
|
||||
.Cm set_archive_flag
|
||||
work on the following flags:
|
||||
.Bl -bullet -compact -offset indent
|
||||
.It
|
||||
.Dv create-or-keep-empty-file-for-archive
|
||||
.It
|
||||
.Dv is-torrentzip
|
||||
.It
|
||||
.Dv rdonly
|
||||
.It
|
||||
.Dv want-torrentzip
|
||||
.El
|
||||
.Ss Compression Methods
|
||||
Some commands take compression method arguments.
|
||||
Supported methods are:
|
||||
.Bl -bullet -compact -offset indent
|
||||
.It
|
||||
.Dv default
|
||||
.It
|
||||
.Dv deflate
|
||||
.It
|
||||
.Dv store
|
||||
.El
|
||||
.Ss Encryption Methods
|
||||
Some commands take encryption method arguments.
|
||||
Supported methods are:
|
||||
.Bl -bullet -compact -offset indent
|
||||
.It
|
||||
.Dv none
|
||||
.It
|
||||
.Dv AES-128
|
||||
.It
|
||||
.Dv AES-192
|
||||
.It
|
||||
.Dv AES-256
|
||||
.El
|
||||
.Sh EXIT STATUS
|
||||
.Ex -std
|
||||
.Sh EXAMPLES
|
||||
Add a file called
|
||||
.Pa teststring.txt
|
||||
to the zip archive
|
||||
.Pa testbuffer.zip
|
||||
with data
|
||||
.Dq This is a test.\en
|
||||
where
|
||||
.Dq \en
|
||||
is replaced with a newline character:
|
||||
.Bd -literal -offset indent
|
||||
ziptool testbuffer.zip add teststring.txt \\"This is a test.\en\\"
|
||||
.Ed
|
||||
.Pp
|
||||
Delete the first file from the zip archive
|
||||
.Pa testfile.zip :
|
||||
.Bd -literal -offset indent
|
||||
ziptool testfile.zip delete 0
|
||||
.Ed
|
||||
.Sh SEE ALSO
|
||||
.Xr zipcmp 1 ,
|
||||
.Xr zipmerge 1 ,
|
||||
.Xr libzip 3
|
||||
.Sh HISTORY
|
||||
.Nm
|
||||
was added in libzip 1.1.
|
||||
.Sh AUTHORS
|
||||
.An -nosplit
|
||||
.An Dieter Baron Aq Mt dillo@nih.at
|
||||
and
|
||||
.An Thomas Klausner Aq Mt wiz@gatalith.at
|
||||
Reference in new issue
Block a user