__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
# Copyright (C) 2009-2012, Benjamin Drung <[email protected]>
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

"""provides information about Ubuntu's and Debian's distributions"""

import csv
import datetime
import os
import typing


def convert_date(string: str) -> datetime.date:
    """Convert a date string in ISO 8601 into a datetime object."""
    parts = [int(x) for x in string.split("-")]
    if len(parts) == 3:
        (year, month, day) = parts
        return datetime.date(year, month, day)
    if len(parts) == 2:
        (year, month) = parts
        if month == 12:
            return datetime.date(year, month, 31)
        return datetime.date(year, month + 1, 1) - datetime.timedelta(1)
    raise ValueError("Date not in ISO 8601 format.")


def _get_data_dir() -> str:
    """Get the data directory based on the module location."""
    return "/usr/share/distro-info"


class DistroDataOutdated(Exception):
    """Distribution data outdated."""

    def __init__(self) -> None:
        super().__init__(
            "Distribution data outdated. Please check for an update for distro-info-data. "
            "See /usr/share/doc/distro-info-data/README.Debian for details."
        )


# pylint: disable-next=too-few-public-methods,too-many-instance-attributes
class DistroRelease:
    """Represents a distributions release"""

    # pylint: disable-next=too-many-arguments,too-many-positional-arguments
    def __init__(
        self,
        version: str,
        codename: str,
        series: str,
        created: datetime.date,
        release: typing.Optional[datetime.date] = None,
        eol: typing.Optional[datetime.date] = None,
        eol_esm: typing.Optional[datetime.date] = None,
        eol_lts: typing.Optional[datetime.date] = None,
        eol_elts: typing.Optional[datetime.date] = None,
        eol_server: typing.Optional[datetime.date] = None,
    ) -> None:
        self.version = version
        self.codename = codename
        self.series = series
        self.created = created
        self.release = release
        self.eol = eol
        self.eol_lts = eol_lts
        self.eol_elts = eol_elts
        self.eol_esm = eol_esm
        self.eol_server = eol_server

    def is_supported(self, date: datetime.date) -> bool:
        """Check whether this release is supported on the given date."""
        return date >= self.created and (
            self.eol is None
            or date <= self.eol
            or (self.eol_server is not None and date <= self.eol_server)
        )


_ObjectResult = typing.Literal["object"]
_NonObjectResult = typing.Literal["codename", "fullname", "release"]
_AnyResult = typing.Union[_ObjectResult, _NonObjectResult]


def _get_date(row: dict[str, str], column: str) -> typing.Optional[datetime.date]:
    date_string = row.get(column)
    if not date_string:
        return None
    return convert_date(date_string)


