public String toString() {
   StringBuffer sb = new StringBuffer();
   sb.append("[ftPictFmla]\n");
   sb.append("    .f2unknown     = ").append(HexDump.intToHex(field_1_unknown_int)).append("\n");
   if (field_2_refPtg == null) {
     sb.append("    .f3unknown     = ")
         .append(HexDump.toHex(field_2_unknownFormulaData))
         .append("\n");
   } else {
     sb.append("    .formula       = ").append(field_2_refPtg.toString()).append("\n");
   }
   if (field_4_ole_classname != null) {
     sb.append("    .unicodeFlag   = ").append(field_3_unicode_flag).append("\n");
     sb.append("    .oleClassname  = ").append(field_4_ole_classname).append("\n");
   }
   if (field_4_unknownByte != null) {
     sb.append("    .f4unknown   = ")
         .append(HexDump.byteToHex(field_4_unknownByte.intValue()))
         .append("\n");
   }
   if (field_5_stream_id != null) {
     sb.append("    .streamId      = ")
         .append(HexDump.intToHex(field_5_stream_id.intValue()))
         .append("\n");
   }
   if (field_6_unknown.length > 0) {
     sb.append("    .f7unknown     = ").append(HexDump.toHex(field_6_unknown)).append("\n");
   }
   sb.append("[/ftPictFmla]");
   return sb.toString();
 }
  @Override
  protected void appendValueText(StringBuilder sb) {
    sb.append("  .value	 = ");
    if (specialCachedValue == null) {
      sb.append(field_4_value).append("\n");
    } else {
      sb.append(specialCachedValue.formatDebugString()).append("\n");
    }
    sb.append("  .options   = ").append(HexDump.shortToHex(getOptions())).append("\n");
    sb.append("    .alwaysCalc= ").append(isAlwaysCalc()).append("\n");
    sb.append("    .calcOnLoad= ").append(isCalcOnLoad()).append("\n");
    sb.append("    .shared    = ").append(isSharedFormula()).append("\n");
    sb.append("  .zero      = ").append(HexDump.intToHex(field_6_zero)).append("\n");

    Ptg[] ptgs = field_8_parsed_expr.getTokens();
    for (int k = 0; k < ptgs.length; k++) {
      if (k > 0) {
        sb.append("\n");
      }
      sb.append("    Ptg[").append(k).append("]=");
      Ptg ptg = ptgs[k];
      sb.append(ptg.toString()).append(ptg.getRVAType());
    }
  }