// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: core/config.proto

package com.akaxin.proto.core;

public final class ConfigProto {
  private ConfigProto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * <pre>
   *实名枚举
   * </pre>
   *
   * Protobuf enum {@code core.RealNameConfig}
   */
  public enum RealNameConfig
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <pre>
     *匿名方式
     * </pre>
     *
     * <code>REALNAME_NO = 0;</code>
     */
    REALNAME_NO(0),
    /**
     * <pre>
     *实名方式,必须用户是实名
     * </pre>
     *
     * <code>REALNAME_YES = 1;</code>
     */
    REALNAME_YES(1),
    /**
     * <pre>
     *优先实名方式，其次接受非实名用户
     * </pre>
     *
     * <code>REALNAME_YES_NO = 2;</code>
     */
    REALNAME_YES_NO(2),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     *匿名方式
     * </pre>
     *
     * <code>REALNAME_NO = 0;</code>
     */
    public static final int REALNAME_NO_VALUE = 0;
    /**
     * <pre>
     *实名方式,必须用户是实名
     * </pre>
     *
     * <code>REALNAME_YES = 1;</code>
     */
    public static final int REALNAME_YES_VALUE = 1;
    /**
     * <pre>
     *优先实名方式，其次接受非实名用户
     * </pre>
     *
     * <code>REALNAME_YES_NO = 2;</code>
     */
    public static final int REALNAME_YES_NO_VALUE = 2;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static RealNameConfig valueOf(int value) {
      return forNumber(value);
    }