class DistroInfo:
    """Base class for distribution information.
    Use DebianDistroInfo or UbuntuDistroInfo instead of using this directly.
    """

    def __init__(self, distro: str) -> None:
        self._distro = distro
        filename = os.path.join(_get_data_dir(), distro.lower() + ".csv")
        with open(filename, encoding="utf-8") as csvfile:
            csv_reader = csv.DictReader(csvfile)
            self._releases = []
            for row in csv_reader:
                release = DistroRelease(
                    row["version"],
                    row["codename"],
                    row["series"],
                    convert_date(row["created"]),
                    _get_date(row, "release"),
                    _get_date(row, "eol"),
                    _get_date(row, "eol-esm"),
                    _get_date(row, "eol-lts"),
                    _get_date(row, "eol-elts"),
                    _get_date(row, "eol-server"),
                )
                self._releases.append(release)
        source_date_epoch = os.environ.get("SOURCE_DATE_EPOCH")
        if source_date_epoch is not None:
            self._date = datetime.date.fromtimestamp(int(source_date_epoch))
        else:
            self._date = datetime.date.today()

    @property
    def all(self) -> list[str]:
        """List codenames of all known distributions."""
        return [x.series for x in self._releases]

    @typing.overload
    def get_all(self, result: _ObjectResult) -> list[DistroRelease]: ...

    @typing.overload
    def get_all(self, result: _NonObjectResult = "codename") -> list[str]: ...

    def get_all(
        self, result: _AnyResult = "codename"
    ) -> typing.Union[list[DistroRelease], list[str]]:
        """List all known distributions."""
        return self._format_list(result, self._releases)

    def _avail(self, date: datetime.date) -> list[DistroRelease]:
        """Return all distributions that were available on the given date."""
        return [x for x in self._releases if date >= x.created]

    def codename(
        self,
        release: str,
        date: typing.Optional[datetime.date] = None,
        default: typing.Optional[str] = None,
    ) -> typing.Union[DistroRelease, str, None]:
        """Map codename aliases to the codename they describe."""
        # pylint: disable=no-self-use,unused-argument
        return release

    def version(self, name: str, default: typing.Optional[str] = None) -> typing.Optional[str]:
        """Map codename or series to version"""
        for release in self._releases:
            if name in (release.codename, release.series):
                return release.version
        return default

    @typing.overload
    def devel(
        self, date: typing.Optional[datetime.date] = None, *, result: _ObjectResult
    ) -> DistroRelease: ...

    @typing.overload
    def devel(
        self, date: typing.Optional[datetime.date] = None, result: _NonObjectResult = "codename"
    ) -> str: ...

    def devel(
        self, date: typing.Optional[datetime.date] = None, result: _AnyResult = "codename"
    ) -> typing.Union[DistroRelease, str]:
        """Get latest development distribution based on the given date."""
        if date is None:
            date = self._date
        distros = [
            x
            for x in self._avail(date)
            if x.release is None or (date < x.release and (x.eol is None or date <= x.eol))
        ]
        if not distros:
            raise DistroDataOutdated()
        return self._format(result, distros[-1])

    @typing.overload
    def _format(self, format_string: _ObjectResult, release: DistroRelease) -> DistroRelease: ...

    @typing.overload
    def _format(self, format_string: _NonObjectResult, release: DistroRelease) -> str: ...

    def _format(
        self, format_string: _AnyResult, release: DistroRelease
    ) -> typing.Union[DistroRelease, str]:
        """Format a given distribution entry."""
        if format_string == "object":
            return release
        if format_string == "codename":
            return release.series
        if format_string == "fullname":
            return self._distro + " " + release.version + ' "' + release.codename + '"'
        if format_string == "release":
            return release.version

        raise ValueError(
            "Only codename, fullname, object, and release are allowed "
            "result values, but not '" + format_string + "'."
        )

    @typing.overload
    def _format_list(
        self, format_string: _ObjectResult, releases: typing.Sequence[DistroRelease]
    ) -> list[DistroRelease]: ...

    @typing.overload
    def _format_list(
        self, format_string: _NonObjectResult, releases: typing.Sequence[DistroRelease]
    ) -> list[str]: ...

    def _format_list(
        self, format_string: _AnyResult, releases: typing.Sequence[DistroRelease]
    ) -> typing.Union[list[DistroRelease], list[str]]:
        """Format a sequence of distribution entries."""
        distros: typing.Sequence[typing.Union[DistroRelease, str]] = [
            self._format(format_string, x) for x in releases
        ]
        if format_string == "object":
            return typing.cast(list[DistroRelease], distros)
        return typing.cast(list[str], distros)

    @typing.overload
    def stable(
        self, date: typing.Optional[datetime.date] = None, *, result: _ObjectResult
    ) -> DistroRelease: ...

    @typing.overload
    def stable(
        self, date: typing.Optional[datetime.date] = None, result: _NonObjectResult = "codename"
    ) -> str: ...

    def stable(
        self, date: typing.Optional[datetime.date] = None, result: _AnyResult = "codename"
    ) -> typing.Union[DistroRelease, str]:
        """Get latest stable distribution based on the given date."""
        if date is None:
            date = self._date
        distros = [
            x
            for x in self._avail(date)
            if x.release is not None and date >= x.release and (x.eol is None or date <= x.eol)
        ]
        if not distros:
            raise DistroDataOutdated()
        return self._format(result, distros[-1])

    @typing.overload
    def supported(
        self, date: typing.Optional[datetime.date] = None, *, result: _ObjectResult
    ) -> list[DistroRelease]: ...

    @typing.overload
    def supported(
        self, date: typing.Optional[datetime.date] = None, result: _NonObjectResult = "codename"
    ) -> list[str]: ...

    def supported(
        self, date: typing.Optional[datetime.date] = None, result: _AnyResult = "codename"
    ) -> typing.Union[list[DistroRelease], list[str]]:
        """Get list of all supported distributions based on the given date."""
        raise NotImplementedError()

    def valid(self, codename: str) -> bool:
        """Check if the given codename is known."""
        return codename in self.all

    @typing.overload
    def unsupported(
        self, date: typing.Optional[datetime.date] = None, *, result: _ObjectResult
    ) -> list[DistroRelease]: ...

    @typing.overload
    def unsupported(
        self, date: typing.Optional[datetime.date] = None, result: _NonObjectResult = "codename"
    ) -> list[str]: ...

    def unsupported(
        self, date: typing.Optional[datetime.date] = None, result: _AnyResult = "codename"
    ) -> typing.Union[list[DistroRelease], list[str]]:
        """Get list of all unsupported distributions based on the given date."""
        if date is None:
            date = self._date
        supported = self.supported(date)
        return self._format_list(
            result, [x for x in self._avail(date) if x.series not in supported]
        )


