PHP 7.4.33
Preview: nfsdclddb Size: 10.00 KB
/home/godevadmin/public_html/upload_images/home/000~ROOT~000/usr/sbin/nfsdclddb

#!/usr/libexec/platform-python
"""Tool for manipulating the nfsdcld sqlite database
"""

__copyright__ = """
Copyright (C) 2019 Scott Mayhew <[email protected]>

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA  02110-1301, USA.
"""

import argparse
import os
import sqlite3
import sys


class CldDb():
    def __init__(self, path):
        self.con = sqlite3.connect(path)
        self.con.row_factory = sqlite3.Row
        for row in self.con.execute('select value from parameters '
                                    'where key = "version"'):
            self.version = int(row['value'])
        for row in self.con.execute('select * from grace'):
            self.current = int(row['current'])
            self.recovery = int(row['recovery'])

    def __del__(self):
        self.con.close()

    def __str__(self):
        return ('Schema version: {self.version} '
                'current epoch: {self.current} '
                'recovery epoch: {self.recovery}'.format(self=self))

    def _print_clients(self, epoch):
        if epoch:
            for row in self.con.execute('select * from "rec-{:016x}"'
                                        .format(epoch)):
                if self.version >= 4:
                    if row['princhash'] is not None:
                        princhash = row['princhash'].hex()
                    else:
                        princhash = "(null)"
                    print('id = {}, princhash = {}'
                          .format(row['id'].decode(), princhash))
                else:
                    print('id = {}'.format(row['id'].decode()))

    def print_current_clients(self):
        print('Clients in current epoch:')
        self._print_clients(self.current)

    def print_recovery_clients(self):
        if self.recovery:
            print('Clients in recovery epoch:')
            self._print_clients(self.recovery)

    def check_bad_table_names(self):
        bad_names = []
        for row in self.con.execute('select name from sqlite_master '
                                    'where type = "table" '
                                    'and name like "%rec-%" '
                                    'and length(name) < 20'):
            bad_names.append(row['name'])
        return bad_names

    def fix_bad_table_names(self):
        try:
            self.con.execute('begin exclusive transaction')
            bad_names = self.check_bad_table_names()
            for bad_name in bad_names:
                epoch = int(bad_name.split('-')[1], base=16)
                if epoch == self.current or epoch == self.recovery:
                    if epoch == self.current:
                        which = 'current'
                    else:
                        which = 'recovery'
                    print('found invalid table name {} for {} epoch'
                          .format(bad_name, which))
                    self.con.execute('alter table "{}" '
                                     'rename to "rec-{:016x}"'
                                     .format(bad_name, epoch))
                    print('renamed to rec-{:016x}'.format(epoch))
                else:
                    print('found invalid table name {} for unknown epoch {}'
                          .format(bad_name, epoch))
                    self.con.execute('drop table "{}"'.format(bad_name))
                    print('dropped table {}'.format(bad_name))
        except sqlite3.Error:
            self.con.rollback()
        else:
            self.con.commit()

    def has_princ_data(self):
        if self.version < 4:
            return False
        for row in self.con.execute('select count(*) '
                                    'from "rec-{:016x}" '
                                    'where princhash not null'
                                    .format(self.current)):
            count = row[0]
        if self.recovery:
            for row in self.con.execute('select count(*) '
                                        'from "rec-{:016x}" '
                                        'where princhash not null'
                                        .format(self.current)):
                count = count + row[0]
        if count:
            return True
        return False

    def _downgrade_table_v4_to_v3(self, epoch):
        if not self.con.in_transaction:
            raise sqlite3.Error
        try:
            self.con.execute('create table "new_rec-{:016x}" '
                             '(id blob primary key)'.format(epoch))
            self.con.execute('insert into "new_rec-{:016x}" '
                             'select id from "rec-{:016x}"'
                             .format(epoch, epoch))
            self.con.execute('drop table "rec-{:016x}"'.format(epoch))
            self.con.execute('alter table "new_rec-{:016x}" '
                             'rename to "rec-{:016x}"'
                             .format(epoch, epoch))
        except sqlite3.Error:
            raise

    def downgrade_schema_v4_to_v3(self):
        try:
            self.con.execute('begin exclusive transaction')
            for row in self.con.execute('select value from parameters '
                                        'where key = "version"'):
                version = int(row['value'])
            if version != self.version:
                raise sqlite3.Error
            for row in self.con.execute('select * from grace'):
                current = int(row['current'])
                recovery = int(row['recovery'])
            if current != self.current:
                raise sqlite3.Error
            if recovery != self.recovery:
                raise sqlite3.Error
            self._downgrade_table_v4_to_v3(current)
            if recovery:
                self._downgrade_table_v4_to_v3(recovery)
            self.con.execute('update parameters '
                             'set value = "3" '
                             'where key = "version"')
            self.version = 3
        except sqlite3.Error:
            self.con.rollback()
            print('Downgrade failed')
        else:
            self.con.commit()
            print('Downgrade successful')


