PHP 7.4.33
Preview: migrate_local_ini_to_php_ini Size: 7.41 KB
//scripts/migrate_local_ini_to_php_ini
#!/usr/local/cpanel/3rdparty/bin/perl

# cpanel - scripts/migrate_local_ini_to_php_ini    Copyright 2022 cPanel, L.L.C.
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

package scripts::migrate_local_ini_to_php_ini;

use strict;
use warnings;
use Try::Tiny;
use Getopt::Param::Tiny      ();
use Cpanel::ProgLang         ();
use Cpanel::FileUtils::Write ();
use Cpanel::LoadFile         ();

my %ignore_directives = (
    "session.bug_compat_42"     => 1,
    "sybct.allow_persistent"    => 1,
    "sybct.max_links"           => 1,
    "sybct.min_client_severity" => 1,
    "session.bug_compat_warn"   => 1,
    "sybct.min_server_severity" => 1,
    "sybct.max_persistent"      => 1,
    "ifx.default_host"          => 1,
    "ifx.default_user"          => 1,
    "ifx.default_password"      => 1,
    "ifx.allow_persistent"      => 1,
    "ifx.max_persistent"        => 1,
    "ifx.max_links"             => 1,
    "ifx.textasvarchar"         => 1,
    "ifx.byteasvarchar"         => 1,
    "ifx.charasvarchar"         => 1,
    "ifx.blobinfile"            => 1,
    "ifx.nullformat"            => 1,
);

exit( run(@ARGV) ? 0 : 1 ) unless caller;

sub run {
    my @args = @_;

    my $prm = Getopt::Param::Tiny->new( { array_ref => \@args, help_coderef => \&_help, known_only => [ 'run', 'verbose' ], no_args_help => 1, validate => \&_validate } );

    my $php       = eval { Cpanel::ProgLang->new( type => 'php' ) };
    my @installed = $php ? @{ $php->get_installed_packages() } : ();
    if ( !$php || !@installed ) {
        print "Nothing to do, no PHP packages installed.\n";
        return 1;
    }

    my $error_count = 0;
    for my $php_pkg (@installed) {
        print "Processing $php_pkg …\n";
        my $ini = $php->get_ini( 'package' => $php_pkg );

        my $localini = $ini->get_system_ini('local.ini');
        my $phpini   = $ini->get_default_system_ini();
        if ( !$localini ) {
            print "\tNo local.ini.\n";
        }
        else {
            my $bad_tries = 0;
            my %bad_directives;

          TRY_INI:
            try {
                _migrate_extension_directives( $localini, $phpini );    # See EA-6768 for why this hack is necessary

                my $valid_directive_info_hr  = $ini->get_valid_directive_info();
                my $local_directives_meta_hr = $ini->get_basic_php_directives_from_file( path => $localini, all => 1 );
                my $local_directives_hr      = {
                    map { $_ !~ m/^\s*;/ && !exists $bad_directives{$_} && !exists $ignore_directives{$_} ? ( $_ => $local_directives_meta_hr->{$_}{value} ) : () }
                      keys %{$local_directives_meta_hr}
                };

                for my $k ( keys %{$local_directives_hr} ) {            # Hack to avoid: The PHP directive “…” is not formatted correctly: “O…”.
                    next if !$valid_directive_info_hr->{$k} || !$valid_directive_info_hr->{$k}{type} || ( $valid_directive_info_hr->{$k}{type} ne 'boolean' && $valid_directive_info_hr->{$k}{type} ne 'integer' );

                    $local_directives_hr->{$k} = 0 if $local_directives_hr->{$k} =~ m/^off$/i;
                    $local_directives_hr->{$k} = 1 if $local_directives_hr->{$k} =~ m/^on$/i;
                }
                if ( keys %{$local_directives_hr} > 0 ) {
                    $ini->set_directives( path => $phpini, directives => $local_directives_hr );
                }

                unlink $localini;                                       # TODO/YAGNI? move it to $localini.migrated_to_php.ini_on_$rfc8601_datetimestamp
                print "\tMigrated $localini to $phpini.\n";
            }
            catch {
                my $err = $_;

                my $try_again = 0;
                for my $excp (
                    $err,
                    ( exists $err->{_metadata}{exceptions} ? @{ $err->{_metadata}{exceptions} } : () )    # internals gross, patches welcome …
                ) {
                    my $invalid_param = _get_invalid_param($excp);
                    if ($invalid_param) {
                        $bad_tries++;
                        if ( $bad_tries < 6 ) {
                            warn "\tIgnoring invalid directive “$invalid_param”\n";
                            $bad_directives{$invalid_param}++;
                            $try_again++;
                        }
                    }
                }
                goto TRY_INI if $try_again;

                $error_count++;
                warn "\tFailed to migrate $localini to $phpini. This will need done manually.\n";
                if ( $prm->param('verbose') ) {
                    my $err_str = ref($err) ? $err->to_string() : $err;
                    $err_str =~ s/^Error #/\t\tError #/mg;
                    print "\tError: $err_str\n";
                }
            }
        }

        print " … done!\n";
    }

    return if $error_count;
    return 1;
}

