code: static AnimatableValue<PointF, PointF> parseSplitPath(
        JsonReader reader, LottieComposition composition) throws IOException {
  
      AnimatablePathValue pathAnimation = null;
      AnimatableFloatValue xAnimation = null;
      AnimatableFloatValue yAnimation = null;
  
      boolean hasExpressions = false;
  
      reader.beginObject();
      while (reader.peek() != JsonToken.END_OBJECT) {
        switch (reader.nextName()) {
          case "k":
            pathAnimation = AnimatablePathValueParser.parse(reader, composition);
            break;
          case "x":
            if (reader.peek() == JsonToken.STRING) {
              hasExpressions = true;
              reader.skipValue();
            } else {
              xAnimation = AnimatableValueParser.parseFloat(reader, composition);
            }
            break;
          case "y":
            if (reader.peek() == JsonToken.STRING) {
              hasExpressions = true;
              reader.skipValue();
            } else {
              yAnimation = AnimatableValueParser.parseFloat(reader, composition);
            }
            break;
          default:
            reader.skipValue();
        }
      }
      reader.endObject();
  
      if (hasExpressions) {
        composition.addWarning("Lottie doesn't support expressions.");
      }
  
      if (pathAnimation != null) {
        return pathAnimation;
      }
      return new AnimatableSplitDimensionPathValue(xAnimation, yAnimation);
    }
docs: Returns either an {@link AnimatablePathValue} or an {@link AnimatableSplitDimensionPathValue}.