// Code generated by protocol buffer compiler. Do not edit!
package emu.lunarcore.proto;

import java.io.IOException;
import us.hebi.quickbuf.FieldName;
import us.hebi.quickbuf.InvalidProtocolBufferException;
import us.hebi.quickbuf.JsonSink;
import us.hebi.quickbuf.JsonSource;
import us.hebi.quickbuf.MessageFactory;
import us.hebi.quickbuf.ProtoMessage;
import us.hebi.quickbuf.ProtoSink;
import us.hebi.quickbuf.ProtoSource;
import us.hebi.quickbuf.Utf8String;

public final class PlayerLoginCsReqOuterClass {
  /**
   * Protobuf type {@code PlayerLoginCsReq}
   */
  public static final class PlayerLoginCsReq extends ProtoMessage<PlayerLoginCsReq> implements Cloneable {
    private static final long serialVersionUID = 0L;

    /**
     * <code>optional uint64 login_random = 14;</code>
     */
    private long loginRandom;

    /**
     * <code>optional uint32 JLENABOEECM = 7;</code>
     */
    private int jLENABOEECM;

    /**
     * <code>optional uint32 OAAJFOGONGI = 9;</code>
     */
    private int oAAJFOGONGI;

    /**
     * <code>optional uint32 BNFGNMKNEOA = 477;</code>
     */
    private int bNFGNMKNEOA;

    /**
     * <code>optional uint32 IBHKBLGDODJ = 575;</code>
     */
    private int iBHKBLGDODJ;

    /**
     * <code>optional .LanguageType FNBLKPBPOBM = 11;</code>
     */
    private int fNBLKPBPOBM;

    /**
     * <code>optional bool IGNINMLBLHE = 1613;</code>
     */
    private boolean iGNINMLBLHE;

    /**
     * <code>optional string NPFIJOBDPAH = 1;</code>
     */
    private final Utf8String nPFIJOBDPAH = Utf8String.newEmptyInstance();

    /**
     * <code>optional string ELMAEGBLBPG = 2;</code>
     */
    private final Utf8String eLMAEGBLBPG = Utf8String.newEmptyInstance();

    /**
     * <code>optional string HPCEBMACCDJ = 3;</code>
     */
    private final Utf8String hPCEBMACCDJ = Utf8String.newEmptyInstance();

    /**
     * <code>optional string EAPDBCFMCHA = 4;</code>
     */
    private final Utf8String eAPDBCFMCHA = Utf8String.newEmptyInstance();

    /**
     * <code>optional string ALOCHCBPICL = 5;</code>
     */
    private final Utf8String aLOCHCBPICL = Utf8String.newEmptyInstance();

    /**
     * <code>optional string CEKCDHBMACL = 6;</code>
     */
    private final Utf8String cEKCDHBMACL = Utf8String.newEmptyInstance();

    /**
     * <code>optional string OHFJMKNKDMM = 8;</code>
     */
    private final Utf8String oHFJMKNKDMM = Utf8String.newEmptyInstance();

    /**
     * <code>optional string signature = 12;</code>
     */
    private final Utf8String signature = Utf8String.newEmptyInstance();

    /**
     * <code>optional string KBHKHHAKPND = 13;</code>
     */
    private final Utf8String kBHKHHAKPND = Utf8String.newEmptyInstance();

    /**
     * <code>optional string EEHJKJLLJEH = 15;</code>
     */
    private final Utf8String eEHJKJLLJEH = Utf8String.newEmptyInstance();

    /**
     * <code>optional string CHFJJPIKGCA = 80;</code>
     */
    private final Utf8String cHFJJPIKGCA = Utf8String.newEmptyInstance();

    /**
     * <code>optional string MCCIDPAOILM = 674;</code>
     */
    private final Utf8String mCCIDPAOILM = Utf8String.newEmptyInstance();

    /**
     * <code>optional string BMMMNJEPNKE = 1099;</code>
     */
    private final Utf8String bMMMNJEPNKE = Utf8String.newEmptyInstance();

    /**
     * <code>optional string GLABLAACICO = 1526;</code>
     */
    private final Utf8String gLABLAACICO = Utf8String.newEmptyInstance();

    /**
     * <code>optional string KBLKKIFHGDP = 1859;</code>
     */
    private final Utf8String kBLKKIFHGDP = Utf8String.newEmptyInstance();

    private PlayerLoginCsReq() {
    }

    /**
     * @return a new empty instance of {@code PlayerLoginCsReq}
     */
    public static PlayerLoginCsReq newInstance() {
      return new PlayerLoginCsReq();
    }

    /**
     * <code>optional uint64 login_random = 14;</code>
     * @return whether the loginRandom field is set
     */
    public boolean hasLoginRandom() {
      return (bitField0_ & 0x00000001) != 0;
    }

    /**
     * <code>optional uint64 login_random = 14;</code>
     * @return this
     */
    public PlayerLoginCsReq clearLoginRandom() {
      bitField0_ &= ~0x00000001;
      loginRandom = 0L;
      return this;
    }

    /**
     * <code>optional uint64 login_random = 14;</code>
     * @return the loginRandom
     */
    public long getLoginRandom() {
      return loginRandom;
    }

    /**
     * <code>optional uint64 login_random = 14;</code>
     * @param value the loginRandom to set
     * @return this
     */
    public PlayerLoginCsReq setLoginRandom(final long value) {
      bitField0_ |= 0x00000001;
      loginRandom = value;
      return this;
    }

    /**
     * <code>optional uint32 JLENABOEECM = 7;</code>
     * @return whether the jLENABOEECM field is set
     */
    public boolean hasJLENABOEECM() {
      return (bitField0_ & 0x00000002) != 0;
    }

    /**
     * <code>optional uint32 JLENABOEECM = 7;</code>
     * @return this
     */
    public PlayerLoginCsReq clearJLENABOEECM() {
      bitField0_ &= ~0x00000002;
      jLENABOEECM = 0;
      return this;
    }

    /**
     * <code>optional uint32 JLENABOEECM = 7;</code>
     * @return the jLENABOEECM
     */
    public int getJLENABOEECM() {
      return jLENABOEECM;
    }

    /**
     * <code>optional uint32 JLENABOEECM = 7;</code>
     * @param value the jLENABOEECM to set
     * @return this
     */
    public PlayerLoginCsReq setJLENABOEECM(final int value) {
      bitField0_ |= 0x00000002;
      jLENABOEECM = value;
      return this;
    }

    /**
     * <code>optional uint32 OAAJFOGONGI = 9;</code>
     * @return whether the oAAJFOGONGI field is set
     */
    public boolean hasOAAJFOGONGI() {
      return (bitField0_ & 0x00000004) != 0;
    }

    /**
     * <code>optional uint32 OAAJFOGONGI = 9;</code>
     * @return this
     */
    public PlayerLoginCsReq clearOAAJFOGONGI() {
      bitField0_ &= ~0x00000004;
      oAAJFOGONGI = 0;
      return this;
    }

    /**
     * <code>optional uint32 OAAJFOGONGI = 9;</code>
     * @return the oAAJFOGONGI
     */
    public int getOAAJFOGONGI() {
      return oAAJFOGONGI;
    }

    /**
     * <code>optional uint32 OAAJFOGONGI = 9;</code>
     * @param value the oAAJFOGONGI to set
     * @return this
     */
    public PlayerLoginCsReq setOAAJFOGONGI(final int value) {
      bitField0_ |= 0x00000004;
      oAAJFOGONGI = value;
      return this;
    }

    /**
     * <code>optional uint32 BNFGNMKNEOA = 477;</code>
     * @return whether the bNFGNMKNEOA field is set
     */
    public boolean hasBNFGNMKNEOA() {
      return (bitField0_ & 0x00000008) != 0;
    }

    /**
     * <code>optional uint32 BNFGNMKNEOA = 477;</code>
     * @return this
     */
    public PlayerLoginCsReq clearBNFGNMKNEOA() {
      bitField0_ &= ~0x00000008;
      bNFGNMKNEOA = 0;
      return this;
    }

    /**
     * <code>optional uint32 BNFGNMKNEOA = 477;</code>
     * @return the bNFGNMKNEOA
     */
    public int getBNFGNMKNEOA() {
      return bNFGNMKNEOA;
    }

    /**
     * <code>optional uint32 BNFGNMKNEOA = 477;</code>
     * @param value the bNFGNMKNEOA to set
     * @return this
     */
    public PlayerLoginCsReq setBNFGNMKNEOA(final int value) {
      bitField0_ |= 0x00000008;
      bNFGNMKNEOA = value;
      return this;
    }

    /**
     * <code>optional uint32 IBHKBLGDODJ = 575;</code>
     * @return whether the iBHKBLGDODJ field is set
     */
    public boolean hasIBHKBLGDODJ() {
      return (bitField0_ & 0x00000010) != 0;
    }

    /**
     * <code>optional uint32 IBHKBLGDODJ = 575;</code>
     * @return this
     */
    public PlayerLoginCsReq clearIBHKBLGDODJ() {
      bitField0_ &= ~0x00000010;
      iBHKBLGDODJ = 0;
      return this;
    }

    /**
     * <code>optional uint32 IBHKBLGDODJ = 575;</code>
     * @return the iBHKBLGDODJ
     */
    public int getIBHKBLGDODJ() {
      return iBHKBLGDODJ;
    }

    /**
     * <code>optional uint32 IBHKBLGDODJ = 575;</code>
     * @param value the iBHKBLGDODJ to set
     * @return this
     */
    public PlayerLoginCsReq setIBHKBLGDODJ(final int value) {
      bitField0_ |= 0x00000010;
      iBHKBLGDODJ = value;
      return this;
    }

