code: public Position decodePosition(double time, Position receiver, SurfacePositionV0Msg msg, Position reference) {
  		Position ret = decodePosition(time, msg, reference);
  		if (ret != null && receiver != null && !withinReasonableRange(receiver, ret)) {
  			ret.setReasonable(false);
  			num_reasonable = 0;
  		}
  		return ret;
  	}
docs: Performs all reasonableness tests.
  @param time time of applicability/reception of position report (seconds)
  @param reference position used to decide which position of the four results of the CPR algorithm is the right one
  @param receiver position to check if received position was more than 700km away and
  @param msg surface position message
  @return WGS84 coordinates with latitude and longitude in dec degrees, and altitude in meters. altitude might be null if unavailable
  On error, the returned position is null. Check the .isReasonable() flag before using the position.