class DebianDistroInfo(DistroInfo):
    """provides information about Debian's distributions"""

    def __init__(self) -> None:
        super().__init__("Debian")

    def codename(
        self,
        release: str,
        date: typing.Optional[datetime.date] = None,
        default: typing.Optional[str] = None,
    ) -> typing.Union[DistroRelease, str, None]:
        """Map 'unstable', 'testing', etc. to their codenames."""
        if release == "unstable":
            return self.devel(date)
        if release == "testing":
            return self.testing(date)
        if release == "stable":
            return self.stable(date)
        if release == "oldstable":
            return self.old(date)
        return default

    @typing.overload
    def devel(
        self, date: typing.Optional[datetime.date] = None, *, result: _ObjectResult
    ) -> DistroRelease: ...

    @typing.overload
    # https://github.com/pylint-dev/pylint/issues/5264
    # pylint: disable-next=arguments-differ
    def devel(
        self, date: typing.Optional[datetime.date] = None, result: _NonObjectResult = "codename"
    ) -> str: ...

    # https://github.com/pylint-dev/pylint/issues/5264
    # pylint: disable-next=arguments-differ
    def devel(
        self, date: typing.Optional[datetime.date] = None, result: _AnyResult = "codename"
    ) -> typing.Union[DistroRelease, str]:
        """Get latest development distribution based on the given date."""
        if date is None:
            date = self._date
        distros = [
            x
            for x in self._avail(date)
            if x.release is None or (date < x.release and (x.eol is None or date <= x.eol))
        ]
        if len(distros) < 2:
            raise DistroDataOutdated()
        return self._format(result, distros[-2])

    @typing.overload
    def old(
        self, date: typing.Optional[datetime.date] = None, *, result: _ObjectResult
    ) -> DistroRelease: ...

    @typing.overload
    def old(
        self, date: typing.Optional[datetime.date] = None, result: _NonObjectResult = "codename"
    ) -> str: ...

    def old(
        self, date: typing.Optional[datetime.date] = None, result: _AnyResult = "codename"
    ) -> typing.Union[DistroRelease, str]:
        """Get old (stable) Debian distribution based on the given date."""
        if date is None:
            date = self._date
        distros = [x for x in self._avail(date) if x.release is not None and date >= x.release]
        if len(distros) < 2:
            raise DistroDataOutdated()
        return self._format(result, distros[-2])

    @typing.overload
    def supported(
        self, date: typing.Optional[datetime.date] = None, *, result: _ObjectResult
    ) -> list[DistroRelease]: ...

    @typing.overload
    # https://github.com/pylint-dev/pylint/issues/5264
    # pylint: disable-next=arguments-differ
    def supported(
        self, date: typing.Optional[datetime.date] = None, result: _NonObjectResult = "codename"
    ) -> list[str]: ...

    # https://github.com/pylint-dev/pylint/issues/5264
    # pylint: disable-next=arguments-differ
    def supported(
        self, date: typing.Optional[datetime.date] = None, result: _AnyResult = "codename"
    ) -> typing.Union[list[DistroRelease], list[str]]:
        """Get list of all supported Debian distributions based on the given
        date."""
        if date is None:
            date = self._date
        distros = [x for x in self._avail(date) if x.eol is None or date <= x.eol]
        return self._format_list(result, distros)

    @typing.overload
    def lts_supported(
        self, date: typing.Optional[datetime.date] = None, *, result: _ObjectResult
    ) -> list[DistroRelease]: ...

    @typing.overload
    def lts_supported(
        self, date: typing.Optional[datetime.date] = None, result: _NonObjectResult = "codename"
    ) -> list[str]: ...

    def lts_supported(
        self, date: typing.Optional[datetime.date] = None, result: _AnyResult = "codename"
    ) -> typing.Union[list[DistroRelease], list[str]]:
        """Get list of all LTS supported Debian distributions based on the given
        date."""
        if date is None:
            date = self._date
        distros = [
            x
            for x in self._avail(date)
            if (x.eol is not None and date > x.eol)
            and (x.eol_lts is not None and date <= x.eol_lts)
        ]
        return self._format_list(result, distros)

    @typing.overload
    def elts_supported(
        self, date: typing.Optional[datetime.date] = None, *, result: _ObjectResult
    ) -> list[DistroRelease]: ...

    @typing.overload
    def elts_supported(
        self, date: typing.Optional[datetime.date] = None, result: _NonObjectResult = "codename"
    ) -> list[str]: ...

    def elts_supported(
        self, date: typing.Optional[datetime.date] = None, result: _AnyResult = "codename"
    ) -> typing.Union[list[DistroRelease], list[str]]:
        """Get list of all Extended LTS supported Debian distributions based on
        the given date."""
        if date is None:
            date = self._date
        distros = [
            x
            for x in self._avail(date)
            if (x.eol_lts is not None and date > x.eol_lts)
            and (x.eol_elts is not None and date <= x.eol_elts)
        ]
        return self._format_list(result, distros)

    @typing.overload
    def testing(
        self, date: typing.Optional[datetime.date] = None, *, result: _ObjectResult
    ) -> DistroRelease: ...

    @typing.overload
    def testing(
        self, date: typing.Optional[datetime.date] = None, result: _NonObjectResult = "codename"
    ) -> str: ...

    def testing(
        self, date: typing.Optional[datetime.date] = None, result: _AnyResult = "codename"
    ) -> typing.Union[DistroRelease, str]:
        """Get latest testing Debian distribution based on the given date."""
        if date is None:
            date = self._date
        distros = [
            x
            for x in self._avail(date)
            if (x.release is None and x.version)
            or (x.release is not None and date < x.release and (x.eol is None or date <= x.eol))
        ]
        if not distros:
            raise DistroDataOutdated()
        return self._format(result, distros[-1])

    def valid(self, codename: str) -> bool:
        """Check if the given codename is known."""
        return DistroInfo.valid(self, codename) or codename in [
            "unstable",
            "testing",
            "stable",
            "oldstable",
        ]


