class GNewMultiArrayExpr extends AbstractNewMultiArrayExpr {

  public GNewMultiArrayExpr(ArrayType type, List<? extends Value> sizes) {
    super(type, new ValueBox[sizes.size()]);

    final Grimp grmp = Grimp.v();
    for (ListIterator<? extends Value> it = sizes.listIterator(); it.hasNext();) {
      Value v = it.next();
      sizeBoxes[it.previousIndex()] = grmp.newExprBox(v);
    }
  }

  @Override
  public Object clone() {<FILL_FUNCTION_BODY>}
}

    final ValueBox[] boxes = this.sizeBoxes;
    List<Value> clonedSizes = new ArrayList<Value>(boxes.length);
    for (ValueBox vb : boxes) {
      clonedSizes.add(Grimp.cloneIfNecessary(vb.getValue()));
    }
    return new GNewMultiArrayExpr(getBaseType(), clonedSizes);
  
<methods>public void apply(soot.util.Switch) ,public abstract java.lang.Object clone() ,public void convertToBaf(soot.jimple.JimpleToBafContext, List<soot.Unit>) ,public int equivHashCode() ,public boolean equivTo(java.lang.Object) ,public soot.ArrayType getBaseType() ,public soot.Value getSize(int) ,public soot.ValueBox getSizeBox(int) ,public int getSizeCount() ,public List<soot.Value> getSizes() ,public soot.Type getType() ,public final List<soot.ValueBox> getUseBoxes() ,public void setBaseType(soot.ArrayType) ,public void setSize(int, soot.Value) ,public java.lang.String toString() ,public void toString(soot.UnitPrinter) <variables>protected soot.ArrayType baseType,protected final non-sealed soot.ValueBox[] sizeBoxes