public static AddressSet getFollowingAddresses(Program program, AddressSetView addresses,
			TaskMonitor monitor) throws CancelledException {
		AddressSet following = new AddressSet();
		for (Address addr : addresses.getAddresses(true)) {
			monitor.checkCancelled();
			CodeUnit cu = program.getListing().getCodeUnitAfter(addr);
			if (cu == null) {
				continue;
			}
			if (program.getFunctionManager().getFunctionAt(cu.getAddress()) != null) {
				Msg.warn(ModelTrainingUtils.class,
					"Function start following " + addr.toString() + ", skipping...");
				continue;
			}
			following.add(cu.getAddress());
		}
		return following;
	}
Returns an {@link AddressSet} constructed as follows: for each {@link Address} {@code addr} 
in {@code addresses}, add the {@link Address} of the {@link CodeUnit} returned by 
{@link Listing#getCodeUnitAfter(Address)}
<p> Addresses which correspond to function starts are not added to the returned set.
@param program source program
@param addresses addresses to follow
@param monitor monitor
@return following addresses
@throws CancelledException if the monitor is canceled
Ghidra/Extensions/MachineLearning/src/main/java/ghidra/machinelearning/functionfinding/ModelTrainingUtils.java