SearchResult<T> continueSearch(SearchResult<T> lastResult) {
	byte[] bytes = lastResult.bytes;
	State state = lastResult.lastMatchedState;
	for (int i = lastResult.lastIndex; i < bytes.length; i++) {
	    byte b = bytes[i];
	    while (state.get(b) == null)
		state = state.getFail();
	    state = state.get(b);
	    if (state.getOutputs().size() > 0)
		return new SearchResult<T>(state, bytes, i+1);
	}
	return null;
    }