    /**
     * <code>optional .LanguageType FNBLKPBPOBM = 11;</code>
     * @return whether the fNBLKPBPOBM field is set
     */
    public boolean hasFNBLKPBPOBM() {
      return (bitField0_ & 0x00000020) != 0;
    }

    /**
     * <code>optional .LanguageType FNBLKPBPOBM = 11;</code>
     * @return this
     */
    public PlayerLoginCsReq clearFNBLKPBPOBM() {
      bitField0_ &= ~0x00000020;
      fNBLKPBPOBM = 0;
      return this;
    }

    /**
     * <code>optional .LanguageType FNBLKPBPOBM = 11;</code>
     * @return the fNBLKPBPOBM
     */
    public LanguageTypeOuterClass.LanguageType getFNBLKPBPOBM() {
      return LanguageTypeOuterClass.LanguageType.forNumber(fNBLKPBPOBM);
    }

    /**
     * Gets the value of the internal enum store. The result is
     * equivalent to {@link PlayerLoginCsReq#getFNBLKPBPOBM()}.getNumber().
     *
     * @return numeric wire representation
     */
    public int getFNBLKPBPOBMValue() {
      return fNBLKPBPOBM;
    }

    /**
     * Sets the value of the internal enum store. This does not
     * do any validity checks, so be sure to use appropriate value
     * constants from {@link LanguageTypeOuterClass.LanguageType}. Setting an invalid value
     * can cause {@link PlayerLoginCsReq#getFNBLKPBPOBM()} to return null
     *
     * @param value the numeric wire value to set
     * @return this
     */
    public PlayerLoginCsReq setFNBLKPBPOBMValue(final int value) {
      bitField0_ |= 0x00000020;
      fNBLKPBPOBM = value;
      return this;
    }

    /**
     * <code>optional .LanguageType FNBLKPBPOBM = 11;</code>
     * @param value the fNBLKPBPOBM to set
     * @return this
     */
    public PlayerLoginCsReq setFNBLKPBPOBM(final LanguageTypeOuterClass.LanguageType value) {
      bitField0_ |= 0x00000020;
      fNBLKPBPOBM = value.getNumber();
      return this;
    }

    /**
     * <code>optional bool IGNINMLBLHE = 1613;</code>
     * @return whether the iGNINMLBLHE field is set
     */
    public boolean hasIGNINMLBLHE() {
      return (bitField0_ & 0x00000040) != 0;
    }

    /**
     * <code>optional bool IGNINMLBLHE = 1613;</code>
     * @return this
     */
    public PlayerLoginCsReq clearIGNINMLBLHE() {
      bitField0_ &= ~0x00000040;
      iGNINMLBLHE = false;
      return this;
    }

    /**
     * <code>optional bool IGNINMLBLHE = 1613;</code>
     * @return the iGNINMLBLHE
     */
    public boolean getIGNINMLBLHE() {
      return iGNINMLBLHE;
    }

    /**
     * <code>optional bool IGNINMLBLHE = 1613;</code>
     * @param value the iGNINMLBLHE to set
     * @return this
     */
    public PlayerLoginCsReq setIGNINMLBLHE(final boolean value) {
      bitField0_ |= 0x00000040;
      iGNINMLBLHE = value;
      return this;
    }

    /**
     * <code>optional string NPFIJOBDPAH = 1;</code>
     * @return whether the nPFIJOBDPAH field is set
     */
    public boolean hasNPFIJOBDPAH() {
      return (bitField0_ & 0x00000080) != 0;
    }

    /**
     * <code>optional string NPFIJOBDPAH = 1;</code>
     * @return this
     */
    public PlayerLoginCsReq clearNPFIJOBDPAH() {
      bitField0_ &= ~0x00000080;
      nPFIJOBDPAH.clear();
      return this;
    }

    /**
     * <code>optional string NPFIJOBDPAH = 1;</code>
     * @return the nPFIJOBDPAH
     */
    public String getNPFIJOBDPAH() {
      return nPFIJOBDPAH.getString();
    }

    /**
     * <code>optional string NPFIJOBDPAH = 1;</code>
     * @return internal {@code Utf8String} representation of nPFIJOBDPAH for reading
     */
    public Utf8String getNPFIJOBDPAHBytes() {
      return this.nPFIJOBDPAH;
    }

    /**
     * <code>optional string NPFIJOBDPAH = 1;</code>
     * @return internal {@code Utf8String} representation of nPFIJOBDPAH for modifications
     */
    public Utf8String getMutableNPFIJOBDPAHBytes() {
      bitField0_ |= 0x00000080;
      return this.nPFIJOBDPAH;
    }

