text:
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: IM.Login.proto

package com.mogujie.tt.protobuf;

public final class IMLogin {
  private IMLogin() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public interface IMMsgServReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMMsgServReq)
      com.google.protobuf.MessageLiteOrBuilder {
  }
  /**
   *

   *cmd id:		0x0101
   *

   *
   * Protobuf type {@code IM.Login.IMMsgServReq}
   */
  public  static final class IMMsgServReq extends
      com.google.protobuf.GeneratedMessageLite<
          IMMsgServReq, IMMsgServReq.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMMsgServReq)
      IMMsgServReqOrBuilder {
    private IMMsgServReq() {
    }
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMMsgServReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     *

     *cmd id:		0x0101
     *

     *
     * Protobuf type {@code IM.Login.IMMsgServReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMMsgServReq, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMMsgServReq)
        com.mogujie.tt.protobuf.IMLogin.IMMsgServReqOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMMsgServReq.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMMsgServReq)
    }
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMMsgServReq();
        }
        case IS_INITIALIZED: {
          return DEFAULT_INSTANCE;
        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMMsgServReq other = (com.mogujie.tt.protobuf.IMLogin.IMMsgServReq) arg1;
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMMsgServReq.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMMsgServReq)
    private static final com.mogujie.tt.protobuf.IMLogin.IMMsgServReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMMsgServReq();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMMsgServReq> PARSER;

    public static com.google.protobuf.Parser<IMMsgServReq> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface IMMsgServRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMMsgServRsp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     *

     *cmd id:		0x0102
     *

     *
     * required .IM.BaseDefine.ResultType result_code = 1;
     */
    boolean hasResultCode();
    /**
     *

     *cmd id:		0x0102
     *

     *
     * required .IM.BaseDefine.ResultType result_code = 1;
     */
    com.mogujie.tt.protobuf.IMBaseDefine.ResultType getResultCode();

    /**
     * optional string prior_ip = 2;
     */
    boolean hasPriorIp();
    /**
     * optional string prior_ip = 2;
     */
    java.lang.String getPriorIp();
    /**
     * optional string prior_ip = 2;
     */
    com.google.protobuf.ByteString
        getPriorIpBytes();

    /**
     * optional string backip_ip = 3;
     */
    boolean hasBackipIp();
    /**
     * optional string backip_ip = 3;
     */
    java.lang.String getBackipIp();
    /**
     * optional string backip_ip = 3;
     */
    com.google.protobuf.ByteString
        getBackipIpBytes();

    /**
     * optional uint32 port = 4;
     */
    boolean hasPort();
    /**
     * optional uint32 port = 4;
     */
    int getPort();
  }
  /**
   * Protobuf type {@code IM.Login.IMMsgServRsp}
   */
  public  static final class IMMsgServRsp extends
      com.google.protobuf.GeneratedMessageLite<
          IMMsgServRsp, IMMsgServRsp.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMMsgServRsp)
      IMMsgServRspOrBuilder {
    private IMMsgServRsp() {
      priorIp_ = "";
      backipIp_ = "";
    }
    private int bitField0_;
    public static final int RESULT_CODE_FIELD_NUMBER = 1;
    private int resultCode_;
    /**
     *

     *cmd id:		0x0102
     *

     *
     * required .IM.BaseDefine.ResultType result_code = 1;
     */
    public boolean hasResultCode() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *

     *cmd id:		0x0102
     *

     *
     * required .IM.BaseDefine.ResultType result_code = 1;
     */
    public com.mogujie.tt.protobuf.IMBaseDefine.ResultType getResultCode() {
      com.mogujie.tt.protobuf.IMBaseDefine.ResultType result = com.mogujie.tt.protobuf.IMBaseDefine.ResultType.forNumber(resultCode_);
      return result == null ? com.mogujie.tt.protobuf.IMBaseDefine.ResultType.REFUSE_REASON_NONE : result;
    }
    /**
     *

     *cmd id:		0x0102
     *

     *
     * required .IM.BaseDefine.ResultType result_code = 1;
     */
    private void setResultCode(com.mogujie.tt.protobuf.IMBaseDefine.ResultType value) {
      if (value == null) {
        throw new NullPointerException();
      }
      bitField0_ |= 0x00000001;
      resultCode_ = value.getNumber();
    }
    /**
     *

     *cmd id:		0x0102
     *

     *
     * required .IM.BaseDefine.ResultType result_code = 1;
     */
    private void clearResultCode() {
      bitField0_ = (bitField0_ & ~0x00000001);
      resultCode_ = 0;
    }

    public static final int PRIOR_IP_FIELD_NUMBER = 2;
    private java.lang.String priorIp_;
    /**
     * optional string prior_ip = 2;
     */
    public boolean hasPriorIp() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string prior_ip = 2;
     */
    public java.lang.String getPriorIp() {
      return priorIp_;
    }
    /**
     * optional string prior_ip = 2;
     */
    public com.google.protobuf.ByteString
        getPriorIpBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(priorIp_);
    }
    /**
     * optional string prior_ip = 2;
     */
    private void setPriorIp(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
      priorIp_ = value;
    }
    /**
     * optional string prior_ip = 2;
     */
    private void clearPriorIp() {
      bitField0_ = (bitField0_ & ~0x00000002);
      priorIp_ = getDefaultInstance().getPriorIp();
    }
    /**
     * optional string prior_ip = 2;
     */
    private void setPriorIpBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
      priorIp_ = value.toStringUtf8();
    }

    public static final int BACKIP_IP_FIELD_NUMBER = 3;
    private java.lang.String backipIp_;
    /**
     * optional string backip_ip = 3;
     */
    public boolean hasBackipIp() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string backip_ip = 3;
     */
    public java.lang.String getBackipIp() {
      return backipIp_;
    }
    /**
     * optional string backip_ip = 3;
     */
    public com.google.protobuf.ByteString
        getBackipIpBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(backipIp_);
    }
    /**
     * optional string backip_ip = 3;
     */
    private void setBackipIp(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
      backipIp_ = value;
    }
    /**
     * optional string backip_ip = 3;
     */
    private void clearBackipIp() {
      bitField0_ = (bitField0_ & ~0x00000004);
      backipIp_ = getDefaultInstance().getBackipIp();
    }
    /**
     * optional string backip_ip = 3;
     */
    private void setBackipIpBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
      backipIp_ = value.toStringUtf8();
    }

    public static final int PORT_FIELD_NUMBER = 4;
    private int port_;
    /**
     * optional uint32 port = 4;
     */
    public boolean hasPort() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 port = 4;
     */
    public int getPort() {
      return port_;
    }
    /**
     * optional uint32 port = 4;
     */
    private void setPort(int value) {
      bitField0_ |= 0x00000008;
      port_ = value;
    }
    /**
     * optional uint32 port = 4;
     */
    private void clearPort() {
      bitField0_ = (bitField0_ & ~0x00000008);
      port_ = 0;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, resultCode_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeString(2, getPriorIp());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeString(3, getBackipIp());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, port_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, resultCode_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(2, getPriorIp());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(3, getBackipIp());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, port_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     * Protobuf type {@code IM.Login.IMMsgServRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMMsgServRsp)
        com.mogujie.tt.protobuf.IMLogin.IMMsgServRspOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      /**
       *

       *cmd id:		0x0102
       *

       *
       * required .IM.BaseDefine.ResultType result_code = 1;
       */
      public boolean hasResultCode() {
        return instance.hasResultCode();
      }
      /**
       *

       *cmd id:		0x0102
       *

       *
       * required .IM.BaseDefine.ResultType result_code = 1;
       */
      public com.mogujie.tt.protobuf.IMBaseDefine.ResultType getResultCode() {
        return instance.getResultCode();
      }
      /**
       *

       *cmd id:		0x0102
       *

       *
       * required .IM.BaseDefine.ResultType result_code = 1;
       */
      public Builder setResultCode(com.mogujie.tt.protobuf.IMBaseDefine.ResultType value) {
        copyOnWrite();
        instance.setResultCode(value);
        return this;
      }
      /**
       *

       *cmd id:		0x0102
       *

       *
       * required .IM.BaseDefine.ResultType result_code = 1;
       */
      public Builder clearResultCode() {
        copyOnWrite();
        instance.clearResultCode();
        return this;
      }

      /**
       * optional string prior_ip = 2;
       */
      public boolean hasPriorIp() {
        return instance.hasPriorIp();
      }
      /**
       * optional string prior_ip = 2;
       */
      public java.lang.String getPriorIp() {
        return instance.getPriorIp();
      }
      /**
       * optional string prior_ip = 2;
       */
      public com.google.protobuf.ByteString
          getPriorIpBytes() {
        return instance.getPriorIpBytes();
      }
      /**
       * optional string prior_ip = 2;
       */
      public Builder setPriorIp(
          java.lang.String value) {
        copyOnWrite();
        instance.setPriorIp(value);
        return this;
      }
      /**
       * optional string prior_ip = 2;
       */
      public Builder clearPriorIp() {
        copyOnWrite();
        instance.clearPriorIp();
        return this;
      }
      /**
       * optional string prior_ip = 2;
       */
      public Builder setPriorIpBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setPriorIpBytes(value);
        return this;
      }

      /**
       * optional string backip_ip = 3;
       */
      public boolean hasBackipIp() {
        return instance.hasBackipIp();
      }
      /**
       * optional string backip_ip = 3;
       */
      public java.lang.String getBackipIp() {
        return instance.getBackipIp();
      }
      /**
       * optional string backip_ip = 3;
       */
      public com.google.protobuf.ByteString
          getBackipIpBytes() {
        return instance.getBackipIpBytes();
      }
      /**
       * optional string backip_ip = 3;
       */
      public Builder setBackipIp(
          java.lang.String value) {
        copyOnWrite();
        instance.setBackipIp(value);
        return this;
      }
      /**
       * optional string backip_ip = 3;
       */
      public Builder clearBackipIp() {
        copyOnWrite();
        instance.clearBackipIp();
        return this;
      }
      /**
       * optional string backip_ip = 3;
       */
      public Builder setBackipIpBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setBackipIpBytes(value);
        return this;
      }

      /**
       * optional uint32 port = 4;
       */
      public boolean hasPort() {
        return instance.hasPort();
      }
      /**
       * optional uint32 port = 4;
       */
      public int getPort() {
        return instance.getPort();
      }
      /**
       * optional uint32 port = 4;
       */
      public Builder setPort(int value) {
        copyOnWrite();
        instance.setPort(value);
        return this;
      }
      /**
       * optional uint32 port = 4;
       */
      public Builder clearPort() {
        copyOnWrite();
        instance.clearPort();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMMsgServRsp)
    }
    private byte memoizedIsInitialized = -1;
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp();
        }
        case IS_INITIALIZED: {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return DEFAULT_INSTANCE;
          if (isInitialized == 0) return null;

          boolean shouldMemoize = ((Boolean) arg0).booleanValue();
          if (!hasResultCode()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (shouldMemoize) memoizedIsInitialized = 1;
          return DEFAULT_INSTANCE;

        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp other = (com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp) arg1;
          resultCode_ = visitor.visitInt(hasResultCode(), resultCode_,
              other.hasResultCode(), other.resultCode_);
          priorIp_ = visitor.visitString(
              hasPriorIp(), priorIp_,
              other.hasPriorIp(), other.priorIp_);
          backipIp_ = visitor.visitString(
              hasBackipIp(), backipIp_,
              other.hasBackipIp(), other.backipIp_);
          port_ = visitor.visitInt(
              hasPort(), port_,
              other.hasPort(), other.port_);
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
            bitField0_ |= other.bitField0_;
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  int rawValue = input.readEnum();
                  com.mogujie.tt.protobuf.IMBaseDefine.ResultType value = com.mogujie.tt.protobuf.IMBaseDefine.ResultType.forNumber(rawValue);
                  if (value == null) {
                    super.mergeVarintField(1, rawValue);
                  } else {
                    bitField0_ |= 0x00000001;
                    resultCode_ = rawValue;
                  }
                  break;
                }
                case 18: {
                  String s = input.readString();
                  bitField0_ |= 0x00000002;
                  priorIp_ = s;
                  break;
                }
                case 26: {
                  String s = input.readString();
                  bitField0_ |= 0x00000004;
                  backipIp_ = s;
                  break;
                }
                case 32: {
                  bitField0_ |= 0x00000008;
                  port_ = input.readUInt32();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMMsgServRsp)
    private static final com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMMsgServRsp();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMMsgServRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMMsgServRsp> PARSER;

    public static com.google.protobuf.Parser<IMMsgServRsp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface IMLoginReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMLoginReq)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     *

     *cmd id:		0x0103
     *

     *
     * required string user_name = 1;
     */
    boolean hasUserName();
    /**
     *

     *cmd id:		0x0103
     *

     *
     * required string user_name = 1;
     */
    java.lang.String getUserName();
    /**
     *

     *cmd id:		0x0103
     *

     *
     * required string user_name = 1;
     */
    com.google.protobuf.ByteString
        getUserNameBytes();

    /**
     * required string password = 2;
     */
    boolean hasPassword();
    /**
     * required string password = 2;
     */
    java.lang.String getPassword();
    /**
     * required string password = 2;
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * required .IM.BaseDefine.UserStatType online_status = 3;
     */
    boolean hasOnlineStatus();
    /**
     * required .IM.BaseDefine.UserStatType online_status = 3;
     */
    com.mogujie.tt.protobuf.IMBaseDefine.UserStatType getOnlineStatus();

    /**
     * required .IM.BaseDefine.ClientType client_type = 4;
     */
    boolean hasClientType();
    /**
     * required .IM.BaseDefine.ClientType client_type = 4;
     */
    com.mogujie.tt.protobuf.IMBaseDefine.ClientType getClientType();

    /**
     * optional string client_version = 5;
     */
    boolean hasClientVersion();
    /**
     * optional string client_version = 5;
     */
    java.lang.String getClientVersion();
    /**
     * optional string client_version = 5;
     */
    com.google.protobuf.ByteString
        getClientVersionBytes();
  }
  /**
   * Protobuf type {@code IM.Login.IMLoginReq}
   */
  public  static final class IMLoginReq extends
      com.google.protobuf.GeneratedMessageLite<
          IMLoginReq, IMLoginReq.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMLoginReq)
      IMLoginReqOrBuilder {
    private IMLoginReq() {
      userName_ = "";
      password_ = "";
      onlineStatus_ = 1;
      clientType_ = 1;
      clientVersion_ = "";
    }
    private int bitField0_;
    public static final int USER_NAME_FIELD_NUMBER = 1;
    private java.lang.String userName_;
    /**
     *

     *cmd id:		0x0103
     *

     *
     * required string user_name = 1;
     */
    public boolean hasUserName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *

     *cmd id:		0x0103
     *

     *
     * required string user_name = 1;
     */
    public java.lang.String getUserName() {
      return userName_;
    }
    /**
     *

     *cmd id:		0x0103
     *

     *
     * required string user_name = 1;
     */
    public com.google.protobuf.ByteString
        getUserNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(userName_);
    }
    /**
     *

     *cmd id:		0x0103
     *

     *
     * required string user_name = 1;
     */
    private void setUserName(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
      userName_ = value;
    }
    /**
     *

     *cmd id:		0x0103
     *

     *
     * required string user_name = 1;
     */
    private void clearUserName() {
      bitField0_ = (bitField0_ & ~0x00000001);
      userName_ = getDefaultInstance().getUserName();
    }
    /**
     *

     *cmd id:		0x0103
     *

     *
     * required string user_name = 1;
     */
    private void setUserNameBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
      userName_ = value.toStringUtf8();
    }

    public static final int PASSWORD_FIELD_NUMBER = 2;
    private java.lang.String password_;
    /**
     * required string password = 2;
     */
    public boolean hasPassword() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required string password = 2;
     */
    public java.lang.String getPassword() {
      return password_;
    }
    /**
     * required string password = 2;
     */
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(password_);
    }
    /**
     * required string password = 2;
     */
    private void setPassword(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
      password_ = value;
    }
    /**
     * required string password = 2;
     */
    private void clearPassword() {
      bitField0_ = (bitField0_ & ~0x00000002);
      password_ = getDefaultInstance().getPassword();
    }
    /**
     * required string password = 2;
     */
    private void setPasswordBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
      password_ = value.toStringUtf8();
    }

    public static final int ONLINE_STATUS_FIELD_NUMBER = 3;
    private int onlineStatus_;
    /**
     * required .IM.BaseDefine.UserStatType online_status = 3;
     */
    public boolean hasOnlineStatus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required .IM.BaseDefine.UserStatType online_status = 3;
     */
    public com.mogujie.tt.protobuf.IMBaseDefine.UserStatType getOnlineStatus() {
      com.mogujie.tt.protobuf.IMBaseDefine.UserStatType result = com.mogujie.tt.protobuf.IMBaseDefine.UserStatType.forNumber(onlineStatus_);
      return result == null ? com.mogujie.tt.protobuf.IMBaseDefine.UserStatType.USER_STATUS_ONLINE : result;
    }
    /**
     * required .IM.BaseDefine.UserStatType online_status = 3;
     */
    private void setOnlineStatus(com.mogujie.tt.protobuf.IMBaseDefine.UserStatType value) {
      if (value == null) {
        throw new NullPointerException();
      }
      bitField0_ |= 0x00000004;
      onlineStatus_ = value.getNumber();
    }
    /**
     * required .IM.BaseDefine.UserStatType online_status = 3;
     */
    private void clearOnlineStatus() {
      bitField0_ = (bitField0_ & ~0x00000004);
      onlineStatus_ = 1;
    }

    public static final int CLIENT_TYPE_FIELD_NUMBER = 4;
    private int clientType_;
    /**
     * required .IM.BaseDefine.ClientType client_type = 4;
     */
    public boolean hasClientType() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * required .IM.BaseDefine.ClientType client_type = 4;
     */
    public com.mogujie.tt.protobuf.IMBaseDefine.ClientType getClientType() {
      com.mogujie.tt.protobuf.IMBaseDefine.ClientType result = com.mogujie.tt.protobuf.IMBaseDefine.ClientType.forNumber(clientType_);
      return result == null ? com.mogujie.tt.protobuf.IMBaseDefine.ClientType.CLIENT_TYPE_WINDOWS : result;
    }
    /**
     * required .IM.BaseDefine.ClientType client_type = 4;
     */
    private void setClientType(com.mogujie.tt.protobuf.IMBaseDefine.ClientType value) {
      if (value == null) {
        throw new NullPointerException();
      }
      bitField0_ |= 0x00000008;
      clientType_ = value.getNumber();
    }
    /**
     * required .IM.BaseDefine.ClientType client_type = 4;
     */
    private void clearClientType() {
      bitField0_ = (bitField0_ & ~0x00000008);
      clientType_ = 1;
    }

    public static final int CLIENT_VERSION_FIELD_NUMBER = 5;
    private java.lang.String clientVersion_;
    /**
     * optional string client_version = 5;
     */
    public boolean hasClientVersion() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional string client_version = 5;
     */
    public java.lang.String getClientVersion() {
      return clientVersion_;
    }
    /**
     * optional string client_version = 5;
     */
    public com.google.protobuf.ByteString
        getClientVersionBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(clientVersion_);
    }
    /**
     * optional string client_version = 5;
     */
    private void setClientVersion(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
      clientVersion_ = value;
    }
    /**
     * optional string client_version = 5;
     */
    private void clearClientVersion() {
      bitField0_ = (bitField0_ & ~0x00000010);
      clientVersion_ = getDefaultInstance().getClientVersion();
    }
    /**
     * optional string client_version = 5;
     */
    private void setClientVersionBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
      clientVersion_ = value.toStringUtf8();
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeString(1, getUserName());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeString(2, getPassword());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, onlineStatus_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, clientType_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeString(5, getClientVersion());
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(1, getUserName());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(2, getPassword());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, onlineStatus_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, clientType_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(5, getClientVersion());
      }
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMLoginReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMLoginReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     * Protobuf type {@code IM.Login.IMLoginReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMLoginReq, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMLoginReq)
        com.mogujie.tt.protobuf.IMLogin.IMLoginReqOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMLoginReq.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      /**
       *

       *cmd id:		0x0103
       *

       *
       * required string user_name = 1;
       */
      public boolean hasUserName() {
        return instance.hasUserName();
      }
      /**
       *

       *cmd id:		0x0103
       *

       *
       * required string user_name = 1;
       */
      public java.lang.String getUserName() {
        return instance.getUserName();
      }
      /**
       *

       *cmd id:		0x0103
       *

       *
       * required string user_name = 1;
       */
      public com.google.protobuf.ByteString
          getUserNameBytes() {
        return instance.getUserNameBytes();
      }
      /**
       *

       *cmd id:		0x0103
       *

       *
       * required string user_name = 1;
       */
      public Builder setUserName(
          java.lang.String value) {
        copyOnWrite();
        instance.setUserName(value);
        return this;
      }
      /**
       *

       *cmd id:		0x0103
       *

       *
       * required string user_name = 1;
       */
      public Builder clearUserName() {
        copyOnWrite();
        instance.clearUserName();
        return this;
      }
      /**
       *

       *cmd id:		0x0103
       *

       *
       * required string user_name = 1;
       */
      public Builder setUserNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setUserNameBytes(value);
        return this;
      }

      /**
       * required string password = 2;
       */
      public boolean hasPassword() {
        return instance.hasPassword();
      }
      /**
       * required string password = 2;
       */
      public java.lang.String getPassword() {
        return instance.getPassword();
      }
      /**
       * required string password = 2;
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        return instance.getPasswordBytes();
      }
      /**
       * required string password = 2;
       */
      public Builder setPassword(
          java.lang.String value) {
        copyOnWrite();
        instance.setPassword(value);
        return this;
      }
      /**
       * required string password = 2;
       */
      public Builder clearPassword() {
        copyOnWrite();
        instance.clearPassword();
        return this;
      }
      /**
       * required string password = 2;
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setPasswordBytes(value);
        return this;
      }

      /**
       * required .IM.BaseDefine.UserStatType online_status = 3;
       */
      public boolean hasOnlineStatus() {
        return instance.hasOnlineStatus();
      }
      /**
       * required .IM.BaseDefine.UserStatType online_status = 3;
       */
      public com.mogujie.tt.protobuf.IMBaseDefine.UserStatType getOnlineStatus() {
        return instance.getOnlineStatus();
      }
      /**
       * required .IM.BaseDefine.UserStatType online_status = 3;
       */
      public Builder setOnlineStatus(com.mogujie.tt.protobuf.IMBaseDefine.UserStatType value) {
        copyOnWrite();
        instance.setOnlineStatus(value);
        return this;
      }
      /**
       * required .IM.BaseDefine.UserStatType online_status = 3;
       */
      public Builder clearOnlineStatus() {
        copyOnWrite();
        instance.clearOnlineStatus();
        return this;
      }

      /**
       * required .IM.BaseDefine.ClientType client_type = 4;
       */
      public boolean hasClientType() {
        return instance.hasClientType();
      }
      /**
       * required .IM.BaseDefine.ClientType client_type = 4;
       */
      public com.mogujie.tt.protobuf.IMBaseDefine.ClientType getClientType() {
        return instance.getClientType();
      }
      /**
       * required .IM.BaseDefine.ClientType client_type = 4;
       */
      public Builder setClientType(com.mogujie.tt.protobuf.IMBaseDefine.ClientType value) {
        copyOnWrite();
        instance.setClientType(value);
        return this;
      }
      /**
       * required .IM.BaseDefine.ClientType client_type = 4;
       */
      public Builder clearClientType() {
        copyOnWrite();
        instance.clearClientType();
        return this;
      }

      /**
       * optional string client_version = 5;
       */
      public boolean hasClientVersion() {
        return instance.hasClientVersion();
      }
      /**
       * optional string client_version = 5;
       */
      public java.lang.String getClientVersion() {
        return instance.getClientVersion();
      }
      /**
       * optional string client_version = 5;
       */
      public com.google.protobuf.ByteString
          getClientVersionBytes() {
        return instance.getClientVersionBytes();
      }
      /**
       * optional string client_version = 5;
       */
      public Builder setClientVersion(
          java.lang.String value) {
        copyOnWrite();
        instance.setClientVersion(value);
        return this;
      }
      /**
       * optional string client_version = 5;
       */
      public Builder clearClientVersion() {
        copyOnWrite();
        instance.clearClientVersion();
        return this;
      }
      /**
       * optional string client_version = 5;
       */
      public Builder setClientVersionBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setClientVersionBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMLoginReq)
    }
    private byte memoizedIsInitialized = -1;
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMLoginReq();
        }
        case IS_INITIALIZED: {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return DEFAULT_INSTANCE;
          if (isInitialized == 0) return null;

          boolean shouldMemoize = ((Boolean) arg0).booleanValue();
          if (!hasUserName()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (!hasPassword()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (!hasOnlineStatus()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (!hasClientType()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (shouldMemoize) memoizedIsInitialized = 1;
          return DEFAULT_INSTANCE;

        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMLoginReq other = (com.mogujie.tt.protobuf.IMLogin.IMLoginReq) arg1;
          userName_ = visitor.visitString(
              hasUserName(), userName_,
              other.hasUserName(), other.userName_);
          password_ = visitor.visitString(
              hasPassword(), password_,
              other.hasPassword(), other.password_);
          onlineStatus_ = visitor.visitInt(hasOnlineStatus(), onlineStatus_,
              other.hasOnlineStatus(), other.onlineStatus_);
          clientType_ = visitor.visitInt(hasClientType(), clientType_,
              other.hasClientType(), other.clientType_);
          clientVersion_ = visitor.visitString(
              hasClientVersion(), clientVersion_,
              other.hasClientVersion(), other.clientVersion_);
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
            bitField0_ |= other.bitField0_;
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
                case 10: {
                  String s = input.readString();
                  bitField0_ |= 0x00000001;
                  userName_ = s;
                  break;
                }
                case 18: {
                  String s = input.readString();
                  bitField0_ |= 0x00000002;
                  password_ = s;
                  break;
                }
                case 24: {
                  int rawValue = input.readEnum();
                  com.mogujie.tt.protobuf.IMBaseDefine.UserStatType value = com.mogujie.tt.protobuf.IMBaseDefine.UserStatType.forNumber(rawValue);
                  if (value == null) {
                    super.mergeVarintField(3, rawValue);
                  } else {
                    bitField0_ |= 0x00000004;
                    onlineStatus_ = rawValue;
                  }
                  break;
                }
                case 32: {
                  int rawValue = input.readEnum();
                  com.mogujie.tt.protobuf.IMBaseDefine.ClientType value = com.mogujie.tt.protobuf.IMBaseDefine.ClientType.forNumber(rawValue);
                  if (value == null) {
                    super.mergeVarintField(4, rawValue);
                  } else {
                    bitField0_ |= 0x00000008;
                    clientType_ = rawValue;
                  }
                  break;
                }
                case 42: {
                  String s = input.readString();
                  bitField0_ |= 0x00000010;
                  clientVersion_ = s;
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMLoginReq.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMLoginReq)
    private static final com.mogujie.tt.protobuf.IMLogin.IMLoginReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMLoginReq();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMLoginReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMLoginReq> PARSER;

    public static com.google.protobuf.Parser<IMLoginReq> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface IMLoginResOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMLoginRes)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     *

     *cmd id:		0x0104
     *

     *
     * required uint32 server_time = 1;
     */
    boolean hasServerTime();
    /**
     *

     *cmd id:		0x0104
     *

     *
     * required uint32 server_time = 1;
     */
    int getServerTime();

    /**
     * required .IM.BaseDefine.ResultType result_code = 2;
     */
    boolean hasResultCode();
    /**
     * required .IM.BaseDefine.ResultType result_code = 2;
     */
    com.mogujie.tt.protobuf.IMBaseDefine.ResultType getResultCode();

    /**
     * optional string result_string = 3;
     */
    boolean hasResultString();
    /**
     * optional string result_string = 3;
     */
    java.lang.String getResultString();
    /**
     * optional string result_string = 3;
     */
    com.google.protobuf.ByteString
        getResultStringBytes();

    /**
     * optional .IM.BaseDefine.UserStatType online_status = 4;
     */
    boolean hasOnlineStatus();
    /**
     * optional .IM.BaseDefine.UserStatType online_status = 4;
     */
    com.mogujie.tt.protobuf.IMBaseDefine.UserStatType getOnlineStatus();

    /**
     * optional .IM.BaseDefine.UserInfo user_info = 5;
     */
    boolean hasUserInfo();
    /**
     * optional .IM.BaseDefine.UserInfo user_info = 5;
     */
    com.mogujie.tt.protobuf.IMBaseDefine.UserInfo getUserInfo();
  }
  /**
   * Protobuf type {@code IM.Login.IMLoginRes}
   */
  public  static final class IMLoginRes extends
      com.google.protobuf.GeneratedMessageLite<
          IMLoginRes, IMLoginRes.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMLoginRes)
      IMLoginResOrBuilder {
    private IMLoginRes() {
      resultString_ = "";
      onlineStatus_ = 1;
    }
    private int bitField0_;
    public static final int SERVER_TIME_FIELD_NUMBER = 1;
    private int serverTime_;
    /**
     *

     *cmd id:		0x0104
     *

     *
     * required uint32 server_time = 1;
     */
    public boolean hasServerTime() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *

     *cmd id:		0x0104
     *

     *
     * required uint32 server_time = 1;
     */
    public int getServerTime() {
      return serverTime_;
    }
    /**
     *

     *cmd id:		0x0104
     *

     *
     * required uint32 server_time = 1;
     */
    private void setServerTime(int value) {
      bitField0_ |= 0x00000001;
      serverTime_ = value;
    }
    /**
     *

     *cmd id:		0x0104
     *

     *
     * required uint32 server_time = 1;
     */
    private void clearServerTime() {
      bitField0_ = (bitField0_ & ~0x00000001);
      serverTime_ = 0;
    }

    public static final int RESULT_CODE_FIELD_NUMBER = 2;
    private int resultCode_;
    /**
     * required .IM.BaseDefine.ResultType result_code = 2;
     */
    public boolean hasResultCode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required .IM.BaseDefine.ResultType result_code = 2;
     */
    public com.mogujie.tt.protobuf.IMBaseDefine.ResultType getResultCode() {
      com.mogujie.tt.protobuf.IMBaseDefine.ResultType result = com.mogujie.tt.protobuf.IMBaseDefine.ResultType.forNumber(resultCode_);
      return result == null ? com.mogujie.tt.protobuf.IMBaseDefine.ResultType.REFUSE_REASON_NONE : result;
    }
    /**
     * required .IM.BaseDefine.ResultType result_code = 2;
     */
    private void setResultCode(com.mogujie.tt.protobuf.IMBaseDefine.ResultType value) {
      if (value == null) {
        throw new NullPointerException();
      }
      bitField0_ |= 0x00000002;
      resultCode_ = value.getNumber();
    }
    /**
     * required .IM.BaseDefine.ResultType result_code = 2;
     */
    private void clearResultCode() {
      bitField0_ = (bitField0_ & ~0x00000002);
      resultCode_ = 0;
    }

    public static final int RESULT_STRING_FIELD_NUMBER = 3;
    private java.lang.String resultString_;
    /**
     * optional string result_string = 3;
     */
    public boolean hasResultString() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string result_string = 3;
     */
    public java.lang.String getResultString() {
      return resultString_;
    }
    /**
     * optional string result_string = 3;
     */
    public com.google.protobuf.ByteString
        getResultStringBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(resultString_);
    }
    /**
     * optional string result_string = 3;
     */
    private void setResultString(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
      resultString_ = value;
    }
    /**
     * optional string result_string = 3;
     */
    private void clearResultString() {
      bitField0_ = (bitField0_ & ~0x00000004);
      resultString_ = getDefaultInstance().getResultString();
    }
    /**
     * optional string result_string = 3;
     */
    private void setResultStringBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
      resultString_ = value.toStringUtf8();
    }

    public static final int ONLINE_STATUS_FIELD_NUMBER = 4;
    private int onlineStatus_;
    /**
     * optional .IM.BaseDefine.UserStatType online_status = 4;
     */
    public boolean hasOnlineStatus() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .IM.BaseDefine.UserStatType online_status = 4;
     */
    public com.mogujie.tt.protobuf.IMBaseDefine.UserStatType getOnlineStatus() {
      com.mogujie.tt.protobuf.IMBaseDefine.UserStatType result = com.mogujie.tt.protobuf.IMBaseDefine.UserStatType.forNumber(onlineStatus_);
      return result == null ? com.mogujie.tt.protobuf.IMBaseDefine.UserStatType.USER_STATUS_ONLINE : result;
    }
    /**
     * optional .IM.BaseDefine.UserStatType online_status = 4;
     */
    private void setOnlineStatus(com.mogujie.tt.protobuf.IMBaseDefine.UserStatType value) {
      if (value == null) {
        throw new NullPointerException();
      }
      bitField0_ |= 0x00000008;
      onlineStatus_ = value.getNumber();
    }
    /**
     * optional .IM.BaseDefine.UserStatType online_status = 4;
     */
    private void clearOnlineStatus() {
      bitField0_ = (bitField0_ & ~0x00000008);
      onlineStatus_ = 1;
    }

    public static final int USER_INFO_FIELD_NUMBER = 5;
    private com.mogujie.tt.protobuf.IMBaseDefine.UserInfo userInfo_;
    /**
     * optional .IM.BaseDefine.UserInfo user_info = 5;
     */
    public boolean hasUserInfo() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional .IM.BaseDefine.UserInfo user_info = 5;
     */
    public com.mogujie.tt.protobuf.IMBaseDefine.UserInfo getUserInfo() {
      return userInfo_ == null ? com.mogujie.tt.protobuf.IMBaseDefine.UserInfo.getDefaultInstance() : userInfo_;
    }
    /**
     * optional .IM.BaseDefine.UserInfo user_info = 5;
     */
    private void setUserInfo(com.mogujie.tt.protobuf.IMBaseDefine.UserInfo value) {
      if (value == null) {
        throw new NullPointerException();
      }
      userInfo_ = value;
      bitField0_ |= 0x00000010;
      }
    /**
     * optional .IM.BaseDefine.UserInfo user_info = 5;
     */
    private void setUserInfo(
        com.mogujie.tt.protobuf.IMBaseDefine.UserInfo.Builder builderForValue) {
      userInfo_ = builderForValue.build();
      bitField0_ |= 0x00000010;
    }
    /**
     * optional .IM.BaseDefine.UserInfo user_info = 5;
     */
    private void mergeUserInfo(com.mogujie.tt.protobuf.IMBaseDefine.UserInfo value) {
      if (userInfo_ != null &&
          userInfo_ != com.mogujie.tt.protobuf.IMBaseDefine.UserInfo.getDefaultInstance()) {
        userInfo_ =
          com.mogujie.tt.protobuf.IMBaseDefine.UserInfo.newBuilder(userInfo_).mergeFrom(value).buildPartial();
      } else {
        userInfo_ = value;
      }
      bitField0_ |= 0x00000010;
    }
    /**
     * optional .IM.BaseDefine.UserInfo user_info = 5;
     */
    private void clearUserInfo() {  userInfo_ = null;
      bitField0_ = (bitField0_ & ~0x00000010);
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, serverTime_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, resultCode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeString(3, getResultString());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, onlineStatus_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, getUserInfo());
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, serverTime_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, resultCode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(3, getResultString());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, onlineStatus_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getUserInfo());
      }
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMLoginRes parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginRes parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginRes parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginRes parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginRes parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginRes parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginRes parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginRes parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginRes parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLoginRes parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMLoginRes prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     * Protobuf type {@code IM.Login.IMLoginRes}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMLoginRes, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMLoginRes)
        com.mogujie.tt.protobuf.IMLogin.IMLoginResOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMLoginRes.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      /**
       *

       *cmd id:		0x0104
       *

       *
       * required uint32 server_time = 1;
       */
      public boolean hasServerTime() {
        return instance.hasServerTime();
      }
      /**
       *

       *cmd id:		0x0104
       *

       *
       * required uint32 server_time = 1;
       */
      public int getServerTime() {
        return instance.getServerTime();
      }
      /**
       *

       *cmd id:		0x0104
       *

       *
       * required uint32 server_time = 1;
       */
      public Builder setServerTime(int value) {
        copyOnWrite();
        instance.setServerTime(value);
        return this;
      }
      /**
       *

       *cmd id:		0x0104
       *

       *
       * required uint32 server_time = 1;
       */
      public Builder clearServerTime() {
        copyOnWrite();
        instance.clearServerTime();
        return this;
      }

      /**
       * required .IM.BaseDefine.ResultType result_code = 2;
       */
      public boolean hasResultCode() {
        return instance.hasResultCode();
      }
      /**
       * required .IM.BaseDefine.ResultType result_code = 2;
       */
      public com.mogujie.tt.protobuf.IMBaseDefine.ResultType getResultCode() {
        return instance.getResultCode();
      }
      /**
       * required .IM.BaseDefine.ResultType result_code = 2;
       */
      public Builder setResultCode(com.mogujie.tt.protobuf.IMBaseDefine.ResultType value) {
        copyOnWrite();
        instance.setResultCode(value);
        return this;
      }
      /**
       * required .IM.BaseDefine.ResultType result_code = 2;
       */
      public Builder clearResultCode() {
        copyOnWrite();
        instance.clearResultCode();
        return this;
      }

      /**
       * optional string result_string = 3;
       */
      public boolean hasResultString() {
        return instance.hasResultString();
      }
      /**
       * optional string result_string = 3;
       */
      public java.lang.String getResultString() {
        return instance.getResultString();
      }
      /**
       * optional string result_string = 3;
       */
      public com.google.protobuf.ByteString
          getResultStringBytes() {
        return instance.getResultStringBytes();
      }
      /**
       * optional string result_string = 3;
       */
      public Builder setResultString(
          java.lang.String value) {
        copyOnWrite();
        instance.setResultString(value);
        return this;
      }
      /**
       * optional string result_string = 3;
       */
      public Builder clearResultString() {
        copyOnWrite();
        instance.clearResultString();
        return this;
      }
      /**
       * optional string result_string = 3;
       */
      public Builder setResultStringBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setResultStringBytes(value);
        return this;
      }

      /**
       * optional .IM.BaseDefine.UserStatType online_status = 4;
       */
      public boolean hasOnlineStatus() {
        return instance.hasOnlineStatus();
      }
      /**
       * optional .IM.BaseDefine.UserStatType online_status = 4;
       */
      public com.mogujie.tt.protobuf.IMBaseDefine.UserStatType getOnlineStatus() {
        return instance.getOnlineStatus();
      }
      /**
       * optional .IM.BaseDefine.UserStatType online_status = 4;
       */
      public Builder setOnlineStatus(com.mogujie.tt.protobuf.IMBaseDefine.UserStatType value) {
        copyOnWrite();
        instance.setOnlineStatus(value);
        return this;
      }
      /**
       * optional .IM.BaseDefine.UserStatType online_status = 4;
       */
      public Builder clearOnlineStatus() {
        copyOnWrite();
        instance.clearOnlineStatus();
        return this;
      }

      /**
       * optional .IM.BaseDefine.UserInfo user_info = 5;
       */
      public boolean hasUserInfo() {
        return instance.hasUserInfo();
      }
      /**
       * optional .IM.BaseDefine.UserInfo user_info = 5;
       */
      public com.mogujie.tt.protobuf.IMBaseDefine.UserInfo getUserInfo() {
        return instance.getUserInfo();
      }
      /**
       * optional .IM.BaseDefine.UserInfo user_info = 5;
       */
      public Builder setUserInfo(com.mogujie.tt.protobuf.IMBaseDefine.UserInfo value) {
        copyOnWrite();
        instance.setUserInfo(value);
        return this;
        }
      /**
       * optional .IM.BaseDefine.UserInfo user_info = 5;
       */
      public Builder setUserInfo(
          com.mogujie.tt.protobuf.IMBaseDefine.UserInfo.Builder builderForValue) {
        copyOnWrite();
        instance.setUserInfo(builderForValue);
        return this;
      }
      /**
       * optional .IM.BaseDefine.UserInfo user_info = 5;
       */
      public Builder mergeUserInfo(com.mogujie.tt.protobuf.IMBaseDefine.UserInfo value) {
        copyOnWrite();
        instance.mergeUserInfo(value);
        return this;
      }
      /**
       * optional .IM.BaseDefine.UserInfo user_info = 5;
       */
      public Builder clearUserInfo() {  copyOnWrite();
        instance.clearUserInfo();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMLoginRes)
    }
    private byte memoizedIsInitialized = -1;
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMLoginRes();
        }
        case IS_INITIALIZED: {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return DEFAULT_INSTANCE;
          if (isInitialized == 0) return null;

          boolean shouldMemoize = ((Boolean) arg0).booleanValue();
          if (!hasServerTime()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (!hasResultCode()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (hasUserInfo()) {
            if (!getUserInfo().isInitialized()) {
              if (shouldMemoize) {
                memoizedIsInitialized = 0;
              }
              return null;
            }
          }
          if (shouldMemoize) memoizedIsInitialized = 1;
          return DEFAULT_INSTANCE;

        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMLoginRes other = (com.mogujie.tt.protobuf.IMLogin.IMLoginRes) arg1;
          serverTime_ = visitor.visitInt(
              hasServerTime(), serverTime_,
              other.hasServerTime(), other.serverTime_);
          resultCode_ = visitor.visitInt(hasResultCode(), resultCode_,
              other.hasResultCode(), other.resultCode_);
          resultString_ = visitor.visitString(
              hasResultString(), resultString_,
              other.hasResultString(), other.resultString_);
          onlineStatus_ = visitor.visitInt(hasOnlineStatus(), onlineStatus_,
              other.hasOnlineStatus(), other.onlineStatus_);
          userInfo_ = visitor.visitMessage(userInfo_, other.userInfo_);
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
            bitField0_ |= other.bitField0_;
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  serverTime_ = input.readUInt32();
                  break;
                }
                case 16: {
                  int rawValue = input.readEnum();
                  com.mogujie.tt.protobuf.IMBaseDefine.ResultType value = com.mogujie.tt.protobuf.IMBaseDefine.ResultType.forNumber(rawValue);
                  if (value == null) {
                    super.mergeVarintField(2, rawValue);
                  } else {
                    bitField0_ |= 0x00000002;
                    resultCode_ = rawValue;
                  }
                  break;
                }
                case 26: {
                  String s = input.readString();
                  bitField0_ |= 0x00000004;
                  resultString_ = s;
                  break;
                }
                case 32: {
                  int rawValue = input.readEnum();
                  com.mogujie.tt.protobuf.IMBaseDefine.UserStatType value = com.mogujie.tt.protobuf.IMBaseDefine.UserStatType.forNumber(rawValue);
                  if (value == null) {
                    super.mergeVarintField(4, rawValue);
                  } else {
                    bitField0_ |= 0x00000008;
                    onlineStatus_ = rawValue;
                  }
                  break;
                }
                case 42: {
                  com.mogujie.tt.protobuf.IMBaseDefine.UserInfo.Builder subBuilder = null;
                  if (((bitField0_ & 0x00000010) == 0x00000010)) {
                    subBuilder = userInfo_.toBuilder();
                  }
                  userInfo_ = input.readMessage(com.mogujie.tt.protobuf.IMBaseDefine.UserInfo.parser(), extensionRegistry);
                  if (subBuilder != null) {
                    subBuilder.mergeFrom(userInfo_);
                    userInfo_ = subBuilder.buildPartial();
                  }
                  bitField0_ |= 0x00000010;
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMLoginRes.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMLoginRes)
    private static final com.mogujie.tt.protobuf.IMLogin.IMLoginRes DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMLoginRes();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMLoginRes getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMLoginRes> PARSER;

    public static com.google.protobuf.Parser<IMLoginRes> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface IMLogoutReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMLogoutReq)
      com.google.protobuf.MessageLiteOrBuilder {
  }
  /**
   *

   *cmd id:		0x0105
   *

   *
   * Protobuf type {@code IM.Login.IMLogoutReq}
   */
  public  static final class IMLogoutReq extends
      com.google.protobuf.GeneratedMessageLite<
          IMLogoutReq, IMLogoutReq.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMLogoutReq)
      IMLogoutReqOrBuilder {
    private IMLogoutReq() {
    }
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMLogoutReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     *

     *cmd id:		0x0105
     *

     *
     * Protobuf type {@code IM.Login.IMLogoutReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMLogoutReq, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMLogoutReq)
        com.mogujie.tt.protobuf.IMLogin.IMLogoutReqOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMLogoutReq.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMLogoutReq)
    }
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMLogoutReq();
        }
        case IS_INITIALIZED: {
          return DEFAULT_INSTANCE;
        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMLogoutReq other = (com.mogujie.tt.protobuf.IMLogin.IMLogoutReq) arg1;
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMLogoutReq.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMLogoutReq)
    private static final com.mogujie.tt.protobuf.IMLogin.IMLogoutReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMLogoutReq();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMLogoutReq> PARSER;

    public static com.google.protobuf.Parser<IMLogoutReq> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface IMLogoutRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMLogoutRsp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     *

     *cmd id:		0x0106
     *

     *
     * required uint32 result_code = 1;
     */
    boolean hasResultCode();
    /**
     *

     *cmd id:		0x0106
     *

     *
     * required uint32 result_code = 1;
     */
    int getResultCode();
  }
  /**
   * Protobuf type {@code IM.Login.IMLogoutRsp}
   */
  public  static final class IMLogoutRsp extends
      com.google.protobuf.GeneratedMessageLite<
          IMLogoutRsp, IMLogoutRsp.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMLogoutRsp)
      IMLogoutRspOrBuilder {
    private IMLogoutRsp() {
    }
    private int bitField0_;
    public static final int RESULT_CODE_FIELD_NUMBER = 1;
    private int resultCode_;
    /**
     *

     *cmd id:		0x0106
     *

     *
     * required uint32 result_code = 1;
     */
    public boolean hasResultCode() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *

     *cmd id:		0x0106
     *

     *
     * required uint32 result_code = 1;
     */
    public int getResultCode() {
      return resultCode_;
    }
    /**
     *

     *cmd id:		0x0106
     *

     *
     * required uint32 result_code = 1;
     */
    private void setResultCode(int value) {
      bitField0_ |= 0x00000001;
      resultCode_ = value;
    }
    /**
     *

     *cmd id:		0x0106
     *

     *
     * required uint32 result_code = 1;
     */
    private void clearResultCode() {
      bitField0_ = (bitField0_ & ~0x00000001);
      resultCode_ = 0;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, resultCode_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, resultCode_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     * Protobuf type {@code IM.Login.IMLogoutRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMLogoutRsp)
        com.mogujie.tt.protobuf.IMLogin.IMLogoutRspOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      /**
       *

       *cmd id:		0x0106
       *

       *
       * required uint32 result_code = 1;
       */
      public boolean hasResultCode() {
        return instance.hasResultCode();
      }
      /**
       *

       *cmd id:		0x0106
       *

       *
       * required uint32 result_code = 1;
       */
      public int getResultCode() {
        return instance.getResultCode();
      }
      /**
       *

       *cmd id:		0x0106
       *

       *
       * required uint32 result_code = 1;
       */
      public Builder setResultCode(int value) {
        copyOnWrite();
        instance.setResultCode(value);
        return this;
      }
      /**
       *

       *cmd id:		0x0106
       *

       *
       * required uint32 result_code = 1;
       */
      public Builder clearResultCode() {
        copyOnWrite();
        instance.clearResultCode();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMLogoutRsp)
    }
    private byte memoizedIsInitialized = -1;
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp();
        }
        case IS_INITIALIZED: {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return DEFAULT_INSTANCE;
          if (isInitialized == 0) return null;

          boolean shouldMemoize = ((Boolean) arg0).booleanValue();
          if (!hasResultCode()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (shouldMemoize) memoizedIsInitialized = 1;
          return DEFAULT_INSTANCE;

        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp other = (com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp) arg1;
          resultCode_ = visitor.visitInt(
              hasResultCode(), resultCode_,
              other.hasResultCode(), other.resultCode_);
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
            bitField0_ |= other.bitField0_;
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  resultCode_ = input.readUInt32();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMLogoutRsp)
    private static final com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMLogoutRsp();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMLogoutRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMLogoutRsp> PARSER;

    public static com.google.protobuf.Parser<IMLogoutRsp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface IMKickUserOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMKickUser)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     *

     *cmd id:		0x0107
     *

     *
     * required uint64 user_id = 1;
     */
    boolean hasUserId();
    /**
     *

     *cmd id:		0x0107
     *

     *
     * required uint64 user_id = 1;
     */
    long getUserId();

    /**
     * required .IM.BaseDefine.KickReasonType kick_reason = 2;
     */
    boolean hasKickReason();
    /**
     * required .IM.BaseDefine.KickReasonType kick_reason = 2;
     */
    com.mogujie.tt.protobuf.IMBaseDefine.KickReasonType getKickReason();
  }
  /**
   * Protobuf type {@code IM.Login.IMKickUser}
   */
  public  static final class IMKickUser extends
      com.google.protobuf.GeneratedMessageLite<
          IMKickUser, IMKickUser.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMKickUser)
      IMKickUserOrBuilder {
    private IMKickUser() {
      kickReason_ = 1;
    }
    private int bitField0_;
    public static final int USER_ID_FIELD_NUMBER = 1;
    private long userId_;
    /**
     *

     *cmd id:		0x0107
     *

     *
     * required uint64 user_id = 1;
     */
    public boolean hasUserId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *

     *cmd id:		0x0107
     *

     *
     * required uint64 user_id = 1;
     */
    public long getUserId() {
      return userId_;
    }
    /**
     *

     *cmd id:		0x0107
     *

     *
     * required uint64 user_id = 1;
     */
    private void setUserId(long value) {
      bitField0_ |= 0x00000001;
      userId_ = value;
    }
    /**
     *

     *cmd id:		0x0107
     *

     *
     * required uint64 user_id = 1;
     */
    private void clearUserId() {
      bitField0_ = (bitField0_ & ~0x00000001);
      userId_ = 0L;
    }

    public static final int KICK_REASON_FIELD_NUMBER = 2;
    private int kickReason_;
    /**
     * required .IM.BaseDefine.KickReasonType kick_reason = 2;
     */
    public boolean hasKickReason() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required .IM.BaseDefine.KickReasonType kick_reason = 2;
     */
    public com.mogujie.tt.protobuf.IMBaseDefine.KickReasonType getKickReason() {
      com.mogujie.tt.protobuf.IMBaseDefine.KickReasonType result = com.mogujie.tt.protobuf.IMBaseDefine.KickReasonType.forNumber(kickReason_);
      return result == null ? com.mogujie.tt.protobuf.IMBaseDefine.KickReasonType.KICK_REASON_DUPLICATE_USER : result;
    }
    /**
     * required .IM.BaseDefine.KickReasonType kick_reason = 2;
     */
    private void setKickReason(com.mogujie.tt.protobuf.IMBaseDefine.KickReasonType value) {
      if (value == null) {
        throw new NullPointerException();
      }
      bitField0_ |= 0x00000002;
      kickReason_ = value.getNumber();
    }
    /**
     * required .IM.BaseDefine.KickReasonType kick_reason = 2;
     */
    private void clearKickReason() {
      bitField0_ = (bitField0_ & ~0x00000002);
      kickReason_ = 1;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, kickReason_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, kickReason_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMKickUser parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickUser parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickUser parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickUser parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickUser parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickUser parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickUser parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickUser parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickUser parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickUser parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMKickUser prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     * Protobuf type {@code IM.Login.IMKickUser}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMKickUser, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMKickUser)
        com.mogujie.tt.protobuf.IMLogin.IMKickUserOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMKickUser.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      /**
       *

       *cmd id:		0x0107
       *

       *
       * required uint64 user_id = 1;
       */
      public boolean hasUserId() {
        return instance.hasUserId();
      }
      /**
       *

       *cmd id:		0x0107
       *

       *
       * required uint64 user_id = 1;
       */
      public long getUserId() {
        return instance.getUserId();
      }
      /**
       *

       *cmd id:		0x0107
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder setUserId(long value) {
        copyOnWrite();
        instance.setUserId(value);
        return this;
      }
      /**
       *

       *cmd id:		0x0107
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder clearUserId() {
        copyOnWrite();
        instance.clearUserId();
        return this;
      }

      /**
       * required .IM.BaseDefine.KickReasonType kick_reason = 2;
       */
      public boolean hasKickReason() {
        return instance.hasKickReason();
      }
      /**
       * required .IM.BaseDefine.KickReasonType kick_reason = 2;
       */
      public com.mogujie.tt.protobuf.IMBaseDefine.KickReasonType getKickReason() {
        return instance.getKickReason();
      }
      /**
       * required .IM.BaseDefine.KickReasonType kick_reason = 2;
       */
      public Builder setKickReason(com.mogujie.tt.protobuf.IMBaseDefine.KickReasonType value) {
        copyOnWrite();
        instance.setKickReason(value);
        return this;
      }
      /**
       * required .IM.BaseDefine.KickReasonType kick_reason = 2;
       */
      public Builder clearKickReason() {
        copyOnWrite();
        instance.clearKickReason();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMKickUser)
    }
    private byte memoizedIsInitialized = -1;
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMKickUser();
        }
        case IS_INITIALIZED: {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return DEFAULT_INSTANCE;
          if (isInitialized == 0) return null;

          boolean shouldMemoize = ((Boolean) arg0).booleanValue();
          if (!hasUserId()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (!hasKickReason()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (shouldMemoize) memoizedIsInitialized = 1;
          return DEFAULT_INSTANCE;

        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMKickUser other = (com.mogujie.tt.protobuf.IMLogin.IMKickUser) arg1;
          userId_ = visitor.visitLong(
              hasUserId(), userId_,
              other.hasUserId(), other.userId_);
          kickReason_ = visitor.visitInt(hasKickReason(), kickReason_,
              other.hasKickReason(), other.kickReason_);
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
            bitField0_ |= other.bitField0_;
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  userId_ = input.readUInt64();
                  break;
                }
                case 16: {
                  int rawValue = input.readEnum();
                  com.mogujie.tt.protobuf.IMBaseDefine.KickReasonType value = com.mogujie.tt.protobuf.IMBaseDefine.KickReasonType.forNumber(rawValue);
                  if (value == null) {
                    super.mergeVarintField(2, rawValue);
                  } else {
                    bitField0_ |= 0x00000002;
                    kickReason_ = rawValue;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMKickUser.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMKickUser)
    private static final com.mogujie.tt.protobuf.IMLogin.IMKickUser DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMKickUser();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMKickUser getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMKickUser> PARSER;

    public static com.google.protobuf.Parser<IMKickUser> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface IMDeviceTokenReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMDeviceTokenReq)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     *

     *cmd id:		0x0108
     *

     *
     * required uint64 user_id = 1;
     */
    boolean hasUserId();
    /**
     *

     *cmd id:		0x0108
     *

     *
     * required uint64 user_id = 1;
     */
    long getUserId();

    /**
     * required string device_token = 2;
     */
    boolean hasDeviceToken();
    /**
     * required string device_token = 2;
     */
    java.lang.String getDeviceToken();
    /**
     * required string device_token = 2;
     */
    com.google.protobuf.ByteString
        getDeviceTokenBytes();

    /**
     * optional .IM.BaseDefine.ClientType client_type = 3;
     */
    boolean hasClientType();
    /**
     * optional .IM.BaseDefine.ClientType client_type = 3;
     */
    com.mogujie.tt.protobuf.IMBaseDefine.ClientType getClientType();

    /**
     * optional bytes attach_data = 20;
     */
    boolean hasAttachData();
    /**
     * optional bytes attach_data = 20;
     */
    com.google.protobuf.ByteString getAttachData();
  }
  /**
   * Protobuf type {@code IM.Login.IMDeviceTokenReq}
   */
  public  static final class IMDeviceTokenReq extends
      com.google.protobuf.GeneratedMessageLite<
          IMDeviceTokenReq, IMDeviceTokenReq.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMDeviceTokenReq)
      IMDeviceTokenReqOrBuilder {
    private IMDeviceTokenReq() {
      deviceToken_ = "";
      clientType_ = 1;
      attachData_ = com.google.protobuf.ByteString.EMPTY;
    }
    private int bitField0_;
    public static final int USER_ID_FIELD_NUMBER = 1;
    private long userId_;
    /**
     *

     *cmd id:		0x0108
     *

     *
     * required uint64 user_id = 1;
     */
    public boolean hasUserId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *

     *cmd id:		0x0108
     *

     *
     * required uint64 user_id = 1;
     */
    public long getUserId() {
      return userId_;
    }
    /**
     *

     *cmd id:		0x0108
     *

     *
     * required uint64 user_id = 1;
     */
    private void setUserId(long value) {
      bitField0_ |= 0x00000001;
      userId_ = value;
    }
    /**
     *

     *cmd id:		0x0108
     *

     *
     * required uint64 user_id = 1;
     */
    private void clearUserId() {
      bitField0_ = (bitField0_ & ~0x00000001);
      userId_ = 0L;
    }

    public static final int DEVICE_TOKEN_FIELD_NUMBER = 2;
    private java.lang.String deviceToken_;
    /**
     * required string device_token = 2;
     */
    public boolean hasDeviceToken() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required string device_token = 2;
     */
    public java.lang.String getDeviceToken() {
      return deviceToken_;
    }
    /**
     * required string device_token = 2;
     */
    public com.google.protobuf.ByteString
        getDeviceTokenBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(deviceToken_);
    }
    /**
     * required string device_token = 2;
     */
    private void setDeviceToken(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
      deviceToken_ = value;
    }
    /**
     * required string device_token = 2;
     */
    private void clearDeviceToken() {
      bitField0_ = (bitField0_ & ~0x00000002);
      deviceToken_ = getDefaultInstance().getDeviceToken();
    }
    /**
     * required string device_token = 2;
     */
    private void setDeviceTokenBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
      deviceToken_ = value.toStringUtf8();
    }

    public static final int CLIENT_TYPE_FIELD_NUMBER = 3;
    private int clientType_;
    /**
     * optional .IM.BaseDefine.ClientType client_type = 3;
     */
    public boolean hasClientType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .IM.BaseDefine.ClientType client_type = 3;
     */
    public com.mogujie.tt.protobuf.IMBaseDefine.ClientType getClientType() {
      com.mogujie.tt.protobuf.IMBaseDefine.ClientType result = com.mogujie.tt.protobuf.IMBaseDefine.ClientType.forNumber(clientType_);
      return result == null ? com.mogujie.tt.protobuf.IMBaseDefine.ClientType.CLIENT_TYPE_WINDOWS : result;
    }
    /**
     * optional .IM.BaseDefine.ClientType client_type = 3;
     */
    private void setClientType(com.mogujie.tt.protobuf.IMBaseDefine.ClientType value) {
      if (value == null) {
        throw new NullPointerException();
      }
      bitField0_ |= 0x00000004;
      clientType_ = value.getNumber();
    }
    /**
     * optional .IM.BaseDefine.ClientType client_type = 3;
     */
    private void clearClientType() {
      bitField0_ = (bitField0_ & ~0x00000004);
      clientType_ = 1;
    }

    public static final int ATTACH_DATA_FIELD_NUMBER = 20;
    private com.google.protobuf.ByteString attachData_;
    /**
     * optional bytes attach_data = 20;
     */
    public boolean hasAttachData() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bytes attach_data = 20;
     */
    public com.google.protobuf.ByteString getAttachData() {
      return attachData_;
    }
    /**
     * optional bytes attach_data = 20;
     */
    private void setAttachData(com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
      attachData_ = value;
    }
    /**
     * optional bytes attach_data = 20;
     */
    private void clearAttachData() {
      bitField0_ = (bitField0_ & ~0x00000008);
      attachData_ = getDefaultInstance().getAttachData();
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeString(2, getDeviceToken());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, clientType_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(20, attachData_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(2, getDeviceToken());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, clientType_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(20, attachData_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     * Protobuf type {@code IM.Login.IMDeviceTokenReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMDeviceTokenReq)
        com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReqOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      /**
       *

       *cmd id:		0x0108
       *

       *
       * required uint64 user_id = 1;
       */
      public boolean hasUserId() {
        return instance.hasUserId();
      }
      /**
       *

       *cmd id:		0x0108
       *

       *
       * required uint64 user_id = 1;
       */
      public long getUserId() {
        return instance.getUserId();
      }
      /**
       *

       *cmd id:		0x0108
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder setUserId(long value) {
        copyOnWrite();
        instance.setUserId(value);
        return this;
      }
      /**
       *

       *cmd id:		0x0108
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder clearUserId() {
        copyOnWrite();
        instance.clearUserId();
        return this;
      }

      /**
       * required string device_token = 2;
       */
      public boolean hasDeviceToken() {
        return instance.hasDeviceToken();
      }
      /**
       * required string device_token = 2;
       */
      public java.lang.String getDeviceToken() {
        return instance.getDeviceToken();
      }
      /**
       * required string device_token = 2;
       */
      public com.google.protobuf.ByteString
          getDeviceTokenBytes() {
        return instance.getDeviceTokenBytes();
      }
      /**
       * required string device_token = 2;
       */
      public Builder setDeviceToken(
          java.lang.String value) {
        copyOnWrite();
        instance.setDeviceToken(value);
        return this;
      }
      /**
       * required string device_token = 2;
       */
      public Builder clearDeviceToken() {
        copyOnWrite();
        instance.clearDeviceToken();
        return this;
      }
      /**
       * required string device_token = 2;
       */
      public Builder setDeviceTokenBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setDeviceTokenBytes(value);
        return this;
      }

      /**
       * optional .IM.BaseDefine.ClientType client_type = 3;
       */
      public boolean hasClientType() {
        return instance.hasClientType();
      }
      /**
       * optional .IM.BaseDefine.ClientType client_type = 3;
       */
      public com.mogujie.tt.protobuf.IMBaseDefine.ClientType getClientType() {
        return instance.getClientType();
      }
      /**
       * optional .IM.BaseDefine.ClientType client_type = 3;
       */
      public Builder setClientType(com.mogujie.tt.protobuf.IMBaseDefine.ClientType value) {
        copyOnWrite();
        instance.setClientType(value);
        return this;
      }
      /**
       * optional .IM.BaseDefine.ClientType client_type = 3;
       */
      public Builder clearClientType() {
        copyOnWrite();
        instance.clearClientType();
        return this;
      }

      /**
       * optional bytes attach_data = 20;
       */
      public boolean hasAttachData() {
        return instance.hasAttachData();
      }
      /**
       * optional bytes attach_data = 20;
       */
      public com.google.protobuf.ByteString getAttachData() {
        return instance.getAttachData();
      }
      /**
       * optional bytes attach_data = 20;
       */
      public Builder setAttachData(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setAttachData(value);
        return this;
      }
      /**
       * optional bytes attach_data = 20;
       */
      public Builder clearAttachData() {
        copyOnWrite();
        instance.clearAttachData();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMDeviceTokenReq)
    }
    private byte memoizedIsInitialized = -1;
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq();
        }
        case IS_INITIALIZED: {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return DEFAULT_INSTANCE;
          if (isInitialized == 0) return null;

          boolean shouldMemoize = ((Boolean) arg0).booleanValue();
          if (!hasUserId()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (!hasDeviceToken()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (shouldMemoize) memoizedIsInitialized = 1;
          return DEFAULT_INSTANCE;

        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq other = (com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq) arg1;
          userId_ = visitor.visitLong(
              hasUserId(), userId_,
              other.hasUserId(), other.userId_);
          deviceToken_ = visitor.visitString(
              hasDeviceToken(), deviceToken_,
              other.hasDeviceToken(), other.deviceToken_);
          clientType_ = visitor.visitInt(hasClientType(), clientType_,
              other.hasClientType(), other.clientType_);
          attachData_ = visitor.visitByteString(
              hasAttachData(), attachData_,
              other.hasAttachData(), other.attachData_);
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
            bitField0_ |= other.bitField0_;
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  userId_ = input.readUInt64();
                  break;
                }
                case 18: {
                  String s = input.readString();
                  bitField0_ |= 0x00000002;
                  deviceToken_ = s;
                  break;
                }
                case 24: {
                  int rawValue = input.readEnum();
                  com.mogujie.tt.protobuf.IMBaseDefine.ClientType value = com.mogujie.tt.protobuf.IMBaseDefine.ClientType.forNumber(rawValue);
                  if (value == null) {
                    super.mergeVarintField(3, rawValue);
                  } else {
                    bitField0_ |= 0x00000004;
                    clientType_ = rawValue;
                  }
                  break;
                }
                case 162: {
                  bitField0_ |= 0x00000008;
                  attachData_ = input.readBytes();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMDeviceTokenReq)
    private static final com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMDeviceTokenReq();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMDeviceTokenReq> PARSER;

    public static com.google.protobuf.Parser<IMDeviceTokenReq> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface IMDeviceTokenRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMDeviceTokenRsp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     *

     *cmd id: 		0x0109
     *

     *
     * required uint64 user_id = 1;
     */
    boolean hasUserId();
    /**
     *

     *cmd id: 		0x0109
     *

     *
     * required uint64 user_id = 1;
     */
    long getUserId();

    /**
     * optional bytes attach_data = 20;
     */
    boolean hasAttachData();
    /**
     * optional bytes attach_data = 20;
     */
    com.google.protobuf.ByteString getAttachData();
  }
  /**
   * Protobuf type {@code IM.Login.IMDeviceTokenRsp}
   */
  public  static final class IMDeviceTokenRsp extends
      com.google.protobuf.GeneratedMessageLite<
          IMDeviceTokenRsp, IMDeviceTokenRsp.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMDeviceTokenRsp)
      IMDeviceTokenRspOrBuilder {
    private IMDeviceTokenRsp() {
      attachData_ = com.google.protobuf.ByteString.EMPTY;
    }
    private int bitField0_;
    public static final int USER_ID_FIELD_NUMBER = 1;
    private long userId_;
    /**
     *

     *cmd id: 		0x0109
     *

     *
     * required uint64 user_id = 1;
     */
    public boolean hasUserId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *

     *cmd id: 		0x0109
     *

     *
     * required uint64 user_id = 1;
     */
    public long getUserId() {
      return userId_;
    }
    /**
     *

     *cmd id: 		0x0109
     *

     *
     * required uint64 user_id = 1;
     */
    private void setUserId(long value) {
      bitField0_ |= 0x00000001;
      userId_ = value;
    }
    /**
     *

     *cmd id: 		0x0109
     *

     *
     * required uint64 user_id = 1;
     */
    private void clearUserId() {
      bitField0_ = (bitField0_ & ~0x00000001);
      userId_ = 0L;
    }

    public static final int ATTACH_DATA_FIELD_NUMBER = 20;
    private com.google.protobuf.ByteString attachData_;
    /**
     * optional bytes attach_data = 20;
     */
    public boolean hasAttachData() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bytes attach_data = 20;
     */
    public com.google.protobuf.ByteString getAttachData() {
      return attachData_;
    }
    /**
     * optional bytes attach_data = 20;
     */
    private void setAttachData(com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
      attachData_ = value;
    }
    /**
     * optional bytes attach_data = 20;
     */
    private void clearAttachData() {
      bitField0_ = (bitField0_ & ~0x00000002);
      attachData_ = getDefaultInstance().getAttachData();
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(20, attachData_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(20, attachData_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     * Protobuf type {@code IM.Login.IMDeviceTokenRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMDeviceTokenRsp)
        com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRspOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      /**
       *

       *cmd id: 		0x0109
       *

       *
       * required uint64 user_id = 1;
       */
      public boolean hasUserId() {
        return instance.hasUserId();
      }
      /**
       *

       *cmd id: 		0x0109
       *

       *
       * required uint64 user_id = 1;
       */
      public long getUserId() {
        return instance.getUserId();
      }
      /**
       *

       *cmd id: 		0x0109
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder setUserId(long value) {
        copyOnWrite();
        instance.setUserId(value);
        return this;
      }
      /**
       *

       *cmd id: 		0x0109
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder clearUserId() {
        copyOnWrite();
        instance.clearUserId();
        return this;
      }

      /**
       * optional bytes attach_data = 20;
       */
      public boolean hasAttachData() {
        return instance.hasAttachData();
      }
      /**
       * optional bytes attach_data = 20;
       */
      public com.google.protobuf.ByteString getAttachData() {
        return instance.getAttachData();
      }
      /**
       * optional bytes attach_data = 20;
       */
      public Builder setAttachData(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setAttachData(value);
        return this;
      }
      /**
       * optional bytes attach_data = 20;
       */
      public Builder clearAttachData() {
        copyOnWrite();
        instance.clearAttachData();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMDeviceTokenRsp)
    }
    private byte memoizedIsInitialized = -1;
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp();
        }
        case IS_INITIALIZED: {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return DEFAULT_INSTANCE;
          if (isInitialized == 0) return null;

          boolean shouldMemoize = ((Boolean) arg0).booleanValue();
          if (!hasUserId()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (shouldMemoize) memoizedIsInitialized = 1;
          return DEFAULT_INSTANCE;

        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp other = (com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp) arg1;
          userId_ = visitor.visitLong(
              hasUserId(), userId_,
              other.hasUserId(), other.userId_);
          attachData_ = visitor.visitByteString(
              hasAttachData(), attachData_,
              other.hasAttachData(), other.attachData_);
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
            bitField0_ |= other.bitField0_;
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  userId_ = input.readUInt64();
                  break;
                }
                case 162: {
                  bitField0_ |= 0x00000002;
                  attachData_ = input.readBytes();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMDeviceTokenRsp)
    private static final com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMDeviceTokenRsp();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMDeviceTokenRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMDeviceTokenRsp> PARSER;

    public static com.google.protobuf.Parser<IMDeviceTokenRsp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface IMKickPCClientReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMKickPCClientReq)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     *

     *cmd id:		0x010a
     *

     *
     * required uint64 user_id = 1;
     */
    boolean hasUserId();
    /**
     *

     *cmd id:		0x010a
     *

     *
     * required uint64 user_id = 1;
     */
    long getUserId();
  }
  /**
   *

   *只给移动端请求
   *

   *
   * Protobuf type {@code IM.Login.IMKickPCClientReq}
   */
  public  static final class IMKickPCClientReq extends
      com.google.protobuf.GeneratedMessageLite<
          IMKickPCClientReq, IMKickPCClientReq.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMKickPCClientReq)
      IMKickPCClientReqOrBuilder {
    private IMKickPCClientReq() {
    }
    private int bitField0_;
    public static final int USER_ID_FIELD_NUMBER = 1;
    private long userId_;
    /**
     *

     *cmd id:		0x010a
     *

     *
     * required uint64 user_id = 1;
     */
    public boolean hasUserId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *

     *cmd id:		0x010a
     *

     *
     * required uint64 user_id = 1;
     */
    public long getUserId() {
      return userId_;
    }
    /**
     *

     *cmd id:		0x010a
     *

     *
     * required uint64 user_id = 1;
     */
    private void setUserId(long value) {
      bitField0_ |= 0x00000001;
      userId_ = value;
    }
    /**
     *

     *cmd id:		0x010a
     *

     *
     * required uint64 user_id = 1;
     */
    private void clearUserId() {
      bitField0_ = (bitField0_ & ~0x00000001);
      userId_ = 0L;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, userId_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, userId_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     *

     *只给移动端请求
     *

     *
     * Protobuf type {@code IM.Login.IMKickPCClientReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMKickPCClientReq)
        com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReqOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      /**
       *

       *cmd id:		0x010a
       *

       *
       * required uint64 user_id = 1;
       */
      public boolean hasUserId() {
        return instance.hasUserId();
      }
      /**
       *

       *cmd id:		0x010a
       *

       *
       * required uint64 user_id = 1;
       */
      public long getUserId() {
        return instance.getUserId();
      }
      /**
       *

       *cmd id:		0x010a
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder setUserId(long value) {
        copyOnWrite();
        instance.setUserId(value);
        return this;
      }
      /**
       *

       *cmd id:		0x010a
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder clearUserId() {
        copyOnWrite();
        instance.clearUserId();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMKickPCClientReq)
    }
    private byte memoizedIsInitialized = -1;
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq();
        }
        case IS_INITIALIZED: {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return DEFAULT_INSTANCE;
          if (isInitialized == 0) return null;

          boolean shouldMemoize = ((Boolean) arg0).booleanValue();
          if (!hasUserId()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (shouldMemoize) memoizedIsInitialized = 1;
          return DEFAULT_INSTANCE;

        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq other = (com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq) arg1;
          userId_ = visitor.visitLong(
              hasUserId(), userId_,
              other.hasUserId(), other.userId_);
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
            bitField0_ |= other.bitField0_;
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  userId_ = input.readUInt64();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMKickPCClientReq)
    private static final com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMKickPCClientReq();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMKickPCClientReq> PARSER;

    public static com.google.protobuf.Parser<IMKickPCClientReq> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface IMKickPCClientRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMKickPCClientRsp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     *

     *cmd id: 		0x010b
     *

     *
     * required uint64 user_id = 1;
     */
    boolean hasUserId();
    /**
     *

     *cmd id: 		0x010b
     *

     *
     * required uint64 user_id = 1;
     */
    long getUserId();

    /**
     * required uint32 result_code = 2;
     */
    boolean hasResultCode();
    /**
     * required uint32 result_code = 2;
     */
    int getResultCode();
  }
  /**
   * Protobuf type {@code IM.Login.IMKickPCClientRsp}
   */
  public  static final class IMKickPCClientRsp extends
      com.google.protobuf.GeneratedMessageLite<
          IMKickPCClientRsp, IMKickPCClientRsp.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMKickPCClientRsp)
      IMKickPCClientRspOrBuilder {
    private IMKickPCClientRsp() {
    }
    private int bitField0_;
    public static final int USER_ID_FIELD_NUMBER = 1;
    private long userId_;
    /**
     *

     *cmd id: 		0x010b
     *

     *
     * required uint64 user_id = 1;
     */
    public boolean hasUserId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *

     *cmd id: 		0x010b
     *

     *
     * required uint64 user_id = 1;
     */
    public long getUserId() {
      return userId_;
    }
    /**
     *

     *cmd id: 		0x010b
     *

     *
     * required uint64 user_id = 1;
     */
    private void setUserId(long value) {
      bitField0_ |= 0x00000001;
      userId_ = value;
    }
    /**
     *

     *cmd id: 		0x010b
     *

     *
     * required uint64 user_id = 1;
     */
    private void clearUserId() {
      bitField0_ = (bitField0_ & ~0x00000001);
      userId_ = 0L;
    }

    public static final int RESULT_CODE_FIELD_NUMBER = 2;
    private int resultCode_;
    /**
     * required uint32 result_code = 2;
     */
    public boolean hasResultCode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required uint32 result_code = 2;
     */
    public int getResultCode() {
      return resultCode_;
    }
    /**
     * required uint32 result_code = 2;
     */
    private void setResultCode(int value) {
      bitField0_ |= 0x00000002;
      resultCode_ = value;
    }
    /**
     * required uint32 result_code = 2;
     */
    private void clearResultCode() {
      bitField0_ = (bitField0_ & ~0x00000002);
      resultCode_ = 0;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, resultCode_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, resultCode_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     * Protobuf type {@code IM.Login.IMKickPCClientRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMKickPCClientRsp)
        com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRspOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      /**
       *

       *cmd id: 		0x010b
       *

       *
       * required uint64 user_id = 1;
       */
      public boolean hasUserId() {
        return instance.hasUserId();
      }
      /**
       *

       *cmd id: 		0x010b
       *

       *
       * required uint64 user_id = 1;
       */
      public long getUserId() {
        return instance.getUserId();
      }
      /**
       *

       *cmd id: 		0x010b
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder setUserId(long value) {
        copyOnWrite();
        instance.setUserId(value);
        return this;
      }
      /**
       *

       *cmd id: 		0x010b
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder clearUserId() {
        copyOnWrite();
        instance.clearUserId();
        return this;
      }

      /**
       * required uint32 result_code = 2;
       */
      public boolean hasResultCode() {
        return instance.hasResultCode();
      }
      /**
       * required uint32 result_code = 2;
       */
      public int getResultCode() {
        return instance.getResultCode();
      }
      /**
       * required uint32 result_code = 2;
       */
      public Builder setResultCode(int value) {
        copyOnWrite();
        instance.setResultCode(value);
        return this;
      }
      /**
       * required uint32 result_code = 2;
       */
      public Builder clearResultCode() {
        copyOnWrite();
        instance.clearResultCode();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMKickPCClientRsp)
    }
    private byte memoizedIsInitialized = -1;
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp();
        }
        case IS_INITIALIZED: {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return DEFAULT_INSTANCE;
          if (isInitialized == 0) return null;

          boolean shouldMemoize = ((Boolean) arg0).booleanValue();
          if (!hasUserId()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (!hasResultCode()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (shouldMemoize) memoizedIsInitialized = 1;
          return DEFAULT_INSTANCE;

        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp other = (com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp) arg1;
          userId_ = visitor.visitLong(
              hasUserId(), userId_,
              other.hasUserId(), other.userId_);
          resultCode_ = visitor.visitInt(
              hasResultCode(), resultCode_,
              other.hasResultCode(), other.resultCode_);
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
            bitField0_ |= other.bitField0_;
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  userId_ = input.readUInt64();
                  break;
                }
                case 16: {
                  bitField0_ |= 0x00000002;
                  resultCode_ = input.readUInt32();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMKickPCClientRsp)
    private static final com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMKickPCClientRsp();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMKickPCClientRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMKickPCClientRsp> PARSER;

    public static com.google.protobuf.Parser<IMKickPCClientRsp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface IMPushShieldReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMPushShieldReq)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     *

     *cmd id:			0x010c
     *

     *
     * required uint64 user_id = 1;
     */
    boolean hasUserId();
    /**
     *

     *cmd id:			0x010c
     *

     *
     * required uint64 user_id = 1;
     */
    long getUserId();

    /**
     *

     * 1:开启,0:关闭
     *

     *
     * required uint32 shield_status = 2;
     */
    boolean hasShieldStatus();
    /**
     *

     * 1:开启,0:关闭
     *

     *
     * required uint32 shield_status = 2;
     */
    int getShieldStatus();

    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    boolean hasAttachData();
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    com.google.protobuf.ByteString getAttachData();
  }
  /**
   *

   * 一旦设置以后,22:00 -- 07:00不发送
   *

   *
   * Protobuf type {@code IM.Login.IMPushShieldReq}
   */
  public  static final class IMPushShieldReq extends
      com.google.protobuf.GeneratedMessageLite<
          IMPushShieldReq, IMPushShieldReq.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMPushShieldReq)
      IMPushShieldReqOrBuilder {
    private IMPushShieldReq() {
      attachData_ = com.google.protobuf.ByteString.EMPTY;
    }
    private int bitField0_;
    public static final int USER_ID_FIELD_NUMBER = 1;
    private long userId_;
    /**
     *

     *cmd id:			0x010c
     *

     *
     * required uint64 user_id = 1;
     */
    public boolean hasUserId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *

     *cmd id:			0x010c
     *

     *
     * required uint64 user_id = 1;
     */
    public long getUserId() {
      return userId_;
    }
    /**
     *

     *cmd id:			0x010c
     *

     *
     * required uint64 user_id = 1;
     */
    private void setUserId(long value) {
      bitField0_ |= 0x00000001;
      userId_ = value;
    }
    /**
     *

     *cmd id:			0x010c
     *

     *
     * required uint64 user_id = 1;
     */
    private void clearUserId() {
      bitField0_ = (bitField0_ & ~0x00000001);
      userId_ = 0L;
    }

    public static final int SHIELD_STATUS_FIELD_NUMBER = 2;
    private int shieldStatus_;
    /**
     *

     * 1:开启,0:关闭
     *

     *
     * required uint32 shield_status = 2;
     */
    public boolean hasShieldStatus() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *

     * 1:开启,0:关闭
     *

     *
     * required uint32 shield_status = 2;
     */
    public int getShieldStatus() {
      return shieldStatus_;
    }
    /**
     *

     * 1:开启,0:关闭
     *

     *
     * required uint32 shield_status = 2;
     */
    private void setShieldStatus(int value) {
      bitField0_ |= 0x00000002;
      shieldStatus_ = value;
    }
    /**
     *

     * 1:开启,0:关闭
     *

     *
     * required uint32 shield_status = 2;
     */
    private void clearShieldStatus() {
      bitField0_ = (bitField0_ & ~0x00000002);
      shieldStatus_ = 0;
    }

    public static final int ATTACH_DATA_FIELD_NUMBER = 20;
    private com.google.protobuf.ByteString attachData_;
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    public boolean hasAttachData() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    public com.google.protobuf.ByteString getAttachData() {
      return attachData_;
    }
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    private void setAttachData(com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
      attachData_ = value;
    }
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    private void clearAttachData() {
      bitField0_ = (bitField0_ & ~0x00000004);
      attachData_ = getDefaultInstance().getAttachData();
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, shieldStatus_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(20, attachData_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, shieldStatus_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(20, attachData_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     *

     * 一旦设置以后,22:00 -- 07:00不发送
     *

     *
     * Protobuf type {@code IM.Login.IMPushShieldReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMPushShieldReq)
        com.mogujie.tt.protobuf.IMLogin.IMPushShieldReqOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      /**
       *

       *cmd id:			0x010c
       *

       *
       * required uint64 user_id = 1;
       */
      public boolean hasUserId() {
        return instance.hasUserId();
      }
      /**
       *

       *cmd id:			0x010c
       *

       *
       * required uint64 user_id = 1;
       */
      public long getUserId() {
        return instance.getUserId();
      }
      /**
       *

       *cmd id:			0x010c
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder setUserId(long value) {
        copyOnWrite();
        instance.setUserId(value);
        return this;
      }
      /**
       *

       *cmd id:			0x010c
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder clearUserId() {
        copyOnWrite();
        instance.clearUserId();
        return this;
      }

      /**
       *

       * 1:开启,0:关闭
       *

       *
       * required uint32 shield_status = 2;
       */
      public boolean hasShieldStatus() {
        return instance.hasShieldStatus();
      }
      /**
       *

       * 1:开启,0:关闭
       *

       *
       * required uint32 shield_status = 2;
       */
      public int getShieldStatus() {
        return instance.getShieldStatus();
      }
      /**
       *

       * 1:开启,0:关闭
       *

       *
       * required uint32 shield_status = 2;
       */
      public Builder setShieldStatus(int value) {
        copyOnWrite();
        instance.setShieldStatus(value);
        return this;
      }
      /**
       *

       * 1:开启,0:关闭
       *

       *
       * required uint32 shield_status = 2;
       */
      public Builder clearShieldStatus() {
        copyOnWrite();
        instance.clearShieldStatus();
        return this;
      }

      /**
       *

       * 服务端用,客户端不用设置
       *

       *
       * optional bytes attach_data = 20;
       */
      public boolean hasAttachData() {
        return instance.hasAttachData();
      }
      /**
       *

       * 服务端用,客户端不用设置
       *

       *
       * optional bytes attach_data = 20;
       */
      public com.google.protobuf.ByteString getAttachData() {
        return instance.getAttachData();
      }
      /**
       *

       * 服务端用,客户端不用设置
       *

       *
       * optional bytes attach_data = 20;
       */
      public Builder setAttachData(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setAttachData(value);
        return this;
      }
      /**
       *

       * 服务端用,客户端不用设置
       *

       *
       * optional bytes attach_data = 20;
       */
      public Builder clearAttachData() {
        copyOnWrite();
        instance.clearAttachData();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMPushShieldReq)
    }
    private byte memoizedIsInitialized = -1;
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq();
        }
        case IS_INITIALIZED: {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return DEFAULT_INSTANCE;
          if (isInitialized == 0) return null;

          boolean shouldMemoize = ((Boolean) arg0).booleanValue();
          if (!hasUserId()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (!hasShieldStatus()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (shouldMemoize) memoizedIsInitialized = 1;
          return DEFAULT_INSTANCE;

        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq other = (com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq) arg1;
          userId_ = visitor.visitLong(
              hasUserId(), userId_,
              other.hasUserId(), other.userId_);
          shieldStatus_ = visitor.visitInt(
              hasShieldStatus(), shieldStatus_,
              other.hasShieldStatus(), other.shieldStatus_);
          attachData_ = visitor.visitByteString(
              hasAttachData(), attachData_,
              other.hasAttachData(), other.attachData_);
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
            bitField0_ |= other.bitField0_;
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  userId_ = input.readUInt64();
                  break;
                }
                case 16: {
                  bitField0_ |= 0x00000002;
                  shieldStatus_ = input.readUInt32();
                  break;
                }
                case 162: {
                  bitField0_ |= 0x00000004;
                  attachData_ = input.readBytes();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMPushShieldReq)
    private static final com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMPushShieldReq();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMPushShieldReq> PARSER;

    public static com.google.protobuf.Parser<IMPushShieldReq> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface IMPushShieldRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMPushShieldRsp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     *

     *cmd id:			0x010d
     *

     *
     * required uint64 user_id = 1;
     */
    boolean hasUserId();
    /**
     *

     *cmd id:			0x010d
     *

     *
     * required uint64 user_id = 1;
     */
    long getUserId();

    /**
     *

     * 值: 0:successed 1:failed
     *

     *
     * required uint32 result_code = 2;
     */
    boolean hasResultCode();
    /**
     *

     * 值: 0:successed 1:failed
     *

     *
     * required uint32 result_code = 2;
     */
    int getResultCode();

    /**
     *

     * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
     *

     *
     * optional uint32 shield_status = 3;
     */
    boolean hasShieldStatus();
    /**
     *

     * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
     *

     *
     * optional uint32 shield_status = 3;
     */
    int getShieldStatus();

    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    boolean hasAttachData();
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    com.google.protobuf.ByteString getAttachData();
  }
  /**
   * Protobuf type {@code IM.Login.IMPushShieldRsp}
   */
  public  static final class IMPushShieldRsp extends
      com.google.protobuf.GeneratedMessageLite<
          IMPushShieldRsp, IMPushShieldRsp.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMPushShieldRsp)
      IMPushShieldRspOrBuilder {
    private IMPushShieldRsp() {
      attachData_ = com.google.protobuf.ByteString.EMPTY;
    }
    private int bitField0_;
    public static final int USER_ID_FIELD_NUMBER = 1;
    private long userId_;
    /**
     *

     *cmd id:			0x010d
     *

     *
     * required uint64 user_id = 1;
     */
    public boolean hasUserId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *

     *cmd id:			0x010d
     *

     *
     * required uint64 user_id = 1;
     */
    public long getUserId() {
      return userId_;
    }
    /**
     *

     *cmd id:			0x010d
     *

     *
     * required uint64 user_id = 1;
     */
    private void setUserId(long value) {
      bitField0_ |= 0x00000001;
      userId_ = value;
    }
    /**
     *

     *cmd id:			0x010d
     *

     *
     * required uint64 user_id = 1;
     */
    private void clearUserId() {
      bitField0_ = (bitField0_ & ~0x00000001);
      userId_ = 0L;
    }

    public static final int RESULT_CODE_FIELD_NUMBER = 2;
    private int resultCode_;
    /**
     *

     * 值: 0:successed 1:failed
     *

     *
     * required uint32 result_code = 2;
     */
    public boolean hasResultCode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *

     * 值: 0:successed 1:failed
     *

     *
     * required uint32 result_code = 2;
     */
    public int getResultCode() {
      return resultCode_;
    }
    /**
     *

     * 值: 0:successed 1:failed
     *

     *
     * required uint32 result_code = 2;
     */
    private void setResultCode(int value) {
      bitField0_ |= 0x00000002;
      resultCode_ = value;
    }
    /**
     *

     * 值: 0:successed 1:failed
     *

     *
     * required uint32 result_code = 2;
     */
    private void clearResultCode() {
      bitField0_ = (bitField0_ & ~0x00000002);
      resultCode_ = 0;
    }

    public static final int SHIELD_STATUS_FIELD_NUMBER = 3;
    private int shieldStatus_;
    /**
     *

     * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
     *

     *
     * optional uint32 shield_status = 3;
     */
    public boolean hasShieldStatus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *

     * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
     *

     *
     * optional uint32 shield_status = 3;
     */
    public int getShieldStatus() {
      return shieldStatus_;
    }
    /**
     *

     * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
     *

     *
     * optional uint32 shield_status = 3;
     */
    private void setShieldStatus(int value) {
      bitField0_ |= 0x00000004;
      shieldStatus_ = value;
    }
    /**
     *

     * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
     *

     *
     * optional uint32 shield_status = 3;
     */
    private void clearShieldStatus() {
      bitField0_ = (bitField0_ & ~0x00000004);
      shieldStatus_ = 0;
    }

    public static final int ATTACH_DATA_FIELD_NUMBER = 20;
    private com.google.protobuf.ByteString attachData_;
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    public boolean hasAttachData() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    public com.google.protobuf.ByteString getAttachData() {
      return attachData_;
    }
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    private void setAttachData(com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
      attachData_ = value;
    }
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    private void clearAttachData() {
      bitField0_ = (bitField0_ & ~0x00000008);
      attachData_ = getDefaultInstance().getAttachData();
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, resultCode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, shieldStatus_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(20, attachData_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, resultCode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, shieldStatus_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(20, attachData_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     * Protobuf type {@code IM.Login.IMPushShieldRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMPushShieldRsp)
        com.mogujie.tt.protobuf.IMLogin.IMPushShieldRspOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      /**
       *

       *cmd id:			0x010d
       *

       *
       * required uint64 user_id = 1;
       */
      public boolean hasUserId() {
        return instance.hasUserId();
      }
      /**
       *

       *cmd id:			0x010d
       *

       *
       * required uint64 user_id = 1;
       */
      public long getUserId() {
        return instance.getUserId();
      }
      /**
       *

       *cmd id:			0x010d
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder setUserId(long value) {
        copyOnWrite();
        instance.setUserId(value);
        return this;
      }
      /**
       *

       *cmd id:			0x010d
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder clearUserId() {
        copyOnWrite();
        instance.clearUserId();
        return this;
      }

      /**
       *

       * 值: 0:successed 1:failed
       *

       *
       * required uint32 result_code = 2;
       */
      public boolean hasResultCode() {
        return instance.hasResultCode();
      }
      /**
       *

       * 值: 0:successed 1:failed
       *

       *
       * required uint32 result_code = 2;
       */
      public int getResultCode() {
        return instance.getResultCode();
      }
      /**
       *

       * 值: 0:successed 1:failed
       *

       *
       * required uint32 result_code = 2;
       */
      public Builder setResultCode(int value) {
        copyOnWrite();
        instance.setResultCode(value);
        return this;
      }
      /**
       *

       * 值: 0:successed 1:failed
       *

       *
       * required uint32 result_code = 2;
       */
      public Builder clearResultCode() {
        copyOnWrite();
        instance.clearResultCode();
        return this;
      }

      /**
       *

       * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
       *

       *
       * optional uint32 shield_status = 3;
       */
      public boolean hasShieldStatus() {
        return instance.hasShieldStatus();
      }
      /**
       *

       * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
       *

       *
       * optional uint32 shield_status = 3;
       */
      public int getShieldStatus() {
        return instance.getShieldStatus();
      }
      /**
       *

       * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
       *

       *
       * optional uint32 shield_status = 3;
       */
      public Builder setShieldStatus(int value) {
        copyOnWrite();
        instance.setShieldStatus(value);
        return this;
      }
      /**
       *

       * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
       *

       *
       * optional uint32 shield_status = 3;
       */
      public Builder clearShieldStatus() {
        copyOnWrite();
        instance.clearShieldStatus();
        return this;
      }

      /**
       *

       * 服务端用,客户端不用设置
       *

       *
       * optional bytes attach_data = 20;
       */
      public boolean hasAttachData() {
        return instance.hasAttachData();
      }
      /**
       *

       * 服务端用,客户端不用设置
       *

       *
       * optional bytes attach_data = 20;
       */
      public com.google.protobuf.ByteString getAttachData() {
        return instance.getAttachData();
      }
      /**
       *

       * 服务端用,客户端不用设置
       *

       *
       * optional bytes attach_data = 20;
       */
      public Builder setAttachData(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setAttachData(value);
        return this;
      }
      /**
       *

       * 服务端用,客户端不用设置
       *

       *
       * optional bytes attach_data = 20;
       */
      public Builder clearAttachData() {
        copyOnWrite();
        instance.clearAttachData();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMPushShieldRsp)
    }
    private byte memoizedIsInitialized = -1;
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp();
        }
        case IS_INITIALIZED: {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return DEFAULT_INSTANCE;
          if (isInitialized == 0) return null;

          boolean shouldMemoize = ((Boolean) arg0).booleanValue();
          if (!hasUserId()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (!hasResultCode()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (shouldMemoize) memoizedIsInitialized = 1;
          return DEFAULT_INSTANCE;

        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp other = (com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp) arg1;
          userId_ = visitor.visitLong(
              hasUserId(), userId_,
              other.hasUserId(), other.userId_);
          resultCode_ = visitor.visitInt(
              hasResultCode(), resultCode_,
              other.hasResultCode(), other.resultCode_);
          shieldStatus_ = visitor.visitInt(
              hasShieldStatus(), shieldStatus_,
              other.hasShieldStatus(), other.shieldStatus_);
          attachData_ = visitor.visitByteString(
              hasAttachData(), attachData_,
              other.hasAttachData(), other.attachData_);
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
            bitField0_ |= other.bitField0_;
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  userId_ = input.readUInt64();
                  break;
                }
                case 16: {
                  bitField0_ |= 0x00000002;
                  resultCode_ = input.readUInt32();
                  break;
                }
                case 24: {
                  bitField0_ |= 0x00000004;
                  shieldStatus_ = input.readUInt32();
                  break;
                }
                case 162: {
                  bitField0_ |= 0x00000008;
                  attachData_ = input.readBytes();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMPushShieldRsp)
    private static final com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMPushShieldRsp();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMPushShieldRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMPushShieldRsp> PARSER;

    public static com.google.protobuf.Parser<IMPushShieldRsp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface IMQueryPushShieldReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMQueryPushShieldReq)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     *

     *cmd id:			0x010e
     *

     *
     * required uint64 user_id = 1;
     */
    boolean hasUserId();
    /**
     *

     *cmd id:			0x010e
     *

     *
     * required uint64 user_id = 1;
     */
    long getUserId();

    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    boolean hasAttachData();
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    com.google.protobuf.ByteString getAttachData();
  }
  /**
   *

   * 如果用户重新安装app,第一次启动登录成功后,app主动查询
   * 服务端返回IMQueryPushShieldRsp
   *

   *
   * Protobuf type {@code IM.Login.IMQueryPushShieldReq}
   */
  public  static final class IMQueryPushShieldReq extends
      com.google.protobuf.GeneratedMessageLite<
          IMQueryPushShieldReq, IMQueryPushShieldReq.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMQueryPushShieldReq)
      IMQueryPushShieldReqOrBuilder {
    private IMQueryPushShieldReq() {
      attachData_ = com.google.protobuf.ByteString.EMPTY;
    }
    private int bitField0_;
    public static final int USER_ID_FIELD_NUMBER = 1;
    private long userId_;
    /**
     *

     *cmd id:			0x010e
     *

     *
     * required uint64 user_id = 1;
     */
    public boolean hasUserId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *

     *cmd id:			0x010e
     *

     *
     * required uint64 user_id = 1;
     */
    public long getUserId() {
      return userId_;
    }
    /**
     *

     *cmd id:			0x010e
     *

     *
     * required uint64 user_id = 1;
     */
    private void setUserId(long value) {
      bitField0_ |= 0x00000001;
      userId_ = value;
    }
    /**
     *

     *cmd id:			0x010e
     *

     *
     * required uint64 user_id = 1;
     */
    private void clearUserId() {
      bitField0_ = (bitField0_ & ~0x00000001);
      userId_ = 0L;
    }

    public static final int ATTACH_DATA_FIELD_NUMBER = 20;
    private com.google.protobuf.ByteString attachData_;
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    public boolean hasAttachData() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    public com.google.protobuf.ByteString getAttachData() {
      return attachData_;
    }
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    private void setAttachData(com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
      attachData_ = value;
    }
    /**
     *

     * 服务端用,客户端不用设置
     *

     *
     * optional bytes attach_data = 20;
     */
    private void clearAttachData() {
      bitField0_ = (bitField0_ & ~0x00000002);
      attachData_ = getDefaultInstance().getAttachData();
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(20, attachData_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(20, attachData_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     *

     * 如果用户重新安装app,第一次启动登录成功后,app主动查询
     * 服务端返回IMQueryPushShieldRsp
     *

     *
     * Protobuf type {@code IM.Login.IMQueryPushShieldReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMQueryPushShieldReq)
        com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReqOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      /**
       *

       *cmd id:			0x010e
       *

       *
       * required uint64 user_id = 1;
       */
      public boolean hasUserId() {
        return instance.hasUserId();
      }
      /**
       *

       *cmd id:			0x010e
       *

       *
       * required uint64 user_id = 1;
       */
      public long getUserId() {
        return instance.getUserId();
      }
      /**
       *

       *cmd id:			0x010e
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder setUserId(long value) {
        copyOnWrite();
        instance.setUserId(value);
        return this;
      }
      /**
       *

       *cmd id:			0x010e
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder clearUserId() {
        copyOnWrite();
        instance.clearUserId();
        return this;
      }

      /**
       *

       * 服务端用,客户端不用设置
       *

       *
       * optional bytes attach_data = 20;
       */
      public boolean hasAttachData() {
        return instance.hasAttachData();
      }
      /**
       *

       * 服务端用,客户端不用设置
       *

       *
       * optional bytes attach_data = 20;
       */
      public com.google.protobuf.ByteString getAttachData() {
        return instance.getAttachData();
      }
      /**
       *

       * 服务端用,客户端不用设置
       *

       *
       * optional bytes attach_data = 20;
       */
      public Builder setAttachData(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setAttachData(value);
        return this;
      }
      /**
       *

       * 服务端用,客户端不用设置
       *

       *
       * optional bytes attach_data = 20;
       */
      public Builder clearAttachData() {
        copyOnWrite();
        instance.clearAttachData();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMQueryPushShieldReq)
    }
    private byte memoizedIsInitialized = -1;
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq();
        }
        case IS_INITIALIZED: {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return DEFAULT_INSTANCE;
          if (isInitialized == 0) return null;

          boolean shouldMemoize = ((Boolean) arg0).booleanValue();
          if (!hasUserId()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (shouldMemoize) memoizedIsInitialized = 1;
          return DEFAULT_INSTANCE;

        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq other = (com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq) arg1;
          userId_ = visitor.visitLong(
              hasUserId(), userId_,
              other.hasUserId(), other.userId_);
          attachData_ = visitor.visitByteString(
              hasAttachData(), attachData_,
              other.hasAttachData(), other.attachData_);
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
            bitField0_ |= other.bitField0_;
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  userId_ = input.readUInt64();
                  break;
                }
                case 162: {
                  bitField0_ |= 0x00000002;
                  attachData_ = input.readBytes();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMQueryPushShieldReq)
    private static final com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMQueryPushShieldReq();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMQueryPushShieldReq> PARSER;

    public static com.google.protobuf.Parser<IMQueryPushShieldReq> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface IMQueryPushShieldRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IM.Login.IMQueryPushShieldRsp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     *

     *cmd id:			0x010f
     *

     *
     * required uint64 user_id = 1;
     */
    boolean hasUserId();
    /**
     *

     *cmd id:			0x010f
     *

     *
     * required uint64 user_id = 1;
     */
    long getUserId();

    /**
     *

     * 值: 0:successed 1:failed
     *

     *
     * required uint32 result_code = 2;
     */
    boolean hasResultCode();
    /**
     *

     * 值: 0:successed 1:failed
     *

     *
     * required uint32 result_code = 2;
     */
    int getResultCode();

    /**
     *

     * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
     *

     *
     * optional uint32 shield_status = 3;
     */
    boolean hasShieldStatus();
    /**
     *

     * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
     *

     *
     * optional uint32 shield_status = 3;
     */
    int getShieldStatus();

    /**
     * optional bytes attach_data = 20;
     */
    boolean hasAttachData();
    /**
     * optional bytes attach_data = 20;
     */
    com.google.protobuf.ByteString getAttachData();
  }
  /**
   * Protobuf type {@code IM.Login.IMQueryPushShieldRsp}
   */
  public  static final class IMQueryPushShieldRsp extends
      com.google.protobuf.GeneratedMessageLite<
          IMQueryPushShieldRsp, IMQueryPushShieldRsp.Builder> implements
      // @@protoc_insertion_point(message_implements:IM.Login.IMQueryPushShieldRsp)
      IMQueryPushShieldRspOrBuilder {
    private IMQueryPushShieldRsp() {
      attachData_ = com.google.protobuf.ByteString.EMPTY;
    }
    private int bitField0_;
    public static final int USER_ID_FIELD_NUMBER = 1;
    private long userId_;
    /**
     *

     *cmd id:			0x010f
     *

     *
     * required uint64 user_id = 1;
     */
    public boolean hasUserId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *

     *cmd id:			0x010f
     *

     *
     * required uint64 user_id = 1;
     */
    public long getUserId() {
      return userId_;
    }
    /**
     *

     *cmd id:			0x010f
     *

     *
     * required uint64 user_id = 1;
     */
    private void setUserId(long value) {
      bitField0_ |= 0x00000001;
      userId_ = value;
    }
    /**
     *

     *cmd id:			0x010f
     *

     *
     * required uint64 user_id = 1;
     */
    private void clearUserId() {
      bitField0_ = (bitField0_ & ~0x00000001);
      userId_ = 0L;
    }

    public static final int RESULT_CODE_FIELD_NUMBER = 2;
    private int resultCode_;
    /**
     *

     * 值: 0:successed 1:failed
     *

     *
     * required uint32 result_code = 2;
     */
    public boolean hasResultCode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *

     * 值: 0:successed 1:failed
     *

     *
     * required uint32 result_code = 2;
     */
    public int getResultCode() {
      return resultCode_;
    }
    /**
     *

     * 值: 0:successed 1:failed
     *

     *
     * required uint32 result_code = 2;
     */
    private void setResultCode(int value) {
      bitField0_ |= 0x00000002;
      resultCode_ = value;
    }
    /**
     *

     * 值: 0:successed 1:failed
     *

     *
     * required uint32 result_code = 2;
     */
    private void clearResultCode() {
      bitField0_ = (bitField0_ & ~0x00000002);
      resultCode_ = 0;
    }

    public static final int SHIELD_STATUS_FIELD_NUMBER = 3;
    private int shieldStatus_;
    /**
     *

     * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
     *

     *
     * optional uint32 shield_status = 3;
     */
    public boolean hasShieldStatus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *

     * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
     *

     *
     * optional uint32 shield_status = 3;
     */
    public int getShieldStatus() {
      return shieldStatus_;
    }
    /**
     *

     * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
     *

     *
     * optional uint32 shield_status = 3;
     */
    private void setShieldStatus(int value) {
      bitField0_ |= 0x00000004;
      shieldStatus_ = value;
    }
    /**
     *

     * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
     *

     *
     * optional uint32 shield_status = 3;
     */
    private void clearShieldStatus() {
      bitField0_ = (bitField0_ & ~0x00000004);
      shieldStatus_ = 0;
    }

    public static final int ATTACH_DATA_FIELD_NUMBER = 20;
    private com.google.protobuf.ByteString attachData_;
    /**
     * optional bytes attach_data = 20;
     */
    public boolean hasAttachData() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bytes attach_data = 20;
     */
    public com.google.protobuf.ByteString getAttachData() {
      return attachData_;
    }
    /**
     * optional bytes attach_data = 20;
     */
    private void setAttachData(com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
      attachData_ = value;
    }
    /**
     * optional bytes attach_data = 20;
     */
    private void clearAttachData() {
      bitField0_ = (bitField0_ & ~0x00000008);
      attachData_ = getDefaultInstance().getAttachData();
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, resultCode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, shieldStatus_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(20, attachData_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, userId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, resultCode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, shieldStatus_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(20, attachData_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    /**
     * Protobuf type {@code IM.Login.IMQueryPushShieldRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp, Builder> implements
        // @@protoc_insertion_point(builder_implements:IM.Login.IMQueryPushShieldRsp)
        com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRspOrBuilder {
      // Construct using com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      /**
       *

       *cmd id:			0x010f
       *

       *
       * required uint64 user_id = 1;
       */
      public boolean hasUserId() {
        return instance.hasUserId();
      }
      /**
       *

       *cmd id:			0x010f
       *

       *
       * required uint64 user_id = 1;
       */
      public long getUserId() {
        return instance.getUserId();
      }
      /**
       *

       *cmd id:			0x010f
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder setUserId(long value) {
        copyOnWrite();
        instance.setUserId(value);
        return this;
      }
      /**
       *

       *cmd id:			0x010f
       *

       *
       * required uint64 user_id = 1;
       */
      public Builder clearUserId() {
        copyOnWrite();
        instance.clearUserId();
        return this;
      }

      /**
       *

       * 值: 0:successed 1:failed
       *

       *
       * required uint32 result_code = 2;
       */
      public boolean hasResultCode() {
        return instance.hasResultCode();
      }
      /**
       *

       * 值: 0:successed 1:failed
       *

       *
       * required uint32 result_code = 2;
       */
      public int getResultCode() {
        return instance.getResultCode();
      }
      /**
       *

       * 值: 0:successed 1:failed
       *

       *
       * required uint32 result_code = 2;
       */
      public Builder setResultCode(int value) {
        copyOnWrite();
        instance.setResultCode(value);
        return this;
      }
      /**
       *

       * 值: 0:successed 1:failed
       *

       *
       * required uint32 result_code = 2;
       */
      public Builder clearResultCode() {
        copyOnWrite();
        instance.clearResultCode();
        return this;
      }

      /**
       *

       * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
       *

       *
       * optional uint32 shield_status = 3;
       */
      public boolean hasShieldStatus() {
        return instance.hasShieldStatus();
      }
      /**
       *

       * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
       *

       *
       * optional uint32 shield_status = 3;
       */
      public int getShieldStatus() {
        return instance.getShieldStatus();
      }
      /**
       *

       * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
       *

       *
       * optional uint32 shield_status = 3;
       */
      public Builder setShieldStatus(int value) {
        copyOnWrite();
        instance.setShieldStatus(value);
        return this;
      }
      /**
       *

       * 值: 如果result_code值为0(successed),则shield_status值设置, 1:开启, 0:关闭
       *

       *
       * optional uint32 shield_status = 3;
       */
      public Builder clearShieldStatus() {
        copyOnWrite();
        instance.clearShieldStatus();
        return this;
      }

      /**
       * optional bytes attach_data = 20;
       */
      public boolean hasAttachData() {
        return instance.hasAttachData();
      }
      /**
       * optional bytes attach_data = 20;
       */
      public com.google.protobuf.ByteString getAttachData() {
        return instance.getAttachData();
      }
      /**
       * optional bytes attach_data = 20;
       */
      public Builder setAttachData(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setAttachData(value);
        return this;
      }
      /**
       * optional bytes attach_data = 20;
       */
      public Builder clearAttachData() {
        copyOnWrite();
        instance.clearAttachData();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IM.Login.IMQueryPushShieldRsp)
    }
    private byte memoizedIsInitialized = -1;
    protected final Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        Object arg0, Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp();
        }
        case IS_INITIALIZED: {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return DEFAULT_INSTANCE;
          if (isInitialized == 0) return null;

          boolean shouldMemoize = ((Boolean) arg0).booleanValue();
          if (!hasUserId()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (!hasResultCode()) {
            if (shouldMemoize) {
              memoizedIsInitialized = 0;
            }
            return null;
          }
          if (shouldMemoize) memoizedIsInitialized = 1;
          return DEFAULT_INSTANCE;

        }
        case MAKE_IMMUTABLE: {
          return null;
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case VISIT: {
          Visitor visitor = (Visitor) arg0;
          com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp other = (com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp) arg1;
          userId_ = visitor.visitLong(
              hasUserId(), userId_,
              other.hasUserId(), other.userId_);
          resultCode_ = visitor.visitInt(
              hasResultCode(), resultCode_,
              other.hasResultCode(), other.resultCode_);
          shieldStatus_ = visitor.visitInt(
              hasShieldStatus(), shieldStatus_,
              other.hasShieldStatus(), other.shieldStatus_);
          attachData_ = visitor.visitByteString(
              hasAttachData(), attachData_,
              other.hasAttachData(), other.attachData_);
          if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
              .INSTANCE) {
            bitField0_ |= other.bitField0_;
          }
          return this;
        }
        case MERGE_FROM_STREAM: {
          com.google.protobuf.CodedInputStream input =
              (com.google.protobuf.CodedInputStream) arg0;
          com.google.protobuf.ExtensionRegistryLite extensionRegistry =
              (com.google.protobuf.ExtensionRegistryLite) arg1;
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(tag, input)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  userId_ = input.readUInt64();
                  break;
                }
                case 16: {
                  bitField0_ |= 0x00000002;
                  resultCode_ = input.readUInt32();
                  break;
                }
                case 24: {
                  bitField0_ |= 0x00000004;
                  shieldStatus_ = input.readUInt32();
                  break;
                }
                case 162: {
                  bitField0_ |= 0x00000008;
                  attachData_ = input.readBytes();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw new RuntimeException(e.setUnfinishedMessage(this));
          } catch (java.io.IOException e) {
            throw new RuntimeException(
                new com.google.protobuf.InvalidProtocolBufferException(
                    e.getMessage()).setUnfinishedMessage(this));
          } finally {
          }
        }
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          if (PARSER == null) {    synchronized (com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp.class) {
              if (PARSER == null) {
                PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
              }
            }
          }
          return PARSER;
        }
      }
      throw new UnsupportedOperationException();
    }

    // @@protoc_insertion_point(class_scope:IM.Login.IMQueryPushShieldRsp)
    private static final com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new IMQueryPushShieldRsp();
      DEFAULT_INSTANCE.makeImmutable();
    }

    public static com.mogujie.tt.protobuf.IMLogin.IMQueryPushShieldRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<IMQueryPushShieldRsp> PARSER;

    public static com.google.protobuf.Parser<IMQueryPushShieldRsp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}