###############
#### helpers ##
###############

sub _get_invalid_param {
    my ($excp) = @_;

    my $excp_rt = ref($excp) || '';
    if ( $excp_rt eq 'Cpanel::Exception::InvalidParameter' ) {
        return $excp->{_mt_args}[1];    # internals gross, patches welcome …
    }
    return;
}

sub _validate {
    my ($prm) = @_;
    if ( !$prm->param('run') ) {
        warn "You must pass --run to indicate you want the script to make the changes to your system.\n";
        return;
    }
    return 1;
}

sub _help {
    my ($prm) = @_;

    print <<"END_HELP";
Usage: $0 --run

Migrate each installed PHP’s …/etc/php.d/local.ini to …/etc/php.ini.

This is needed because EasyAapache 4 no longer utilizes local.ini file.

Options:
   --help     this screen
   --run      perform the migration
   --verbose  Enable verbose output
END_HELP
    exit( $prm->param('help') ? 0 : 1 );
}

sub _migrate_extension_directives {    # See EA-6768 for why this hack is necessary
    my ( $localini, $phpini ) = @_;

    # 1. grab all extension directives from $localini
    my @localini_cont = @{ Cpanel::LoadFile::loadfileasarrayref($localini) };    # could get undef if the file disappears after the check that then calls this function and here, in that case an unit warning is OK and not worth making what should be a simple slurp any more complicated than our gross file utils are already making it
    return 1 if !@localini_cont;

    $localini_cont[-1] .= "\n" if substr( $localini_cont[-1], -1, 1 ) ne "\n";    # ensure trailing newline on last line

    my @extensions = grep { m/^\s*extension\s*=/ } @localini_cont;

    if (@extensions) {

        # 2. write them to $phpini
        my @phpini_cont = @{ Cpanel::LoadFile::loadfileasarrayref($phpini) };                                           # see comment above about why checking for undef is not really needed here
        Cpanel::FileUtils::Write::overwrite( $phpini, join( "", @extensions, @phpini_cont ), ( stat($phpini) )[2] );    # yes, it takes a string for the content and if we don't pass the current mode it is re-set to a default /facepalm

        # 3. remove them from $localini
        Cpanel::FileUtils::Write::overwrite( $localini, join( "", grep( !m/\s*extension\s*=/, @localini_cont ) ), ( stat($localini) )[2] );    # yes, it takes a string for the content and if we don't pass the current mode it is re-set to a default /facepalm
    }

    return 1;
}

1;

Directory Contents

