PNG  IHDR* pHYs+ IDATx]n#; cdLb Ǚ[at¤_:uP}>!Usă cag޿ ֵNu`ݼTâabO7uL&y^wFٝA"l[|ŲHLN밪4*sG3|Dv}?+y߉{OuOAt4Jj.u]Gz*҉sP'VQKbA1u\`& Af;HWj hsO;ogTu uj7S3/QzUr&wS`M$X_L7r2;aE+ώ%vikDA:dR+%KzƉo>eOth$z%: :{WwaQ:wz%4foɹE[9<]#ERINƻv溂E%P1i01 |Jvҗ&{b?9g=^wζXn/lK::90KwrюO\!ջ3uzuGv^;騢wq<Iatv09:tt~hEG`v;3@MNZD.1]L:{ծI3`L(÷ba")Y.iljCɄae#I"1 `3*Bdz>j<fU40⨬%O$3cGt]j%Fߠ_twJ;ABU8vP3uEԑwQ V:h%))LfraqX-ۿX]v-\9I gl8tzX ]ecm)-cgʒ#Uw=Wlێn(0hPP/ӨtQ“&J35 $=]r1{tLuǮ*i0_;NƝ8;-vݏr8+U-kruȕYr0RnC]*ެ(M:]gE;{]tg(#ZJ9y>utRDRMdr9㪩̞zֹb<ģ&wzJM"iI( .ꮅX)Qw:9,i좜\Ԛi7&N0:asϓc];=ΗOӣ APqz93 y $)A*kVHZwBƺnWNaby>XMN*45~ղM6Nvm;A=jֲ.~1}(9`KJ/V F9[=`~[;sRuk]rєT!)iQO)Y$V ی ۤmzWz5IM Zb )ˆC`6 rRa}qNmUfDsWuˤV{ Pݝ'=Kֳbg,UҘVz2ﴻnjNgBb{? ߮tcsͻQuxVCIY۠:(V뺕 ٥2;t`@Fo{Z9`;]wMzU~%UA蛚dI vGq\r82iu +St`cR.6U/M9IENDB` REDROOM
PHP 5.6.40
Preview: zipapp.py Size: 7.36 KB
//opt/alt/python311/lib64/python3.11/zipapp.py

import contextlib
import os
import pathlib
import shutil
import stat
import sys
import zipfile

__all__ = ['ZipAppError', 'create_archive', 'get_interpreter']


# The __main__.py used if the users specifies "-m module:fn".
# Note that this will always be written as UTF-8 (module and
# function names can be non-ASCII in Python 3).
# We add a coding cookie even though UTF-8 is the default in Python 3
# because the resulting archive may be intended to be run under Python 2.
MAIN_TEMPLATE = """\
# -*- coding: utf-8 -*-
import {module}
{module}.{fn}()
"""


# The Windows launcher defaults to UTF-8 when parsing shebang lines if the
# file has no BOM. So use UTF-8 on Windows.
# On Unix, use the filesystem encoding.
if sys.platform.startswith('win'):
    shebang_encoding = 'utf-8'
else:
    shebang_encoding = sys.getfilesystemencoding()


class ZipAppError(ValueError):
    pass


@contextlib.contextmanager
def _maybe_open(archive, mode):
    if isinstance(archive, (str, os.PathLike)):
        with open(archive, mode) as f:
            yield f
    else:
        yield archive


def _write_file_prefix(f, interpreter):
    """Write a shebang line."""
    if interpreter:
        shebang = b'#!' + interpreter.encode(shebang_encoding) + b'\n'
        f.write(shebang)


def _copy_archive(archive, new_archive, interpreter=None):
    """Copy an application archive, modifying the shebang line."""
    with _maybe_open(archive, 'rb') as src:
        # Skip the shebang line from the source.
        # Read 2 bytes of the source and check if they are #!.
        first_2 = src.read(2)
        if first_2 == b'#!':
            # Discard the initial 2 bytes and the rest of the shebang line.
            first_2 = b''
            src.readline()

        with _maybe_open(new_archive, 'wb') as dst:
            _write_file_prefix(dst, interpreter)
            # If there was no shebang, "first_2" contains the first 2 bytes
            # of the source file, so write them before copying the rest
            # of the file.
            dst.write(first_2)
            shutil.copyfileobj(src, dst)

    if interpreter and isinstance(new_archive, str):
        os.chmod(new_archive, os.stat(new_archive).st_mode | stat.S_IEXEC)


