code: def escape_LDAP(ldap_string):
      # type: (str) -> str
      # pylint: disable=C0103
      
      if not ldap_string:
          # No content
          return ldap_string
  
      # Protect escape character previously in the string
      assert is_string(ldap_string)
      ldap_string = ldap_string.replace(
          ESCAPE_CHARACTER, ESCAPE_CHARACTER + ESCAPE_CHARACTER
      )
  
      # Leading space
      if ldap_string.startswith(" "):
          ldap_string = "\\ {0}".format(ldap_string[1:])
  
      # Trailing space
      if ldap_string.endswith(" "):
          ldap_string = "{0}\\ ".format(ldap_string[:-1])
  
      # Escape other characters
      for escaped in ESCAPED_CHARACTERS:
          ldap_string = ldap_string.replace(escaped, ESCAPE_CHARACTER + escaped)
  
      return ldap_string
docs: Escape a string to let it go in an LDAP filter
  
      :param ldap_string: The string to escape
      :return: The protected string