Dirs: 2 × Files: 454
Name Size Perms Modified Actions
- drwxr-xr-x 2022-07-20 15:46:01
Edit Download
- drwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.69 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.13 KB lrwxr-xr-x 2026-09-17 13:11:17
Edit Download
6.08 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.27 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
92 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.13 KB lrwxr-xr-x 2026-09-17 13:11:17
Edit Download
16.03 KB lrwx------ 2026-04-13 20:58:52
Edit Download
5.04 KB lrwxr-xr-x 2026-09-17 13:11:15
Edit Download
3.05 KB lrwxr-xr-x 2023-09-13 13:11:16
Edit Download
1.81 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.24 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.57 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
15.75 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.56 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
10.88 KB lrwxr-xr-x 2026-07-14 13:34:04
Edit Download
2.58 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.69 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
9.64 KB lrwxr-xr-x 2026-01-13 14:11:12
Edit Download
7.00 KB lrwxr-xr-x 2023-02-16 14:30:52
Edit Download
2.60 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
539 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.52 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.41 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.87 KB lrwxr-xr-x 2023-02-16 14:30:52
Edit Download
1.14 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.25 KB lrwxr-xr-x 2026-07-14 13:34:04
Edit Download
4.91 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.40 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.18 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.22 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.10 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.29 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
856 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
10.60 KB lrwxr-xr-x 2026-08-07 13:11:14
Edit Download
2.65 KB lrwxr-xr-x 2026-09-17 13:11:18
Edit Download
6.68 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
5.49 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
187 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.57 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.02 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
5.56 KB lrwxr-xr-x 2024-12-11 14:11:14
Edit Download
2.45 KB lrwxr-xr-x 2023-06-22 13:11:17
Edit Download
8.28 KB lrwxr-xr-x 2023-02-16 14:30:52
Edit Download
4.56 KB lrwxr-xr-x 2023-02-16 14:30:51
Edit Download
3.59 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
6.05 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
7.66 KB lrwxr-xr-x 2023-02-16 14:30:51
Edit Download
141 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
416 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.11 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
13.11 KB lrwxr-xr-x 2024-03-14 13:11:18
Edit Download
417 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
735 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
932 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
658 B lrw-r--r-- 2022-08-29 20:24:03
Edit Download
1.61 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
6.77 KB lrwxr-xr-x 2026-09-17 13:11:20
Edit Download
2.64 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
773 B lrwxr-xr-x 2025-02-25 14:11:10
Edit Download
2.09 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.44 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.76 KB lrwxr-xr-x 2022-08-29 20:24:03
Edit Download
3.56 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.67 KB lrwxr-xr-x 2026-07-14 13:34:04
Edit Download
20.78 KB lrwxr-xr-x 2026-07-14 13:34:04
Edit Download
1.52 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.86 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
999 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
520 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
520 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
520 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
682 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.07 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.97 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.66 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.66 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
26.12 KB lrwxr-xr-x 2025-03-21 13:11:13
Edit Download
4.33 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.46 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.25 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.34 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
28.31 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.62 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
68.01 KB lrwxr-xr-x 2026-09-17 13:11:17
Edit Download
965 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.80 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
44.79 KB lrwxr-xr-x 2023-09-13 13:11:13
Edit Download
5.65 KB lrwxr-xr-x 2023-02-16 14:30:52
Edit Download
2.81 KB lrwxr-xr-x 2026-06-09 13:11:14
Edit Download
1.23 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
433 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.30 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.87 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
19.29 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
10.85 KB lrwxr-xr-x 2023-02-16 14:30:52
Edit Download
30.60 MB lrwx------ 2026-09-29 23:43:31
Edit Download
11.62 KB lrwx------ 2026-09-24 21:30:25
Edit Download
5.06 KB lrwxr-xr-x 2023-02-16 14:30:51
Edit Download
2.84 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
850 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
6.20 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
508 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.19 KB lrwxr-xr-x 2023-06-22 13:11:18
Edit Download
2.77 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.16 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.44 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.29 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.75 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
7.66 KB lrwxr-xr-x 2025-03-20 13:11:28
Edit Download
984 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
866 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
687 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
616 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
913 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
8.33 MB lrwxr-xr-x 2026-10-01 13:16:04
Edit Download
2.64 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.43 KB lrwxr-xr-x 2023-12-21 14:11:12
Edit Download
2.58 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
417.95 KB lrwx------ 2026-10-01 13:15:49
Edit Download
6.15 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.46 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.10 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
8.83 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.17 MB lrwx------ 2026-09-24 13:11:11
Edit Download
4.82 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.55 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.08 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.13 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.51 KB lrwxr-xr-x 2025-03-27 13:11:11
Edit Download
601 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
13.53 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.32 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
867 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.96 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.56 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
852 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.06 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
5.16 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.92 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
422 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
6.99 KB lrwxr-xr-x 2024-09-05 13:11:11
Edit Download
6.47 KB lrwxr-xr-x 2026-06-09 13:11:15
Edit Download
3.66 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
28.43 KB lrwxr-xr-x 2026-08-18 13:11:15
Edit Download
3.94 KB lrwxr-xr-x 2026-06-02 13:11:19
Edit Download
6.15 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.32 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
572 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1008 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.09 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.22 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
413 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
18.39 KB lrwxr-xr-x 2024-09-05 13:11:12
Edit Download
1.74 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
16.39 KB lrwxr-xr-x 2023-09-13 13:11:14
Edit Download
503 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.70 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.00 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
966 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.34 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.05 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
10.70 KB lrwxr-xr-x 2025-06-11 13:13:55
Edit Download
895 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.20 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
8.31 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.36 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
261 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
5.45 KB lrwx------ 2026-09-30 17:20:41
Edit Download
5.02 KB lrwx------ 2026-09-30 17:20:41
Edit Download
1.74 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
6.26 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
5.70 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.11 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
984 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
14.56 KB lrwxr-xr-x 2026-07-02 13:11:13
Edit Download
1.16 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
22.54 KB lrwxr-xr-x 2026-09-01 13:11:10
Edit Download
1.99 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.19 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.02 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.45 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.82 KB lrwxr-xr-x 2026-06-09 13:11:11
Edit Download
4.11 MB lrwx------ 2026-09-29 23:43:30
Edit Download
8.39 KB lrwxr-xr-x 2023-02-16 14:30:49
Edit Download
891 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.99 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
444 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.76 KB lrwx------ 2026-09-28 19:35:38
Edit Download
19.35 KB lrwxr-xr-x 2026-02-26 14:11:13
Edit Download
4.03 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
575 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
6.56 KB lrwxr-xr-x 2025-12-15 14:11:17
Edit Download
1.82 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.93 KB lrwxr-xr-x 2023-04-13 14:57:52
Edit Download
1.57 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.80 KB lrwxr-xr-x 2023-02-16 14:30:50
Edit Download
1.84 KB lrwxr-xr-x 2025-12-20 14:11:12
Edit Download
3.93 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
7.45 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
602 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.26 KB lrwxr-xr-x 2026-05-20 13:11:09
Edit Download
3.69 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
422 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.25 KB lrwxr-xr-x 2026-09-17 13:11:16
Edit Download
433 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.15 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
853 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
937 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.17 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.24 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
538 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.05 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.86 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
5.21 KB lrwxr-xr-x 2025-03-20 13:11:28
Edit Download
4.69 KB lrwxr-xr-x 2026-07-30 13:11:17
Edit Download
3.99 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
205 B lrw-r--r-- 2022-07-20 15:46:01
Edit Download
21.28 KB lrwxr-xr-x 2026-02-24 14:11:11
Edit Download
1.94 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
6.08 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
16.53 KB lrwxr-xr-x 2023-12-21 14:11:10
Edit Download
2.42 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
10.00 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
53.03 KB lrwxr-xr-x 2026-09-24 13:11:19
Edit Download
407 B lrw-r--r-- 2022-07-20 15:46:01
Edit Download
1.16 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
12.76 KB lrwx------ 2026-09-24 21:30:25
Edit Download
16.33 KB lrwxr-xr-x 2026-06-11 13:11:16
Edit Download
16.33 KB lrwxr-xr-x 2023-06-22 13:11:15
Edit Download
10.65 KB lrwxr-xr-x 2026-06-09 13:11:18
Edit Download
47.06 KB lrwxr-xr-x 2025-02-12 14:11:10
Edit Download
7.41 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.95 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.38 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.33 KB lrwxr-xr-x 2023-02-16 14:30:52
Edit Download
4.07 KB lrwxr-xr-x 2025-03-20 13:11:29
Edit Download
16.16 KB lrwx------ 2026-09-24 21:30:25
Edit Download
3.64 KB lrwxr-xr-x 2025-03-20 13:11:28
Edit Download
15.63 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
6.72 KB lrwxr-xr-x 2024-09-05 13:11:09
Edit Download
4.14 KB lrwxr-xr-x 2024-09-05 13:11:12
Edit Download
1.57 KB lrw-r--r-- 2022-07-20 15:46:01
Edit Download
774 B lrw-r--r-- 2022-07-20 15:46:01
Edit Download
9.37 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.33 KB lrwxr-xr-x 2023-02-16 14:30:52
Edit Download
1.12 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.88 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.11 KB lrwxr-xr-x 2026-06-02 13:11:21
Edit Download
2.72 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.39 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.26 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.98 KB lrwxr-xr-x 2025-03-20 13:11:29
Edit Download
528 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.18 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
687 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
9.73 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
89.91 KB lrwxr-xr-x 2026-06-09 13:11:15
Edit Download
72 B lrw-r--r-- 2026-09-01 13:11:36
Edit Download
2.09 KB lrwxr-xr-x 2024-09-05 13:11:11
Edit Download
5.83 KB lrwxr-xr-x 2026-06-11 13:11:16
Edit Download
2.44 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.32 KB lrwxr-xr-x 2026-07-14 13:34:04
Edit Download
2.73 KB lrwxr-xr-x 2025-06-11 13:13:54
Edit Download
9.59 KB lrwxr-xr-x 2025-12-15 14:11:17
Edit Download
724 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.53 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.08 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
708 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.13 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.29 KB lrwxr-xr-x 2023-02-16 14:30:51
Edit Download
22.36 KB lrwxr-xr-x 2023-02-16 14:30:53
Edit Download
1.41 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
460 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.80 KB lrwxr-xr-x 2023-02-16 14:30:51
Edit Download
5.61 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.26 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
5.67 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
425 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
25.50 KB lrwxr-xr-x 2025-06-11 13:13:54
Edit Download
2.60 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.85 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
509 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
948 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.51 KB lrwxr-xr-x 2026-09-17 13:11:18
Edit Download
1.45 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
5.80 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.01 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.22 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
5.97 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.18 KB lrwxr-xr-x 2023-02-16 14:30:52
Edit Download
11.60 KB lrwxr-xr-x 2023-02-16 14:30:51
Edit Download
28.62 MB lrwx------ 2026-09-29 23:43:30
Edit Download
5.89 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.98 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.03 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.61 KB lrwxr-xr-x 2023-12-21 14:11:11
Edit Download
6.82 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.19 KB lrwxr-xr-x 2023-12-21 14:11:10
Edit Download
422 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
427 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
504 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
426 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
911 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
437 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.47 KB lrwxr-xr-x 2023-02-16 14:30:52
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
437 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
579 B lrwxr-xr-x 2023-06-22 13:11:16
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
437 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
427 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
442 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
437 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
2.40 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
11.04 MB lrwxr-xr-x 2026-09-24 13:11:17
Edit Download
422 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.96 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
49.78 MB lrwx------ 2026-09-29 23:43:31
Edit Download
10.00 KB lrw-r--r-- 2022-07-20 15:46:01
Edit Download
5.07 KB lrwxr-xr-x 2024-03-14 13:11:18
Edit Download
5.76 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
440 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.02 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
512 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.96 KB lrwx------ 2026-09-24 21:30:25
Edit Download
3.34 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
844 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.72 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.40 KB lrwxr-xr-x 2024-06-25 13:11:08
Edit Download
3.58 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
16.76 KB lrwxr-xr-x 2025-08-06 13:11:18
Edit Download
474 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
9.59 KB lrwxr-xr-x 2025-12-15 14:11:17
Edit Download
6.04 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
10.47 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
9.39 KB lrwxr-xr-x 2025-06-11 13:13:54
Edit Download
12.60 KB lrwxr-xr-x 2025-12-15 14:11:17
Edit Download
16.33 KB lrwxr-xr-x 2026-06-11 13:11:16
Edit Download
1.30 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.92 KB lrwx------ 2026-09-24 21:30:25
Edit Download
1.75 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.67 KB lrwxr-xr-x 2026-06-09 13:11:19
Edit Download
12.97 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.05 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
5.78 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
15.13 KB lrwxr-xr-x 2025-06-11 13:13:56
Edit Download
16.17 KB lrwxr-xr-x 2026-09-24 13:11:18
Edit Download
5.88 KB lrwxr-xr-x 2024-09-05 13:11:12
Edit Download
3.74 KB lrwxr-xr-x 2023-02-16 14:30:51
Edit Download
5.85 KB lrwxr-xr-x 2023-02-16 14:30:52
Edit Download
2.27 KB lrwxr-xr-x 2023-02-16 14:30:51
Edit Download
14.38 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.84 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
18.08 KB lrwxr-xr-x 2025-12-15 14:11:16
Edit Download
4.78 KB lrwxr-xr-x 2023-06-22 13:11:13
Edit Download
3.82 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.20 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.92 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.77 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.14 KB lrwxr-xr-x 2023-02-16 14:30:52
Edit Download
1.36 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
645 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.07 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
10.16 MB lrwx------ 2026-09-24 13:11:19
Edit Download
4.76 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.34 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.08 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
312 B lrw-r--r-- 2022-07-20 15:46:01
Edit Download
7.95 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
667 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.20 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
562 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.84 KB lrwxr-xr-x 2023-02-16 14:30:52
Edit Download
2.62 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.60 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
863 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
18.46 KB lrwxr-xr-x 2026-09-11 13:11:12
Edit Download
7.10 KB lrwxr-xr-x 2023-06-22 13:11:16
Edit Download
43.61 KB lrwxr-xr-x 2026-09-24 13:11:19
Edit Download
2.70 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
962.24 KB lrwxr-xr-x 2026-09-29 23:43:30
Edit Download
5.07 KB lrwxr-xr-x 2024-03-14 13:11:18
Edit Download
605 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.66 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
5.18 KB lrwxr-xr-x 2023-02-16 14:30:52
Edit Download
2.03 MB lrwxr-xr-x 2026-09-29 23:43:31
Edit Download
1.95 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.81 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.49 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.47 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
774 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
480 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
430 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.45 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.21 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.78 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
957 B lrwxr-xr-x 2023-09-13 13:11:16
Edit Download
5.25 KB lrwxr-xr-x 2025-06-11 13:13:56
Edit Download
1002 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
4.56 KB lrwxr-xr-x 2023-02-16 14:30:51
Edit Download
8.34 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.07 KB lrwxr-xr-x 2025-06-11 13:13:56
Edit Download
487 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.14 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
10.73 KB lrwxr-xr-x 2023-02-16 14:30:51
Edit Download
691 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
801 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.22 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.73 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
5.74 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
5.01 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.21 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
757 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.96 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
7.34 KB lrwxr-xr-x 2023-02-16 14:30:51
Edit Download
7.82 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
725 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
2.33 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.13 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
30.60 MB lrwx------ 2026-09-29 23:43:31
Edit Download
88 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
3.13 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
16.23 KB lrwxr-xr-x 2023-12-21 14:11:10
Edit Download
2.40 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
1.80 KB lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
800 B lrwxr-xr-x 2022-07-20 15:46:01
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).