SVNAssert.assertTrue(baseFrom <= baseTo);
	private static void createInstructions(final SVNSequenceLine[] baseLines, final SVNSequenceLine[] workLines, final List instructions, final List bytesToSend) {		final List blocks = SVNSequenceMedia.createBlocks(baseLines, workLines);		int lastBase = 0;		for (Iterator it = blocks.iterator(); it.hasNext();) {			final QSequenceDifferenceBlock block = (QSequenceDifferenceBlock)it.next();			final int baseFrom = block.getLeftFrom();			final int baseTo = block.getLeftTo();			final int workFrom = block.getRightFrom();			final int workTo = block.getRightTo();			if (lastBase < baseFrom) {				final long charFrom = baseLines[lastBase].getFrom();				final long charTo = baseLines[(baseFrom - 1)].getTo();				instructions.add(new SVNDiffInstruction(SVNDiffInstruction.COPY_FROM_SOURCE, charTo - charFrom + 1, charFrom));			}			if (workTo >= workFrom) {				final long charFrom = workLines[workFrom].getFrom();				final long charTo = workLines[workTo].getTo();				instructions.add(new SVNDiffInstruction(SVNDiffInstruction.COPY_FROM_NEW_DATA, charTo - charFrom + 1, 0));				for (int lineIndex = workFrom; lineIndex <= workTo; lineIndex++) {					bytesToSend.add(workLines[lineIndex].getBytes());				}			}			lastBase = baseTo + 1;		}		if (lastBase <= baseLines.length - 1) {			final long baseFrom = baseLines[lastBase].getFrom();			final long baseTo = baseLines[(baseLines.length - 1)].getTo();			instructions.add(new SVNDiffInstruction(SVNDiffInstruction.COPY_FROM_SOURCE, baseTo - baseFrom + 1, baseFrom));		}	}