@java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + STEP_COUNT_FIELD_NUMBER;
    hash = (53 * hash) + getStepCount();
    if (hasSmoothGradConfig()) {
      hash = (37 * hash) + SMOOTH_GRAD_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + getSmoothGradConfig().hashCode();
    }
    if (hasBlurBaselineConfig()) {
      hash = (37 * hash) + BLUR_BASELINE_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + getBlurBaselineConfig().hashCode();
    }
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }
<pre>
Config for IG with blur baseline.

When enabled, a linear path from the maximally blurred image to the input
image is created. Using a blurred baseline instead of zero (black image) is
motivated by the BlurIG approach explained here:
https://arxiv.org/abs/2004.03383
</pre>

<code>.google.cloud.vertexai.v1.BlurBaselineConfig blur_baseline_config = 3;</code>
java-vertexai/proto-google-cloud-vertexai-v1/src/main/java/com/google/cloud/vertexai/api/IntegratedGradientsAttribution.java