    public static RealNameConfig forNumber(int value) {
      switch (value) {
        case 0: return REALNAME_NO;
        case 1: return REALNAME_YES;
        case 2: return REALNAME_YES_NO;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<RealNameConfig>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        RealNameConfig> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<RealNameConfig>() {
            public RealNameConfig findValueByNumber(int number) {
              return RealNameConfig.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.akaxin.proto.core.ConfigProto.getDescriptor().getEnumTypes().get(0);
    }

    private static final RealNameConfig[] VALUES = values();

    public static RealNameConfig valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private RealNameConfig(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:core.RealNameConfig)
  }

  /**
   * <pre>
   *邀请码枚举
   * </pre>
   *
   * Protobuf enum {@code core.InviteCodeConfig}
   */
  public enum InviteCodeConfig
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <pre>
     *不需要
     * </pre>
     *
     * <code>UIC_NO = 0;</code>
     */
    UIC_NO(0),
    /**
     * <pre>
     *关闭邀请码
     * </pre>
     *
     * <code>UIC_YES = 1;</code>
     */
    UIC_YES(1),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     *不需要
     * </pre>
     *
     * <code>UIC_NO = 0;</code>
     */
    public static final int UIC_NO_VALUE = 0;
    /**
     * <pre>
     *关闭邀请码
     * </pre>
     *
     * <code>UIC_YES = 1;</code>
     */
    public static final int UIC_YES_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static InviteCodeConfig valueOf(int value) {
      return forNumber(value);
    }

    public static InviteCodeConfig forNumber(int value) {
      switch (value) {
        case 0: return UIC_NO;
        case 1: return UIC_YES;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<InviteCodeConfig>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        InviteCodeConfig> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<InviteCodeConfig>() {
            public InviteCodeConfig findValueByNumber(int number) {
              return InviteCodeConfig.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.akaxin.proto.core.ConfigProto.getDescriptor().getEnumTypes().get(1);
    }

    private static final InviteCodeConfig[] VALUES = values();

    public static InviteCodeConfig valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private InviteCodeConfig(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:core.InviteCodeConfig)
  }

  /**
   * <pre>
   *站点开启，关闭状态
   * </pre>
   *
   * Protobuf enum {@code core.SiteStatusConfig}
   */
  public enum SiteStatusConfig
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <pre>
     *站点关闭状态
     * </pre>
     *
     * <code>CLOSE = 0;</code>
     */
    CLOSE(0),
    /**
     * <pre>
     *站点开启状态
     * </pre>
     *
     * <code>OPEN = 1;</code>
     */
    OPEN(1),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     *站点关闭状态
     * </pre>
     *
     * <code>CLOSE = 0;</code>
     */
    public static final int CLOSE_VALUE = 0;
    /**
     * <pre>
     *站点开启状态
     * </pre>
     *
     * <code>OPEN = 1;</code>
     */
    public static final int OPEN_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SiteStatusConfig valueOf(int value) {
      return forNumber(value);
    }

    public static SiteStatusConfig forNumber(int value) {
      switch (value) {
        case 0: return CLOSE;
        case 1: return OPEN;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SiteStatusConfig>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SiteStatusConfig> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SiteStatusConfig>() {
            public SiteStatusConfig findValueByNumber(int number) {
              return SiteStatusConfig.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.akaxin.proto.core.ConfigProto.getDescriptor().getEnumTypes().get(2);
    }

    private static final SiteStatusConfig[] VALUES = values();

    public static SiteStatusConfig valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private SiteStatusConfig(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:core.SiteStatusConfig)
  }

  /**
   * <pre>
   *二人加密状态枚举
   * </pre>
   *
   * Protobuf enum {@code core.U2EncryptionConfig}
   */
  public enum U2EncryptionConfig
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <pre>
     *二人加密关闭
     * </pre>
     *
     * <code>U2_CLOSE = 0;</code>
     */
    U2_CLOSE(0),
    /**
     * <pre>
     *二人加密开启
     * </pre>
     *
     * <code>U2_OPEN = 1;</code>
     */
    U2_OPEN(1),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     *二人加密关闭
     * </pre>
     *
     * <code>U2_CLOSE = 0;</code>
     */
    public static final int U2_CLOSE_VALUE = 0;
    /**
     * <pre>
     *二人加密开启
     * </pre>
     *
     * <code>U2_OPEN = 1;</code>
     */
    public static final int U2_OPEN_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static U2EncryptionConfig valueOf(int value) {
      return forNumber(value);
    }

    public static U2EncryptionConfig forNumber(int value) {
      switch (value) {
        case 0: return U2_CLOSE;
        case 1: return U2_OPEN;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<U2EncryptionConfig>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        U2EncryptionConfig> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<U2EncryptionConfig>() {
            public U2EncryptionConfig findValueByNumber(int number) {
              return U2EncryptionConfig.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.akaxin.proto.core.ConfigProto.getDescriptor().getEnumTypes().get(3);
    }

    private static final U2EncryptionConfig[] VALUES = values();

    public static U2EncryptionConfig valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private U2EncryptionConfig(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:core.U2EncryptionConfig)
  }

  /**
   * <pre>
   *站点后台管理配置key
   * </pre>
   *
   * Protobuf enum {@code core.ConfigKey}
   */
  public enum ConfigKey
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <pre>
     *站点地址
     * </pre>
     *
     * <code>SITE_ADDRESS = 0;</code>
     */
    SITE_ADDRESS(0),
    /**
     * <pre>
     *站点端口
     * </pre>
     *
     * <code>SITE_PORT = 1;</code>
     */
    SITE_PORT(1),
    /**
     * <pre>
     *站点名称
     * </pre>
     *
     * <code>SITE_NAME = 2;</code>
     */
    SITE_NAME(2),
    /**
     * <pre>
     *站点logo
     * </pre>
     *
     * <code>SITE_LOGO = 3;</code>
     */
    SITE_LOGO(3),
    /**
     * <pre>
     *站点版本
     * </pre>
     *
     * <code>SITE_VERSION = 4;</code>
     */
    SITE_VERSION(4),
    /**
     * <pre>
     *站点介绍
     * </pre>
     *
     * <code>SITE_INTRODUCTION = 5;</code>
     */
    SITE_INTRODUCTION(5),
    /**
     * <pre>
     *实名状态
     * </pre>
     *
     * <code>REALNAME_STATUS = 6;</code>
     */
    REALNAME_STATUS(6),
    /**
     * <pre>
     *站点支持群最大成员数
     * </pre>
     *
     * <code>GROUP_MEMBERS_COUNT = 7;</code>
     */
    GROUP_MEMBERS_COUNT(7),
    /**
     * <pre>
     *站点图片支持最大尺寸
     * </pre>
     *
     * <code>PIC_SIZE = 8;</code>
     */
    PIC_SIZE(8),
    /**
     * <pre>
     *站点图片存放位置
     * </pre>
     *
     * <code>PIC_PATH = 9;</code>
     */
    PIC_PATH(9),
    /**
     * <pre>
     *站点状态，站点关闭(status=0)/站点开启(status=1)
     * </pre>
     *
     * <code>SITE_STATUS = 10;</code>
     */
    SITE_STATUS(10),
    /**
     * <pre>
     *站点关闭情况下，需要一个说明
     * </pre>
     *
     * <code>SITE_STATUS_INFO = 11;</code>
     */
    SITE_STATUS_INFO(11),
    /**
     * <pre>
     *站点超级管理员，唯一一个用户
     * </pre>
     *
     * <code>SITE_ADMIN = 12;</code>
     */
    SITE_ADMIN(12),
    /**
     * <pre>
     *站点http服务地址
     * </pre>
     *
     * <code>SITE_HTTP_ADDRESS = 13;</code>
     */
    SITE_HTTP_ADDRESS(13),
    /**
     * <pre>
     *站点http服务地址ip
     * </pre>
     *
     * <code>SITE_HTTP_PORT = 14;</code>
     */
    SITE_HTTP_PORT(14),
    /**
     * <pre>
     *二人消息绝密功能是否开启
     * </pre>
     *
     * <code>U2_ENCRYPTION_STATUS = 15;</code>
     */
    U2_ENCRYPTION_STATUS(15),
    /**
     * <pre>
     *数据库路径
     * </pre>
     *
     * <code>DB_PATH = 16;</code>
     */
    DB_PATH(16),
    /**
     * <pre>
     *PushClientStatus
     * </pre>
     *
     * <code>PUSH_CLIENT_STATUS = 17;</code>
     */
    PUSH_CLIENT_STATUS(17),
    /**
     * <pre>
     *系统的日志级别 DEBUG/INFO/ERROR
     * </pre>
     *
     * <code>LOG_LEVEL = 18;</code>
     */
    LOG_LEVEL(18),
    /**
     * <pre>
     *站点管理员，多个用户，用“,”隔开
     * </pre>
     *
     * <code>SITE_MANAGER = 19;</code>
     */
    SITE_MANAGER(19),
    /**
     * <pre>
     *邀请码状态
     * </pre>
     *
     * <code>INVITE_CODE_STATUS = 20;</code>
     */
    INVITE_CODE_STATUS(20),
    /**
     * <pre>
     *默认添加的用户好友
     * </pre>
     *
     * <code>DEFAULT_USER_FRIENDS = 21;</code>
     */
    DEFAULT_USER_FRIENDS(21),
    /**
     * <pre>
     *默认添加的用户群组
     * </pre>
     *
     * <code>DEFAULT_USER_GROUPS = 22;</code>
     */
    DEFAULT_USER_GROUPS(22),
    /**
     * <pre>
     *是否允许添加还有
     * </pre>
     *
     * <code>CONFIG_FRIEND_REQUEST = 23;</code>
     */
    CONFIG_FRIEND_REQUEST(23),
    /**
     * <pre>
     *是否允许添加群组
     * </pre>
     *
     * <code>CONFIG_CREATE_GROUP = 24;</code>
     */
    CONFIG_CREATE_GROUP(24),
    /**
     * <pre>
     *群二维码过期时间
     * </pre>
     *
     * <code>GROUP_QR_EXPIRE_TIME = 25;</code>
     */
    GROUP_QR_EXPIRE_TIME(25),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     *站点地址
     * </pre>
     *
     * <code>SITE_ADDRESS = 0;</code>
     */
    public static final int SITE_ADDRESS_VALUE = 0;
    /**
     * <pre>
     *站点端口
     * </pre>
     *
     * <code>SITE_PORT = 1;</code>
     */
    public static final int SITE_PORT_VALUE = 1;
    /**
     * <pre>
     *站点名称
     * </pre>
     *
     * <code>SITE_NAME = 2;</code>
     */
    public static final int SITE_NAME_VALUE = 2;
    /**
     * <pre>
     *站点logo
     * </pre>
     *
     * <code>SITE_LOGO = 3;</code>
     */
    public static final int SITE_LOGO_VALUE = 3;
    /**
     * <pre>
     *站点版本
     * </pre>
     *
     * <code>SITE_VERSION = 4;</code>
     */
    public static final int SITE_VERSION_VALUE = 4;
    /**
     * <pre>
     *站点介绍
     * </pre>
     *
     * <code>SITE_INTRODUCTION = 5;</code>
     */
    public static final int SITE_INTRODUCTION_VALUE = 5;
    /**
     * <pre>
     *实名状态
     * </pre>
     *
     * <code>REALNAME_STATUS = 6;</code>
     */
    public static final int REALNAME_STATUS_VALUE = 6;
    /**
     * <pre>
     *站点支持群最大成员数
     * </pre>
     *
     * <code>GROUP_MEMBERS_COUNT = 7;</code>
     */
    public static final int GROUP_MEMBERS_COUNT_VALUE = 7;
    /**
     * <pre>
     *站点图片支持最大尺寸
     * </pre>
     *
     * <code>PIC_SIZE = 8;</code>
     */
    public static final int PIC_SIZE_VALUE = 8;
    /**
     * <pre>
     *站点图片存放位置
     * </pre>
     *
     * <code>PIC_PATH = 9;</code>
     */
    public static final int PIC_PATH_VALUE = 9;
    /**
     * <pre>
     *站点状态，站点关闭(status=0)/站点开启(status=1)
     * </pre>
     *
     * <code>SITE_STATUS = 10;</code>
     */
    public static final int SITE_STATUS_VALUE = 10;
    /**
     * <pre>
     *站点关闭情况下，需要一个说明
     * </pre>
     *
     * <code>SITE_STATUS_INFO = 11;</code>
     */
    public static final int SITE_STATUS_INFO_VALUE = 11;
    /**
     * <pre>
     *站点超级管理员，唯一一个用户
     * </pre>
     *
     * <code>SITE_ADMIN = 12;</code>
     */
    public static final int SITE_ADMIN_VALUE = 12;
    /**
     * <pre>
     *站点http服务地址
     * </pre>
     *
     * <code>SITE_HTTP_ADDRESS = 13;</code>
     */
    public static final int SITE_HTTP_ADDRESS_VALUE = 13;
    /**
     * <pre>
     *站点http服务地址ip
     * </pre>
     *
     * <code>SITE_HTTP_PORT = 14;</code>
     */
    public static final int SITE_HTTP_PORT_VALUE = 14;
    /**
     * <pre>
     *二人消息绝密功能是否开启
     * </pre>
     *
     * <code>U2_ENCRYPTION_STATUS = 15;</code>
     */
    public static final int U2_ENCRYPTION_STATUS_VALUE = 15;
    /**
     * <pre>
     *数据库路径
     * </pre>
     *
     * <code>DB_PATH = 16;</code>
     */
    public static final int DB_PATH_VALUE = 16;
    /**
     * <pre>
     *PushClientStatus
     * </pre>
     *
     * <code>PUSH_CLIENT_STATUS = 17;</code>
     */
    public static final int PUSH_CLIENT_STATUS_VALUE = 17;
    /**
     * <pre>
     *系统的日志级别 DEBUG/INFO/ERROR
     * </pre>
     *
     * <code>LOG_LEVEL = 18;</code>
     */
    public static final int LOG_LEVEL_VALUE = 18;
    /**
     * <pre>
     *站点管理员，多个用户，用“,”隔开
     * </pre>
     *
     * <code>SITE_MANAGER = 19;</code>
     */
    public static final int SITE_MANAGER_VALUE = 19;
    /**
     * <pre>
     *邀请码状态
     * </pre>
     *
     * <code>INVITE_CODE_STATUS = 20;</code>
     */
    public static final int INVITE_CODE_STATUS_VALUE = 20;
    /**
     * <pre>
     *默认添加的用户好友
     * </pre>
     *
     * <code>DEFAULT_USER_FRIENDS = 21;</code>
     */
    public static final int DEFAULT_USER_FRIENDS_VALUE = 21;
    /**
     * <pre>
     *默认添加的用户群组
     * </pre>
     *
     * <code>DEFAULT_USER_GROUPS = 22;</code>
     */
    public static final int DEFAULT_USER_GROUPS_VALUE = 22;
    /**
     * <pre>
     *是否允许添加还有
     * </pre>
     *
     * <code>CONFIG_FRIEND_REQUEST = 23;</code>
     */
    public static final int CONFIG_FRIEND_REQUEST_VALUE = 23;
    /**
     * <pre>
     *是否允许添加群组
     * </pre>
     *
     * <code>CONFIG_CREATE_GROUP = 24;</code>
     */
    public static final int CONFIG_CREATE_GROUP_VALUE = 24;
    /**
     * <pre>
     *群二维码过期时间
     * </pre>
     *
     * <code>GROUP_QR_EXPIRE_TIME = 25;</code>
     */
    public static final int GROUP_QR_EXPIRE_TIME_VALUE = 25;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ConfigKey valueOf(int value) {
      return forNumber(value);
    }

    public static ConfigKey forNumber(int value) {
      switch (value) {
        case 0: return SITE_ADDRESS;
        case 1: return SITE_PORT;
        case 2: return SITE_NAME;
        case 3: return SITE_LOGO;
        case 4: return SITE_VERSION;
        case 5: return SITE_INTRODUCTION;
        case 6: return REALNAME_STATUS;
        case 7: return GROUP_MEMBERS_COUNT;
        case 8: return PIC_SIZE;
        case 9: return PIC_PATH;
        case 10: return SITE_STATUS;
        case 11: return SITE_STATUS_INFO;
        case 12: return SITE_ADMIN;
        case 13: return SITE_HTTP_ADDRESS;
        case 14: return SITE_HTTP_PORT;
        case 15: return U2_ENCRYPTION_STATUS;
        case 16: return DB_PATH;
        case 17: return PUSH_CLIENT_STATUS;
        case 18: return LOG_LEVEL;
        case 19: return SITE_MANAGER;
        case 20: return INVITE_CODE_STATUS;
        case 21: return DEFAULT_USER_FRIENDS;
        case 22: return DEFAULT_USER_GROUPS;
        case 23: return CONFIG_FRIEND_REQUEST;
        case 24: return CONFIG_CREATE_GROUP;
        case 25: return GROUP_QR_EXPIRE_TIME;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ConfigKey>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ConfigKey> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ConfigKey>() {
            public ConfigKey findValueByNumber(int number) {
              return ConfigKey.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.akaxin.proto.core.ConfigProto.getDescriptor().getEnumTypes().get(4);
    }

    private static final ConfigKey[] VALUES = values();

    public static ConfigKey valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ConfigKey(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:core.ConfigKey)
  }

  /**
   * <pre>
   *站点发送PUSH给客户端的三种状态
   * </pre>
   *
   * Protobuf enum {@code core.PushClientStatus}
   */
  public enum PushClientStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <pre>
     *站点不发送push给客户端
     * </pre>
     *
     * <code>PUSH_NO = 0;</code>
     */
    PUSH_NO(0),
    /**
     * <pre>
     *站点发送PUSH不展示文本内容
     * </pre>
     *
     * <code>PUSH_HIDDEN_TEXT = 1;</code>
     */
    PUSH_HIDDEN_TEXT(1),
    /**
     * <pre>
     *站点发送PUSH显示文本内容
     * </pre>
     *
     * <code>PUSH_DISPLAY_TEXT = 2;</code>
     */
    PUSH_DISPLAY_TEXT(2),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     *站点不发送push给客户端
     * </pre>
     *
     * <code>PUSH_NO = 0;</code>
     */
    public static final int PUSH_NO_VALUE = 0;
    /**
     * <pre>
     *站点发送PUSH不展示文本内容
     * </pre>
     *
     * <code>PUSH_HIDDEN_TEXT = 1;</code>
     */
    public static final int PUSH_HIDDEN_TEXT_VALUE = 1;
    /**
     * <pre>
     *站点发送PUSH显示文本内容
     * </pre>
     *
     * <code>PUSH_DISPLAY_TEXT = 2;</code>
     */
    public static final int PUSH_DISPLAY_TEXT_VALUE = 2;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static PushClientStatus valueOf(int value) {
      return forNumber(value);
    }

    public static PushClientStatus forNumber(int value) {
      switch (value) {
        case 0: return PUSH_NO;
        case 1: return PUSH_HIDDEN_TEXT;
        case 2: return PUSH_DISPLAY_TEXT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<PushClientStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        PushClientStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<PushClientStatus>() {
            public PushClientStatus findValueByNumber(int number) {
              return PushClientStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.akaxin.proto.core.ConfigProto.getDescriptor().getEnumTypes().get(5);
    }

    private static final PushClientStatus[] VALUES = values();

    public static PushClientStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private PushClientStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:core.PushClientStatus)
  }

  /**
   * <pre>
   * 是否允许用户加好友(发送好友请求)
   * 默认值为YES
   * enum的0值必须为默认值
   * https://developers.google.com/protocol-buffers/docs/proto3#enum
   * </pre>
   *
   * Protobuf enum {@code core.ConfigFriendRequest}
   */
  public enum ConfigFriendRequest
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>ConfigFriendRequest_YES = 0;</code>
     */
    ConfigFriendRequest_YES(0),
    /**
     * <code>ConfigFriendRequest_NO = 1;</code>
     */
    ConfigFriendRequest_NO(1),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>ConfigFriendRequest_YES = 0;</code>
     */
    public static final int ConfigFriendRequest_YES_VALUE = 0;
    /**
     * <code>ConfigFriendRequest_NO = 1;</code>
     */
    public static final int ConfigFriendRequest_NO_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ConfigFriendRequest valueOf(int value) {
      return forNumber(value);
    }

    public static ConfigFriendRequest forNumber(int value) {
      switch (value) {
        case 0: return ConfigFriendRequest_YES;
        case 1: return ConfigFriendRequest_NO;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ConfigFriendRequest>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ConfigFriendRequest> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ConfigFriendRequest>() {
            public ConfigFriendRequest findValueByNumber(int number) {
              return ConfigFriendRequest.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.akaxin.proto.core.ConfigProto.getDescriptor().getEnumTypes().get(6);
    }

    private static final ConfigFriendRequest[] VALUES = values();

    public static ConfigFriendRequest valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ConfigFriendRequest(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:core.ConfigFriendRequest)
  }

  /**
   * <pre>
   * 是否允许用户创建群组
   * 默认值为YES
   * enum的0值必须为默认值
   * https://developers.google.com/protocol-buffers/docs/proto3#enum
   * </pre>
   *
   * Protobuf enum {@code core.ConfigCreateGroup}
   */
  public enum ConfigCreateGroup
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>ConfigCreateGroup_YES = 0;</code>
     */
    ConfigCreateGroup_YES(0),
    /**
     * <code>ConfigCreateGroup_NO = 1;</code>
     */
    ConfigCreateGroup_NO(1),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>ConfigCreateGroup_YES = 0;</code>
     */
    public static final int ConfigCreateGroup_YES_VALUE = 0;
    /**
     * <code>ConfigCreateGroup_NO = 1;</code>
     */
    public static final int ConfigCreateGroup_NO_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ConfigCreateGroup valueOf(int value) {
      return forNumber(value);
    }

    public static ConfigCreateGroup forNumber(int value) {
      switch (value) {
        case 0: return ConfigCreateGroup_YES;
        case 1: return ConfigCreateGroup_NO;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ConfigCreateGroup>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ConfigCreateGroup> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ConfigCreateGroup>() {
            public ConfigCreateGroup findValueByNumber(int number) {
              return ConfigCreateGroup.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.akaxin.proto.core.ConfigProto.getDescriptor().getEnumTypes().get(7);
    }

    private static final ConfigCreateGroup[] VALUES = values();

    public static ConfigCreateGroup valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ConfigCreateGroup(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:core.ConfigCreateGroup)
  }

  /**
   * Protobuf enum {@code core.ConfigGroupQRExpireTime}
   */
  public enum ConfigGroupQRExpireTime
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>EXPIRE_1_DAY = 0;</code>
     */
    EXPIRE_1_DAY(0),
    /**
     * <code>EXPIRE_7_DAYS = 1;</code>
     */
    EXPIRE_7_DAYS(1),
    /**
     * <code>EXPIRE_14_DAYS = 2;</code>
     */
    EXPIRE_14_DAYS(2),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>EXPIRE_1_DAY = 0;</code>
     */
    public static final int EXPIRE_1_DAY_VALUE = 0;
    /**
     * <code>EXPIRE_7_DAYS = 1;</code>
     */
    public static final int EXPIRE_7_DAYS_VALUE = 1;
    /**
     * <code>EXPIRE_14_DAYS = 2;</code>
     */
    public static final int EXPIRE_14_DAYS_VALUE = 2;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ConfigGroupQRExpireTime valueOf(int value) {
      return forNumber(value);
    }

    public static ConfigGroupQRExpireTime forNumber(int value) {
      switch (value) {
        case 0: return EXPIRE_1_DAY;
        case 1: return EXPIRE_7_DAYS;
        case 2: return EXPIRE_14_DAYS;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ConfigGroupQRExpireTime>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ConfigGroupQRExpireTime> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ConfigGroupQRExpireTime>() {
            public ConfigGroupQRExpireTime findValueByNumber(int number) {
              return ConfigGroupQRExpireTime.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.akaxin.proto.core.ConfigProto.getDescriptor().getEnumTypes().get(8);
    }

    private static final ConfigGroupQRExpireTime[] VALUES = values();

    public static ConfigGroupQRExpireTime valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ConfigGroupQRExpireTime(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:core.ConfigGroupQRExpireTime)
  }

  public interface SiteConfigOrBuilder extends
      // @@protoc_insertion_point(interface_extends:core.SiteConfig)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *站点ip
     * </pre>
     *
     * <code>string site_address = 1;</code>
     */
    java.lang.String getSiteAddress();
    /**
     * <pre>
     *站点ip
     * </pre>
     *
     * <code>string site_address = 1;</code>
     */
    com.google.protobuf.ByteString
        getSiteAddressBytes();

    /**
     * <pre>
     *站点地址
     * </pre>
     *
     * <code>int32 site_port = 2;</code>
     */
    int getSitePort();

    /**
     * <pre>
     *站点名称
     * </pre>
     *
     * <code>string site_name = 3;</code>
     */
    java.lang.String getSiteName();
    /**
     * <pre>
     *站点名称
     * </pre>
     *
     * <code>string site_name = 3;</code>
     */
    com.google.protobuf.ByteString
        getSiteNameBytes();

    /**
     * <pre>
     *站点logo
     * </pre>
     *
     * <code>string site_logo = 4;</code>
     */
    java.lang.String getSiteLogo();
    /**
     * <pre>
     *站点logo
     * </pre>
     *
     * <code>string site_logo = 4;</code>
     */
    com.google.protobuf.ByteString
        getSiteLogoBytes();

    /**
     * <pre>
     *站点版本
     * </pre>
     *
     * <code>string site_version = 5;</code>
     */
    java.lang.String getSiteVersion();
    /**
     * <pre>
     *站点版本
     * </pre>
     *
     * <code>string site_version = 5;</code>
     */
    com.google.protobuf.ByteString
        getSiteVersionBytes();

    /**
     * <pre>
     *站点介绍
     * </pre>
     *
     * <code>string site_introduction = 6;</code>
     */
    java.lang.String getSiteIntroduction();
    /**
     * <pre>
     *站点介绍
     * </pre>
     *
     * <code>string site_introduction = 6;</code>
     */
    com.google.protobuf.ByteString
        getSiteIntroductionBytes();

    /**
     * <pre>
     *站点是否需要实名
     * </pre>
     *
     * <code>.core.RealNameConfig real_name_config = 7;</code>
     */
    int getRealNameConfigValue();
    /**
     * <pre>
     *站点是否需要实名
     * </pre>
     *
     * <code>.core.RealNameConfig real_name_config = 7;</code>
     */
    com.akaxin.proto.core.ConfigProto.RealNameConfig getRealNameConfig();

    /**
     * <pre>
     *支持图片大小（width x length）
     * </pre>
     *
     * <code>string pic_size = 8;</code>
     */
    java.lang.String getPicSize();
    /**
     * <pre>
     *支持图片大小（width x length）
     * </pre>
     *
     * <code>string pic_size = 8;</code>
     */
    com.google.protobuf.ByteString
        getPicSizeBytes();

    /**
     * <pre>
     *站点状态
     * </pre>
     *
     * <code>.core.SiteStatusConfig site_status_config = 9;</code>
     */
    int getSiteStatusConfigValue();
    /**
     * <pre>
     *站点状态
     * </pre>
     *
     * <code>.core.SiteStatusConfig site_status_config = 9;</code>
     */
    com.akaxin.proto.core.ConfigProto.SiteStatusConfig getSiteStatusConfig();

    /**
     * <pre>
     *站点状态说明，一般关闭站点情况使用
     * </pre>
     *
     * <code>string site_status_info = 10;</code>
     */
    java.lang.String getSiteStatusInfo();
    /**
     * <pre>
     *站点状态说明，一般关闭站点情况使用
     * </pre>
     *
     * <code>string site_status_info = 10;</code>
     */
    com.google.protobuf.ByteString
        getSiteStatusInfoBytes();

    /**
     * <pre>
     *二人消息加密状态
     * </pre>
     *
     * <code>.core.U2EncryptionConfig u2_encryption_config = 11;</code>
     */
    int getU2EncryptionConfigValue();
    /**
     * <pre>
     *二人消息加密状态
     * </pre>
     *
     * <code>.core.U2EncryptionConfig u2_encryption_config = 11;</code>
     */
    com.akaxin.proto.core.ConfigProto.U2EncryptionConfig getU2EncryptionConfig();

    /**
     * <pre>
     *站点注册是否需要邀请码
     * </pre>
     *
     * <code>.core.InviteCodeConfig invite_code_config = 12;</code>
     */
    int getInviteCodeConfigValue();
    /**
     * <pre>
     *站点注册是否需要邀请码
     * </pre>
     *
     * <code>.core.InviteCodeConfig invite_code_config = 12;</code>
     */
    com.akaxin.proto.core.ConfigProto.InviteCodeConfig getInviteCodeConfig();
  }
  /**
   * <pre>
   * 站点配置信息
   * </pre>
   *
   * Protobuf type {@code core.SiteConfig}
   */
  public  static final class SiteConfig extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:core.SiteConfig)
      SiteConfigOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SiteConfig.newBuilder() to construct.
    private SiteConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SiteConfig() {
      siteAddress_ = "";
      sitePort_ = 0;
      siteName_ = "";
      siteLogo_ = "";
      siteVersion_ = "";
      siteIntroduction_ = "";
      realNameConfig_ = 0;
      picSize_ = "";
      siteStatusConfig_ = 0;
      siteStatusInfo_ = "";
      u2EncryptionConfig_ = 0;
      inviteCodeConfig_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SiteConfig(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              siteAddress_ = s;
              break;
            }
            case 16: {

              sitePort_ = input.readInt32();
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              siteName_ = s;
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();

              siteLogo_ = s;
              break;
            }
            case 42: {
              java.lang.String s = input.readStringRequireUtf8();

              siteVersion_ = s;
              break;
            }
            case 50: {
              java.lang.String s = input.readStringRequireUtf8();

              siteIntroduction_ = s;
              break;
            }
            case 56: {
              int rawValue = input.readEnum();

              realNameConfig_ = rawValue;
              break;
            }
            case 66: {
              java.lang.String s = input.readStringRequireUtf8();

              picSize_ = s;
              break;
            }
            case 72: {
              int rawValue = input.readEnum();

              siteStatusConfig_ = rawValue;
              break;
            }
            case 82: {
              java.lang.String s = input.readStringRequireUtf8();

              siteStatusInfo_ = s;
              break;
            }
            case 88: {
              int rawValue = input.readEnum();

              u2EncryptionConfig_ = rawValue;
              break;
            }
            case 96: {
              int rawValue = input.readEnum();

              inviteCodeConfig_ = rawValue;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akaxin.proto.core.ConfigProto.internal_static_core_SiteConfig_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akaxin.proto.core.ConfigProto.internal_static_core_SiteConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akaxin.proto.core.ConfigProto.SiteConfig.class, com.akaxin.proto.core.ConfigProto.SiteConfig.Builder.class);
    }

    public static final int SITE_ADDRESS_FIELD_NUMBER = 1;
    private volatile java.lang.Object siteAddress_;
    /**
     * <pre>
     *站点ip
     * </pre>
     *
     * <code>string site_address = 1;</code>
     */
    public java.lang.String getSiteAddress() {
      java.lang.Object ref = siteAddress_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        siteAddress_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *站点ip
     * </pre>
     *
     * <code>string site_address = 1;</code>
     */
    public com.google.protobuf.ByteString
        getSiteAddressBytes() {
      java.lang.Object ref = siteAddress_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        siteAddress_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SITE_PORT_FIELD_NUMBER = 2;
    private int sitePort_;
    /**
     * <pre>
     *站点地址
     * </pre>
     *
     * <code>int32 site_port = 2;</code>
     */
    public int getSitePort() {
      return sitePort_;
    }

    public static final int SITE_NAME_FIELD_NUMBER = 3;
    private volatile java.lang.Object siteName_;
    /**
     * <pre>
     *站点名称
     * </pre>
     *
     * <code>string site_name = 3;</code>
     */
    public java.lang.String getSiteName() {
      java.lang.Object ref = siteName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        siteName_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *站点名称
     * </pre>
     *
     * <code>string site_name = 3;</code>
     */
    public com.google.protobuf.ByteString
        getSiteNameBytes() {
      java.lang.Object ref = siteName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        siteName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SITE_LOGO_FIELD_NUMBER = 4;
    private volatile java.lang.Object siteLogo_;
    /**
     * <pre>
     *站点logo
     * </pre>
     *
     * <code>string site_logo = 4;</code>
     */
    public java.lang.String getSiteLogo() {
      java.lang.Object ref = siteLogo_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        siteLogo_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *站点logo
     * </pre>
     *
     * <code>string site_logo = 4;</code>
     */
    public com.google.protobuf.ByteString
        getSiteLogoBytes() {
      java.lang.Object ref = siteLogo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        siteLogo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SITE_VERSION_FIELD_NUMBER = 5;
    private volatile java.lang.Object siteVersion_;
    /**
     * <pre>
     *站点版本
     * </pre>
     *
     * <code>string site_version = 5;</code>
     */
    public java.lang.String getSiteVersion() {
      java.lang.Object ref = siteVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        siteVersion_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *站点版本
     * </pre>
     *
     * <code>string site_version = 5;</code>
     */
    public com.google.protobuf.ByteString
        getSiteVersionBytes() {
      java.lang.Object ref = siteVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        siteVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SITE_INTRODUCTION_FIELD_NUMBER = 6;
    private volatile java.lang.Object siteIntroduction_;
    /**
     * <pre>
     *站点介绍
     * </pre>
     *
     * <code>string site_introduction = 6;</code>
     */
    public java.lang.String getSiteIntroduction() {
      java.lang.Object ref = siteIntroduction_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        siteIntroduction_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *站点介绍
     * </pre>
     *
     * <code>string site_introduction = 6;</code>
     */
    public com.google.protobuf.ByteString
        getSiteIntroductionBytes() {
      java.lang.Object ref = siteIntroduction_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        siteIntroduction_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REAL_NAME_CONFIG_FIELD_NUMBER = 7;
    private int realNameConfig_;
    /**
     * <pre>
     *站点是否需要实名
     * </pre>
     *
     * <code>.core.RealNameConfig real_name_config = 7;</code>
     */
    public int getRealNameConfigValue() {
      return realNameConfig_;
    }
    /**
     * <pre>
     *站点是否需要实名
     * </pre>
     *
     * <code>.core.RealNameConfig real_name_config = 7;</code>
     */
    public com.akaxin.proto.core.ConfigProto.RealNameConfig getRealNameConfig() {
      com.akaxin.proto.core.ConfigProto.RealNameConfig result = com.akaxin.proto.core.ConfigProto.RealNameConfig.valueOf(realNameConfig_);
      return result == null ? com.akaxin.proto.core.ConfigProto.RealNameConfig.UNRECOGNIZED : result;
    }

    public static final int PIC_SIZE_FIELD_NUMBER = 8;
    private volatile java.lang.Object picSize_;
    /**
     * <pre>
     *支持图片大小（width x length）
     * </pre>
     *
     * <code>string pic_size = 8;</code>
     */
    public java.lang.String getPicSize() {
      java.lang.Object ref = picSize_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        picSize_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *支持图片大小（width x length）
     * </pre>
     *
     * <code>string pic_size = 8;</code>
     */
    public com.google.protobuf.ByteString
        getPicSizeBytes() {
      java.lang.Object ref = picSize_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        picSize_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SITE_STATUS_CONFIG_FIELD_NUMBER = 9;
    private int siteStatusConfig_;
    /**
     * <pre>
     *站点状态
     * </pre>
     *
     * <code>.core.SiteStatusConfig site_status_config = 9;</code>
     */
    public int getSiteStatusConfigValue() {
      return siteStatusConfig_;
    }
    /**
     * <pre>
     *站点状态
     * </pre>
     *
     * <code>.core.SiteStatusConfig site_status_config = 9;</code>
     */
    public com.akaxin.proto.core.ConfigProto.SiteStatusConfig getSiteStatusConfig() {
      com.akaxin.proto.core.ConfigProto.SiteStatusConfig result = com.akaxin.proto.core.ConfigProto.SiteStatusConfig.valueOf(siteStatusConfig_);
      return result == null ? com.akaxin.proto.core.ConfigProto.SiteStatusConfig.UNRECOGNIZED : result;
    }

    public static final int SITE_STATUS_INFO_FIELD_NUMBER = 10;
    private volatile java.lang.Object siteStatusInfo_;
    /**
     * <pre>
     *站点状态说明，一般关闭站点情况使用
     * </pre>
     *
     * <code>string site_status_info = 10;</code>
     */
    public java.lang.String getSiteStatusInfo() {
      java.lang.Object ref = siteStatusInfo_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        siteStatusInfo_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *站点状态说明，一般关闭站点情况使用
     * </pre>
     *
     * <code>string site_status_info = 10;</code>
     */
    public com.google.protobuf.ByteString
        getSiteStatusInfoBytes() {
      java.lang.Object ref = siteStatusInfo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        siteStatusInfo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int U2_ENCRYPTION_CONFIG_FIELD_NUMBER = 11;
    private int u2EncryptionConfig_;
    /**
     * <pre>
     *二人消息加密状态
     * </pre>
     *
     * <code>.core.U2EncryptionConfig u2_encryption_config = 11;</code>
     */
    public int getU2EncryptionConfigValue() {
      return u2EncryptionConfig_;
    }
    /**
     * <pre>
     *二人消息加密状态
     * </pre>
     *
     * <code>.core.U2EncryptionConfig u2_encryption_config = 11;</code>
     */
    public com.akaxin.proto.core.ConfigProto.U2EncryptionConfig getU2EncryptionConfig() {
      com.akaxin.proto.core.ConfigProto.U2EncryptionConfig result = com.akaxin.proto.core.ConfigProto.U2EncryptionConfig.valueOf(u2EncryptionConfig_);
      return result == null ? com.akaxin.proto.core.ConfigProto.U2EncryptionConfig.UNRECOGNIZED : result;
    }

    public static final int INVITE_CODE_CONFIG_FIELD_NUMBER = 12;
    private int inviteCodeConfig_;
    /**
     * <pre>
     *站点注册是否需要邀请码
     * </pre>
     *
     * <code>.core.InviteCodeConfig invite_code_config = 12;</code>
     */
    public int getInviteCodeConfigValue() {
      return inviteCodeConfig_;
    }
    /**
     * <pre>
     *站点注册是否需要邀请码
     * </pre>
     *
     * <code>.core.InviteCodeConfig invite_code_config = 12;</code>
     */
    public com.akaxin.proto.core.ConfigProto.InviteCodeConfig getInviteCodeConfig() {
      com.akaxin.proto.core.ConfigProto.InviteCodeConfig result = com.akaxin.proto.core.ConfigProto.InviteCodeConfig.valueOf(inviteCodeConfig_);
      return result == null ? com.akaxin.proto.core.ConfigProto.InviteCodeConfig.UNRECOGNIZED : result;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getSiteAddressBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, siteAddress_);
      }
      if (sitePort_ != 0) {
        output.writeInt32(2, sitePort_);
      }
      if (!getSiteNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, siteName_);
      }
      if (!getSiteLogoBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, siteLogo_);
      }
      if (!getSiteVersionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, siteVersion_);
      }
      if (!getSiteIntroductionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, siteIntroduction_);
      }
      if (realNameConfig_ != com.akaxin.proto.core.ConfigProto.RealNameConfig.REALNAME_NO.getNumber()) {
        output.writeEnum(7, realNameConfig_);
      }
      if (!getPicSizeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, picSize_);
      }
      if (siteStatusConfig_ != com.akaxin.proto.core.ConfigProto.SiteStatusConfig.CLOSE.getNumber()) {
        output.writeEnum(9, siteStatusConfig_);
      }
      if (!getSiteStatusInfoBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, siteStatusInfo_);
      }
      if (u2EncryptionConfig_ != com.akaxin.proto.core.ConfigProto.U2EncryptionConfig.U2_CLOSE.getNumber()) {
        output.writeEnum(11, u2EncryptionConfig_);
      }
      if (inviteCodeConfig_ != com.akaxin.proto.core.ConfigProto.InviteCodeConfig.UIC_NO.getNumber()) {
        output.writeEnum(12, inviteCodeConfig_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!getSiteAddressBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, siteAddress_);
      }
      if (sitePort_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, sitePort_);
      }
      if (!getSiteNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, siteName_);
      }
      if (!getSiteLogoBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, siteLogo_);
      }
      if (!getSiteVersionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, siteVersion_);
      }
      if (!getSiteIntroductionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, siteIntroduction_);
      }
      if (realNameConfig_ != com.akaxin.proto.core.ConfigProto.RealNameConfig.REALNAME_NO.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(7, realNameConfig_);
      }
      if (!getPicSizeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, picSize_);
      }
      if (siteStatusConfig_ != com.akaxin.proto.core.ConfigProto.SiteStatusConfig.CLOSE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(9, siteStatusConfig_);
      }
      if (!getSiteStatusInfoBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, siteStatusInfo_);
      }
      if (u2EncryptionConfig_ != com.akaxin.proto.core.ConfigProto.U2EncryptionConfig.U2_CLOSE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(11, u2EncryptionConfig_);
      }
      if (inviteCodeConfig_ != com.akaxin.proto.core.ConfigProto.InviteCodeConfig.UIC_NO.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(12, inviteCodeConfig_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.akaxin.proto.core.ConfigProto.SiteConfig)) {
        return super.equals(obj);
      }
      com.akaxin.proto.core.ConfigProto.SiteConfig other = (com.akaxin.proto.core.ConfigProto.SiteConfig) obj;

      boolean result = true;
      result = result && getSiteAddress()
          .equals(other.getSiteAddress());
      result = result && (getSitePort()
          == other.getSitePort());
      result = result && getSiteName()
          .equals(other.getSiteName());
      result = result && getSiteLogo()
          .equals(other.getSiteLogo());
      result = result && getSiteVersion()
          .equals(other.getSiteVersion());
      result = result && getSiteIntroduction()
          .equals(other.getSiteIntroduction());
      result = result && realNameConfig_ == other.realNameConfig_;
      result = result && getPicSize()
          .equals(other.getPicSize());
      result = result && siteStatusConfig_ == other.siteStatusConfig_;
      result = result && getSiteStatusInfo()
          .equals(other.getSiteStatusInfo());
      result = result && u2EncryptionConfig_ == other.u2EncryptionConfig_;
      result = result && inviteCodeConfig_ == other.inviteCodeConfig_;
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SITE_ADDRESS_FIELD_NUMBER;
      hash = (53 * hash) + getSiteAddress().hashCode();
      hash = (37 * hash) + SITE_PORT_FIELD_NUMBER;
      hash = (53 * hash) + getSitePort();
      hash = (37 * hash) + SITE_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getSiteName().hashCode();
      hash = (37 * hash) + SITE_LOGO_FIELD_NUMBER;
      hash = (53 * hash) + getSiteLogo().hashCode();
      hash = (37 * hash) + SITE_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getSiteVersion().hashCode();
      hash = (37 * hash) + SITE_INTRODUCTION_FIELD_NUMBER;
      hash = (53 * hash) + getSiteIntroduction().hashCode();
      hash = (37 * hash) + REAL_NAME_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + realNameConfig_;
      hash = (37 * hash) + PIC_SIZE_FIELD_NUMBER;
      hash = (53 * hash) + getPicSize().hashCode();
      hash = (37 * hash) + SITE_STATUS_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + siteStatusConfig_;
      hash = (37 * hash) + SITE_STATUS_INFO_FIELD_NUMBER;
      hash = (53 * hash) + getSiteStatusInfo().hashCode();
      hash = (37 * hash) + U2_ENCRYPTION_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + u2EncryptionConfig_;
      hash = (37 * hash) + INVITE_CODE_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + inviteCodeConfig_;
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.akaxin.proto.core.ConfigProto.SiteConfig prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * 站点配置信息
     * </pre>
     *
     * Protobuf type {@code core.SiteConfig}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:core.SiteConfig)
        com.akaxin.proto.core.ConfigProto.SiteConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akaxin.proto.core.ConfigProto.internal_static_core_SiteConfig_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akaxin.proto.core.ConfigProto.internal_static_core_SiteConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akaxin.proto.core.ConfigProto.SiteConfig.class, com.akaxin.proto.core.ConfigProto.SiteConfig.Builder.class);
      }

      // Construct using com.akaxin.proto.core.ConfigProto.SiteConfig.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        siteAddress_ = "";

        sitePort_ = 0;

        siteName_ = "";

        siteLogo_ = "";

        siteVersion_ = "";

        siteIntroduction_ = "";

        realNameConfig_ = 0;

        picSize_ = "";

        siteStatusConfig_ = 0;

        siteStatusInfo_ = "";

        u2EncryptionConfig_ = 0;

        inviteCodeConfig_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akaxin.proto.core.ConfigProto.internal_static_core_SiteConfig_descriptor;
      }

      public com.akaxin.proto.core.ConfigProto.SiteConfig getDefaultInstanceForType() {
        return com.akaxin.proto.core.ConfigProto.SiteConfig.getDefaultInstance();
      }

      public com.akaxin.proto.core.ConfigProto.SiteConfig build() {
        com.akaxin.proto.core.ConfigProto.SiteConfig result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akaxin.proto.core.ConfigProto.SiteConfig buildPartial() {
        com.akaxin.proto.core.ConfigProto.SiteConfig result = new com.akaxin.proto.core.ConfigProto.SiteConfig(this);
        result.siteAddress_ = siteAddress_;
        result.sitePort_ = sitePort_;
        result.siteName_ = siteName_;
        result.siteLogo_ = siteLogo_;
        result.siteVersion_ = siteVersion_;
        result.siteIntroduction_ = siteIntroduction_;
        result.realNameConfig_ = realNameConfig_;
        result.picSize_ = picSize_;
        result.siteStatusConfig_ = siteStatusConfig_;
        result.siteStatusInfo_ = siteStatusInfo_;
        result.u2EncryptionConfig_ = u2EncryptionConfig_;
        result.inviteCodeConfig_ = inviteCodeConfig_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.akaxin.proto.core.ConfigProto.SiteConfig other) {
        if (other == com.akaxin.proto.core.ConfigProto.SiteConfig.getDefaultInstance()) return this;
        if (!other.getSiteAddress().isEmpty()) {
          siteAddress_ = other.siteAddress_;
          onChanged();
        }
        if (other.getSitePort() != 0) {
          setSitePort(other.getSitePort());
        }
        if (!other.getSiteName().isEmpty()) {
          siteName_ = other.siteName_;
          onChanged();
        }
        if (!other.getSiteLogo().isEmpty()) {
          siteLogo_ = other.siteLogo_;
          onChanged();
        }
        if (!other.getSiteVersion().isEmpty()) {
          siteVersion_ = other.siteVersion_;
          onChanged();
        }
        if (!other.getSiteIntroduction().isEmpty()) {
          siteIntroduction_ = other.siteIntroduction_;
          onChanged();
        }
        if (other.realNameConfig_ != 0) {
          setRealNameConfigValue(other.getRealNameConfigValue());
        }
        if (!other.getPicSize().isEmpty()) {
          picSize_ = other.picSize_;
          onChanged();
        }
        if (other.siteStatusConfig_ != 0) {
          setSiteStatusConfigValue(other.getSiteStatusConfigValue());
        }
        if (!other.getSiteStatusInfo().isEmpty()) {
          siteStatusInfo_ = other.siteStatusInfo_;
          onChanged();
        }
        if (other.u2EncryptionConfig_ != 0) {
          setU2EncryptionConfigValue(other.getU2EncryptionConfigValue());
        }
        if (other.inviteCodeConfig_ != 0) {
          setInviteCodeConfigValue(other.getInviteCodeConfigValue());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akaxin.proto.core.ConfigProto.SiteConfig parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akaxin.proto.core.ConfigProto.SiteConfig) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object siteAddress_ = "";
      /**
       * <pre>
       *站点ip
       * </pre>
       *
       * <code>string site_address = 1;</code>
       */
      public java.lang.String getSiteAddress() {
        java.lang.Object ref = siteAddress_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          siteAddress_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *站点ip
       * </pre>
       *
       * <code>string site_address = 1;</code>
       */
      public com.google.protobuf.ByteString
          getSiteAddressBytes() {
        java.lang.Object ref = siteAddress_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          siteAddress_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *站点ip
       * </pre>
       *
       * <code>string site_address = 1;</code>
       */
      public Builder setSiteAddress(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        siteAddress_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点ip
       * </pre>
       *
       * <code>string site_address = 1;</code>
       */
      public Builder clearSiteAddress() {
        
        siteAddress_ = getDefaultInstance().getSiteAddress();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点ip
       * </pre>
       *
       * <code>string site_address = 1;</code>
       */
      public Builder setSiteAddressBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        siteAddress_ = value;
        onChanged();
        return this;
      }

      private int sitePort_ ;
      /**
       * <pre>
       *站点地址
       * </pre>
       *
       * <code>int32 site_port = 2;</code>
       */
      public int getSitePort() {
        return sitePort_;
      }
      /**
       * <pre>
       *站点地址
       * </pre>
       *
       * <code>int32 site_port = 2;</code>
       */
      public Builder setSitePort(int value) {
        
        sitePort_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点地址
       * </pre>
       *
       * <code>int32 site_port = 2;</code>
       */
      public Builder clearSitePort() {
        
        sitePort_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object siteName_ = "";
      /**
       * <pre>
       *站点名称
       * </pre>
       *
       * <code>string site_name = 3;</code>
       */
      public java.lang.String getSiteName() {
        java.lang.Object ref = siteName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          siteName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *站点名称
       * </pre>
       *
       * <code>string site_name = 3;</code>
       */
      public com.google.protobuf.ByteString
          getSiteNameBytes() {
        java.lang.Object ref = siteName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          siteName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *站点名称
       * </pre>
       *
       * <code>string site_name = 3;</code>
       */
      public Builder setSiteName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        siteName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点名称
       * </pre>
       *
       * <code>string site_name = 3;</code>
       */
      public Builder clearSiteName() {
        
        siteName_ = getDefaultInstance().getSiteName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点名称
       * </pre>
       *
       * <code>string site_name = 3;</code>
       */
      public Builder setSiteNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        siteName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object siteLogo_ = "";
      /**
       * <pre>
       *站点logo
       * </pre>
       *
       * <code>string site_logo = 4;</code>
       */
      public java.lang.String getSiteLogo() {
        java.lang.Object ref = siteLogo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          siteLogo_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *站点logo
       * </pre>
       *
       * <code>string site_logo = 4;</code>
       */
      public com.google.protobuf.ByteString
          getSiteLogoBytes() {
        java.lang.Object ref = siteLogo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          siteLogo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *站点logo
       * </pre>
       *
       * <code>string site_logo = 4;</code>
       */
      public Builder setSiteLogo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        siteLogo_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点logo
       * </pre>
       *
       * <code>string site_logo = 4;</code>
       */
      public Builder clearSiteLogo() {
        
        siteLogo_ = getDefaultInstance().getSiteLogo();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点logo
       * </pre>
       *
       * <code>string site_logo = 4;</code>
       */
      public Builder setSiteLogoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        siteLogo_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object siteVersion_ = "";
      /**
       * <pre>
       *站点版本
       * </pre>
       *
       * <code>string site_version = 5;</code>
       */
      public java.lang.String getSiteVersion() {
        java.lang.Object ref = siteVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          siteVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *站点版本
       * </pre>
       *
       * <code>string site_version = 5;</code>
       */
      public com.google.protobuf.ByteString
          getSiteVersionBytes() {
        java.lang.Object ref = siteVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          siteVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *站点版本
       * </pre>
       *
       * <code>string site_version = 5;</code>
       */
      public Builder setSiteVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        siteVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点版本
       * </pre>
       *
       * <code>string site_version = 5;</code>
       */
      public Builder clearSiteVersion() {
        
        siteVersion_ = getDefaultInstance().getSiteVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点版本
       * </pre>
       *
       * <code>string site_version = 5;</code>
       */
      public Builder setSiteVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        siteVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object siteIntroduction_ = "";
      /**
       * <pre>
       *站点介绍
       * </pre>
       *
       * <code>string site_introduction = 6;</code>
       */
      public java.lang.String getSiteIntroduction() {
        java.lang.Object ref = siteIntroduction_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          siteIntroduction_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *站点介绍
       * </pre>
       *
       * <code>string site_introduction = 6;</code>
       */
      public com.google.protobuf.ByteString
          getSiteIntroductionBytes() {
        java.lang.Object ref = siteIntroduction_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          siteIntroduction_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *站点介绍
       * </pre>
       *
       * <code>string site_introduction = 6;</code>
       */
      public Builder setSiteIntroduction(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        siteIntroduction_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点介绍
       * </pre>
       *
       * <code>string site_introduction = 6;</code>
       */
      public Builder clearSiteIntroduction() {
        
        siteIntroduction_ = getDefaultInstance().getSiteIntroduction();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点介绍
       * </pre>
       *
       * <code>string site_introduction = 6;</code>
       */
      public Builder setSiteIntroductionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        siteIntroduction_ = value;
        onChanged();
        return this;
      }

      private int realNameConfig_ = 0;
      /**
       * <pre>
       *站点是否需要实名
       * </pre>
       *
       * <code>.core.RealNameConfig real_name_config = 7;</code>
       */
      public int getRealNameConfigValue() {
        return realNameConfig_;
      }
      /**
       * <pre>
       *站点是否需要实名
       * </pre>
       *
       * <code>.core.RealNameConfig real_name_config = 7;</code>
       */
      public Builder setRealNameConfigValue(int value) {
        realNameConfig_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点是否需要实名
       * </pre>
       *
       * <code>.core.RealNameConfig real_name_config = 7;</code>
       */
      public com.akaxin.proto.core.ConfigProto.RealNameConfig getRealNameConfig() {
        com.akaxin.proto.core.ConfigProto.RealNameConfig result = com.akaxin.proto.core.ConfigProto.RealNameConfig.valueOf(realNameConfig_);
        return result == null ? com.akaxin.proto.core.ConfigProto.RealNameConfig.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *站点是否需要实名
       * </pre>
       *
       * <code>.core.RealNameConfig real_name_config = 7;</code>
       */
      public Builder setRealNameConfig(com.akaxin.proto.core.ConfigProto.RealNameConfig value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        realNameConfig_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点是否需要实名
       * </pre>
       *
       * <code>.core.RealNameConfig real_name_config = 7;</code>
       */
      public Builder clearRealNameConfig() {
        
        realNameConfig_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object picSize_ = "";
      /**
       * <pre>
       *支持图片大小（width x length）
       * </pre>
       *
       * <code>string pic_size = 8;</code>
       */
      public java.lang.String getPicSize() {
        java.lang.Object ref = picSize_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          picSize_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *支持图片大小（width x length）
       * </pre>
       *
       * <code>string pic_size = 8;</code>
       */
      public com.google.protobuf.ByteString
          getPicSizeBytes() {
        java.lang.Object ref = picSize_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          picSize_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *支持图片大小（width x length）
       * </pre>
       *
       * <code>string pic_size = 8;</code>
       */
      public Builder setPicSize(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        picSize_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *支持图片大小（width x length）
       * </pre>
       *
       * <code>string pic_size = 8;</code>
       */
      public Builder clearPicSize() {
        
        picSize_ = getDefaultInstance().getPicSize();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *支持图片大小（width x length）
       * </pre>
       *
       * <code>string pic_size = 8;</code>
       */
      public Builder setPicSizeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        picSize_ = value;
        onChanged();
        return this;
      }

      private int siteStatusConfig_ = 0;
      /**
       * <pre>
       *站点状态
       * </pre>
       *
       * <code>.core.SiteStatusConfig site_status_config = 9;</code>
       */
      public int getSiteStatusConfigValue() {
        return siteStatusConfig_;
      }
      /**
       * <pre>
       *站点状态
       * </pre>
       *
       * <code>.core.SiteStatusConfig site_status_config = 9;</code>
       */
      public Builder setSiteStatusConfigValue(int value) {
        siteStatusConfig_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点状态
       * </pre>
       *
       * <code>.core.SiteStatusConfig site_status_config = 9;</code>
       */
      public com.akaxin.proto.core.ConfigProto.SiteStatusConfig getSiteStatusConfig() {
        com.akaxin.proto.core.ConfigProto.SiteStatusConfig result = com.akaxin.proto.core.ConfigProto.SiteStatusConfig.valueOf(siteStatusConfig_);
        return result == null ? com.akaxin.proto.core.ConfigProto.SiteStatusConfig.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *站点状态
       * </pre>
       *
       * <code>.core.SiteStatusConfig site_status_config = 9;</code>
       */
      public Builder setSiteStatusConfig(com.akaxin.proto.core.ConfigProto.SiteStatusConfig value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        siteStatusConfig_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点状态
       * </pre>
       *
       * <code>.core.SiteStatusConfig site_status_config = 9;</code>
       */
      public Builder clearSiteStatusConfig() {
        
        siteStatusConfig_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object siteStatusInfo_ = "";
      /**
       * <pre>
       *站点状态说明，一般关闭站点情况使用
       * </pre>
       *
       * <code>string site_status_info = 10;</code>
       */
      public java.lang.String getSiteStatusInfo() {
        java.lang.Object ref = siteStatusInfo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          siteStatusInfo_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *站点状态说明，一般关闭站点情况使用
       * </pre>
       *
       * <code>string site_status_info = 10;</code>
       */
      public com.google.protobuf.ByteString
          getSiteStatusInfoBytes() {
        java.lang.Object ref = siteStatusInfo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          siteStatusInfo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *站点状态说明，一般关闭站点情况使用
       * </pre>
       *
       * <code>string site_status_info = 10;</code>
       */
      public Builder setSiteStatusInfo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        siteStatusInfo_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点状态说明，一般关闭站点情况使用
       * </pre>
       *
       * <code>string site_status_info = 10;</code>
       */
      public Builder clearSiteStatusInfo() {
        
        siteStatusInfo_ = getDefaultInstance().getSiteStatusInfo();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点状态说明，一般关闭站点情况使用
       * </pre>
       *
       * <code>string site_status_info = 10;</code>
       */
      public Builder setSiteStatusInfoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        siteStatusInfo_ = value;
        onChanged();
        return this;
      }

      private int u2EncryptionConfig_ = 0;
      /**
       * <pre>
       *二人消息加密状态
       * </pre>
       *
       * <code>.core.U2EncryptionConfig u2_encryption_config = 11;</code>
       */
      public int getU2EncryptionConfigValue() {
        return u2EncryptionConfig_;
      }
      /**
       * <pre>
       *二人消息加密状态
       * </pre>
       *
       * <code>.core.U2EncryptionConfig u2_encryption_config = 11;</code>
       */
      public Builder setU2EncryptionConfigValue(int value) {
        u2EncryptionConfig_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *二人消息加密状态
       * </pre>
       *
       * <code>.core.U2EncryptionConfig u2_encryption_config = 11;</code>
       */
      public com.akaxin.proto.core.ConfigProto.U2EncryptionConfig getU2EncryptionConfig() {
        com.akaxin.proto.core.ConfigProto.U2EncryptionConfig result = com.akaxin.proto.core.ConfigProto.U2EncryptionConfig.valueOf(u2EncryptionConfig_);
        return result == null ? com.akaxin.proto.core.ConfigProto.U2EncryptionConfig.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *二人消息加密状态
       * </pre>
       *
       * <code>.core.U2EncryptionConfig u2_encryption_config = 11;</code>
       */
      public Builder setU2EncryptionConfig(com.akaxin.proto.core.ConfigProto.U2EncryptionConfig value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        u2EncryptionConfig_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *二人消息加密状态
       * </pre>
       *
       * <code>.core.U2EncryptionConfig u2_encryption_config = 11;</code>
       */
      public Builder clearU2EncryptionConfig() {
        
        u2EncryptionConfig_ = 0;
        onChanged();
        return this;
      }

      private int inviteCodeConfig_ = 0;
      /**
       * <pre>
       *站点注册是否需要邀请码
       * </pre>
       *
       * <code>.core.InviteCodeConfig invite_code_config = 12;</code>
       */
      public int getInviteCodeConfigValue() {
        return inviteCodeConfig_;
      }
      /**
       * <pre>
       *站点注册是否需要邀请码
       * </pre>
       *
       * <code>.core.InviteCodeConfig invite_code_config = 12;</code>
       */
      public Builder setInviteCodeConfigValue(int value) {
        inviteCodeConfig_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点注册是否需要邀请码
       * </pre>
       *
       * <code>.core.InviteCodeConfig invite_code_config = 12;</code>
       */
      public com.akaxin.proto.core.ConfigProto.InviteCodeConfig getInviteCodeConfig() {
        com.akaxin.proto.core.ConfigProto.InviteCodeConfig result = com.akaxin.proto.core.ConfigProto.InviteCodeConfig.valueOf(inviteCodeConfig_);
        return result == null ? com.akaxin.proto.core.ConfigProto.InviteCodeConfig.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *站点注册是否需要邀请码
       * </pre>
       *
       * <code>.core.InviteCodeConfig invite_code_config = 12;</code>
       */
      public Builder setInviteCodeConfig(com.akaxin.proto.core.ConfigProto.InviteCodeConfig value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        inviteCodeConfig_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *站点注册是否需要邀请码
       * </pre>
       *
       * <code>.core.InviteCodeConfig invite_code_config = 12;</code>
       */
      public Builder clearInviteCodeConfig() {
        
        inviteCodeConfig_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:core.SiteConfig)
    }

    // @@protoc_insertion_point(class_scope:core.SiteConfig)
    private static final com.akaxin.proto.core.ConfigProto.SiteConfig DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.akaxin.proto.core.ConfigProto.SiteConfig();
    }

    public static com.akaxin.proto.core.ConfigProto.SiteConfig getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SiteConfig>
        PARSER = new com.google.protobuf.AbstractParser<SiteConfig>() {
      public SiteConfig parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new SiteConfig(input, extensionRegistry);
      }
    };

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

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

    public com.akaxin.proto.core.ConfigProto.SiteConfig getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SiteBackConfigOrBuilder extends
      // @@protoc_insertion_point(interface_extends:core.SiteBackConfig)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>map&lt;int32, string&gt; site_config = 1;</code>
     */
    int getSiteConfigCount();
    /**
     * <code>map&lt;int32, string&gt; site_config = 1;</code>
     */
    boolean containsSiteConfig(
        int key);
    /**
     * Use {@link #getSiteConfigMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.Integer, java.lang.String>
    getSiteConfig();
    /**
     * <code>map&lt;int32, string&gt; site_config = 1;</code>
     */
    java.util.Map<java.lang.Integer, java.lang.String>
    getSiteConfigMap();
    /**
     * <code>map&lt;int32, string&gt; site_config = 1;</code>
     */

    java.lang.String getSiteConfigOrDefault(
        int key,
        java.lang.String defaultValue);
    /**
     * <code>map&lt;int32, string&gt; site_config = 1;</code>
     */

    java.lang.String getSiteConfigOrThrow(
        int key);
  }
  /**
   * <pre>
   *站点后台管理配置
   * </pre>
   *
   * Protobuf type {@code core.SiteBackConfig}
   */
  public  static final class SiteBackConfig extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:core.SiteBackConfig)
      SiteBackConfigOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SiteBackConfig.newBuilder() to construct.
    private SiteBackConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SiteBackConfig() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SiteBackConfig(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                siteConfig_ = com.google.protobuf.MapField.newMapField(
                    SiteConfigDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry<java.lang.Integer, java.lang.String>
              siteConfig__ = input.readMessage(
                  SiteConfigDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              siteConfig_.getMutableMap().put(
                  siteConfig__.getKey(), siteConfig__.getValue());
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akaxin.proto.core.ConfigProto.internal_static_core_SiteBackConfig_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 1:
          return internalGetSiteConfig();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akaxin.proto.core.ConfigProto.internal_static_core_SiteBackConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akaxin.proto.core.ConfigProto.SiteBackConfig.class, com.akaxin.proto.core.ConfigProto.SiteBackConfig.Builder.class);
    }

    public static final int SITE_CONFIG_FIELD_NUMBER = 1;
    private static final class SiteConfigDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.Integer, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.Integer, java.lang.String>newDefaultInstance(
                  com.akaxin.proto.core.ConfigProto.internal_static_core_SiteBackConfig_SiteConfigEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.INT32,
                  0,
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.Integer, java.lang.String> siteConfig_;
    private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
    internalGetSiteConfig() {
      if (siteConfig_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            SiteConfigDefaultEntryHolder.defaultEntry);
      }
      return siteConfig_;
    }

    public int getSiteConfigCount() {
      return internalGetSiteConfig().getMap().size();
    }
    /**
     * <code>map&lt;int32, string&gt; site_config = 1;</code>
     */

    public boolean containsSiteConfig(
        int key) {
      
      return internalGetSiteConfig().getMap().containsKey(key);
    }
    /**
     * Use {@link #getSiteConfigMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.Integer, java.lang.String> getSiteConfig() {
      return getSiteConfigMap();
    }
    /**
     * <code>map&lt;int32, string&gt; site_config = 1;</code>
     */

    public java.util.Map<java.lang.Integer, java.lang.String> getSiteConfigMap() {
      return internalGetSiteConfig().getMap();
    }
    /**
     * <code>map&lt;int32, string&gt; site_config = 1;</code>
     */

    public java.lang.String getSiteConfigOrDefault(
        int key,
        java.lang.String defaultValue) {
      
      java.util.Map<java.lang.Integer, java.lang.String> map =
          internalGetSiteConfig().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;int32, string&gt; site_config = 1;</code>
     */

    public java.lang.String getSiteConfigOrThrow(
        int key) {
      
      java.util.Map<java.lang.Integer, java.lang.String> map =
          internalGetSiteConfig().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      com.google.protobuf.GeneratedMessageV3
        .serializeIntegerMapTo(
          output,
          internalGetSiteConfig(),
          SiteConfigDefaultEntryHolder.defaultEntry,
          1);
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (java.util.Map.Entry<java.lang.Integer, java.lang.String> entry
           : internalGetSiteConfig().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.Integer, java.lang.String>
        siteConfig__ = SiteConfigDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, siteConfig__);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.akaxin.proto.core.ConfigProto.SiteBackConfig)) {
        return super.equals(obj);
      }
      com.akaxin.proto.core.ConfigProto.SiteBackConfig other = (com.akaxin.proto.core.ConfigProto.SiteBackConfig) obj;

      boolean result = true;
      result = result && internalGetSiteConfig().equals(
          other.internalGetSiteConfig());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (!internalGetSiteConfig().getMap().isEmpty()) {
        hash = (37 * hash) + SITE_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + internalGetSiteConfig().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.akaxin.proto.core.ConfigProto.SiteBackConfig prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *站点后台管理配置
     * </pre>
     *
     * Protobuf type {@code core.SiteBackConfig}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:core.SiteBackConfig)
        com.akaxin.proto.core.ConfigProto.SiteBackConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akaxin.proto.core.ConfigProto.internal_static_core_SiteBackConfig_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetSiteConfig();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetMutableSiteConfig();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akaxin.proto.core.ConfigProto.internal_static_core_SiteBackConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akaxin.proto.core.ConfigProto.SiteBackConfig.class, com.akaxin.proto.core.ConfigProto.SiteBackConfig.Builder.class);
      }

      // Construct using com.akaxin.proto.core.ConfigProto.SiteBackConfig.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        internalGetMutableSiteConfig().clear();
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akaxin.proto.core.ConfigProto.internal_static_core_SiteBackConfig_descriptor;
      }

      public com.akaxin.proto.core.ConfigProto.SiteBackConfig getDefaultInstanceForType() {
        return com.akaxin.proto.core.ConfigProto.SiteBackConfig.getDefaultInstance();
      }

      public com.akaxin.proto.core.ConfigProto.SiteBackConfig build() {
        com.akaxin.proto.core.ConfigProto.SiteBackConfig result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akaxin.proto.core.ConfigProto.SiteBackConfig buildPartial() {
        com.akaxin.proto.core.ConfigProto.SiteBackConfig result = new com.akaxin.proto.core.ConfigProto.SiteBackConfig(this);
        int from_bitField0_ = bitField0_;
        result.siteConfig_ = internalGetSiteConfig();
        result.siteConfig_.makeImmutable();
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.akaxin.proto.core.ConfigProto.SiteBackConfig other) {
        if (other == com.akaxin.proto.core.ConfigProto.SiteBackConfig.getDefaultInstance()) return this;
        internalGetMutableSiteConfig().mergeFrom(
            other.internalGetSiteConfig());
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akaxin.proto.core.ConfigProto.SiteBackConfig parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akaxin.proto.core.ConfigProto.SiteBackConfig) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.MapField<
          java.lang.Integer, java.lang.String> siteConfig_;
      private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
      internalGetSiteConfig() {
        if (siteConfig_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              SiteConfigDefaultEntryHolder.defaultEntry);
        }
        return siteConfig_;
      }
      private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
      internalGetMutableSiteConfig() {
        onChanged();;
        if (siteConfig_ == null) {
          siteConfig_ = com.google.protobuf.MapField.newMapField(
              SiteConfigDefaultEntryHolder.defaultEntry);
        }
        if (!siteConfig_.isMutable()) {
          siteConfig_ = siteConfig_.copy();
        }
        return siteConfig_;
      }

      public int getSiteConfigCount() {
        return internalGetSiteConfig().getMap().size();
      }
      /**
       * <code>map&lt;int32, string&gt; site_config = 1;</code>
       */

      public boolean containsSiteConfig(
          int key) {
        
        return internalGetSiteConfig().getMap().containsKey(key);
      }
      /**
       * Use {@link #getSiteConfigMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, java.lang.String> getSiteConfig() {
        return getSiteConfigMap();
      }
      /**
       * <code>map&lt;int32, string&gt; site_config = 1;</code>
       */

      public java.util.Map<java.lang.Integer, java.lang.String> getSiteConfigMap() {
        return internalGetSiteConfig().getMap();
      }
      /**
       * <code>map&lt;int32, string&gt; site_config = 1;</code>
       */

      public java.lang.String getSiteConfigOrDefault(
          int key,
          java.lang.String defaultValue) {
        
        java.util.Map<java.lang.Integer, java.lang.String> map =
            internalGetSiteConfig().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;int32, string&gt; site_config = 1;</code>
       */

      public java.lang.String getSiteConfigOrThrow(
          int key) {
        
        java.util.Map<java.lang.Integer, java.lang.String> map =
            internalGetSiteConfig().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearSiteConfig() {
        internalGetMutableSiteConfig().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;int32, string&gt; site_config = 1;</code>
       */

      public Builder removeSiteConfig(
          int key) {
        
        internalGetMutableSiteConfig().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, java.lang.String>
      getMutableSiteConfig() {
        return internalGetMutableSiteConfig().getMutableMap();
      }
      /**
       * <code>map&lt;int32, string&gt; site_config = 1;</code>
       */
      public Builder putSiteConfig(
          int key,
          java.lang.String value) {
        
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableSiteConfig().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <code>map&lt;int32, string&gt; site_config = 1;</code>
       */

      public Builder putAllSiteConfig(
          java.util.Map<java.lang.Integer, java.lang.String> values) {
        internalGetMutableSiteConfig().getMutableMap()
            .putAll(values);
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:core.SiteBackConfig)
    }

    // @@protoc_insertion_point(class_scope:core.SiteBackConfig)
    private static final com.akaxin.proto.core.ConfigProto.SiteBackConfig DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.akaxin.proto.core.ConfigProto.SiteBackConfig();
    }

    public static com.akaxin.proto.core.ConfigProto.SiteBackConfig getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SiteBackConfig>
        PARSER = new com.google.protobuf.AbstractParser<SiteBackConfig>() {
      public SiteBackConfig parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new SiteBackConfig(input, extensionRegistry);
      }
    };

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

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

    public com.akaxin.proto.core.ConfigProto.SiteBackConfig getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_core_SiteConfig_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_core_SiteConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_core_SiteBackConfig_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_core_SiteBackConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_core_SiteBackConfig_SiteConfigEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_core_SiteBackConfig_SiteConfigEntry_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\021core/config.proto\022\004core\"\210\003\n\nSiteConfig" +
      "\022\024\n\014site_address\030\001 \001(\t\022\021\n\tsite_port\030\002 \001(" +
      "\005\022\021\n\tsite_name\030\003 \001(\t\022\021\n\tsite_logo\030\004 \001(\t\022" +
      "\024\n\014site_version\030\005 \001(\t\022\031\n\021site_introducti" +
      "on\030\006 \001(\t\022.\n\020real_name_config\030\007 \001(\0162\024.cor" +
      "e.RealNameConfig\022\020\n\010pic_size\030\010 \001(\t\0222\n\022si" +
      "te_status_config\030\t \001(\0162\026.core.SiteStatus" +
      "Config\022\030\n\020site_status_info\030\n \001(\t\0226\n\024u2_e" +
      "ncryption_config\030\013 \001(\0162\030.core.U2Encrypti" +
      "onConfig\0222\n\022invite_code_config\030\014 \001(\0162\026.c",
      "ore.InviteCodeConfig\"~\n\016SiteBackConfig\0229" +
      "\n\013site_config\030\001 \003(\0132$.core.SiteBackConfi" +
      "g.SiteConfigEntry\0321\n\017SiteConfigEntry\022\013\n\003" +
      "key\030\001 \001(\005\022\r\n\005value\030\002 \001(\t:\0028\001*H\n\016RealName" +
      "Config\022\017\n\013REALNAME_NO\020\000\022\020\n\014REALNAME_YES\020" +
      "\001\022\023\n\017REALNAME_YES_NO\020\002*+\n\020InviteCodeConf" +
      "ig\022\n\n\006UIC_NO\020\000\022\013\n\007UIC_YES\020\001*\'\n\020SiteStatu" +
      "sConfig\022\t\n\005CLOSE\020\000\022\010\n\004OPEN\020\001*/\n\022U2Encryp" +
      "tionConfig\022\014\n\010U2_CLOSE\020\000\022\013\n\007U2_OPEN\020\001*\230\004" +
      "\n\tConfigKey\022\020\n\014SITE_ADDRESS\020\000\022\r\n\tSITE_PO",
      "RT\020\001\022\r\n\tSITE_NAME\020\002\022\r\n\tSITE_LOGO\020\003\022\020\n\014SI" +
      "TE_VERSION\020\004\022\025\n\021SITE_INTRODUCTION\020\005\022\023\n\017R" +
      "EALNAME_STATUS\020\006\022\027\n\023GROUP_MEMBERS_COUNT\020" +
      "\007\022\014\n\010PIC_SIZE\020\010\022\014\n\010PIC_PATH\020\t\022\017\n\013SITE_ST" +
      "ATUS\020\n\022\024\n\020SITE_STATUS_INFO\020\013\022\016\n\nSITE_ADM" +
      "IN\020\014\022\025\n\021SITE_HTTP_ADDRESS\020\r\022\022\n\016SITE_HTTP" +
      "_PORT\020\016\022\030\n\024U2_ENCRYPTION_STATUS\020\017\022\013\n\007DB_" +
      "PATH\020\020\022\026\n\022PUSH_CLIENT_STATUS\020\021\022\r\n\tLOG_LE" +
      "VEL\020\022\022\020\n\014SITE_MANAGER\020\023\022\026\n\022INVITE_CODE_S" +
      "TATUS\020\024\022\030\n\024DEFAULT_USER_FRIENDS\020\025\022\027\n\023DEF",
      "AULT_USER_GROUPS\020\026\022\031\n\025CONFIG_FRIEND_REQU" +
      "EST\020\027\022\027\n\023CONFIG_CREATE_GROUP\020\030\022\030\n\024GROUP_" +
      "QR_EXPIRE_TIME\020\031*L\n\020PushClientStatus\022\013\n\007" +
      "PUSH_NO\020\000\022\024\n\020PUSH_HIDDEN_TEXT\020\001\022\025\n\021PUSH_" +
      "DISPLAY_TEXT\020\002*N\n\023ConfigFriendRequest\022\033\n" +
      "\027ConfigFriendRequest_YES\020\000\022\032\n\026ConfigFrie" +
      "ndRequest_NO\020\001*H\n\021ConfigCreateGroup\022\031\n\025C" +
      "onfigCreateGroup_YES\020\000\022\030\n\024ConfigCreateGr" +
      "oup_NO\020\001*R\n\027ConfigGroupQRExpireTime\022\020\n\014E" +
      "XPIRE_1_DAY\020\000\022\021\n\rEXPIRE_7_DAYS\020\001\022\022\n\016EXPI",
      "RE_14_DAYS\020\002B$\n\025com.akaxin.proto.coreB\013C" +
      "onfigProtob\006proto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
    internal_static_core_SiteConfig_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_core_SiteConfig_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_core_SiteConfig_descriptor,
        new java.lang.String[] { "SiteAddress", "SitePort", "SiteName", "SiteLogo", "SiteVersion", "SiteIntroduction", "RealNameConfig", "PicSize", "SiteStatusConfig", "SiteStatusInfo", "U2EncryptionConfig", "InviteCodeConfig", });
    internal_static_core_SiteBackConfig_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_core_SiteBackConfig_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_core_SiteBackConfig_descriptor,
        new java.lang.String[] { "SiteConfig", });
    internal_static_core_SiteBackConfig_SiteConfigEntry_descriptor =
      internal_static_core_SiteBackConfig_descriptor.getNestedTypes().get(0);
    internal_static_core_SiteBackConfig_SiteConfigEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_core_SiteBackConfig_SiteConfigEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}