public void moveRange(long start, long end, long newStart) {
		if (newStart < start) {
			long clearSize = end - start + 1;
			long offset = start - newStart;
			if (offset < clearSize) {
				clearSize = offset;
			}
			removeRange(newStart, newStart + clearSize - 1);
			LongIterator it = getPropertyIterator(start, end);
			while (it.hasNext()) {
				long index = it.next();
				moveIndex(index, index - offset);
			}
		}
		else {
			long clearSize = end - start + 1;
			long offset = newStart - start;
			if (offset < clearSize) {
				clearSize = offset;
			}
			if (newStart > end) {
				removeRange(newStart, newStart + clearSize - 1);
			}
			else {
				removeRange(end + 1, end + clearSize);
			}

			LongIterator it = getPropertyIterator(end + 1);
			while (it.hasPrevious()) {
				long index = it.previous();
				if (index < start) {
					break;
				}
				moveIndex(index, index + offset);
			}
		}
	}
Move the range of properties to the newStart index.
@param start the beginning of the property range to move
@param end the end of the property range to move
@param newStart the new beginning of the property range after the move
Ghidra/Framework/Generic/src/main/java/ghidra/util/map/ValueMap.java