<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def lresolve(self, path):
 """Search for the specified object, resolving only parent links. This is analogous to the stat/lstat difference. This resolves links *to* the object but not of the final object itself. Args: path: Specifies target FakeFile object to retrieve. Returns: The FakeFile object corresponding to path. Raises: IOError: if the object is not found. """

        path = make_string_path(path)
        if path == self.root.name:
            # The root directory will never be a link
            return self.root

        # remove trailing separator
        path = self._path_without_trailing_separators(path)
        path = self._original_path(path)

        parent_directory, child_name = self.splitpath(path)
        if not parent_directory:
            parent_directory = self.cwd
        try:
            parent_obj = self.resolve(parent_directory)
            assert parent_obj
            if not isinstance(parent_obj, FakeDirectory):
                if not self.is_windows_fs and isinstance(parent_obj, FakeFile):
                    self.raise_io_error(errno.ENOTDIR, path)
                self.raise_io_error(errno.ENOENT, path)
            return parent_obj.get_entry(child_name)
        except KeyError:
            self.raise_io_error(errno.ENOENT, path)