class InsnResult extends SearchResult {
	private final int index;
	private final List<String> lines;

	/**
	 * Constructs a insn result.
	 *
	 * @param index
	 * 		Index of first matched item.
	 * @param lines
	 * 		Lines of matched dissasembled method code.
	 */
	public InsnResult(int index, List<String> lines) {
		this.index = index;
		this.lines = lines;
	}

	/**
	 * @return Matched Lines of dissasembled method code.
	 */
	public List<String> getLines() {
		return lines;
	}

	@Override
	public String toString() {
		return String.join("\n", lines);
	}

	@Override
	public int hashCode() {
		return Objects.hash(lines);
	}

	@Override
	public boolean equals(Object other) {<FILL_FUNCTION_BODY>}

	@Override
	@SuppressWarnings("unchecked")
	public int compareTo(SearchResult other) {
		int ret = super.compareTo(other);
		if (ret == 0) {
			if (other instanceof InsnResult) {
				InsnResult otherResult = (InsnResult) other;
				ret = getContext().getParent().compareTo(otherResult.getContext().getParent());
				// Same method -> sort by index
				if (ret == 0)
					return Integer.compare(index, otherResult.index);
				// Different method
				return ret;
			}
		}
		return ret;
	}
}

		if (other instanceof InsnResult)
			return hashCode() == other.hashCode();
		return false;
	
<methods>public non-sealed void <init>() ,public int compareTo(me.coley.recaf.search.SearchResult) ,public Context<?> getContext() ,public boolean isContextSimilar(me.coley.recaf.search.SearchResult) ,public void setContext(Context<?>) ,public java.lang.String toString() <variables>private Context<?> context