class UbuntuDistroInfo(DistroInfo):
    """provides information about Ubuntu's distributions"""

    def __init__(self) -> None:
        super().__init__("Ubuntu")

    @typing.overload
    def lts(
        self, date: typing.Optional[datetime.date] = None, *, result: _ObjectResult
    ) -> DistroRelease: ...

    @typing.overload
    def lts(
        self, date: typing.Optional[datetime.date] = None, result: _NonObjectResult = "codename"
    ) -> str: ...

    def lts(
        self, date: typing.Optional[datetime.date] = None, result: _AnyResult = "codename"
    ) -> typing.Union[DistroRelease, str]:
        """Get latest long term support (LTS) Ubuntu distribution based on the
        given date."""
        if date is None:
            date = self._date
        distros = [
            x
            for x in self._releases
            if x.version.find("LTS") >= 0 and x.release and x.eol and x.release <= date <= x.eol
        ]
        if not distros:
            raise DistroDataOutdated()
        return self._format(result, distros[-1])

    def is_lts(self, codename: str) -> bool:
        """Is codename an LTS release?"""
        distros = [x for x in self._releases if x.series == codename]
        if not distros:
            return False
        return "LTS" in distros[0].version

    @typing.overload
    def supported(
        self, date: typing.Optional[datetime.date] = None, *, result: _ObjectResult
    ) -> list[DistroRelease]: ...

    @typing.overload
    # https://github.com/pylint-dev/pylint/issues/5264
    # pylint: disable-next=arguments-differ
    def supported(
        self, date: typing.Optional[datetime.date] = None, result: _NonObjectResult = "codename"
    ) -> list[str]: ...

    # https://github.com/pylint-dev/pylint/issues/5264
    # pylint: disable-next=arguments-differ
    def supported(
        self, date: typing.Optional[datetime.date] = None, result: _AnyResult = "codename"
    ) -> typing.Union[list[DistroRelease], list[str]]:
        """Get list of all supported Ubuntu distributions based on the given
        date."""
        if date is None:
            date = self._date
        distros = [
            x
            for x in self._avail(date)
            if (x.eol and date <= x.eol) or (x.eol_server is not None and date <= x.eol_server)
        ]
        return self._format_list(result, distros)

    @typing.overload
    def supported_esm(
        self, date: typing.Optional[datetime.date] = None, *, result: _ObjectResult
    ) -> list[DistroRelease]: ...

    @typing.overload
    def supported_esm(
        self, date: typing.Optional[datetime.date] = None, result: _NonObjectResult = "codename"
    ) -> list[str]: ...

    def supported_esm(
        self, date: typing.Optional[datetime.date] = None, result: _AnyResult = "codename"
    ) -> typing.Union[list[DistroRelease], list[str]]:
        """Get list of all ESM supported Ubuntu distributions based on the
        given date."""
        if date is None:
            date = self._date
        distros = [x for x in self._avail(date) if x.eol_esm is not None and date <= x.eol_esm]
        return self._format_list(result, distros)