    /**
     * <code>optional string NPFIJOBDPAH = 1;</code>
     * @param value the nPFIJOBDPAH to set
     * @return this
     */
    public PlayerLoginCsReq setNPFIJOBDPAH(final CharSequence value) {
      bitField0_ |= 0x00000080;
      nPFIJOBDPAH.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string NPFIJOBDPAH = 1;</code>
     * @param value the nPFIJOBDPAH to set
     * @return this
     */
    public PlayerLoginCsReq setNPFIJOBDPAH(final Utf8String value) {
      bitField0_ |= 0x00000080;
      nPFIJOBDPAH.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string ELMAEGBLBPG = 2;</code>
     * @return whether the eLMAEGBLBPG field is set
     */
    public boolean hasELMAEGBLBPG() {
      return (bitField0_ & 0x00000100) != 0;
    }

    /**
     * <code>optional string ELMAEGBLBPG = 2;</code>
     * @return this
     */
    public PlayerLoginCsReq clearELMAEGBLBPG() {
      bitField0_ &= ~0x00000100;
      eLMAEGBLBPG.clear();
      return this;
    }

    /**
     * <code>optional string ELMAEGBLBPG = 2;</code>
     * @return the eLMAEGBLBPG
     */
    public String getELMAEGBLBPG() {
      return eLMAEGBLBPG.getString();
    }

    /**
     * <code>optional string ELMAEGBLBPG = 2;</code>
     * @return internal {@code Utf8String} representation of eLMAEGBLBPG for reading
     */
    public Utf8String getELMAEGBLBPGBytes() {
      return this.eLMAEGBLBPG;
    }

    /**
     * <code>optional string ELMAEGBLBPG = 2;</code>
     * @return internal {@code Utf8String} representation of eLMAEGBLBPG for modifications
     */
    public Utf8String getMutableELMAEGBLBPGBytes() {
      bitField0_ |= 0x00000100;
      return this.eLMAEGBLBPG;
    }

    /**
     * <code>optional string ELMAEGBLBPG = 2;</code>
     * @param value the eLMAEGBLBPG to set
     * @return this
     */
    public PlayerLoginCsReq setELMAEGBLBPG(final CharSequence value) {
      bitField0_ |= 0x00000100;
      eLMAEGBLBPG.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string ELMAEGBLBPG = 2;</code>
     * @param value the eLMAEGBLBPG to set
     * @return this
     */
    public PlayerLoginCsReq setELMAEGBLBPG(final Utf8String value) {
      bitField0_ |= 0x00000100;
      eLMAEGBLBPG.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string HPCEBMACCDJ = 3;</code>
     * @return whether the hPCEBMACCDJ field is set
     */
    public boolean hasHPCEBMACCDJ() {
      return (bitField0_ & 0x00000200) != 0;
    }

    /**
     * <code>optional string HPCEBMACCDJ = 3;</code>
     * @return this
     */
    public PlayerLoginCsReq clearHPCEBMACCDJ() {
      bitField0_ &= ~0x00000200;
      hPCEBMACCDJ.clear();
      return this;
    }

    /**
     * <code>optional string HPCEBMACCDJ = 3;</code>
     * @return the hPCEBMACCDJ
     */
    public String getHPCEBMACCDJ() {
      return hPCEBMACCDJ.getString();
    }

    /**
     * <code>optional string HPCEBMACCDJ = 3;</code>
     * @return internal {@code Utf8String} representation of hPCEBMACCDJ for reading
     */
    public Utf8String getHPCEBMACCDJBytes() {
      return this.hPCEBMACCDJ;
    }

    /**
     * <code>optional string HPCEBMACCDJ = 3;</code>
     * @return internal {@code Utf8String} representation of hPCEBMACCDJ for modifications
     */
    public Utf8String getMutableHPCEBMACCDJBytes() {
      bitField0_ |= 0x00000200;
      return this.hPCEBMACCDJ;
    }

    /**
     * <code>optional string HPCEBMACCDJ = 3;</code>
     * @param value the hPCEBMACCDJ to set
     * @return this
     */
    public PlayerLoginCsReq setHPCEBMACCDJ(final CharSequence value) {
      bitField0_ |= 0x00000200;
      hPCEBMACCDJ.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string HPCEBMACCDJ = 3;</code>
     * @param value the hPCEBMACCDJ to set
     * @return this
     */
    public PlayerLoginCsReq setHPCEBMACCDJ(final Utf8String value) {
      bitField0_ |= 0x00000200;
      hPCEBMACCDJ.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string EAPDBCFMCHA = 4;</code>
     * @return whether the eAPDBCFMCHA field is set
     */
    public boolean hasEAPDBCFMCHA() {
      return (bitField0_ & 0x00000400) != 0;
    }

    /**
     * <code>optional string EAPDBCFMCHA = 4;</code>
     * @return this
     */
    public PlayerLoginCsReq clearEAPDBCFMCHA() {
      bitField0_ &= ~0x00000400;
      eAPDBCFMCHA.clear();
      return this;
    }

    /**
     * <code>optional string EAPDBCFMCHA = 4;</code>
     * @return the eAPDBCFMCHA
     */
    public String getEAPDBCFMCHA() {
      return eAPDBCFMCHA.getString();
    }

    /**
     * <code>optional string EAPDBCFMCHA = 4;</code>
     * @return internal {@code Utf8String} representation of eAPDBCFMCHA for reading
     */
    public Utf8String getEAPDBCFMCHABytes() {
      return this.eAPDBCFMCHA;
    }

    /**
     * <code>optional string EAPDBCFMCHA = 4;</code>
     * @return internal {@code Utf8String} representation of eAPDBCFMCHA for modifications
     */
    public Utf8String getMutableEAPDBCFMCHABytes() {
      bitField0_ |= 0x00000400;
      return this.eAPDBCFMCHA;
    }

    /**
     * <code>optional string EAPDBCFMCHA = 4;</code>
     * @param value the eAPDBCFMCHA to set
     * @return this
     */
    public PlayerLoginCsReq setEAPDBCFMCHA(final CharSequence value) {
      bitField0_ |= 0x00000400;
      eAPDBCFMCHA.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string EAPDBCFMCHA = 4;</code>
     * @param value the eAPDBCFMCHA to set
     * @return this
     */
    public PlayerLoginCsReq setEAPDBCFMCHA(final Utf8String value) {
      bitField0_ |= 0x00000400;
      eAPDBCFMCHA.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string ALOCHCBPICL = 5;</code>
     * @return whether the aLOCHCBPICL field is set
     */
    public boolean hasALOCHCBPICL() {
      return (bitField0_ & 0x00000800) != 0;
    }

    /**
     * <code>optional string ALOCHCBPICL = 5;</code>
     * @return this
     */
    public PlayerLoginCsReq clearALOCHCBPICL() {
      bitField0_ &= ~0x00000800;
      aLOCHCBPICL.clear();
      return this;
    }

    /**
     * <code>optional string ALOCHCBPICL = 5;</code>
     * @return the aLOCHCBPICL
     */
    public String getALOCHCBPICL() {
      return aLOCHCBPICL.getString();
    }

    /**
     * <code>optional string ALOCHCBPICL = 5;</code>
     * @return internal {@code Utf8String} representation of aLOCHCBPICL for reading
     */
    public Utf8String getALOCHCBPICLBytes() {
      return this.aLOCHCBPICL;
    }

    /**
     * <code>optional string ALOCHCBPICL = 5;</code>
     * @return internal {@code Utf8String} representation of aLOCHCBPICL for modifications
     */
    public Utf8String getMutableALOCHCBPICLBytes() {
      bitField0_ |= 0x00000800;
      return this.aLOCHCBPICL;
    }

    /**
     * <code>optional string ALOCHCBPICL = 5;</code>
     * @param value the aLOCHCBPICL to set
     * @return this
     */
    public PlayerLoginCsReq setALOCHCBPICL(final CharSequence value) {
      bitField0_ |= 0x00000800;
      aLOCHCBPICL.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string ALOCHCBPICL = 5;</code>
     * @param value the aLOCHCBPICL to set
     * @return this
     */
    public PlayerLoginCsReq setALOCHCBPICL(final Utf8String value) {
      bitField0_ |= 0x00000800;
      aLOCHCBPICL.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string CEKCDHBMACL = 6;</code>
     * @return whether the cEKCDHBMACL field is set
     */
    public boolean hasCEKCDHBMACL() {
      return (bitField0_ & 0x00001000) != 0;
    }

    /**
     * <code>optional string CEKCDHBMACL = 6;</code>
     * @return this
     */
    public PlayerLoginCsReq clearCEKCDHBMACL() {
      bitField0_ &= ~0x00001000;
      cEKCDHBMACL.clear();
      return this;
    }

    /**
     * <code>optional string CEKCDHBMACL = 6;</code>
     * @return the cEKCDHBMACL
     */
    public String getCEKCDHBMACL() {
      return cEKCDHBMACL.getString();
    }

    /**
     * <code>optional string CEKCDHBMACL = 6;</code>
     * @return internal {@code Utf8String} representation of cEKCDHBMACL for reading
     */
    public Utf8String getCEKCDHBMACLBytes() {
      return this.cEKCDHBMACL;
    }

    /**
     * <code>optional string CEKCDHBMACL = 6;</code>
     * @return internal {@code Utf8String} representation of cEKCDHBMACL for modifications
     */
    public Utf8String getMutableCEKCDHBMACLBytes() {
      bitField0_ |= 0x00001000;
      return this.cEKCDHBMACL;
    }

    /**
     * <code>optional string CEKCDHBMACL = 6;</code>
     * @param value the cEKCDHBMACL to set
     * @return this
     */
    public PlayerLoginCsReq setCEKCDHBMACL(final CharSequence value) {
      bitField0_ |= 0x00001000;
      cEKCDHBMACL.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string CEKCDHBMACL = 6;</code>
     * @param value the cEKCDHBMACL to set
     * @return this
     */
    public PlayerLoginCsReq setCEKCDHBMACL(final Utf8String value) {
      bitField0_ |= 0x00001000;
      cEKCDHBMACL.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string OHFJMKNKDMM = 8;</code>
     * @return whether the oHFJMKNKDMM field is set
     */
    public boolean hasOHFJMKNKDMM() {
      return (bitField0_ & 0x00002000) != 0;
    }

    /**
     * <code>optional string OHFJMKNKDMM = 8;</code>
     * @return this
     */
    public PlayerLoginCsReq clearOHFJMKNKDMM() {
      bitField0_ &= ~0x00002000;
      oHFJMKNKDMM.clear();
      return this;
    }

    /**
     * <code>optional string OHFJMKNKDMM = 8;</code>
     * @return the oHFJMKNKDMM
     */
    public String getOHFJMKNKDMM() {
      return oHFJMKNKDMM.getString();
    }

    /**
     * <code>optional string OHFJMKNKDMM = 8;</code>
     * @return internal {@code Utf8String} representation of oHFJMKNKDMM for reading
     */
    public Utf8String getOHFJMKNKDMMBytes() {
      return this.oHFJMKNKDMM;
    }

    /**
     * <code>optional string OHFJMKNKDMM = 8;</code>
     * @return internal {@code Utf8String} representation of oHFJMKNKDMM for modifications
     */
    public Utf8String getMutableOHFJMKNKDMMBytes() {
      bitField0_ |= 0x00002000;
      return this.oHFJMKNKDMM;
    }

    /**
     * <code>optional string OHFJMKNKDMM = 8;</code>
     * @param value the oHFJMKNKDMM to set
     * @return this
     */
    public PlayerLoginCsReq setOHFJMKNKDMM(final CharSequence value) {
      bitField0_ |= 0x00002000;
      oHFJMKNKDMM.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string OHFJMKNKDMM = 8;</code>
     * @param value the oHFJMKNKDMM to set
     * @return this
     */
    public PlayerLoginCsReq setOHFJMKNKDMM(final Utf8String value) {
      bitField0_ |= 0x00002000;
      oHFJMKNKDMM.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string signature = 12;</code>
     * @return whether the signature field is set
     */
    public boolean hasSignature() {
      return (bitField0_ & 0x00004000) != 0;
    }

    /**
     * <code>optional string signature = 12;</code>
     * @return this
     */
    public PlayerLoginCsReq clearSignature() {
      bitField0_ &= ~0x00004000;
      signature.clear();
      return this;
    }

    /**
     * <code>optional string signature = 12;</code>
     * @return the signature
     */
    public String getSignature() {
      return signature.getString();
    }

    /**
     * <code>optional string signature = 12;</code>
     * @return internal {@code Utf8String} representation of signature for reading
     */
    public Utf8String getSignatureBytes() {
      return this.signature;
    }

    /**
     * <code>optional string signature = 12;</code>
     * @return internal {@code Utf8String} representation of signature for modifications
     */
    public Utf8String getMutableSignatureBytes() {
      bitField0_ |= 0x00004000;
      return this.signature;
    }

    /**
     * <code>optional string signature = 12;</code>
     * @param value the signature to set
     * @return this
     */
    public PlayerLoginCsReq setSignature(final CharSequence value) {
      bitField0_ |= 0x00004000;
      signature.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string signature = 12;</code>
     * @param value the signature to set
     * @return this
     */
    public PlayerLoginCsReq setSignature(final Utf8String value) {
      bitField0_ |= 0x00004000;
      signature.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string KBHKHHAKPND = 13;</code>
     * @return whether the kBHKHHAKPND field is set
     */
    public boolean hasKBHKHHAKPND() {
      return (bitField0_ & 0x00008000) != 0;
    }

    /**
     * <code>optional string KBHKHHAKPND = 13;</code>
     * @return this
     */
    public PlayerLoginCsReq clearKBHKHHAKPND() {
      bitField0_ &= ~0x00008000;
      kBHKHHAKPND.clear();
      return this;
    }

    /**
     * <code>optional string KBHKHHAKPND = 13;</code>
     * @return the kBHKHHAKPND
     */
    public String getKBHKHHAKPND() {
      return kBHKHHAKPND.getString();
    }

    /**
     * <code>optional string KBHKHHAKPND = 13;</code>
     * @return internal {@code Utf8String} representation of kBHKHHAKPND for reading
     */
    public Utf8String getKBHKHHAKPNDBytes() {
      return this.kBHKHHAKPND;
    }

    /**
     * <code>optional string KBHKHHAKPND = 13;</code>
     * @return internal {@code Utf8String} representation of kBHKHHAKPND for modifications
     */
    public Utf8String getMutableKBHKHHAKPNDBytes() {
      bitField0_ |= 0x00008000;
      return this.kBHKHHAKPND;
    }

    /**
     * <code>optional string KBHKHHAKPND = 13;</code>
     * @param value the kBHKHHAKPND to set
     * @return this
     */
    public PlayerLoginCsReq setKBHKHHAKPND(final CharSequence value) {
      bitField0_ |= 0x00008000;
      kBHKHHAKPND.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string KBHKHHAKPND = 13;</code>
     * @param value the kBHKHHAKPND to set
     * @return this
     */
    public PlayerLoginCsReq setKBHKHHAKPND(final Utf8String value) {
      bitField0_ |= 0x00008000;
      kBHKHHAKPND.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string EEHJKJLLJEH = 15;</code>
     * @return whether the eEHJKJLLJEH field is set
     */
    public boolean hasEEHJKJLLJEH() {
      return (bitField0_ & 0x00010000) != 0;
    }

    /**
     * <code>optional string EEHJKJLLJEH = 15;</code>
     * @return this
     */
    public PlayerLoginCsReq clearEEHJKJLLJEH() {
      bitField0_ &= ~0x00010000;
      eEHJKJLLJEH.clear();
      return this;
    }

    /**
     * <code>optional string EEHJKJLLJEH = 15;</code>
     * @return the eEHJKJLLJEH
     */
    public String getEEHJKJLLJEH() {
      return eEHJKJLLJEH.getString();
    }

    /**
     * <code>optional string EEHJKJLLJEH = 15;</code>
     * @return internal {@code Utf8String} representation of eEHJKJLLJEH for reading
     */
    public Utf8String getEEHJKJLLJEHBytes() {
      return this.eEHJKJLLJEH;
    }

    /**
     * <code>optional string EEHJKJLLJEH = 15;</code>
     * @return internal {@code Utf8String} representation of eEHJKJLLJEH for modifications
     */
    public Utf8String getMutableEEHJKJLLJEHBytes() {
      bitField0_ |= 0x00010000;
      return this.eEHJKJLLJEH;
    }

    /**
     * <code>optional string EEHJKJLLJEH = 15;</code>
     * @param value the eEHJKJLLJEH to set
     * @return this
     */
    public PlayerLoginCsReq setEEHJKJLLJEH(final CharSequence value) {
      bitField0_ |= 0x00010000;
      eEHJKJLLJEH.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string EEHJKJLLJEH = 15;</code>
     * @param value the eEHJKJLLJEH to set
     * @return this
     */
    public PlayerLoginCsReq setEEHJKJLLJEH(final Utf8String value) {
      bitField0_ |= 0x00010000;
      eEHJKJLLJEH.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string CHFJJPIKGCA = 80;</code>
     * @return whether the cHFJJPIKGCA field is set
     */
    public boolean hasCHFJJPIKGCA() {
      return (bitField0_ & 0x00020000) != 0;
    }

    /**
     * <code>optional string CHFJJPIKGCA = 80;</code>
     * @return this
     */
    public PlayerLoginCsReq clearCHFJJPIKGCA() {
      bitField0_ &= ~0x00020000;
      cHFJJPIKGCA.clear();
      return this;
    }

    /**
     * <code>optional string CHFJJPIKGCA = 80;</code>
     * @return the cHFJJPIKGCA
     */
    public String getCHFJJPIKGCA() {
      return cHFJJPIKGCA.getString();
    }

    /**
     * <code>optional string CHFJJPIKGCA = 80;</code>
     * @return internal {@code Utf8String} representation of cHFJJPIKGCA for reading
     */
    public Utf8String getCHFJJPIKGCABytes() {
      return this.cHFJJPIKGCA;
    }

    /**
     * <code>optional string CHFJJPIKGCA = 80;</code>
     * @return internal {@code Utf8String} representation of cHFJJPIKGCA for modifications
     */
    public Utf8String getMutableCHFJJPIKGCABytes() {
      bitField0_ |= 0x00020000;
      return this.cHFJJPIKGCA;
    }

    /**
     * <code>optional string CHFJJPIKGCA = 80;</code>
     * @param value the cHFJJPIKGCA to set
     * @return this
     */
    public PlayerLoginCsReq setCHFJJPIKGCA(final CharSequence value) {
      bitField0_ |= 0x00020000;
      cHFJJPIKGCA.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string CHFJJPIKGCA = 80;</code>
     * @param value the cHFJJPIKGCA to set
     * @return this
     */
    public PlayerLoginCsReq setCHFJJPIKGCA(final Utf8String value) {
      bitField0_ |= 0x00020000;
      cHFJJPIKGCA.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string MCCIDPAOILM = 674;</code>
     * @return whether the mCCIDPAOILM field is set
     */
    public boolean hasMCCIDPAOILM() {
      return (bitField0_ & 0x00040000) != 0;
    }

    /**
     * <code>optional string MCCIDPAOILM = 674;</code>
     * @return this
     */
    public PlayerLoginCsReq clearMCCIDPAOILM() {
      bitField0_ &= ~0x00040000;
      mCCIDPAOILM.clear();
      return this;
    }

    /**
     * <code>optional string MCCIDPAOILM = 674;</code>
     * @return the mCCIDPAOILM
     */
    public String getMCCIDPAOILM() {
      return mCCIDPAOILM.getString();
    }

    /**
     * <code>optional string MCCIDPAOILM = 674;</code>
     * @return internal {@code Utf8String} representation of mCCIDPAOILM for reading
     */
    public Utf8String getMCCIDPAOILMBytes() {
      return this.mCCIDPAOILM;
    }

    /**
     * <code>optional string MCCIDPAOILM = 674;</code>
     * @return internal {@code Utf8String} representation of mCCIDPAOILM for modifications
     */
    public Utf8String getMutableMCCIDPAOILMBytes() {
      bitField0_ |= 0x00040000;
      return this.mCCIDPAOILM;
    }

    /**
     * <code>optional string MCCIDPAOILM = 674;</code>
     * @param value the mCCIDPAOILM to set
     * @return this
     */
    public PlayerLoginCsReq setMCCIDPAOILM(final CharSequence value) {
      bitField0_ |= 0x00040000;
      mCCIDPAOILM.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string MCCIDPAOILM = 674;</code>
     * @param value the mCCIDPAOILM to set
     * @return this
     */
    public PlayerLoginCsReq setMCCIDPAOILM(final Utf8String value) {
      bitField0_ |= 0x00040000;
      mCCIDPAOILM.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string BMMMNJEPNKE = 1099;</code>
     * @return whether the bMMMNJEPNKE field is set
     */
    public boolean hasBMMMNJEPNKE() {
      return (bitField0_ & 0x00080000) != 0;
    }

    /**
     * <code>optional string BMMMNJEPNKE = 1099;</code>
     * @return this
     */
    public PlayerLoginCsReq clearBMMMNJEPNKE() {
      bitField0_ &= ~0x00080000;
      bMMMNJEPNKE.clear();
      return this;
    }

    /**
     * <code>optional string BMMMNJEPNKE = 1099;</code>
     * @return the bMMMNJEPNKE
     */
    public String getBMMMNJEPNKE() {
      return bMMMNJEPNKE.getString();
    }

    /**
     * <code>optional string BMMMNJEPNKE = 1099;</code>
     * @return internal {@code Utf8String} representation of bMMMNJEPNKE for reading
     */
    public Utf8String getBMMMNJEPNKEBytes() {
      return this.bMMMNJEPNKE;
    }

    /**
     * <code>optional string BMMMNJEPNKE = 1099;</code>
     * @return internal {@code Utf8String} representation of bMMMNJEPNKE for modifications
     */
    public Utf8String getMutableBMMMNJEPNKEBytes() {
      bitField0_ |= 0x00080000;
      return this.bMMMNJEPNKE;
    }

    /**
     * <code>optional string BMMMNJEPNKE = 1099;</code>
     * @param value the bMMMNJEPNKE to set
     * @return this
     */
    public PlayerLoginCsReq setBMMMNJEPNKE(final CharSequence value) {
      bitField0_ |= 0x00080000;
      bMMMNJEPNKE.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string BMMMNJEPNKE = 1099;</code>
     * @param value the bMMMNJEPNKE to set
     * @return this
     */
    public PlayerLoginCsReq setBMMMNJEPNKE(final Utf8String value) {
      bitField0_ |= 0x00080000;
      bMMMNJEPNKE.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string GLABLAACICO = 1526;</code>
     * @return whether the gLABLAACICO field is set
     */
    public boolean hasGLABLAACICO() {
      return (bitField0_ & 0x00100000) != 0;
    }

    /**
     * <code>optional string GLABLAACICO = 1526;</code>
     * @return this
     */
    public PlayerLoginCsReq clearGLABLAACICO() {
      bitField0_ &= ~0x00100000;
      gLABLAACICO.clear();
      return this;
    }

    /**
     * <code>optional string GLABLAACICO = 1526;</code>
     * @return the gLABLAACICO
     */
    public String getGLABLAACICO() {
      return gLABLAACICO.getString();
    }

    /**
     * <code>optional string GLABLAACICO = 1526;</code>
     * @return internal {@code Utf8String} representation of gLABLAACICO for reading
     */
    public Utf8String getGLABLAACICOBytes() {
      return this.gLABLAACICO;
    }

    /**
     * <code>optional string GLABLAACICO = 1526;</code>
     * @return internal {@code Utf8String} representation of gLABLAACICO for modifications
     */
    public Utf8String getMutableGLABLAACICOBytes() {
      bitField0_ |= 0x00100000;
      return this.gLABLAACICO;
    }

    /**
     * <code>optional string GLABLAACICO = 1526;</code>
     * @param value the gLABLAACICO to set
     * @return this
     */
    public PlayerLoginCsReq setGLABLAACICO(final CharSequence value) {
      bitField0_ |= 0x00100000;
      gLABLAACICO.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string GLABLAACICO = 1526;</code>
     * @param value the gLABLAACICO to set
     * @return this
     */
    public PlayerLoginCsReq setGLABLAACICO(final Utf8String value) {
      bitField0_ |= 0x00100000;
      gLABLAACICO.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string KBLKKIFHGDP = 1859;</code>
     * @return whether the kBLKKIFHGDP field is set
     */
    public boolean hasKBLKKIFHGDP() {
      return (bitField0_ & 0x00200000) != 0;
    }

    /**
     * <code>optional string KBLKKIFHGDP = 1859;</code>
     * @return this
     */
    public PlayerLoginCsReq clearKBLKKIFHGDP() {
      bitField0_ &= ~0x00200000;
      kBLKKIFHGDP.clear();
      return this;
    }

    /**
     * <code>optional string KBLKKIFHGDP = 1859;</code>
     * @return the kBLKKIFHGDP
     */
    public String getKBLKKIFHGDP() {
      return kBLKKIFHGDP.getString();
    }

    /**
     * <code>optional string KBLKKIFHGDP = 1859;</code>
     * @return internal {@code Utf8String} representation of kBLKKIFHGDP for reading
     */
    public Utf8String getKBLKKIFHGDPBytes() {
      return this.kBLKKIFHGDP;
    }

    /**
     * <code>optional string KBLKKIFHGDP = 1859;</code>
     * @return internal {@code Utf8String} representation of kBLKKIFHGDP for modifications
     */
    public Utf8String getMutableKBLKKIFHGDPBytes() {
      bitField0_ |= 0x00200000;
      return this.kBLKKIFHGDP;
    }

    /**
     * <code>optional string KBLKKIFHGDP = 1859;</code>
     * @param value the kBLKKIFHGDP to set
     * @return this
     */
    public PlayerLoginCsReq setKBLKKIFHGDP(final CharSequence value) {
      bitField0_ |= 0x00200000;
      kBLKKIFHGDP.copyFrom(value);
      return this;
    }

    /**
     * <code>optional string KBLKKIFHGDP = 1859;</code>
     * @param value the kBLKKIFHGDP to set
     * @return this
     */
    public PlayerLoginCsReq setKBLKKIFHGDP(final Utf8String value) {
      bitField0_ |= 0x00200000;
      kBLKKIFHGDP.copyFrom(value);
      return this;
    }

    @Override
    public PlayerLoginCsReq copyFrom(final PlayerLoginCsReq other) {
      cachedSize = other.cachedSize;
      if ((bitField0_ | other.bitField0_) != 0) {
        bitField0_ = other.bitField0_;
        loginRandom = other.loginRandom;
        jLENABOEECM = other.jLENABOEECM;
        oAAJFOGONGI = other.oAAJFOGONGI;
        bNFGNMKNEOA = other.bNFGNMKNEOA;
        iBHKBLGDODJ = other.iBHKBLGDODJ;
        fNBLKPBPOBM = other.fNBLKPBPOBM;
        iGNINMLBLHE = other.iGNINMLBLHE;
        nPFIJOBDPAH.copyFrom(other.nPFIJOBDPAH);
        eLMAEGBLBPG.copyFrom(other.eLMAEGBLBPG);
        hPCEBMACCDJ.copyFrom(other.hPCEBMACCDJ);
        eAPDBCFMCHA.copyFrom(other.eAPDBCFMCHA);
        aLOCHCBPICL.copyFrom(other.aLOCHCBPICL);
        cEKCDHBMACL.copyFrom(other.cEKCDHBMACL);
        oHFJMKNKDMM.copyFrom(other.oHFJMKNKDMM);
        signature.copyFrom(other.signature);
        kBHKHHAKPND.copyFrom(other.kBHKHHAKPND);
        eEHJKJLLJEH.copyFrom(other.eEHJKJLLJEH);
        cHFJJPIKGCA.copyFrom(other.cHFJJPIKGCA);
        mCCIDPAOILM.copyFrom(other.mCCIDPAOILM);
        bMMMNJEPNKE.copyFrom(other.bMMMNJEPNKE);
        gLABLAACICO.copyFrom(other.gLABLAACICO);
        kBLKKIFHGDP.copyFrom(other.kBLKKIFHGDP);
      }
      return this;
    }

    @Override
    public PlayerLoginCsReq mergeFrom(final PlayerLoginCsReq other) {
      if (other.isEmpty()) {
        return this;
      }
      cachedSize = -1;
      if (other.hasLoginRandom()) {
        setLoginRandom(other.loginRandom);
      }
      if (other.hasJLENABOEECM()) {
        setJLENABOEECM(other.jLENABOEECM);
      }
      if (other.hasOAAJFOGONGI()) {
        setOAAJFOGONGI(other.oAAJFOGONGI);
      }
      if (other.hasBNFGNMKNEOA()) {
        setBNFGNMKNEOA(other.bNFGNMKNEOA);
      }
      if (other.hasIBHKBLGDODJ()) {
        setIBHKBLGDODJ(other.iBHKBLGDODJ);
      }
      if (other.hasFNBLKPBPOBM()) {
        setFNBLKPBPOBMValue(other.fNBLKPBPOBM);
      }
      if (other.hasIGNINMLBLHE()) {
        setIGNINMLBLHE(other.iGNINMLBLHE);
      }
      if (other.hasNPFIJOBDPAH()) {
        getMutableNPFIJOBDPAHBytes().copyFrom(other.nPFIJOBDPAH);
      }
      if (other.hasELMAEGBLBPG()) {
        getMutableELMAEGBLBPGBytes().copyFrom(other.eLMAEGBLBPG);
      }
      if (other.hasHPCEBMACCDJ()) {
        getMutableHPCEBMACCDJBytes().copyFrom(other.hPCEBMACCDJ);
      }
      if (other.hasEAPDBCFMCHA()) {
        getMutableEAPDBCFMCHABytes().copyFrom(other.eAPDBCFMCHA);
      }
      if (other.hasALOCHCBPICL()) {
        getMutableALOCHCBPICLBytes().copyFrom(other.aLOCHCBPICL);
      }
      if (other.hasCEKCDHBMACL()) {
        getMutableCEKCDHBMACLBytes().copyFrom(other.cEKCDHBMACL);
      }
      if (other.hasOHFJMKNKDMM()) {
        getMutableOHFJMKNKDMMBytes().copyFrom(other.oHFJMKNKDMM);
      }
      if (other.hasSignature()) {
        getMutableSignatureBytes().copyFrom(other.signature);
      }
      if (other.hasKBHKHHAKPND()) {
        getMutableKBHKHHAKPNDBytes().copyFrom(other.kBHKHHAKPND);
      }
      if (other.hasEEHJKJLLJEH()) {
        getMutableEEHJKJLLJEHBytes().copyFrom(other.eEHJKJLLJEH);
      }
      if (other.hasCHFJJPIKGCA()) {
        getMutableCHFJJPIKGCABytes().copyFrom(other.cHFJJPIKGCA);
      }
      if (other.hasMCCIDPAOILM()) {
        getMutableMCCIDPAOILMBytes().copyFrom(other.mCCIDPAOILM);
      }
      if (other.hasBMMMNJEPNKE()) {
        getMutableBMMMNJEPNKEBytes().copyFrom(other.bMMMNJEPNKE);
      }
      if (other.hasGLABLAACICO()) {
        getMutableGLABLAACICOBytes().copyFrom(other.gLABLAACICO);
      }
      if (other.hasKBLKKIFHGDP()) {
        getMutableKBLKKIFHGDPBytes().copyFrom(other.kBLKKIFHGDP);
      }
      return this;
    }

    @Override
    public PlayerLoginCsReq clear() {
      if (isEmpty()) {
        return this;
      }
      cachedSize = -1;
      bitField0_ = 0;
      loginRandom = 0L;
      jLENABOEECM = 0;
      oAAJFOGONGI = 0;
      bNFGNMKNEOA = 0;
      iBHKBLGDODJ = 0;
      fNBLKPBPOBM = 0;
      iGNINMLBLHE = false;
      nPFIJOBDPAH.clear();
      eLMAEGBLBPG.clear();
      hPCEBMACCDJ.clear();
      eAPDBCFMCHA.clear();
      aLOCHCBPICL.clear();
      cEKCDHBMACL.clear();
      oHFJMKNKDMM.clear();
      signature.clear();
      kBHKHHAKPND.clear();
      eEHJKJLLJEH.clear();
      cHFJJPIKGCA.clear();
      mCCIDPAOILM.clear();
      bMMMNJEPNKE.clear();
      gLABLAACICO.clear();
      kBLKKIFHGDP.clear();
      return this;
    }

    @Override
    public PlayerLoginCsReq clearQuick() {
      if (isEmpty()) {
        return this;
      }
      cachedSize = -1;
      bitField0_ = 0;
      nPFIJOBDPAH.clear();
      eLMAEGBLBPG.clear();
      hPCEBMACCDJ.clear();
      eAPDBCFMCHA.clear();
      aLOCHCBPICL.clear();
      cEKCDHBMACL.clear();
      oHFJMKNKDMM.clear();
      signature.clear();
      kBHKHHAKPND.clear();
      eEHJKJLLJEH.clear();
      cHFJJPIKGCA.clear();
      mCCIDPAOILM.clear();
      bMMMNJEPNKE.clear();
      gLABLAACICO.clear();
      kBLKKIFHGDP.clear();
      return this;
    }

    @Override
    public boolean equals(Object o) {
      if (o == this) {
        return true;
      }
      if (!(o instanceof PlayerLoginCsReq)) {
        return false;
      }
      PlayerLoginCsReq other = (PlayerLoginCsReq) o;
      return bitField0_ == other.bitField0_
        && (!hasLoginRandom() || loginRandom == other.loginRandom)
        && (!hasJLENABOEECM() || jLENABOEECM == other.jLENABOEECM)
        && (!hasOAAJFOGONGI() || oAAJFOGONGI == other.oAAJFOGONGI)
        && (!hasBNFGNMKNEOA() || bNFGNMKNEOA == other.bNFGNMKNEOA)
        && (!hasIBHKBLGDODJ() || iBHKBLGDODJ == other.iBHKBLGDODJ)
        && (!hasFNBLKPBPOBM() || fNBLKPBPOBM == other.fNBLKPBPOBM)
        && (!hasIGNINMLBLHE() || iGNINMLBLHE == other.iGNINMLBLHE)
        && (!hasNPFIJOBDPAH() || nPFIJOBDPAH.equals(other.nPFIJOBDPAH))
        && (!hasELMAEGBLBPG() || eLMAEGBLBPG.equals(other.eLMAEGBLBPG))
        && (!hasHPCEBMACCDJ() || hPCEBMACCDJ.equals(other.hPCEBMACCDJ))
        && (!hasEAPDBCFMCHA() || eAPDBCFMCHA.equals(other.eAPDBCFMCHA))
        && (!hasALOCHCBPICL() || aLOCHCBPICL.equals(other.aLOCHCBPICL))
        && (!hasCEKCDHBMACL() || cEKCDHBMACL.equals(other.cEKCDHBMACL))
        && (!hasOHFJMKNKDMM() || oHFJMKNKDMM.equals(other.oHFJMKNKDMM))
        && (!hasSignature() || signature.equals(other.signature))
        && (!hasKBHKHHAKPND() || kBHKHHAKPND.equals(other.kBHKHHAKPND))
        && (!hasEEHJKJLLJEH() || eEHJKJLLJEH.equals(other.eEHJKJLLJEH))
        && (!hasCHFJJPIKGCA() || cHFJJPIKGCA.equals(other.cHFJJPIKGCA))
        && (!hasMCCIDPAOILM() || mCCIDPAOILM.equals(other.mCCIDPAOILM))
        && (!hasBMMMNJEPNKE() || bMMMNJEPNKE.equals(other.bMMMNJEPNKE))
        && (!hasGLABLAACICO() || gLABLAACICO.equals(other.gLABLAACICO))
        && (!hasKBLKKIFHGDP() || kBLKKIFHGDP.equals(other.kBLKKIFHGDP));
    }

    @Override
    public void writeTo(final ProtoSink output) throws IOException {
      if ((bitField0_ & 0x00000001) != 0) {
        output.writeRawByte((byte) 112);
        output.writeUInt64NoTag(loginRandom);
      }
      if ((bitField0_ & 0x00000002) != 0) {
        output.writeRawByte((byte) 56);
        output.writeUInt32NoTag(jLENABOEECM);
      }
      if ((bitField0_ & 0x00000004) != 0) {
        output.writeRawByte((byte) 72);
        output.writeUInt32NoTag(oAAJFOGONGI);
      }
      if ((bitField0_ & 0x00000008) != 0) {
        output.writeRawLittleEndian16((short) 7656);
        output.writeUInt32NoTag(bNFGNMKNEOA);
      }
      if ((bitField0_ & 0x00000010) != 0) {
        output.writeRawLittleEndian16((short) 9208);
        output.writeUInt32NoTag(iBHKBLGDODJ);
      }
      if ((bitField0_ & 0x00000020) != 0) {
        output.writeRawByte((byte) 88);
        output.writeEnumNoTag(fNBLKPBPOBM);
      }
      if ((bitField0_ & 0x00000040) != 0) {
        output.writeRawLittleEndian16((short) 25832);
        output.writeBoolNoTag(iGNINMLBLHE);
      }
      if ((bitField0_ & 0x00000080) != 0) {
        output.writeRawByte((byte) 10);
        output.writeStringNoTag(nPFIJOBDPAH);
      }
      if ((bitField0_ & 0x00000100) != 0) {
        output.writeRawByte((byte) 18);
        output.writeStringNoTag(eLMAEGBLBPG);
      }
      if ((bitField0_ & 0x00000200) != 0) {
        output.writeRawByte((byte) 26);
        output.writeStringNoTag(hPCEBMACCDJ);
      }
      if ((bitField0_ & 0x00000400) != 0) {
        output.writeRawByte((byte) 34);
        output.writeStringNoTag(eAPDBCFMCHA);
      }
      if ((bitField0_ & 0x00000800) != 0) {
        output.writeRawByte((byte) 42);
        output.writeStringNoTag(aLOCHCBPICL);
      }
      if ((bitField0_ & 0x00001000) != 0) {
        output.writeRawByte((byte) 50);
        output.writeStringNoTag(cEKCDHBMACL);
      }
      if ((bitField0_ & 0x00002000) != 0) {
        output.writeRawByte((byte) 66);
        output.writeStringNoTag(oHFJMKNKDMM);
      }
      if ((bitField0_ & 0x00004000) != 0) {
        output.writeRawByte((byte) 98);
        output.writeStringNoTag(signature);
      }
      if ((bitField0_ & 0x00008000) != 0) {
        output.writeRawByte((byte) 106);
        output.writeStringNoTag(kBHKHHAKPND);
      }
      if ((bitField0_ & 0x00010000) != 0) {
        output.writeRawByte((byte) 122);
        output.writeStringNoTag(eEHJKJLLJEH);
      }
      if ((bitField0_ & 0x00020000) != 0) {
        output.writeRawLittleEndian16((short) 1410);
        output.writeStringNoTag(cHFJJPIKGCA);
      }
      if ((bitField0_ & 0x00040000) != 0) {
        output.writeRawLittleEndian16((short) 10898);
        output.writeStringNoTag(mCCIDPAOILM);
      }
      if ((bitField0_ & 0x00080000) != 0) {
        output.writeRawLittleEndian16((short) 17626);
        output.writeStringNoTag(bMMMNJEPNKE);
      }
      if ((bitField0_ & 0x00100000) != 0) {
        output.writeRawLittleEndian16((short) 24498);
        output.writeStringNoTag(gLABLAACICO);
      }
      if ((bitField0_ & 0x00200000) != 0) {
        output.writeRawLittleEndian16((short) 29850);
        output.writeStringNoTag(kBLKKIFHGDP);
      }
    }

    @Override
    protected int computeSerializedSize() {
      int size = 0;
      if ((bitField0_ & 0x00000001) != 0) {
        size += 1 + ProtoSink.computeUInt64SizeNoTag(loginRandom);
      }
      if ((bitField0_ & 0x00000002) != 0) {
        size += 1 + ProtoSink.computeUInt32SizeNoTag(jLENABOEECM);
      }
      if ((bitField0_ & 0x00000004) != 0) {
        size += 1 + ProtoSink.computeUInt32SizeNoTag(oAAJFOGONGI);
      }
      if ((bitField0_ & 0x00000008) != 0) {
        size += 2 + ProtoSink.computeUInt32SizeNoTag(bNFGNMKNEOA);
      }
      if ((bitField0_ & 0x00000010) != 0) {
        size += 2 + ProtoSink.computeUInt32SizeNoTag(iBHKBLGDODJ);
      }
      if ((bitField0_ & 0x00000020) != 0) {
        size += 1 + ProtoSink.computeEnumSizeNoTag(fNBLKPBPOBM);
      }
      if ((bitField0_ & 0x00000040) != 0) {
        size += 3;
      }
      if ((bitField0_ & 0x00000080) != 0) {
        size += 1 + ProtoSink.computeStringSizeNoTag(nPFIJOBDPAH);
      }
      if ((bitField0_ & 0x00000100) != 0) {
        size += 1 + ProtoSink.computeStringSizeNoTag(eLMAEGBLBPG);
      }
      if ((bitField0_ & 0x00000200) != 0) {
        size += 1 + ProtoSink.computeStringSizeNoTag(hPCEBMACCDJ);
      }
      if ((bitField0_ & 0x00000400) != 0) {
        size += 1 + ProtoSink.computeStringSizeNoTag(eAPDBCFMCHA);
      }
      if ((bitField0_ & 0x00000800) != 0) {
        size += 1 + ProtoSink.computeStringSizeNoTag(aLOCHCBPICL);
      }
      if ((bitField0_ & 0x00001000) != 0) {
        size += 1 + ProtoSink.computeStringSizeNoTag(cEKCDHBMACL);
      }
      if ((bitField0_ & 0x00002000) != 0) {
        size += 1 + ProtoSink.computeStringSizeNoTag(oHFJMKNKDMM);
      }
      if ((bitField0_ & 0x00004000) != 0) {
        size += 1 + ProtoSink.computeStringSizeNoTag(signature);
      }
      if ((bitField0_ & 0x00008000) != 0) {
        size += 1 + ProtoSink.computeStringSizeNoTag(kBHKHHAKPND);
      }
      if ((bitField0_ & 0x00010000) != 0) {
        size += 1 + ProtoSink.computeStringSizeNoTag(eEHJKJLLJEH);
      }
      if ((bitField0_ & 0x00020000) != 0) {
        size += 2 + ProtoSink.computeStringSizeNoTag(cHFJJPIKGCA);
      }
      if ((bitField0_ & 0x00040000) != 0) {
        size += 2 + ProtoSink.computeStringSizeNoTag(mCCIDPAOILM);
      }
      if ((bitField0_ & 0x00080000) != 0) {
        size += 2 + ProtoSink.computeStringSizeNoTag(bMMMNJEPNKE);
      }
      if ((bitField0_ & 0x00100000) != 0) {
        size += 2 + ProtoSink.computeStringSizeNoTag(gLABLAACICO);
      }
      if ((bitField0_ & 0x00200000) != 0) {
        size += 2 + ProtoSink.computeStringSizeNoTag(kBLKKIFHGDP);
      }
      return size;
    }

    @Override
    @SuppressWarnings("fallthrough")
    public PlayerLoginCsReq mergeFrom(final ProtoSource input) throws IOException {
      // Enabled Fall-Through Optimization (QuickBuffers)
      int tag = input.readTag();
      while (true) {
        switch (tag) {
          case 112: {
            // loginRandom
            loginRandom = input.readUInt64();
            bitField0_ |= 0x00000001;
            tag = input.readTag();
            if (tag != 56) {
              break;
            }
          }
          case 56: {
            // jLENABOEECM
            jLENABOEECM = input.readUInt32();
            bitField0_ |= 0x00000002;
            tag = input.readTag();
            if (tag != 72) {
              break;
            }
          }
          case 72: {
            // oAAJFOGONGI
            oAAJFOGONGI = input.readUInt32();
            bitField0_ |= 0x00000004;
            tag = input.readTag();
            if (tag != 3816) {
              break;
            }
          }
          case 3816: {
            // bNFGNMKNEOA
            bNFGNMKNEOA = input.readUInt32();
            bitField0_ |= 0x00000008;
            tag = input.readTag();
            if (tag != 4600) {
              break;
            }
          }
          case 4600: {
            // iBHKBLGDODJ
            iBHKBLGDODJ = input.readUInt32();
            bitField0_ |= 0x00000010;
            tag = input.readTag();
            if (tag != 88) {
              break;
            }
          }
          case 88: {
            // fNBLKPBPOBM
            final int value = input.readInt32();
            if (LanguageTypeOuterClass.LanguageType.forNumber(value) != null) {
              fNBLKPBPOBM = value;
              bitField0_ |= 0x00000020;
            }
            tag = input.readTag();
            if (tag != 12904) {
              break;
            }
          }
          case 12904: {
            // iGNINMLBLHE
            iGNINMLBLHE = input.readBool();
            bitField0_ |= 0x00000040;
            tag = input.readTag();
            if (tag != 10) {
              break;
            }
          }
          case 10: {
            // nPFIJOBDPAH
            input.readString(nPFIJOBDPAH);
            bitField0_ |= 0x00000080;
            tag = input.readTag();
            if (tag != 18) {
              break;
            }
          }
          case 18: {
            // eLMAEGBLBPG
            input.readString(eLMAEGBLBPG);
            bitField0_ |= 0x00000100;
            tag = input.readTag();
            if (tag != 26) {
              break;
            }
          }
          case 26: {
            // hPCEBMACCDJ
            input.readString(hPCEBMACCDJ);
            bitField0_ |= 0x00000200;
            tag = input.readTag();
            if (tag != 34) {
              break;
            }
          }
          case 34: {
            // eAPDBCFMCHA
            input.readString(eAPDBCFMCHA);
            bitField0_ |= 0x00000400;
            tag = input.readTag();
            if (tag != 42) {
              break;
            }
          }
          case 42: {
            // aLOCHCBPICL
            input.readString(aLOCHCBPICL);
            bitField0_ |= 0x00000800;
            tag = input.readTag();
            if (tag != 50) {
              break;
            }
          }
          case 50: {
            // cEKCDHBMACL
            input.readString(cEKCDHBMACL);
            bitField0_ |= 0x00001000;
            tag = input.readTag();
            if (tag != 66) {
              break;
            }
          }
          case 66: {
            // oHFJMKNKDMM
            input.readString(oHFJMKNKDMM);
            bitField0_ |= 0x00002000;
            tag = input.readTag();
            if (tag != 98) {
              break;
            }
          }
          case 98: {
            // signature
            input.readString(signature);
            bitField0_ |= 0x00004000;
            tag = input.readTag();
            if (tag != 106) {
              break;
            }
          }
          case 106: {
            // kBHKHHAKPND
            input.readString(kBHKHHAKPND);
            bitField0_ |= 0x00008000;
            tag = input.readTag();
            if (tag != 122) {
              break;
            }
          }
          case 122: {
            // eEHJKJLLJEH
            input.readString(eEHJKJLLJEH);
            bitField0_ |= 0x00010000;
            tag = input.readTag();
            if (tag != 642) {
              break;
            }
          }
          case 642: {
            // cHFJJPIKGCA
            input.readString(cHFJJPIKGCA);
            bitField0_ |= 0x00020000;
            tag = input.readTag();
            if (tag != 5394) {
              break;
            }
          }
          case 5394: {
            // mCCIDPAOILM
            input.readString(mCCIDPAOILM);
            bitField0_ |= 0x00040000;
            tag = input.readTag();
            if (tag != 8794) {
              break;
            }
          }
          case 8794: {
            // bMMMNJEPNKE
            input.readString(bMMMNJEPNKE);
            bitField0_ |= 0x00080000;
            tag = input.readTag();
            if (tag != 12210) {
              break;
            }
          }
          case 12210: {
            // gLABLAACICO
            input.readString(gLABLAACICO);
            bitField0_ |= 0x00100000;
            tag = input.readTag();
            if (tag != 14874) {
              break;
            }
          }
          case 14874: {
            // kBLKKIFHGDP
            input.readString(kBLKKIFHGDP);
            bitField0_ |= 0x00200000;
            tag = input.readTag();
            if (tag != 0) {
              break;
            }
          }
          case 0: {
            return this;
          }
          default: {
            if (!input.skipField(tag)) {
              return this;
            }
            tag = input.readTag();
            break;
          }
        }
      }
    }

    @Override
    public void writeTo(final JsonSink output) throws IOException {
      output.beginObject();
      if ((bitField0_ & 0x00000001) != 0) {
        output.writeUInt64(FieldNames.loginRandom, loginRandom);
      }
      if ((bitField0_ & 0x00000002) != 0) {
        output.writeUInt32(FieldNames.jLENABOEECM, jLENABOEECM);
      }
      if ((bitField0_ & 0x00000004) != 0) {
        output.writeUInt32(FieldNames.oAAJFOGONGI, oAAJFOGONGI);
      }
      if ((bitField0_ & 0x00000008) != 0) {
        output.writeUInt32(FieldNames.bNFGNMKNEOA, bNFGNMKNEOA);
      }
      if ((bitField0_ & 0x00000010) != 0) {
        output.writeUInt32(FieldNames.iBHKBLGDODJ, iBHKBLGDODJ);
      }
      if ((bitField0_ & 0x00000020) != 0) {
        output.writeEnum(FieldNames.fNBLKPBPOBM, fNBLKPBPOBM, LanguageTypeOuterClass.LanguageType.converter());
      }
      if ((bitField0_ & 0x00000040) != 0) {
        output.writeBool(FieldNames.iGNINMLBLHE, iGNINMLBLHE);
      }
      if ((bitField0_ & 0x00000080) != 0) {
        output.writeString(FieldNames.nPFIJOBDPAH, nPFIJOBDPAH);
      }
      if ((bitField0_ & 0x00000100) != 0) {
        output.writeString(FieldNames.eLMAEGBLBPG, eLMAEGBLBPG);
      }
      if ((bitField0_ & 0x00000200) != 0) {
        output.writeString(FieldNames.hPCEBMACCDJ, hPCEBMACCDJ);
      }
      if ((bitField0_ & 0x00000400) != 0) {
        output.writeString(FieldNames.eAPDBCFMCHA, eAPDBCFMCHA);
      }
      if ((bitField0_ & 0x00000800) != 0) {
        output.writeString(FieldNames.aLOCHCBPICL, aLOCHCBPICL);
      }
      if ((bitField0_ & 0x00001000) != 0) {
        output.writeString(FieldNames.cEKCDHBMACL, cEKCDHBMACL);
      }
      if ((bitField0_ & 0x00002000) != 0) {
        output.writeString(FieldNames.oHFJMKNKDMM, oHFJMKNKDMM);
      }
      if ((bitField0_ & 0x00004000) != 0) {
        output.writeString(FieldNames.signature, signature);
      }
      if ((bitField0_ & 0x00008000) != 0) {
        output.writeString(FieldNames.kBHKHHAKPND, kBHKHHAKPND);
      }
      if ((bitField0_ & 0x00010000) != 0) {
        output.writeString(FieldNames.eEHJKJLLJEH, eEHJKJLLJEH);
      }
      if ((bitField0_ & 0x00020000) != 0) {
        output.writeString(FieldNames.cHFJJPIKGCA, cHFJJPIKGCA);
      }
      if ((bitField0_ & 0x00040000) != 0) {
        output.writeString(FieldNames.mCCIDPAOILM, mCCIDPAOILM);
      }
      if ((bitField0_ & 0x00080000) != 0) {
        output.writeString(FieldNames.bMMMNJEPNKE, bMMMNJEPNKE);
      }
      if ((bitField0_ & 0x00100000) != 0) {
        output.writeString(FieldNames.gLABLAACICO, gLABLAACICO);
      }
      if ((bitField0_ & 0x00200000) != 0) {
        output.writeString(FieldNames.kBLKKIFHGDP, kBLKKIFHGDP);
      }
      output.endObject();
    }

    @Override
    public PlayerLoginCsReq mergeFrom(final JsonSource input) throws IOException {
      if (!input.beginObject()) {
        return this;
      }
      while (!input.isAtEnd()) {
        switch (input.readFieldHash()) {
          case 1268567436:
          case -201491879: {
            if (input.isAtField(FieldNames.loginRandom)) {
              if (!input.trySkipNullValue()) {
                loginRandom = input.readUInt64();
                bitField0_ |= 0x00000001;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 277177997: {
            if (input.isAtField(FieldNames.jLENABOEECM)) {
              if (!input.trySkipNullValue()) {
                jLENABOEECM = input.readUInt32();
                bitField0_ |= 0x00000002;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -1484737852: {
            if (input.isAtField(FieldNames.oAAJFOGONGI)) {
              if (!input.trySkipNullValue()) {
                oAAJFOGONGI = input.readUInt32();
                bitField0_ |= 0x00000004;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -783223928: {
            if (input.isAtField(FieldNames.bNFGNMKNEOA)) {
              if (!input.trySkipNullValue()) {
                bNFGNMKNEOA = input.readUInt32();
                bitField0_ |= 0x00000008;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -1150175822: {
            if (input.isAtField(FieldNames.iBHKBLGDODJ)) {
              if (!input.trySkipNullValue()) {
                iBHKBLGDODJ = input.readUInt32();
                bitField0_ |= 0x00000010;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 1093006389: {
            if (input.isAtField(FieldNames.fNBLKPBPOBM)) {
              if (!input.trySkipNullValue()) {
                final LanguageTypeOuterClass.LanguageType value = input.readEnum(LanguageTypeOuterClass.LanguageType.converter());
                if (value != null) {
                  fNBLKPBPOBM = value.getNumber();
                  bitField0_ |= 0x00000020;
                } else {
                  input.skipUnknownEnumValue();
                }
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -1484894917: {
            if (input.isAtField(FieldNames.iGNINMLBLHE)) {
              if (!input.trySkipNullValue()) {
                iGNINMLBLHE = input.readBool();
                bitField0_ |= 0x00000040;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -1280565973: {
            if (input.isAtField(FieldNames.nPFIJOBDPAH)) {
              if (!input.trySkipNullValue()) {
                input.readString(nPFIJOBDPAH);
                bitField0_ |= 0x00000080;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 1596929266: {
            if (input.isAtField(FieldNames.eLMAEGBLBPG)) {
              if (!input.trySkipNullValue()) {
                input.readString(eLMAEGBLBPG);
                bitField0_ |= 0x00000100;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 794010770: {
            if (input.isAtField(FieldNames.hPCEBMACCDJ)) {
              if (!input.trySkipNullValue()) {
                input.readString(hPCEBMACCDJ);
                bitField0_ |= 0x00000200;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 791342372: {
            if (input.isAtField(FieldNames.eAPDBCFMCHA)) {
              if (!input.trySkipNullValue()) {
                input.readString(eAPDBCFMCHA);
                bitField0_ |= 0x00000400;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -1681335510: {
            if (input.isAtField(FieldNames.aLOCHCBPICL)) {
              if (!input.trySkipNullValue()) {
                input.readString(aLOCHCBPICL);
                bitField0_ |= 0x00000800;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -76791871: {
            if (input.isAtField(FieldNames.cEKCDHBMACL)) {
              if (!input.trySkipNullValue()) {
                input.readString(cEKCDHBMACL);
                bitField0_ |= 0x00001000;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -1498292180: {
            if (input.isAtField(FieldNames.oHFJMKNKDMM)) {
              if (!input.trySkipNullValue()) {
                input.readString(oHFJMKNKDMM);
                bitField0_ |= 0x00002000;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 1073584312: {
            if (input.isAtField(FieldNames.signature)) {
              if (!input.trySkipNullValue()) {
                input.readString(signature);
                bitField0_ |= 0x00004000;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 461095618: {
            if (input.isAtField(FieldNames.kBHKHHAKPND)) {
              if (!input.trySkipNullValue()) {
                input.readString(kBHKHHAKPND);
                bitField0_ |= 0x00008000;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -1244497140: {
            if (input.isAtField(FieldNames.eEHJKJLLJEH)) {
              if (!input.trySkipNullValue()) {
                input.readString(eEHJKJLLJEH);
                bitField0_ |= 0x00010000;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 361274612: {
            if (input.isAtField(FieldNames.cHFJJPIKGCA)) {
              if (!input.trySkipNullValue()) {
                input.readString(cHFJJPIKGCA);
                bitField0_ |= 0x00020000;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -1098538092: {
            if (input.isAtField(FieldNames.mCCIDPAOILM)) {
              if (!input.trySkipNullValue()) {
                input.readString(mCCIDPAOILM);
                bitField0_ |= 0x00040000;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 1421577174: {
            if (input.isAtField(FieldNames.bMMMNJEPNKE)) {
              if (!input.trySkipNullValue()) {
                input.readString(bMMMNJEPNKE);
                bitField0_ |= 0x00080000;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 1705052216: {
            if (input.isAtField(FieldNames.gLABLAACICO)) {
              if (!input.trySkipNullValue()) {
                input.readString(gLABLAACICO);
                bitField0_ |= 0x00100000;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 221904541: {
            if (input.isAtField(FieldNames.kBLKKIFHGDP)) {
              if (!input.trySkipNullValue()) {
                input.readString(kBLKKIFHGDP);
                bitField0_ |= 0x00200000;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          default: {
            input.skipUnknownField();
            break;
          }
        }
      }
      input.endObject();
      return this;
    }

    @Override
    public PlayerLoginCsReq clone() {
      return new PlayerLoginCsReq().copyFrom(this);
    }

    @Override
    public boolean isEmpty() {
      return ((bitField0_) == 0);
    }

    public static PlayerLoginCsReq parseFrom(final byte[] data) throws
        InvalidProtocolBufferException {
      return ProtoMessage.mergeFrom(new PlayerLoginCsReq(), data).checkInitialized();
    }

    public static PlayerLoginCsReq parseFrom(final ProtoSource input) throws IOException {
      return ProtoMessage.mergeFrom(new PlayerLoginCsReq(), input).checkInitialized();
    }

    public static PlayerLoginCsReq parseFrom(final JsonSource input) throws IOException {
      return ProtoMessage.mergeFrom(new PlayerLoginCsReq(), input).checkInitialized();
    }

    /**
     * @return factory for creating PlayerLoginCsReq messages
     */
    public static MessageFactory<PlayerLoginCsReq> getFactory() {
      return PlayerLoginCsReqFactory.INSTANCE;
    }

    private enum PlayerLoginCsReqFactory implements MessageFactory<PlayerLoginCsReq> {
      INSTANCE;

      @Override
      public PlayerLoginCsReq create() {
        return PlayerLoginCsReq.newInstance();
      }
    }

    /**
     * Contains name constants used for serializing JSON
     */
    static class FieldNames {
      static final FieldName loginRandom = FieldName.forField("loginRandom", "login_random");

      static final FieldName jLENABOEECM = FieldName.forField("JLENABOEECM");

      static final FieldName oAAJFOGONGI = FieldName.forField("OAAJFOGONGI");

      static final FieldName bNFGNMKNEOA = FieldName.forField("BNFGNMKNEOA");

      static final FieldName iBHKBLGDODJ = FieldName.forField("IBHKBLGDODJ");

      static final FieldName fNBLKPBPOBM = FieldName.forField("FNBLKPBPOBM");

      static final FieldName iGNINMLBLHE = FieldName.forField("IGNINMLBLHE");

      static final FieldName nPFIJOBDPAH = FieldName.forField("NPFIJOBDPAH");

      static final FieldName eLMAEGBLBPG = FieldName.forField("ELMAEGBLBPG");

      static final FieldName hPCEBMACCDJ = FieldName.forField("HPCEBMACCDJ");

      static final FieldName eAPDBCFMCHA = FieldName.forField("EAPDBCFMCHA");

      static final FieldName aLOCHCBPICL = FieldName.forField("ALOCHCBPICL");

      static final FieldName cEKCDHBMACL = FieldName.forField("CEKCDHBMACL");

      static final FieldName oHFJMKNKDMM = FieldName.forField("OHFJMKNKDMM");

      static final FieldName signature = FieldName.forField("signature");

      static final FieldName kBHKHHAKPND = FieldName.forField("KBHKHHAKPND");

      static final FieldName eEHJKJLLJEH = FieldName.forField("EEHJKJLLJEH");

      static final FieldName cHFJJPIKGCA = FieldName.forField("CHFJJPIKGCA");

      static final FieldName mCCIDPAOILM = FieldName.forField("MCCIDPAOILM");

      static final FieldName bMMMNJEPNKE = FieldName.forField("BMMMNJEPNKE");

      static final FieldName gLABLAACICO = FieldName.forField("GLABLAACICO");

      static final FieldName kBLKKIFHGDP = FieldName.forField("KBLKKIFHGDP");
    }
  }
}