def create_archive(source, target=None, interpreter=None, main=None,
                   filter=None, compressed=False):
    """Create an application archive from SOURCE.

    The SOURCE can be the name of a directory, or a filename or a file-like
    object referring to an existing archive.

    The content of SOURCE is packed into an application archive in TARGET,
    which can be a filename or a file-like object.  If SOURCE is a directory,
    TARGET can be omitted and will default to the name of SOURCE with .pyz
    appended.

    The created application archive will have a shebang line specifying
    that it should run with INTERPRETER (there will be no shebang line if
    INTERPRETER is None), and a __main__.py which runs MAIN (if MAIN is
    not specified, an existing __main__.py will be used).  It is an error
    to specify MAIN for anything other than a directory source with no
    __main__.py, and it is an error to omit MAIN if the directory has no
    __main__.py.
    """
    # Are we copying an existing archive?
    source_is_file = False
    if hasattr(source, 'read') and hasattr(source, 'readline'):
        source_is_file = True
    else:
        source = pathlib.Path(source)
        if source.is_file():
            source_is_file = True

    if source_is_file:
        _copy_archive(source, target, interpreter)
        return

    # We are creating a new archive from a directory.
    if not source.exists():
        raise ZipAppError("Source does not exist")
    has_main = (source / '__main__.py').is_file()
    if main and has_main:
        raise ZipAppError(
            "Cannot specify entry point if the source has __main__.py")
    if not (main or has_main):
        raise ZipAppError("Archive has no entry point")

    main_py = None
    if main:
        # Check that main has the right format.
        mod, sep, fn = main.partition(':')
        mod_ok = all(part.isidentifier() for part in mod.split('.'))
        fn_ok = all(part.isidentifier() for part in fn.split('.'))
        if not (sep == ':' and mod_ok and fn_ok):
            raise ZipAppError("Invalid entry point: " + main)
        main_py = MAIN_TEMPLATE.format(module=mod, fn=fn)

    if target is None:
        target = source.with_suffix('.pyz')
    elif not hasattr(target, 'write'):
        target = pathlib.Path(target)

    with _maybe_open(target, 'wb') as fd:
        _write_file_prefix(fd, interpreter)
        compression = (zipfile.ZIP_DEFLATED if compressed else
                       zipfile.ZIP_STORED)
        with zipfile.ZipFile(fd, 'w', compression=compression) as z:
            for child in source.rglob('*'):
                arcname = child.relative_to(source)
                if filter is None or filter(arcname):
                    z.write(child, arcname.as_posix())
            if main_py:
                z.writestr('__main__.py', main_py.encode('utf-8'))

    if interpreter and not hasattr(target, 'write'):
        target.chmod(target.stat().st_mode | stat.S_IEXEC)


def get_interpreter(archive):
    with _maybe_open(archive, 'rb') as f:
        if f.read(2) == b'#!':
            return f.readline().strip().decode(shebang_encoding)


def main(args=None):
    """Run the zipapp command line interface.

    The ARGS parameter lets you specify the argument list directly.
    Omitting ARGS (or setting it to None) works as for argparse, using
    sys.argv[1:] as the argument list.
    """
    import argparse

    parser = argparse.ArgumentParser()
    parser.add_argument('--output', '-o', default=None,
            help="The name of the output archive. "
                 "Required if SOURCE is an archive.")
    parser.add_argument('--python', '-p', default=None,
            help="The name of the Python interpreter to use "
                 "(default: no shebang line).")
    parser.add_argument('--main', '-m', default=None,
            help="The main function of the application "
                 "(default: use an existing __main__.py).")
    parser.add_argument('--compress', '-c', action='store_true',
            help="Compress files with the deflate method. "
                 "Files are stored uncompressed by default.")
    parser.add_argument('--info', default=False, action='store_true',
            help="Display the interpreter from the archive.")
    parser.add_argument('source',
            help="Source directory (or existing archive).")

    args = parser.parse_args(args)

    # Handle `python -m zipapp archive.pyz --info`.
    if args.info:
        if not os.path.isfile(args.source):
            raise SystemExit("Can only get info for an archive file")
        interpreter = get_interpreter(args.source)
        print("Interpreter: {}".format(interpreter or "<none>"))
        sys.exit(0)

    if os.path.isfile(args.source):
        if args.output is None or (os.path.exists(args.output) and
                                   os.path.samefile(args.source, args.output)):
            raise SystemExit("In-place editing of archives is not supported")
        if args.main:
            raise SystemExit("Cannot change the main function when copying")

    create_archive(args.source, args.output,
                   interpreter=args.python, main=args.main,
                   compressed=args.compress)