Filemanager

Name Type Size Permission Actions
Brlapi-0.8.6.egg-info Folder 0755
CommandNotFound Folder 0755
DistUpgrade Folder 0755
HweSupportStatus Folder 0755
LanguageSelector Folder 0755
Mako-1.3.8.dev0.egg-info Folder 0755
MarkupSafe-2.1.5.egg-info Folder 0755
NvidiaDetector Folder 0755
PIL Folder 0755
PyGObject-3.50.0.dist-info Folder 0755
PyJWT-2.10.1.dist-info Folder 0755
PyNaCl-1.5.0.dist-info Folder 0755
PyYAML-6.0.2.dist-info Folder 0755
Quirks Folder 0755
SSSDConfig Folder 0755
UbuntuDrivers Folder 0755
UpdateManager Folder 0755
__pycache__ Folder 0755
_yaml Folder 0755
apport Folder 0755
apt Folder 0755
apt_inst-stubs Folder 0755
apt_pkg-stubs Folder 0755
aptdaemon Folder 0755
aptdaemon-2.0.2.egg-info Folder 0755
aptsources Folder 0755
attr Folder 0755
attrs Folder 0755
attrs-25.1.0.dist-info Folder 0755
autocommand Folder 0755
autocommand-2.2.2.dist-info Folder 0755
babel Folder 0755
babel-2.17.0.egg-info Folder 0755
bcc Folder 0755
bcc-0.30.0.egg-info Folder 0755
bcrypt Folder 0755
bcrypt-4.2.0.dist-info Folder 0755
beautifulsoup4-4.13.3.dist-info Folder 0755
blinker Folder 0755
blinker-1.9.0.dist-info Folder 0755
bs4 Folder 0755
cairo Folder 0755
certifi Folder 0755
certifi-2025.1.31.egg-info Folder 0755
chardet Folder 0755
chardet-5.2.0.dist-info Folder 0755
click Folder 0755
click-8.1.8.dist-info Folder 0755
cloud_init-25.1.4.egg-info Folder 0755
cloudinit Folder 0755
configobj Folder 0755
configobj-5.0.9.dist-info Folder 0755
cryptography Folder 0755
cryptography-43.0.0.dist-info Folder 0755
cssselect Folder 0755
cssselect-1.3.0.egg-info Folder 0755
cupshelpers Folder 0755
cupshelpers-1.0.egg-info Folder 0755
dateutil Folder 0755
dbus Folder 0755
dbus_python-1.3.2.egg-info Folder 0755
debian Folder 0755
defer Folder 0755
defer-1.0.6.egg-info Folder 0755
distro Folder 0755
distro-1.9.0.dist-info Folder 0755
distro_info Folder 0755
distro_info-1.13.egg-info Folder 0755
duplicity Folder 0755
duplicity-3.0.4.egg-info Folder 0755
fasteners Folder 0755
fasteners-0.18.dist-info Folder 0755
gi Folder 0755
html5lib Folder 0755
html5lib_modern-1.2.egg-info Folder 0755
httplib2 Folder 0755
httplib2-0.22.0.dist-info Folder 0755
idna Folder 0755
idna-3.10.dist-info Folder 0755
inflect Folder 0755
inflect-7.3.1.dist-info Folder 0755
janitor Folder 0755
jaraco Folder 0755
jaraco.context-6.0.1.dist-info Folder 0755
jaraco.functools-4.1.0.dist-info Folder 0755
jinja2 Folder 0755
jinja2-3.1.5.dist-info Folder 0755
jsonpatch-1.32.egg-info Folder 0755
jsonpointer-2.4.egg-info Folder 0755
jsonschema Folder 0755
jsonschema-4.19.2.dist-info Folder 0755
jsonschema_specifications Folder 0755
jsonschema_specifications-2023.12.1.dist-info Folder 0755
jwt Folder 0755
language_selector-0.1.egg-info Folder 0755
launchpadlib Folder 0755
launchpadlib-2.1.0.dist-info Folder 0755
lazr Folder 0755
lazr.restfulclient-0.14.6.dist-info Folder 0755
lazr.uri-1.0.6.dist-info Folder 0755
louis Folder 0755
louis-3.32.0.egg-info Folder 0755
lxml Folder 0755
lxml-5.3.2.egg-info Folder 0755
mako Folder 0755
markdown_it Folder 0755
markdown_it_py-3.0.0.dist-info Folder 0755
markupsafe Folder 0755
mdurl Folder 0755
mdurl-0.1.2.dist-info Folder 0755
monotonic-1.6.egg-info Folder 0755
more_itertools Folder 0755
more_itertools-10.6.0.dist-info Folder 0755
nacl Folder 0755
netaddr Folder 0755
netaddr-1.3.0.dist-info Folder 0755
netifaces-0.11.0.egg-info Folder 0755
netplan Folder 0755
oauthlib Folder 0755
oauthlib-3.2.2.dist-info Folder 0755
olefile Folder 0755
olefile-0.47.egg-info Folder 0755
orca Folder 0755
paramiko Folder 0755
paramiko-3.5.1.egg-info Folder 0755
passlib Folder 0755
passlib-1.7.4.egg-info Folder 0755
pexpect Folder 0755
pexpect-4.9.0.egg-info Folder 0755
pillow-11.1.0.egg-info Folder 0755
pkg_resources Folder 0755
problem_report Folder 0755
psutil Folder 0755
psutil-5.9.8.dist-info Folder 0755
ptyprocess Folder 0755
ptyprocess-0.7.0.dist-info Folder 0755
pycairo-1.27.0.dist-info Folder 0755
pycups-2.0.4.dist-info Folder 0755
pygments Folder 0755
pygments-2.18.0.dist-info Folder 0755
pygtkcompat Folder 0755
pyparsing Folder 0755
pyparsing-3.1.2.dist-info Folder 0755
pyserial-3.5.egg-info Folder 0755
python_apt-3.0.0+ubuntu0.25.4.1.egg-info Folder 0755
python_dateutil-2.9.0.dist-info Folder 0755
python_debian-1.0.1+ubuntu1.dist-info Folder 0755
pyxdg-0.28.dist-info Folder 0755
referencing Folder 0755
referencing-0.35.1.dist-info Folder 0755
requests Folder 0755
requests-2.32.3.dist-info Folder 0755
rich Folder 0755
rich-13.9.4.dist-info Folder 0755
rpds Folder 0755
rpds_py-0.21.0.dist-info Folder 0755
serial Folder 0755
setuptools Folder 0755
softwareproperties Folder 0755
soupsieve Folder 0755
soupsieve-2.6.dist-info Folder 0755
speechd Folder 0755
speechd_config Folder 0755
ssh_import_id Folder 0755
ssh_import_id-5.11.egg-info Folder 0755
systemd Folder 0755
systemd_python-235.egg-info Folder 0755
typeguard Folder 0755
typeguard-4.4.2.dist-info Folder 0755
typing_extensions-4.12.2.dist-info Folder 0755
uaclient Folder 0755
ubuntu_drivers_common-0.0.0.egg-info Folder 0755
ubuntu_pro_client-8001.egg-info Folder 0755
ufw Folder 0755
ufw-0.36.2.egg-info Folder 0755
unattended_upgrades-0.1.egg-info Folder 0755
urllib3 Folder 0755
urllib3-2.3.0.dist-info Folder 0755
usb_creator-0.3.16.egg-info Folder 0755
usbcreator Folder 0755
validate Folder 0755
wadllib Folder 0755
wadllib-2.0.0.dist-info Folder 0755
webencodings Folder 0755
webencodings-0.5.1.egg-info Folder 0755
xdg Folder 0755
xkit Folder 0755
xkit-0.0.0.egg-info Folder 0755
yaml Folder 0755
_cffi_backend.cpython-313-x86_64-linux-gnu.so File 238.02 KB 0644
_dbus_bindings.cpython-313-x86_64-linux-gnu.so File 168.35 KB 0644
_dbus_glib_bindings.cpython-313-x86_64-linux-gnu.so File 22.57 KB 0644
apport_python_hook.py File 8.76 KB 0644
apt_inst.cpython-313-x86_64-linux-gnu.so File 58.74 KB 0644
apt_pkg.cpython-313-x86_64-linux-gnu.so File 355.67 KB 0644
brlapi.cpython-313-x86_64-linux-gnu.so File 341.15 KB 0644
command_not_found-0.3.egg-info File 189 B 0644
cups.cpython-313-x86_64-linux-gnu.so File 224.25 KB 0644
cupsext.cpython-313-x86_64-linux-gnu.so File 45.27 KB 0644
debconf.py File 7.87 KB 0644
distro_info.py File 20.54 KB 0644
hpmudext.cpython-313-x86_64-linux-gnu.so File 18.91 KB 0644
jsonpatch.py File 28.14 KB 0644
jsonpointer.py File 10.71 KB 0644
language_support_pkgs.py File 9.7 KB 0644
monotonic.py File 7 KB 0644
netifaces.cpython-313-x86_64-linux-gnu.so File 26.77 KB 0644
pcardext.cpython-313-x86_64-linux-gnu.so File 22.72 KB 0644
perf.cpython-313-x86_64-linux-gnu.so File 9.42 MB 0644
problem_report.py File 33.37 KB 0644
pysss.cpython-313-x86_64-linux-gnu.so File 35.82 KB 0644
pysss_murmur.cpython-313-x86_64-linux-gnu.so File 14.57 KB 0644
scanext.cpython-313-x86_64-linux-gnu.so File 27.43 KB 0644
typing_extensions.py File 131.3 KB 0644
uno.py File 16.84 KB 0644
unohelper.py File 10.7 KB 0644
xdg-5.egg-info File 201 B 0644
Filemanager