Source code for pcapkit.const.reg.apptype.apptype

# -*- coding: utf-8 -*-
# pylint: disable=line-too-long
"""Application Layer Protocol Numbers
========================================

.. module:: pcapkit.const.reg.apptype.apptype

This module contains the constant enumeration for **Application Layer Protocol Numbers**,
which is automatically generated from :class:`pcapkit.vendor.reg.apptype.apptype.AppType`.

"""
import keyword
import re
from typing import TYPE_CHECKING, cast

from aenum import IntEnum, StrEnum, auto, extend_enum

from pcapkit.corekit.enum import EnumLookup, EnumRegistry
from pcapkit.corekit.sentinels import NO_DEFAULT
from pcapkit.utilities.exceptions import EnumValueError

__all__ = ['TransportProtocol', 'AppType']

if TYPE_CHECKING:
    from typing import Any, Optional, Type

    from pcapkit.corekit.multidict import MultiDict


[docs] class TransportProtocol(EnumLookup, IntEnum): """Transport layer protocol. .. versionchanged:: 1.5.0 An ``aenum.IntEnum`` rather than an ``aenum.IntFlag`` (:issue:`808`), numbered sequentially: ``sctp`` is ``3`` and ``dccp`` is ``4``, where they were ``4`` and ``8``, and no :class:`int` is decoded as a ``|`` composite (:issue:`860`). :meth:`get` refuses a name no member declares, with :exc:`~pcapkit.utilities.exceptions.EnumKeyError`, rather than minting a member for it (:issue:`808`, :issue:`923`). """ # mypy has no aenum plugin, so this class is a plain class to it: every # member below is cast rather than left as a bare auto()-valued one -- # a bare auto() infers as Any, while the TransportProtocol annotations # that use each member (__transport__, and the proto default on # __new__, get and get_all) expect TransportProtocol. cast is the # identity function at run time, so this changes nothing that runs -- # see GitHub issue #770. mypy.ini sets warn_redundant_casts, so if aenum # ever ships type stubs letting it infer TransportProtocol on its own, # these casts start erroring instead of lingering as dead scaffolding. # # Values are sequential from 0 rather than the power-of-two spacing this # class carried while it still mixed in ``IntFlag`` -- ``undefined`` is # declared explicitly as ``0`` and every other member is ``auto()``, which # continues from the preceding explicit value rather than needing its own # ``_start_ = 0`` to begin there. A ruling given in review of the work for # #860 is explicit that ``undefined`` stays a direct ``0`` for that reason: # the other, real transports use ``auto()``, so no ``_start_`` has to be # defined and the declaration of ``undefined`` stays explicit. GitHub issue # #808 already dropped the ``IntFlag`` base once nothing built a composite, # and a ruling given in review of that work later retired ``|``-composite # decoding entirely: once it is no longer a Flag, a ``|``-joined value is no # longer parsed and accepted as a composite, and is treated as a whole # instead of being split. With no decoding left to protect, the owner's own # further ruling on GitHub issue #860 retired the power-of-two spacing # itself too: that spacing existed mainly for code that composed values like # ``tcp | udp``, which the new logic no longer accepts, so sequential # ``auto()`` values are the expected behaviour. :meth:`AppType._dispatch` # never decodes an ``int`` -- composed by hand with ``|`` or passed bare -- # into anything narrower than the whole value it already is, on either # numbering; a plain ``dict.get`` lookup cannot tell a composed ``int`` from # any other one that happens to equal it. Treating every int as a whole is # exactly what that ruling above asks for, and it is also why this # renumbering changes what specific ints mean, not only what composed ones # do: ``tcp | udp`` (``3``) used to name no registry and resolves as # ``sctp``'s own value, and a bare, uncomposed ``4`` -- previously # ``sctp``'s value -- resolves as ``dccp``'s, silently, with no # exception, since a real member sits at ``4`` either way. A caller holding # an integer under the old spacing (composed or not) can therefore land on a # different real transport's registry after this change, not merely be # refused where it previously resolved. #: No transport protocol. ``TransportProtocol(0) is undefined`` and #: ``bool(undefined)`` is ``False``; it is the ``proto`` sentinel default #: for ``__transport__``, ``__new__``, ``get`` and ``get_all``, and what #: the base registry's ``_missing_`` extends unassigned/reserved rows from. undefined = cast('TransportProtocol', 0) #: Transmission Control Protocol. tcp = cast('TransportProtocol', auto()) #: User Datagram Protocol. udp = cast('TransportProtocol', auto()) #: Stream Control Transmission Protocol. sctp = cast('TransportProtocol', auto()) #: Datagram Congestion Control Protocol. dccp = cast('TransportProtocol', auto()) @classmethod def get(cls, key: 'int | str', default: 'Any' = NO_DEFAULT) -> 'TransportProtocol': """Backport support for original codes. Delegates to :meth:`~pcapkit.corekit.enum.EnumLookup.get` for GitHub issue :issue:`877`'s re-parenting, but keeps this override rather than dropping it, for one behaviour the base does not reproduce on its own: **case folding**. This class has always matched a name case-insensitively (``key.lower()``); the base's own ``str`` branch is case-sensitive. Lowering ``key`` before delegating reproduces that: every member name here is already lower-case, so a lowered ``key`` still hits the base's exact ``_member_map_`` lookup. Case folding is the *only* thing this override adds. It used to convert the base's name-miss exception as well -- this class raised :exc:`ValueError` where the base raised :exc:`KeyError` -- and the ruling given in review of the work for :issue:`877`, implemented in GitHub issue :issue:`923`, retired that conversion: the exception is to follow what stdlib's ``Enum`` would raise in the circumstances, :exc:`ValueError` or :exc:`KeyError` as the case may be, and is to come from :mod:`pcapkit.utilities.exceptions` rather than being a builtin. A stdlib ``E['nosuch']`` raises :exc:`KeyError`, and :issue:`923`'s census of the 127 concrete :class:`~pcapkit.corekit.enum.EnumLookup` subclasses -- taken before the phase-2 re-parenting moved this class, so it is not among them -- found 119 already answering a name miss that way against 5 answering with :exc:`ValueError`. Those 5 are :class:`AppType` and its four transport registries, and they land there only because their own ``get()`` takes an :class:`int` port and never accepts a name at all, rather than from any name-miss policy. So there was no policy here to preserve, and a name miss reaches the caller as :exc:`~pcapkit.utilities.exceptions.EnumKeyError` from the base. The maintainer's ruling given in review of the work for :issue:`808`, that :class:`TransportProtocol` is not to be extended at all, is untouched by that: the refusal is still a refusal and still mints nothing, only its exception class moved. The base is a :class:`classmethod` (:meth:`~pcapkit.corekit.enum.EnumLookup.get`), so this override moves from :class:`staticmethod` to :class:`classmethod` to delegate at all -- the same move GitHub issue :issue:`908` made for :meth:`~pcapkit.const.http.method.Method.get`. Grepped every call site in this tree for GitHub issue :issue:`877`: all call this method by name, none take it as a bare callable or introspect ``__func__``, so the switch is not caller-visible. ``default`` did not exist on this override before this change -- the original had no such parameter at all, which is a genuine LSP violation once this class' ``get`` is a :class:`classmethod` override of one that has it: a caller holding a :class:`~pcapkit.corekit.enum.EnumLookup`-typed reference could pass ``default=`` and, before this, would have hit a :exc:`TypeError` at this subclass. Forwarded verbatim to :meth:`~pcapkit.corekit.enum.EnumLookup.get` rather than reimplemented, so it behaves exactly as the base's own ``default`` does: a fallback to an *already-registered* value, resolved through ``_value2member_map_`` and never through the constructor, so passing one still cannot mint. Every call site in this tree omits it, so this is purely an added, backward-compatible capability, not a change to anything this tree exercises today. Args: key: Key to get enum item. default: An already-registered value to fall back to when ``key`` resolves to nothing. :data:`~pcapkit.corekit.sentinels.NO_DEFAULT`, the default, means *no default* -- see :meth:`~pcapkit.corekit.enum.EnumLookup.get`. Raises: EnumKeyError: If ``key`` names no member and there is no usable ``default``. A :exc:`KeyError`, from the base, since GitHub issue :issue:`923` -- it used to be a plain :exc:`ValueError` raised here. EnumValueError: If ``key`` is a value no member carries and there is no usable ``default``. A :exc:`ValueError`, from the base. :meta private: """ if isinstance(key, str): return super().get(key.lower(), default) # NOTE: the maintainer ruled in review of the work for #808 that # TransportProtocol is not to be extended at all. A name that is not a # declared member used to mint a brand-new one here, at ``max_val + 1`` # (before that, ``max_val * 2``) -- an unbounded, ever-growing set of # transport protocols nothing ever asked for. There is nothing left to walk: # it is simply refused, exactly like any other unrecognised name -- # including one spelling a composite, e.g. ``'tcp|udp'``. ``'|'`` used to be # intercepted here on its own, so a composite in disguise never got minted # into a member whose own name lied about being a single transport; a # further ruling given in review of the work for #808 retired that special # case along with the rest of the composite handling once TransportProtocol # stopped being a Flag at all: a ``|``-joined value is no longer parsed and # accepted as a composite, and is treated as a whole instead of being split. # A ``'|'``-joined name is therefore not special any more -- it is simply # not the name of a declared member, and gets the same message as any other # one that is not. # # NOTE: the delegation below is exception-compatible for the keys this # signature admits -- an unrecognised :class:`int` still reaches the # caller as a :exc:`ValueError`, now the base's own # :exc:`~pcapkit.utilities.exceptions.EnumValueError` since GitHub issue # #923 rather than :mod:`aenum`'s bare one. It is not compatible for # keys outside it: ``None``, a :class:`float` and an unhashable key # used to raise :exc:`AttributeError` from the ``key.lower()`` this # branch no longer reaches, and now raise :exc:`ValueError` (or, for a # :class:`float`, resolve -- ``get(1.0)`` answers ``tcp``, since # ``cls(key)`` accepts whatever :class:`int` equality accepts). No # caller in this tree can reach any of those: the only live call site # passes ``proto.lower()``, always a :class:`str`. The new shape is # what every other ``EnumLookup`` subclass already does. return super().get(key, default)
# NOTE: ``_missing_`` used to range-check ``value`` and then defer to # :mod:`aenum`'s own ``Flag._missing_``, which is what composed an # unrecognised bit combination into a pseudo-member -- ``TransportProtocol(3)`` # returning ``tcp|udp`` -- GitHub issue #647's guard against that composing # *anything*, including values no member declares. GitHub issue #808 removed # the ``IntFlag`` base once nothing built a composite, and with it the only # reason this method existed: a plain :class:`~aenum.IntEnum` already raises # ``ValueError`` for a value no member declares, with no ``_missing_`` of # its own needed to get there, so declaring one here would only be # reproducing what the base class already does.
[docs] class AppType(EnumRegistry, StrEnum): """[AppType] Application Layer Protocol Numbers This is the transport-agnostic base of the per-transport registries in :mod:`pcapkit.const.reg.apptype`, and it declares **no members of its own**. IANA keys every assignment on a ``(service, port, transport)`` triple, so a service belongs to the registry of the transport protocol that carries it -- :class:`~pcapkit.const.reg.apptype.tcp.TCP`, :class:`~pcapkit.const.reg.apptype.udp.UDP`, :class:`~pcapkit.const.reg.apptype.sctp.SCTP` or :class:`~pcapkit.const.reg.apptype.dccp.DCCP`. Being memberless is also what makes it subclassable at all, since :mod:`aenum` refuses to extend an enumeration that already has members. .. versionchanged:: 1.1.1 A member converts with :class:`int` to its port number, and compares, orders and hashes as that port. .. versionchanged:: 1.5.0 Split by transport protocol (:issue:`732`): :mod:`pcapkit.const.reg.apptype` is a package, and every assignment is a member of one of the per-transport registries rather than of this class. ``get()`` raises :exc:`ValueError` for a port outside ``0``-``65535`` (:issue:`758`), and returns an unregistered member rather than minting one for a port the registry does not assign (:issue:`860`). Note: The rows below are the registry entries whose **transport protocol column is empty**. A blank transport is not an assignment to anything, so there is no registry they could be members of and they are documented here instead. Most are historic service or IP-protocol names with no port either; the rest are IANA's own reserved, unassigned and withdrawn markers. .. list-table:: Service names assigned no transport protocol :header-rows: 1 :widths: 25 10 65 * - Service Name - Port - Description * - ``reserved`` - 51 - [N/A] Reserved * - ``unassigned`` - 81 - [N/A] Unassigned * - ``unassigned`` - 100 - [N/A] Unassigned * - ``unassigned`` - 114 - [N/A] unassigned * - ``unassigned`` - 258 - [N/A] Unassigned * - ``unassigned`` - 285 - [N/A] Unassigned * - ``unassigned`` - 703 - [N/A] Unassigned * - ``unassigned`` - 708 - [N/A] Unassigned * - ``unassigned`` - 743 - [N/A] Unassigned * - ``unassigned`` - 766 - [N/A] Unassigned * - ``unassigned`` - 768 - [N/A] Unassigned * - ``unassigned`` - 786 - [N/A] Unassigned * - ``unassigned`` - 787 - [N/A] Unassigned * - ``unassigned`` - 1009 - [N/A] Unassigned * - ``deprecated`` - 1028 - [N/A] Deprecated * - ``reserved`` - 1030 - [N/A] Reserved * - ``reserved`` - 1031 - [N/A] Reserved * - ``reserved`` - 1032 - [N/A] Reserved * - ``reserved_iana`` - 1109 - [N/A] Reserved - IANA * - ``unassigned`` - 1491 - [N/A] Unassigned * - ``decomissioned_port_04_14_00_ms`` - 1783 - [N/A] Decomissioned Port 04/14/00, ms * - ``removed`` - 659 - [N/A] Removed * - ``removed`` - 2682 - [N/A] Removed * - ``possibly_assigned`` - 2825 - [N/A] (unassigned) Possibly assigned * - ``de_registered`` - 585 - [N/A] De-registered * - ``unassigned`` - 2925 - [N/A] Unassigned (FRP-Released 12/7/00) * - ``unassigned`` - 3092 - [N/A] Unassigned * - ``unassigned`` - 3126 - [N/A] Unassigned * - ``removed`` - 3404 - [N/A] Removed * - ``unassigned`` - 3546 - [N/A] Unassigned * - ``unassigned`` - 3694 - [N/A] Unassigned * - ``unassigned`` - 3994 - [N/A] Unassigned * - ``unassigned`` - 4048 - [N/A] Unassigned * - ``unassigned`` - 4144 - [N/A] Unassigned * - ``unassigned`` - 4196 - [N/A] Unassigned * - ``unassigned`` - 4198 - [N/A] Unassigned * - ``unassigned`` - 4315 - [N/A] Unassigned * - ``unassigned`` - 4318 - [N/A] Unassigned * - ``reserved`` - 4324 - [N/A] Reserved * - ``unassigned`` - 4367 - [N/A] Unassigned * - ``unassigned`` - 4424 - [N/A] Unassigned * - ``unassigned`` - 4459 - [N/A] Unassigned * - ``unassigned`` - 4501 - [N/A] Unassigned * - ``unassigned`` - 4983 - [N/A] Unassigned * - ``unassigned`` - 5113 - [N/A] Unassigned * - ``unassigned`` - 5244 - [N/A] Unassigned * - ``unassigned`` - 5311 - [N/A] Unassigned * - ``unassigned`` - 5444 - [N/A] Unassigned * - ``unassigned`` - 5749 - [N/A] Unassigned * - ``unassigned`` - 5756 - [N/A] Unassigned * - ``unassigned`` - 6067 - [N/A] Unassigned * - ``unassigned`` - 6319 - [N/A] Unassigned * - ``unassigned`` - 6323 - [N/A] Unassigned * - ``boe-cms`` - 6400 - [N/A] Business Objects CMS contact port * - ``boe-was`` - 6401 - [N/A] boe-was * - ``boe-eventsrv`` - 6402 - [N/A] boe-eventsrv * - ``boe-cachesvr`` - 6403 - [N/A] boe-cachesvr * - ``boe-filesvr`` - 6404 - [N/A] Business Objects Enterprise internal server * - ``boe-pagesvr`` - 6405 - [N/A] Business Objects Enterprise internal server * - ``boe-processsvr`` - 6406 - [N/A] Business Objects Enterprise internal server * - ``boe-resssvr1`` - 6407 - [N/A] Business Objects Enterprise internal server * - ``boe-resssvr2`` - 6408 - [N/A] Business Objects Enterprise internal server * - ``boe-resssvr3`` - 6409 - [N/A] Business Objects Enterprise internal server * - ``boe-resssvr4`` - 6410 - [N/A] Business Objects Enterprise internal server * - ``unassigned`` - 6441 - [N/A] Unassigned * - ``unassigned`` - 6504 - [N/A] Unassigned * - ``unassigned`` - 6557 - [N/A] Unassigned * - ``reserved`` - 6567 - [N/A] Reserved * - ``unassigned`` - 6588 - [N/A] Unassigned * - ``unassigned`` - 6630 - [N/A] Unassigned * - ``unassigned`` - 6631 - [N/A] Unassigned * - ``unassigned`` - 6654 - [N/A] Unassigned * - ``unassigned`` - 6698 - [N/A] Unassigned * - ``unassigned`` - 6700 - [N/A] Unassigned * - ``unassigned`` - 7122 - [N/A] Unassigned * - ``unassigned`` - 7396 - [N/A] Unassigned * - ``unassigned`` - 7472 - [N/A] Unassigned * - ``unassigned`` - 7625 - [N/A] Unassigned * - ``de_registered`` - 3403 - [N/A] De-registered * - ``unassigned`` - 7632 - [N/A] Unassigned * - ``unassigned`` - 7688 - [N/A] Unassigned * - ``unassigned`` - 7776 - [N/A] Unassigned * - ``unassigned`` - 7780 - [N/A] Unassigned * - ``unassigned`` - 7785 - [N/A] Unassigned * - ``unassigned`` - 7788 - [N/A] Unassigned * - ``unassigned`` - 7879 - [N/A] Unassigned * - ``reserved`` - 8010 - [N/A] Reserved * - ``unassigned`` - 8018 - [N/A] Unassigned * - ``unassigned`` - 8024 - [N/A] Unassigned * - ``unassigned`` - 8085 - [N/A] Unassigned * - ``unassigned`` - 8089 - [N/A] Unassigned * - ``unassigned`` - 8193 - [N/A] Unassigned * - ``unassigned`` - 8281 - [N/A] Unassigned * - ``unassigned`` - 8449 - [N/A] Unassigned * - ``unassigned`` - 8667 - [N/A] Unassigned * - ``unassigned`` - 8687 - [N/A] Unassigned * - ``unassigned`` - 8806 - [N/A] Unassigned * - ``unassigned`` - 8882 - [N/A] Unassigned * - ``unassigned`` - 8909 - [N/A] Unassigned * - ``de_commissioned_port`` - 9006 - [N/A] De-Commissioned Port * - ``unassigned`` - 9311 - [N/A] Unassigned * - ``unassigned`` - 9613 - [N/A] Unassigned * - ``unassigned`` - 9615 - [N/A] Unassigned * - ``unassigned`` - 9910 - [N/A] Unassigned * - ``unassigned`` - 9980 - [N/A] Unassigned * - ``unassigned`` - 10112 - [N/A] Unassigned * - ``unassigned`` - 11107 - [N/A] Unassigned * - ``unassigned`` - 12011 - [N/A] Unassigned * - ``unassigned`` - 12301 - [N/A] Unassigned * - ``unassigned`` - 13723 - [N/A] Unassigned * - ``unassigned`` - 13784 - [N/A] Unassigned * - ``unassigned`` - 14144 - [N/A] Unassigned * - ``unassigned`` - 15001 - [N/A] Unassigned * - ``unassigned`` - 18259 - [N/A] Unassigned * - ``unassigned`` - 19789 - [N/A] Unassigned * - ``unassigned`` - 20004 - [N/A] Unassigned * - ``unassigned`` - 22334 - [N/A] Unassigned * - ``unassigned`` - 24679 - [N/A] Unassigned * - ``unassigned`` - 24727 - [N/A] Unassigned * - ``de_registered`` - 26264 - [N/A] De-registered * - ``unassigned`` - 26488 - [N/A] Unassigned * - ``unassigned`` - 33332 - [N/A] Unassigned * - ``unassigned`` - 47807 - [N/A] Unassigned * - ``reserved`` - 49151 - [N/A] Reserved [:rfc:`6335`] * - ``argus`` - N/A - [N/A] ARGUS Protocol * - ``arp`` - N/A - [N/A] Address Resolution Protocol * - ``bbn-rcc-mon`` - N/A - [N/A] BBN RCC Monitoring * - ``bootp`` - N/A - [N/A] Bootstrap Protocol * - ``br-sat-mon`` - N/A - [N/A] Backroom SATNET Monitoring * - ``cftp`` - N/A - [N/A] CFTP * - ``chaos`` - N/A - [N/A] CHAOS Protocol * - ``clock`` - N/A - [N/A] DCNET Time Server Protocol * - ``cmot`` - N/A - [N/A] Common Mgmnt Info Ser and Prot over TCP/IP * - ``cookie-jar`` - N/A - [N/A] Authentication Scheme * - ``dcn-meas`` - N/A - [N/A] DCN Measurement Subsystems Protocol * - ``dgp`` - N/A - [N/A] Dissimilar Gateway Protocol * - ``dmf-mail`` - N/A - [N/A] Digest Message Format for Mail * - ``egp`` - N/A - [N/A] Exterior Gateway Protocol * - ``ehf-mail`` - N/A - [N/A] Encoding Header Field for Mail * - ``emcon`` - N/A - [N/A] Emission Control Protocol * - ``fconfig`` - N/A - [N/A] Fujitsu Config Protocol * - ``ggp`` - N/A - [N/A] Gateway Gateway Protocol * - ``hmp`` - N/A - [N/A] Host Monitoring Protocol * - ``host2-ns`` - N/A - [N/A] Host2 Name Server * - ``icmp`` - N/A - [N/A] Internet Control Message Protocol * - ``igmp`` - N/A - [N/A] Internet Group Management Protocol * - ``igp`` - N/A - [N/A] Interior Gateway Protocol * - ``imap2`` - N/A - [N/A] Interim Mail Access Protocol version 2 * - ``ip`` - N/A - [N/A] Internet Protocol * - ``ipcu`` - N/A - [N/A] Internet Packet Core Utility * - ``ippc`` - N/A - [N/A] Internet Pluribus Packet Core * - ``ip-arc`` - N/A - [N/A] Internet Protocol on ARCNET * - ``ip-arpa`` - N/A - [N/A] Internet Protocol on ARPANET * - ``ip-cmprs`` - N/A - [N/A] Compressing TCP/IP Headers * - ``ip-dc`` - N/A - [N/A] Internet Protocol on DC Networks * - ``ip-dvmrp`` - N/A - [N/A] Distance Vector Multicast Routing Protocol * - ``ip-e`` - N/A - [N/A] Internet Protocol on Ethernet Networks * - ``ip-ee`` - N/A - [N/A] Internet Protocol on Exp. Ethernet Nets * - ``ip-fddi`` - N/A - [N/A] Transmission of IP over FDDI * - ``ip-hc`` - N/A - [N/A] Internet Protocol on Hyperchannnel * - ``ip-ieee`` - N/A - [N/A] Internet Protocol on IEEE 802 * - ``ip-ipx`` - N/A - [N/A] Transmission of 802.2 over IPX Networks * - ``ip-mtu`` - N/A - [N/A] IP MTU Discovery Options * - ``ip-netbios`` - N/A - [N/A] Internet Protocol over NetBIOS Networks * - ``ip-slip`` - N/A - [N/A] Transmission of IP over Serial Lines * - ``ip-wb`` - N/A - [N/A] Internet Protocol on Wideband Network * - ``ip-x25`` - N/A - [N/A] Internet Protocol on X.25 Networks * - ``irtp`` - N/A - [N/A] Internet Reliable Transaction Protocol * - ``iso-tp4`` - N/A - [N/A] ISO Transport Protocol Class 4 * - ``larp`` - N/A - [N/A] Locus Address Resoultion Protocol * - ``leaf-1`` - N/A - [N/A] Leaf-1 Protocol * - ``leaf-2`` - N/A - [N/A] Leaf-2 Protocol * - ``loc-srv`` - N/A - [N/A] Location Service * - ``mail`` - N/A - [N/A] Format of Electronic Mail Messages * - ``merit-inp`` - N/A - [N/A] MERIT Internodal Protocol * - ``mib`` - N/A - [N/A] Management Information Base * - ``mihcs`` - N/A - [N/A] MIH Command Services [:rfc:`5679`] * - ``mihes`` - N/A - [N/A] MIH Event Services [:rfc:`5679`] * - ``mihis`` - N/A - [N/A] MIH Information Services [:rfc:`5679`] * - ``mfe-nsp`` - N/A - [N/A] MFE Network Services Protocol * - ``mit-subnet`` - N/A - [N/A] MIT Subnet Support * - ``mux`` - N/A - [N/A] Multiplexing Protocol * - ``netblt`` - N/A - [N/A] Bulk Data Transfer Protocol * - ``neted`` - N/A - [N/A] Network Standard Text Editor * - ``netrjs`` - N/A - [N/A] Remote Job Service * - ``netconf-beep`` - N/A - [N/A] NETCONF over BEEP [:rfc:`4744`][:rfc:`9900`] * - ``netconfsoapbeep`` - N/A - [N/A] NETCONF for SOAP over BEEP [:rfc:`4743`][:rfc:`9900`] * - ``netconfsoaphttp`` - N/A - [N/A] NETCONF for SOAP over HTTPS [:rfc:`4743`][:rfc:`9900`] * - ``nfile`` - N/A - [N/A] A File Access Protocol * - ``nvp-ii`` - N/A - [N/A] Network Voice Protocol * - ``ospf`` - N/A - [N/A] Open Shortest Path First Interior GW Protocol * - ``pcmail`` - N/A - [N/A] Pcmail Transport Protocol * - ``ppp`` - N/A - [N/A] Point-to-Point Protocol * - ``prm`` - N/A - [N/A] Packet Radio Measurement * - ``pup`` - N/A - [N/A] PUP Protocol * - ``quote`` - N/A - [N/A] Quote of the Day Protocol * - ``rarp`` - N/A - [N/A] A Reverse Address Resolution Protocol * - ``ratp`` - N/A - [N/A] Reliable Asynchronous Transfer Protocol * - ``rdp`` - N/A - [N/A] Reliable Data Protocol; [N/A] Windows Remote Desktop Protocol * - ``rip`` - N/A - [N/A] Routing Information Protocol * - ``rvd`` - N/A - [N/A] Remote Virtual Disk Protocol * - ``sat-expak`` - N/A - [N/A] Satnet and Backroom EXPAK * - ``sat-mon`` - N/A - [N/A] SATNET Monitoring * - ``smi`` - N/A - [N/A] Structure of Management Information * - ``stp`` - N/A - [N/A] Stream Protocol * - ``sun-rpc`` - N/A - [N/A] SUN Remote Procedure Call * - ``tcp`` - N/A - [N/A] Transmission Control Protocol * - ``tcp-aco`` - N/A - [N/A] TCP Alternate Checksum Option * - ``thinwire`` - N/A - [N/A] Thinwire Protocol * - ``tp-tcp`` - N/A - [N/A] ISO Transport Service on top of the TCP * - ``trunk-1`` - N/A - [N/A] Trunk-1 Protocol * - ``trunk-2`` - N/A - [N/A] Trunk-2 Protocol * - ``ucl`` - N/A - [N/A] University College London Protocol * - ``udp`` - N/A - [N/A] User Datagram Protocol * - ``users`` - N/A - [N/A] Active Users Protocol * - ``via-ftp`` - N/A - [N/A] VIA Systems-File Transfer Protocol * - ``visa`` - N/A - [N/A] VISA Protocol * - ``vmtp`` - N/A - [N/A] Versatile Message Transaction Protocol * - ``wb-expak`` - N/A - [N/A] Wideband EXPAK * - ``wb-mon`` - N/A - [N/A] Wideband Monitoring * - ``xnet`` - N/A - [N/A] Cross Net Debugger * - ``xns-idp`` - N/A - [N/A] Xerox NS IDP * - ``1password`` - N/A - [N/A] 1Password Password Manager data sharing and synchronization protocol * - ``a-d-sync`` - N/A - [N/A] Altos Design Synchronization protocol * - ``abi-instrument`` - N/A - [N/A] Applied Biosystems Universal Instrument Framework * - ``accessdata-f2d`` - N/A - [N/A] FTK2 Database Discovery Service * - ``accessdata-f2w`` - N/A - [N/A] FTK2 Backend Processing Agent Service * - ``accessone`` - N/A - [N/A] Strix Systems 5S/AccessOne protocol * - ``accountedge`` - N/A - [N/A] MYOB AccountEdge * - ``acrobatsrv`` - N/A - [N/A] Adobe Acrobat * - ``actionitems`` - N/A - [N/A] ActionItems * - ``activeraid`` - N/A - [N/A] Active Storage Proprietary Device Management Protocol * - ``activeraid-ssl`` - N/A - [N/A] Encrypted transport of Active Storage Proprietary Device Management Protocol * - ``addressbook`` - N/A - [N/A] Address-O-Matic * - ``adnodes`` - N/A - [N/A] difusi Cloud based plug & play network synchronization protocol, content pool database discovery, and cloudOS SAaS discovery protocol. * - ``adobe-vc`` - N/A - [N/A] Adobe Version Cue * - ``adisk`` - N/A - [N/A] Automatic Disk Discovery * - ``adpro-setup`` - N/A - [N/A] ADPRO Security Device Setup * - ``aecoretech`` - N/A - [N/A] Apple Application Engineering Services * - ``aeroflex`` - N/A - [N/A] Aeroflex instrumentation and software * - ``airport`` - N/A - [N/A] AirPort Base Station * - ``airprojector`` - N/A - [N/A] AirProjector * - ``airsharing`` - N/A - [N/A] Air Sharing * - ``airsharingpro`` - N/A - [N/A] Air Sharing Pro * - ``amiphd-p2p`` - N/A - [N/A] P2PTapWar Sample Application from "iPhone SDK Development" Book * - ``ams-htm`` - N/A - [N/A] Proprietary protocol for Accu-Med HTM * - ``animolmd`` - N/A - [N/A] Animo License Manager * - ``animobserver`` - N/A - [N/A] Animo Batch Server * - ``anquetsync`` - N/A - [N/A] Anquet map synchronization between desktop and handheld devices * - ``appelezvous`` - N/A - [N/A] Appelezvous * - ``apple-ausend`` - N/A - [N/A] Apple Audio Units * - ``applerdbg`` - N/A - [N/A] Apple Remote Debug Services (OpenGL Profiler) * - ``appletv`` - N/A - [N/A] Apple TV * - ``appletv-itunes`` - N/A - [N/A] Apple TV discovery of iTunes * - ``appletv-pair`` - N/A - [N/A] Apple TV Pairing * - ``aquamon`` - N/A - [N/A] AquaMon * - ``aroundsound`` - N/A - [N/A] AroundSound's information sharing protocol * - ``astralite`` - N/A - [N/A] Astralite * - ``async`` - N/A - [N/A] address-o-sync * - ``atlassianapp`` - N/A - [N/A] Atlassian Application (JIRA, Confluence, Fisheye, Crucible, Crowd, Bamboo) discovery service * - ``av`` - N/A - [N/A] Allen Vanguard Hardware Service * - ``axis-video`` - N/A - [N/A] Axis Video Cameras * - ``b3d-convince`` - N/A - [N/A] 3M Unitek Digital Orthodontic System * - ``babyphone`` - N/A - [N/A] BabyPhone * - ``bdsk`` - N/A - [N/A] BibDesk Sharing * - ``beacon`` - N/A - [N/A] Beacon Remote Service * - ``beamer`` - N/A - [N/A] Beamer Data Sharing Protocol * - ``beatpack`` - N/A - [N/A] BeatPack Synchronization Server for BeatMaker * - ``beep`` - N/A - [N/A] Xgrid Technology Preview * - ``bender`` - N/A - [N/A] Bender Communication Protocol * - ``bfagent`` - N/A - [N/A] BuildForge Agent * - ``bigbangchess`` - N/A - [N/A] Big Bang Chess * - ``bigbangmancala`` - N/A - [N/A] Big Bang Mancala * - ``bittorrent`` - N/A - [N/A] BitTorrent Zeroconf Peer Discovery Protocol * - ``blackbook`` - N/A - [N/A] Little Black Book Information Exchange Protocol * - ``bookworm`` - N/A - [N/A] Bookworm Client Discovery * - ``bousg`` - N/A - [N/A] Bag Of Unusual Strategy Games * - ``bri`` - N/A - [N/A] RFID Reader Basic Reader Interface * - ``bsqdea`` - N/A - [N/A] Backup Simplicity * - ``caltalk`` - N/A - [N/A] CalTalk * - ``cardsend`` - N/A - [N/A] Card Send Protocol * - ``cctv`` - N/A - [N/A] IP and Closed-Circuit Television for Securitiy applications * - ``cheat`` - N/A - [N/A] The Cheat * - ``chess`` - N/A - [N/A] Project Gridlock * - ``chfts`` - N/A - [N/A] Fluid Theme Server * - ``chili`` - N/A - [N/A] The CHILI Radiology System * - ``cip4discovery`` - N/A - [N/A] Discovery of JDF (CIP4 Job Definition Format) enabled devices * - ``clipboard`` - N/A - [N/A] Clipboard Sharing * - ``clscts`` - N/A - [N/A] Oracle CLS Cluster Topology Service * - ``collection`` - N/A - [N/A] Published Collection Object * - ``com-ocs-es-mcc`` - N/A - [N/A] ElectraStar media centre control protocol * - ``contactserver`` - N/A - [N/A] Now Contact * - ``corroboree`` - N/A - [N/A] Corroboree Server * - ``cpnotebook2`` - N/A - [N/A] NoteBook 2 * - ``cw-codetap`` - N/A - [N/A] CodeWarrior HTI Xscale PowerTAP * - ``cw-dpitap`` - N/A - [N/A] CodeWarrior HTI DPI PowerTAP * - ``cw-oncetap`` - N/A - [N/A] CodeWarrior HTI OnCE PowerTAP * - ``cw-powertap`` - N/A - [N/A] CodeWarrior HTI COP PowerTAP * - ``cytv`` - N/A - [N/A] CyTV - Network streaming for Elgato EyeTV * - ``dacp`` - N/A - [N/A] Digital Audio Control Protocol (iTunes) * - ``dancepartner`` - N/A - [N/A] Dance partner application for iPhone * - ``dataturbine`` - N/A - [N/A] Open Source DataTurbine Streaming Data Middleware * - ``device-info`` - N/A - [N/A] Device Info * - ``dictation`` - N/A - [N/A] Use of a dictation service by a hand-held device * - ``difi`` - N/A - [N/A] EyeHome * - ``disconnect`` - N/A - [N/A] DisConnect Peer to Peer Game Protocol * - ``dist-opencl`` - N/A - [N/A] Distributed OpenCL discovery protocol * - ``ditrios`` - N/A - [N/A] Ditrios SOA Framework Protocol * - ``divelogsync`` - N/A - [N/A] Dive Log Data Sharing and Synchronization Protocol * - ``dns-sd`` - N/A - [N/A] DNS Service Discovery * - ``dop`` - N/A - [N/A] Roar (Death of Productivity) * - ``dropcopy`` - N/A - [N/A] DropCopy * - ``dsgsync`` - N/A - [N/A] Datacolor SpyderGallery Desktop Sync Protocol * - ``dsl-sync`` - N/A - [N/A] Data Synchronization Protocol for Discovery Software products * - ``dtrmtdesktop`` - N/A - [N/A] Desktop Transporter Remote Desktop Protocol * - ``dxtgsync`` - N/A - [N/A] Documents To Go Desktop Sync Protocol * - ``ea-dttx-poker`` - N/A - [N/A] Protocol for EA Downtown Texas Hold 'em * - ``earphoria`` - N/A - [N/A] Earphoria * - ``eb-amuzi`` - N/A - [N/A] Amuzi peer-to-peer session synchronization protocol * - ``ebms`` - N/A - [N/A] ebXML Messaging * - ``ecms`` - N/A - [N/A] Northrup Grumman/Mission Systems/ESL Data Flow Protocol * - ``ebreg`` - N/A - [N/A] ebXML Registry * - ``ecbyesfsgksc`` - N/A - [N/A] Net Monitor Anti-Piracy Service * - ``egistix`` - N/A - [N/A] Egistix Auto-Discovery * - ``eheap`` - N/A - [N/A] Interactive Room Software Infrastructure (Event Sharing) * - ``embrace`` - N/A - [N/A] DataEnvoy * - ``ep`` - N/A - [N/A] Endpoint Protocol (EP) for use in Home Automation systems * - ``eucalyptus`` - N/A - [N/A] Eucalyptus Discovery * - ``eventserver`` - N/A - [N/A] Now Up-to-Date * - ``evs-notif`` - N/A - [N/A] EVS Notification Center Protocol * - ``ewalletsync`` - N/A - [N/A] Synchronization Protocol for Ilium Software's eWallet * - ``example`` - N/A - [N/A] Example Service Type * - ``exb`` - N/A - [N/A] Exbiblio Cascading Service Protocol * - ``extensissn`` - N/A - [N/A] Extensis Serial Number * - ``eyetvsn`` - N/A - [N/A] EyeTV Sharing * - ``facespan`` - N/A - [N/A] FaceSpan * - ``faxstfx`` - N/A - [N/A] FAXstf * - ``feed-sharing`` - N/A - [N/A] NetNewsWire 2.0 * - ``firetask`` - N/A - [N/A] Firetask task sharing and synchronization protocol * - ``fish`` - N/A - [N/A] Fish * - ``fix`` - N/A - [N/A] Financial Information Exchange (FIX) Protocol * - ``fjork`` - N/A - [N/A] Fjork * - ``fmserver-admin`` - N/A - [N/A] FileMaker Server Administration Communication Service * - ``fontagentnode`` - N/A - [N/A] FontAgent Pro * - ``foxtrot-serv`` - N/A - [N/A] FoxTrot Search Server Discovery Service * - ``foxtrot-start`` - N/A - [N/A] FoxTrot Professional Search Discovery Service * - ``frameforge-lic`` - N/A - [N/A] FrameForge License * - ``freehand`` - N/A - [N/A] FreeHand MusicPad Pro Interface Protocol * - ``frog`` - N/A - [N/A] Frog Navigation Systems * - ``ftpcroco`` - N/A - [N/A] Crocodile FTP Server * - ``garagepad`` - N/A - [N/A] Entrackment Client Service * - ``gforce-ssmp`` - N/A - [N/A] G-Force Control via SoundSpectrum's SSMP TCP Protocol * - ``glasspad`` - N/A - [N/A] GlassPad Data Exchange Protocol * - ``glasspadserver`` - N/A - [N/A] GlassPadServer Data Exchange Protocol * - ``glrdrvmon`` - N/A - [N/A] OpenGL Driver Monitor * - ``gpnp`` - N/A - [N/A] Grid Plug and Play * - ``grillezvous`` - N/A - [N/A] Roxio ToastAnywhere(tm) Recorder Sharing * - ``growl`` - N/A - [N/A] Growl * - ``guid`` - N/A - [N/A] Special service type for resolving by GUID (Globally Unique Identifier) * - ``h323`` - N/A - [N/A] H.323 Real-time audio, video and data communication call setup protocol * - ``help`` - N/A - [N/A] HELP command [:rfc:`1078`] * - ``hg`` - N/A - [N/A] Mercurial web-based repository access * - ``hinz`` - N/A - [N/A] HINZMobil Synchronization protocol * - ``hmcp`` - N/A - [N/A] Home Media Control Protocol * - ``home-sharing`` - N/A - [N/A] iTunes Home Sharing * - ``homeauto`` - N/A - [N/A] iDo Technology Home Automation Protocol * - ``hotwayd`` - N/A - [N/A] Hotwayd * - ``howdy`` - N/A - [N/A] Howdy messaging and notification protocol * - ``hpr-bldlnx`` - N/A - [N/A] HP Remote Build System for Linux-based Systems * - ``hpr-bldwin`` - N/A - [N/A] HP Remote Build System for Microsoft Windows Systems * - ``hpr-db`` - N/A - [N/A] Identifies systems that house databases for the Remote Build System and Remote Test System * - ``hpr-rep`` - N/A - [N/A] HP Remote Repository for Build and Test Results * - ``hpr-toollnx`` - N/A - [N/A] HP Remote System that houses compilers and tools for Linux- based Systems * - ``hpr-toolwin`` - N/A - [N/A] HP Remote System that houses compilers and tools for Microsoft Windows Systems * - ``hpr-tstlnx`` - N/A - [N/A] HP Remote Test System for Linux-based Systems * - ``hpr-tstwin`` - N/A - [N/A] HP Remote Test System for Microsoft Windows Systems * - ``hs-off`` - N/A - [N/A] Hobbyist Software Off Discovery * - ``htsp`` - N/A - [N/A] Home Tv Streaming Protocol * - ``hyperstream`` - N/A - [N/A] Atempo HyperStream deduplication server * - ``iad1`` - N/A - [N/A] BBN IAD * - ``iad2`` - N/A - [N/A] BBN IAD * - ``iad3`` - N/A - [N/A] BBN IAD * - ``ibiz`` - N/A - [N/A] iBiz Server * - ``ica-networking`` - N/A - [N/A] Image Capture Networking * - ``ican`` - N/A - [N/A] Northrup Grumman/TASC/ICAN Protocol * - ``ichalkboard`` - N/A - [N/A] iChalk * - ``ichat`` - N/A - [N/A] iChat 1.0 * - ``ici`` - N/A - [N/A] ICI * - ``iconquer`` - N/A - [N/A] iConquer * - ``idata`` - N/A - [N/A] Generic Data Acquisition and Control Protocol * - ``idcws`` - N/A - [N/A] Intermec Device Configuration Web Services * - ``idsync`` - N/A - [N/A] SplashID Synchronization Service * - ``iffl`` - N/A - [N/A] iFFL Bonjour service for communication between client and server applications. * - ``ifolder`` - N/A - [N/A] Published iFolder * - ``ihouse`` - N/A - [N/A] Idle Hands iHouse Protocol * - ``ii-drills`` - N/A - [N/A] Instant Interactive Drills * - ``ii-konane`` - N/A - [N/A] Instant Interactive Konane * - ``ilynx`` - N/A - [N/A] iLynX * - ``imidi`` - N/A - [N/A] iMidi * - ``indigo-dvr`` - N/A - [N/A] Indigo Security Digital Video Recorders * - ``inova-ontrack`` - N/A - [N/A] Inova Solutions OnTrack Display Protocol * - ``ipbroadcaster`` - N/A - [N/A] IP Broadcaster * - ``ipspeaker`` - N/A - [N/A] IP Speaker Control Protocol * - ``irelay`` - N/A - [N/A] iRelay application discovery service * - ``irmc`` - N/A - [N/A] Intego Remote Management Console * - ``isparx`` - N/A - [N/A] iSparx * - ``ispq-vc`` - N/A - [N/A] iSpQ VideoChat * - ``ishare`` - N/A - [N/A] iShare * - ``isticky`` - N/A - [N/A] iSticky * - ``istorm`` - N/A - [N/A] iStorm * - ``itis-device`` - N/A - [N/A] IT-IS International Ltd. Device * - ``itsrc`` - N/A - [N/A] iTunes Socket Remote Control * - ``ivef`` - N/A - [N/A] Inter VTS Exchange Format * - ``iwork`` - N/A - [N/A] iWork Server * - ``jcan`` - N/A - [N/A] Northrup Grumman/TASC/JCAN Protocol * - ``jeditx`` - N/A - [N/A] Jedit X * - ``jini`` - N/A - [N/A] Jini Service Discovery * - ``jtag`` - N/A - [N/A] Proprietary * - ``ktp`` - N/A - [N/A] Kabira Transaction Platform * - ``la-maint`` - N/A - [N/A] IMP Logical Address Maintenance * - ``lan2p`` - N/A - [N/A] Lan2P Peer-to-Peer Network Protocol * - ``lapse`` - N/A - [N/A] Gawker * - ``leaf`` - N/A - [N/A] Lua Embedded Application Framework * - ``lexicon`` - N/A - [N/A] Lexicon Vocabulary Sharing * - ``liaison`` - N/A - [N/A] Liaison * - ``library`` - N/A - [N/A] Delicious Library 2 Collection Data Sharing Protocol * - ``libratone`` - N/A - [N/A] Protocol for setup and control of Libratone products * - ``licor`` - N/A - [N/A] LI-COR Biosciences instrument discovery * - ``llrp-secure`` - N/A - [N/A] RFID reader Low Level Reader Protocol over SSL/TLS * - ``lobby`` - N/A - [N/A] Gobby * - ``lonbridge`` - N/A - [N/A] Echelon LonBridge Server * - ``lontalk`` - N/A - [N/A] LonTalk over IP (ANSI 852) * - ``lonworks`` - N/A - [N/A] Echelon LNS Remote Client * - ``lsys-appserver`` - N/A - [N/A] Linksys One Application Server API * - ``lsys-camera`` - N/A - [N/A] Linksys One Camera API * - ``lsys-ezcfg`` - N/A - [N/A] LinkSys EZ Configuration * - ``lsys-oamp`` - N/A - [N/A] LinkSys Operations, Administration, Management, and Provisioning * - ``lux-dtp`` - N/A - [N/A] Lux Solis Data Transport Protocol * - ``lxi`` - N/A - [N/A] LXI * - ``lyrics`` - N/A - [N/A] iPod Lyrics Service * - ``macfoh`` - N/A - [N/A] MacFOH * - ``macfoh-admin`` - N/A - [N/A] MacFOH admin services * - ``macfoh-db`` - N/A - [N/A] MacFOH database * - ``macfoh-remote`` - N/A - [N/A] MacFOH Remote * - ``macminder`` - N/A - [N/A] Mac Minder * - ``maestro`` - N/A - [N/A] Maestro Music Sharing Service * - ``magicdice`` - N/A - [N/A] Magic Dice Game Protocol * - ``mandos`` - N/A - [N/A] Mandos Password Server * - ``matrix`` - N/A - [N/A] MATRIX Remote AV Switching * - ``mbconsumer`` - N/A - [N/A] MediaBroker++ Consumer * - ``mbproducer`` - N/A - [N/A] MediaBroker++ Producer * - ``mbserver`` - N/A - [N/A] MediaBroker++ Server * - ``mconnect`` - N/A - [N/A] ClairMail Connect * - ``mcrcp`` - N/A - [N/A] MediaCentral * - ``mediaboard1`` - N/A - [N/A] MediaBoardONE Asset and Information Manager data sharing and synchronization protocol * - ``mesamis`` - N/A - [N/A] Mes Amis * - ``mi-raysat`` - N/A - [N/A] Mental Ray for Maya * - ``modolansrv`` - N/A - [N/A] modo LAN Services * - ``moneysync`` - N/A - [N/A] SplashMoney Synchronization Service * - ``moneyworks`` - N/A - [N/A] MoneyWorks Gold and MoneyWorks Datacentre network service * - ``moodring`` - N/A - [N/A] Bonjour Mood Ring tutorial program * - ``mother`` - N/A - [N/A] Mother script server protocol * - ``movieslate`` - N/A - [N/A] MovieSlate digital clapperboard * - ``mp3sushi`` - N/A - [N/A] MP3 Sushi * - ``mqtt`` - N/A - [N/A] IBM MQ Telemetry Transport Broker * - ``mslingshot`` - N/A - [N/A] Martian SlingShot * - ``mumble`` - N/A - [N/A] Mumble VoIP communication protocol * - ``musicmachine`` - N/A - [N/A] Protocol for a distributed music playing service * - ``mysync`` - N/A - [N/A] MySync Protocol * - ``mttp`` - N/A - [N/A] MenuTunes Sharing * - ``mxim-art2`` - N/A - [N/A] Maxim Integrated Products Automated Roadtest Mk II * - ``mxim-ice`` - N/A - [N/A] Maxim Integrated Products In-circuit Emulator * - ``mxs`` - N/A - [N/A] MatrixStore * - ``ncbroadcast`` - N/A - [N/A] Network Clipboard Broadcasts * - ``ncdirect`` - N/A - [N/A] Network Clipboard Direct Transfers * - ``ncsyncserver`` - N/A - [N/A] Network Clipboard Sync Server * - ``netrestore`` - N/A - [N/A] NetRestore * - ``ntlx-arch`` - N/A - [N/A] American Dynamics Intellex Archive Management Service * - ``ntlx-ent`` - N/A - [N/A] American Dynamics Intellex Enterprise Management Service * - ``ntlx-video`` - N/A - [N/A] American Dynamics Intellex Video Service * - ``obf`` - N/A - [N/A] Observations Framework * - ``objective`` - N/A - [N/A] Means for clients to locate servers in an Objective (http://www.objective.com) instance. * - ``oce`` - N/A - [N/A] Oce Common Exchange Protocol * - ``od-master`` - N/A - [N/A] OpenDirectory Master * - ``odabsharing`` - N/A - [N/A] OD4Contact * - ``odisk`` - N/A - [N/A] Optical Disk Sharing * - ``officetime-sync`` - N/A - [N/A] OfficeTime Synchronization Protocol * - ``ofocus-conf`` - N/A - [N/A] OmniFocus setting configuration * - ``ofocus-sync`` - N/A - [N/A] OmniFocus document synchronization * - ``oma-bcast-sg`` - N/A - [N/A] OMA BCAST Service Guide Discovery Service * - ``omni-bookmark`` - N/A - [N/A] OmniWeb * - ``omni-live`` - N/A - [N/A] Service for remote control of Omnisphere virtual instrument * - ``openbase`` - N/A - [N/A] OpenBase SQL * - ``oprofile`` - N/A - [N/A] oprofile server protocol * - ``ovready`` - N/A - [N/A] ObjectVideo OV Ready Protocol * - ``owhttpd`` - N/A - [N/A] OWFS (1-wire file system) web server * - ``parentcontrol`` - N/A - [N/A] Remote Parental Controls * - ``passwordwallet`` - N/A - [N/A] PasswordWallet Data Synchronization Protocol * - ``pcast`` - N/A - [N/A] Mac OS X Podcast Producer Server * - ``pgpkey-hkp`` - N/A - [N/A] Horowitz Key Protocol (HKP) * - ``pgpkey-http`` - N/A - [N/A] PGP Keyserver using HTTP/1.1 * - ``pgpkey-https`` - N/A - [N/A] PGP Keyserver using HTTPS * - ``pgpkey-ldap`` - N/A - [N/A] PGP Keyserver using LDAP * - ``pgpkey-mailto`` - N/A - [N/A] PGP Key submission using SMTP * - ``photoparata`` - N/A - [N/A] Photo Parata Event Photography Software * - ``pictua`` - N/A - [N/A] Pictua Intercommunication Protocol * - ``piesync`` - N/A - [N/A] pieSync Computer to Computer Synchronization * - ``piu`` - N/A - [N/A] Pedestal Interface Unit by RPM-PSI * - ``pkixrep`` - N/A - [N/A] Public Key Infrastructure Repository Locator Service [:rfc:`4386`] * - ``poch`` - N/A - [N/A] Parallel OperatiOn and Control Heuristic (Pooch) * - ``pokeeye`` - N/A - [N/A] Communication channel for "Poke Eye" Elgato EyeTV remote controller * - ``powereasy-erp`` - N/A - [N/A] PowerEasy ERP * - ``powereasy-pos`` - N/A - [N/A] PowerEasy Point of Sale * - ``pplayer-ctrl`` - N/A - [N/A] Piano Player Remote Control * - ``presence`` - N/A - [N/A] Peer-to-peer messaging / Link-Local Messaging * - ``print-caps`` - N/A - [N/A] Retrieve a description of a device's print capabilities * - ``profilemac`` - N/A - [N/A] Profile for Mac medical practice management software * - ``prolog`` - N/A - [N/A] Prolog * - ``protonet`` - N/A - [N/A] Protonet node and service discovery protocol * - ``psia`` - N/A - [N/A] Physical Security Interoperability Alliance Protocol * - ``ptnetprosrv2`` - N/A - [N/A] PTNetPro Service * - ``ptp-req`` - N/A - [N/A] PTP Initiation Request Protocol * - ``puzzle`` - N/A - [N/A] Protocol used for puzzle games * - ``qbox`` - N/A - [N/A] QBox Appliance Locator * - ``qttp`` - N/A - [N/A] QuickTime Transfer Protocol * - ``quinn`` - N/A - [N/A] Quinn Game Server * - ``rakket`` - N/A - [N/A] Rakket Client Protocol * - ``radicle-node`` - N/A - [N/A] Radicle peer to peer network * - ``radiotag`` - N/A - [N/A] RadioTAG: Event tagging for radio services * - ``radiovis`` - N/A - [N/A] RadioVIS: Visualisation for radio services * - ``radioepg`` - N/A - [N/A] RadioEPG: Electronic Programme Guide for radio services * - ``raop`` - N/A - [N/A] Remote Audio Output Protocol (AirTunes) * - ``rbr`` - N/A - [N/A] RBR Instrument Communication * - ``rce`` - N/A - [N/A] PowerCard * - ``realplayfavs`` - N/A - [N/A] RealPlayer Shared Favorites * - ``remote`` - N/A - [N/A] Remote Device Control Protocol * - ``remoteburn`` - N/A - [N/A] LaCie Remote Burn * - ``renderpipe`` - N/A - [N/A] ARTvps RenderDrive/PURE Renderer Protocol * - ``rendezvouspong`` - N/A - [N/A] RendezvousPong * - ``renkara-sync`` - N/A - [N/A] Renkara synchronization protocol * - ``resol-vbus`` - N/A - [N/A] RESOL VBus * - ``retrospect`` - N/A - [N/A] Retrospect backup and restore service * - ``rfbc`` - N/A - [N/A] Remote Frame Buffer Client (Used by VNC viewers in listen- mode) * - ``rfid`` - N/A - [N/A] RFID Reader Mach1(tm) Protocol * - ``riousbprint`` - N/A - [N/A] Remote I/O USB Printer Protocol * - ``roku-rcp`` - N/A - [N/A] Roku Control Protocol * - ``rql`` - N/A - [N/A] RemoteQuickLaunch * - ``rr-disc`` - N/A - [N/A] Robot Raconteur discovery * - ``rsmp-server`` - N/A - [N/A] Remote System Management Protocol (Server Instance) * - ``rubygems`` - N/A - [N/A] RubyGems GemServer * - ``safarimenu`` - N/A - [N/A] Safari Menu * - ``sallingbridge`` - N/A - [N/A] Salling Clicker Sharing * - ``sallingclicker`` - N/A - [N/A] Salling Clicker Service * - ``salutafugijms`` - N/A - [N/A] Salutafugi Peer-To-Peer Java Message Service Implementation * - ``sandvox`` - N/A - [N/A] Sandvox * - ``sc-golf`` - N/A - [N/A] StrawberryCat Golf Protocol * - ``scanner`` - N/A - [N/A] Bonjour Scanning * - ``schick`` - N/A - [N/A] Schick * - ``scone`` - N/A - [N/A] Scone * - ``scpi-raw`` - N/A - [N/A] IEEE 488.2 (SCPI) Socket * - ``scpi-telnet`` - N/A - [N/A] IEEE 488.2 (SCPI) Telnet * - ``sdsharing`` - N/A - [N/A] Speed Download * - ``see`` - N/A - [N/A] SubEthaEdit 2 * - ``seecard`` - N/A - [N/A] seeCard * - ``senteo-http`` - N/A - [N/A] Senteo Assessment Software Protocol * - ``sentillion-vlc`` - N/A - [N/A] Sentillion Vault System * - ``sentillion-vlt`` - N/A - [N/A] Sentillion Vault Systems Cluster * - ``sepvsync`` - N/A - [N/A] SEPV Application Data Synchronization Protocol * - ``serendipd`` - N/A - [N/A] serendiPd Shared Patches for Pure Data * - ``servereye`` - N/A - [N/A] ServerEye AgentContainer Communication Protocol * - ``servermgr`` - N/A - [N/A] Mac OS X Server Admin * - ``services`` - N/A - [N/A] DNS Service Discovery * - ``sessionfs`` - N/A - [N/A] Session File Sharing * - ``sftp-ssh`` - N/A - [N/A] Secure File Transfer Protocol over SSH * - ``sge-exec`` - N/A - [N/A] Sun Grid Engine (Execution Host) * - ``sge-qmaster`` - N/A - [N/A] Sun Grid Engine (Master) * - ``shifter`` - N/A - [N/A] Window Shifter server protocol * - ``shipsgm`` - N/A - [N/A] Swift Office Ships * - ``shipsinvit`` - N/A - [N/A] Swift Office Ships * - ``shoppersync`` - N/A - [N/A] SplashShopper Synchronization Service * - ``shoutcast`` - N/A - [N/A] Nicecast * - ``simmon`` - N/A - [N/A] Medical simulation patient monitor syncronisation protocol * - ``simusoftpong`` - N/A - [N/A] simusoftpong iPhone game protocol * - ``sipuri`` - N/A - [N/A] Session Initiation Protocol Uniform Resource Identifier * - ``sironaxray`` - N/A - [N/A] Sirona Xray Protocol * - ``skype`` - N/A - [N/A] Skype * - ``slimcli`` - N/A - [N/A] SliMP3 Server Command-Line Interface * - ``slimhttp`` - N/A - [N/A] SliMP3 Server Web Interface * - ``smartenergy`` - N/A - [N/A] Smart Energy Profile * - ``smb`` - N/A - [N/A] Server Message Block over TCP/IP * - ``sms`` - N/A - [N/A] Short Text Message Sending and Delivery Status Service * - ``smsync`` - N/A - [N/A] Syncellence file synchronization protocol * - ``soap`` - N/A - [N/A] Simple Object Access Protocol * - ``socketcloud`` - N/A - [N/A] Socketcloud distributed application framework * - ``souschef`` - N/A - [N/A] SousChef Recipe Sharing Protocol * - ``sox`` - N/A - [N/A] Simple Object eXchange * - ``sparechange`` - N/A - [N/A] SpareChange data sharing protocol * - ``sparql`` - N/A - [N/A] SPARQL Protocol and RDF Query Language * - ``spearcat`` - N/A - [N/A] sPearCat Host Discovery * - ``spincrisis`` - N/A - [N/A] Spin Crisis * - ``spl-itunes`` - N/A - [N/A] launchTunes * - ``spr-itunes`` - N/A - [N/A] netTunes * - ``splashsync`` - N/A - [N/A] SplashData Synchronization Service * - ``ssscreenshare`` - N/A - [N/A] Screen Sharing * - ``strateges`` - N/A - [N/A] Strateges * - ``stanza`` - N/A - [N/A] Lexcycle Stanza service for discovering shared books * - ``stickynotes`` - N/A - [N/A] Sticky Notes * - ``supple`` - N/A - [N/A] Supple Service protocol * - ``surveillus`` - N/A - [N/A] Surveillus Networks Discovery Protocol * - ``svn`` - N/A - [N/A] Subversion * - ``swcards`` - N/A - [N/A] Signwave Card Sharing Protocol * - ``switcher`` - N/A - [N/A] Wireless home control remote control protocol * - ``swordfish`` - N/A - [N/A] Swordfish Protocol for Input/Output * - ``swyp`` - N/A - [N/A] Framework for transferring any file from any app, to any app on any device: simply with a swÿp. * - ``sxqdea`` - N/A - [N/A] Synchronize! Pro X * - ``sybase-tds`` - N/A - [N/A] Sybase Server * - ``syncopation`` - N/A - [N/A] Syncopation Synchronization Protocol by Sonzea * - ``syncqdea`` - N/A - [N/A] Synchronize! X Plus 2.0 * - ``synergy`` - N/A - [N/A] Synergy Peer Discovery * - ``synksharing`` - N/A - [N/A] SynkSharing synchronization protocol * - ``taccounting`` - N/A - [N/A] Data Transmission and Synchronization * - ``tango`` - N/A - [N/A] Tango Remote Control Protocol * - ``tapinoma-ecs`` - N/A - [N/A] Tapinoma Easycontact receiver * - ``taskcoachsync`` - N/A - [N/A] Task Coach Two-way Synchronization Protocol for iPhone * - ``tbricks`` - N/A - [N/A] tbricks internal protocol * - ``tcode`` - N/A - [N/A] Time Code * - ``tcu`` - N/A - [N/A] Tracking Control Unit by RPM-PSI * - ``te-faxserver`` - N/A - [N/A] TE-SYSTEMS GmbH Fax Server Daemon * - ``teamlist`` - N/A - [N/A] ARTIS Team Task * - ``tera-fsmgr`` - N/A - [N/A] Terascala Filesystem Manager Protocol * - ``tera-mp`` - N/A - [N/A] Terascala Maintenance Protocol * - ``tf-redeye`` - N/A - [N/A] ThinkFlood RedEye IR bridge * - ``thumbwrestling`` - N/A - [N/A] tinkerbuilt Thumb Wrestling game * - ``ticonnectmgr`` - N/A - [N/A] TI Connect Manager Discovery Service * - ``tinavigator`` - N/A - [N/A] TI Navigator Hub 1.0 Discovery Service * - ``tivo-hme`` - N/A - [N/A] TiVo Home Media Engine Protocol * - ``tivo-music`` - N/A - [N/A] TiVo Music Protocol * - ``tivo-photos`` - N/A - [N/A] TiVo Photos Protocol * - ``tivo-remote`` - N/A - [N/A] TiVo Remote Protocol * - ``tivo-videos`` - N/A - [N/A] TiVo Videos Protocol * - ``todogwa`` - N/A - [N/A] 2Do Sync Helper Tool for Mac OS X and PCs * - ``tomboy`` - N/A - [N/A] Tomboy * - ``toothpicserver`` - N/A - [N/A] ToothPics Dental Office Support Server * - ``touch-able`` - N/A - [N/A] iPhone and iPod touch Remote Controllable * - ``touch-remote`` - N/A - [N/A] iPhone and iPod touch Remote Pairing * - ``tri-vis-client`` - N/A - [N/A] triCerat Simplify Visibility Client * - ``tri-vis-server`` - N/A - [N/A] triCerat Simplify Visibility Server * - ``tryst`` - N/A - [N/A] Tryst * - ``tt4inarow`` - N/A - [N/A] Trivial Technology's 4 in a Row * - ``ttcheckers`` - N/A - [N/A] Trivial Technology's Checkers * - ``ttp4daemon`` - N/A - [N/A] TechTool Pro 4 Anti-Piracy Service * - ``tunage`` - N/A - [N/A] Tunage Media Control Service * - ``tuneranger`` - N/A - [N/A] TuneRanger * - ``ubertragen`` - N/A - [N/A] Ubertragen * - ``uddi`` - N/A - [N/A] Universal Description, Discovery and Integration * - ``uddi-inq`` - N/A - [N/A] Universal Description, Discovery and Integration Inquiry * - ``uddi-pub`` - N/A - [N/A] Universal Description, Discovery and Integration Publishing * - ``uddi-sub`` - N/A - [N/A] Universal Description, Discovery and Integration Subscription * - ``uddi-sec`` - N/A - [N/A] Universal Description, Discovery and Integration Security * - ``upnp`` - N/A - [N/A] Universal Plug and Play * - ``urlbookmark`` - N/A - [N/A] URL Advertising * - ``uswi`` - N/A - [N/A] Universal Switching Corporation products * - ``utest`` - N/A - [N/A] uTest * - ``uwsgi`` - N/A - [N/A] Unbit Web Server Gateway Interface * - ``ve-decoder`` - N/A - [N/A] American Dynamics VideoEdge Decoder Control Service * - ``ve-encoder`` - N/A - [N/A] American Dynamics VideoEdge Encoder Control Service * - ``ve-recorder`` - N/A - [N/A] American Dynamics VideoEdge Recorder Control Service * - ``virtualdj`` - N/A - [N/A] VirtualDJ Remote Control protocol * - ``visel`` - N/A - [N/A] visel Q-System services * - ``vos`` - N/A - [N/A] Virtual Object System (using VOP/TCP) * - ``vue4rendercow`` - N/A - [N/A] VueProRenderCow * - ``vxi-11`` - N/A - [N/A] VXI-11 TCP/IP Instrument Protocol * - ``walkietalkie`` - N/A - [N/A] Walkie Talkie * - ``we-jell`` - N/A - [N/A] Proprietary collaborative messaging protocol * - ``webdav`` - N/A - [N/A] World Wide Web Distributed Authoring and Versioning (WebDAV) * - ``webdavs`` - N/A - [N/A] WebDAV over SSL/TLS * - ``webissync`` - N/A - [N/A] WebIS Sync Protocol * - ``wedraw`` - N/A - [N/A] weDraw document sharing protocol * - ``whamb`` - N/A - [N/A] Whamb * - ``whistler`` - N/A - [N/A] Honeywell Video Systems * - ``witap`` - N/A - [N/A] WiTap Sample Game Protocol * - ``witapvoice`` - N/A - [N/A] witapvoice * - ``wkgrpsvr`` - N/A - [N/A] Workgroup Server Discovery * - ``workstation`` - N/A - [N/A] Workgroup Manager * - ``wormhole`` - N/A - [N/A] Roku Cascade Wormhole Protocol * - ``workgroup`` - N/A - [N/A] Novell collaboration workgroup * - ``writietalkie`` - N/A - [N/A] Writie Talkie Data Sharing * - ``ws`` - N/A - [N/A] Web Services * - ``wtc-heleos`` - N/A - [N/A] Wyatt Technology Corporation HELEOS * - ``wtc-qels`` - N/A - [N/A] Wyatt Technology Corporation QELS * - ``wtc-rex`` - N/A - [N/A] Wyatt Technology Corporation Optilab rEX * - ``wtc-viscostar`` - N/A - [N/A] Wyatt Technology Corporation ViscoStar * - ``wtc-wpr`` - N/A - [N/A] Wyatt Technology Corporation DynaPro Plate Reader * - ``wwdcpic`` - N/A - [N/A] PictureSharing sample code * - ``x-on`` - N/A - [N/A] x-on services synchronisation protocol * - ``xcodedistcc`` - N/A - [N/A] Xcode Distributed Compiler * - ``xgate-rmi`` - N/A - [N/A] xGate Remote Management Interface * - ``xmp`` - N/A - [N/A] Xperientia Mobile Protocol * - ``xsanclient`` - N/A - [N/A] Xsan Client * - ``xsanserver`` - N/A - [N/A] Xsan Server * - ``xsansystem`` - N/A - [N/A] Xsan System * - ``xtimelicence`` - N/A - [N/A] xTime License * - ``xtshapro`` - N/A - [N/A] xTime Project * - ``xul-http`` - N/A - [N/A] XUL (XML User Interface Language) transported over HTTP """ if TYPE_CHECKING: #: Service name. svc: 'str' #: Port number. port: 'int' #: Transport protocol carrying the service, i.e. the single transport #: protocol of the registry this member lives in. proto: 'TransportProtocol' #: Transport protocol whose assignments this registry holds. The base #: registry holds none, so it names none. __transport__: 'TransportProtocol' = TransportProtocol.undefined #: Members of this registry, keyed on port number -- a #: :class:`~pcapkit.corekit.multidict.MultiDict` because IANA genuinely #: assigns several services to one port, and a plain mapping would keep only #: the last of them. #: #: Declared here as :obj:`None` and overridden in each subclass: a mutable #: class attribute declared on this class would be *shared* by every #: subclass, so they would collide with each other exactly as the ports of #: one transport used to collide inside the old flat registry. __registry__: 'Optional[MultiDict[int, AppType]]' = None #: Registry class owning each transport protocol, i.e. what #: :meth:`get` delegates to when called on this class rather than on one of #: them. Populated by :mod:`pcapkit.const.reg.apptype` once every one of #: them has been imported, since this module cannot import its own subclasses. __registries__: 'dict[TransportProtocol, Type[AppType]]' = {} #: Canonical service per port, for the ports carrying more than one. The base #: registry has no members and so no collisions. __canonical__: 'dict[int, str]' = {} def __new__(cls, value: 'int', name: 'str' = '<null>', proto: 'TransportProtocol' = TransportProtocol.undefined) -> 'Type[AppType]': temp = f'{name} [{value} - {proto.name}]' obj = str.__new__(cls, temp) obj._value_ = temp obj.svc = name obj.port = value obj.proto = proto # NOTE: the value is the formatted string above rather than the port, so # two services on one port stay two canonical members instead of one # member and an alias -- an alias would answer to the other's name. if cls.__registry__ is None: raise ValueError(f'{cls.__name__} holds no members; they belong to its per-transport ' 'subclasses') cls.__registry__.add(value, obj) return obj @property def aliases(self) -> 'tuple[AppType, ...]': """Other services sharing :attr:`port` in this member's own registry. GitHub issue :issue:`807`. No storage of its own: the registry already keeps every colliding service as its own member of :data:`__registry__`, keyed on the shared port -- :meth:`get_all` already walks that same bucket to answer with the aliases after the canonical member, so this is exactly that bucket, minus ``self``. Derived fresh on every access rather than cached once, since :meth:`register_alias` can add a new member to the bucket at any time and a cached tuple would go stale the moment one is -- the same reason the ``_value_`` :meth:`__new__` sets never grows an alias list of its own; see :meth:`__repr__` and :meth:`__str__`, which do. Returns: Every other member this registry holds at :attr:`port`, in :data:`__registry__`'s row order, or an empty :class:`tuple` when nothing else collides -- never :obj:`None`, so a caller never has to guard the read. """ return tuple(member for member in self.__registry__.getlist(self.port) # type: ignore[union-attr] if member is not self) def __repr__(self) -> 'str': # NOTE: GitHub issue #807. The suffix below is the only difference from # the plain form GitHub issue #806 already fixed: it is appended only # when :attr:`aliases` is non-empty, so every member that does not # share its port with another service -- the vast majority -- renders # exactly as it did before this issue. Registering a new alias through # :meth:`register_alias` changes what *every* member already on that # port renders, immediately, since :attr:`aliases` is derived fresh on # each call rather than fixed at construction. base = f'<{self.__class__.__name__}.{self.svc}: {self.port} [{self.proto.name}]' aliases = self.aliases if not aliases: return f'{base}>' return f'{base} (aliases: {", ".join(alias.svc for alias in aliases)})>' def __str__(self) -> 'str': # NOTE: same suffix as __repr__, for the same reason, and -- like that # suffix, and unlike everything else this formats -- never folded into # ``_value_``. GitHub issue #807's hard constraint: ``_value_`` is the # live key in ``_value2member_map_``, built once when the class is # created, while aliases are registerable at runtime through # :meth:`register_alias`; baking the alias list into ``_value_`` would # go stale the moment one is registered after the fact. One # consequence worth stating plainly rather than leaving for a doctest # to trip over: ``str(member) == member.value`` already breaks at # class-creation time for every port that statically carries more # than one service; # :meth:`register_alias` merely adds to that set at runtime. base = f'{self.svc} [{self.port} - {self.proto.name}]' aliases = self.aliases if not aliases: return base return f'{base} (aliases: {", ".join(alias.svc for alias in aliases)})' def __int__(self) -> 'int': return self.port def __lt__(self, other: 'AppType') -> 'bool': return self.port < other def __gt__(self, other: 'AppType') -> 'bool': return self.port > other def __le__(self, other: 'AppType') -> 'bool': return self.port <= other def __ge__(self, other: 'AppType') -> 'bool': return self.port >= other def __eq__(self, other: 'Any') -> 'bool': return self.port == other def __ne__(self, other: 'Any') -> 'bool': return self.port != other def __hash__(self) -> 'int': return hash(self.port)
[docs] @classmethod def _dispatch(cls, key: 'int', proto: 'TransportProtocol | str | int') -> 'Type[AppType]': """The registry that owns ``proto``, or ``cls`` where it is one already. Args: key: Port number the caller is looking up, validated here so that every entry point rejects a non-port identically. proto: Transport protocol, as a member, its name, or a bare :class:`int`. That last shape is not merely defensive: GitHub issue :issue:`808` dropped ``TransportProtocol``'s ``IntFlag`` base, so ``TransportProtocol.a | TransportProtocol.b`` -- built by hand, the same as any caller passing a literal port-transport bitmask -- falls through to ``int.__or__`` and returns a bare :class:`int` rather than a member. Never split back into the transports its bits would each name -- a ruling given in review of the work for :issue:`808` -- so it is looked up as the one whole value it already is, exactly like any other bare int: refused when that whole value names no registry, resolved when it happens to equal one instead. With the sequential values of GitHub issue :issue:`860`, a hand-built composite is not guaranteed to be the former -- see :meth:`_dispatch`'s own body for a value that resolves. Returns: The registry class to search. Raises: ValueError: If ``key`` is not a port number, or if ``proto`` -- member or bare int, composite or not -- names no registry to delegate to. """ # NOTE: this registry resolves ports, not service names. The old string # branch tested ``key in __members_proto__``, which is keyed by transport # protocol, so a name never matched and the miss path minted a brand-new # member with port -1 -- GitHub issue #734's silent junk. Rejecting a # non-port outright is the honest answer, and it has to happen before the # miss path, which formats ``key`` into an f-string. if not isinstance(key, int): raise ValueError(f'{key!r} is not a valid port number for {cls.__name__}') if cls.__registry__ is not None: return cls if isinstance(proto, str): proto = TransportProtocol.get(proto.lower()) # NOTE: a direct dict lookup covers every genuine single transport -- # one of the real members, or a bare int equal to one of their # values -- since ``__registries__`` keys compare by the same # int-valued hash/eq every member and bare int alike already use. The # cast is for mypy alone: ``dict.get`` accepts any hashable key at run # time regardless of its declared key type, but mypy holds ``.get`` to # the dict's own ``TransportProtocol`` keys, and does not know ``proto`` # can genuinely be a bare :class:`int` here, since GitHub issue #808 # dropped the ``IntFlag`` base -- see the annotation on ``proto`` above. subclass = cls.__registries__.get(cast('TransportProtocol', proto)) if subclass is not None: return subclass # NOTE: everything that reaches here has already failed to match a real # member's value at the dict lookup above, and nothing below decodes # ``proto``'s bits looking for a partial answer either -- on either # numbering. A genuine member reaching this point is ``undefined`` -- # a real transport would already have resolved above, and # :meth:`TransportProtocol.get` cannot mint anything else, per the # maintainer ruling given in review of the work for #808, against # extending TransportProtocol at all -- and a bare :class:`int` reaches # here whenever it matches no real member's value, e.g. a stray bit like # ``17``. A composite built by hand used to reach here just as reliably, # since no combination of the old power-of-two bits ever equalled a # single real member's value; that is not true under this class's # sequential numbering -- # ``TransportProtocol.tcp | TransportProtocol.udp`` (``3``) is # ``sctp``'s own value, so it resolves at the dict lookup above # instead of reaching this point at all. A composite used to get its own # :exc:`~pcapkit.utilities.exceptions.ProtocolError`, decoded through # :func:`~pcapkit.utilities.compat.show_flag_values` and naming every # transport whose bit was set -- the fix for GitHub issue #759, where # resolving a composite by picking its lowest set bit dispatched every # one containing ``tcp`` into the TCP registry regardless of what else # it named. A further ruling given in review of the work for #808 # retired that decoding along with the rest of the composite handling: # once it is no longer a Flag, a ``|``-joined value is no longer parsed # and accepted as a composite, and is treated as a whole instead of # being split. So a composite's bits are never decoded looking for a # partial answer any more, on either numbering -- it is looked up as the # one whole value it already is, exactly like any int a caller might # have written directly, and whether that whole value resolves or # reaches this point depends only on whether some real member happens to # equal it, never on whether a caller built it with ``|`` by hand. raise ValueError(f'{proto!r} names no transport protocol registry of ' f'{cls.__name__}')
@classmethod def get(cls, key: 'int', *, # type: ignore[override] # pylint: disable=arguments-differ proto: 'TransportProtocol | str | int' = TransportProtocol.undefined) -> 'AppType': """Backport support for original codes. Args: key: Port number to look up. proto: Transport protocol carrying ``key``. Selects the registry to search when called on :class:`AppType` itself, which holds no members; ignored when called on one of those registries, each of which already knows its own transport. **One** transport protocol when it does select, since one registry is what a port lookup can answer from -- a member's own ``proto`` names exactly one, so passing it straight back in always resolves, while a composite built by hand is looked up as the whole value it is rather than decoded into a guess -- refused if that whole value names no registry, resolved to whichever real member it happens to equal otherwise (see :meth:`_dispatch`). Returns: The **canonical** service for ``key``. IANA assigns several services to some ports -- ``80`` carries ``http``, ``www`` and ``www-http`` -- and names no precedence among them, so :data:`__canonical__` supplies the one the rest of the world answers with. The others remain real, named members and are reached through :meth:`get_all`. Raises: ValueError: If called on a class that holds no members, i.e. on :class:`AppType` itself, with a ``proto`` naming no registry to delegate to. Also for a ``key`` that is not a port number, since this registry resolves ports and not service names -- including one outside ``0..65535``, whose rejection by :meth:`_missing_` this method propagates rather than minting over, so that ``get`` is never more permissive than ``AppType(...)``. Also covers a ``proto`` int that matches no registry at all, composite or not -- looked up as the whole value it is rather than decoded into the registries its bits would each name, so it is refused only when that whole value itself names none of them, not simply for being composite -- see :meth:`_dispatch`. :meta private: """ owner = cls._dispatch(key, proto) matched = owner.__registry__.getlist(key) # type: ignore[union-attr] if matched: canonical = owner.__canonical__.get(key) if canonical is not None: for member in matched: if member.svc == canonical: return member # NOTE: IANA's oldest row, for a port whose collision postdates # :data:`__canonical__` -- including one :func:`~aenum.extend_enum` # created, which must not displace what the registry already # answered with. return matched[0] # NOTE: :meth:`_missing_` answers :obj:`None` for a port it holds no row # for -- GitHub issue #860 stopped that from minting, following the # owner's ruling there that ``get`` should not mint because it lacks the # information to create a new member: only IANA-registered values are # legitimate, and ``register`` is the proper way to add one. That ruling # was given for the FEATCode, Command and Method branches, and this # family was brought in line with it under the same issue. A port outside # ``0..65535`` still *raises* rather than reaching here at all. Before # #860, catching the ``None`` answer minted ``PORT_{key}_{transport}`` # here directly -- GitHub issue #758's defect (it also minted for # ``PORT_999999_tcp`` and ``PORT_-1_tcp``, the latter a name no attribute # access could reach) -- and this was the second, independent mint site # on this method, distinct from the one inside :meth:`_missing_` itself: # neither is a value anyone asked to be named, so both build an # unregistered member instead of registering one. ret = owner._missing_(key) if ret is None: ret = owner._unregistered_member(key, 'unknown', owner.__transport__) return ret
[docs] @classmethod def get_all(cls, key: 'int', *, proto: 'TransportProtocol | str | int' = TransportProtocol.undefined) -> 'tuple[AppType, ...]': """Every service IANA assigns to a port, canonical first. :meth:`get` answers with one member because that is what a port lookup means everywhere else -- :func:`socket.getservbyport` returns a single name -- but IANA really did register all three services on TCP/80, and discarding two of them would be inventing a registry it does not have. This is how the rest are reached. Args: key: Port number to look up. proto: Transport protocol carrying ``key``, as for :meth:`get`. Returns: The canonical member followed by its aliases, in registry row order. Never empty: a port with no assignment goes through :meth:`get`, so it is answered with an unregistered member rather than an empty result. Raises: ValueError: As :meth:`get`. """ owner = cls._dispatch(key, proto) canonical = owner.get(key) matched = owner.__registry__.getlist(key) # type: ignore[union-attr] return (canonical, *(member for member in matched if member is not canonical))
[docs] @classmethod def _sanitize_identifier(cls, name: 'str') -> 'str': """Derive a valid Python attribute name from a raw service name. Shared by :meth:`register` and :meth:`register_alias`, both of which mint a name-carrying member at runtime and need the same sanitising steps :meth:`~pcapkit.vendor.default.Vendor.safe_name` applies to every statically declared member's name at generation time (minus its fallback; each caller raises instead -- see their own ``Raises``). Reproduced here rather than imported, since this module is generated *from* :mod:`pcapkit.vendor` and importing back would run a crawler built for one pass over IANA's CSV for what is otherwise a plain string transform. Args: name: Raw label, exactly as a caller would want it to read on :attr:`svc`. Returns: The sanitised identifier -- not guaranteed to be a valid Python identifier at all (empty, or leading with a digit); callers check :meth:`str.isidentifier` themselves and raise with the context appropriate to their own call. """ stripped = re.sub(r'\(.*\)', '', name) collapsed = '_'.join(stripped.split()) replaced = re.sub(r'\W', '_', collapsed) identifier = '_'.join(filter(None, replaced.split('_'))) # NOTE: matches process()'s own keyword guard below -- a name that # sanitises to a reserved word is not usable as an attribute as is, # and a trailing underscore is the same fix the generator already # applies to a statically declared member with the same problem. if keyword.iskeyword(identifier): identifier = f'{identifier}_' return identifier
[docs] @classmethod def _validate_value(cls, value: 'Any') -> 'None': """Reject ``value`` unless it is a port number in ``0``-``65535``. Overrides :meth:`~pcapkit.corekit.enum.EnumLookup._validate_value` with the check :meth:`_missing_` makes, and the message it raises, so :meth:`register` refuses exactly the ports :meth:`get` refuses, in the same words (:issue:`1792`). Args: value: Port number about to be minted. Raises: EnumValueError: If ``value`` is not an :class:`int` in ``0``-``65535``. A :exc:`ValueError`, so an ``except ValueError`` caller is unaffected. """ if not (isinstance(value, int) and 0 <= value <= 65535): raise EnumValueError(f'{value!r} is not a valid {cls.__name__}')
[docs] @classmethod def register(cls, port: 'int', name: 'str') -> 'AppType': # pylint: disable=arguments-renamed """Mint the first, canonical member at ``port``, in this registry alone. The counterpart of :meth:`register_alias`: that method requires ``port`` to already carry a member and adds a further name for it; this requires the opposite -- ``port`` unclaimed in this registry -- and mints the first. :meth:`get` does not do this itself, per GitHub issue :issue:`860` (the owner's ruling there: only IANA-registered values are legitimate, a new entry is properly created through :meth:`register`, and ``get`` lacks the information to create one), so this is the only way to add a service this registry does not already carry. Deliberately scoped like :meth:`register_alias` to **this** per-transport registry rather than dispatched through :meth:`_dispatch`: minting on one transport must never leak onto a transport IANA never assigned the service to, and a write is exactly the operation where guessing the right transport for the caller is the wrong default. Routes ``port`` through :meth:`_validate_value` after the duplicate check, as :meth:`~pcapkit.corekit.enum.EnumRegistry.register` does, so a port :meth:`get` refuses cannot be minted here either. Args: port: Port number to register under. Must not already carry a member of this registry -- see :meth:`register_alias` for that case. name: The service name, i.e. what :attr:`svc` reads on the new member. Returns: The newly minted member. Raises: ValueError: If called on a class that holds no members, i.e. on :class:`AppType` itself, which is not a per-transport registry; if ``port`` already carries a member of this registry; if ``name`` sanitises to text that is not a valid Python identifier at all; or if the identifier it does sanitise to already names an unrelated member of this registry. EnumValueError: If ``port`` is not an :class:`int` in ``0``-``65535``, from :meth:`_validate_value`. A :exc:`ValueError`, carrying the message :meth:`get` raises for the same port. """ if cls.__registry__ is None: raise ValueError(f'{cls.__name__} holds no members; register on one of its ' 'per-transport subclasses instead') existing = cls.__registry__.getlist(port) if existing: raise ValueError(f'{port!r} already has a member registered on {cls.__name__} ' f'({", ".join(member.svc for member in existing)}); use ' f'{cls.__name__}.register_alias() to add a further service name ' 'for it') cls._validate_value(port) identifier = cls._sanitize_identifier(name) if not identifier.isidentifier(): raise ValueError(f'{name!r} has no valid Python identifier to register ' f'{cls.__name__} with (sanitises to {identifier!r})') if identifier in cls.__members__: raise ValueError(f'{identifier!r} already names a member of {cls.__name__}; ' 'choose a name whose identifier does not collide') return extend_enum(cls, identifier, port, name, cls.__transport__)
[docs] @classmethod def register_alias(cls, port: 'int', name: 'str') -> 'AppType': # pylint: disable=arguments-renamed """Register ``name`` as a new alias on ``port``, in this registry alone. GitHub issue :issue:`807`'s third ask, deliberately scoped to **this** per-transport registry: ``TCP.register_alias(...)`` never touches :class:`UDP`'s members, which is what keeps an alias registered on one transport from leaking onto a transport IANA never assigned it -- e.g. registering ``www`` as an alias of ``http`` on :class:`TCP` and :class:`UDP` leaves it absent from :class:`SCTP`'s port 80, exactly as IANA itself never registered it there. No new storage: the new member simply joins :data:`__registry__` at ``port``, through the same :func:`~aenum.extend_enum` call :meth:`register` uses to mint the first one. It is then reachable through :attr:`aliases` on every other member already on ``port``, and vice versa, with nothing further to keep in sync. The Python attribute name is derived from ``name`` through :meth:`_sanitize_identifier`. It has to be ``name``, not ``port`` and a counter: an alias whose own name resolves through subscription is most of the point of registering one, and ``TCP['www_http']`` resolving is exactly what lets a caller reach an alias the same way every statically declared member already is. Args: port: Port number to register the alias under. Must already carry at least one member of this registry -- aliasing names a second service on a port that already has one, rather than declaring a fresh port out of nothing, which is :meth:`register`'s job. name: The alias's service name, i.e. what :attr:`svc` reads on the new member -- kept exactly as given, unlike the identifier sanitised from it below. Checked against every member already on ``port`` so the same name is never registered twice. Returns: The newly minted member. Raises: ValueError: If called on a class that holds no members, i.e. on :class:`AppType` itself, which is not a per-transport registry; if ``port`` carries no member of this registry yet; if ``name`` already names one of the members already there; if ``name`` sanitises to text that is not a valid Python identifier at all -- empty, or leading with a digit; or if the identifier it does sanitise to already names an unrelated member of this registry. """ if cls.__registry__ is None: raise ValueError(f'{cls.__name__} holds no members; register the alias on one ' 'of its per-transport subclasses instead') existing = cls.__registry__.getlist(port) if not existing: raise ValueError(f'{port!r} is not yet a member of {cls.__name__}; register the ' 'canonical service before aliasing it') if any(member.svc == name for member in existing): raise ValueError(f'{name!r} is already registered on port {port} of {cls.__name__}') # NOTE: the members the generator mints via safe_name's own # fallback -- ``{cls.__name__}_{residue}``, when the sanitised # residue is not a valid identifier -- # are names this runtime path refuses rather than accepts: that # fallback is deliberately not reproduced in # :meth:`_sanitize_identifier`, which raises here instead (see Raises # above). ``rename``'s further dedup -- appending ``_{port}`` when a # name already recurs elsewhere in the registry -- is not reproduced # either: that decision is curated from a full CSV pass at generation # time, and synthesising a different fallback name here would be # exactly the silent rename the collision check above refuses to do # instead. identifier = cls._sanitize_identifier(name) if not identifier.isidentifier(): raise ValueError(f'{name!r} has no valid Python identifier to register ' f'{cls.__name__} with (sanitises to {identifier!r})') if identifier in cls.__members__: raise ValueError(f'{identifier!r} already names a member of {cls.__name__}; ' 'choose a name whose identifier does not collide') return extend_enum(cls, identifier, port, name, cls.__transport__)
[docs] @classmethod def _unregistered_member(cls, value: 'int', name: 'str', proto: 'TransportProtocol' = TransportProtocol.undefined) -> 'AppType': """Build a member absent from this registry's own lookup tables and its :data:`__registry__` side table alike. Used by :meth:`_missing_` and :meth:`get` for a port neither resolves to a real, IANA-registered service, so that such a lookup grows neither table -- contrast :meth:`register`, the explicit, caller-named path that does. Reconstructs :attr:`svc`, :attr:`port` and :attr:`proto` the same way :meth:`__new__` would: :meth:`~pcapkit.corekit.enum.EnumRegistry._unregistered_member` bypasses :meth:`__new__` entirely (it builds through ``cls._member_type_.__new__`` directly), so this class's own attributes (``svc``, ``port``, ``proto``) would otherwise be missing and every method reading them (:meth:`__repr__`, :meth:`__str__`, :meth:`__int__`, the comparison operators, :attr:`aliases`) would raise on the result. Deliberately *not* added to :data:`__registry__` -- unlike :meth:`__new__`, which always does -- since an unregistered member is exactly the one this registry must not remember past the call that built it. Args: value: Port number. name: Bare label for the unregistered member -- what :meth:`__new__` calls ``name`` and stores as :attr:`svc`. proto: Transport protocol the label names, if any. """ if cls.__registry__ is None: raise ValueError(f'{cls.__name__} holds no members; they belong to its ' 'per-transport subclasses') temp = f'{name} [{value} - {proto.name}]' obj = super()._unregistered_member(temp, name) obj.svc = name obj.port = value obj.proto = proto return obj
[docs] @classmethod def _missing_(cls, value: 'int') -> 'Optional[AppType]': """Lookup function used when value is not found. Args: value: Value to get enum item. """ if not (isinstance(value, int) and 0 <= value <= 65535): raise ValueError(f'{value!r} is not a valid {cls.__name__}') # NOTE: extending this class would give it a member, and aenum then # refuses to subclass it -- permanently, for every registry not yet # imported. The spans below belong to whichever registry was asked, never # to this one. if cls.__registry__ is None: raise ValueError(f'{value!r} is not a valid {cls.__name__}') # NOTE: most spans are IANA's unassigned and reserved markers, which name # no transport protocol and so answer every registry. A span that does name # one tests ``cls.__transport__`` and answers that registry alone -- # GitHub issue #760, where source order decided instead and a UDP lookup in # 6000-6063 came back carrying ``tcp``. A registry a named span excludes # falls through to :meth:`_unregistered_member`, which is what IANA # assigning it nothing means -- GitHub issue #860 stopped this from # growing either lookup table or :data:`__registry__`, on the owner's # ruling there that only IANA-registered values are legitimate and a new # entry is properly created through ``register``; that ruling was given for # the FEATCode, Command and Method branches, and this family follows it. if 225 <= value <= 241: #: [N/A] Reserved [:rfc:`1060`] return cls._unregistered_member(value, 'reserved', TransportProtocol.undefined) if 249 <= value <= 255: #: [N/A] Reserved [:rfc:`1060`] return cls._unregistered_member(value, 'reserved', TransportProtocol.undefined) if 272 <= value <= 279: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 288 <= value <= 299: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 301 <= value <= 307: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 325 <= value <= 332: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 334 <= value <= 343: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 717 <= value <= 728: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 732 <= value <= 740: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 745 <= value <= 746: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 755 <= value <= 757: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 778 <= value <= 779: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 781 <= value <= 785: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 788 <= value <= 799: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 803 <= value <= 809: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 811 <= value <= 827: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 834 <= value <= 846: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 849 <= value <= 852: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 855 <= value <= 859: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 863 <= value <= 872: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 874 <= value <= 885: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 889 <= value <= 899: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 904 <= value <= 909: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 916 <= value <= 952: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 954 <= value <= 988: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 1002 <= value <= 1007: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 1011 <= value <= 1020: #: [N/A] Reserved return cls._unregistered_member(value, 'reserved', TransportProtocol.undefined) if 2194 <= value <= 2196: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 3322 <= value <= 3325: #: [N/A] Active Networks return cls._unregistered_member(value, 'active-net', TransportProtocol.undefined) if 3367 <= value <= 3371: #: [N/A] Satellite Video Data Link return cls._unregistered_member(value, 'satvid-datalnk', TransportProtocol.undefined) if 4200 <= value <= 4299: #: [N/A] VRML Multi User Systems return cls._unregistered_member(value, 'vrml-multi-use', TransportProtocol.undefined) if 4337 <= value <= 4339: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4363 <= value <= 4365: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4380 <= value <= 4388: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4397 <= value <= 4399: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4434 <= value <= 4440: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4461 <= value <= 4479: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4481 <= value <= 4483: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4489 <= value <= 4499: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4504 <= value <= 4533: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4539 <= value <= 4544: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4560 <= value <= 4562: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4564 <= value <= 4565: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4571 <= value <= 4572: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4574 <= value <= 4589: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4607 <= value <= 4620: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4622 <= value <= 4645: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4647 <= value <= 4657: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4693 <= value <= 4699: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4705 <= value <= 4710: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4712 <= value <= 4724: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4734 <= value <= 4736: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4748 <= value <= 4748: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4757 <= value <= 4773: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4775 <= value <= 4783: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4795 <= value <= 4799: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4805 <= value <= 4826: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4828 <= value <= 4836: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4852 <= value <= 4866: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4872 <= value <= 4875: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4886 <= value <= 4887: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4890 <= value <= 4893: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4895 <= value <= 4898: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4903 <= value <= 4911: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4916 <= value <= 4929: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4931 <= value <= 4935: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4938 <= value <= 4939: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4943 <= value <= 4948: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4954 <= value <= 4968: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4972 <= value <= 4979: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4981 <= value <= 4982: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 4992 <= value <= 4998: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5016 <= value <= 5019: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5035 <= value <= 5041: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5076 <= value <= 5077: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5088 <= value <= 5089: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5095 <= value <= 5098: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5108 <= value <= 5110: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5118 <= value <= 5119: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5121 <= value <= 5132: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5138 <= value <= 5144: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5147 <= value <= 5149: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5158 <= value <= 5160: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5169 <= value <= 5171: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5173 <= value <= 5189: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5198 <= value <= 5199: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5204 <= value <= 5208: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5210 <= value <= 5214: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5216 <= value <= 5220: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5238 <= value <= 5241: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5255 <= value <= 5263: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5266 <= value <= 5268: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5273 <= value <= 5279: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5283 <= value <= 5297: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5322 <= value <= 5342: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5345 <= value <= 5348: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5365 <= value <= 5396: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5438 <= value <= 5442: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5446 <= value <= 5449: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5451 <= value <= 5452: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5457 <= value <= 5460: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5466 <= value <= 5469: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5476 <= value <= 5499: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5508 <= value <= 5539: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5541 <= value <= 5542: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5544 <= value <= 5549: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5551 <= value <= 5552: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5558 <= value <= 5564: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5570 <= value <= 5572: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5576 <= value <= 5578: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5587 <= value <= 5596: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5606 <= value <= 5617: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5619 <= value <= 5626: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5640 <= value <= 5645: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5647 <= value <= 5665: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5667 <= value <= 5669: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5685 <= value <= 5686: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5690 <= value <= 5692: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5694 <= value <= 5695: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5697 <= value <= 5699: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5701 <= value <= 5704: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5706 <= value <= 5712: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5731 <= value <= 5740: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5751 <= value <= 5754: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5758 <= value <= 5765: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5772 <= value <= 5776: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5778 <= value <= 5779: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5788 <= value <= 5792: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5795 <= value <= 5797: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5799 <= value <= 5812: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5815 <= value <= 5819: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5821 <= value <= 5840: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5843 <= value <= 5858: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5860 <= value <= 5862: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5864 <= value <= 5867: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5869 <= value <= 5882: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5884 <= value <= 5899: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5901 <= value <= 5902: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5915 <= value <= 5962: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5964 <= value <= 5967: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5970 <= value <= 5983: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 5995 <= value <= 5998: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6000 <= value <= 6063 and cls.__transport__ is TransportProtocol.tcp: #: [TCP] X Window System return cls._unregistered_member(value, 'x11', TransportProtocol.tcp) if 6000 <= value <= 6063 and cls.__transport__ is TransportProtocol.udp: #: [UDP] X Window System return cls._unregistered_member(value, 'x11', TransportProtocol.udp) if 6078 <= value <= 6079: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6089 <= value <= 6098: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6119 <= value <= 6120: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6125 <= value <= 6129: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6131 <= value <= 6132: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6134 <= value <= 6139: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6150 <= value <= 6158: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6164 <= value <= 6199: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6202 <= value <= 6208: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6210 <= value <= 6221: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6223 <= value <= 6240: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6245 <= value <= 6250: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6254 <= value <= 6266: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6270 <= value <= 6299: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6302 <= value <= 6305: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6307 <= value <= 6314: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6327 <= value <= 6342: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6345 <= value <= 6345: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6348 <= value <= 6349: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6351 <= value <= 6354: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6356 <= value <= 6359: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6361 <= value <= 6362: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6364 <= value <= 6369: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6371 <= value <= 6378: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6380 <= value <= 6381: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6383 <= value <= 6388: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6391 <= value <= 6399: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6411 <= value <= 6416: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6422 <= value <= 6431: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6433 <= value <= 6439: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6447 <= value <= 6454: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6457 <= value <= 6463: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6465 <= value <= 6470: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6472 <= value <= 6479: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6490 <= value <= 6499: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6512 <= value <= 6512: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6516 <= value <= 6542: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6545 <= value <= 6546: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6552 <= value <= 6555: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6559 <= value <= 6565: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6569 <= value <= 6578: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6584 <= value <= 6587: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6589 <= value <= 6599: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6603 <= value <= 6609: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6611 <= value <= 6618: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6637 <= value <= 6639: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6641 <= value <= 6652: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6658 <= value <= 6664: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6665 <= value <= 6669 and cls.__transport__ is TransportProtocol.tcp: #: [TCP] IRCU return cls._unregistered_member(value, 'ircu', TransportProtocol.tcp) if 6665 <= value <= 6669 and cls.__transport__ is TransportProtocol.udp: #: [UDP] Reserved return cls._unregistered_member(value, 'reserved', TransportProtocol.udp) if 6674 <= value <= 6677: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6680 <= value <= 6686: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6691 <= value <= 6695: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6707 <= value <= 6713: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6717 <= value <= 6766: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6772 <= value <= 6776: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6779 <= value <= 6783: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6792 <= value <= 6800: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6802 <= value <= 6816: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6818 <= value <= 6830: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6832 <= value <= 6840: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6843 <= value <= 6849: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6851 <= value <= 6867: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6869 <= value <= 6887: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6889 <= value <= 6899: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6902 <= value <= 6923: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6925 <= value <= 6934: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6937 <= value <= 6945: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6947 <= value <= 6950: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6952 <= value <= 6960: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6967 <= value <= 6968: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6971 <= value <= 6979: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 6981 <= value <= 6996: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7027 <= value <= 7029: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7032 <= value <= 7039: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7041 <= value <= 7069: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7074 <= value <= 7079: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7081 <= value <= 7087: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7089 <= value <= 7094: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7096 <= value <= 7098: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7102 <= value <= 7106: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7108 <= value <= 7116: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7118 <= value <= 7120: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7124 <= value <= 7127: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7130 <= value <= 7160: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7175 <= value <= 7180: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7182 <= value <= 7199: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7203 <= value <= 7214: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7217 <= value <= 7226: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7230 <= value <= 7233: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7238 <= value <= 7243: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7245 <= value <= 7261: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7263 <= value <= 7271: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7284 <= value <= 7299: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7300 <= value <= 7359: #: [N/A] The Swiss Exchange return cls._unregistered_member(value, 'swx', TransportProtocol.undefined) if 7360 <= value <= 7364: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7366 <= value <= 7390: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7398 <= value <= 7399: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7403 <= value <= 7409: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7412 <= value <= 7419: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7422 <= value <= 7425: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7432 <= value <= 7436: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7438 <= value <= 7442: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7444 <= value <= 7470: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7475 <= value <= 7477: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7479 <= value <= 7490: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7492 <= value <= 7499: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7502 <= value <= 7507: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7512 <= value <= 7541: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7552 <= value <= 7559: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7561 <= value <= 7562: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7564 <= value <= 7565: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7567 <= value <= 7568: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7571 <= value <= 7573: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7576 <= value <= 7587: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7589 <= value <= 7605: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7607 <= value <= 7623: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7634 <= value <= 7647: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7649 <= value <= 7662: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7664 <= value <= 7667: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7669 <= value <= 7671: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7678 <= value <= 7679: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7681 <= value <= 7682: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7684 <= value <= 7686: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7691 <= value <= 7696: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7698 <= value <= 7699: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7702 <= value <= 7706: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7709 <= value <= 7719: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7721 <= value <= 7723: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7729 <= value <= 7733: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7735 <= value <= 7737: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7739 <= value <= 7740: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7745 <= value <= 7746: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7748 <= value <= 7776: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7782 <= value <= 7783: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7790 <= value <= 7793: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7795 <= value <= 7796: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7803 <= value <= 7809: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7811 <= value <= 7844: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7848 <= value <= 7868: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7873 <= value <= 7877: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7881 <= value <= 7886: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7888 <= value <= 7899: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7904 <= value <= 7912: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7914 <= value <= 7931: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7934 <= value <= 7961: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7963 <= value <= 7966: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7968 <= value <= 7978: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 7983 <= value <= 7997: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8011 <= value <= 8014: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8028 <= value <= 8031: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8035 <= value <= 8039: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8045 <= value <= 8050: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8062 <= value <= 8065: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8068 <= value <= 8069: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8071 <= value <= 8073: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8075 <= value <= 8076: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8078 <= value <= 8079: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8092 <= value <= 8096: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8098 <= value <= 8099: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8103 <= value <= 8110: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8112 <= value <= 8114: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8119 <= value <= 8120: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8123 <= value <= 8127: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8133 <= value <= 8139: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8141 <= value <= 8147: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8150 <= value <= 8152: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8154 <= value <= 8159: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8163 <= value <= 8180: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8185 <= value <= 8189: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8196 <= value <= 8198: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8203 <= value <= 8203: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8209 <= value <= 8210: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8212 <= value <= 8229: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8233 <= value <= 8242: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8244 <= value <= 8265: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8267 <= value <= 8269: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8271 <= value <= 8275: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8277 <= value <= 8279: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8283 <= value <= 8291: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8295 <= value <= 8299: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8302 <= value <= 8312: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8314 <= value <= 8319: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8323 <= value <= 8350: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8352 <= value <= 8375: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8381 <= value <= 8382: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8385 <= value <= 8399: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8406 <= value <= 8414: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8418 <= value <= 8422: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8424 <= value <= 8431: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8434 <= value <= 8441: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8446 <= value <= 8447: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8451 <= value <= 8456: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8458 <= value <= 8469: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8475 <= value <= 8499: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8504 <= value <= 8553: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8556 <= value <= 8566: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8568 <= value <= 8599: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8601 <= value <= 8608: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8616 <= value <= 8664: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8669 <= value <= 8674: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8676 <= value <= 8685: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8689 <= value <= 8698: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8700 <= value <= 8709: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8712 <= value <= 8731: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8734 <= value <= 8749: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8751 <= value <= 8762: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8771 <= value <= 8777: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8779 <= value <= 8785: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8788 <= value <= 8792: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8794 <= value <= 8799: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8801 <= value <= 8803: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8810 <= value <= 8872: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8874 <= value <= 8879: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8884 <= value <= 8887: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8895 <= value <= 8898: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8902 <= value <= 8907: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8914 <= value <= 8936: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8938 <= value <= 8952: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8955 <= value <= 8979: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8982 <= value <= 8988: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 8992 <= value <= 8996: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9003 <= value <= 9004: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9012 <= value <= 9019: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9027 <= value <= 9049: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9052 <= value <= 9059: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9061 <= value <= 9079: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9094 <= value <= 9099: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9108 <= value <= 9110: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9112 <= value <= 9118: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9120 <= value <= 9121: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9124 <= value <= 9130: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9132 <= value <= 9159: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9165 <= value <= 9182: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9184 <= value <= 9190: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9192 <= value <= 9199: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9218 <= value <= 9221: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9223 <= value <= 9254: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9256 <= value <= 9276: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9288 <= value <= 9291: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9296 <= value <= 9299: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9301 <= value <= 9305: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9307 <= value <= 9309: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9313 <= value <= 9317: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9319 <= value <= 9320: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9322 <= value <= 9338: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9341 <= value <= 9342: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9347 <= value <= 9373: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9375 <= value <= 9379: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9381 <= value <= 9386: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9391 <= value <= 9395: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9398 <= value <= 9399: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9403 <= value <= 9417: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9419 <= value <= 9442: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9446 <= value <= 9449: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9451 <= value <= 9499: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9501 <= value <= 9521: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9523 <= value <= 9534: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9537 <= value <= 9554: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9556 <= value <= 9558: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9560 <= value <= 9591: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9601 <= value <= 9611: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9619 <= value <= 9627: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9633 <= value <= 9639: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9641 <= value <= 9665: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9669 <= value <= 9693: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9696 <= value <= 9699: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9701 <= value <= 9746: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9748 <= value <= 9749: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9751 <= value <= 9752: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9754 <= value <= 9761: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9763 <= value <= 9799: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9803 <= value <= 9874: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9879 <= value <= 9887: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9890 <= value <= 9897: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9904 <= value <= 9908: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9912 <= value <= 9924: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9926 <= value <= 9949: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9957 <= value <= 9965: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9967 <= value <= 9977: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9982 <= value <= 9985: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 9989 <= value <= 9989: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10011 <= value <= 10019: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10021 <= value <= 10022: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10024 <= value <= 10049: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10052 <= value <= 10054: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10056 <= value <= 10079: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10082 <= value <= 10099: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10105 <= value <= 10106: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10108 <= value <= 10109: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10118 <= value <= 10124: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10126 <= value <= 10127: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10130 <= value <= 10159: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10163 <= value <= 10199: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10202 <= value <= 10251: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10254 <= value <= 10259: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10262 <= value <= 10287: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10289 <= value <= 10320: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10322 <= value <= 10438: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10440 <= value <= 10442: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10444 <= value <= 10499: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10501 <= value <= 10539: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10545 <= value <= 10547: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10549 <= value <= 10630: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10632 <= value <= 10799: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10801 <= value <= 10804: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10806 <= value <= 10808: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10811 <= value <= 10859: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10861 <= value <= 10879: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10881 <= value <= 10932: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10934 <= value <= 10989: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 10991 <= value <= 10999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11002 <= value <= 11094: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11096 <= value <= 11102: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11113 <= value <= 11160: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11166 <= value <= 11170: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11176 <= value <= 11200: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11203 <= value <= 11207: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11209 <= value <= 11210: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11212 <= value <= 11234: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11236 <= value <= 11318: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11322 <= value <= 11366: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11368 <= value <= 11370: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11372 <= value <= 11429: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11431 <= value <= 11433: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11435 <= value <= 11488: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11490 <= value <= 11599: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11601 <= value <= 11622: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11624 <= value <= 11719: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11721 <= value <= 11722: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11724 <= value <= 11750: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11752 <= value <= 11795: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11797 <= value <= 11875: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11878 <= value <= 11966: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11968 <= value <= 11970: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 11972 <= value <= 11996: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 12014 <= value <= 12108: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 12110 <= value <= 12120: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 12122 <= value <= 12167: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 12169 <= value <= 12171: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 12173 <= value <= 12299: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 12303 <= value <= 12320: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 12323 <= value <= 12344: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 12346 <= value <= 12545: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 12547 <= value <= 12752: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 12754 <= value <= 12864: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 12866 <= value <= 13159: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 13161 <= value <= 13215: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 13219 <= value <= 13222: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 13225 <= value <= 13399: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 13401 <= value <= 13719: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 13725 <= value <= 13781: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 13787 <= value <= 13817: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 13824 <= value <= 13831: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 13833 <= value <= 13893: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 13895 <= value <= 13928: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 13931 <= value <= 13999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 14003 <= value <= 14032: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 14035 <= value <= 14140: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 14146 <= value <= 14148: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 14151 <= value <= 14153: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 14155 <= value <= 14249: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 14251 <= value <= 14413: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 14415 <= value <= 14499: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 14501 <= value <= 14935: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 14938 <= value <= 14999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 15003 <= value <= 15117: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 15119 <= value <= 15344: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 15346 <= value <= 15362: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 15364 <= value <= 15554: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 15556 <= value <= 15659: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 15661 <= value <= 15739: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 15741 <= value <= 15997: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 16004 <= value <= 16019: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 16022 <= value <= 16160: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 16163 <= value <= 16308: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 16312 <= value <= 16359: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 16362 <= value <= 16366: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 16369 <= value <= 16383: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 16386 <= value <= 16618: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 16620 <= value <= 16664: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 16667 <= value <= 16788: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 16790 <= value <= 16899: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 16901 <= value <= 16949: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 16951 <= value <= 16990: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 16996 <= value <= 17006: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 17008 <= value <= 17009: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 17011 <= value <= 17183: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 17186 <= value <= 17218: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 17226 <= value <= 17233: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 17236 <= value <= 17499: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 17501 <= value <= 17554: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 17556 <= value <= 17728: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 17730 <= value <= 17753: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 17757 <= value <= 17776: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 17778 <= value <= 17999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 18001 <= value <= 18103: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 18105 <= value <= 18135: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 18137 <= value <= 18180: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 18188 <= value <= 18240: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 18244 <= value <= 18258: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 18260 <= value <= 18261: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 18263 <= value <= 18462: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 18464 <= value <= 18515: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 18517 <= value <= 18633: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 18636 <= value <= 18667: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 18669 <= value <= 18768: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 18770 <= value <= 18880: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 18882 <= value <= 18887: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 18889 <= value <= 18999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 19001 <= value <= 19006: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 19008 <= value <= 19019: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 19021 <= value <= 19190: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 19192 <= value <= 19193: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 19195 <= value <= 19219: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 19221 <= value <= 19282: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 19284 <= value <= 19314: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 19316 <= value <= 19397: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 19399 <= value <= 19409: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 19413 <= value <= 19538: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 19542 <= value <= 19787: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 19791 <= value <= 19997: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 20006 <= value <= 20011: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 20015 <= value <= 20033: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 20035 <= value <= 20045: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 20047 <= value <= 20047: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 20050 <= value <= 20056: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 20058 <= value <= 20166: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 20168 <= value <= 20201: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 20203 <= value <= 20221: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 20223 <= value <= 20479: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 20481 <= value <= 20669: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 20671 <= value <= 20809: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 20811 <= value <= 20998: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 21001 <= value <= 21009: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 21011 <= value <= 21211: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 21214 <= value <= 21220: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 21222 <= value <= 21336: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 21338 <= value <= 21552: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 21555 <= value <= 21589: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 21591 <= value <= 21799: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 21802 <= value <= 21844: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 21850 <= value <= 21999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22006 <= value <= 22124: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22126 <= value <= 22127: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22129 <= value <= 22221: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22223 <= value <= 22272: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22274 <= value <= 22304: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22306 <= value <= 22332: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22336 <= value <= 22342: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22344 <= value <= 22346: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22348 <= value <= 22349: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22352 <= value <= 22536: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22538 <= value <= 22554: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22556 <= value <= 22762: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22764 <= value <= 22799: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22801 <= value <= 22950: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 22952 <= value <= 22999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 23006 <= value <= 23052: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 23054 <= value <= 23271: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 23273 <= value <= 23293: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 23295 <= value <= 23332: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 23334 <= value <= 23399: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 23403 <= value <= 23455: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 23458 <= value <= 23545: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 23547 <= value <= 23999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24007 <= value <= 24241: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24243 <= value <= 24248: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24250 <= value <= 24320: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24324 <= value <= 24385: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24387 <= value <= 24464: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24466 <= value <= 24553: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24555 <= value <= 24576: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24578 <= value <= 24600: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24602 <= value <= 24665: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24667 <= value <= 24675: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24681 <= value <= 24726: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24728 <= value <= 24753: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24755 <= value <= 24849: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24851 <= value <= 24921: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 24923 <= value <= 24999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 25010 <= value <= 25099: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 25101 <= value <= 25470: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 25472 <= value <= 25575: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 25577 <= value <= 25603: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 25605 <= value <= 25792: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 25794 <= value <= 25899: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 25904 <= value <= 25953: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 25956 <= value <= 25999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 26001 <= value <= 26132: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 26134 <= value <= 26207: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 26209 <= value <= 26256: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 26258 <= value <= 26259: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 26265 <= value <= 26485: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 26490 <= value <= 26999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 27000 <= value <= 27009: #: [N/A] FLEX LM (1-10) return cls._unregistered_member(value, 'flex-lm', TransportProtocol.undefined) if 27011 <= value <= 27015: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 27018 <= value <= 27344: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 27346 <= value <= 27441: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 27443 <= value <= 27503: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 27505 <= value <= 27781: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 27783 <= value <= 27875: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 27877 <= value <= 27998: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 28002 <= value <= 28009: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 28011 <= value <= 28079: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 28081 <= value <= 28118: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 28120 <= value <= 28199: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 28201 <= value <= 28239: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 28241 <= value <= 28588: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 28590 <= value <= 28999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 29001 <= value <= 29117: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 29119 <= value <= 29166: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 29170 <= value <= 29998: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 30005 <= value <= 30099: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 30101 <= value <= 30259: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 30261 <= value <= 30399: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 30401 <= value <= 30831: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 30833 <= value <= 30938: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 30940 <= value <= 30998: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 31000 <= value <= 31015: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 31017 <= value <= 31019: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 31021 <= value <= 31028: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 31030 <= value <= 31336: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 31338 <= value <= 31399: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 31401 <= value <= 31415: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 31417 <= value <= 31456: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 31458 <= value <= 31619: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 31621 <= value <= 31684: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 31686 <= value <= 31764: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 31766 <= value <= 31947: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 31950 <= value <= 32033: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 32035 <= value <= 32248: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 32250 <= value <= 32399: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 32401 <= value <= 32482: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 32484 <= value <= 32634: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 32637 <= value <= 32766: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 32778 <= value <= 32800: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 32802 <= value <= 32810: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 32812 <= value <= 32895: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 32897 <= value <= 32999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 33001 <= value <= 33059: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 33061 <= value <= 33122: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 33124 <= value <= 33330: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 33335 <= value <= 33433: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 33436 <= value <= 33655: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 33657 <= value <= 33889: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 33891 <= value <= 34248: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 34250 <= value <= 34377: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 34380 <= value <= 34566: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 34568 <= value <= 34961: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 34967 <= value <= 34979: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 34981 <= value <= 34999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 35007 <= value <= 35099: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 35101 <= value <= 35353: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 35358 <= value <= 36000: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 36002 <= value <= 36410: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 36413 <= value <= 36421: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 36425 <= value <= 36442: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 36445 <= value <= 36461: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 36463 <= value <= 36523: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 36525 <= value <= 36601: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 36603 <= value <= 36699: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 36701 <= value <= 36864: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 36866 <= value <= 37471: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 37473 <= value <= 37474: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 37476 <= value <= 37482: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 37484 <= value <= 37600: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 37602 <= value <= 37653: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 37655 <= value <= 37999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 38003 <= value <= 38200: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 38204 <= value <= 38411: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 38413 <= value <= 38421: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 38423 <= value <= 38461: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 38463 <= value <= 38471: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 38473 <= value <= 38637: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 38639 <= value <= 38799: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 38801 <= value <= 38864: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 38866 <= value <= 39062: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 39064 <= value <= 39680: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 39682 <= value <= 39999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 40001 <= value <= 40022: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 40024 <= value <= 40403: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 40405 <= value <= 40840: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 40844 <= value <= 40852: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 40854 <= value <= 41110: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 41112 <= value <= 41120: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 41122 <= value <= 41229: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 41231 <= value <= 41793: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 41798 <= value <= 42507: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 42511 <= value <= 42998: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 43001 <= value <= 43187: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 43192 <= value <= 43209: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 43211 <= value <= 43437: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 43442 <= value <= 44122: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 44124 <= value <= 44320: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 44324 <= value <= 44443: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 44446 <= value <= 44543: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 44545 <= value <= 44552: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 44554 <= value <= 44599: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 44601 <= value <= 44817: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 44819 <= value <= 44899: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 44901 <= value <= 44999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 45003 <= value <= 45044: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 45046 <= value <= 45053: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 45055 <= value <= 45184: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 45186 <= value <= 45513: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 45515 <= value <= 45677: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 45679 <= value <= 45823: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 45826 <= value <= 45965: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 45967 <= value <= 46335: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 46337 <= value <= 46997: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 47002 <= value <= 47099: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 47101 <= value <= 47556: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 47558 <= value <= 47623: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 47625 <= value <= 47805: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 47810 <= value <= 47999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 48006 <= value <= 48047: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 48051 <= value <= 48127: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 48130 <= value <= 48555: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 48557 <= value <= 48618: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 48620 <= value <= 48652: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 48654 <= value <= 48999: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) if 49002 <= value <= 49149: #: [N/A] Unassigned return cls._unregistered_member(value, 'unassigned', TransportProtocol.undefined) return super()._missing_(value)