writeLineAndEol(result, baseLines[baseLineIndex]);
final SVNSequenceLine baseLine = baseLines[baseLineIndex]; writeLineAndEol(result, baseLine);
	public int merge(InputStream baseStream, InputStream localStream, InputStream latestStream, OutputStream result) throws IOException {		final SVNSequenceLineReader reader = new SVNSequenceLineReader(true);		final SVNSequenceLine[] baseLines = reader.read(baseStream);		final SVNSequenceLine[] localLines = reader.read(localStream);		final SVNSequenceLine[] latestLines = reader.read(latestStream);		final FSMergerBySequenceList local = new FSMergerBySequenceList(SVNSequenceMedia.createBlocks(baseLines, localLines));		final FSMergerBySequenceList latest = new FSMergerBySequenceList(SVNSequenceMedia.createBlocks(baseLines, latestLines));		int baseLineIndex = -1;		boolean conflict = false;		boolean merged = false;		while (local.hasCurrent() || latest.hasCurrent()) {			if (local.hasCurrent() && latest.hasCurrent() && isEqualChange(local.current(), latest.current(), localLines, latestLines)) {				baseLineIndex = appendLines(result, local.current(), baseLines, localLines, baseLineIndex);				local.forward();				latest.forward();				merged = true;				continue;			}			if (local.hasCurrent() && latest.hasCurrent()) {				final QSequenceDifferenceBlock localStartBlock = local.current();				final QSequenceDifferenceBlock latestStartBlock = latest.current();				if (checkConflict(local, latest, localLines, latestLines)) {					baseLineIndex = createConflict(result, localStartBlock, local.current(), latestStartBlock, latest.current(), baseLines, localLines, latestLines, baseLineIndex);					local.forward();					latest.forward();					conflict = true;					continue;				}			}			if (local.hasCurrent() && isBefore(local.current(), latest.hasCurrent() ? latest.current() : null)) {				baseLineIndex = appendLines(result, local.current(), baseLines, localLines, baseLineIndex);				local.forward();				merged = true;				continue;			}			if (latest.hasCurrent()) {				baseLineIndex = appendLines(result, latest.current(), baseLines, latestLines, baseLineIndex);				latest.forward();				merged = true;				continue;			}		}		for (baseLineIndex++; baseLineIndex < baseLines.length; baseLineIndex++) {			writeLineAndEol(result, baseLines[baseLineIndex]);		}		if (conflict) {			return SVNStatus.CONFLICTED;		}		else if (merged) {			return SVNStatus.MERGED;		}		else {			return SVNStatus.NOT_MODIFIED;		}	}