def nfsdcld_active():
    rc = os.system('ps -C nfsdcld >/dev/null 2>/dev/null')
    if rc == 0:
        return True
    return False


def fix_table_names_command(db, args):
    if nfsdcld_active():
        print('Warning: nfsdcld is running!')
        ans = input('Continue? ')
        if ans.lower() not in ['y', 'yes']:
            print('Operation canceled.')
            return
    bad_names = db.check_bad_table_names()
    if not bad_names:
        print('No invalid table names found.')
        return
    db.fix_bad_table_names()


def downgrade_schema_command(db, args):
    if nfsdcld_active():
        print('Warning: nfsdcld is running!')
        ans = input('Continue? ')
        if ans.lower() not in ['y', 'yes']:
            print('Operation canceled')
            return
    if db.version != 4:
        print('Cannot downgrade database from schema version {}.'
              .format(db.version))
        return
    if args.version != 3:
        print('Cannot downgrade to version {}.'.format(args.version))
        return
    bad_names = db.check_bad_table_names()
    if bad_names:
        print('Invalid table names detected.')
        print('Please run "{} fix-table-names" before downgrading the schema.'
              .format(sys.argv[0]))
        return
    if db.has_princ_data():
        print('Warning: database has principal data, which will be erased.')
        ans = input('Continue? ')
        if ans.lower() not in ['y', 'yes']:
            print('Operation canceled')
            return
    db.downgrade_schema_v4_to_v3()


def print_command(db, args):
    print(str(db))
    if not args.summary:
        bad_names = db.check_bad_table_names()
        if bad_names:
            print('Invalid table names detected.')
            print('Please run "{} fix-table-names".'.format(sys.argv[0]))
            return
        db.print_current_clients()
        db.print_recovery_clients()


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-p', '--path',
                        default='/var/lib/nfs/nfsdcld/main.sqlite',
                        help='path to the database '
                        '(default: /var/lib/nfs/nfsdcld/main.sqlite)')
    subparsers = parser.add_subparsers(help='sub-command help')
    fix_parser = subparsers.add_parser('fix-table-names',
                                       help='fix invalid table names')
    fix_parser.set_defaults(func=fix_table_names_command)
    downgrade_parser = subparsers.add_parser('downgrade-schema',
                                             help='downgrade database schema')
    downgrade_parser.add_argument('-v', '--version', type=int, choices=[3],
                                  default=3,
                                  help='version to downgrade to')
    downgrade_parser.set_defaults(func=downgrade_schema_command)
    print_parser = subparsers.add_parser('print',
                                         help='print database info')
    print_parser.add_argument('-s', '--summary', default=False,
                              action='store_true',
                              help='print summary only')
    print_parser.set_defaults(func=print_command)
    args = parser.parse_args()
    if not os.path.exists(args.path):
        return parser.print_usage()
    clddb = CldDb(args.path)
    return args.func(clddb, args)


if __name__ == '__main__':
    if len(sys.argv) == 1:
        sys.argv.extend(['print', '--summary'])
    main()

Directory Contents

Dirs: 0 × Files: 458

