<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def list_external_jar_dependencies(self, binary):
 """Returns the external jar dependencies of the given binary. :param binary: The jvm binary target to list transitive external dependencies for. :type binary: :class:`pants.backend.jvm.targets.jvm_binary.JvmBinary` :returns: A list of (jar path, coordinate) tuples. :rtype: list of (string, :class:`pants.java.jar.M2Coordinate`) """

    classpath_products = self.context.products.get_data('runtime_classpath')
    classpath_entries = classpath_products.get_artifact_classpath_entries_for_targets(
        binary.closure(bfs=True, include_scopes=Scopes.JVM_RUNTIME_SCOPES,
                       respect_intransitive=True))
    external_jars = OrderedSet(jar_entry for conf, jar_entry in classpath_entries
                               if conf == 'default')
    return [(entry.path, entry.coordinate) for entry in external_jars
            if not entry.is_excluded_by(binary.deploy_excludes)]