<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def compute_exported_specifications(svc_ref):
 # type: (pelix.framework.ServiceReference) -> List[str] """ Computes the list of specifications exported by the given service :param svc_ref: A ServiceReference :return: The list of exported specifications (or an empty list) """

    if svc_ref.get_property(pelix.remote.PROP_EXPORT_NONE):
        # The export of this service is explicitly forbidden, stop here
        return []

    # Service specifications
    specs = svc_ref.get_property(pelix.constants.OBJECTCLASS)

    # Exported specifications
    exported_specs = svc_ref.get_property(pelix.remote.PROP_EXPORTED_INTERFACES)

    if exported_specs and exported_specs != "*":
        # A set of specifications is exported, replace "objectClass"
        iterable_exports = pelix.utilities.to_iterable(exported_specs, False)
        all_exported_specs = [
            spec for spec in specs if spec in iterable_exports
        ]
    else:
        # Export everything
        all_exported_specs = pelix.utilities.to_iterable(specs)

    # Authorized and rejected specifications
    export_only_specs = pelix.utilities.to_iterable(
        svc_ref.get_property(pelix.remote.PROP_EXPORT_ONLY), False
    )

    if export_only_specs:
        # Filter specifications (keep authorized specifications)
        return [
            spec for spec in all_exported_specs if spec in export_only_specs
        ]

    # Filter specifications (reject)
    rejected_specs = pelix.utilities.to_iterable(
        svc_ref.get_property(pelix.remote.PROP_EXPORT_REJECT), False
    )
    return [spec for spec in all_exported_specs if spec not in rejected_specs]