Name Size Perms Modified Actions
12.59 KB lrwxr-xr-x 2021-10-08 13:04:46
Edit Download
3.00 KB lrwxr-xr-x 2018-12-11 07:44:33
Edit Download
24.86 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
148.17 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
62.38 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
36.66 KB lrwxr-xr-x 2023-10-14 22:48:04
Edit Download
40.99 KB lrwxr-xr-x 2024-04-06 11:40:05
Edit Download
4.52 KB lrwxr-xr-x 2025-07-18 23:20:28
Edit Download
2.17 KB lrwxr-xr-x 2017-12-18 12:28:32
Edit Download
64.71 KB lrwxr-xr-x 2020-08-30 17:47:39
Edit Download
109.52 KB lrwxr-xr-x 2024-05-23 08:36:02
Edit Download
28.74 KB lrwxr-xr-x 2023-10-14 17:19:01
Edit Download
32.63 KB lrwxr-xr-x 2022-10-10 10:23:17
Edit Download
67 B lrwxr-xr-x 2022-10-10 10:23:17
Edit Download
45.04 KB lrwxr-xr-x 2025-07-15 09:41:57
Edit Download
151.73 KB lrwxr-xr-x 2025-07-15 09:41:57
Edit Download
4.04 KB lrwxr-xr-x 2025-07-15 09:41:56
Edit Download
122.35 KB lrwxr-xr-x 2025-07-15 09:41:57
Edit Download
130.36 KB lrwxr-xr-x 2025-07-15 09:41:57
Edit Download
21.54 KB lrwxr-xr-x 2023-10-14 18:06:23
Edit Download
16.54 KB lrwxr-x--- 2025-07-15 09:41:57
Edit Download
16.40 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
32.59 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
21.45 KB lrwxr-xr-x 2024-04-06 13:04:35
Edit Download
46.16 KB lrwxr-xr-x 2019-10-18 20:07:58
Edit Download
15.97 KB lr-xr-xr-x 2025-03-11 09:38:37
Edit Download
29.05 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
98.66 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
53.47 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
49.74 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
41.30 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
158.25 KB lrwxr-xr-x 2024-05-23 08:36:02
Edit Download
32.44 KB lrwxr-xr-x 2024-01-10 14:34:46
Edit Download
98.40 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
28.84 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
69.69 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
45.11 KB lrwxr-xr-x 2023-10-14 22:48:04
Edit Download
61.42 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
375.66 KB lrwxr-xr-x 2024-11-05 07:47:21
Edit Download
41.52 KB lrwxr-xr-x 2023-04-01 08:44:39
Edit Download
65.22 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
20.43 KB lrwxr-xr-x 2023-10-14 17:19:01
Edit Download
11.85 KB lrwxr-xr-x 2022-10-08 11:08:06
Edit Download
78.68 KB lrwxr-xr-x 2021-10-09 07:08:37
Edit Download
13.05 KB lrwxr-xr-x 2019-10-12 00:47:15
Edit Download
251 B lrwxr-xr-x 2019-10-12 00:47:14
Edit Download
13.05 KB lrwxr-xr-x 2019-10-12 00:47:15
Edit Download
9.03 KB lrwxr-xr-x 2019-10-12 00:47:15
Edit Download
990 B lrwxr-xr-x 2019-10-12 00:47:14
Edit Download
73.94 KB lrwxr-xr-x 2024-04-06 11:40:05
Edit Download
24.79 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
25.33 KB lrwxr-xr-x 2024-05-23 08:36:03
Edit Download
155.04 KB lrwxr-xr-x 2024-05-23 08:36:02
Edit Download
20.46 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
231.63 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
24.86 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
159.95 KB lrwxr-xr-x 2024-04-08 09:18:53
Edit Download
215.87 KB lrwxr-xr-x 2024-05-23 08:36:02
Edit Download
24.55 KB lr-xr-xr-x 2025-03-11 09:38:44
Edit Download
141.80 KB lrwxr-xr-x 2024-04-06 13:04:35
Edit Download
158.63 KB lr-xr-xr-x 2025-03-11 09:38:44
Edit Download
158.63 KB lr-xr-xr-x 2025-03-11 09:38:44
Edit Download
936 B lrwxr-xr-x 2025-02-20 09:05:34
Edit Download
938 B lrwxr-xr-x 2025-02-20 09:05:34
Edit Download
60.84 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
60.84 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
64.76 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
72.84 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
934 B lrwxr-xr-x 2025-02-20 09:05:34
Edit Download
56.74 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
60.84 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
117.20 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
52.84 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
137.48 KB lrwxr-xr-x 2025-02-25 20:04:29
Edit Download
3.27 KB lrwxr-xr-x 2025-02-25 20:00:42
Edit Download
12.11 KB lrwxr-xr-x 2021-12-15 12:46:10
Edit Download
32.52 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
16.42 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
328.52 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
36.61 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
110.63 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
32.52 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
20.38 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
24.55 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
28.49 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
91.24 KB lrwxr-xr-x 2021-10-09 07:08:37
Edit Download
73.99 KB lrwxr-xr-x 2020-08-30 17:47:39
Edit Download
557.79 KB lrwxr-xr-x 2022-10-08 17:27:36
Edit Download
11.10 KB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
10.52 KB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
1.49 MB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
148.26 KB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
4.83 KB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
23.23 KB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
38.02 KB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
47.56 KB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
26.59 KB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
42.35 KB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
7.14 KB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
5.66 KB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
5.32 KB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
4.42 KB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
82.38 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
20.52 KB lrwxr-xr-x 2025-07-01 15:25:20
Edit Download
17.11 KB lrwxr-xr-x 2025-07-18 23:24:10
Edit Download
33.17 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
130.92 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
16.47 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
12.37 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
6.92 KB lrwxr-xr-x 2025-03-11 09:51:09
Edit Download
7.84 KB lrwxr-xr-x 2022-04-18 17:09:02
Edit Download
10.48 KB lrwxr-xr-x 2024-07-02 21:04:19
Edit Download
53.47 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
41.40 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
328.52 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
328.52 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
328.52 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
98.74 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
1.92 KB lrwxr-xr-x 2023-10-15 05:10:59
Edit Download
16.38 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
49.60 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
70.39 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
38.14 KB lrwxr-xr-x 2020-11-06 14:24:16
Edit Download
189.71 KB lrwxr-xr-x 2022-09-13 10:15:05
Edit Download
29.27 KB lrwxr-xr-x 2024-07-02 21:04:21
Edit Download
11.85 KB lrwxr-xr-x 2022-10-08 11:08:06
Edit Download
121.41 KB lrwxr-xr-x 2024-05-23 08:36:02
Edit Download
12.38 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
12.34 KB lrwxr-xr-x 2024-01-10 14:34:46
Edit Download
7.84 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
12.27 KB lrwxr-xr-x 2024-01-10 14:34:46
Edit Download
11.88 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
95.34 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
91.09 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
61.48 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
99.37 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
61.48 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
57.26 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
57.25 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
1.16 MB lrwxr-xr-x 2025-06-04 10:39:48
Edit Download
2.68 KB lrwxr-xr-x 2025-06-04 10:39:45
Edit Download
1.44 MB lrwxr-xr-x 2025-06-04 10:39:48
Edit Download
1.14 MB lrwxr-xr-x 2025-06-04 10:39:48
Edit Download
8.68 KB lrwxr-xr-x 2025-06-04 10:39:45
Edit Download
242.26 KB lrwxr-xr-x 2025-06-04 10:39:48
Edit Download
1.16 MB lrwxr-xr-x 2025-06-04 10:39:48
Edit Download
3.99 KB lrwxr-xr-x 2025-06-04 10:39:45
Edit Download
279.16 KB lrwxr-xr-x 2025-06-04 10:39:48
Edit Download
16.34 KB lrwxr-xr-x 2025-06-04 10:39:48
Edit Download
3.45 KB lrwxr-xr-x 2025-06-04 10:39:45
Edit Download
3.05 KB lrwxr-xr-x 2025-06-04 10:39:45
Edit Download
3.05 KB lrwxr-xr-x 2025-06-04 10:39:45
Edit Download
1.16 MB lrwxr-xr-x 2025-06-04 10:39:48
Edit Download
8.60 KB lrwxr-xr-x 2025-06-04 10:39:45
Edit Download
260 B lrwxr-xr-x 2024-04-06 13:02:18
Edit Download
24.62 KB lrwxr-xr-x 2025-06-03 02:06:30
Edit Download
132.08 KB lrwxr-xr-x 2022-10-08 08:02:59
Edit Download
218.45 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
1.65 MB lrwxr-xr-x 2024-11-05 02:01:31
Edit Download
17.09 KB lrwxr-xr-x 2019-10-15 21:49:06
Edit Download
131.91 KB lrwxr-xr-x 2021-10-08 19:47:35
Edit Download
44.36 KB lrwxr-xr-x 2025-07-18 23:24:10
Edit Download
985.92 KB lrwxr-xr-x 2025-07-18 23:24:10
Edit Download
65.22 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
33.05 KB lrwxr-xr-x 2025-06-09 20:31:29
Edit Download
80.86 KB lrwxr-xr-x 2020-08-30 17:47:39
Edit Download
2.07 KB lrwxr-xr-x 2022-08-10 13:03:37
Edit Download
24.95 KB lrwxr-xr-x 2023-10-14 17:19:01
Edit Download
117.67 KB lrwxr-xr-x 2024-05-23 08:36:02
Edit Download
5.33 KB lrwxr-xr-x 2022-08-10 13:03:37
Edit Download
1.53 MB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
159.95 KB lrwxr-xr-x 2024-04-08 09:18:53
Edit Download
50.23 KB lrwxr-xr-x 2022-04-18 17:09:26
Edit Download
323 B lrwxr-xr-x 2024-04-06 13:02:18
Edit Download
15.62 KB lrwxr-xr-x 2025-06-25 10:55:05
Edit Download
693.30 KB lrwxr-xr-x 2024-05-23 08:36:03
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
6.89 KB lrwxr-xr-x 2024-04-02 18:37:41
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
21.00 KB lrwxr-xr-x 2020-08-30 17:47:39
Edit Download
408.03 KB lrwxr-xr-x 2020-08-30 07:37:42
Edit Download
137.57 KB lrwxr-xr-x 2020-08-30 07:37:42
Edit Download
129.30 KB lrwxr-xr-x 2020-08-30 07:37:42
Edit Download
125.28 KB lrwxr-xr-x 2020-08-30 07:37:42
Edit Download
2.18 KB lrwxr-xr-x 2020-05-08 14:19:42
Edit Download
129.30 KB lrwxr-xr-x 2020-08-30 07:37:42
Edit Download
9.01 KB lrwxr-xr-x 2019-11-12 14:33:33
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
6.89 KB lrwxr-xr-x 2024-04-02 18:37:41
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
25.00 KB lrwxr-xr-x 2020-08-30 17:47:39
Edit Download
62.28 KB lrwxr-xr-x 2023-10-14 17:57:46
Edit Download
41.29 KB lrwxr-xr-x 2023-10-14 17:57:46
Edit Download
11.85 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
194.98 KB lrwxr-xr-x 2024-09-24 08:36:00
Edit Download
24.52 KB lrwxr-xr-x 2021-10-08 13:50:55
Edit Download
49.05 KB lrwxr-xr-x 2025-04-22 01:55:40
Edit Download
16.41 KB lrwxr-xr-x 2024-09-24 02:24:38
Edit Download
32.99 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
986.02 KB lrwxr-xr-x 2025-06-09 20:31:29
Edit Download
11.88 KB lrwxr-xr-x 2024-09-24 02:24:38
Edit Download
11.88 KB lrwxr-xr-x 2024-09-24 02:24:38
Edit Download
19.88 KB lrwxr-xr-x 2024-09-24 02:24:38
Edit Download
16.27 KB lrwxr-xr-x 2024-09-24 02:24:38
Edit Download
19.87 KB lrwxr-xr-x 2024-09-24 02:24:38
Edit Download
25.33 KB lrwxr-xr-x 2024-05-23 08:36:03
Edit Download
12.28 KB lrwxr-xr-x 2024-07-02 21:04:21
Edit Download
93.03 KB lrwxr-xr-x 2023-04-02 00:29:07
Edit Download
16.41 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
90.59 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
20.35 KB lrwxr-xr-x 2024-09-24 02:24:38
Edit Download
966.20 KB lrwxr-xr-x 2021-10-09 05:10:31
Edit Download
159.95 KB lrwxr-xr-x 2024-04-08 09:18:53
Edit Download
19.88 KB lrwxr-xr-x 2024-09-24 02:24:38
Edit Download
15.88 KB lrwxr-xr-x 2024-09-24 02:24:38
Edit Download
19.88 KB lrwxr-xr-x 2024-09-24 02:24:38
Edit Download
840.86 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
425.19 KB lrwxr-xr-x 2024-09-24 08:36:00
Edit Download
12.37 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
25.40 KB lrwxr-xr-x 2020-08-30 17:47:39
Edit Download
21.03 KB lrwxr-xr-x 2020-08-30 17:47:39
Edit Download
251 B lrwxr-xr-x 2019-10-12 00:47:14
Edit Download
12.68 KB lrwxr-xr-x 2024-09-24 08:36:00
Edit Download
138.45 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
2.23 KB lrwxr-xr-x 2024-09-24 08:36:00
Edit Download
16.47 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
41.26 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
138.45 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
138.45 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
138.45 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
86.55 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
475.98 KB lrwxr-xr-x 2023-10-15 05:11:09
Edit Download
24.43 KB lrwxr-xr-x 2025-07-01 15:25:20
Edit Download
11.86 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
186.83 KB lrwxr-xr-x 2024-04-06 14:17:10
Edit Download
86.47 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
159.95 KB lrwxr-xr-x 2024-04-08 09:18:53
Edit Download
159.95 KB lrwxr-xr-x 2024-04-08 09:18:53
Edit Download
15.94 KB lrwxr-xr-x 2024-04-06 11:32:54
Edit Download
197.24 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
197.24 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
42.22 KB lrwxr-xr-x 2025-06-04 10:53:59
Edit Download
110.92 KB lrwxr-xr-x 2019-12-15 02:52:41
Edit Download
58.30 KB lrwxr-xr-x 2019-12-15 02:52:41
Edit Download
62.83 MB lrwxr-xr-x 2025-03-31 10:25:55
Edit Download
840.86 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
36.77 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
36.63 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
36.63 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
11.85 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
16.98 KB lrwxr-xr-x 2020-08-30 17:47:39
Edit Download
3.41 MB lrwxr-xr-x 2025-03-11 07:33:15
Edit Download
107.23 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
37.48 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
13.03 KB lrwxr-xr-x 2025-06-04 10:54:28
Edit Download
65.87 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
10.00 KB lrwxr-xr-x 2025-06-04 10:53:59
Edit Download
9.02 KB lrwxr-xr-x 2025-06-04 10:53:59
Edit Download
49.78 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
45.36 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
23.36 KB lrwxr-xr-x 2025-06-04 10:53:59
Edit Download
65.80 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
35.52 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
24.41 KB lrwxr-xr-x 2025-01-28 01:24:57
Edit Download
11.87 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
160.68 KB lrwxr-xr-x 2025-06-09 20:31:29
Edit Download
12.29 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
113.57 KB lrwxr-xr-x 2024-05-23 08:36:03
Edit Download
77.63 KB lrwxr-xr-x 2023-04-01 18:36:53
Edit Download
12.40 KB lrwxr-xr-x 2024-04-06 13:04:35
Edit Download
13.05 KB lrwxr-xr-x 2019-10-12 00:47:15
Edit Download
45.20 KB lrwxr-xr-x 2025-07-01 15:25:20
Edit Download
11.87 KB lrwxr-xr-x 2025-07-01 15:25:20
Edit Download
4.07 KB lrwxr-xr-x 2019-10-12 20:09:13
Edit Download
85.60 KB lrwxr-xr-x 2021-10-08 15:43:26
Edit Download
16.39 KB lrwxr-xr-x 2021-10-08 15:43:26
Edit Download
94.50 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
6.24 MB lrwxr-xr-x 2025-05-12 18:42:19
Edit Download
16.70 KB lrwxr-xr-x 2023-10-14 20:31:02
Edit Download
66.13 KB lrwxr-xr-x 2023-10-14 17:19:01
Edit Download
66.13 KB lrwxr-xr-x 2023-10-14 17:19:01
Edit Download
12.38 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
12.71 KB lrwxr-xr-x 2020-08-30 17:47:39
Edit Download
20.57 KB lrwxr-xr-x 2022-02-23 20:13:56
Edit Download
6.05 KB lrwxr-xr-x 2022-04-18 16:44:56
Edit Download
141.97 KB lrwxr-xr-x 2022-04-18 16:45:15
Edit Download
218.45 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
19.23 KB lrwxr-xr-x 2024-10-30 12:42:11
Edit Download
19.13 KB lrwxr-xr-x 2024-10-30 12:42:11
Edit Download
4.64 KB lrwxr-xr-x 2024-10-30 12:41:43
Edit Download
182.06 KB lrwxr-xr-x 2024-10-30 12:42:11
Edit Download
26.82 KB lrwxr-xr-x 2024-10-30 12:42:11
Edit Download
11.16 KB lrwxr-xr-x 2024-10-30 12:42:11
Edit Download
18.81 KB lrwxr-xr-x 2024-10-30 12:42:11
Edit Download
19.07 KB lrwxr-xr-x 2024-10-30 12:42:11
Edit Download
57.27 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
53.10 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
20.43 KB lrwxr-xr-x 2025-07-01 15:25:20
Edit Download
53.13 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
78.67 KB lrwxr-xr-x 2021-10-09 07:08:37
Edit Download
115.75 KB lrwxr-xr-x 2021-10-09 07:08:37
Edit Download
83.16 KB lrwxr-xr-x 2021-10-09 07:08:37
Edit Download
83.16 KB lrwxr-xr-x 2021-10-09 07:08:37
Edit Download
16.54 KB lrwxr-xr-x 2021-10-09 07:08:37
Edit Download
24.55 KB lrwxr-xr-x 2023-10-14 17:19:01
Edit Download
187.38 KB lrwxr-xr-x 2024-05-23 08:36:02
Edit Download
20.55 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
218.45 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
83.24 KB lrwxr-xr-x 2021-10-09 07:08:37
Edit Download
24.38 KB lrwxr-xr-x 2021-10-08 13:50:55
Edit Download
64.91 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
41.56 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
195.74 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
20.53 KB lrwxr-xr-x 2024-07-02 21:04:21
Edit Download
16.41 KB lrwxr-xr-x 2024-07-02 21:04:21
Edit Download
53.46 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
159.95 KB lrwxr-xr-x 2024-04-08 09:18:53
Edit Download
36.53 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
20.45 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
30.51 KB lrwxr-xr-x 2025-07-18 23:24:10
Edit Download
67.63 KB lrwxr-xr-x 2020-08-30 17:47:39
Edit Download
106.55 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
61.73 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
158.92 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
49.91 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
103.29 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
61.55 KB lrwxr-xr-x 2022-10-12 11:00:54
Edit Download
9.41 KB lrwxr-xr-x 2025-06-04 10:53:59
Edit Download
19.38 KB lrwxr-xr-x 2025-06-04 10:54:28
Edit Download
32.64 KB lrwxr-xr-x 2022-10-12 11:00:54
Edit Download
724.73 KB lrwxr-xr-x 2024-11-05 02:34:13
Edit Download
46.94 KB lrwxr-xr-x 2024-05-23 08:36:02
Edit Download
49.31 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
117.27 KB lrwxr-xr-x 2024-05-23 08:36:02
Edit Download
25.33 KB lrwxr-xr-x 2024-05-23 08:36:03
Edit Download
218.45 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
1.49 MB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
48.99 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
94.42 KB lrwxr-xr-x 2022-02-23 20:13:56
Edit Download
20.77 KB lrwxr-xr-x 2022-02-23 20:13:56
Edit Download
16.42 KB lrwxr-xr-x 2022-02-23 20:13:56
Edit Download
65.35 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
12.28 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
12.27 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
11.89 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
11.88 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
11.88 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
11.88 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
7.84 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
11.86 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
12.36 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
29.27 KB lrwxr-xr-x 2024-07-02 21:04:21
Edit Download
16.91 KB lrwxr-xr-x 2025-05-12 17:54:51
Edit Download
3.64 KB lrwxr-xr-x 2022-08-10 13:03:37
Edit Download
20.41 KB lrwxr-xr-x 2024-07-02 21:04:21
Edit Download
16.27 KB lrwxr-xr-x 2024-01-10 14:34:46
Edit Download
12.27 KB lrwxr-xr-x 2025-03-11 12:11:55
Edit Download
20.53 KB lrwxr-xr-x 2024-07-02 21:04:21
Edit Download
91.38 KB lrwxr-xr-x 2021-10-09 07:08:37
Edit Download
16.38 KB lrwxr-xr-x 2024-07-02 21:04:21
Edit Download
118.50 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
21.06 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
218.45 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
11.87 KB lrwxr-xr-x 2025-06-03 02:06:30
Edit Download
43.76 KB lrwxr-xr-x 2020-08-30 17:47:39
Edit Download
78.14 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
907.08 KB lrwxr-xr-x 2024-04-06 14:11:24
Edit Download
733.20 KB lrwxr-xr-x 2024-04-06 14:11:24
Edit Download
32.45 KB lrwxr-xr-x 2024-05-23 09:15:36
Edit Download
32.60 KB lrwxr-xr-x 2024-05-23 09:15:36
Edit Download
191.30 KB lrwxr-xr-x 2024-05-23 08:36:02
Edit Download
869.77 KB lrwxr-xr-x 2025-02-19 20:59:40
Edit Download
73.01 KB lrwxr-xr-x 2025-06-05 19:42:53
Edit Download
61.09 KB lrwxr-xr-x 2025-06-05 19:42:53
Edit Download
838 B lrwxr-xr-x 2018-09-06 18:09:08
Edit Download
45.98 KB lrwxr-xr-x 2021-12-15 12:46:22
Edit Download
25.30 KB lrwxr-xr-x 2025-07-18 23:24:10
Edit Download
49.24 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
20.12 MB lrwxr-xr-x 1990-01-01 12:00:00
Edit Download
16.50 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
20.74 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
49.40 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
16.49 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
28.88 KB lrwxr-xr-x 2023-10-14 20:31:02
Edit Download
415 B lrwxr-xr-x 2025-07-15 09:13:46
Edit Download
1.01 MB lrwxr-xr-x 2024-04-06 11:58:14
Edit Download
32.63 KB lrwxr-xr-x 2024-04-06 11:58:14
Edit Download
309.72 KB lrwxr-xr-x 2024-04-06 12:42:24
Edit Download
218.45 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
16.66 KB lrwxr-xr-x 2022-02-23 20:13:56
Edit Download
33.43 KB lrwxr-xr-x 2019-10-16 17:24:08
Edit Download
163.07 KB lrwxr-xr-x 2024-05-23 08:36:02
Edit Download
20.44 KB lrwxr-xr-x 2023-10-14 17:19:01
Edit Download
20.44 KB lrwxr-xr-x 2023-10-14 17:19:01
Edit Download
20.46 KB lrwxr-xr-x 2025-02-20 09:05:41
Edit Download
110.63 KB lrwxr-xr-x 2025-06-03 02:10:19
Edit Download
3.88 KB lrwxr-xr-x 2024-02-22 12:23:28
Edit Download
6.50 KB lrwxr-xr-x 2024-02-22 12:23:28
Edit Download
424.59 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
197.24 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
197.24 KB lrwxr-xr-x 2025-06-04 10:54:29
Edit Download
57.34 KB lrwxr-xr-x 2025-01-30 15:05:07
Edit Download
36.86 KB lrwxr-xr-x 2025-07-01 15:25:20
Edit Download
36.87 KB lrwx------ 2025-07-01 15:25:20
Edit Download
99.57 KB lrwxr-xr-x 2024-04-06 14:17:10
Edit Download
36.66 KB lrwxr-xr-x 2023-10-14 22:48:04
Edit Download
14.44 KB lrwxr-xr-x 2024-04-06 14:11:23
Edit Download
148.17 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
107.29 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
144.07 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
12.40 KB lrwxr-xr-x 2022-10-08 11:08:06
Edit Download
15.88 KB lrwxr-xr-x 2025-06-03 02:06:30
Edit Download
118.04 KB lrwxr-xr-x 2024-05-23 08:36:02
Edit Download
68.05 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
68.05 KB lrwxr-xr-x 2024-04-06 14:00:13
Edit Download
14.22 KB lrwxr-xr-x 2023-10-14 20:52:05
Edit Download
239.22 KB lrwxr-xr-x 2025-07-01 22:06:39
Edit Download
28.58 KB lrwxr-xr-x 2024-09-24 08:36:00
Edit Download
16.47 KB lrwxr-xr-x 2024-04-06 13:04:35
Edit Download
33.60 KB lrwxr-xr-x 2024-04-08 09:18:53
Edit Download
3.18 MB lrwxr-xr-x 2025-06-27 05:19:19
Edit Download
3.18 MB lrwxr-xr-x 2025-06-27 05:19:19
Edit Download
2.33 KB lrwxr-xr-x 2024-07-25 20:31:52
Edit Download
41.11 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download
1.38 KB lrwxr-xr-x 2023-10-15 05:10:59
Edit Download
695 B lrwxr-xr-x 2023-10-15 05:11:00
Edit Download
434.59 KB lrwxr-xr-x 2023-10-15 05:11:09
Edit Download
760.47 KB lrwxr-xr-x 2023-10-15 05:11:09
Edit Download
12.39 KB lrwxr-xr-x 2023-10-15 05:11:09
Edit Download
800 B lrwxr-xr-x 2023-10-15 05:11:00
Edit Download
53.41 KB lrwxr-xr-x 2023-10-15 05:11:09
Edit Download
422.48 KB lrwxr-xr-x 2023-10-15 05:11:09
Edit Download
1.26 KB lrwxr-xr-x 2023-10-15 05:11:02
Edit Download
188.28 KB lrwxr-xr-x 2023-10-15 05:11:09
Edit Download
454.70 KB lrwxr-xr-x 2023-10-15 05:11:09
Edit Download
410.09 KB lrwxr-xr-x 2023-10-15 05:11:09
Edit Download
782 B lrwxr-xr-x 2023-10-15 05:10:59
Edit Download
1.02 KB lrwxr-xr-x 2023-10-15 05:11:00
Edit Download
685 B lrwxr-xr-x 2023-10-15 05:10:59
Edit Download
93.98 KB lrwxr-xr-x 2023-10-15 05:11:09
Edit Download
715.24 KB lrwxr-xr-x 2023-10-15 05:11:09
Edit Download
16.38 KB lrwxr-xr-x 2023-10-15 05:11:09
Edit Download
45.42 KB lrwxr-xr-x 2023-10-15 05:11:09
Edit Download
16.45 KB lrwxr-xr-x 2021-10-09 07:08:37
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
220.80 KB lrwxr-xr-x 2024-04-02 18:37:43
Edit Download
20.57 KB lrwxr-xr-x 2025-06-09 20:31:29
Edit Download
52.83 KB lrwxr-xr-x 2025-06-09 20:31:29
Edit Download
99.09 KB lrwxr-xr-x 2024-04-06 13:02:53
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).