code: public IPv4AddressSection mask(IPv4AddressSection mask, boolean retainPrefix) throws IncompatibleAddressException, PrefixLenException, SizeMismatchException {
  		checkMaskSectionCount(mask);
  		return getSubnetSegments(
  				this,
  				retainPrefix ? getPrefixLength() : null,
  				getAddressCreator(),
  				true,
  				this::getSegment,
  				i -> mask.getSegment(i).getSegmentValue(),
  				false);
  	}
docs: Does the bitwise conjunction with this address.  Useful when subnetting.
  
  @param mask
  @param retainPrefix whether to drop the prefix
  @return
  @throws IncompatibleAddressException