if __name__ == '__main__':
    main()

Directory Contents

Dirs: 32 × Files: 169

Name Size Perms Modified Actions
asyncio DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
ctypes DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
curses DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
dbm DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
distutils DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
email DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
encodings DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
ensurepip DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
html DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
http DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
importlib DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
json DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
lib2to3 DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
logging DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
re DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
sqlite3 DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
tomllib DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
unittest DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
urllib DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
venv DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
wsgiref DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
xml DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
xmlrpc DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
zoneinfo DIR
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
- drwxr-xr-x 2025-04-06 18:15:10
Edit Download
6.38 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
33.41 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
500 B lrw-r--r-- 2024-04-02 08:25:04
Edit Download
97.93 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
60.00 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
11.30 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
19.83 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
20.55 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
31.70 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
3.06 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
11.57 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
24.15 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
33.63 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
12.13 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
5.37 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
14.52 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
10.37 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
36.28 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
5.77 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
3.97 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
19.78 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
54.36 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
26.77 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
129 B lrw-r--r-- 2024-04-02 08:25:04
Edit Download
8.48 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
7.50 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
6.21 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
3.82 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
15.65 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
57.10 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
89.68 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
320 B lrw-r--r-- 2024-04-02 08:25:04
Edit Download
81.36 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
28.23 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
103.81 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
77.72 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
9.94 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
15.35 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
5.86 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
28.00 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
34.98 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
37.51 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
4.86 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
7.31 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
5.85 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
20.82 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
8.53 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
9.43 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
23.51 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
11.49 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
22.48 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
7.54 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
53.58 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
3.86 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
10.36 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
120.53 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
4.22 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
73.32 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
1.04 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
13.61 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
5.52 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
77.24 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
12.97 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
76.98 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
9.15 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
22.42 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
23.14 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
6.77 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
40.12 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
29.51 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
2.82 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
10.11 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
10.20 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
10.71 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
58.95 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
38.60 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
47.43 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
62.68 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
63.61 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
91.66 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
8.77 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
24.06 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
41.30 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
27.69 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
14.84 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
16.61 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
24.01 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
22.36 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
28.67 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
6.17 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
11.13 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
110.02 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
7.65 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
11.23 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
7.11 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
31.41 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
5.31 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
7.64 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
12.85 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
6.20 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
1.98 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
19.21 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
8.36 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
13.18 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
55.19 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
2.44 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
22.45 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
30.44 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
44.37 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
7.27 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
36.46 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
26.94 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
231 B lrw-r--r-- 2024-04-02 08:25:04
Edit Download
232 B lrw-r--r-- 2024-04-02 08:25:04
Edit Download
229 B lrw-r--r-- 2024-04-02 08:25:04
Edit Download
53.03 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
5.36 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
46.59 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
11.51 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
12.61 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
257 B lrw-r--r-- 2024-04-02 08:25:04
Edit Download
86.65 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
18.05 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
10.13 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
29.60 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
11.05 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
103.86 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
22.75 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
31.13 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
19.26 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
1003 B lrw-r--r-- 2024-04-02 08:25:04
Edit Download
56.87 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
13.21 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
2.33 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
25.72 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
28.51 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
39.60 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
17.62 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
879 B lrw-r--r-- 2024-04-02 08:25:04
Edit Download
9.83 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
118.12 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
7.17 KB lrw-r--r-- 2024-04-17 18:53:50
Edit Download
26.95 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
20.62 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
21.31 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
21.01 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
24.56 KB lrwxr-xr-x 2024-04-02 08:25:04
Edit Download
5.84 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
7.36 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
91.46 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
30.17 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
3.31 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
2.61 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
29.49 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
8.56 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
5.55 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
14.31 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
21.51 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
223.83 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
91.99 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
6.04 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
3.05 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
24.58 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
56.44 KB lrw-r--r-- 2024-04-17 18:33:53
Edit Download
57.20 KB lrw-r--r-- 2024-04-17 18:53:00
Edit Download
7.05 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
5.75 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
5.10 KB lrw-r--r-- 2024-04-02 08:25:04
Edit Download
227 B lrw-r--r-- 2024-04-02 08:25:04
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).
© 2026 REDROOM — Secure File Manager. All rights reserved. Built with ❤️ & Red Dark UI