All Downloads are FREE. Search and download functionalities are using the official Maven repository.

wechat.protobuf.UploadMsgImgRequest Maven / Gradle / Ivy

There is a newer version: 8.0.48.01
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: wechat.proto

package wechat.protobuf;

/**
 * Protobuf type {@code wechat_proto.UploadMsgImgRequest}
 */
public final class UploadMsgImgRequest extends
    com.google.protobuf.GeneratedMessageV3 implements
    // @@protoc_insertion_point(message_implements:wechat_proto.UploadMsgImgRequest)
    UploadMsgImgRequestOrBuilder {
private static final long serialVersionUID = 0L;
  // Use UploadMsgImgRequest.newBuilder() to construct.
  private UploadMsgImgRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
    super(builder);
  }
  private UploadMsgImgRequest() {
    msgSource_ = "";
    cdnBigImgUrl_ = "";
    cdnSmallImgUrl_ = "";
    aesKey_ = "";
    cdnThumbImgUrl_ = "";
    cdnThumbAesKey_ = "";
    md5_ = "";
    appId_ = "";
    messageAction_ = "";
    messageExt_ = "";
    mediaTagName_ = "";
  }

  @java.lang.Override
  @SuppressWarnings({"unused"})
  protected java.lang.Object newInstance(
      UnusedPrivateParameter unused) {
    return new UploadMsgImgRequest();
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet
  getUnknownFields() {
    return this.unknownFields;
  }
  private UploadMsgImgRequest(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    int mutable_bitField1_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10: {
            wechat.protobuf.BaseRequest.Builder subBuilder = null;
            if (((bitField0_ & 0x00000001) != 0)) {
              subBuilder = baseRequest_.toBuilder();
            }
            baseRequest_ = input.readMessage(wechat.protobuf.BaseRequest.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(baseRequest_);
              baseRequest_ = subBuilder.buildPartial();
            }
            bitField0_ |= 0x00000001;
            break;
          }
          case 18: {
            wechat.protobuf.SKBuiltinString.Builder subBuilder = null;
            if (((bitField0_ & 0x00000002) != 0)) {
              subBuilder = clientImgId_.toBuilder();
            }
            clientImgId_ = input.readMessage(wechat.protobuf.SKBuiltinString.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(clientImgId_);
              clientImgId_ = subBuilder.buildPartial();
            }
            bitField0_ |= 0x00000002;
            break;
          }
          case 26: {
            wechat.protobuf.SKBuiltinString.Builder subBuilder = null;
            if (((bitField0_ & 0x00000004) != 0)) {
              subBuilder = senderWxid_.toBuilder();
            }
            senderWxid_ = input.readMessage(wechat.protobuf.SKBuiltinString.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(senderWxid_);
              senderWxid_ = subBuilder.buildPartial();
            }
            bitField0_ |= 0x00000004;
            break;
          }
          case 34: {
            wechat.protobuf.SKBuiltinString.Builder subBuilder = null;
            if (((bitField0_ & 0x00000008) != 0)) {
              subBuilder = recvWxid_.toBuilder();
            }
            recvWxid_ = input.readMessage(wechat.protobuf.SKBuiltinString.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(recvWxid_);
              recvWxid_ = subBuilder.buildPartial();
            }
            bitField0_ |= 0x00000008;
            break;
          }
          case 40: {
            bitField0_ |= 0x00000010;
            totalLen_ = input.readUInt32();
            break;
          }
          case 48: {
            bitField0_ |= 0x00000020;
            startPos_ = input.readUInt32();
            break;
          }
          case 56: {
            bitField0_ |= 0x00000040;
            dataLen_ = input.readUInt32();
            break;
          }
          case 66: {
            wechat.protobuf.SKBuiltinString_.Builder subBuilder = null;
            if (((bitField0_ & 0x00000080) != 0)) {
              subBuilder = data_.toBuilder();
            }
            data_ = input.readMessage(wechat.protobuf.SKBuiltinString_.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(data_);
              data_ = subBuilder.buildPartial();
            }
            bitField0_ |= 0x00000080;
            break;
          }
          case 72: {
            bitField0_ |= 0x00000100;
            msgType_ = input.readUInt32();
            break;
          }
          case 82: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x00000200;
            msgSource_ = bs;
            break;
          }
          case 88: {
            bitField0_ |= 0x00000400;
            compressType_ = input.readUInt32();
            break;
          }
          case 96: {
            bitField0_ |= 0x00000800;
            netType_ = input.readUInt32();
            break;
          }
          case 104: {
            bitField0_ |= 0x00001000;
            photoFrom_ = input.readUInt32();
            break;
          }
          case 112: {
            bitField0_ |= 0x00002000;
            uiCreateTime_ = input.readUInt32();
            break;
          }
          case 122: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x00004000;
            cdnBigImgUrl_ = bs;
            break;
          }
          case 130: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x00008000;
            cdnSmallImgUrl_ = bs;
            break;
          }
          case 138: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x00010000;
            aesKey_ = bs;
            break;
          }
          case 144: {
            bitField0_ |= 0x00020000;
            encryVer_ = input.readUInt32();
            break;
          }
          case 152: {
            bitField0_ |= 0x00040000;
            cdnBigImgSize_ = input.readUInt32();
            break;
          }
          case 160: {
            bitField0_ |= 0x00080000;
            cdnMidImgSize_ = input.readUInt32();
            break;
          }
          case 170: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x00100000;
            cdnThumbImgUrl_ = bs;
            break;
          }
          case 176: {
            bitField0_ |= 0x00200000;
            cdnThumbImgSize_ = input.readUInt32();
            break;
          }
          case 184: {
            bitField0_ |= 0x00400000;
            cdnThumbImgHeight_ = input.readUInt32();
            break;
          }
          case 192: {
            bitField0_ |= 0x00800000;
            cdnThumbImgWidth_ = input.readUInt32();
            break;
          }
          case 202: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x01000000;
            cdnThumbAesKey_ = bs;
            break;
          }
          case 208: {
            bitField0_ |= 0x02000000;
            reqTime_ = input.readUInt32();
            break;
          }
          case 218: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x04000000;
            md5_ = bs;
            break;
          }
          case 224: {
            bitField0_ |= 0x08000000;
            crc32_ = input.readUInt32();
            break;
          }
          case 232: {
            bitField0_ |= 0x10000000;
            msgForwardType_ = input.readUInt32();
            break;
          }
          case 240: {
            bitField0_ |= 0x20000000;
            hitMd5_ = input.readUInt32();
            break;
          }
          case 250: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x40000000;
            appId_ = bs;
            break;
          }
          case 258: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x80000000;
            messageAction_ = bs;
            break;
          }
          case 266: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00000001;
            messageExt_ = bs;
            break;
          }
          case 274: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00000002;
            mediaTagName_ = bs;
            break;
          }
          default: {
            if (!parseUnknownField(
                input, unknownFields, extensionRegistry, tag)) {
              done = true;
            }
            break;
          }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(
          e).setUnfinishedMessage(this);
    } finally {
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }
  public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
    return wechat.protobuf.Wechat.internal_static_wechat_proto_UploadMsgImgRequest_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return wechat.protobuf.Wechat.internal_static_wechat_proto_UploadMsgImgRequest_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            wechat.protobuf.UploadMsgImgRequest.class, wechat.protobuf.UploadMsgImgRequest.Builder.class);
  }

  private int bitField0_;
  private int bitField1_;
  public static final int BASE_REQUEST_FIELD_NUMBER = 1;
  private wechat.protobuf.BaseRequest baseRequest_;
  /**
   * optional .wechat_proto.BaseRequest base_request = 1;
   * @return Whether the baseRequest field is set.
   */
  @java.lang.Override
  public boolean hasBaseRequest() {
    return ((bitField0_ & 0x00000001) != 0);
  }
  /**
   * optional .wechat_proto.BaseRequest base_request = 1;
   * @return The baseRequest.
   */
  @java.lang.Override
  public wechat.protobuf.BaseRequest getBaseRequest() {
    return baseRequest_ == null ? wechat.protobuf.BaseRequest.getDefaultInstance() : baseRequest_;
  }
  /**
   * optional .wechat_proto.BaseRequest base_request = 1;
   */
  @java.lang.Override
  public wechat.protobuf.BaseRequestOrBuilder getBaseRequestOrBuilder() {
    return baseRequest_ == null ? wechat.protobuf.BaseRequest.getDefaultInstance() : baseRequest_;
  }

  public static final int CLIENT_IMG_ID_FIELD_NUMBER = 2;
  private wechat.protobuf.SKBuiltinString clientImgId_;
  /**
   * optional .wechat_proto.SKBuiltinString client_img_id = 2;
   * @return Whether the clientImgId field is set.
   */
  @java.lang.Override
  public boolean hasClientImgId() {
    return ((bitField0_ & 0x00000002) != 0);
  }
  /**
   * optional .wechat_proto.SKBuiltinString client_img_id = 2;
   * @return The clientImgId.
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString getClientImgId() {
    return clientImgId_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : clientImgId_;
  }
  /**
   * optional .wechat_proto.SKBuiltinString client_img_id = 2;
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinStringOrBuilder getClientImgIdOrBuilder() {
    return clientImgId_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : clientImgId_;
  }

  public static final int SENDER_WXID_FIELD_NUMBER = 3;
  private wechat.protobuf.SKBuiltinString senderWxid_;
  /**
   * optional .wechat_proto.SKBuiltinString sender_wxid = 3;
   * @return Whether the senderWxid field is set.
   */
  @java.lang.Override
  public boolean hasSenderWxid() {
    return ((bitField0_ & 0x00000004) != 0);
  }
  /**
   * optional .wechat_proto.SKBuiltinString sender_wxid = 3;
   * @return The senderWxid.
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString getSenderWxid() {
    return senderWxid_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : senderWxid_;
  }
  /**
   * optional .wechat_proto.SKBuiltinString sender_wxid = 3;
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinStringOrBuilder getSenderWxidOrBuilder() {
    return senderWxid_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : senderWxid_;
  }

  public static final int RECV_WXID_FIELD_NUMBER = 4;
  private wechat.protobuf.SKBuiltinString recvWxid_;
  /**
   * optional .wechat_proto.SKBuiltinString recv_wxid = 4;
   * @return Whether the recvWxid field is set.
   */
  @java.lang.Override
  public boolean hasRecvWxid() {
    return ((bitField0_ & 0x00000008) != 0);
  }
  /**
   * optional .wechat_proto.SKBuiltinString recv_wxid = 4;
   * @return The recvWxid.
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString getRecvWxid() {
    return recvWxid_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : recvWxid_;
  }
  /**
   * optional .wechat_proto.SKBuiltinString recv_wxid = 4;
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinStringOrBuilder getRecvWxidOrBuilder() {
    return recvWxid_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : recvWxid_;
  }

  public static final int TOTAL_LEN_FIELD_NUMBER = 5;
  private int totalLen_;
  /**
   * optional uint32 total_len = 5;
   * @return Whether the totalLen field is set.
   */
  @java.lang.Override
  public boolean hasTotalLen() {
    return ((bitField0_ & 0x00000010) != 0);
  }
  /**
   * optional uint32 total_len = 5;
   * @return The totalLen.
   */
  @java.lang.Override
  public int getTotalLen() {
    return totalLen_;
  }

  public static final int START_POS_FIELD_NUMBER = 6;
  private int startPos_;
  /**
   * optional uint32 start_pos = 6;
   * @return Whether the startPos field is set.
   */
  @java.lang.Override
  public boolean hasStartPos() {
    return ((bitField0_ & 0x00000020) != 0);
  }
  /**
   * optional uint32 start_pos = 6;
   * @return The startPos.
   */
  @java.lang.Override
  public int getStartPos() {
    return startPos_;
  }

  public static final int DATA_LEN_FIELD_NUMBER = 7;
  private int dataLen_;
  /**
   * optional uint32 data_len = 7;
   * @return Whether the dataLen field is set.
   */
  @java.lang.Override
  public boolean hasDataLen() {
    return ((bitField0_ & 0x00000040) != 0);
  }
  /**
   * optional uint32 data_len = 7;
   * @return The dataLen.
   */
  @java.lang.Override
  public int getDataLen() {
    return dataLen_;
  }

  public static final int DATA_FIELD_NUMBER = 8;
  private wechat.protobuf.SKBuiltinString_ data_;
  /**
   * optional .wechat_proto.SKBuiltinString_ data = 8;
   * @return Whether the data field is set.
   */
  @java.lang.Override
  public boolean hasData() {
    return ((bitField0_ & 0x00000080) != 0);
  }
  /**
   * optional .wechat_proto.SKBuiltinString_ data = 8;
   * @return The data.
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString_ getData() {
    return data_ == null ? wechat.protobuf.SKBuiltinString_.getDefaultInstance() : data_;
  }
  /**
   * optional .wechat_proto.SKBuiltinString_ data = 8;
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString_OrBuilder getDataOrBuilder() {
    return data_ == null ? wechat.protobuf.SKBuiltinString_.getDefaultInstance() : data_;
  }

  public static final int MSG_TYPE_FIELD_NUMBER = 9;
  private int msgType_;
  /**
   * optional uint32 msg_type = 9;
   * @return Whether the msgType field is set.
   */
  @java.lang.Override
  public boolean hasMsgType() {
    return ((bitField0_ & 0x00000100) != 0);
  }
  /**
   * optional uint32 msg_type = 9;
   * @return The msgType.
   */
  @java.lang.Override
  public int getMsgType() {
    return msgType_;
  }

  public static final int MSG_SOURCE_FIELD_NUMBER = 10;
  private volatile java.lang.Object msgSource_;
  /**
   * optional string msg_source = 10;
   * @return Whether the msgSource field is set.
   */
  @java.lang.Override
  public boolean hasMsgSource() {
    return ((bitField0_ & 0x00000200) != 0);
  }
  /**
   * optional string msg_source = 10;
   * @return The msgSource.
   */
  @java.lang.Override
  public java.lang.String getMsgSource() {
    java.lang.Object ref = msgSource_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      if (bs.isValidUtf8()) {
        msgSource_ = s;
      }
      return s;
    }
  }
  /**
   * optional string msg_source = 10;
   * @return The bytes for msgSource.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getMsgSourceBytes() {
    java.lang.Object ref = msgSource_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      msgSource_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int COMPRESS_TYPE_FIELD_NUMBER = 11;
  private int compressType_;
  /**
   * optional uint32 compress_type = 11;
   * @return Whether the compressType field is set.
   */
  @java.lang.Override
  public boolean hasCompressType() {
    return ((bitField0_ & 0x00000400) != 0);
  }
  /**
   * optional uint32 compress_type = 11;
   * @return The compressType.
   */
  @java.lang.Override
  public int getCompressType() {
    return compressType_;
  }

  public static final int NET_TYPE_FIELD_NUMBER = 12;
  private int netType_;
  /**
   * optional uint32 net_type = 12;
   * @return Whether the netType field is set.
   */
  @java.lang.Override
  public boolean hasNetType() {
    return ((bitField0_ & 0x00000800) != 0);
  }
  /**
   * optional uint32 net_type = 12;
   * @return The netType.
   */
  @java.lang.Override
  public int getNetType() {
    return netType_;
  }

  public static final int PHOTO_FROM_FIELD_NUMBER = 13;
  private int photoFrom_;
  /**
   * optional uint32 photo_from = 13;
   * @return Whether the photoFrom field is set.
   */
  @java.lang.Override
  public boolean hasPhotoFrom() {
    return ((bitField0_ & 0x00001000) != 0);
  }
  /**
   * optional uint32 photo_from = 13;
   * @return The photoFrom.
   */
  @java.lang.Override
  public int getPhotoFrom() {
    return photoFrom_;
  }

  public static final int UI_CREATE_TIME_FIELD_NUMBER = 14;
  private int uiCreateTime_;
  /**
   * optional uint32 ui_create_time = 14;
   * @return Whether the uiCreateTime field is set.
   */
  @java.lang.Override
  public boolean hasUiCreateTime() {
    return ((bitField0_ & 0x00002000) != 0);
  }
  /**
   * optional uint32 ui_create_time = 14;
   * @return The uiCreateTime.
   */
  @java.lang.Override
  public int getUiCreateTime() {
    return uiCreateTime_;
  }

  public static final int CDN_BIG_IMG_URL_FIELD_NUMBER = 15;
  private volatile java.lang.Object cdnBigImgUrl_;
  /**
   * optional string cdn_big_img_url = 15;
   * @return Whether the cdnBigImgUrl field is set.
   */
  @java.lang.Override
  public boolean hasCdnBigImgUrl() {
    return ((bitField0_ & 0x00004000) != 0);
  }
  /**
   * optional string cdn_big_img_url = 15;
   * @return The cdnBigImgUrl.
   */
  @java.lang.Override
  public java.lang.String getCdnBigImgUrl() {
    java.lang.Object ref = cdnBigImgUrl_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      if (bs.isValidUtf8()) {
        cdnBigImgUrl_ = s;
      }
      return s;
    }
  }
  /**
   * optional string cdn_big_img_url = 15;
   * @return The bytes for cdnBigImgUrl.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getCdnBigImgUrlBytes() {
    java.lang.Object ref = cdnBigImgUrl_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      cdnBigImgUrl_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int CDN_SMALL_IMG_URL_FIELD_NUMBER = 16;
  private volatile java.lang.Object cdnSmallImgUrl_;
  /**
   * optional string cdn_small_img_url = 16;
   * @return Whether the cdnSmallImgUrl field is set.
   */
  @java.lang.Override
  public boolean hasCdnSmallImgUrl() {
    return ((bitField0_ & 0x00008000) != 0);
  }
  /**
   * optional string cdn_small_img_url = 16;
   * @return The cdnSmallImgUrl.
   */
  @java.lang.Override
  public java.lang.String getCdnSmallImgUrl() {
    java.lang.Object ref = cdnSmallImgUrl_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      if (bs.isValidUtf8()) {
        cdnSmallImgUrl_ = s;
      }
      return s;
    }
  }
  /**
   * optional string cdn_small_img_url = 16;
   * @return The bytes for cdnSmallImgUrl.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getCdnSmallImgUrlBytes() {
    java.lang.Object ref = cdnSmallImgUrl_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      cdnSmallImgUrl_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int AES_KEY_FIELD_NUMBER = 17;
  private volatile java.lang.Object aesKey_;
  /**
   * optional string aes_key = 17;
   * @return Whether the aesKey field is set.
   */
  @java.lang.Override
  public boolean hasAesKey() {
    return ((bitField0_ & 0x00010000) != 0);
  }
  /**
   * optional string aes_key = 17;
   * @return The aesKey.
   */
  @java.lang.Override
  public java.lang.String getAesKey() {
    java.lang.Object ref = aesKey_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      if (bs.isValidUtf8()) {
        aesKey_ = s;
      }
      return s;
    }
  }
  /**
   * optional string aes_key = 17;
   * @return The bytes for aesKey.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getAesKeyBytes() {
    java.lang.Object ref = aesKey_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      aesKey_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int ENCRY_VER_FIELD_NUMBER = 18;
  private int encryVer_;
  /**
   * optional uint32 encry_ver = 18;
   * @return Whether the encryVer field is set.
   */
  @java.lang.Override
  public boolean hasEncryVer() {
    return ((bitField0_ & 0x00020000) != 0);
  }
  /**
   * optional uint32 encry_ver = 18;
   * @return The encryVer.
   */
  @java.lang.Override
  public int getEncryVer() {
    return encryVer_;
  }

  public static final int CDN_BIG_IMG_SIZE_FIELD_NUMBER = 19;
  private int cdnBigImgSize_;
  /**
   * optional uint32 cdn_big_img_size = 19;
   * @return Whether the cdnBigImgSize field is set.
   */
  @java.lang.Override
  public boolean hasCdnBigImgSize() {
    return ((bitField0_ & 0x00040000) != 0);
  }
  /**
   * optional uint32 cdn_big_img_size = 19;
   * @return The cdnBigImgSize.
   */
  @java.lang.Override
  public int getCdnBigImgSize() {
    return cdnBigImgSize_;
  }

  public static final int CDN_MID_IMG_SIZE_FIELD_NUMBER = 20;
  private int cdnMidImgSize_;
  /**
   * optional uint32 cdn_mid_img_size = 20;
   * @return Whether the cdnMidImgSize field is set.
   */
  @java.lang.Override
  public boolean hasCdnMidImgSize() {
    return ((bitField0_ & 0x00080000) != 0);
  }
  /**
   * optional uint32 cdn_mid_img_size = 20;
   * @return The cdnMidImgSize.
   */
  @java.lang.Override
  public int getCdnMidImgSize() {
    return cdnMidImgSize_;
  }

  public static final int CDN_THUMB_IMG_URL_FIELD_NUMBER = 21;
  private volatile java.lang.Object cdnThumbImgUrl_;
  /**
   * optional string cdn_thumb_img_url = 21;
   * @return Whether the cdnThumbImgUrl field is set.
   */
  @java.lang.Override
  public boolean hasCdnThumbImgUrl() {
    return ((bitField0_ & 0x00100000) != 0);
  }
  /**
   * optional string cdn_thumb_img_url = 21;
   * @return The cdnThumbImgUrl.
   */
  @java.lang.Override
  public java.lang.String getCdnThumbImgUrl() {
    java.lang.Object ref = cdnThumbImgUrl_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      if (bs.isValidUtf8()) {
        cdnThumbImgUrl_ = s;
      }
      return s;
    }
  }
  /**
   * optional string cdn_thumb_img_url = 21;
   * @return The bytes for cdnThumbImgUrl.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getCdnThumbImgUrlBytes() {
    java.lang.Object ref = cdnThumbImgUrl_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      cdnThumbImgUrl_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int CDN_THUMB_IMG_SIZE_FIELD_NUMBER = 22;
  private int cdnThumbImgSize_;
  /**
   * optional uint32 cdn_thumb_img_size = 22;
   * @return Whether the cdnThumbImgSize field is set.
   */
  @java.lang.Override
  public boolean hasCdnThumbImgSize() {
    return ((bitField0_ & 0x00200000) != 0);
  }
  /**
   * optional uint32 cdn_thumb_img_size = 22;
   * @return The cdnThumbImgSize.
   */
  @java.lang.Override
  public int getCdnThumbImgSize() {
    return cdnThumbImgSize_;
  }

  public static final int CDN_THUMB_IMG_HEIGHT_FIELD_NUMBER = 23;
  private int cdnThumbImgHeight_;
  /**
   * optional uint32 cdn_thumb_img_height = 23;
   * @return Whether the cdnThumbImgHeight field is set.
   */
  @java.lang.Override
  public boolean hasCdnThumbImgHeight() {
    return ((bitField0_ & 0x00400000) != 0);
  }
  /**
   * optional uint32 cdn_thumb_img_height = 23;
   * @return The cdnThumbImgHeight.
   */
  @java.lang.Override
  public int getCdnThumbImgHeight() {
    return cdnThumbImgHeight_;
  }

  public static final int CDN_THUMB_IMG_WIDTH_FIELD_NUMBER = 24;
  private int cdnThumbImgWidth_;
  /**
   * optional uint32 cdn_thumb_img_width = 24;
   * @return Whether the cdnThumbImgWidth field is set.
   */
  @java.lang.Override
  public boolean hasCdnThumbImgWidth() {
    return ((bitField0_ & 0x00800000) != 0);
  }
  /**
   * optional uint32 cdn_thumb_img_width = 24;
   * @return The cdnThumbImgWidth.
   */
  @java.lang.Override
  public int getCdnThumbImgWidth() {
    return cdnThumbImgWidth_;
  }

  public static final int CDN_THUMB_AES_KEY_FIELD_NUMBER = 25;
  private volatile java.lang.Object cdnThumbAesKey_;
  /**
   * optional string cdn_thumb_aes_key = 25;
   * @return Whether the cdnThumbAesKey field is set.
   */
  @java.lang.Override
  public boolean hasCdnThumbAesKey() {
    return ((bitField0_ & 0x01000000) != 0);
  }
  /**
   * optional string cdn_thumb_aes_key = 25;
   * @return The cdnThumbAesKey.
   */
  @java.lang.Override
  public java.lang.String getCdnThumbAesKey() {
    java.lang.Object ref = cdnThumbAesKey_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      if (bs.isValidUtf8()) {
        cdnThumbAesKey_ = s;
      }
      return s;
    }
  }
  /**
   * optional string cdn_thumb_aes_key = 25;
   * @return The bytes for cdnThumbAesKey.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getCdnThumbAesKeyBytes() {
    java.lang.Object ref = cdnThumbAesKey_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      cdnThumbAesKey_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int REQ_TIME_FIELD_NUMBER = 26;
  private int reqTime_;
  /**
   * optional uint32 req_time = 26;
   * @return Whether the reqTime field is set.
   */
  @java.lang.Override
  public boolean hasReqTime() {
    return ((bitField0_ & 0x02000000) != 0);
  }
  /**
   * optional uint32 req_time = 26;
   * @return The reqTime.
   */
  @java.lang.Override
  public int getReqTime() {
    return reqTime_;
  }

  public static final int MD5_FIELD_NUMBER = 27;
  private volatile java.lang.Object md5_;
  /**
   * optional string md5 = 27;
   * @return Whether the md5 field is set.
   */
  @java.lang.Override
  public boolean hasMd5() {
    return ((bitField0_ & 0x04000000) != 0);
  }
  /**
   * optional string md5 = 27;
   * @return The md5.
   */
  @java.lang.Override
  public java.lang.String getMd5() {
    java.lang.Object ref = md5_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      if (bs.isValidUtf8()) {
        md5_ = s;
      }
      return s;
    }
  }
  /**
   * optional string md5 = 27;
   * @return The bytes for md5.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getMd5Bytes() {
    java.lang.Object ref = md5_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      md5_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int CRC32_FIELD_NUMBER = 28;
  private int crc32_;
  /**
   * optional uint32 crc32 = 28;
   * @return Whether the crc32 field is set.
   */
  @java.lang.Override
  public boolean hasCrc32() {
    return ((bitField0_ & 0x08000000) != 0);
  }
  /**
   * optional uint32 crc32 = 28;
   * @return The crc32.
   */
  @java.lang.Override
  public int getCrc32() {
    return crc32_;
  }

  public static final int MSG_FORWARD_TYPE_FIELD_NUMBER = 29;
  private int msgForwardType_;
  /**
   * optional uint32 msg_forward_type = 29;
   * @return Whether the msgForwardType field is set.
   */
  @java.lang.Override
  public boolean hasMsgForwardType() {
    return ((bitField0_ & 0x10000000) != 0);
  }
  /**
   * optional uint32 msg_forward_type = 29;
   * @return The msgForwardType.
   */
  @java.lang.Override
  public int getMsgForwardType() {
    return msgForwardType_;
  }

  public static final int HIT_MD5_FIELD_NUMBER = 30;
  private int hitMd5_;
  /**
   * optional uint32 hit_md5 = 30;
   * @return Whether the hitMd5 field is set.
   */
  @java.lang.Override
  public boolean hasHitMd5() {
    return ((bitField0_ & 0x20000000) != 0);
  }
  /**
   * optional uint32 hit_md5 = 30;
   * @return The hitMd5.
   */
  @java.lang.Override
  public int getHitMd5() {
    return hitMd5_;
  }

  public static final int APP_ID_FIELD_NUMBER = 31;
  private volatile java.lang.Object appId_;
  /**
   * optional string app_id = 31;
   * @return Whether the appId field is set.
   */
  @java.lang.Override
  public boolean hasAppId() {
    return ((bitField0_ & 0x40000000) != 0);
  }
  /**
   * optional string app_id = 31;
   * @return The appId.
   */
  @java.lang.Override
  public java.lang.String getAppId() {
    java.lang.Object ref = appId_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      if (bs.isValidUtf8()) {
        appId_ = s;
      }
      return s;
    }
  }
  /**
   * optional string app_id = 31;
   * @return The bytes for appId.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getAppIdBytes() {
    java.lang.Object ref = appId_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      appId_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int MESSAGE_ACTION_FIELD_NUMBER = 32;
  private volatile java.lang.Object messageAction_;
  /**
   * optional string message_action = 32;
   * @return Whether the messageAction field is set.
   */
  @java.lang.Override
  public boolean hasMessageAction() {
    return ((bitField0_ & 0x80000000) != 0);
  }
  /**
   * optional string message_action = 32;
   * @return The messageAction.
   */
  @java.lang.Override
  public java.lang.String getMessageAction() {
    java.lang.Object ref = messageAction_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      if (bs.isValidUtf8()) {
        messageAction_ = s;
      }
      return s;
    }
  }
  /**
   * optional string message_action = 32;
   * @return The bytes for messageAction.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getMessageActionBytes() {
    java.lang.Object ref = messageAction_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      messageAction_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int MESSAGE_EXT_FIELD_NUMBER = 33;
  private volatile java.lang.Object messageExt_;
  /**
   * optional string message_ext = 33;
   * @return Whether the messageExt field is set.
   */
  @java.lang.Override
  public boolean hasMessageExt() {
    return ((bitField1_ & 0x00000001) != 0);
  }
  /**
   * optional string message_ext = 33;
   * @return The messageExt.
   */
  @java.lang.Override
  public java.lang.String getMessageExt() {
    java.lang.Object ref = messageExt_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      if (bs.isValidUtf8()) {
        messageExt_ = s;
      }
      return s;
    }
  }
  /**
   * optional string message_ext = 33;
   * @return The bytes for messageExt.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getMessageExtBytes() {
    java.lang.Object ref = messageExt_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      messageExt_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int MEDIA_TAG_NAME_FIELD_NUMBER = 34;
  private volatile java.lang.Object mediaTagName_;
  /**
   * optional string media_tag_name = 34;
   * @return Whether the mediaTagName field is set.
   */
  @java.lang.Override
  public boolean hasMediaTagName() {
    return ((bitField1_ & 0x00000002) != 0);
  }
  /**
   * optional string media_tag_name = 34;
   * @return The mediaTagName.
   */
  @java.lang.Override
  public java.lang.String getMediaTagName() {
    java.lang.Object ref = mediaTagName_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      if (bs.isValidUtf8()) {
        mediaTagName_ = s;
      }
      return s;
    }
  }
  /**
   * optional string media_tag_name = 34;
   * @return The bytes for mediaTagName.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getMediaTagNameBytes() {
    java.lang.Object ref = mediaTagName_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      mediaTagName_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  private byte memoizedIsInitialized = -1;
  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output)
                      throws java.io.IOException {
    if (((bitField0_ & 0x00000001) != 0)) {
      output.writeMessage(1, getBaseRequest());
    }
    if (((bitField0_ & 0x00000002) != 0)) {
      output.writeMessage(2, getClientImgId());
    }
    if (((bitField0_ & 0x00000004) != 0)) {
      output.writeMessage(3, getSenderWxid());
    }
    if (((bitField0_ & 0x00000008) != 0)) {
      output.writeMessage(4, getRecvWxid());
    }
    if (((bitField0_ & 0x00000010) != 0)) {
      output.writeUInt32(5, totalLen_);
    }
    if (((bitField0_ & 0x00000020) != 0)) {
      output.writeUInt32(6, startPos_);
    }
    if (((bitField0_ & 0x00000040) != 0)) {
      output.writeUInt32(7, dataLen_);
    }
    if (((bitField0_ & 0x00000080) != 0)) {
      output.writeMessage(8, getData());
    }
    if (((bitField0_ & 0x00000100) != 0)) {
      output.writeUInt32(9, msgType_);
    }
    if (((bitField0_ & 0x00000200) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 10, msgSource_);
    }
    if (((bitField0_ & 0x00000400) != 0)) {
      output.writeUInt32(11, compressType_);
    }
    if (((bitField0_ & 0x00000800) != 0)) {
      output.writeUInt32(12, netType_);
    }
    if (((bitField0_ & 0x00001000) != 0)) {
      output.writeUInt32(13, photoFrom_);
    }
    if (((bitField0_ & 0x00002000) != 0)) {
      output.writeUInt32(14, uiCreateTime_);
    }
    if (((bitField0_ & 0x00004000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 15, cdnBigImgUrl_);
    }
    if (((bitField0_ & 0x00008000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 16, cdnSmallImgUrl_);
    }
    if (((bitField0_ & 0x00010000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 17, aesKey_);
    }
    if (((bitField0_ & 0x00020000) != 0)) {
      output.writeUInt32(18, encryVer_);
    }
    if (((bitField0_ & 0x00040000) != 0)) {
      output.writeUInt32(19, cdnBigImgSize_);
    }
    if (((bitField0_ & 0x00080000) != 0)) {
      output.writeUInt32(20, cdnMidImgSize_);
    }
    if (((bitField0_ & 0x00100000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 21, cdnThumbImgUrl_);
    }
    if (((bitField0_ & 0x00200000) != 0)) {
      output.writeUInt32(22, cdnThumbImgSize_);
    }
    if (((bitField0_ & 0x00400000) != 0)) {
      output.writeUInt32(23, cdnThumbImgHeight_);
    }
    if (((bitField0_ & 0x00800000) != 0)) {
      output.writeUInt32(24, cdnThumbImgWidth_);
    }
    if (((bitField0_ & 0x01000000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 25, cdnThumbAesKey_);
    }
    if (((bitField0_ & 0x02000000) != 0)) {
      output.writeUInt32(26, reqTime_);
    }
    if (((bitField0_ & 0x04000000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 27, md5_);
    }
    if (((bitField0_ & 0x08000000) != 0)) {
      output.writeUInt32(28, crc32_);
    }
    if (((bitField0_ & 0x10000000) != 0)) {
      output.writeUInt32(29, msgForwardType_);
    }
    if (((bitField0_ & 0x20000000) != 0)) {
      output.writeUInt32(30, hitMd5_);
    }
    if (((bitField0_ & 0x40000000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 31, appId_);
    }
    if (((bitField0_ & 0x80000000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 32, messageAction_);
    }
    if (((bitField1_ & 0x00000001) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 33, messageExt_);
    }
    if (((bitField1_ & 0x00000002) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 34, mediaTagName_);
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (((bitField0_ & 0x00000001) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(1, getBaseRequest());
    }
    if (((bitField0_ & 0x00000002) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(2, getClientImgId());
    }
    if (((bitField0_ & 0x00000004) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(3, getSenderWxid());
    }
    if (((bitField0_ & 0x00000008) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(4, getRecvWxid());
    }
    if (((bitField0_ & 0x00000010) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(5, totalLen_);
    }
    if (((bitField0_ & 0x00000020) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(6, startPos_);
    }
    if (((bitField0_ & 0x00000040) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(7, dataLen_);
    }
    if (((bitField0_ & 0x00000080) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(8, getData());
    }
    if (((bitField0_ & 0x00000100) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(9, msgType_);
    }
    if (((bitField0_ & 0x00000200) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, msgSource_);
    }
    if (((bitField0_ & 0x00000400) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(11, compressType_);
    }
    if (((bitField0_ & 0x00000800) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(12, netType_);
    }
    if (((bitField0_ & 0x00001000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(13, photoFrom_);
    }
    if (((bitField0_ & 0x00002000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(14, uiCreateTime_);
    }
    if (((bitField0_ & 0x00004000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, cdnBigImgUrl_);
    }
    if (((bitField0_ & 0x00008000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, cdnSmallImgUrl_);
    }
    if (((bitField0_ & 0x00010000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, aesKey_);
    }
    if (((bitField0_ & 0x00020000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(18, encryVer_);
    }
    if (((bitField0_ & 0x00040000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(19, cdnBigImgSize_);
    }
    if (((bitField0_ & 0x00080000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(20, cdnMidImgSize_);
    }
    if (((bitField0_ & 0x00100000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(21, cdnThumbImgUrl_);
    }
    if (((bitField0_ & 0x00200000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(22, cdnThumbImgSize_);
    }
    if (((bitField0_ & 0x00400000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(23, cdnThumbImgHeight_);
    }
    if (((bitField0_ & 0x00800000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(24, cdnThumbImgWidth_);
    }
    if (((bitField0_ & 0x01000000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(25, cdnThumbAesKey_);
    }
    if (((bitField0_ & 0x02000000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(26, reqTime_);
    }
    if (((bitField0_ & 0x04000000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(27, md5_);
    }
    if (((bitField0_ & 0x08000000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(28, crc32_);
    }
    if (((bitField0_ & 0x10000000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(29, msgForwardType_);
    }
    if (((bitField0_ & 0x20000000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(30, hitMd5_);
    }
    if (((bitField0_ & 0x40000000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(31, appId_);
    }
    if (((bitField0_ & 0x80000000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(32, messageAction_);
    }
    if (((bitField1_ & 0x00000001) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(33, messageExt_);
    }
    if (((bitField1_ & 0x00000002) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(34, mediaTagName_);
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
     return true;
    }
    if (!(obj instanceof wechat.protobuf.UploadMsgImgRequest)) {
      return super.equals(obj);
    }
    wechat.protobuf.UploadMsgImgRequest other = (wechat.protobuf.UploadMsgImgRequest) obj;

    if (hasBaseRequest() != other.hasBaseRequest()) return false;
    if (hasBaseRequest()) {
      if (!getBaseRequest()
          .equals(other.getBaseRequest())) return false;
    }
    if (hasClientImgId() != other.hasClientImgId()) return false;
    if (hasClientImgId()) {
      if (!getClientImgId()
          .equals(other.getClientImgId())) return false;
    }
    if (hasSenderWxid() != other.hasSenderWxid()) return false;
    if (hasSenderWxid()) {
      if (!getSenderWxid()
          .equals(other.getSenderWxid())) return false;
    }
    if (hasRecvWxid() != other.hasRecvWxid()) return false;
    if (hasRecvWxid()) {
      if (!getRecvWxid()
          .equals(other.getRecvWxid())) return false;
    }
    if (hasTotalLen() != other.hasTotalLen()) return false;
    if (hasTotalLen()) {
      if (getTotalLen()
          != other.getTotalLen()) return false;
    }
    if (hasStartPos() != other.hasStartPos()) return false;
    if (hasStartPos()) {
      if (getStartPos()
          != other.getStartPos()) return false;
    }
    if (hasDataLen() != other.hasDataLen()) return false;
    if (hasDataLen()) {
      if (getDataLen()
          != other.getDataLen()) return false;
    }
    if (hasData() != other.hasData()) return false;
    if (hasData()) {
      if (!getData()
          .equals(other.getData())) return false;
    }
    if (hasMsgType() != other.hasMsgType()) return false;
    if (hasMsgType()) {
      if (getMsgType()
          != other.getMsgType()) return false;
    }
    if (hasMsgSource() != other.hasMsgSource()) return false;
    if (hasMsgSource()) {
      if (!getMsgSource()
          .equals(other.getMsgSource())) return false;
    }
    if (hasCompressType() != other.hasCompressType()) return false;
    if (hasCompressType()) {
      if (getCompressType()
          != other.getCompressType()) return false;
    }
    if (hasNetType() != other.hasNetType()) return false;
    if (hasNetType()) {
      if (getNetType()
          != other.getNetType()) return false;
    }
    if (hasPhotoFrom() != other.hasPhotoFrom()) return false;
    if (hasPhotoFrom()) {
      if (getPhotoFrom()
          != other.getPhotoFrom()) return false;
    }
    if (hasUiCreateTime() != other.hasUiCreateTime()) return false;
    if (hasUiCreateTime()) {
      if (getUiCreateTime()
          != other.getUiCreateTime()) return false;
    }
    if (hasCdnBigImgUrl() != other.hasCdnBigImgUrl()) return false;
    if (hasCdnBigImgUrl()) {
      if (!getCdnBigImgUrl()
          .equals(other.getCdnBigImgUrl())) return false;
    }
    if (hasCdnSmallImgUrl() != other.hasCdnSmallImgUrl()) return false;
    if (hasCdnSmallImgUrl()) {
      if (!getCdnSmallImgUrl()
          .equals(other.getCdnSmallImgUrl())) return false;
    }
    if (hasAesKey() != other.hasAesKey()) return false;
    if (hasAesKey()) {
      if (!getAesKey()
          .equals(other.getAesKey())) return false;
    }
    if (hasEncryVer() != other.hasEncryVer()) return false;
    if (hasEncryVer()) {
      if (getEncryVer()
          != other.getEncryVer()) return false;
    }
    if (hasCdnBigImgSize() != other.hasCdnBigImgSize()) return false;
    if (hasCdnBigImgSize()) {
      if (getCdnBigImgSize()
          != other.getCdnBigImgSize()) return false;
    }
    if (hasCdnMidImgSize() != other.hasCdnMidImgSize()) return false;
    if (hasCdnMidImgSize()) {
      if (getCdnMidImgSize()
          != other.getCdnMidImgSize()) return false;
    }
    if (hasCdnThumbImgUrl() != other.hasCdnThumbImgUrl()) return false;
    if (hasCdnThumbImgUrl()) {
      if (!getCdnThumbImgUrl()
          .equals(other.getCdnThumbImgUrl())) return false;
    }
    if (hasCdnThumbImgSize() != other.hasCdnThumbImgSize()) return false;
    if (hasCdnThumbImgSize()) {
      if (getCdnThumbImgSize()
          != other.getCdnThumbImgSize()) return false;
    }
    if (hasCdnThumbImgHeight() != other.hasCdnThumbImgHeight()) return false;
    if (hasCdnThumbImgHeight()) {
      if (getCdnThumbImgHeight()
          != other.getCdnThumbImgHeight()) return false;
    }
    if (hasCdnThumbImgWidth() != other.hasCdnThumbImgWidth()) return false;
    if (hasCdnThumbImgWidth()) {
      if (getCdnThumbImgWidth()
          != other.getCdnThumbImgWidth()) return false;
    }
    if (hasCdnThumbAesKey() != other.hasCdnThumbAesKey()) return false;
    if (hasCdnThumbAesKey()) {
      if (!getCdnThumbAesKey()
          .equals(other.getCdnThumbAesKey())) return false;
    }
    if (hasReqTime() != other.hasReqTime()) return false;
    if (hasReqTime()) {
      if (getReqTime()
          != other.getReqTime()) return false;
    }
    if (hasMd5() != other.hasMd5()) return false;
    if (hasMd5()) {
      if (!getMd5()
          .equals(other.getMd5())) return false;
    }
    if (hasCrc32() != other.hasCrc32()) return false;
    if (hasCrc32()) {
      if (getCrc32()
          != other.getCrc32()) return false;
    }
    if (hasMsgForwardType() != other.hasMsgForwardType()) return false;
    if (hasMsgForwardType()) {
      if (getMsgForwardType()
          != other.getMsgForwardType()) return false;
    }
    if (hasHitMd5() != other.hasHitMd5()) return false;
    if (hasHitMd5()) {
      if (getHitMd5()
          != other.getHitMd5()) return false;
    }
    if (hasAppId() != other.hasAppId()) return false;
    if (hasAppId()) {
      if (!getAppId()
          .equals(other.getAppId())) return false;
    }
    if (hasMessageAction() != other.hasMessageAction()) return false;
    if (hasMessageAction()) {
      if (!getMessageAction()
          .equals(other.getMessageAction())) return false;
    }
    if (hasMessageExt() != other.hasMessageExt()) return false;
    if (hasMessageExt()) {
      if (!getMessageExt()
          .equals(other.getMessageExt())) return false;
    }
    if (hasMediaTagName() != other.hasMediaTagName()) return false;
    if (hasMediaTagName()) {
      if (!getMediaTagName()
          .equals(other.getMediaTagName())) return false;
    }
    if (!unknownFields.equals(other.unknownFields)) return false;
    return true;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (hasBaseRequest()) {
      hash = (37 * hash) + BASE_REQUEST_FIELD_NUMBER;
      hash = (53 * hash) + getBaseRequest().hashCode();
    }
    if (hasClientImgId()) {
      hash = (37 * hash) + CLIENT_IMG_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClientImgId().hashCode();
    }
    if (hasSenderWxid()) {
      hash = (37 * hash) + SENDER_WXID_FIELD_NUMBER;
      hash = (53 * hash) + getSenderWxid().hashCode();
    }
    if (hasRecvWxid()) {
      hash = (37 * hash) + RECV_WXID_FIELD_NUMBER;
      hash = (53 * hash) + getRecvWxid().hashCode();
    }
    if (hasTotalLen()) {
      hash = (37 * hash) + TOTAL_LEN_FIELD_NUMBER;
      hash = (53 * hash) + getTotalLen();
    }
    if (hasStartPos()) {
      hash = (37 * hash) + START_POS_FIELD_NUMBER;
      hash = (53 * hash) + getStartPos();
    }
    if (hasDataLen()) {
      hash = (37 * hash) + DATA_LEN_FIELD_NUMBER;
      hash = (53 * hash) + getDataLen();
    }
    if (hasData()) {
      hash = (37 * hash) + DATA_FIELD_NUMBER;
      hash = (53 * hash) + getData().hashCode();
    }
    if (hasMsgType()) {
      hash = (37 * hash) + MSG_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getMsgType();
    }
    if (hasMsgSource()) {
      hash = (37 * hash) + MSG_SOURCE_FIELD_NUMBER;
      hash = (53 * hash) + getMsgSource().hashCode();
    }
    if (hasCompressType()) {
      hash = (37 * hash) + COMPRESS_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getCompressType();
    }
    if (hasNetType()) {
      hash = (37 * hash) + NET_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getNetType();
    }
    if (hasPhotoFrom()) {
      hash = (37 * hash) + PHOTO_FROM_FIELD_NUMBER;
      hash = (53 * hash) + getPhotoFrom();
    }
    if (hasUiCreateTime()) {
      hash = (37 * hash) + UI_CREATE_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getUiCreateTime();
    }
    if (hasCdnBigImgUrl()) {
      hash = (37 * hash) + CDN_BIG_IMG_URL_FIELD_NUMBER;
      hash = (53 * hash) + getCdnBigImgUrl().hashCode();
    }
    if (hasCdnSmallImgUrl()) {
      hash = (37 * hash) + CDN_SMALL_IMG_URL_FIELD_NUMBER;
      hash = (53 * hash) + getCdnSmallImgUrl().hashCode();
    }
    if (hasAesKey()) {
      hash = (37 * hash) + AES_KEY_FIELD_NUMBER;
      hash = (53 * hash) + getAesKey().hashCode();
    }
    if (hasEncryVer()) {
      hash = (37 * hash) + ENCRY_VER_FIELD_NUMBER;
      hash = (53 * hash) + getEncryVer();
    }
    if (hasCdnBigImgSize()) {
      hash = (37 * hash) + CDN_BIG_IMG_SIZE_FIELD_NUMBER;
      hash = (53 * hash) + getCdnBigImgSize();
    }
    if (hasCdnMidImgSize()) {
      hash = (37 * hash) + CDN_MID_IMG_SIZE_FIELD_NUMBER;
      hash = (53 * hash) + getCdnMidImgSize();
    }
    if (hasCdnThumbImgUrl()) {
      hash = (37 * hash) + CDN_THUMB_IMG_URL_FIELD_NUMBER;
      hash = (53 * hash) + getCdnThumbImgUrl().hashCode();
    }
    if (hasCdnThumbImgSize()) {
      hash = (37 * hash) + CDN_THUMB_IMG_SIZE_FIELD_NUMBER;
      hash = (53 * hash) + getCdnThumbImgSize();
    }
    if (hasCdnThumbImgHeight()) {
      hash = (37 * hash) + CDN_THUMB_IMG_HEIGHT_FIELD_NUMBER;
      hash = (53 * hash) + getCdnThumbImgHeight();
    }
    if (hasCdnThumbImgWidth()) {
      hash = (37 * hash) + CDN_THUMB_IMG_WIDTH_FIELD_NUMBER;
      hash = (53 * hash) + getCdnThumbImgWidth();
    }
    if (hasCdnThumbAesKey()) {
      hash = (37 * hash) + CDN_THUMB_AES_KEY_FIELD_NUMBER;
      hash = (53 * hash) + getCdnThumbAesKey().hashCode();
    }
    if (hasReqTime()) {
      hash = (37 * hash) + REQ_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getReqTime();
    }
    if (hasMd5()) {
      hash = (37 * hash) + MD5_FIELD_NUMBER;
      hash = (53 * hash) + getMd5().hashCode();
    }
    if (hasCrc32()) {
      hash = (37 * hash) + CRC32_FIELD_NUMBER;
      hash = (53 * hash) + getCrc32();
    }
    if (hasMsgForwardType()) {
      hash = (37 * hash) + MSG_FORWARD_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getMsgForwardType();
    }
    if (hasHitMd5()) {
      hash = (37 * hash) + HIT_MD5_FIELD_NUMBER;
      hash = (53 * hash) + getHitMd5();
    }
    if (hasAppId()) {
      hash = (37 * hash) + APP_ID_FIELD_NUMBER;
      hash = (53 * hash) + getAppId().hashCode();
    }
    if (hasMessageAction()) {
      hash = (37 * hash) + MESSAGE_ACTION_FIELD_NUMBER;
      hash = (53 * hash) + getMessageAction().hashCode();
    }
    if (hasMessageExt()) {
      hash = (37 * hash) + MESSAGE_EXT_FIELD_NUMBER;
      hash = (53 * hash) + getMessageExt().hashCode();
    }
    if (hasMediaTagName()) {
      hash = (37 * hash) + MEDIA_TAG_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getMediaTagName().hashCode();
    }
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static wechat.protobuf.UploadMsgImgRequest parseFrom(
      java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static wechat.protobuf.UploadMsgImgRequest parseFrom(
      java.nio.ByteBuffer data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static wechat.protobuf.UploadMsgImgRequest parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static wechat.protobuf.UploadMsgImgRequest parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static wechat.protobuf.UploadMsgImgRequest parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static wechat.protobuf.UploadMsgImgRequest parseFrom(
      byte[] data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static wechat.protobuf.UploadMsgImgRequest parseFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static wechat.protobuf.UploadMsgImgRequest parseFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input, extensionRegistry);
  }
  public static wechat.protobuf.UploadMsgImgRequest parseDelimitedFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input);
  }
  public static wechat.protobuf.UploadMsgImgRequest parseDelimitedFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
  }
  public static wechat.protobuf.UploadMsgImgRequest parseFrom(
      com.google.protobuf.CodedInputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static wechat.protobuf.UploadMsgImgRequest parseFrom(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() { return newBuilder(); }
  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }
  public static Builder newBuilder(wechat.protobuf.UploadMsgImgRequest prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }
  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE
        ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   * Protobuf type {@code wechat_proto.UploadMsgImgRequest}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessageV3.Builder implements
      // @@protoc_insertion_point(builder_implements:wechat_proto.UploadMsgImgRequest)
      wechat.protobuf.UploadMsgImgRequestOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return wechat.protobuf.Wechat.internal_static_wechat_proto_UploadMsgImgRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return wechat.protobuf.Wechat.internal_static_wechat_proto_UploadMsgImgRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              wechat.protobuf.UploadMsgImgRequest.class, wechat.protobuf.UploadMsgImgRequest.Builder.class);
    }

    // Construct using wechat.protobuf.UploadMsgImgRequest.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }
    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3
              .alwaysUseFieldBuilders) {
        getBaseRequestFieldBuilder();
        getClientImgIdFieldBuilder();
        getSenderWxidFieldBuilder();
        getRecvWxidFieldBuilder();
        getDataFieldBuilder();
      }
    }
    @java.lang.Override
    public Builder clear() {
      super.clear();
      if (baseRequestBuilder_ == null) {
        baseRequest_ = null;
      } else {
        baseRequestBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000001);
      if (clientImgIdBuilder_ == null) {
        clientImgId_ = null;
      } else {
        clientImgIdBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000002);
      if (senderWxidBuilder_ == null) {
        senderWxid_ = null;
      } else {
        senderWxidBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000004);
      if (recvWxidBuilder_ == null) {
        recvWxid_ = null;
      } else {
        recvWxidBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000008);
      totalLen_ = 0;
      bitField0_ = (bitField0_ & ~0x00000010);
      startPos_ = 0;
      bitField0_ = (bitField0_ & ~0x00000020);
      dataLen_ = 0;
      bitField0_ = (bitField0_ & ~0x00000040);
      if (dataBuilder_ == null) {
        data_ = null;
      } else {
        dataBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000080);
      msgType_ = 0;
      bitField0_ = (bitField0_ & ~0x00000100);
      msgSource_ = "";
      bitField0_ = (bitField0_ & ~0x00000200);
      compressType_ = 0;
      bitField0_ = (bitField0_ & ~0x00000400);
      netType_ = 0;
      bitField0_ = (bitField0_ & ~0x00000800);
      photoFrom_ = 0;
      bitField0_ = (bitField0_ & ~0x00001000);
      uiCreateTime_ = 0;
      bitField0_ = (bitField0_ & ~0x00002000);
      cdnBigImgUrl_ = "";
      bitField0_ = (bitField0_ & ~0x00004000);
      cdnSmallImgUrl_ = "";
      bitField0_ = (bitField0_ & ~0x00008000);
      aesKey_ = "";
      bitField0_ = (bitField0_ & ~0x00010000);
      encryVer_ = 0;
      bitField0_ = (bitField0_ & ~0x00020000);
      cdnBigImgSize_ = 0;
      bitField0_ = (bitField0_ & ~0x00040000);
      cdnMidImgSize_ = 0;
      bitField0_ = (bitField0_ & ~0x00080000);
      cdnThumbImgUrl_ = "";
      bitField0_ = (bitField0_ & ~0x00100000);
      cdnThumbImgSize_ = 0;
      bitField0_ = (bitField0_ & ~0x00200000);
      cdnThumbImgHeight_ = 0;
      bitField0_ = (bitField0_ & ~0x00400000);
      cdnThumbImgWidth_ = 0;
      bitField0_ = (bitField0_ & ~0x00800000);
      cdnThumbAesKey_ = "";
      bitField0_ = (bitField0_ & ~0x01000000);
      reqTime_ = 0;
      bitField0_ = (bitField0_ & ~0x02000000);
      md5_ = "";
      bitField0_ = (bitField0_ & ~0x04000000);
      crc32_ = 0;
      bitField0_ = (bitField0_ & ~0x08000000);
      msgForwardType_ = 0;
      bitField0_ = (bitField0_ & ~0x10000000);
      hitMd5_ = 0;
      bitField0_ = (bitField0_ & ~0x20000000);
      appId_ = "";
      bitField0_ = (bitField0_ & ~0x40000000);
      messageAction_ = "";
      bitField0_ = (bitField0_ & ~0x80000000);
      messageExt_ = "";
      bitField1_ = (bitField1_ & ~0x00000001);
      mediaTagName_ = "";
      bitField1_ = (bitField1_ & ~0x00000002);
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor
        getDescriptorForType() {
      return wechat.protobuf.Wechat.internal_static_wechat_proto_UploadMsgImgRequest_descriptor;
    }

    @java.lang.Override
    public wechat.protobuf.UploadMsgImgRequest getDefaultInstanceForType() {
      return wechat.protobuf.UploadMsgImgRequest.getDefaultInstance();
    }

    @java.lang.Override
    public wechat.protobuf.UploadMsgImgRequest build() {
      wechat.protobuf.UploadMsgImgRequest result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public wechat.protobuf.UploadMsgImgRequest buildPartial() {
      wechat.protobuf.UploadMsgImgRequest result = new wechat.protobuf.UploadMsgImgRequest(this);
      int from_bitField0_ = bitField0_;
      int from_bitField1_ = bitField1_;
      int to_bitField0_ = 0;
      int to_bitField1_ = 0;
      if (((from_bitField0_ & 0x00000001) != 0)) {
        if (baseRequestBuilder_ == null) {
          result.baseRequest_ = baseRequest_;
        } else {
          result.baseRequest_ = baseRequestBuilder_.build();
        }
        to_bitField0_ |= 0x00000001;
      }
      if (((from_bitField0_ & 0x00000002) != 0)) {
        if (clientImgIdBuilder_ == null) {
          result.clientImgId_ = clientImgId_;
        } else {
          result.clientImgId_ = clientImgIdBuilder_.build();
        }
        to_bitField0_ |= 0x00000002;
      }
      if (((from_bitField0_ & 0x00000004) != 0)) {
        if (senderWxidBuilder_ == null) {
          result.senderWxid_ = senderWxid_;
        } else {
          result.senderWxid_ = senderWxidBuilder_.build();
        }
        to_bitField0_ |= 0x00000004;
      }
      if (((from_bitField0_ & 0x00000008) != 0)) {
        if (recvWxidBuilder_ == null) {
          result.recvWxid_ = recvWxid_;
        } else {
          result.recvWxid_ = recvWxidBuilder_.build();
        }
        to_bitField0_ |= 0x00000008;
      }
      if (((from_bitField0_ & 0x00000010) != 0)) {
        result.totalLen_ = totalLen_;
        to_bitField0_ |= 0x00000010;
      }
      if (((from_bitField0_ & 0x00000020) != 0)) {
        result.startPos_ = startPos_;
        to_bitField0_ |= 0x00000020;
      }
      if (((from_bitField0_ & 0x00000040) != 0)) {
        result.dataLen_ = dataLen_;
        to_bitField0_ |= 0x00000040;
      }
      if (((from_bitField0_ & 0x00000080) != 0)) {
        if (dataBuilder_ == null) {
          result.data_ = data_;
        } else {
          result.data_ = dataBuilder_.build();
        }
        to_bitField0_ |= 0x00000080;
      }
      if (((from_bitField0_ & 0x00000100) != 0)) {
        result.msgType_ = msgType_;
        to_bitField0_ |= 0x00000100;
      }
      if (((from_bitField0_ & 0x00000200) != 0)) {
        to_bitField0_ |= 0x00000200;
      }
      result.msgSource_ = msgSource_;
      if (((from_bitField0_ & 0x00000400) != 0)) {
        result.compressType_ = compressType_;
        to_bitField0_ |= 0x00000400;
      }
      if (((from_bitField0_ & 0x00000800) != 0)) {
        result.netType_ = netType_;
        to_bitField0_ |= 0x00000800;
      }
      if (((from_bitField0_ & 0x00001000) != 0)) {
        result.photoFrom_ = photoFrom_;
        to_bitField0_ |= 0x00001000;
      }
      if (((from_bitField0_ & 0x00002000) != 0)) {
        result.uiCreateTime_ = uiCreateTime_;
        to_bitField0_ |= 0x00002000;
      }
      if (((from_bitField0_ & 0x00004000) != 0)) {
        to_bitField0_ |= 0x00004000;
      }
      result.cdnBigImgUrl_ = cdnBigImgUrl_;
      if (((from_bitField0_ & 0x00008000) != 0)) {
        to_bitField0_ |= 0x00008000;
      }
      result.cdnSmallImgUrl_ = cdnSmallImgUrl_;
      if (((from_bitField0_ & 0x00010000) != 0)) {
        to_bitField0_ |= 0x00010000;
      }
      result.aesKey_ = aesKey_;
      if (((from_bitField0_ & 0x00020000) != 0)) {
        result.encryVer_ = encryVer_;
        to_bitField0_ |= 0x00020000;
      }
      if (((from_bitField0_ & 0x00040000) != 0)) {
        result.cdnBigImgSize_ = cdnBigImgSize_;
        to_bitField0_ |= 0x00040000;
      }
      if (((from_bitField0_ & 0x00080000) != 0)) {
        result.cdnMidImgSize_ = cdnMidImgSize_;
        to_bitField0_ |= 0x00080000;
      }
      if (((from_bitField0_ & 0x00100000) != 0)) {
        to_bitField0_ |= 0x00100000;
      }
      result.cdnThumbImgUrl_ = cdnThumbImgUrl_;
      if (((from_bitField0_ & 0x00200000) != 0)) {
        result.cdnThumbImgSize_ = cdnThumbImgSize_;
        to_bitField0_ |= 0x00200000;
      }
      if (((from_bitField0_ & 0x00400000) != 0)) {
        result.cdnThumbImgHeight_ = cdnThumbImgHeight_;
        to_bitField0_ |= 0x00400000;
      }
      if (((from_bitField0_ & 0x00800000) != 0)) {
        result.cdnThumbImgWidth_ = cdnThumbImgWidth_;
        to_bitField0_ |= 0x00800000;
      }
      if (((from_bitField0_ & 0x01000000) != 0)) {
        to_bitField0_ |= 0x01000000;
      }
      result.cdnThumbAesKey_ = cdnThumbAesKey_;
      if (((from_bitField0_ & 0x02000000) != 0)) {
        result.reqTime_ = reqTime_;
        to_bitField0_ |= 0x02000000;
      }
      if (((from_bitField0_ & 0x04000000) != 0)) {
        to_bitField0_ |= 0x04000000;
      }
      result.md5_ = md5_;
      if (((from_bitField0_ & 0x08000000) != 0)) {
        result.crc32_ = crc32_;
        to_bitField0_ |= 0x08000000;
      }
      if (((from_bitField0_ & 0x10000000) != 0)) {
        result.msgForwardType_ = msgForwardType_;
        to_bitField0_ |= 0x10000000;
      }
      if (((from_bitField0_ & 0x20000000) != 0)) {
        result.hitMd5_ = hitMd5_;
        to_bitField0_ |= 0x20000000;
      }
      if (((from_bitField0_ & 0x40000000) != 0)) {
        to_bitField0_ |= 0x40000000;
      }
      result.appId_ = appId_;
      if (((from_bitField0_ & 0x80000000) != 0)) {
        to_bitField0_ |= 0x80000000;
      }
      result.messageAction_ = messageAction_;
      if (((from_bitField1_ & 0x00000001) != 0)) {
        to_bitField1_ |= 0x00000001;
      }
      result.messageExt_ = messageExt_;
      if (((from_bitField1_ & 0x00000002) != 0)) {
        to_bitField1_ |= 0x00000002;
      }
      result.mediaTagName_ = mediaTagName_;
      result.bitField0_ = to_bitField0_;
      result.bitField1_ = to_bitField1_;
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return super.clone();
    }
    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        java.lang.Object value) {
      return super.setField(field, value);
    }
    @java.lang.Override
    public Builder clearField(
        com.google.protobuf.Descriptors.FieldDescriptor field) {
      return super.clearField(field);
    }
    @java.lang.Override
    public Builder clearOneof(
        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return super.clearOneof(oneof);
    }
    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index, java.lang.Object value) {
      return super.setRepeatedField(field, index, value);
    }
    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        java.lang.Object value) {
      return super.addRepeatedField(field, value);
    }
    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other instanceof wechat.protobuf.UploadMsgImgRequest) {
        return mergeFrom((wechat.protobuf.UploadMsgImgRequest)other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(wechat.protobuf.UploadMsgImgRequest other) {
      if (other == wechat.protobuf.UploadMsgImgRequest.getDefaultInstance()) return this;
      if (other.hasBaseRequest()) {
        mergeBaseRequest(other.getBaseRequest());
      }
      if (other.hasClientImgId()) {
        mergeClientImgId(other.getClientImgId());
      }
      if (other.hasSenderWxid()) {
        mergeSenderWxid(other.getSenderWxid());
      }
      if (other.hasRecvWxid()) {
        mergeRecvWxid(other.getRecvWxid());
      }
      if (other.hasTotalLen()) {
        setTotalLen(other.getTotalLen());
      }
      if (other.hasStartPos()) {
        setStartPos(other.getStartPos());
      }
      if (other.hasDataLen()) {
        setDataLen(other.getDataLen());
      }
      if (other.hasData()) {
        mergeData(other.getData());
      }
      if (other.hasMsgType()) {
        setMsgType(other.getMsgType());
      }
      if (other.hasMsgSource()) {
        bitField0_ |= 0x00000200;
        msgSource_ = other.msgSource_;
        onChanged();
      }
      if (other.hasCompressType()) {
        setCompressType(other.getCompressType());
      }
      if (other.hasNetType()) {
        setNetType(other.getNetType());
      }
      if (other.hasPhotoFrom()) {
        setPhotoFrom(other.getPhotoFrom());
      }
      if (other.hasUiCreateTime()) {
        setUiCreateTime(other.getUiCreateTime());
      }
      if (other.hasCdnBigImgUrl()) {
        bitField0_ |= 0x00004000;
        cdnBigImgUrl_ = other.cdnBigImgUrl_;
        onChanged();
      }
      if (other.hasCdnSmallImgUrl()) {
        bitField0_ |= 0x00008000;
        cdnSmallImgUrl_ = other.cdnSmallImgUrl_;
        onChanged();
      }
      if (other.hasAesKey()) {
        bitField0_ |= 0x00010000;
        aesKey_ = other.aesKey_;
        onChanged();
      }
      if (other.hasEncryVer()) {
        setEncryVer(other.getEncryVer());
      }
      if (other.hasCdnBigImgSize()) {
        setCdnBigImgSize(other.getCdnBigImgSize());
      }
      if (other.hasCdnMidImgSize()) {
        setCdnMidImgSize(other.getCdnMidImgSize());
      }
      if (other.hasCdnThumbImgUrl()) {
        bitField0_ |= 0x00100000;
        cdnThumbImgUrl_ = other.cdnThumbImgUrl_;
        onChanged();
      }
      if (other.hasCdnThumbImgSize()) {
        setCdnThumbImgSize(other.getCdnThumbImgSize());
      }
      if (other.hasCdnThumbImgHeight()) {
        setCdnThumbImgHeight(other.getCdnThumbImgHeight());
      }
      if (other.hasCdnThumbImgWidth()) {
        setCdnThumbImgWidth(other.getCdnThumbImgWidth());
      }
      if (other.hasCdnThumbAesKey()) {
        bitField0_ |= 0x01000000;
        cdnThumbAesKey_ = other.cdnThumbAesKey_;
        onChanged();
      }
      if (other.hasReqTime()) {
        setReqTime(other.getReqTime());
      }
      if (other.hasMd5()) {
        bitField0_ |= 0x04000000;
        md5_ = other.md5_;
        onChanged();
      }
      if (other.hasCrc32()) {
        setCrc32(other.getCrc32());
      }
      if (other.hasMsgForwardType()) {
        setMsgForwardType(other.getMsgForwardType());
      }
      if (other.hasHitMd5()) {
        setHitMd5(other.getHitMd5());
      }
      if (other.hasAppId()) {
        bitField0_ |= 0x40000000;
        appId_ = other.appId_;
        onChanged();
      }
      if (other.hasMessageAction()) {
        bitField0_ |= 0x80000000;
        messageAction_ = other.messageAction_;
        onChanged();
      }
      if (other.hasMessageExt()) {
        bitField1_ |= 0x00000001;
        messageExt_ = other.messageExt_;
        onChanged();
      }
      if (other.hasMediaTagName()) {
        bitField1_ |= 0x00000002;
        mediaTagName_ = other.mediaTagName_;
        onChanged();
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      wechat.protobuf.UploadMsgImgRequest parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage = (wechat.protobuf.UploadMsgImgRequest) e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }
    private int bitField0_;
    private int bitField1_;

    private wechat.protobuf.BaseRequest baseRequest_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.BaseRequest, wechat.protobuf.BaseRequest.Builder, wechat.protobuf.BaseRequestOrBuilder> baseRequestBuilder_;
    /**
     * optional .wechat_proto.BaseRequest base_request = 1;
     * @return Whether the baseRequest field is set.
     */
    public boolean hasBaseRequest() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional .wechat_proto.BaseRequest base_request = 1;
     * @return The baseRequest.
     */
    public wechat.protobuf.BaseRequest getBaseRequest() {
      if (baseRequestBuilder_ == null) {
        return baseRequest_ == null ? wechat.protobuf.BaseRequest.getDefaultInstance() : baseRequest_;
      } else {
        return baseRequestBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.BaseRequest base_request = 1;
     */
    public Builder setBaseRequest(wechat.protobuf.BaseRequest value) {
      if (baseRequestBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        baseRequest_ = value;
        onChanged();
      } else {
        baseRequestBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000001;
      return this;
    }
    /**
     * optional .wechat_proto.BaseRequest base_request = 1;
     */
    public Builder setBaseRequest(
        wechat.protobuf.BaseRequest.Builder builderForValue) {
      if (baseRequestBuilder_ == null) {
        baseRequest_ = builderForValue.build();
        onChanged();
      } else {
        baseRequestBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000001;
      return this;
    }
    /**
     * optional .wechat_proto.BaseRequest base_request = 1;
     */
    public Builder mergeBaseRequest(wechat.protobuf.BaseRequest value) {
      if (baseRequestBuilder_ == null) {
        if (((bitField0_ & 0x00000001) != 0) &&
            baseRequest_ != null &&
            baseRequest_ != wechat.protobuf.BaseRequest.getDefaultInstance()) {
          baseRequest_ =
            wechat.protobuf.BaseRequest.newBuilder(baseRequest_).mergeFrom(value).buildPartial();
        } else {
          baseRequest_ = value;
        }
        onChanged();
      } else {
        baseRequestBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000001;
      return this;
    }
    /**
     * optional .wechat_proto.BaseRequest base_request = 1;
     */
    public Builder clearBaseRequest() {
      if (baseRequestBuilder_ == null) {
        baseRequest_ = null;
        onChanged();
      } else {
        baseRequestBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000001);
      return this;
    }
    /**
     * optional .wechat_proto.BaseRequest base_request = 1;
     */
    public wechat.protobuf.BaseRequest.Builder getBaseRequestBuilder() {
      bitField0_ |= 0x00000001;
      onChanged();
      return getBaseRequestFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.BaseRequest base_request = 1;
     */
    public wechat.protobuf.BaseRequestOrBuilder getBaseRequestOrBuilder() {
      if (baseRequestBuilder_ != null) {
        return baseRequestBuilder_.getMessageOrBuilder();
      } else {
        return baseRequest_ == null ?
            wechat.protobuf.BaseRequest.getDefaultInstance() : baseRequest_;
      }
    }
    /**
     * optional .wechat_proto.BaseRequest base_request = 1;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.BaseRequest, wechat.protobuf.BaseRequest.Builder, wechat.protobuf.BaseRequestOrBuilder> 
        getBaseRequestFieldBuilder() {
      if (baseRequestBuilder_ == null) {
        baseRequestBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.BaseRequest, wechat.protobuf.BaseRequest.Builder, wechat.protobuf.BaseRequestOrBuilder>(
                getBaseRequest(),
                getParentForChildren(),
                isClean());
        baseRequest_ = null;
      }
      return baseRequestBuilder_;
    }

    private wechat.protobuf.SKBuiltinString clientImgId_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> clientImgIdBuilder_;
    /**
     * optional .wechat_proto.SKBuiltinString client_img_id = 2;
     * @return Whether the clientImgId field is set.
     */
    public boolean hasClientImgId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional .wechat_proto.SKBuiltinString client_img_id = 2;
     * @return The clientImgId.
     */
    public wechat.protobuf.SKBuiltinString getClientImgId() {
      if (clientImgIdBuilder_ == null) {
        return clientImgId_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : clientImgId_;
      } else {
        return clientImgIdBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString client_img_id = 2;
     */
    public Builder setClientImgId(wechat.protobuf.SKBuiltinString value) {
      if (clientImgIdBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        clientImgId_ = value;
        onChanged();
      } else {
        clientImgIdBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000002;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString client_img_id = 2;
     */
    public Builder setClientImgId(
        wechat.protobuf.SKBuiltinString.Builder builderForValue) {
      if (clientImgIdBuilder_ == null) {
        clientImgId_ = builderForValue.build();
        onChanged();
      } else {
        clientImgIdBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000002;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString client_img_id = 2;
     */
    public Builder mergeClientImgId(wechat.protobuf.SKBuiltinString value) {
      if (clientImgIdBuilder_ == null) {
        if (((bitField0_ & 0x00000002) != 0) &&
            clientImgId_ != null &&
            clientImgId_ != wechat.protobuf.SKBuiltinString.getDefaultInstance()) {
          clientImgId_ =
            wechat.protobuf.SKBuiltinString.newBuilder(clientImgId_).mergeFrom(value).buildPartial();
        } else {
          clientImgId_ = value;
        }
        onChanged();
      } else {
        clientImgIdBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000002;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString client_img_id = 2;
     */
    public Builder clearClientImgId() {
      if (clientImgIdBuilder_ == null) {
        clientImgId_ = null;
        onChanged();
      } else {
        clientImgIdBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000002);
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString client_img_id = 2;
     */
    public wechat.protobuf.SKBuiltinString.Builder getClientImgIdBuilder() {
      bitField0_ |= 0x00000002;
      onChanged();
      return getClientImgIdFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.SKBuiltinString client_img_id = 2;
     */
    public wechat.protobuf.SKBuiltinStringOrBuilder getClientImgIdOrBuilder() {
      if (clientImgIdBuilder_ != null) {
        return clientImgIdBuilder_.getMessageOrBuilder();
      } else {
        return clientImgId_ == null ?
            wechat.protobuf.SKBuiltinString.getDefaultInstance() : clientImgId_;
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString client_img_id = 2;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> 
        getClientImgIdFieldBuilder() {
      if (clientImgIdBuilder_ == null) {
        clientImgIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder>(
                getClientImgId(),
                getParentForChildren(),
                isClean());
        clientImgId_ = null;
      }
      return clientImgIdBuilder_;
    }

    private wechat.protobuf.SKBuiltinString senderWxid_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> senderWxidBuilder_;
    /**
     * optional .wechat_proto.SKBuiltinString sender_wxid = 3;
     * @return Whether the senderWxid field is set.
     */
    public boolean hasSenderWxid() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional .wechat_proto.SKBuiltinString sender_wxid = 3;
     * @return The senderWxid.
     */
    public wechat.protobuf.SKBuiltinString getSenderWxid() {
      if (senderWxidBuilder_ == null) {
        return senderWxid_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : senderWxid_;
      } else {
        return senderWxidBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString sender_wxid = 3;
     */
    public Builder setSenderWxid(wechat.protobuf.SKBuiltinString value) {
      if (senderWxidBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        senderWxid_ = value;
        onChanged();
      } else {
        senderWxidBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000004;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString sender_wxid = 3;
     */
    public Builder setSenderWxid(
        wechat.protobuf.SKBuiltinString.Builder builderForValue) {
      if (senderWxidBuilder_ == null) {
        senderWxid_ = builderForValue.build();
        onChanged();
      } else {
        senderWxidBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000004;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString sender_wxid = 3;
     */
    public Builder mergeSenderWxid(wechat.protobuf.SKBuiltinString value) {
      if (senderWxidBuilder_ == null) {
        if (((bitField0_ & 0x00000004) != 0) &&
            senderWxid_ != null &&
            senderWxid_ != wechat.protobuf.SKBuiltinString.getDefaultInstance()) {
          senderWxid_ =
            wechat.protobuf.SKBuiltinString.newBuilder(senderWxid_).mergeFrom(value).buildPartial();
        } else {
          senderWxid_ = value;
        }
        onChanged();
      } else {
        senderWxidBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000004;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString sender_wxid = 3;
     */
    public Builder clearSenderWxid() {
      if (senderWxidBuilder_ == null) {
        senderWxid_ = null;
        onChanged();
      } else {
        senderWxidBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000004);
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString sender_wxid = 3;
     */
    public wechat.protobuf.SKBuiltinString.Builder getSenderWxidBuilder() {
      bitField0_ |= 0x00000004;
      onChanged();
      return getSenderWxidFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.SKBuiltinString sender_wxid = 3;
     */
    public wechat.protobuf.SKBuiltinStringOrBuilder getSenderWxidOrBuilder() {
      if (senderWxidBuilder_ != null) {
        return senderWxidBuilder_.getMessageOrBuilder();
      } else {
        return senderWxid_ == null ?
            wechat.protobuf.SKBuiltinString.getDefaultInstance() : senderWxid_;
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString sender_wxid = 3;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> 
        getSenderWxidFieldBuilder() {
      if (senderWxidBuilder_ == null) {
        senderWxidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder>(
                getSenderWxid(),
                getParentForChildren(),
                isClean());
        senderWxid_ = null;
      }
      return senderWxidBuilder_;
    }

    private wechat.protobuf.SKBuiltinString recvWxid_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> recvWxidBuilder_;
    /**
     * optional .wechat_proto.SKBuiltinString recv_wxid = 4;
     * @return Whether the recvWxid field is set.
     */
    public boolean hasRecvWxid() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * optional .wechat_proto.SKBuiltinString recv_wxid = 4;
     * @return The recvWxid.
     */
    public wechat.protobuf.SKBuiltinString getRecvWxid() {
      if (recvWxidBuilder_ == null) {
        return recvWxid_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : recvWxid_;
      } else {
        return recvWxidBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString recv_wxid = 4;
     */
    public Builder setRecvWxid(wechat.protobuf.SKBuiltinString value) {
      if (recvWxidBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        recvWxid_ = value;
        onChanged();
      } else {
        recvWxidBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000008;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString recv_wxid = 4;
     */
    public Builder setRecvWxid(
        wechat.protobuf.SKBuiltinString.Builder builderForValue) {
      if (recvWxidBuilder_ == null) {
        recvWxid_ = builderForValue.build();
        onChanged();
      } else {
        recvWxidBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000008;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString recv_wxid = 4;
     */
    public Builder mergeRecvWxid(wechat.protobuf.SKBuiltinString value) {
      if (recvWxidBuilder_ == null) {
        if (((bitField0_ & 0x00000008) != 0) &&
            recvWxid_ != null &&
            recvWxid_ != wechat.protobuf.SKBuiltinString.getDefaultInstance()) {
          recvWxid_ =
            wechat.protobuf.SKBuiltinString.newBuilder(recvWxid_).mergeFrom(value).buildPartial();
        } else {
          recvWxid_ = value;
        }
        onChanged();
      } else {
        recvWxidBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000008;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString recv_wxid = 4;
     */
    public Builder clearRecvWxid() {
      if (recvWxidBuilder_ == null) {
        recvWxid_ = null;
        onChanged();
      } else {
        recvWxidBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000008);
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString recv_wxid = 4;
     */
    public wechat.protobuf.SKBuiltinString.Builder getRecvWxidBuilder() {
      bitField0_ |= 0x00000008;
      onChanged();
      return getRecvWxidFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.SKBuiltinString recv_wxid = 4;
     */
    public wechat.protobuf.SKBuiltinStringOrBuilder getRecvWxidOrBuilder() {
      if (recvWxidBuilder_ != null) {
        return recvWxidBuilder_.getMessageOrBuilder();
      } else {
        return recvWxid_ == null ?
            wechat.protobuf.SKBuiltinString.getDefaultInstance() : recvWxid_;
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString recv_wxid = 4;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> 
        getRecvWxidFieldBuilder() {
      if (recvWxidBuilder_ == null) {
        recvWxidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder>(
                getRecvWxid(),
                getParentForChildren(),
                isClean());
        recvWxid_ = null;
      }
      return recvWxidBuilder_;
    }

    private int totalLen_ ;
    /**
     * optional uint32 total_len = 5;
     * @return Whether the totalLen field is set.
     */
    @java.lang.Override
    public boolean hasTotalLen() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * optional uint32 total_len = 5;
     * @return The totalLen.
     */
    @java.lang.Override
    public int getTotalLen() {
      return totalLen_;
    }
    /**
     * optional uint32 total_len = 5;
     * @param value The totalLen to set.
     * @return This builder for chaining.
     */
    public Builder setTotalLen(int value) {
      bitField0_ |= 0x00000010;
      totalLen_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 total_len = 5;
     * @return This builder for chaining.
     */
    public Builder clearTotalLen() {
      bitField0_ = (bitField0_ & ~0x00000010);
      totalLen_ = 0;
      onChanged();
      return this;
    }

    private int startPos_ ;
    /**
     * optional uint32 start_pos = 6;
     * @return Whether the startPos field is set.
     */
    @java.lang.Override
    public boolean hasStartPos() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * optional uint32 start_pos = 6;
     * @return The startPos.
     */
    @java.lang.Override
    public int getStartPos() {
      return startPos_;
    }
    /**
     * optional uint32 start_pos = 6;
     * @param value The startPos to set.
     * @return This builder for chaining.
     */
    public Builder setStartPos(int value) {
      bitField0_ |= 0x00000020;
      startPos_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 start_pos = 6;
     * @return This builder for chaining.
     */
    public Builder clearStartPos() {
      bitField0_ = (bitField0_ & ~0x00000020);
      startPos_ = 0;
      onChanged();
      return this;
    }

    private int dataLen_ ;
    /**
     * optional uint32 data_len = 7;
     * @return Whether the dataLen field is set.
     */
    @java.lang.Override
    public boolean hasDataLen() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * optional uint32 data_len = 7;
     * @return The dataLen.
     */
    @java.lang.Override
    public int getDataLen() {
      return dataLen_;
    }
    /**
     * optional uint32 data_len = 7;
     * @param value The dataLen to set.
     * @return This builder for chaining.
     */
    public Builder setDataLen(int value) {
      bitField0_ |= 0x00000040;
      dataLen_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 data_len = 7;
     * @return This builder for chaining.
     */
    public Builder clearDataLen() {
      bitField0_ = (bitField0_ & ~0x00000040);
      dataLen_ = 0;
      onChanged();
      return this;
    }

    private wechat.protobuf.SKBuiltinString_ data_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString_, wechat.protobuf.SKBuiltinString_.Builder, wechat.protobuf.SKBuiltinString_OrBuilder> dataBuilder_;
    /**
     * optional .wechat_proto.SKBuiltinString_ data = 8;
     * @return Whether the data field is set.
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ data = 8;
     * @return The data.
     */
    public wechat.protobuf.SKBuiltinString_ getData() {
      if (dataBuilder_ == null) {
        return data_ == null ? wechat.protobuf.SKBuiltinString_.getDefaultInstance() : data_;
      } else {
        return dataBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ data = 8;
     */
    public Builder setData(wechat.protobuf.SKBuiltinString_ value) {
      if (dataBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        data_ = value;
        onChanged();
      } else {
        dataBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000080;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ data = 8;
     */
    public Builder setData(
        wechat.protobuf.SKBuiltinString_.Builder builderForValue) {
      if (dataBuilder_ == null) {
        data_ = builderForValue.build();
        onChanged();
      } else {
        dataBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000080;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ data = 8;
     */
    public Builder mergeData(wechat.protobuf.SKBuiltinString_ value) {
      if (dataBuilder_ == null) {
        if (((bitField0_ & 0x00000080) != 0) &&
            data_ != null &&
            data_ != wechat.protobuf.SKBuiltinString_.getDefaultInstance()) {
          data_ =
            wechat.protobuf.SKBuiltinString_.newBuilder(data_).mergeFrom(value).buildPartial();
        } else {
          data_ = value;
        }
        onChanged();
      } else {
        dataBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000080;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ data = 8;
     */
    public Builder clearData() {
      if (dataBuilder_ == null) {
        data_ = null;
        onChanged();
      } else {
        dataBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000080);
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ data = 8;
     */
    public wechat.protobuf.SKBuiltinString_.Builder getDataBuilder() {
      bitField0_ |= 0x00000080;
      onChanged();
      return getDataFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ data = 8;
     */
    public wechat.protobuf.SKBuiltinString_OrBuilder getDataOrBuilder() {
      if (dataBuilder_ != null) {
        return dataBuilder_.getMessageOrBuilder();
      } else {
        return data_ == null ?
            wechat.protobuf.SKBuiltinString_.getDefaultInstance() : data_;
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ data = 8;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString_, wechat.protobuf.SKBuiltinString_.Builder, wechat.protobuf.SKBuiltinString_OrBuilder> 
        getDataFieldBuilder() {
      if (dataBuilder_ == null) {
        dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.SKBuiltinString_, wechat.protobuf.SKBuiltinString_.Builder, wechat.protobuf.SKBuiltinString_OrBuilder>(
                getData(),
                getParentForChildren(),
                isClean());
        data_ = null;
      }
      return dataBuilder_;
    }

    private int msgType_ ;
    /**
     * optional uint32 msg_type = 9;
     * @return Whether the msgType field is set.
     */
    @java.lang.Override
    public boolean hasMsgType() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * optional uint32 msg_type = 9;
     * @return The msgType.
     */
    @java.lang.Override
    public int getMsgType() {
      return msgType_;
    }
    /**
     * optional uint32 msg_type = 9;
     * @param value The msgType to set.
     * @return This builder for chaining.
     */
    public Builder setMsgType(int value) {
      bitField0_ |= 0x00000100;
      msgType_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 msg_type = 9;
     * @return This builder for chaining.
     */
    public Builder clearMsgType() {
      bitField0_ = (bitField0_ & ~0x00000100);
      msgType_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object msgSource_ = "";
    /**
     * optional string msg_source = 10;
     * @return Whether the msgSource field is set.
     */
    public boolean hasMsgSource() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * optional string msg_source = 10;
     * @return The msgSource.
     */
    public java.lang.String getMsgSource() {
      java.lang.Object ref = msgSource_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          msgSource_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string msg_source = 10;
     * @return The bytes for msgSource.
     */
    public com.google.protobuf.ByteString
        getMsgSourceBytes() {
      java.lang.Object ref = msgSource_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        msgSource_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string msg_source = 10;
     * @param value The msgSource to set.
     * @return This builder for chaining.
     */
    public Builder setMsgSource(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
      msgSource_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string msg_source = 10;
     * @return This builder for chaining.
     */
    public Builder clearMsgSource() {
      bitField0_ = (bitField0_ & ~0x00000200);
      msgSource_ = getDefaultInstance().getMsgSource();
      onChanged();
      return this;
    }
    /**
     * optional string msg_source = 10;
     * @param value The bytes for msgSource to set.
     * @return This builder for chaining.
     */
    public Builder setMsgSourceBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
      msgSource_ = value;
      onChanged();
      return this;
    }

    private int compressType_ ;
    /**
     * optional uint32 compress_type = 11;
     * @return Whether the compressType field is set.
     */
    @java.lang.Override
    public boolean hasCompressType() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * optional uint32 compress_type = 11;
     * @return The compressType.
     */
    @java.lang.Override
    public int getCompressType() {
      return compressType_;
    }
    /**
     * optional uint32 compress_type = 11;
     * @param value The compressType to set.
     * @return This builder for chaining.
     */
    public Builder setCompressType(int value) {
      bitField0_ |= 0x00000400;
      compressType_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 compress_type = 11;
     * @return This builder for chaining.
     */
    public Builder clearCompressType() {
      bitField0_ = (bitField0_ & ~0x00000400);
      compressType_ = 0;
      onChanged();
      return this;
    }

    private int netType_ ;
    /**
     * optional uint32 net_type = 12;
     * @return Whether the netType field is set.
     */
    @java.lang.Override
    public boolean hasNetType() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * optional uint32 net_type = 12;
     * @return The netType.
     */
    @java.lang.Override
    public int getNetType() {
      return netType_;
    }
    /**
     * optional uint32 net_type = 12;
     * @param value The netType to set.
     * @return This builder for chaining.
     */
    public Builder setNetType(int value) {
      bitField0_ |= 0x00000800;
      netType_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 net_type = 12;
     * @return This builder for chaining.
     */
    public Builder clearNetType() {
      bitField0_ = (bitField0_ & ~0x00000800);
      netType_ = 0;
      onChanged();
      return this;
    }

    private int photoFrom_ ;
    /**
     * optional uint32 photo_from = 13;
     * @return Whether the photoFrom field is set.
     */
    @java.lang.Override
    public boolean hasPhotoFrom() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * optional uint32 photo_from = 13;
     * @return The photoFrom.
     */
    @java.lang.Override
    public int getPhotoFrom() {
      return photoFrom_;
    }
    /**
     * optional uint32 photo_from = 13;
     * @param value The photoFrom to set.
     * @return This builder for chaining.
     */
    public Builder setPhotoFrom(int value) {
      bitField0_ |= 0x00001000;
      photoFrom_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 photo_from = 13;
     * @return This builder for chaining.
     */
    public Builder clearPhotoFrom() {
      bitField0_ = (bitField0_ & ~0x00001000);
      photoFrom_ = 0;
      onChanged();
      return this;
    }

    private int uiCreateTime_ ;
    /**
     * optional uint32 ui_create_time = 14;
     * @return Whether the uiCreateTime field is set.
     */
    @java.lang.Override
    public boolean hasUiCreateTime() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * optional uint32 ui_create_time = 14;
     * @return The uiCreateTime.
     */
    @java.lang.Override
    public int getUiCreateTime() {
      return uiCreateTime_;
    }
    /**
     * optional uint32 ui_create_time = 14;
     * @param value The uiCreateTime to set.
     * @return This builder for chaining.
     */
    public Builder setUiCreateTime(int value) {
      bitField0_ |= 0x00002000;
      uiCreateTime_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 ui_create_time = 14;
     * @return This builder for chaining.
     */
    public Builder clearUiCreateTime() {
      bitField0_ = (bitField0_ & ~0x00002000);
      uiCreateTime_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object cdnBigImgUrl_ = "";
    /**
     * optional string cdn_big_img_url = 15;
     * @return Whether the cdnBigImgUrl field is set.
     */
    public boolean hasCdnBigImgUrl() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * optional string cdn_big_img_url = 15;
     * @return The cdnBigImgUrl.
     */
    public java.lang.String getCdnBigImgUrl() {
      java.lang.Object ref = cdnBigImgUrl_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          cdnBigImgUrl_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string cdn_big_img_url = 15;
     * @return The bytes for cdnBigImgUrl.
     */
    public com.google.protobuf.ByteString
        getCdnBigImgUrlBytes() {
      java.lang.Object ref = cdnBigImgUrl_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        cdnBigImgUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string cdn_big_img_url = 15;
     * @param value The cdnBigImgUrl to set.
     * @return This builder for chaining.
     */
    public Builder setCdnBigImgUrl(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00004000;
      cdnBigImgUrl_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string cdn_big_img_url = 15;
     * @return This builder for chaining.
     */
    public Builder clearCdnBigImgUrl() {
      bitField0_ = (bitField0_ & ~0x00004000);
      cdnBigImgUrl_ = getDefaultInstance().getCdnBigImgUrl();
      onChanged();
      return this;
    }
    /**
     * optional string cdn_big_img_url = 15;
     * @param value The bytes for cdnBigImgUrl to set.
     * @return This builder for chaining.
     */
    public Builder setCdnBigImgUrlBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00004000;
      cdnBigImgUrl_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object cdnSmallImgUrl_ = "";
    /**
     * optional string cdn_small_img_url = 16;
     * @return Whether the cdnSmallImgUrl field is set.
     */
    public boolean hasCdnSmallImgUrl() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * optional string cdn_small_img_url = 16;
     * @return The cdnSmallImgUrl.
     */
    public java.lang.String getCdnSmallImgUrl() {
      java.lang.Object ref = cdnSmallImgUrl_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          cdnSmallImgUrl_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string cdn_small_img_url = 16;
     * @return The bytes for cdnSmallImgUrl.
     */
    public com.google.protobuf.ByteString
        getCdnSmallImgUrlBytes() {
      java.lang.Object ref = cdnSmallImgUrl_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        cdnSmallImgUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string cdn_small_img_url = 16;
     * @param value The cdnSmallImgUrl to set.
     * @return This builder for chaining.
     */
    public Builder setCdnSmallImgUrl(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00008000;
      cdnSmallImgUrl_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string cdn_small_img_url = 16;
     * @return This builder for chaining.
     */
    public Builder clearCdnSmallImgUrl() {
      bitField0_ = (bitField0_ & ~0x00008000);
      cdnSmallImgUrl_ = getDefaultInstance().getCdnSmallImgUrl();
      onChanged();
      return this;
    }
    /**
     * optional string cdn_small_img_url = 16;
     * @param value The bytes for cdnSmallImgUrl to set.
     * @return This builder for chaining.
     */
    public Builder setCdnSmallImgUrlBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00008000;
      cdnSmallImgUrl_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object aesKey_ = "";
    /**
     * optional string aes_key = 17;
     * @return Whether the aesKey field is set.
     */
    public boolean hasAesKey() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * optional string aes_key = 17;
     * @return The aesKey.
     */
    public java.lang.String getAesKey() {
      java.lang.Object ref = aesKey_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          aesKey_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string aes_key = 17;
     * @return The bytes for aesKey.
     */
    public com.google.protobuf.ByteString
        getAesKeyBytes() {
      java.lang.Object ref = aesKey_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        aesKey_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string aes_key = 17;
     * @param value The aesKey to set.
     * @return This builder for chaining.
     */
    public Builder setAesKey(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00010000;
      aesKey_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string aes_key = 17;
     * @return This builder for chaining.
     */
    public Builder clearAesKey() {
      bitField0_ = (bitField0_ & ~0x00010000);
      aesKey_ = getDefaultInstance().getAesKey();
      onChanged();
      return this;
    }
    /**
     * optional string aes_key = 17;
     * @param value The bytes for aesKey to set.
     * @return This builder for chaining.
     */
    public Builder setAesKeyBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00010000;
      aesKey_ = value;
      onChanged();
      return this;
    }

    private int encryVer_ ;
    /**
     * optional uint32 encry_ver = 18;
     * @return Whether the encryVer field is set.
     */
    @java.lang.Override
    public boolean hasEncryVer() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * optional uint32 encry_ver = 18;
     * @return The encryVer.
     */
    @java.lang.Override
    public int getEncryVer() {
      return encryVer_;
    }
    /**
     * optional uint32 encry_ver = 18;
     * @param value The encryVer to set.
     * @return This builder for chaining.
     */
    public Builder setEncryVer(int value) {
      bitField0_ |= 0x00020000;
      encryVer_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 encry_ver = 18;
     * @return This builder for chaining.
     */
    public Builder clearEncryVer() {
      bitField0_ = (bitField0_ & ~0x00020000);
      encryVer_ = 0;
      onChanged();
      return this;
    }

    private int cdnBigImgSize_ ;
    /**
     * optional uint32 cdn_big_img_size = 19;
     * @return Whether the cdnBigImgSize field is set.
     */
    @java.lang.Override
    public boolean hasCdnBigImgSize() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * optional uint32 cdn_big_img_size = 19;
     * @return The cdnBigImgSize.
     */
    @java.lang.Override
    public int getCdnBigImgSize() {
      return cdnBigImgSize_;
    }
    /**
     * optional uint32 cdn_big_img_size = 19;
     * @param value The cdnBigImgSize to set.
     * @return This builder for chaining.
     */
    public Builder setCdnBigImgSize(int value) {
      bitField0_ |= 0x00040000;
      cdnBigImgSize_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 cdn_big_img_size = 19;
     * @return This builder for chaining.
     */
    public Builder clearCdnBigImgSize() {
      bitField0_ = (bitField0_ & ~0x00040000);
      cdnBigImgSize_ = 0;
      onChanged();
      return this;
    }

    private int cdnMidImgSize_ ;
    /**
     * optional uint32 cdn_mid_img_size = 20;
     * @return Whether the cdnMidImgSize field is set.
     */
    @java.lang.Override
    public boolean hasCdnMidImgSize() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * optional uint32 cdn_mid_img_size = 20;
     * @return The cdnMidImgSize.
     */
    @java.lang.Override
    public int getCdnMidImgSize() {
      return cdnMidImgSize_;
    }
    /**
     * optional uint32 cdn_mid_img_size = 20;
     * @param value The cdnMidImgSize to set.
     * @return This builder for chaining.
     */
    public Builder setCdnMidImgSize(int value) {
      bitField0_ |= 0x00080000;
      cdnMidImgSize_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 cdn_mid_img_size = 20;
     * @return This builder for chaining.
     */
    public Builder clearCdnMidImgSize() {
      bitField0_ = (bitField0_ & ~0x00080000);
      cdnMidImgSize_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object cdnThumbImgUrl_ = "";
    /**
     * optional string cdn_thumb_img_url = 21;
     * @return Whether the cdnThumbImgUrl field is set.
     */
    public boolean hasCdnThumbImgUrl() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * optional string cdn_thumb_img_url = 21;
     * @return The cdnThumbImgUrl.
     */
    public java.lang.String getCdnThumbImgUrl() {
      java.lang.Object ref = cdnThumbImgUrl_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          cdnThumbImgUrl_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string cdn_thumb_img_url = 21;
     * @return The bytes for cdnThumbImgUrl.
     */
    public com.google.protobuf.ByteString
        getCdnThumbImgUrlBytes() {
      java.lang.Object ref = cdnThumbImgUrl_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        cdnThumbImgUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string cdn_thumb_img_url = 21;
     * @param value The cdnThumbImgUrl to set.
     * @return This builder for chaining.
     */
    public Builder setCdnThumbImgUrl(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00100000;
      cdnThumbImgUrl_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string cdn_thumb_img_url = 21;
     * @return This builder for chaining.
     */
    public Builder clearCdnThumbImgUrl() {
      bitField0_ = (bitField0_ & ~0x00100000);
      cdnThumbImgUrl_ = getDefaultInstance().getCdnThumbImgUrl();
      onChanged();
      return this;
    }
    /**
     * optional string cdn_thumb_img_url = 21;
     * @param value The bytes for cdnThumbImgUrl to set.
     * @return This builder for chaining.
     */
    public Builder setCdnThumbImgUrlBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00100000;
      cdnThumbImgUrl_ = value;
      onChanged();
      return this;
    }

    private int cdnThumbImgSize_ ;
    /**
     * optional uint32 cdn_thumb_img_size = 22;
     * @return Whether the cdnThumbImgSize field is set.
     */
    @java.lang.Override
    public boolean hasCdnThumbImgSize() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * optional uint32 cdn_thumb_img_size = 22;
     * @return The cdnThumbImgSize.
     */
    @java.lang.Override
    public int getCdnThumbImgSize() {
      return cdnThumbImgSize_;
    }
    /**
     * optional uint32 cdn_thumb_img_size = 22;
     * @param value The cdnThumbImgSize to set.
     * @return This builder for chaining.
     */
    public Builder setCdnThumbImgSize(int value) {
      bitField0_ |= 0x00200000;
      cdnThumbImgSize_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 cdn_thumb_img_size = 22;
     * @return This builder for chaining.
     */
    public Builder clearCdnThumbImgSize() {
      bitField0_ = (bitField0_ & ~0x00200000);
      cdnThumbImgSize_ = 0;
      onChanged();
      return this;
    }

    private int cdnThumbImgHeight_ ;
    /**
     * optional uint32 cdn_thumb_img_height = 23;
     * @return Whether the cdnThumbImgHeight field is set.
     */
    @java.lang.Override
    public boolean hasCdnThumbImgHeight() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * optional uint32 cdn_thumb_img_height = 23;
     * @return The cdnThumbImgHeight.
     */
    @java.lang.Override
    public int getCdnThumbImgHeight() {
      return cdnThumbImgHeight_;
    }
    /**
     * optional uint32 cdn_thumb_img_height = 23;
     * @param value The cdnThumbImgHeight to set.
     * @return This builder for chaining.
     */
    public Builder setCdnThumbImgHeight(int value) {
      bitField0_ |= 0x00400000;
      cdnThumbImgHeight_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 cdn_thumb_img_height = 23;
     * @return This builder for chaining.
     */
    public Builder clearCdnThumbImgHeight() {
      bitField0_ = (bitField0_ & ~0x00400000);
      cdnThumbImgHeight_ = 0;
      onChanged();
      return this;
    }

    private int cdnThumbImgWidth_ ;
    /**
     * optional uint32 cdn_thumb_img_width = 24;
     * @return Whether the cdnThumbImgWidth field is set.
     */
    @java.lang.Override
    public boolean hasCdnThumbImgWidth() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * optional uint32 cdn_thumb_img_width = 24;
     * @return The cdnThumbImgWidth.
     */
    @java.lang.Override
    public int getCdnThumbImgWidth() {
      return cdnThumbImgWidth_;
    }
    /**
     * optional uint32 cdn_thumb_img_width = 24;
     * @param value The cdnThumbImgWidth to set.
     * @return This builder for chaining.
     */
    public Builder setCdnThumbImgWidth(int value) {
      bitField0_ |= 0x00800000;
      cdnThumbImgWidth_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 cdn_thumb_img_width = 24;
     * @return This builder for chaining.
     */
    public Builder clearCdnThumbImgWidth() {
      bitField0_ = (bitField0_ & ~0x00800000);
      cdnThumbImgWidth_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object cdnThumbAesKey_ = "";
    /**
     * optional string cdn_thumb_aes_key = 25;
     * @return Whether the cdnThumbAesKey field is set.
     */
    public boolean hasCdnThumbAesKey() {
      return ((bitField0_ & 0x01000000) != 0);
    }
    /**
     * optional string cdn_thumb_aes_key = 25;
     * @return The cdnThumbAesKey.
     */
    public java.lang.String getCdnThumbAesKey() {
      java.lang.Object ref = cdnThumbAesKey_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          cdnThumbAesKey_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string cdn_thumb_aes_key = 25;
     * @return The bytes for cdnThumbAesKey.
     */
    public com.google.protobuf.ByteString
        getCdnThumbAesKeyBytes() {
      java.lang.Object ref = cdnThumbAesKey_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        cdnThumbAesKey_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string cdn_thumb_aes_key = 25;
     * @param value The cdnThumbAesKey to set.
     * @return This builder for chaining.
     */
    public Builder setCdnThumbAesKey(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x01000000;
      cdnThumbAesKey_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string cdn_thumb_aes_key = 25;
     * @return This builder for chaining.
     */
    public Builder clearCdnThumbAesKey() {
      bitField0_ = (bitField0_ & ~0x01000000);
      cdnThumbAesKey_ = getDefaultInstance().getCdnThumbAesKey();
      onChanged();
      return this;
    }
    /**
     * optional string cdn_thumb_aes_key = 25;
     * @param value The bytes for cdnThumbAesKey to set.
     * @return This builder for chaining.
     */
    public Builder setCdnThumbAesKeyBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x01000000;
      cdnThumbAesKey_ = value;
      onChanged();
      return this;
    }

    private int reqTime_ ;
    /**
     * optional uint32 req_time = 26;
     * @return Whether the reqTime field is set.
     */
    @java.lang.Override
    public boolean hasReqTime() {
      return ((bitField0_ & 0x02000000) != 0);
    }
    /**
     * optional uint32 req_time = 26;
     * @return The reqTime.
     */
    @java.lang.Override
    public int getReqTime() {
      return reqTime_;
    }
    /**
     * optional uint32 req_time = 26;
     * @param value The reqTime to set.
     * @return This builder for chaining.
     */
    public Builder setReqTime(int value) {
      bitField0_ |= 0x02000000;
      reqTime_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 req_time = 26;
     * @return This builder for chaining.
     */
    public Builder clearReqTime() {
      bitField0_ = (bitField0_ & ~0x02000000);
      reqTime_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object md5_ = "";
    /**
     * optional string md5 = 27;
     * @return Whether the md5 field is set.
     */
    public boolean hasMd5() {
      return ((bitField0_ & 0x04000000) != 0);
    }
    /**
     * optional string md5 = 27;
     * @return The md5.
     */
    public java.lang.String getMd5() {
      java.lang.Object ref = md5_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          md5_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string md5 = 27;
     * @return The bytes for md5.
     */
    public com.google.protobuf.ByteString
        getMd5Bytes() {
      java.lang.Object ref = md5_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        md5_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string md5 = 27;
     * @param value The md5 to set.
     * @return This builder for chaining.
     */
    public Builder setMd5(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x04000000;
      md5_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string md5 = 27;
     * @return This builder for chaining.
     */
    public Builder clearMd5() {
      bitField0_ = (bitField0_ & ~0x04000000);
      md5_ = getDefaultInstance().getMd5();
      onChanged();
      return this;
    }
    /**
     * optional string md5 = 27;
     * @param value The bytes for md5 to set.
     * @return This builder for chaining.
     */
    public Builder setMd5Bytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x04000000;
      md5_ = value;
      onChanged();
      return this;
    }

    private int crc32_ ;
    /**
     * optional uint32 crc32 = 28;
     * @return Whether the crc32 field is set.
     */
    @java.lang.Override
    public boolean hasCrc32() {
      return ((bitField0_ & 0x08000000) != 0);
    }
    /**
     * optional uint32 crc32 = 28;
     * @return The crc32.
     */
    @java.lang.Override
    public int getCrc32() {
      return crc32_;
    }
    /**
     * optional uint32 crc32 = 28;
     * @param value The crc32 to set.
     * @return This builder for chaining.
     */
    public Builder setCrc32(int value) {
      bitField0_ |= 0x08000000;
      crc32_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 crc32 = 28;
     * @return This builder for chaining.
     */
    public Builder clearCrc32() {
      bitField0_ = (bitField0_ & ~0x08000000);
      crc32_ = 0;
      onChanged();
      return this;
    }

    private int msgForwardType_ ;
    /**
     * optional uint32 msg_forward_type = 29;
     * @return Whether the msgForwardType field is set.
     */
    @java.lang.Override
    public boolean hasMsgForwardType() {
      return ((bitField0_ & 0x10000000) != 0);
    }
    /**
     * optional uint32 msg_forward_type = 29;
     * @return The msgForwardType.
     */
    @java.lang.Override
    public int getMsgForwardType() {
      return msgForwardType_;
    }
    /**
     * optional uint32 msg_forward_type = 29;
     * @param value The msgForwardType to set.
     * @return This builder for chaining.
     */
    public Builder setMsgForwardType(int value) {
      bitField0_ |= 0x10000000;
      msgForwardType_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 msg_forward_type = 29;
     * @return This builder for chaining.
     */
    public Builder clearMsgForwardType() {
      bitField0_ = (bitField0_ & ~0x10000000);
      msgForwardType_ = 0;
      onChanged();
      return this;
    }

    private int hitMd5_ ;
    /**
     * optional uint32 hit_md5 = 30;
     * @return Whether the hitMd5 field is set.
     */
    @java.lang.Override
    public boolean hasHitMd5() {
      return ((bitField0_ & 0x20000000) != 0);
    }
    /**
     * optional uint32 hit_md5 = 30;
     * @return The hitMd5.
     */
    @java.lang.Override
    public int getHitMd5() {
      return hitMd5_;
    }
    /**
     * optional uint32 hit_md5 = 30;
     * @param value The hitMd5 to set.
     * @return This builder for chaining.
     */
    public Builder setHitMd5(int value) {
      bitField0_ |= 0x20000000;
      hitMd5_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 hit_md5 = 30;
     * @return This builder for chaining.
     */
    public Builder clearHitMd5() {
      bitField0_ = (bitField0_ & ~0x20000000);
      hitMd5_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object appId_ = "";
    /**
     * optional string app_id = 31;
     * @return Whether the appId field is set.
     */
    public boolean hasAppId() {
      return ((bitField0_ & 0x40000000) != 0);
    }
    /**
     * optional string app_id = 31;
     * @return The appId.
     */
    public java.lang.String getAppId() {
      java.lang.Object ref = appId_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          appId_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string app_id = 31;
     * @return The bytes for appId.
     */
    public com.google.protobuf.ByteString
        getAppIdBytes() {
      java.lang.Object ref = appId_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        appId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string app_id = 31;
     * @param value The appId to set.
     * @return This builder for chaining.
     */
    public Builder setAppId(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x40000000;
      appId_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string app_id = 31;
     * @return This builder for chaining.
     */
    public Builder clearAppId() {
      bitField0_ = (bitField0_ & ~0x40000000);
      appId_ = getDefaultInstance().getAppId();
      onChanged();
      return this;
    }
    /**
     * optional string app_id = 31;
     * @param value The bytes for appId to set.
     * @return This builder for chaining.
     */
    public Builder setAppIdBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x40000000;
      appId_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object messageAction_ = "";
    /**
     * optional string message_action = 32;
     * @return Whether the messageAction field is set.
     */
    public boolean hasMessageAction() {
      return ((bitField0_ & 0x80000000) != 0);
    }
    /**
     * optional string message_action = 32;
     * @return The messageAction.
     */
    public java.lang.String getMessageAction() {
      java.lang.Object ref = messageAction_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          messageAction_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string message_action = 32;
     * @return The bytes for messageAction.
     */
    public com.google.protobuf.ByteString
        getMessageActionBytes() {
      java.lang.Object ref = messageAction_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        messageAction_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string message_action = 32;
     * @param value The messageAction to set.
     * @return This builder for chaining.
     */
    public Builder setMessageAction(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x80000000;
      messageAction_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string message_action = 32;
     * @return This builder for chaining.
     */
    public Builder clearMessageAction() {
      bitField0_ = (bitField0_ & ~0x80000000);
      messageAction_ = getDefaultInstance().getMessageAction();
      onChanged();
      return this;
    }
    /**
     * optional string message_action = 32;
     * @param value The bytes for messageAction to set.
     * @return This builder for chaining.
     */
    public Builder setMessageActionBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x80000000;
      messageAction_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object messageExt_ = "";
    /**
     * optional string message_ext = 33;
     * @return Whether the messageExt field is set.
     */
    public boolean hasMessageExt() {
      return ((bitField1_ & 0x00000001) != 0);
    }
    /**
     * optional string message_ext = 33;
     * @return The messageExt.
     */
    public java.lang.String getMessageExt() {
      java.lang.Object ref = messageExt_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          messageExt_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string message_ext = 33;
     * @return The bytes for messageExt.
     */
    public com.google.protobuf.ByteString
        getMessageExtBytes() {
      java.lang.Object ref = messageExt_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        messageExt_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string message_ext = 33;
     * @param value The messageExt to set.
     * @return This builder for chaining.
     */
    public Builder setMessageExt(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000001;
      messageExt_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string message_ext = 33;
     * @return This builder for chaining.
     */
    public Builder clearMessageExt() {
      bitField1_ = (bitField1_ & ~0x00000001);
      messageExt_ = getDefaultInstance().getMessageExt();
      onChanged();
      return this;
    }
    /**
     * optional string message_ext = 33;
     * @param value The bytes for messageExt to set.
     * @return This builder for chaining.
     */
    public Builder setMessageExtBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000001;
      messageExt_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object mediaTagName_ = "";
    /**
     * optional string media_tag_name = 34;
     * @return Whether the mediaTagName field is set.
     */
    public boolean hasMediaTagName() {
      return ((bitField1_ & 0x00000002) != 0);
    }
    /**
     * optional string media_tag_name = 34;
     * @return The mediaTagName.
     */
    public java.lang.String getMediaTagName() {
      java.lang.Object ref = mediaTagName_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          mediaTagName_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string media_tag_name = 34;
     * @return The bytes for mediaTagName.
     */
    public com.google.protobuf.ByteString
        getMediaTagNameBytes() {
      java.lang.Object ref = mediaTagName_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mediaTagName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string media_tag_name = 34;
     * @param value The mediaTagName to set.
     * @return This builder for chaining.
     */
    public Builder setMediaTagName(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000002;
      mediaTagName_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string media_tag_name = 34;
     * @return This builder for chaining.
     */
    public Builder clearMediaTagName() {
      bitField1_ = (bitField1_ & ~0x00000002);
      mediaTagName_ = getDefaultInstance().getMediaTagName();
      onChanged();
      return this;
    }
    /**
     * optional string media_tag_name = 34;
     * @param value The bytes for mediaTagName to set.
     * @return This builder for chaining.
     */
    public Builder setMediaTagNameBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000002;
      mediaTagName_ = value;
      onChanged();
      return this;
    }
    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFields(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }


    // @@protoc_insertion_point(builder_scope:wechat_proto.UploadMsgImgRequest)
  }

  // @@protoc_insertion_point(class_scope:wechat_proto.UploadMsgImgRequest)
  private static final wechat.protobuf.UploadMsgImgRequest DEFAULT_INSTANCE;
  static {
    DEFAULT_INSTANCE = new wechat.protobuf.UploadMsgImgRequest();
  }

  public static wechat.protobuf.UploadMsgImgRequest getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  @java.lang.Deprecated public static final com.google.protobuf.Parser
      PARSER = new com.google.protobuf.AbstractParser() {
    @java.lang.Override
    public UploadMsgImgRequest parsePartialFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return new UploadMsgImgRequest(input, extensionRegistry);
    }
  };

  public static com.google.protobuf.Parser parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public wechat.protobuf.UploadMsgImgRequest getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }

}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy